function Countdown(secsleft, endtext) {
	this.id = Countdown.nextid++;
	this.secsleft = secsleft;
	this.endtext = (endtext == null) ? 'Time up!' : endtext;
	
	this.tick = function() {
		if (this.secsleft > 0) {
			this.secsleft--;
			this.update();
		}
	}
	
	this.draw = function() {
		document.write(this.get());
		this.update();
	}
	
	this.get = function() {
		var out = '';
		out += '<div class="countdown" id="countdown_'+this.id+'">';
		out += '<span class="digits" id="hours_'+this.id+'">00</span>:'
		out += '<span class="digits" id="mins_'+this.id+'">00</span>:';
		out += '<span class="digits" id="secs_'+this.id+'">00</span>';
		out += '</div>';
		return out;
	}
	
	this.update = function() {
		var s = this.secsleft;
		if (s > 0) {
			var hours = Math.floor(s / 3600);
			s -= hours*3600;
			var mins = Math.floor(s / 60);
			s -= mins*60;
			
			hourSpan = _('hours_'+this.id);
			minSpan = _('mins_'+this.id);
			secsSpan = _('secs_'+this.id);
			
			if (hourSpan) hourSpan.innerHTML = padZeros(hours,2);
			if (minSpan) minSpan.innerHTML = padZeros(mins,2);
			if (secsSpan) secsSpan.innerHTML = padZeros(s,2);
		} else {
			_('countdown_'+this.id).innerHTML = this.endtext; 
		}
	}
}

Countdown.nextid = 1;
Countdown.countdowns = new Array();
Countdown.make = function(secsleft, endtext) {
	var c = new Countdown(secsleft, endtext);
	Countdown.countdowns.push(c);
	return c;
}
Countdown.tickAll = function() {
	for (var i in Countdown.countdowns) Countdown.countdowns[i].tick();
	setTimeout("Countdown.tickAll()",1000);
}