function beende() {
	document.getElementById(nDivFormular1).style.display = 'inline';
	document.getElementById(nDivFormular2).style.display = 'inline';
	document.getElementById(nDivKalender).style.display = 'none';
	was = '';
}

function showKalender(id,was_jetzt) {
	was = was_jetzt;
	document.getElementById(nDivKalender).style.display = 'inline';
	document.getElementById(nDivFormular1).style.display = 'none';
	document.getElementById(nDivFormular2).style.display = 'none';
	document.getElementById('opt_'+was+'_wann').checked = 'checked';
	var jetzt, Tag, Monat, Jahr, input;
	// Input-String, falls vorhanden bearbeiten, sonst heute
  /* In den folgenden Zeilen muss das Formularfeld für das ausgewählte Datum angepasst werden */
	if (was == 'von') {
		input = document.xsucheform.von_y.value+"-"+document.xsucheform.von_m.value+"-"+document.xsucheform.von_d.value;
		if (document.all) {
		  document.all[nDivKalender].style.setAttribute("left","420px","false");
		  document.all[nDivKalender].style.removeAttribute("right","false");
		} else {
		  document.getElementById(nDivKalender).style.left = '420px';
		  document.getElementById(nDivKalender).style.right = '';
		}
	} else {
		input = document.xsucheform.bis_y.value+"-"+document.xsucheform.bis_m.value+"-"+document.xsucheform.bis_d.value;
		if (document.all) {
		  document.all[nDivKalender].style.removeAttribute("left","false");
		  document.all[nDivKalender].style.setAttribute("right","330px","false");
		} else {
		  document.getElementById(nDivKalender).style.left = '';
		  document.getElementById(nDivKalender).style.right = '330px';
		}
	}
	if (input == "--") {
		jetzt = new Date();
		Tag = jetzt.getDate();
		Monat = jetzt.getMonth();
		Jahr = jetzt.getFullYear();
	} else {
		Jahr = Number(input.substr(0,4));
		Monat = Number(input.substr(5,2))-1;			// (x-1) wegen Januar=0, usw
		Tag = Number(input.substr(8,2));
		if (isNaN(Jahr) || isNaN(Monat) || isNaN(Tag)) {
			jetzt = new Date();
			Tag = jetzt.getDate();
			Monat = jetzt.getMonth();
			Jahr = jetzt.getFullYear();
		}
	}
	update(Tag,Monat,Jahr);
}

function adopt() {
	var sMonat = (gMonat < 10) ? "0"+Number(gMonat) : Number(gMonat);
	var sTag = (gTag < 10) ? "0"+Number(gTag) : Number(gTag);
/* In den folgenden Zeilen muss das Formularfeld für das ausgewählte Datum angepasst werden */
	if (was == 'von') {
		document.xsucheform.von_d.value = sTag;
		document.xsucheform.von_m.value = sMonat;
		document.xsucheform.von_y.value = gJahr;
		// folgenden Zeilen auskommentieren, wenn nicht gewünscht
		document.xsucheform.bis_d.value = sTag;
		document.xsucheform.bis_m.value = sMonat;
		document.xsucheform.bis_y.value = gJahr;
	} else {
		document.xsucheform.bis_d.value = sTag;
		document.xsucheform.bis_m.value = sMonat;
		document.xsucheform.bis_y.value = gJahr;
	}
}

function setTag(Tag) {
	var first, offset, id, wdOS;
	// Hintergrund resetten
	first = new Date(gJahr,(gMonat-1),1);
	wdOS = new Array(6,0,1,2,3,4,5);
	offset = wdOS[first.getDay()];
	if ((offset+gTag) < 10) {
		id = "c0"+(offset+gTag);
	} else {
		id = "c"+(offset+gTag);
	}
	document.getElementById(id).style.backgroundColor = bgColNorm;
	document.getElementById(id).firstChild.style.color           = colNorm;
	// AEnderung
	gTag = Tag;
	// Hintergrund highlighten
	if ((offset+Tag) < 10) {
		id = "c0"+(offset+Tag);
	} else {
		id = "c"+(offset+Tag);
	}
	document.getElementById(id).style.backgroundColor = bgColHigh;
	document.getElementById(id).firstChild.style.color           = colHigh;
	adopt();
}

function zurueck() {
	var jetzt, Tag, Monat, Jahr, hTag;
	var Stopp = 31;
	Monat = ((gMonat - 2) < 0) ? (gMonat + 10) : (gMonat - 2);
	Jahr = (gMonat == 1) ? (gJahr-1) : gJahr;
	if (Monat == 1) {
		Stopp -= 3;
		if (Jahr % 4 == 0) {++Stopp;}
		if (Jahr % 100 == 0) {--Stopp;}
		if (Jahr % 400 == 0) {++Stopp;}
	}
	if ((Monat == 3) || (Monat == 5) || (Monat == 8) || (Monat == 10)) {--Stopp;}
	if (Number(gTag) > Stopp) {
		Tag = Stopp;
	} else {
		Tag = gTag;
	}
	jetzt = new Date();
	hTag = jetzt.getDate();
	if (Number(gTag) < hTag) {
	  Tag = hTag;
	}
	update(Tag,Monat,Jahr);
	adopt();
}

