

function isleapyear(Year) {
 /* (c)2000 www.diaware.de */
 /* Diese Funktion ermittelt ob Jahr ein Schaltjahr ist*/
 /* Year...gesuchte Jahr */
 /* Month...gesuchter Monat */
 if(Year%4 == 0) {
 if(Year%100 == 0) {
 if(Year%400 == 0) {
 return true;
 } else {
 return false;
 }
 } else {
 return true;
 }
 } else {
 return false;
 }
}

function daysofmonth(Year, Month) {
 /* (c)2000 www.diaware.de */
 /* Diese Funktion ermittelt die Anzahl der Tage im geg. Monat*/
 /* Year...gesuchte Jahr */
 /* Month...gesuchter Monat */
 var Count;
 switch(Number(Month)) {
 case 1: return 31;
 case 2: if(isleapyear(Number(Year))) return 29; else return 28;
 case 3: return 31;
 case 4: return 30;
 case 5: return 31;
 case 6: return 30;
 case 7: return 31;
 case 8: return 31;
 case 9: return 30;
 case 10: return 31;
 case 11: return 30;
 case 12: return 31;
 default: return 0;
 }
}

function weekday(Year, Month, Day) {
	Year=Number(Year);
	Month=Number(Month);
	Day=Number(Day);
 /* (c)2000 www.diaware.de */
 /* Diese Funktion ermittelt den Wochentag */
 /* Ausgelegt für Daten ab 1.1.1600 nach dem Gregorianischen Kalender */
 /* Year...gesuchte Jahr */
 /* Month...gesuchter Monat */
 /* Day...gesuchter Tag */
 if (Year < 1600) return 0;
 var CountLeapYears = Math.floor((Year - 1600)/4) /* Anzahl normaler Schaltjahre */
 - Math.floor((Year - 1600)/100) /* Alle 100 Jahre kein Schaltjahr */
 + Math.floor((Year - 1600)/400); /* dafür aber alle 400 Jahre */
 var CountDays = (Year - 1600) * 365 + CountLeapYears;
 for(i=1; i < Month; i++) {
 CountDays += daysofmonth(Year,i)
 }
 if(isleapyear(Year)) /*Korrektur wenn Schaltjahr und wenn keins */
 CountDays += Day + 4;
 else
 CountDays += Day + 5;

 return CountDays % 7;
}

function calweek(Year, Month, Day) {
 /* (c)2000 www.diaware.de */
 /* Diese Funktion ermittelt die Kalenderwoche */
 /* Ausgelegt für Daten vom 1.1.1900 bis 31.12.2099 */
 /* Year...gesuchte Jahr */
 /* Month...gesuchter Monat */
 /* Day...gesuchter Tag */

 /* Ersten Tag der ersten Kalenderwoche bestimmen */
 var FirstDayOfFirstWeek = weekday(Year, 1, 4);
 var CountDays = Day + 3 + FirstDayOfFirstWeek;
 for(i=1; i < Month; i++) { CountDays += daysofmonth(Year,i); }
 if( CountDays < 7 ) {
 return calweek(Year-1, 12, 31); }
 else {
 return Math.floor(CountDays/7); }
}

function monthtotext(Month) {
 /* (c)2000 www.diaware.de */
 /* Diese Funktion gibt den Namen des Monats zurück */
 /* Month...gesuchter Monat */
 switch(Month) {
 case 1: return "Januar";
 case 2: return "Februar";
 case 3: return "März";
 case 4: return "April";
 case 5: return "Mai";
 case 6: return "Juni";
 case 7: return "Juli";
 case 8: return "August";
 case 9: return "September";
 case 10: return "Oktober";
 case 11: return "November";
 case 12: return "Dezember";
 default: return Month;
 }
}

function weekdaytotext(WeekDay) {
 /* (c)2000 www.diaware.de */
 /* Diese Funktion gibt den Namen des Wochentages zurück */
 /* WeekDay...gesuchter Wochentag */
 switch(WeekDay) {
 case 0: return "Montag";
 case 1: return "Dienstag";
 case 2: return "Mittwoch";
 case 3: return "Donnerstag";
 case 4: return "Freitag";
 case 5: return "Samstag";
 case 6: return "Sonntag";
 default: return WeekDay;
 }
}

