function show_reisezeit(SelectedDate,AusgabeFeld,ErgebnisFeld,ErgebnisInput) {
    //Bei Uebergabe ohne Parameter das heutige Datum verwenden.
    if(SelectedDate == null) {
        SelectedDate = new Date();
    } else {
        SelectedDate = new Date(SelectedDate);
    }
    day = SelectedDate.getDate();
    month = SelectedDate.getMonth();
    year = SelectedDate.getFullYear();
    heute = new Date();
    akt_day = heute.getDate();
    akt_month = heute.getMonth();
    akt_year = heute.getFullYear();

    // Monatsnamen fuer die Anzeige (months) und fuer die Uebergabe (months_link) definieren.
    months = new Array('Januar','Februar','Maerz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
    months_link = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');

    this_month = new Date(year, month, 1);
    next_month = new Date(year, month + 1, 1);

    if (month == 11) {
        next_month_link = months_link[0];
        next_year_link = year + 1;
    } else {
        next_month_link = months_link[this_month.getMonth()+1];
        next_year_link = year;
    }
         
    if (month == 0) {
        previous_month_link = months_link[11];
        previous_year_link = year - 1;
    } else {
      previous_month_link = months_link[this_month.getMonth()-1];
        previous_year_link = year;
    }
  
    //Ersten und Letzten Tag des Monats ermitteln.         
    first_week_day = this_month.getDay();
    days_in_this_month = Math.round((next_month.getTime() - this_month.getTime()) / (1000 * 60 * 60 * 24));


    //Kalenderkopf ausgeben.
    reisezeit_html = '<table class="reisezeit_table" cellspacing="0" cellpadding="1">';
    reisezeit_html += '  <tr>';
    reisezeit_html += '    <td colspan="7" class="reisezeit_months NoWrap">';
    reisezeit_html += '		 &nbsp;<a href="javascript: show_reisezeit(\'' + '1 ' + previous_month_link + ' ' + previous_year_link + '\',\'' + AusgabeFeld +'\',\'' + ErgebnisFeld + '\',\'' + ErgebnisInput + '\')">&lt;</'+'a>&nbsp;';
    reisezeit_html += '        <select id="monthselect'+AusgabeFeld+'" style="font-size: 9px;" onchange="reisezeityearchange(' + unescape("%27") + AusgabeFeld + unescape("%27") + ',' + unescape("%27") + ErgebnisFeld + unescape("%27") + ',' + unescape("%27") + ErgebnisInput + unescape("%27") + ')">';
    for (changemonth = 0; changemonth <= 11; changemonth++) {
    	reisezeit_html += '			<option value="' + changemonth + '"';
		if (changemonth == month) {
			reisezeit_html += ' selected';
		}
    	reisezeit_html += '>' + months[changemonth] + '</'+'option>';
    }

	reisezeit_html += '</'+'select> ';
    reisezeit_html += '        <select id="yearselect'+AusgabeFeld+'" style="font-size: 9px;" onchange="reisezeityearchange(' + unescape("%27") + AusgabeFeld + unescape("%27") + ',' + unescape("%27") + ErgebnisFeld + unescape("%27") + ',' + unescape("%27") + ErgebnisInput + unescape("%27") + ')">';

    firstchangeyear = 2009;
    lastchangeyear = 2015;
    for (changeyear = firstchangeyear; changeyear < lastchangeyear; changeyear++) {
    	reisezeit_html += '			<option value="' + changeyear + '"';
		if (changeyear == year) {
			reisezeit_html += ' selected';
		}
    	reisezeit_html += '>' + changeyear + '</'+'option>';
    }
    
    reisezeit_html += '</'+'select>&nbsp;<a href="javascript: show_reisezeit(\'' + '1 ' + next_month_link + ' ' + next_year_link + '\',\'' + AusgabeFeld + '\',\'' + ErgebnisFeld + '\',\'' + ErgebnisInput + '\')">&gt;</'+'a>&nbsp;</'+'td>';
    reisezeit_html += '  </'+'tr>';
    reisezeit_html += '  <tr>';
    reisezeit_html += '    <td class="reisezeit_wochentage">Mo</'+'td>';
    reisezeit_html += '    <td class="reisezeit_wochentage">Di</'+'td>';
    reisezeit_html += '    <td class="reisezeit_wochentage">Mi</'+'td>';
    reisezeit_html += '    <td class="reisezeit_wochentage">Do</'+'td>';
    reisezeit_html += '    <td class="reisezeit_wochentage">Fr</'+'td>';
    reisezeit_html += '    <td class="reisezeit_wochentage">Sa</'+'td>';
    reisezeit_html += '    <td class="reisezeit_wochentage">So</'+'td>';
    reisezeit_html += '  </'+'tr>'
    reisezeit_html += '  <tr>';
                  
    //Fehlende Wochentage am Monatsanfang mit Leerzellen auffuellen.       
    for(week_day = 1; week_day < first_week_day; week_day++) {
      reisezeit_html += '<td style="background-color:#f0f0f0; color:#000000; border: 0px;">&nbsp;</'+'td>';   
    }
    if(first_week_day == 0) {
	    for(week_day = 1; week_day < 7; week_day++) {
	      reisezeit_html += '<td style="background-color:#f0f0f0; color:#000000; border: 0px;">&nbsp;</'+'td>';   
	    }
	}
    week_day = first_week_day;
    for(day_counter = 1; day_counter <= days_in_this_month; day_counter++) {
        week_day %= 7;
        if(week_day == 1) {
            reisezeit_html += '</'+'tr><tr>';
        }

            reisezeit_html += '<td align="center" style="background-color:'
            if(week_day == 0 || week_day == 6) {reisezeit_html += '#ffffc0; ';}else{reisezeit_html += '#ffffff; ';}
            reisezeit_html += 'color:#000000; border: 1px solid #e0e0e0; cursor: pointer;" onclick="javascript: document.getElementById(' + unescape("%27") + ErgebnisFeld  + unescape("%27") + ').innerHTML=' + unescape("%27") + day_counter + '.' + (month + 1) + '.' + year + unescape("%27") + '; document.getElementById(' + unescape("%27") + ErgebnisInput + unescape("%27") + ').value=' + unescape("%27") + day_counter + '.' + (month + 1) + '.' + year + unescape("%27") + ';">' + day_counter + '</'+'td>';

        week_day++;
    }

    reisezeit_html += '</'+'tr>';
    reisezeit_html += '</'+'table>';

    //Kalender anzeigen. 
//    document.all.kalender.innerHTML = reisezeit_html;                  
    document.getElementById(AusgabeFeld).innerHTML = reisezeit_html;                  
}

function reisezeityearchange(Feldname,Anzeige,Ausgabe) {
	newyear = document.getElementById("yearselect"+Feldname).value;
	newmonth = document.getElementById("monthselect"+Feldname).value;
    months_link = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
	newdatelink = '1 ' + months_link[newmonth] + ' ' + newyear;
	show_reisezeit(newdatelink,Feldname,Anzeige,Ausgabe);
}
