var prevSec = new Array(2);
var prevMin = new Array(2);
var prevHour = new Array(2);
var prevDay = new Array(3);

var scroller = new Array();
var moveStep = 3;
var moveDelay = 1;
var digitSize = 48;

function var_dump(v){s='';if(typeof(v)=='object'){for(i in v){s+=i+': '+v[i]+"\n"}}else{return v}return s}


var scrollBg = function (objToScroll,stoppos,moveStep,moveDelay) { 

	   var stEl = document.getElementById(objToScroll.id).style.backgroundPosition;
 	   var vpos = parseInt((stEl.substr(4,stEl.length-6)));;
//	   alert('vpos:'+vpos+',stoppos:'+stoppos)
	

	   vpos -= moveStep;

			
	   if(vpos <= stoppos ) {
		window.clearInterval(scroller[objToScroll.id]);
		scroller[objToScroll.id] = "";
  	   }

	    objToScroll.style.backgroundPosition = '0px '+vpos+'px';
                
}

var stratScrollBg = function (objToScroll,stoppos,moveStep,moveDelay) {

	   if(!scroller[objToScroll.id]) {
		   scroller[objToScroll.id] = window.setInterval(function(objToScroll,stoppos,moveStep) {return function () { scrollBg(objToScroll,stoppos,moveStep) } }(objToScroll,stoppos,moveStep),moveDelay);
	   }


}


var changePict = function (divId,divValue) {


	var styleEl = document.getElementById(divId).style.backgroundPosition;
	var position = parseInt((styleEl.substr(4,styleEl.length-6)));

	newPosition = -430 + (digitSize * divValue);

	if(isNaN(position)) {

		document.getElementById(divId).style.backgroundPosition = '0px '+newPosition+'px';
	}

       	if(position <= -430)  {

		position = -430 + divValue * digitSize;
		document.getElementById(divId).style.backgroundPosition = '0px '+position+'px';

	}

	if(divId != 'cd-seconds-2') {
			stratScrollBg(document.getElementById(divId),newPosition,1,1)
	}
	else {
		document.getElementById(divId).style.backgroundPosition = '0px '+newPosition+'px';
	}

}


var countdown = function (year, month, day, hour, minute) {
	Today = new Date();
	Todays_Year = Today.getFullYear() - 2000;
	Todays_Month = Today.getMonth();                  	
         
         //Convert both today's date and the target date into miliseconds.                           
	Todays_Date = (new Date(Todays_Year, Todays_Month, Today.getDate(), 
	Today.getHours(), Today.getMinutes(), Today.getSeconds())).getTime();                                 
	Target_Date = (new Date(year, month - 1, day, hour, minute, 00)).getTime();                  
         
	//Find their difference, and convert that into seconds.                  
	Time_Left = Math.round((Target_Date - Todays_Date) / 1000);
         
	if(Time_Left < 0)
		Time_Left = 0;
         
	days = Math.floor(Time_Left / (60 * 60 * 24));
	Time_Left %= (60 * 60 * 24);
	hours = Math.floor(Time_Left / (60 * 60));
	Time_Left %= (60 * 60);
	minutes = Math.floor(Time_Left / 60);
	Time_Left %= 60;
	seconds = Time_Left;	


	 
	
	if(Math.floor(seconds/10) != prevSec[0]) changePict('cd-seconds-1',Math.floor(seconds/10));
	if(seconds-10*Math.floor(seconds/10) != prevSec[1]) changePict('cd-seconds-2',seconds-10*Math.floor(seconds/10));

	if(Math.floor(minutes/10) != prevMin[0]) changePict('cd-minutes-1',Math.floor(minutes/10));
	if(minutes-10*Math.floor(minutes/10) != prevMin[1]) changePict('cd-minutes-2',minutes-10*Math.floor(minutes/10));

	if(Math.floor(hours/10) != prevHour[0]) changePict('cd-hours-1',Math.floor(hours/10));
	if(hours-10*Math.floor(hours/10) != prevHour[1]) changePict('cd-hours-2',hours-10*Math.floor(hours/10));

	if(Math.floor(days/100) != prevDay[0]) changePict('cd-days-1',Math.floor(days/100));
	if(Math.floor((days-100*Math.floor(days/100))/10) != prevDay[1]) changePict('cd-days-2',Math.floor((days-100*Math.floor(days/100))/10));
	if(days - ((Math.floor(days/100)*100) + (Math.floor((days-100*Math.floor(days/100))/10)*10)) != prevDay[2]) changePict('cd-days-3',days - ((Math.floor(days/100)*100) + (Math.floor((days-100*Math.floor(days/100))/10)*10)));


	prevSec[0] = Math.floor(seconds/10);
	prevSec[1] = seconds-10*Math.floor(seconds/10);

	prevMin[0] = Math.floor(minutes/10);
	prevMin[1] = minutes-10*Math.floor(minutes/10);


	prevHour[0] = Math.floor(hours/10);
	prevHour[1] = hours-10*Math.floor(hours/10);

	prevDay[0] = Math.floor(days/100);
	prevDay[1] = Math.floor((days-100*Math.floor(days/100))/10);
	prevDay[2] = days-(prevDay[0]*100+prevDay[1]*10);


	document.getElementById('tst').innerHTML = days+' days'+hours+' hours'+minutes+' minutes '+seconds+' seconds';


	setTimeout('countdown(' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ');', 1000);
}

