function zelle (tag_nr, monat_nr, jahr_nr, feld_id) {
	var kalender_datum = new Date(jahr_nr, monat_nr - 1, tag_nr);
	var werktag = kalender_datum.getDay();
	t = '<td align="center" align="center"><a href="javascript:wert_setzen(' + tag_nr + ', ' + monat_nr + ', ' + jahr_nr + ', \'' + feld_id + '\');">';
	if (werktag == 0) tag_nr = '<b>' + tag_nr + '</b>';
	t += tag_nr;
	t += "<\/a><\/td>";
	return t;
	}

function zelle_div (inhalt, css_klasse) {
	t = '<td align="center" class="' + css_klasse + '">';
	t += inhalt;
	t += "<\/td>";
	return t;
	}

function kalender_schliessen (bereich_id, feld_id) {
  	document.getElementById(bereich_id).style.visibility="hidden";
	//kalender ('','', bereich_id, feld_id);
	}

function wert_setzen (tag, monat, jahr, feld_id) {
	var kalender_datum = new Date(jahr, monat - 1, tag);
	var werktag = kalender_datum.getDay();
	var tag_name = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
	if (tag < 10) tag = '0' + tag.toString();
 	if (monat < 10) monat = '0' + monat.toString();
	document.getElementById(feld_id).value = tag_name[werktag] + ', ' + tag + '.' + monat + '.' + jahr;
	}

function kalender (monat, jahr, bereich_id, feld_id) {
//===================================================
	// Deklaration mit var --> lokal in Funktion
	// Deklaration ohne var --> global !!
	
	var monat_name = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");	
	var tag_name = new Array("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So");

	var heute = new Date();
	var akt_monat = heute.getMonth() + 1;
	var akt_jahr = heute.getYear();
	if (akt_jahr < 999) akt_jahr += 1900;			// alte Browser
	var akt_tag = heute.getDate();

	if (monat == '') monat = akt_monat;
	if (jahr == '') jahr = akt_jahr;

	var kalender_datum = new Date(jahr, monat - 1, 1);
	var start = kalender_datum.getDay();
	if (start > 0) {
	    start--;
  		}
	else start = 6;

	var nach_monat = monat + 1;
	var nach_jahr = jahr;
	if (nach_monat == 13) {
		nach_monat = 1;
		nach_jahr += 1;
		}
	var vor_monat = monat - 1;
	var vor_jahr = jahr;
	if (vor_monat == 0) {
		vor_monat = 12;
		vor_jahr -= 1;
		}

	var stop = 31;
	if (monat == 4 || monat == 6 || monat == 9 || monat == 11) --stop;
	if (monat == 2) {
    	stop -= 3;
    	if (jahr % 4 == 0) stop++;
    	if (jahr % 100 == 0) stop--;
		if (jahr % 400 == 0) stop++;
  		}

	tt = '<table width="210" border="0" cellpadding="1" cellspacing="1" class="tdblau">';
	tt += '<tr>';
	
  	tt += '<td align="center" colspan="7" valign="middle" height="20" class="text_high">';
	tt += '<b>';
  	tt += monat_name[monat - 1] + " " + jahr;
  	tt += '<\/b><\/td><\/tr>';
	tt += '<tr>';
	for (var i = 0; i <= 6; i++) {
		tt += '<td valign"middle" align="center" width="30" height="20" class="text_high">';
		tt += tag_name[i];
		tt += '<\/td>';
		}
  	tt += '<\/tr>';

	var tag_zahl = 1;
	for (var zeile = 0; zeile <= 5; zeile++) {
	    tt += "<tr>";
	    for (var spalte = 0; spalte <= 5; spalte++) {
			if ((zeile == 0) && (spalte < start)) {
	      		tt += zelle_div ('&nbsp;', 'text');
	      		} 
			else {
				if (tag_zahl > stop) {
	      		tt += zelle_div ('&nbsp;', 'text');
        			} 
				else {
          			if ((jahr == akt_jahr) && (monat == akt_monat) && (tag_zahl < akt_tag)) {
            			tt += zelle_div(tag_zahl, 'text_low');
          				} 
					else {
          				if ((jahr == akt_jahr) && (monat == akt_monat) && (tag_zahl == akt_tag)) {
            				tt += zelle_div (tag_zahl, 'text_high');
          					} 
						else {
	            			tt += zelle(tag_zahl, monat, jahr, feld_id);
							}
          				}
          			tag_zahl++;
        			}
      			}
    		}
			// Sonntag:
			if (tag_zahl > stop) {
	      		tt += zelle_div ('&nbsp;', 'text');
 				} 
			else {
				if ((jahr == akt_jahr) && (monat == akt_monat) && (tag_zahl < akt_tag)) {
            		tt += zelle_div('<b>' + tag_zahl + '<\/b>', 'text_low');
      				}
				else {
					if ((jahr == akt_jahr) && (monat == akt_monat) && (tag_zahl == akt_tag)) {
            			tt += zelle_div('<b>' + tag_zahl + '<\/b>', 'text_high');
          				} 
					else {
	            		tt += zelle(tag_zahl, monat, jahr, feld_id);
						}
          			}
				tag_zahl++;
 				}
		tt += "<\/tr>";
		}
	tt += '<tr>';
	if ((monat == akt_monat) && (jahr == akt_jahr)) {
	    tt += zelle_div ('<<', 'text_low');
		}
	else {
  		tt += '<td align="center" height="20"><a href="javascript:kalender(' + vor_monat + ',' + vor_jahr + ', \'' + bereich_id + '\', \'' + feld_id + '\');">&lt;&lt;<\/td>';
		}
	tt += '<td colspan="5" class="text_link" height="30" align="center" valign="middle"><a href="javascript:kalender_schliessen(\'' + bereich_id + '\', \'' + feld_id + '\');">ausblenden<\/a><\/td>';
  	tt += '<td align="center" height="20"><a href="javascript:kalender(' + nach_monat + ',' + nach_jahr + ', \'' + bereich_id + '\', \'' + feld_id + '\');">&gt;&gt;<\/td>';
	tt += '<\/tr><\/table>';

	document.getElementById(bereich_id).innerHTML = tt;
	}