var kickoff = new Date(2012,1,5,17,30,0);
var dayTens, dayOnes, hourTens, hourOnes, minTens, minOnes, secTens, secOnes;
$(document).ready(function(){
	var initialYPos = ["-36px","-72px","-108px","-144px","-180px","-216px","-252px","-288px","-324px","-360px"];
	setDiffs();
	
	$("div.pos1").addClass('num'+dayTens);
	$("div.pos2").addClass('num'+dayOnes);
	$("div.pos3").addClass('num'+hourTens);
	$("div.pos4").addClass('num'+hourOnes);
	$("div.pos5").addClass('num'+minTens);
	$("div.pos6").addClass('num'+minOnes);
	$("div.pos7").addClass('num'+secTens);
	$("div.pos8").addClass('num'+secOnes);
		// need to adjust the columns
	setPos($("div.pos1"),'-66px',initialYPos[dayTens]);
	setPos($("div.pos2"),'-66px',initialYPos[dayOnes]);
	setPos($("div.pos3"),'0',initialYPos[hourTens]);
	setPos($("div.pos4"),'-66px',initialYPos[hourOnes]);
	setPos($("div.pos5"),'-44px',initialYPos[minTens]);
	setPos($("div.pos6"),'-66px',initialYPos[minOnes]);
	setPos($("div.pos7"),'-44px',initialYPos[secTens]);
	setPos($("div.pos8"),'-66px',initialYPos[secOnes]);
	
	setTimeout('tick()',1000);
});
function tick(){
	regex = /pos[0-9] num/;
	int_dayTens = $("div.pos1").attr('class').replace(regex,"");
	int_dayOnes = $("div.pos2").attr('class').replace(regex,"");
	int_hourTens = $("div.pos3").attr('class').replace(regex,"");
	int_hourOnes = $("div.pos4").attr('class').replace(regex,"");
	int_minTens = $("div.pos5").attr('class').replace(regex,"");
	int_minOnes = $("div.pos6").attr('class').replace(regex,"");
	int_secTens = $("div.pos7").attr('class').replace(regex,"");
	int_secOnes = $("div.pos8").attr('class').replace(regex,"");
	if(int_secOnes == 0){
		setPos($("div.pos8"),'','-396px');
		if(int_secTens == 0){
			setPos($("div.pos7"),'','-252px');
			if(int_minOnes == 0){
				setPos($("div.pos6"),'','-396px');
				if(int_minTens == 0){
					setPos($("div.pos5"),'','-252px');
					if(int_hourOnes == 0){
						setPos($("div.pos4"),int_hourTens == 0 ? '-22px' : '-66px',int_hourTens == 0 ? '-180px' : '-396px');
						if(int_hourTens == 0){
							setPos($("div.pos3"),'','-144px');
							if(int_dayOnes == 0){
								setPos($("div.pos2"),'','-396px');
								if(int_dayTens == 0){
									setPos($("div.pos1"),'','-396px');
								} else {
									tickDown($("div.pos1"), parseInt(int_dayTens) * 36 * -1, int_dayTens);
									tickDown($("div.pos2"), -360, int_dayOnes, 9);
									tickDown($("div.pos3"), -108, int_hourTens, 2);
									tickDown($("div.pos4"), int_hourTens == 0 ? -144 : -360, int_hourOnes, 3);
									tickDown($("div.pos5"), -216, int_minTens, 5);
									tickDown($("div.pos6"), -360, int_minOnes, 9);
									tickDown($("div.pos7"), -216, int_secTens, 5);
									tickDown($("div.pos8"), -360, int_secOnes, 9);
								}
							} else {
								tickDown($("div.pos2"), parseInt(int_dayOnes) * 36 * -1, int_dayOnes);
								tickDown($("div.pos3"), -108, int_hourTens);
								tickDown($("div.pos4"), int_hourTens == 0 ? -144 : -360, int_hourOnes);
								tickDown($("div.pos5"), -216, int_minTens, 5);
								tickDown($("div.pos6"), -360, int_minOnes, 9);
								tickDown($("div.pos7"), -216, int_secTens, 5);
								tickDown($("div.pos8"), -360, int_secOnes, 9);
							}
						} else {
							tickDown($("div.pos3"), parseInt(int_hourTens) * 36 * -1, int_hourTens);
							tickDown($("div.pos4"), int_hourTens == 0 ? -144 : -360, int_hourOnes);
							tickDown($("div.pos5"), -216, int_minTens, 5);
							tickDown($("div.pos6"), -360, int_minOnes, 9);
							tickDown($("div.pos7"), -216, int_secTens, 5);
							tickDown($("div.pos8"), -360, int_secOnes, 9);
						}
					} else {
						tickDown($("div.pos4"), parseInt(int_hourOnes) * 36 * -1, int_hourOnes);
						tickDown($("div.pos5"), -216, int_minTens, 5);
						tickDown($("div.pos6"), -360, int_minOnes, 9);
						tickDown($("div.pos7"), -216, int_secTens, 5);
						tickDown($("div.pos8"), -360, int_secOnes, 9);
					}
				} else {
					tickDown($("div.pos5"), parseInt(int_minTens) * 36 * -1, int_minTens);
					tickDown($("div.pos6"), -360, int_minOnes, 9);
					tickDown($("div.pos7"), -216, int_secTens, 5);
					tickDown($("div.pos8"), -360, int_secOnes, 9);
				}
			} else {
				tickDown($("div.pos6"), parseInt(int_minOnes) * 36 * -1, int_minOnes);
				tickDown($("div.pos7"), -216, int_secTens, 5);
				tickDown($("div.pos8"), -360, int_secOnes, 9);
			}
		} else {
			tickDown($("div.pos7"), parseInt(int_secTens) * 36 * -1, int_secTens);
			tickDown($("div.pos8"), -360, int_secOnes, 9);
		}
	} else {
		tickDown($("div.pos8"), parseInt(int_secOnes) * 36 * -1, int_secOnes);
	}
	setTimeout(tick,1000);
}

