function zeroFill(number, length) {
	number = number.toString();
	while(number.length < length) {
		number = "0" + number;
	}
	return number;
}

function updateCounter() {
	var ms = new Date().getTime() - startTime;
	var hours;
	var minutes;
	var seconds;

	hours = parseInt(ms / 3600000);
	ms -= hours * 3600000;
	minutes = parseInt(ms / 60000);
	ms -= minutes * 60000;
	seconds = parseInt(ms / 1000);
	ms -= seconds * 1000;
	ms = parseInt(ms / 100)

	$('counter').innerHTML = zeroFill(hours,2) + ':' + zeroFill(minutes,2) + ':' + zeroFill(seconds,2) + '.' + ms;

	window.setTimeout(updateCounter, 100)
}

function updateTimer(callback) {
	var ms = endTime - new Date().getTime();
	var minutes;
	var seconds;

	minutes = parseInt(ms / 60000);
	ms -= minutes * 60000;
	seconds = parseInt(ms / 1000);
	ms -= seconds * 1000;

	$('counter').innerHTML = minutes + ':' + zeroFill(seconds,2);

	if (minutes > 0 || seconds > 0 || ms > 0)
		window.setTimeout(function(){updateTimer(callback)}, 100);
	else callback();
}

