var t1 = null;
var t2 = null;

var Timer = new Class({
	Implements: Options,
	
	options: {
		self: 't',
		targetId: 'countdownBanner',
		targetDate: "08/01/2011 05:00 PM",
		countActive: true,
		countStepper: -1,
		leadingZero: true,
		timeoutPeriod: 1000
	},

	calculateAge: function(secs, seconds, interval) {
		var s = ((Math.floor(secs/seconds))%interval).toString();
		if (this.options.leadingZero && s.length < 2) {
			s = "0" + s;
		}
		return s;
	},

	countBack: function(secs) {
		if (this.calculateAge(secs,86400,100000) < 2) {
			$(this.options.targetId).addClass('twoDays');
			$(this.options.targetId).getElement('.hours').set('html', this.calculateAge(secs, 3600, 48));
		}
		else {
			$(this.options.targetId).getElement('.days').set('html', this.calculateAge(secs,86400,100000));
			$(this.options.targetId).getElement('.hours').set('html', this.calculateAge(secs, 3600, 24));
		}

		$(this.options.targetId).getElement('.minutes').set('html',  this.calculateAge(secs, 60, 60));
		$(this.options.targetId).getElement('.seconds').set('html', this.calculateAge(secs, 1, 60));

		if (this.options.countActive && secs != 0) {
			setTimeout(this.options.self+".countBack(("+secs+this.options.countStepper+"))", this.options.timeoutPeriod);
		}
	},
	
	initialize: function(elementId, self) {
		this.options.targetId = elementId;
		this.options.self = self;

		this.options.countStepper = Math.ceil(this.options.countStepper);
		if (! $(this.options.targetId)) {
			return;
		}
		this.options.targetDate = 
			$(this.options.targetId).getElement('.hours').get('html') + '/' + 
			$(this.options.targetId).getElement('.days').get('html') + '/' + 
			$(this.options.targetId).getElement('.minutes').get('html') + " " + 
			$(this.options.targetId).getElement('.seconds').get('html');

		if (this.options.countStepper == 0) {
			this.options.countActive = false;
		}

		var dthen = new Date(this.options.targetDate);
		var dnow = new Date();
		
		if(this.options.countStepper > 0) {
			ddiff = new Date(dnow-dthen);
		}
		else {
			ddiff = new Date(dthen-dnow);
		}

		gsecs = Math.floor(ddiff.valueOf()/1000);
		if (gsecs < 0) {
			gsecs = 0;
		}
		this.countBack(gsecs);
	}
});

window.addEvent('domready', function () {
	t1 = new Timer('countdownBannerScoot', "t1");
	t2 = new Timer('countdownBannerIndigo', "t2");
});