function tickDown(obj, posY, lastNum, nextNum){
	var css = obj.css('background-position').split(' ');
	posX = css[0];
	if(!nextNum) nextNum = parseInt(lastNum) - 1;
	obj.stop().animate(
		{backgroundPosition:"("+posX+" "+posY+"px)"}, 
		500,
		function(){
			obj.removeClass('num'+lastNum);
			obj.addClass('num'+nextNum);
		}
	);
}

function setPos(obj, xPos, yPos){
	if(xPos == '' || yPos == ''){
		var css = obj.css('background-position').split(' ');
		if(xPos == '') xPos = css[0];
		if(yPos == '') yPos = css[1];
	}
	obj.css('background-position',xPos+' '+yPos);
}

function setDiffs(){
	var now = new Date();
	var diff = kickoff.getTime() - now.getTime();
	
	var daysDiff = Math.floor(diff/1000/60/60/24);
	diff -= daysDiff*1000*60*60*24
	
	var hoursDiff = Math.floor(diff/1000/60/60);
	diff -= hoursDiff*1000*60*60
	
	var minutesDiff = Math.floor(diff/1000/60);
	diff -= minutesDiff*1000*60
	
	var secondsDiff = Math.floor(diff/1000);
	
	if(daysDiff > 9){
		dayTens = Math.floor(daysDiff/10);
		dayOnes = daysDiff%10;
	} else {
		dayTens = 0;
		dayOnes = daysDiff;
	}
	if(hoursDiff > 9){
		hourTens = Math.floor(hoursDiff/10);
		hourOnes = hoursDiff%10;
	} else {
		hourTens = 0;
		hourOnes = hoursDiff;
	}
	if(minutesDiff > 9){
		minTens = Math.floor(minutesDiff/10);
		minOnes = minutesDiff%10;
	} else {
		minTens = 0;
		minOnes = minutesDiff;
	}
	if(secondsDiff > 9){
		secTens = Math.floor(secondsDiff/10);
		secOnes = secondsDiff%10;
	} else {
		secTens = 0;
		secOnes = secondsDiff;
	}
	// for testing
	return;
	dayTens = 3;
	dayOnes = 0;
	hourTens = 0;
	hourOnes = 0;
	minTens = 0;
	minOnes = 0;
	secTens = 0;
	secOnes = 3;
}

