/**
 * Countdown Timer
 * @author Adam Thurlow <adam@norex.ca>
 * @requires Prototype, Scriptaculous(for v2)
 * @package none
 * @version 0.9 beta
 */

 /**
 * Notes: did not implement Notifier yet.
 * Useage: Duration.countdown("DOM ELEMENT", Date.UTC(UTC DATE -- see note));
 * UTC Date Format: 2009, 7, 12, 12, 30, 00	// July 12th, 2009 12:30:00
 * Wrote For: NS Canada Games
 */

var Duration = Class.create();
Duration.prototype ={
	initialize: function(milliseconds){
		this.milliseconds = milliseconds;
	},
	toString: function(){
		var days = Math.floor(this.milliseconds / 86400000);
		var left = this.milliseconds - days * 86400000;
		var hours = Math.floor(left / 3600000);
		left -= hours * 3600000;
		var minutes = Math.floor(left / 60000);
		left -= minutes * 60000;
		var countOut = [];
		var out = function(value,what){
			var valuetext = value.toString();
			if (what == 'day' && value < 100)valuetext = '0'+valuetext;
			if (value < 10)valuetext = '0'+valuetext;
			if (value == 0)valuetext = '0'+valuetext;

			countOut.push('<div class="numberHolder ');
			if (what == 'day') countOut.push('wider');
			countOut.push('">');
			if (what == 'day') {
				countOut.push('<div class="number n'+valuetext.charAt(0)+'">&nbsp;</div>');
				countOut.push('<div class="number n'+valuetext.charAt(1)+'">&nbsp;</div>');
				countOut.push('<div class="number n'+valuetext.charAt(2)+'">&nbsp;</div>');
			}
			else{
				countOut.push('<div class="number n'+valuetext.charAt(0)+'">&nbsp;</div>');
				countOut.push('<div class="number n'+valuetext.charAt(1)+'">&nbsp;</div>');
			}
			countOut.push('</div>');
		}
		out(days,'day');
		countOut.push('<div class="number colon">&nbsp;</div>');
		out(hours,'hour');
		countOut.push('<div class="number colon">&nbsp;</div>');
		out(minutes,'minute');
		return countOut.join('');
	}
}
Duration.countdown = function(element, date, abbreviated)
{
	element = $(element);
	var refresh = function()
	{
		var milliseconds = date - new Date();
		var duration = new Duration(Math.abs(milliseconds), abbreviated);
		element.innerHTML = duration.toString();
		window.setTimeout(refresh, 5000);
	}
	refresh();
}
