// Tage Schaltjahr
var tage1 = new Array(31,29,31,30,31,30,31,31,30,31,30,31);

// Tage kein Schaltjahr
var tage2 = new Array(31,28,31,30,31,30,31,31,30,31,30,31); 

// Monate in Worten
var monate1 = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");

// Monate in Zahlen
var monate2 = new Array("01","02","03","04","05","06","07","08","09","10","11","12");


// Erstellen der Formularfelder
// tag		= name des Feldes + "day", "month", "year"
// jahre 	= wieviel Jahre +/- im Jahresfeld
// zw		= Monate in Zahlen (z) oder Worten (w)
// datum	= angegebenes Datum (mm-dd-yyyy) oder "now"
// minutes  = Minutenschritte in der Option
// seconds  = Sekundenschritte in der Option

function dateCreate(tag,jahre, zw, datum, minutes,seconds)
	{
	if (jahre) {var jahr='y';} else {var jahr = '';}
	document.write('<select name="' + tag + 'day" size="1"></select> . ');
	document.write(' <select onchange="javascript:monthChange(\'' + tag + '\')" name="' + tag + 'month" size="1"></select>');
	if (jahr == "y")
		{
		switch(zw)
			{
			case "z":
			document.write(" . ");
			break;
			default:
			document.write(" ");
			}
		document.write(' <select onchange="javascript:monthChange(\'' + tag + '\')" name="' + tag + 'year" size="1"></select>');
		}
	if (minutes) {document.write(' - ');}
	timeCreate(tag,datum,minutes,seconds);
	dateFill(tag,zw,jahre,datum);
	}
	
function dateFill(tag, zw, jahre,  datum,minutes)
	{
	switch (datum)
		{
		case "now":
		var jetzt = new Date();
		break;
		default:
		var jetzt = new Date(datum);
		break;
		}
	if (document.getElementById(tag + "year"))
		{
		var jahr = jetzt.getFullYear() % 4;
		switch (jahr)
			{
			case 0:
			var tage = tage1; //Schaltjahr
			break;
			default:
			var tage = tage2; //kein Schaltjahr
			break;
			}
		}
	else
		{
		var tage = tage1; // Alle Tage, da kein Jahr
		}
	dayFill(tag, jetzt.getMonth(), tage);
	switch (zw)
		{
		case "w":
		var monate = monate1;
		break;
		default:
		var monate = monate2;
		break;
		}
	monthFill(tag, monate);
	document.getElementById(tag +"day").selectedIndex = jetzt.getDate() - 1;
	document.getElementById(tag +"month").selectedIndex = jetzt.getMonth();
	if (document.getElementById(tag + "year"))
		{
		yearFill(tag,jahre,jetzt);
		document.getElementById(tag +"year").value = jetzt.getFullYear();
		}
	}

// Löschen der Inhalte eines Feldes
// Feld		= name, der mit createObject() übergeben wurde
// which	= "day", "month" oder "year"
function dateDel(feld, which)
	{
	while(document.getElementsByName(feld + which)[0].length >0)
		{document.getElementsByName(feld + which)[0].options[0] = null;}
	}
function dayFill(tag, month, tage)
	{
	dateDel(tag, 'day');
	for(i=1;i<=tage[month];i++)
		{
		if (i<10) {var i2="0"+i;} else {var i2=i;}
		NeuerEintrag = new Option(i2,i);
		document.getElementsByName(tag + "day")[0].options[document.getElementsByName(tag+ "day")[0].length] = NeuerEintrag;
		}
	}
function monthFill(tag,monate)
	{
	dateDel(tag, 'month');
	for(i=1;i<=12;i++)
		{
		i2 = monate[i-1];
		NeuerEintrag = new Option(i2,i);
		document.getElementsByName(tag + "month")[0].options[document.getElementsByName(tag+ "month")[0].length] = NeuerEintrag;
		}
	}
function yearFill(tag,jahre, jetzt)
	{
	dateDel(tag, 'year');
	for(i=jetzt.getFullYear()-jahre;i<=jetzt.getFullYear()+ parseInt(jahre);i++)
		{
		NeuerEintrag = new Option(i,i);
		document.getElementsByName(tag + "year")[0].options[document.getElementsByName(tag+ "year")[0].length] = NeuerEintrag;
		}
	}	
function timeSelect(tag, datum,minutes,seconds)
	{
	switch (datum)
		{
		case "now":
		var jetzt = new Date();
		break;
		default:
		var jetzt = new Date(datum);
		break;
		}
	if (jetzt.getMinutes() % Number(minutes))
		{var minuten = jetzt.getMinutes() - (jetzt.getMinutes() % Number(minutes));}
	else
		{var minuten = jetzt.getMinutes();}
	if (seconds != '')
		{
		if (jetzt.getSeconds() % Number(seconds))
			{var sekunden = jetzt.getSeconds() - (jetzt.getSeconds() % Number(seconds));}
		else
			{var sekunden = jetzt.getSeconds();}
		document.getElementById(tag +"seconds").value = sekunden;
		}
	document.getElementById(tag +"hour").value = jetzt.getHours();
	document.getElementById(tag +"minute").value = minuten;
	}
	
	