function caltable(Year, Month, testmode) {
 /* (c)2000 www.diaware.de */
 /* Diese Funktion liefert eine htmltabelle des angegebenen Jahres zurück*/
 /* Ausgelegt für Daten ab 1.1.1600 */
 /* Year...gesuchte Jahr */
 /* Month...gesuchter Monat */
 /* xDays...Anzahl der Tage im Monat */
 /* xWeekDay...Tag mit dem die Woche beginnt */
 if (testmode == undefined) {testmode = false;}
 var hasAtLeastOneLink = false;
 var xDays = daysofmonth(Year, Month);
 var xWeekDay = weekday(Year, Month, 1);
 var Text;
 /* wie viele Felder hat Tabelle, wenn jede Zeile 7 Spalten hat */
 var xFields = (xDays + xWeekDay - 1) - ((xDays + xWeekDay - 1) % 7) + 7;

 Text = "<table border=0 cellspacing=1 class=visible>"
 Text += "<tr><td class=body2 valign=center align=center>KW</td> <td class=head2><b>Mo</b></td> <td class=head2><b>Di</b></td> <td class=head2><b>Mi</b></td> <td class=head2><b>Do</b></td> <td class=head2><b>Fr</b></td> <td class=head3><b>Sa</b></td> <td class=head3><b>So</b></td></tr><tr>";
 Text += "<td class=body2 valign=center align=center>" + calweek(Year, Month, 1) + "</td>"

 var f = document.datum;
 var Year0=parseInt(f.jahr0.value);
 var Month0=parseInt(f.monat0.value);
 var Day0=parseInt(f.tag0.value);
//DEBUG Day0 -= 2;
 var DatXX = new Date();
 var hour = DatXX.getHours();
 var checkWeekday = weekday(Year0, Month0, Day0);

 for(Days=0; Days < xFields ; Days++){
	 if( Days < xWeekDay || Days >= (xDays + xWeekDay)) { /* Monat Beginnt noch nicht */
// DEBUG		 Text += "<td class=empty>" + Day0 + "-" + checkWeekday + "</td>";
			Text += "<td class=empty>&nbsp;</td>";
	 } else {
			var tag = (Days - xWeekDay + 1);
			var frueher = ((Year == Year0) && (Month == Month0) && (tag <= Day0));
			if ((Year == Year0) && (Month == Month0) && 
					((tag == Day0 + 1) || ((tag == Day0 + 3) && (checkWeekday == 4)))) {
				frueher = (hour >= 16); // nächster Tag bzw Fr. (übers Wochenende) nur bis 16:00 
			}
			var showLink = (Days % 7 < 5) && !frueher;
			var cls = (Days % 7 < 5)? '' : ' weekend';
			cls = (Days % 7 >= 5)? 'weekend' : frueher? 'day0' : 'day';
			if (Days % 7 == 0) { // ein Montag
				// darf nur aktiv sein, wenn heute NICHT Wochenende und Freitag vor 16:00
			 if (checkWeekday >= 5) {
					showLink = false;
			 }
			}
			if (showLink) {
				hasAtLeastOneLink = true;
			}
	 		Text += '<td class="' + cls + '">' 
	 		      + (showLink? '<a href="javascript:daySelected('+Year+', '+Month+', '+tag+');">' : '')
	 		      + tag 
	 		      + (showLink? "</a>" : '') 
	 		      + "</td>";
	 }
	 if( (Days % 7) == 6 && (Days + 1) < xFields) { /* Beginn einer neuen Zeile */
		 Text += "</tr><tr><td class=body2 valign=center align=center>" + calweek(Year, Month, Days + 2 - xWeekDay) + "</td>";
	 }
 }
 Text += "</tr></table>";
 if (testmode) {
 	return hasAtLeastOneLink;
 }
 return Text;
}

function incdate(Year, Month, Day, Inc) {
 /* (c)2000 www.diaware.de */
 /* Diese Funktion liefert ein Array zurück, welches das Datum incrementiert hat*/
 /* Ausgelegt für Daten ab 1.1.1600 */
 /* Year...gesuchte Jahr */
 /* Month...gesuchter Monat */
 /* Day...gesuchter Tag */
 for(i=0; i<Inc; i++) {
 if( Day < daysofmonth(Year, Month) ) {
 Day++;
 } else {
 Day=1;
 if( Month < 12 ) {
 Month++
 } else {
 Month=1;
 Year++;
 }
 }
 }
 return [Year, Month, Day];
}

