var MinutesCountdown = {
	init : function(handler_onMinutesChange, handler_onTimeOut, handler_onTimeTick) {
		// getElementsByClassName doesn't work in IE5.5-, need to be fixed
		var minutes = document.getElementsByClassName('minutes_left')
		for(var i = 0; i < minutes.length; i++) {
			// Firefox, IE6, Opera
			// Log.add(minutes[i].firstChild.data);
			minutes[i].time_left = parseInt(minutes[i].firstChild.data);
		}
		// todo: change to test of null and setting function() {} if so
		MinutesCountdown.handler_onTimeTick = handler_onTimeTick;
		MinutesCountdown.handler_onTimeOut = handler_onTimeOut;
		MinutesCountdown.handler_onMinutesChange = handler_onMinutesChange;
		
		MinutesCountdown.recent_refresh = new Date();
		MinutesCountdown.minutes = minutes;
		MinutesCountdown.elements_left = minutes.length;
		MinutesCountdown.tick();
	},
	
	acquireTimestamp : function(elm) {
		// todo: acquire for IE5.5- -> use innerHTML, which contains comment
		return elm.firstChild.data
	},
	
	tick : function() {
		var minutes = MinutesCountdown.minutes;
		var now = new Date();
		var delta = now - MinutesCountdown.recent_refresh;
		MinutesCountdown.recent_refresh = now;
		for(var i = 0; i < minutes.length; i++) {
			if(minutes[i].time_left > 0) {
			
				minutes[i].time_left -= delta;
				var left = Math.ceil(minutes[i].time_left/60000);
				if(left != minutes[i].minutes_left) {
					minutes[i].minutes_left = left
					if(MinutesCountdown.handler_onMinutesChange != null) {
						MinutesCountdown.handler_onMinutesChange(minutes[i]);
					}
				}
				
				if(minutes[i].time_left > 0) {
					if(MinutesCountdown.handler_onTimeTick) {
						MinutesCountdown.handler_onTimeTick(minutes[i]);
					}
				} else {
					minutes[i].time_left = 0;
					MinutesCountdown.elements_left--;
					if(MinutesCountdown.handler_onTimeOut) {
						MinutesCountdown.handler_onTimeOut(minutes[i]);
					}
				}
			}
		}
		if(MinutesCountdown.elements_left > 0) {
			MinutesCountdown.timer = setTimeout('MinutesCountdown.tick()', 5000);
		}
	}
}
