/* * */
/* CSS kalendar (c)2009 michal@prolidi.cz */
/* * */

var month_names,day_names,day,month,year;

/**
 * Formats number to two digits.
 *
 * @param   int number to format.
 */
function formatNum2(i, valtype) {
    var f = (i < 10 ? '0' : '') + i;
    if (valtype && valtype != '') {
        switch(valtype) {
            case 'month':
                f = (f > 12 ? 12 : f);
                break;

            case 'day':
                f = (f > 31 ? 31 : f);
                break;

            default:
                f = (f > 59 ? 59 : f);
                break;
        }
    }

    return f;
}

/**
 * Formats number to four digits.
 *
 * @param   int number to format.
 */
function formatNum4(i) {
    return (i < 1000 ? i < 100 ? i < 10 ? '000' : '00' : '0' : '') + i;
}

/**
 * Initializes calendar window.
 */
function initCalendar() {
    var i;
    if(getCookie("lang")=="de") {
	month_names = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
	day_names = new Array("","Mo","Di","Mi","Do","Fr","Sa","So");
    } else {
	month_names = new Array("leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec");
	day_names = new Array("","Po","Út","St","Čt","Pá","So","Ne");
    }
    if (!year && !month && !day) {
        /* Called for first time */
        if (isNaN(year) || isNaN(month) || isNaN(day) || day == 0) {
            var dt  = new Date();
            year    = dt.getFullYear();
            month   = dt.getMonth();
            day     = dt.getDate();
        }
    } else {
        /* Moving in calendar */
        if (month > 11) {
            month = 0;
            year++;
        }
        if (month < 0) {
            month = 11;
            year--;
        }
    }

    if (document.getElementById) {
        var cnt = document.getElementById("calendar_data");
    } else if (document.all) {
        var cnt = document.all["calendar_data"];
    }

    document.getElementById("kalakt").innerHTML=month_names[month]+" "+year;

    cnt.innerHTML = "";

    var str = ""

    str += '<table id="kalendar"><tr>';
    for (i = 1; i < 8; i++) {
        str += "<td>" + day_names[i] + "</td>";
    }
    str += "</tr>";

    var firstDay = new Date(year, month, 1).getDay();
    var lastDay = new Date(year, month + 1, 0).getDate();

    str += "<tr>";

    if(firstDay==0) firstDay=6; else firstDay-=1; // uprava: prvni den je pondeli
    var dayInWeek = 0;
    for (i = 0; i < firstDay; i++) {
        str += "<td>&nbsp;</td>";
        dayInWeek++;
    }
    for (i = 1; i <= lastDay; i++) {
        if (dayInWeek == 7) {
            str += "</tr><tr>";
            dayInWeek = 0;
        }

        var dispmonth = 1 + month;

        var actVal = formatNum4(year) + "-" + formatNum2(dispmonth, 'month') + "-" + formatNum2(i, 'day');
        if (i == day) {
            var tstyle = ' aktiv';
        } else {
            var tstyle = '';
        }
        var tempday=new Date(year, month, i).getDay();
        if(tempday==6 || tempday==0) var style=' class="vikend'+tstyle+'"'; else var style=' class="vsedni'+tstyle+'"'; 
        str += "<td" + style + "><a href=\"/akce/" + actVal + "/\">" + i + "</a></td>"
        dayInWeek++;
    }
    for (i = dayInWeek; i < 7; i++) {
        str += "<td>&nbsp;</td>";
    }

    str += "</tr></table>";

    cnt.innerHTML = str;

}

initCalendar();