function decdate(Year, Month, Day, Dec) {
 /* (c)2000 www.diaware.de */
 /* Diese Funktion liefert ein Array zurück, welches das Datum decrementiert hat*/
 /* Ausgelegt für Daten ab 1.1.1600 */
 /* Year...gesuchte Jahr */
 /* Month...gesuchter Monat */
 /* Day...gesuchter Tag */
 for(i=0; i<Dec; i++) {
 if( Day > 1 ) {
 Day--;
 } else {
 if( Month > 1 ) {
 Month--;
 } else {
 Month=12;
 Year--;
 }
 Day=daysofmonth(Year, Month);
 }
 }
 return [Year, Month, Day];
}


//---------------------------------------------------------------------------------------


function fillDateForm() {
 /* (c)2000 www.diaware.de */
 /* Fülle Form mit Defaultwerten */
 var Dat = new Date();
 var Day = Dat.getDate();
 var Month = Dat.getMonth() + 1;
 var Year = Dat.getYear();
 if(Year > 99 && Year < 1600) Year += 1900;
 
 document.datum.jahr0.value = Year;
 document.datum.monat0.value = Month;
 document.datum.tag0.value = Day;
 
 document.datum.jahr.value = Year;
 document.datum.monat.value = Month;
 document.datum.tag.value = Day;
}

function checkDateForm() {
 /* (c)2000 www.diaware.de */
 /* Teste Form auf Plausibilität */
 var Check;

 Check = 1;
 for(i=0;i<document.datum.jahr.value.length;++i)
 if(document.datum.jahr.value.charAt(i) < "0"
 || document.datum.jahr.value.charAt(i) > "9")
 Check = -1;
 if (document.datum.jahr.value < 1600 && document.datum.jahr.value > 99) Check=-1;
 if (document.datum.jahr.value < 0) Check=-1;
 if (document.datum.jahr.value < 100 && document.datum.jahr.value >= 50) document.datum.jahr.value = Number(document.datum.jahr.value) + 1900;
 if (document.datum.jahr.value < 50 && document.datum.jahr.value >= 0) document.datum.jahr.value = Number(document.datum.jahr.value) + 2000;
 if(Check == -1) {
 //document.datum.jahr.value = "";
 document.datum.jahr.focus();
 return Check;
 }

 Check = 1;
 for(i=0;i<document.datum.monat.value.length;++i)
 if(document.datum.monat.value.charAt(i) < "0"
 || document.datum.monat.value.charAt(i) > "9")
 Check = -1;
 if (document.datum.monat.value > 12 || document.datum.monat.value < 1) Check=-1;
 if(Check == -1) {
 //document.datum.monat.value = "";
 document.datum.monat.focus();
 return Check;
 }
 Check = 1;
 if (document.datum.tag.value < 1 || document.datum.tag.value > daysofmonth(Number(document.datum.jahr.value),Number(document.datum.monat.value)) ) Check=-1;
 for(i=0;i<document.datum.tag.value.length;++i)
 if(document.datum.tag.value.charAt(i) < "0"
 || document.datum.tag.value.charAt(i) > "9")
 Check = -1;
 if(Check == -1) {
 //document.datum.tag.value = "";
 document.datum.tag.focus();
 return Check;
 }

}

function getCalendarTitelText(Art) {

 /* (c)2000 www.diaware.de */
 /* Anzeige des Kalenders */
 /* Art...wie darstellen? 0=Nur Tag; 1=Monatskalender; 2=Jahreskalender */

 /* Year...gesuchte Jahr */
 /* Month...gesuchter Monat */
 /* Day...gesuchter Tag */
 var Year=parseInt(document.datum.jahr.value);
 var Month=parseInt(document.datum.monat.value);
 var Day=parseInt(document.datum.tag.value);
 var TitelText;

 switch(Art) {
 case 1:
	 //TitelText = "Kalender vom " + monthtotext(Month) + " im Jahre " + Year
	 TitelText = monthtotext(Month) + " " + Year;
	 break;
 case 2:
	//TitelText = "Kalender des Jahres " + Year
	TitelText = Year;
	break;
 case 3:
 	//TitelText = "(Bewegliche) Feiertage des Jahres " + Year
 	TitelText = "Feiertage " + Year;
	break;
 default:
	TitelText = "Informationen zum "+ Day + ". " + monthtotext(Month) + " " + Year;
 	break
 }

 return TitelText;
}


