// Array to hold each digit's starting background-position Y value
var initialPos = [0, -618, -1236, -1854, -2472, -3090, -3708, -4326, -4944, -5562];
// Amination frames
var animationFrames = 5;
// Frame shift
var frameShift = 103;
 
// Starting number
var today = new Date();
var fromStart = new Date(2010, 3, 27);
var fromStartAdd = (today.getTime()-fromStart.getTime())/1000*10/1000;


var theNumber = Math.round((totaleSconti+fromStartAdd)*1000);
// Increment
var increment = 10;
// Pace of counting in milliseconds
var pace = 1000;

//<![CDATA[
  
// Function that controls counting
function doCount(){
	x = theNumber.toString();
	theNumber += increment;
	y = theNumber.toString();
	digitCheck(x,y);
}
 
// This checks the old count value vs. new value, to determine how many digits
// have changed and need to be animated.
function digitCheck(x,y){
	digitsOld = splitToArray(x);
	digitsNew = splitToArray(y);
	for (var i = 0; i < digitsNew.length; i++){
		if (digitsNew[i] != digitsOld[i]){
			animateDigit(i, digitsOld[i], digitsNew[i]);
		}
	}
}
 
// Animation function
function animateDigit(n, oldDigit, newDigit){
	// I want three different animations speeds based on the digit,
	// because the pace and increment is so high. If it was counting
	// slower, just one speed would do.
	// 1: Changes so fast is just like a blur
	// 2: You can see complete animation, barely
	// 3: Nice and slow
	switch (n){
		case 0:
			speed = pace/8;
			break;
		case 1:
			speed = pace/4;
			break;
		default:
			speed = pace/2;
			break;
	}
	// Cap on slowest animation can go
	speed = (speed > 100) ? 100 : speed;
	// Get the initial Y value of background position to begin animation
	var pos = initialPos[oldDigit];
	// Each animation is 5 frames long, and 103px down the background image.
	// We delay each frame according to the speed we determined above.
	for (var k = 0; k < animationFrames; k++){
		pos = pos - frameShift;
		if (k == (animationFrames - 1)){
			$("#d" + n).delay(speed).animate({'background-position': '0 ' + pos + 'px'}, 0, function(){
				// At end of animation, shift position to new digit.
				$("#d" + n).css({'background-position': '0 ' + initialPos[newDigit] + 'px'}, 0);
			});
		}
		else{
			$("#d" + n).delay(speed).animate({'background-position': '0 ' + pos + 'px'}, 0);
		}
	}
}
 
// Splits each value into an array of digits
function splitToArray(input){
	var digits = new Array();
	for (var i = 0; i < input.length; i++){
		subStart = input.length - (i + 1);
		subEnd = input.length - i;
		digits[i] = input.substring(subStart, subEnd);
	}
	return digits;
}
 
// Sets the correct digits on load
function initialDigitCheck(initial){
	var digits = splitToArray(initial.toString());
	for (var i = 0; i < digits.length; i++){
		$("#d" + i).css({'background-position': '0 ' + initialPos[digits[i]] + 'px'});
	}
}

function startCoolCounter(){
    initialDigitCheck(theNumber);
    setInterval(doCount, pace);
} 
//]]>


