function kalender(ueber, datum) {
	var wochenstart = 1;
	var wochentage = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
	var monatsnamen = ["Januar", "Februar", "März", "April", "Mai", "Juni","Juli", "August", "September", "Oktober", "November", "Dezember"];
	var zudatum = (datum == null || datum =="" ?  new Date() : schalt(datum));
	var zurmonat = new Date(zudatum);zurmonat.setMonth(zudatum.getMonth()-1);
	if (zudatum.getMonth()%12 != (zurmonat.getMonth()+1)%12) {zurmonat.setMonth(zudatum.getMonth());zurmonat.setDate(0);}
	var vormonat = new Date(zudatum);vormonat.setMonth(zudatum.getMonth()+1);
	if ((zudatum.getMonth() + 1)%12 != vormonat.getMonth()%12)vormonat.setDate(0);
	var erstertag= new Date(zudatum);erstertag.setDate(1);erstertag.setDate(1-(7+erstertag.getDay()-wochenstart)%7);
	var letztertag = new Date(vormonat);letztertag.setDate(0);
	var schreib = new String (
		"<html><head><title>Kalender</title>"+
        "<style>body{background-Color:#EDE7BE;}td{font-family:Arial;font-size:13px;}a{font-family:Arial;font-size:13px;color:#000000;text-decoration:underline;font-weight: bold;}a:hover{color:#BB0000;text-decoration: none;font-weight:bold;}</style>"+	
		"</head><body><TABLE border=\"0\" cellspacing=\"2\" cellpadding=\"2\"><TR bgcolor=\"#BB0000\"><TD colspan=\"7\">"+
    	"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>"+
		"<td><a href=\"javascript:window.opener.kalender('"+ueber+"', '"+ gieb(zurmonat)+"');\">"+
		"<img src=\"pl.gif\" width=\"16\" height=\"16\" border=\"0\"></a></td>"+
    	"<td width=\"100%\" align=\"center\"><font color=\"#FFFFDD\"><b>"+monatsnamen[zudatum.getMonth()]+" "+zudatum.getFullYear()+"</b></font></td>"+
		"<td><a href=\"javascript:window.opener.kalender('"+ueber+"', '"+gieb(vormonat)+"');\">"+
		"<img src=\"pr.gif\" width=\"16\" height=\"16\" border=\"0\"></a></td></tr></table>"+
	    "</TD></TR>"		
		);
	var tag = new Date(erstertag);
	schreib += "<tr>";
	for (var n=0; n<7; n++)
		schreib += "<td bgcolor=\"#BB0000\" align=\"center\"><font color=\"#FFFFDD\"><img src=\"no200b.gif\" alt=\"\"><br><b>"+
		wochentage[(wochenstart+n)%7]+"</b></td>";
	schreib += "</tr>";
	while (tag.getMonth() == zudatum.getMonth() ||
		tag.getMonth() == erstertag.getMonth()) {
		schreib += "<tr>";
		for (var i=0; i<7; i++) {
		
				if (tag.getDate() == zudatum.getDate() &&
					tag.getMonth() == zudatum.getMonth())
					schreib += "<td bgcolor=\"#FFFFDD\" align=\"center\"><a href=\"javascript:window.opener."+ueber+".value='"+gieb(tag)+"'; window.close();\">";		
		
				else if (tag.getMonth() == zudatum.getMonth())
					schreib += "<td bgcolor=\"#FFFFDD\" align=\"center\"><a href=\"javascript:window.opener."+ueber+".value='"+gieb(tag)+"'; window.close();\">";
				else
					schreib += "<td bgcolor=\"#EDE7BE\" align=\"center\"><font color=#EDE7BE>";
				    schreib += tag.getDate()+"</a></font></td>";
			        tag.setDate(tag.getDate()+1);					
		}
		schreib += "</tr>";
	}
	schreib += "</table></body></html>";
	var fenster = window.open("", "Kalender","width=220,height=200,top=300,left=100");
	fenster.opener = self;
	fenster.focus();
	var kalender = fenster.document;
	kalender.write (schreib);
	kalender.close();
}
function gieb (zudatum) {
	return (new String (zudatum.getDate()+"."+(zudatum.getMonth()+1)+"."+zudatum.getFullYear()));
}
function schalt (datum) {
	var eingabe = /^(\d+)\.(\d+)\.(\d+)$/;
	if (!eingabe.exec(datum)) return alert("Falsche Eingabe!\nverwenden Sie folgende Schreibweise:\nTag.Monat.Jahr\noder nichts schreiben\nund Tage im Kalender wählen.");	
	var jahr0 = RegExp.$3.valueOf();
	var lang = jahr0.length;
	if(lang == 2)  jahr = "20" + jahr0;
	else if (lang == 1)  jahr = "200" + jahr0;
	else jahr = jahr0;
	return (new Date (jahr, RegExp.$2-1, RegExp.$1));
}