function showcalendar(Art) {

 /* (c)2000 www.diaware.de */
 /* Anzeige des Kalenders */
 /* Art...wie darstellen? 0=Nur Tag; 1=Monatskalender; 2=Jahreskalender */

 /* Nur Internet Explorer oder Netscape Navigator */
 //if(!document.all && !document.layers) return;

 /* Eingaben prüfen */
 if( checkDateForm() == -1 ) return;

 var Text, TitelText;
 Text = getCalendarText(Art);
 TitelText = getCalendarTitelText(Art);

 showWindow(Text, TitelText);
}

function showWindow(text, titeltext) {
 showWin=open("","showWin","locationbar=no,menubar=no,status=no,width=550,height=610,dependent=no");
 if (!showWin) {
 	alert("Popupfenster konnte nicht geöffnet werden.\n\nHaben Sie evt. einen Popupblocker installiert?");
 	return;
 }
 showWin.document.close();
 showWin.document.writeln("<html><head><title>"+ titeltext +"</title>");
 showWin.document.writeln("" +
 "<style type='text/css'>" +
 "body { background-color:#E9E9E9; background-repeat: no-repeat; background-attachment:fixed;" +
 "margin:0px; text-align:justify; font-family:Verdana,Helvetica,Arial; font-size:8pt;}\n" +
 "h1,h2,h3,h4,h5,h6,p,div,li,ul,ol,dt,dd,dl,td,tr,table,a,span,input,textarea { " +
 "font-family:Verdana,Helvetica,Arial; font-size:8pt;}\n" +
 ".visible {background-color:#555555; }\n" +
 ".head { background-color:#986800; color:#FFFFFF; }\n" +
 ".body { background-color:#FFD098; }\n" +
 ".body2 { background-color:#CCCCCC; text-decoration:none; font-weight:bold; font-size:8pt;}\n" +
 ".empty { background-color:#FFFFFF; }\n" +
 "</style>");
 showWin.document.write("</head><body>");
 showWin.document.write("<table border=0 cellspacing=2 cellpadding=0 width=100%><tr><td>");
 showWin.document.write("<a href='javascript:this.print()'><b>Diese Seite drucken</b></a></td>");
 showWin.document.write("<td align=right><a href='javascript:this.close()'><b>Schließen</b></a></td></tr></table>");
 showWin.document.write("<table width=100% height=95% cellpadding=0 cellspacing=0>");
 showWin.document.write("<tr><td align=center valign=middle>");
 showWin.document.write(text);
 showWin.document.write("</td></tr></table>");
 showWin.document.write("</body></html>");
 showWin.document.close();
}



