var countdownObjs = new Array();
var elapsedTimeObjs = new Array();

var registerCountdownObj = function(elementId, eventDate, showSeconds) {
	var cObj = new Array(elementId, eventDate, showSeconds);
	countdownObjs[countdownObjs.length] = cObj;
	
}

var registerElapsedTimeObj = function(elementId, eventDate){
	var eObj = new Array(elementId, eventDate);
	elapsedTimeObjs[elapsedTimeObjs.length] = eObj;

}


var startTimeObjs = function(){

	for( x in countdownObjs ){
		countdownObj( countdownObjs[x][0], countdownObjs[x][1], countdownObjs[x][2] );
	}
	countdownObjs = new Array();
	for( x in elapsedTimeObjs ){
		elapsedTimeObj( elapsedTimeObjs[x][0], elapsedTimeObjs[x][1] );	
	}
	elapsedTimeObjs = new Array();
	
}

var countdownObj = function(elementId, eventDate, showSeconds) {
	//eventDate = new Date(eventDate*1000);
	
	var refreshRate = 60000;
	var maxDigits = 3;
	if(showSeconds){
		refreshRate = 1000;
		maxDigits = 4;
	}
	//window.setTimeout('countdownUpdate("'+elementId+'", '+eventDate+', '+refreshRate+', '+maxDigits+')', 100);
	countdownUpdate(elementId, eventDate, refreshRate, maxDigits);
}


var elapsedTimeObj = function(elementId, eventDate){
		var diff = (new Date() - new Date(eventDate*1000)) / 1000;
		var units = new Array(0,0,0);
		var ends = new Array('day','hr','min');
		var gomore = 1
		
		units[0] = (diff - (diff % 86400)) / 86400; //days
		if(units[0] < 1){
			diff -= (units[0] * 86400);
			units[1] = (diff - (diff % 3600)) / 3600 ; //hours
			if(units[1] < 1){
				diff -= (units[1] * 3600);
				units[2] = (diff - (diff % 60)) / 60; //minutes
			}
		} else {
			gomore = 0
		}

		
		out = '';
		for(i = 0; i < 3; i++){
			if(units[i] < 1){
			   units[i] = '';
			} else {
			   if(units[i] <= 1) units[i] += ' ' + ends[i];
			   else units[i] += ' ' + ends[i] + 's';
			}
			
			out += units[i] + ' ';
		}
		
		if(document.getElementById(elementId) != null)
			document.getElementById(elementId).innerHTML = out; 

		if(gomore) window.setTimeout('elapsedTimeObj("'+elementId+'", '+eventDate+')', 60000);


}



var countdownUpdate = function(elementId, eventDate, refreshRate, maxDigits){

		var now = new Date();
		//alert(elementId + " --- " + eventDate + " --- =-- " + refreshRate + " adfadsf " + maxDigits);
		var diff = (new Date(eventDate*1000) - now) / 1000;
		var total = diff
		var units = new Array(4);
		var ends = new Array('<span class="type"><br />days</span>','<span class="type"><br />hours</span>','<span class="type"><br />min</span>','<span class="type"><br />sec</span>');

		
		units[0] = (diff - (diff % 86400)) / 86400; //days
		diff -= (units[0] * 86400);
		units[1] = (diff - (diff % 3600)) / 3600 ; //hours
		diff -= (units[1] * 3600);
		units[2] = (diff - (diff % 60)) / 60; //minutes
		diff -= (units[2] * 60);
		units[3] = Math.floor(diff);
		
		out = '';
		for(i = 0; i < maxDigits; i++){
			if(units[i] < 1){
			   units[i] = "<span class='countdown-null'>00" + ends[i] + "</span>";
			} else if(units[i] < 10){
				units[i] = "<span class='countdown-null'>0</span>" + units[i] + ends[i];
			} else {
			   units[i] += ends[i];
			}
			out += "<span class='countdown-number'>"+units[i]+"</span>";
			if(i+1 < maxDigits) out += "<span class='countdown-divider'>:</span>";
		}

		if(document.getElementById(elementId) != null)
			document.getElementById(elementId).innerHTML = out; 
 
		if(total > 0){
			window.setTimeout('countdownUpdate("'+elementId+'", '+eventDate+', '+refreshRate+', '+maxDigits+')', refreshRate);
		} else if(document.getElementById(elementId) != null) {
			document.getElementById(elementId).innerHTML = "Go Time!";
		}


}




$(document).ready(
	function () {
	/* this is unix time if you want to change the date use an online unix timestamp converter */
		registerCountdownObj('ec219', 1307318400, 1);
		startTimeObjs();	
	
	}
);
