/************** AUFRUF - START *************

<SCRIPT language=JavaScript src="./menue/counter.js" type=text/JavaScript></SCRIPT>

<body onload="countdown('2006', '5', '6', '8', '0', '0', '1', '1')">

<span name="countdown" id="countdown"></span>

---------------------

SYNTAX: countdown(jahr, monat, tag, stunde, minute, sekunde, showmin, showsek)

************* AUFRUF - ENDE **************/


	function countdown(jahr, monat, tag, stunde, minute, sekunde, showmin, showsek)
	{
		var target = "countdown";

		if(document.getElementById)
			target = document.getElementById(target);
		else if(document.layers)
			target = document.layers+ "." + target;
		else if(document.all)
			target = document.all+ "." + target;
		
		var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);
        startDatum=new Date(); // Aktuelles Datum

        // Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
        if(startDatum<zielDatum)
		{
			var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;
			var countertext = "";

			/* 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);

			// ############# Anzeige formatieren #############
			// Jahre
			if(jahre>0)
				(jahre!=1) ? countertext+=jahre+" Jahren,  " : countertext+=jahre+" Jahr,  ";

			// Monate
			if(jahre>0 || monate>0)
				(monate!=1) ? countertext+=monate+" Monaten,  " : countertext+=monate+" Monat,  ";
	
			// Tage
			if(jahre>0 || monate>0 || tage>0)
				(tage!=1) ? countertext+=tage+" Tagen,  " : countertext+=tage+" Tag,  ";

			// Stunden
			if(jahre>=1 || monate>=1 || tage>=1 || stunden>=1)
			{
				(stunden!=1) ? countertext+=stunden+" Stunden" : countertext+=stunden+" Stunde";
				if(showmin==1)
					countertext+=", ";
			}
				
			// Minuten
			if((jahre>0 || monate>0 || tage>0 || stunden>0 || minuten>0) && showmin==1)
			{
				(minuten!=1) ? countertext+=minuten+" Minuten" : countertext+=minuten+" Minute";
				if(showsek==1)
					countertext+="  und  ";
			}

			// Sekunden
			if((jahre>0 || monate>0 || tage>0 || stunden>0 || minuten>0 || sekunden>0) && showsek==1 && showmin==1)
			{	
				if(sekunden<10)
					sekunden="0"+sekunden;
				(sekunden!=1) ? countertext+=sekunden+" Sekunden" : countertext+=sekunden+" Sekunde";
			}

			if(countertext != "")
			{
				target.innerHTML="ist in "+countertext;
				window.setTimeout("countdown("+jahr+", "+monat+", "+tag+", "+stunde+", "+minute+", "+sekunde+", "+showmin+", "+showsek+")", 1000);
			}
			else
				target.innerHTML="war am "+ tag +"."+ monat +"."+ jahr;

        }
        // Anderenfalls alles auf Null setzen
        else
			target.innerHTML="war am "+ tag +"."+ monat +"."+ jahr;
      }