function getCalendarText(Art, init) {

 /* Anzeige des Kalenders */
 /* Art...wie darstellen? 0=Nur Tag; 1=Monatskalender; 2=Jahreskalender */

 /* Year...gesuchtes Jahr */
 /* Month...gesuchter Monat */
 /* Day...gesuchter Tag */
 var f = document.datum;
if (init == undefined) {init = false;}
if (init) {
	 var hasLink = caltable(f.jahr.value, f.monat.value, true);
	 if (!hasLink) {
	 	nextMonth = f.monat.value + 1;
		f.monat.value++;
	 	if (nextMonth == 13) {
	 		f.monat.value = 1;
		 	f.jahr.value++;
	 	}
	}
}

 var Year=parseInt(f.jahr.value);
 var Month=parseInt(f.monat.value);
 var Day=parseInt(f.tag.value);
 var Year0=parseInt(f.jahr0.value);
 var Month0=parseInt(f.monat0.value);
 var Day0=parseInt(f.tag0.value);

 var TitelText = getCalendarTitelText(Art);

 var Text = '';

 switch(Art) {
 case 1:
 	 var zurueck = '<a href="javascript:changeDate(\'zurueck\', '+Year+', '+Month+');"><span class="aquo">&laquo;</span></a>&nbsp;&nbsp;&nbsp;';
 	 var weiter = '&nbsp;&nbsp;&nbsp;<a href="javascript:changeDate(\'weiter\', '+Year+', '+Month+');"><span class="aquo">&raquo;</span></a>';
 	 if ((Year == Year0) && (Month == Month0))  zurueck = '&nbsp;&nbsp;&nbsp;&nbsp;';
 
	 //Text = "<b>" + TitelText + "</b>";
	 Text = '<table border="0" cellspacing="0" cellpadding="0"><tr><td style="text-align:center; padding-bottom:5px;">'
	      + zurueck + '<b>' + TitelText + '</b>' + weiter + '</td></tr>';
	 Text += '<tr><td>';
	 Text += caltable(Year, Month);
	 Text += '</td></tr></table>';
	 //Text+="<i>Angaben ohne Gewähr</i>"
 	 break;
 case 2:
	 //Text= "<b>" + TitelText + "</b><table border=0 cellspacing=1 cellpading=0><tr>"
	 Text= "<table border=0 cellspacing=1 cellpading=0>"
	     + '<tr><td style="text-align:center;"><b>' + TitelText + "</b></tr>";
	     + "<tr>";
	 Text+= "<td valign=top align=center><b>" + monthtotext(1) + "</b><br>" + caltable(Year, 1) + "</td>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(2) + "</b><br>" + caltable(Year, 2) + "</td>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(3) + "</b><br>" + caltable(Year, 3) + "</td></tr><tr>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(4) + "</b><br>" + caltable(Year, 4) + "</td>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(5) + "</b><br>" + caltable(Year, 5) + "</td>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(6) + "</b><br>" + caltable(Year, 6) + "</td></tr><tr>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(7) + "</b><br>" + caltable(Year, 7) + "</td>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(8) + "</b><br>" + caltable(Year, 8) + "</td>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(9) + "</b><br>" + caltable(Year, 9) + "</td></tr><tr>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(10) + "</b><br>" + caltable(Year, 10) + "</td>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(11) + "</b><br>" + caltable(Year, 11) + "</td>"
	 Text+= "<td valign=top align=center><b>" + monthtotext(12) + "</b><br>" + caltable(Year, 12) + "</td>"
	 Text+= "</tr></table>"
	 //Text+="<i>Angaben ohne Gewähr</i>"
	 break;
 case 3:
	 /* Berechnung des Osterfestes */
	 /* Formel nach Oudin */
	 C = Math.floor(Year / 100)
	 N = Year - 19 * Math.floor(Year / 19)
	 K = Math.floor((C - 17) / 25)
	 I1 = C - Math.floor(C / 4) - Math.floor((C - K) / 3) + 19 * N + 15
	 I2 = I1 - 30 * Math.floor(I1 / 30)
	 I3 = I2 - Math.floor(I2 / 28) * (1 - Math.floor(I2 / 28) * Math.floor(29 / (I2 + 1)) * Math.floor((21 - N) / 11))
	 A1 = Year + Math.floor(Year / 4) + I3 + 2 - C + Math.floor(C/4)
	 A2 = A1 - 7 * Math.floor(A1 / 7)
	 L = I3 - A2
	 M = 3 + Math.floor((L + 40) / 44)
	 D = L + 28 - 31 * Math.floor(M / 4)
	
	 Text ="<b>" + TitelText + "</b><br><br><table border=1 cellspacing=1 class=visible><tr>"
	 Text+="<td class=head>Neujahr</td><td class=body>" +
	 weekdaytotext(weekday(Year, 1, 1)) + "</td><td class='body'>" +
	 1 + ". " + monthtotext(1) + "</td></tr><tr>";
	 Text+="<td class=head>Heiligen 3 K&ouml;nige</td><td class=body>" +
	 weekdaytotext(weekday(Year, 1, 6)) + "</td><td class='body'>" +
	 6 + ". " + monthtotext(1) + "</td></tr><tr>";
	 Dat = decdate(Year, M, D, 48);
	 Text+="<td class=head>Rosenmontag</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = decdate(Year, M, D, 46);
	 Text+="<td class=head>Aschermittwoch</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = decdate(Year, M, D, 3);
	 Text+="<td class=head>Gründonnerstag</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = decdate(Year, M, D, 2);
	 Text+="<td class=head>Karfreitag</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Text+="<td class=head><b>Ostersonntag</b></td><td class=body>" +
	 weekdaytotext(weekday(Year, M, D)) + "</td><td class='body'>" +
	 D + ". " + monthtotext(M) + "</td></tr><tr>";
	 Dat = incdate(Year, M, D, 39);
	 Text+="<td class=head>Christi Himmelfahrt</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = incdate(Year, M, D, 49);
	 Text+="<td class=head>Pfingstsonntag</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = incdate(Year, M, D, 50);
	 Text+="<td class=head>Pfingstmontag</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = incdate(Year, M, D, 60);
	 Text+="<td class=head>Fronleichnam</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Text+="<td class=head>Maria Himmelfahrt</td><td class=body>" +
	 weekdaytotext(weekday(Year, 8, 14)) + "</td><td class='body'>" +
	 14 + ". " + monthtotext(8) + "</td></tr><tr>";
	 Text+="<td class=head>Reformationstag</td><td class=body>" +
	 weekdaytotext(weekday(Year, 10, 31)) + "</td><td class='body'>" +
	 31 + ". " + monthtotext(10) + "</td></tr><tr>";
	 Text+="<td class=head>Allerheiligen</td><td class=body>" +
	 weekdaytotext(weekday(Year, 11, 1)) + "</td><td class='body'>" +
	 1 + ". " + monthtotext(11) + "</td></tr><tr>";
	 /* Berechnung des 4. Adventes */
	 /* zunächst Differenz zum Heilig Abend */
	 diffHA = ((weekday(Year,12,24)+1)%7)
	 /* Nun Advent und Buß und Bettag bestimmen */
	 Dat = decdate(Year, 12, 24, diffHA+(3*7)+11);
	 Text+="<td class=head>Bu&szlig;- und Bettag</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 /* Nun Advent und Buß und Bettag bestimmen */
	 Dat = decdate(Year, 12, 24, diffHA+(3*7));
	 Text+="<td class=head>1. Advent</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 /* Nun Advent und Buß und Bettag bestimmen */
	 Dat = decdate(Year, 12, 24, diffHA+(2*7));
	 Text+="<td class=head>2. Advent</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 /* Nun Advent und Buß und Bettag bestimmen */
	 Dat = decdate(Year, 12, 24, diffHA+7);
	 Text+="<td class=head>3. Advent</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 /* Nun Advent und Buß und Bettag bestimmen */
	 Dat = decdate(Year, 12, 24, diffHA);
	 Text+="<td class=head>4. Advent</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = decdate(Year, 12, 24, 0);
	 Text+="<td class=head>Heilig Abend</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = incdate(Year, 12, 24, 1);
	 Text+="<td class=head>1. Weihnachtsfeiertag</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = incdate(Year, 12, 24, 2);
	 Text+="<td class=head>2. Weihnachtsfeiertag</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td></tr><tr>";
	 Dat = incdate(Year, 12, 31, 0);
	 Text+="<td class=head>Silvester</td><td class=body>" +
	 weekdaytotext(weekday(Year, Dat[1], Dat[2])) + "</td><td class='body'>" +
	 Dat[2] + ". " + monthtotext(Dat[1]) + "</td>";
	 Text+="</tr></table>"
	 Text+="<i>Angaben ohne Gewähr</i>"
	 break;
 default:
	 Text="<p>Der <b>" + Day + ".</b> <b>" + monthtotext(Month) + "</b> des Jahres <b>" + Year + "</b> war/ist ein <b>" + weekdaytotext(weekday(Year,Month,Day)) + "</b>.</p>";
}
 return Text;
}


