
	// Ziel-Datum in MEZ

	//Erfolgreich getestet mit Internet Explorer 5.5 und 6.0,
	//Netscape 4.75, 6.1, 7.0 und 7.1, Mozilla 1.0, 1.21 und 1.4
	//sowie Opera 6.01 und 7.01.

	//http://www.jjam.de/JavaScript/Datum_Uhrzeit/Countdown.html

	var during;
	var zumzur;
	var anlass;
	var zielDatum;

	function startcountdown(during1, jahr, monat, tag, stunde, minute, sekunde, zumzur1, anlass1)
	{
		if (during1!=-1) {
			jahr=jahr+1900;
			monat=monat+1;
			tag=tag+0;
			stunde=stunde+0;
			minute=minute+0;
			sekunde=sekunde+0;
			zielDatum1=new Date(jahr,monat-1,tag,stunde,minute,sekunde);
		}

		during=during1;
		zumzur=zumzur1;
		anlass=anlass1;
		zielDatum=zielDatum1;

		countdown();
	}

	function countdown() {

		startDatum=new Date(); // Aktuelles Datum

		// Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
		if((startDatum<=zielDatum) && (during!=-1))  {

			var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;

			/* Allgemeines Vorgehen:
			* Zunächst werden die vollen Jahre gezählt
			* und anschließend der Start- und Ziel-Monat auf den jeweiligen 1. gesetzt.
			* Nun werden erst die vollen Monate vom 1. zum 1. des Start- bzw. Ziel-Monats
			* berechnet und danach die tatsächlichen Monatstage wieder mit einbezogen.
			* Dieses Vorgehen vermeidet Probleme mit den verschiedenen Monatslängen.
			* Was übrig bleibt, wird in Tagen, Stunden, Minuten und Sekunden ausgedrückt.*/

			// Jahre
			if(startDatum<zielDatum) {
				while(startDatum<zielDatum) {
					if(startDatum.setFullYear(startDatum.getFullYear()+1)<=zielDatum) jahre++;
				}

				startDatum.setFullYear(startDatum.getFullYear()-1);
			}

			// Restliche Tage zum Monatsende ermitteln
			var restTage=0;
			var m=startDatum.getMonth();
			if(m==1-1|| m==3-1||m==5-1||m==7-1||m==8-1||m==10-1||m==12-1)
				restTage=31-startDatum.getDate();
			else if(m==4-1|| m==6-1||m==9-1||m==11-1) restTage=30-startDatum.getDate();
			else if(m==2-1) {
			if(startDatum.getFullYear()%4==0 && (startDatum.getFullYear()%100!=0
				|| startDatum.getFullYear()%400==0))
					restTage=29-startDatum.getDate(); // Schaltjahr
			else restTage=28-startDatum.getDate();
		}

		// Start- und Ziel-Tag merken und auf 1 setzen
		var startTag=startDatum.getDate();
		var zielTag=zielDatum.getDate();
		startDatum.setDate(1);
		zielDatum.setDate(1);

		// Monate
		if(startDatum<zielDatum) {
			while(startDatum<zielDatum) {
				if(startDatum.setMonth(startDatum.getMonth()+1)<=zielDatum) monate++;
			}
			startDatum.setMonth(startDatum.getMonth()-1);
		}

		// Tatsächlichen Start- und Ziel-Tag berücksichtigen
		if(startDatum.getMonth()==zielDatum.getMonth()) {
			if(startTag<=zielTag) startDatum.setDate(startTag);
			else {
				monate--;
				tage=restTage+1;
			}
		}
		else {
			startDatum.setMonth(startDatum.getMonth()+1);
			if(startTag>=zielTag) tage=restTage+1;
			else {
				monate++;
				startDatum.setDate(startTag);
			}
		}
		zielDatum.setDate(zielTag);

		// Tage
		restTage=Math.floor((zielDatum-startDatum)/(24*60*60*1000));
		startDatum.setTime(startDatum.getTime()+restTage*24*60*60*1000);
		tage+=restTage;

		// Stunden
		stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
		startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);

		// Minuten
		minuten=Math.floor((zielDatum-startDatum)/(60*1000));
		startDatum.setTime(startDatum.getTime()+minuten*60*1000);

		// Sekunden
		sekunden=Math.floor((zielDatum-startDatum)/1000);

		var xjahre=jahre;
		var xmonate=monate;
		var xtage=tage;
		var xstunden=stunden;
		var xminuten=minuten;

		// Anzeige formatieren
		(jahre!=1)?jahre=jahre+" Jahre,  ":jahre=jahre+" Jahr,  ";
		(monate!=1)?monate=monate+" Monate,  ":monate=monate+" Monat,  ";
		(tage!=1)?tage=tage+" Tage,  ":tage=tage+" Tag,  ";
		(stunden!=1)?stunden=stunden+" Stunden,  ":stunden=stunden+" Stunde,  ";
		(minuten!=1)?minuten=minuten+" Minuten  und  ":minuten=minuten+" Minute  und  ";
		if(sekunden<10) sekunden="0"+sekunden;
		(sekunden!=1)?sekunden=sekunden+" Sekunden":sekunden=sekunden+" Sekunde";

		var alreadyDisplayed=false;


		if (xjahre > 0) {
			writeHTMLToLayer('countd', 'Noch '+jahre+monate+tage+stunden+minuten+sekunden+' bis '+zumzur+' '+anlass);
			alreadyDisplayed=true;
		}

		if (!alreadyDisplayed && (xmonate > 0)) {
			writeHTMLToLayer('countd', 'Noch '+monate+tage+stunden+minuten+sekunden+' bis '+zumzur+' '+anlass);
			alreadyDisplayed=true;
		}

		if (!alreadyDisplayed && (xtage>0)) {
			writeHTMLToLayer('countd', 'Noch '+tage+stunden+minuten+sekunden+' bis '+zumzur+' '+anlass);
			alreadyDisplayed=true;
		}

		if (!alreadyDisplayed && (xstunden>0)) {
			writeHTMLToLayer('countd', 'Noch '+stunden+minuten+sekunden+' bis '+zumzur+' '+anlass);
			alreadyDisplayed=true;
		}

		if (!alreadyDisplayed && (xminuten>0)) {
			writeHTMLToLayer('countd', 'Noch '+minuten+sekunden+' bis '+zumzur+' '+anlass);
			alreadyDisplayed=true;
		}

		if (!alreadyDisplayed) {
			writeHTMLToLayer('countd', 'Noch '+sekunden+' bis '+zumzur+' '+anlass);
		}

		setTimeout('countdown()',990);
	}
	// Anderenfalls alles auf Null setzen
	else
		if (during!=-1) writeHTMLToLayer('countd', 'Es ist '+anlass+'. Viel Spass beim Feiern');
}
