function writeCal() {
    monatsNamen = new Array ("Jan", "Feb", "M&auml;rz", "April", "Mai", "Juni", "Juli", "Aug", "Sept", "Okt", "Nov", "Dez");
    
    var date = new Date();
    
	if (arguments.length == 2) {
        var actionUrl = arguments[0];
		var dd = "00";
        var mm = (date.getMonth()+1);
        var yy = date.getYear();
    }
    else if (arguments.length == 3) {
        var actionUrl = arguments[0];
        var mm = arguments[1];
        var yy = arguments[2];
        if (mm == date.getMonth() + 1) {
            var dd = date.getDate();
        } else {
            var dd = 0;
        }
    } 
    else if (arguments.length == 4) {
        var actionUrl = arguments[0];
        var dd = arguments[1];
        var mm = arguments[2];
        var yy = arguments[3];
    }
    else {
        var actionUrl = arguments[0];
        var dd = date.getDate();
        var mm = (date.getMonth()+1);
        var yy = date.getYear();
    }
    
    var thisYear = date.getYear();
    if (thisYear < 999 ) {
        thisYear += 1900;
    }
    if (yy < 999 ) {
        yy += 1900;
    }
    
    if (mm == 12) {
        var nextMonth = 1;
        var nextYear = yy + 1;
    } else {
        var nextMonth = ( mm + 1);
        var nextYear = yy;
    }
    
    if (mm == 1) {
        var prevMonth = 12;
        var prevYear = yy - 1;
    } else {
        var prevMonth = (mm - 1);
        var prevYear = yy;
    }
    
    var myMonth;
    var myDay;
    
    if (date.getDate() < 10) {
        myDay = "0" + String(date.getDate());
    } else {
        myDay = String(date.getDate());
    }
    if ((date.getMonth()+1) < 10) {
        myMonth = "0" + String(date.getMonth()+1);
    } else {
        myMonth = String(date.getMonth()+1);
    }

    var htmlOutput="";
    htmlOutput = htmlOutput + "<div id=\"cal_box_top\">";
    htmlOutput = htmlOutput + "<div style=\"float:left;\">";
    htmlOutput = htmlOutput + "<a href=\"" + actionUrl + "&amp;do=list&amp;date=" + thisYear + "-" + myMonth + "-" + myDay + "\">Heute</a>";
    htmlOutput = htmlOutput + "</div>";
    htmlOutput = htmlOutput + "<div style=\"float: right;\">";
    htmlOutput = htmlOutput + "<a href=\"javascript:writeCal('" + actionUrl + "'," + prevMonth + "," + prevYear + ");\">&laquo;</a>&nbsp;";
    htmlOutput = htmlOutput + "<b>" + monatsNamen [mm-1] + " " + yy + "</b>";
    htmlOutput = htmlOutput + "&nbsp;<a href=\"javascript:writeCal('" + actionUrl + "'," + nextMonth + "," + nextYear + ");\">&raquo;</a>";
    htmlOutput = htmlOutput + "</div>";
    htmlOutput = htmlOutput + "<div style=\"clear: both;\"></div>";
    htmlOutput = htmlOutput + "</div>";
    
    //Wochentag des 1. des Monats ermitteln
    date.setDate(1);
    date.setMonth(mm-1);
    date.setYear(yy);
    var kk=date.getDay();
    if (kk == 0) {
        kk=7;
    }
    htmlOutput = htmlOutput + "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
    htmlOutput = htmlOutput + "<tr><th>Mo</th><th>Di</th><th>Mi</th><th>Do</th><th>Fr</th><th>Sa</th><th>So</th></tr>";
    htmlOutput = htmlOutput + "<tr>";
    
    //erste Zeile auffuellen
    for (var ii=1; ii<kk; ii++) {
        htmlOutput = htmlOutput + "<td>";
    }
    for(ii=1; ii<32; ii++) {
        date.setDate(ii);
        if (date.getMonth() != (mm-1)) {
            break;
        }
        if (ii < 10) {
            myDay = "0" + String(ii);
        } else {
            myDay = String(ii);
        }
        if (mm < 10) {
            myMonth = "0" + String(mm);
        } else {
            myMonth = String(mm);
        }
        if (ii == dd) {
            //den aktuellen Tag fett
            htmlOutput = htmlOutput + "<td style='background-color: #efefe9; border: 1px solid #afafaf;'>";
        } else {
            htmlOutput = htmlOutput + "<td>";
        }
        htmlOutput = htmlOutput + "<a href=\"" + actionUrl + "&amp;do=list&amp;date=" + yy + "-" + myMonth + "-" + myDay + "\">" + ii + "</a></td>";
        kk++;
        if (kk > 7) {
            htmlOutput = htmlOutput + "</tr>\n<tr>";
            kk = 1;
        }
    }
    htmlOutput = htmlOutput + "</tr>\</table>";
    $("calendar").update(htmlOutput);

    /*
     * iCal export
     */
    monatsNamenLang = new Array ("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
    
    var changeMonth = 20;
    var urlPrefix = 'http://www.lmu.de/servlets/download/?app=vk-ical&date=';
    var linkTitle = 'Veranstaltungen als ics-Datei exportieren';
    var iconPath = '../../layout/schaltflaechen/ical.gif';
    
    date = new Date();
    var calExport = "";
    var dayNow = date.getDate();
    var yearNow = date.getYear();
    var monthNow = date.getMonth() + 1;
    
    if (yearNow < 999 ) {
        yearNow += 1900;
    }
    
    var monthNext = monthNow + 1;
    var yearNext = yearNow;
    var monthPrev = monthNow - 1;
    var yearPrev = yearNow;
    
    if (monthNext > 12) {
        monthNext = 1;
        yearNext = yearNow + 1;
    }
    if (monthPrev < 1) {
        monthPrev = 12;
        yearPrev = yearNow - 1;
    }
    if (monthNow < 10) { monthNow = "0" + monthNow; }
    if (monthNext < 10) { monthNext = "0" + monthNext; }
    if (monthPrev < 10) { monthPrev = "0" + monthPrev; }
    
    monthNow = String (monthNow);
    monthNext = String (monthNext);
    monthPrev = String (monthPrev);
    
    yearNow = String (yearNow);
    yearNext = String (yearNext);
    yearPrev = String (yearPrev);
    
    dateThisMonth = yearNow + '-' + monthNow;
    dateNextMonth = yearNext + '-' + monthNext;
    datePrevMonth = yearPrev + '-' + monthPrev;
    
    if (dayNow >= changeMonth) {
        calExport = '<div><a href="' + urlPrefix + dateNextMonth + '"' + linkTitle + '"><img src="' + iconPath + '" alt="" border="0" style="margin-bottom: -1px;" /></a> <a href="' + urlPrefix + dateNextMonth + '" title="' + linkTitle + '">' + monatsNamenLang[monthNext-1] + ' ' + yearNext + '</a></div>';
        calExport += '<div><a href="' + urlPrefix + dateThisMonth + '"' + linkTitle + '"><img src="' + iconPath + '" alt="" border="0" style="margin-bottom: -1px;" /></a> <a href="' + urlPrefix + dateThisMonth + '" title="' + linkTitle + '">' + monatsNamenLang[monthNow-1] + ' ' + yearNow + '</a></div>';
    } else {
        calExport = '<div><a href="' + urlPrefix + dateThisMonth + '"' + linkTitle + '"><img src="' + iconPath + '" alt="" border="0" style="margin-bottom: -1px;" /></a> <a href="' + urlPrefix + dateThisMonth + '" title="' + linkTitle + '">' + monatsNamenLang[monthNow-1] + ' ' + yearNow + '</a></div>';
        calExport += '<div><a href="' + urlPrefix + datePrevMonth + '"' + linkTitle + '"><img src="' + iconPath + '" alt="" border="0" style="margin-bottom: -1px;" /></a> <a href="' + urlPrefix + datePrevMonth + '" title="' + linkTitle + '">' + monatsNamenLang[monthPrev-1] + ' ' + yearPrev + '</a></div>';
    }
    
    $("cal_export").update(calExport);
}

function getURLParam(strParamName){
    var strReturn = "";
    var strHref = window.location.href;
    
    if ( strHref.indexOf("?") > -1 ){
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");

        for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
            if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ) {
                var aParam = aQueryString[iParam].split("=");
                strReturn = aParam[1];
                break;
            }
        }
    }
    return strReturn;
}

//window.onload = writeCal;