function getMyCalendarText(init)
{
	var text = getCalendarText(1, init);
	text = '<table border="0" cellspacing="0" cellpadding="0">'
	     + '<tr><td>'+text+'</td></tr>'
	     + '<tr><td style="text-align:center;padding-top:5px;"><a href="javascript:showcalendar(3);">Feiertage anzeigen</a></td></tr>'
	     + '</table>';
	return text;
}// getMyCalendarText



function daySelected(Year, Month, Day)
{
	//alert(Year + " " + Month + " " + Day);
	var datum = (Day < 10? '0'+Day : Day) + "." + (Month < 10? '0'+Month : Month) + "." + Year;
	document.myform.abholdatum.value = datum;
}// daySelected


function changeDate(mode, year, month)
{
	var f = document.datum;
	if (mode == 'zurueck')
	{
		if (month == 1){ month = 12; year--; }
		else           { month--; }
	}
	else if (mode == 'weiter')
	{
		if (month == 12){ month = 1; year++; }
		else            { month++; }
	}// if
	f.tag.value = 1;
	f.monat.value = month;
	f.jahr.value = year;
	updateCalendar();
}// changeDate


function updateCalendar(init)
{
	if (init == undefined) {init = false;}
	var text = getMyCalendarText(init);
	var obj = document.getElementById('dateArea');
	if (true && obj)  obj.innerHTML = text; else document.writeln(text);
}// updateCalendar