function vor() {
	var Tag,Monat,Jahr;
	var Stopp = 31;
	Monat = gMonat % 12;
	Jahr = (gMonat == 12) ? (gJahr+1) : gJahr;
	if (Monat == 1) {
		Stopp -= 3;
		if (Jahr % 4 == 0) {++Stopp;}
		if (Jahr % 100 == 0) {--Stopp;}
		if (Jahr % 400 == 0) {++Stopp;}
	}
	if ((Monat == 3) || (Monat == 5) || (Monat == 8) || (Monat == 10)) {--Stopp;}
	if (Number(gTag) > Stopp) {
		Tag = Stopp;
	} else {
		Tag = gTag;
	}
	update(Tag,Monat,Jahr);
	adopt();
}

function update(Tag,Monat,Jahr) {
	var i, wdOS, offset, id, nMonat, jetzt, hTag, hMonat, hJahr;
	var Stopp = 31;
	// heutiges Datum ermitteln, damit keine vergangenen Daten ausgewaehlt werden koennen
	jetzt = new Date();
	hTag = jetzt.getDate();
	hMonat = jetzt.getMonth();
	hJahr = jetzt.getFullYear();
	
	if (Monat==0){nMonat="Januar";}
	if (Monat==1){nMonat="Februar";}
	if (Monat==2){nMonat="März";}
	if (Monat==3){nMonat="April";}
	if (Monat==4){nMonat="Mai";}
	if (Monat==5){nMonat="Juni";}
	if (Monat==6){nMonat="Juli";}
	if (Monat==7){nMonat="August";}
	if (Monat==8){nMonat="September";}
	if (Monat==9){nMonat="Oktober";}
	if (Monat==10){nMonat="November";}
	if (Monat==11){nMonat="Dezember";}
	//document.getElementById(cellMonat).firstChild.nodeValue = nMonat+" "+Jahr;
	if (document.all) {
	  document.all[cellMonat].innerText = nMonat+" "+Jahr;
	} else {
	  document.getElementById(cellMonat).firstChild.nodeValue = nMonat+" "+Jahr;
	}
	// Schon mal das gewaehlte merken
	gMonat = Monat+1;
	gJahr = Jahr;
	gTag = Tag;
	// alle Zellen entleeren, koennten ja schon mal gefuellt & jetzt ungebraucht sein
	for (i = 1; i < 43; ++i) {
		if (i < 10) {
			id = "c0"+i;
		} else {
			id = "c"+i;
		}
		document.getElementById(id).firstChild.href="";
		document.getElementById(id).firstChild.firstChild.nodeValue="";
		// Hintergrundfarbe resetten
		document.getElementById(id).style.backgroundColor = bgColNorm;
		document.getElementById(id).firstChild.style.color           = colNorm;
		// Zellen wieder sichtbar machen
		document.getElementById(id).style.display = '';
	}
	  // Back-Link wiederherstellen
	  document.getElementById('c_back').firstChild.href="javascript:zurueck();";
	// Offset berechnen
	i = new Date(Jahr,Monat,1);
	wdOS = new Array(6,0,1,2,3,4,5);
	offset = wdOS[i.getDay()];
	// Stopp-Tag berechnen
	if (Monat == 1) {
		Stopp -= 3;
		if (Jahr % 4 == 0) {++Stopp;}
		if (Jahr % 100 == 0) {--Stopp;}
		if (Jahr % 400 == 0) {++Stopp;}
	}
	if ((Monat == 3) || (Monat == 5) || (Monat == 8) || (Monat == 10)) {--Stopp;}
	// Ausgabe
	for (i = 1; i <= Stopp; ++i) {
		if ((i+offset) < 10) {
			id = "c0"+(i+offset);
		} else {
			id = "c"+(i+offset);
		}
		if (((Monat == hMonat) && (i >= hTag)) || (Monat > hMonat) || (Jahr > hJahr)) {		// Gegenwart und Zukunft
		  document.getElementById(id).firstChild.href="javascript:setTag("+i+");"; 
		} else {																			// Vergangenheit
          document.getElementById(id).firstChild.href="javascript:alert('Dieser Tag liegt in der Vergangenheit.');";
		}
		document.getElementById(id).firstChild.firstChild.nodeValue=i;
		if (i == Tag) {
			document.getElementById(id).style.backgroundColor = bgColHigh;
			document.getElementById(id).firstChild.style.color           = colHigh;
		}
	}
	// Behandlung der TabellenZellen vor OffSet & nach Stopp
	for (i = 1; i <= offset; ++i) {
		id = "c0"+(i);
		document.getElementById(id).style.backgroundColor = bgColBack;
	}
	for (i = (Stopp + offset + 1); i <= 42; ++i) {
		id = "c"+(i);
		document.getElementById(id).style.display = 'none'; //style.backgroundColor = bgColBack;
	}
	if (Monat == hMonat) {
	  document.getElementById('c_back').firstChild.href="javascript:alert('Der vorhergehende Monat liegt in der Vergangenheit.');"; }
}