function monthChange(tag)
	{
	var mtag = document.getElementById(tag + "day").value; // ausgew&auml;hlter tag
	if (document.getElementById(tag + "year"))
		{
		var jetzt = new Date(document.getElementById(tag + "month").value + '-' + mtag + '-' + document.getElementById(tag + "year").value);
		var jahr = jetzt.getFullYear() % 4;
		switch (jahr)
			{
			case 0:
			var tage = tage1;
			break;
			default:
			var tage = tage2;
			break;
			}
		}
	else
		{
		var tage = tage1;
		}
	dayFill(tag, document.getElementById(tag + "month").value - 1 , tage);
	var maxDay = document.getElementById(tag + "day").length;
	if (maxDay - mtag < 0)
		{
		document.getElementById(tag + "day").value = maxDay;
		}
	else
		{ 
		document.getElementById(tag + "day").value = mtag;
		}
	}
	
function timeCreate (tag,datum,minutes,seconds)
	{
	if (minutes != "")
		{
		// Die Felder für die Zeit
		document.write('<select name="' + tag + 'hour" size="1"></select>');
		document.write(' : <select name="' + tag + 'minute" size="1"></select>');
		if (seconds)
			{
			document.write(' . <select name="' + tag + 'seconds" size="1"></select>');
			for(i=0;i<=59;i = i + Number(seconds))
				{
				if (i<10) {var i2="0"+i;} else {var i2=i;}
				NeuerEintrag = new Option(i2,i);
				document.getElementsByName(tag + "seconds")[0].options[document.getElementsByName(tag+ "seconds")[0].length] = NeuerEintrag;
				}
			}
		for(i=0;i<=23;i++)
			{
			if (i<10) {var i2="0"+i;} else {var i2=i;}
			NeuerEintrag = new Option(i2,i);
			document.getElementsByName(tag + "hour")[0].options[document.getElementsByName(tag+ "hour")[0].length] = NeuerEintrag;
			}
		for(i=0;i<=59;i = i + Number(minutes))
			{
			if (i<10) {var i2="0"+i;} else {var i2=i;}
			NeuerEintrag = new Option(i2,i);
			document.getElementsByName(tag + "minute")[0].options[document.getElementsByName(tag+ "minute")[0].length] = NeuerEintrag;
			}
		timeSelect(tag,datum, minutes, seconds);
		}
	}

function checkTimeDiff(start, ende)
	{
	var shour = parseInt(document.getElementById(start + "hour").value);
	var sminute = parseInt(document.getElementById(start + "minute").value);
	if (document.getElementById(start + "seconds"))
		{
		var sseconds = parseInt(document.getElementById(start + "seconds").value);
		}
	var ehour = parseInt(document.getElementById(ende + "hour").value);
	var eminute = parseInt(document.getElementById(ende + "minute").value);
	if (document.getElementById(ende + "seconds"))
		{
		var eseconds = parseInt(document.getElementById(ende + "seconds").value);
		}
	
	var text = 'Die Endzeit ist kleiner wie die Startzeit !';
	
	if (shour > ehour)
		{alert(text);}
	if (shour == ehour && sminute > eminute)
		{alert(text);}
	if (document.getElementById(ende + "seconds") && document.getElementById(start + "seconds"))
		{
		if (shour == ehour && sminute == eminute && sseconds > eseconds)
			{alert(text);}
		}
	}

	
function checkDateDiff(start, ende)
	{
	var emon = parseInt(document.getElementById(ende + "month").value);
	var smon = parseInt(document.getElementById(start + "month").value);
	var eday = parseInt(document.getElementById(ende + "day").value);
	var sday = parseInt(document.getElementById(start + "day").value);
	if (document.getElementById(start + "hour"))
		{
		var shour = parseInt(document.getElementById(start + "hour").value);
		var sminute = parseInt(document.getElementById(start + "minute").value);
		if (document.getElementById(start + "seconds"))
			{
			var sseconds = parseInt(document.getElementById(start + "seconds").value);
			}
		}
	
	if (document.getElementById(ende + "hour"))
		{
		var ehour = parseInt(document.getElementById(ende + "hour").value);
		var eminute = parseInt(document.getElementById(ende + "minute").value);
		if (document.getElementById(ende + "seconds"))
			{
			var eseconds = parseInt(document.getElementById(ende + "seconds").value);
			}
		}
		
	var text = 'Das Enddatum ist kleiner wie das Startdatum !';
	
	if (document.getElementById(start + "year") && document.getElementById(ende + "year"))
		{
		var eyear = parseInt(document.getElementById(ende + "year").value);
		var syear = parseInt(document.getElementById(start + "year").value);
		if (eyear < syear)
			{alert(text);}
		if (eyear == syear && emon < smon)
			{alert(text);}
		if (eyear == syear && emon == smon && sday > eday)
			{alert(text);}
		if (shour)
			{
			if (eyear == syear && emon == smon && sday == eday && shour > ehour)
				{alert(text);}
			if (eyear == syear && emon == smon && sday == eday && shour == ehour && eminute < sminute)
				{alert(text);}
			if (sseconds)
				{
				if (eyear == syear && emon == smon && sday == eday && shour == ehour && eminute == sminute && eseconds < sseconds)
					{alert(text);}
				}
			}
		}
	else
		{
		if(emon < smon)
			{alert(text);}
		if(emon == smon && sday > eday)
			{alert(text);}
		if (shour)
			{
			if (emon == smon && sday == eday && shour > ehour)
				{alert(text);}
			if (emon == smon && sday == eday && shour == ehour && eminute < sminute)
				{alert(text);}
			if (sseconds)
				{
				if (emon == smon && sday == eday && shour == ehour && eminute == sminute && eseconds < sseconds)
					{alert(text);}
				}
			}
		}
	}

