function generic_countdown (eidd, eidh, eidm, eids, finaltime, offset, changeling, changetime) {
	// Generic countdown (c) Love Olsson 2008
	// love.olsson (a) gmail.com

	//finaltime = Date.parse(finaltime);
	var elementd = document.getElementById(eidd);
	var elementh = document.getElementById(eidh);
	var elementm = document.getElementById(eidm);
	var elements = document.getElementById(eids);
	if (changeling) var elementchange = document.getElementById(changeling);
	var dn = new Date();
	var difference = Date.parse(document.lastModified) - dn.getTime();
	var seconds = 1000;
	var minutes = seconds*60;
	var hours = minutes*60;
	var days = hours*24;

	
	runner();
	
	setInterval(runner, 100);
	if (elementchange) setInterval(changer, changetime);
	
	function runner () {
		dn = new Date();
	
		//var timeleft = finaltime - dn - difference;
		var timeleft = finaltime - dn;
		if (timeleft < 0) timeleft = 0;
		
		
		var leftdays = Math.floor(timeleft/days);
		timeleft = timeleft - (days * leftdays);
		var lefthours = Math.floor(timeleft/hours);
		timeleft = timeleft - (hours * lefthours);
		var leftminutes = Math.floor(timeleft/minutes);
		timeleft = timeleft - (minutes * leftminutes);
		var leftseconds = Math.floor(timeleft/seconds);
		
		
		pad(leftdays, elementd);
		pad(lefthours, elementh);
		pad(leftminutes, elementm);
		pad(leftseconds, elements);
	}
	
	function changer () {
		if (elementchange.style.visibility == 'visible') {
			elementchange.style.visibility = 'hidden';
		} else {
			elementchange.style.visibility = 'visible';
		}
	}

	function pad(number, element){
		var nr1 = Math.floor(number/10);
		var nr2 = number - (nr1 * 10);
		element.childNodes[0].style.top = - nr1 * offset + "px";
		element.childNodes[1].style.top = - nr2 * offset + "px";
		element.childNodes[0].alt = nr1;
		element.childNodes[1].alt = nr2;
	}



}
