/**
 * Author: Jaimie Quagliara
 * Date: 16/03/2011
 */

/** COUNTDOWN WIDGET */
CountDownWidget = function(countdownConfig) {
	this.countdownConfig = countdownConfig;
	
	this.target = this.countdownConfig.target;
	this.activity = this.countdownConfig.activity;
	this.labels = this.countdownConfig.labels;
	
	var dateArray = this.activity.date.split('/');
	var hourArray = this.activity.hour.split(':');
	this.countdownDate = new Date(dateArray[2], (dateArray[1] - 1), dateArray[0], hourArray[0], hourArray[1], 0, 0);
	this.countdownTimer = 0;
	this.oneDay = 1000 * 60 * 60 * 24;
	
	this.loadCountdownWidget();
}

CountDownWidget.prototype.loadCountdownWidget = function() {
	$(this.target).append('<div class="widget-count"></div>');
	$('.widget-count').append('<div class="widget-count-activity">' + this.activity.title + '</div>');
	$.each(this.labels, function(key, val) { 
	  $('.widget-count').append('<div class="widget-count-cell"><div class="widget-count-' + key + '"></div><div class="widget-count-label">' + val + '</div></div>');
	});

	this.startCountdown();
}

CountDownWidget.prototype.startCountdown = function() {	
	var now = new Date();
	
	if (now > this.countdownDate) {
		clearTimeout(this.countdownTimer);
	} else {
		var diffDate = new Date(this.countdownDate - now);
		
		var days = Math.floor(diffDate.getTime() / this.oneDay);
		var hour = (diffDate.getHours() == 0) ? 23 : diffDate.getHours() - 1;
		var min = diffDate.getMinutes();
		var sec = diffDate.getSeconds();

		$('.widget-count-days').html(days);
		$('.widget-count-hours').html(hour);
		$('.widget-count-minutes').html(min);
		$('.widget-count-seconds').html(sec);
	
		var instance = this;
		this.countdownTimer = setTimeout(
			function() { instance.startCountdown() },
			1000
		);
	}
}
