function maxDays(mm, yyyy) {
    var mDay;
    if ((mm == 3) || (mm == 5) || (mm == 8) || (mm == 10)) {
        mDay = 30;
    }
    else {
        mDay = 31
        if (mm == 1) {
            if (yyyy / 4 - parseInt(yyyy / 4) != 0) {
                mDay = 28
            }
            else {
                mDay = 29
            }
        }
    }
    return mDay;
}

function changeBg(id) {
    if (eval(id).style.backgroundColor != "yellow") {
        eval(id).style.backgroundColor = "yellow"
    }
    else {
        eval(id).style.backgroundColor = "#ffffff"
    }
}

var field
var limittoday=true
function initCalendar(obj, e, lmt) {
    if (lmt) limittoday=false
    var now = new Date
    dow = now.getDate()
    mm = now.getMonth() + 1
    yyyy = now.getFullYear()

    field = document.getElementById(obj)
    d = field.value
    ds = d.split(".")

    if (obj == "toDate" && document.getElementById("fromDate").value != "" && document.getElementById("toDate").value == "") {
        ds = document.getElementById("fromDate").value.split(".")
        ds[1] = parseInt(ds[1])
    } else if (obj == "toDate" && document.getElementById("toDate").value != "") {
        ds = document.getElementById("toDate").value.split(".")
        ds[1] = parseInt(ds[1])
    } else if (obj == "vnd" && document.getElementById("vnd").value != "" && document.getElementById("toDate").value == "") {
        ds = document.getElementById("vnd").value.split(".")
        ds[1] = parseInt(ds[1])
    } else if (obj == "bsd" && document.getElementById("bsd").value != "") {
        ds = document.getElementById("bsd").value.split(".")
        ds[1] = parseInt(ds[1])
    }

    dan = (parseInt(ds[0])) ? parseInt(ds[0]) : dow
    mjesec = (parseInt(ds[1])) ? parseInt(ds[1]) : mm
    godina = (parseInt(ds[2])) ? parseInt(ds[2]) : yyyy

    xmouse = findPosX(field) - 20
    ymouse = findPosY(field) + 15

    document.getElementById('kalendarChange').style.left = xmouse + "px"
    document.getElementById('kalendarChange').style.top = ymouse + "px"
    document.getElementById("kalendarChange").style.display = "block"

    writeCalendar(dan, mjesec, godina, dan, mjesec, godina)
}

function setCalendarMonth(danNew, obj, godinaNew, dan, mjesec, godina) {
    mjesecNew = parseInt(obj.value) + 1

    var now = new Date
    dow = now.getDate()
    mm = now.getMonth() + 1
    yyyy = now.getFullYear()

    if (mjesecNew < mm && godinaNew <= yyyy) {
        godinaNew++;

        $('#yearselector option[value=' + godinaNew + ']').attr('selected', 'selected');

    }

    writeCalendar(danNew, mjesecNew, godinaNew, dan, mjesec, godina)
}

function writeCalendar(danNew, mjesecNew, godinaNew, dan, mjesec, godina) {

    var now = new Date

    if (danNew) {
        dd = danNew
        var dow = now.getDay()
    } else {
        var dd = now.getDate()
        var dow = now.getDay()
    }

    if (mjesecNew) {
        mm = mjesecNew-1
    } else {
        var mm = now.getMonth() 
    }
    if (godinaNew) {
        yyyy = godinaNew
    } else {
        var yyyy = now.getFullYear()
    }

    mm1 = mm
    yyyy1 = yyyy
    if (mm1 == 0) {
        mm1 = 12
        yyyy1--
    }
    mm2 = mm + 2
    yyyy2 = yyyy
    if (mm2 == 13) {
        mm2 = 1
        yyyy2++
    }

    ref = new Date
    refd = now.getDate()
    refm = now.getMonth()
    refy = now.getFullYear()

    var arrM = new Array("Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec")
    var arrY = new Array()
    for (ii = 0; ii <= 4; ii++) {
        arrY[ii] = yyyy - 2 + ii
    }
    var arrD = new Array("Pon", "Úte", "Stř", "Čtv", "Pát", "Sob", "Ned")

    var text = ""
    text += "<table class=calendar width=220 border=1 style='border:1px solid #a0a0a0; border-collapse:collapse' bgcolor=#ffffff cellpadding=0 cellspacing=0>"
    text += "<tr><td>"
    text += "<table width=220 class=calendar cellpadding=0 cellspacing=0 border=0><tr>"
    text += "<td width=15><img src='/img/spacer.png' width=11 height=11></td>"
    text += "<td width=16 align=center>"
    if ((mm1 > refm && yyyy1 >= refy) || yyyy1 > refy || !limittoday) {
        text += "<a href='javascript:writeCalendar(" + dd + ", " + mm1 + ", " + yyyy1 + ", " + dan + ", " + mjesec + ", " + godina + ")'><img src='/img/dateMinus.gif' border=0></a>&nbsp;&nbsp;"
    }
    text += "</td>"
    text += "<td align=center class=calendarActive style='padding:2px'>"
    text += "<select onchange='javascript:setCalendarMonth(1, this, " + yyyy + ", " + dan + ", " + mjesec + ", " + godina + ")' id=monthselector>"
    for (i = 0; i < 12; i++) {
        sel = (i == mm) ? "selected" : ""
        text += "<option value=" + i + " " + sel + ">" + arrM[i] + "</option>";
    }
    text += "</select>";
    text += "<select onchange='javascript:setCalendarMonth(1, document.getElementById(\"monthselector\"), this.value, " + dan + ", " + mjesec + ", " + godina + ")' id=yearselector>"

    if (!limittoday) {
        for (i = now.getFullYear(); i > now.getFullYear() - 10; i--) {
            sel = (i == arrY[2]) ? "selected" : ""
            text += "<option value=" + i + " " + sel + ">" + i + "</option>";
        }
    } else {
        for (i = now.getFullYear(); i < now.getFullYear() + 3; i++) {
            sel = (i == arrY[2]) ? "selected" : ""
            text += "<option value=" + i + " " + sel + ">" + i + "</option>";
        }
    }
    text += "</select>";
    text += "</td>"
    text += "<td width=16 align=center>"
    text += "<a href='javascript:writeCalendar(" + dd + ", " + mm2 + ", " + yyyy2 + ", " + dan + ", " + mjesec + ", " + godina + ")'><img src='/img/datePlus.gif' border=0></a></td>"
    text += "</td>"
    text += "<td width=15 align=right style='padding-right:2px'><a href='javascript:hideCalendar()'><img src='/img/x.png' border=0></a></td>"
    text += "</td>"
    text += "</tr></table>"
    text += "</td></tr>"
    text += "<tr><td>"
    text += "<table class=calendar width=100% border=0 cellpadding=0 cellspacing=0>"
    text += "<tr><td height=2></td></tr><tr bgcolor=#e0e0e0>"
    for (ii = 0; ii <= 6; ii++) {
        text += "<td align=center class=calendarActive width=23>" + arrD[ii] + "</td>"
    }
    text += "</tr>"
    aa = 0
    for (kk = 0; kk <= 5; kk++) {
        text += "<tr>"
        for (ii = 0; ii <= 6; ii++) {
            text += "<td align=center class=calendarActive id=sp" + aa + ">1</td>"
            aa += 1
        }
        text += "</tr><tr><td height=3></td></tr>"
    }
    text += "</table>"
    text += "</td></tr>"
    text += "<form name='calForm' action='index.php?link=' method=POST>"
    text += "<input type=hidden name=listDan>"
    text += "<input type=hidden name=listMjesec>"
    text += "<input type=hidden name=listGodina>"
    text += "</form>"
    text += "</table>"

    document.getElementById("kalendarInner").innerHTML = text

    changeCal(dd, mm, yyyy, dan, mjesec, godina)
}

function submitDate(d, m, y) {
    var newDate = new Date(y, m, d, 0, 0, 0, 0);
    m++

    today = new Date()
    if (today>=newDate && limittoday) {
        d = today.getDate()
        m = today.getMonth() + 1
        y = today.getFullYear()
    }

    field.value = d + "." + m + "." + y
    document.getElementById("kalendarChange").style.display = "none"

    //if (field != document.searchTabs.toInnerInfo && document.searchTabs.toInnerInfo) {
    //    document.searchTabs.hfromDay.value = d
    //    document.searchTabs.hfromMonth.value = m
    //    document.searchTabs.hfromYear.value = y

    //    setOutDate()
    //}

    //if (field == document.searchTabs.toInnerInfo) {
    //    document.searchTabs.htoDay.value = d
    //    document.searchTabs.htoMonth.value = m
    //    document.searchTabs.htoYear.value = y
    //}

    if (field == document.searchform.fromDate) {
        m += 1
        if (m == 13) {
            m = 1
            y += 1
        }

        document.searchform.toDate.value = d + "." + m + "." + y
    }

    if (field == document.getElementById("vnd")) {
        m += 1
        if (m == 13) {
            m = 1
            y += 1
        }

        $("#bsd").attr("value", d + "." + m + "." + y)
    }
}

function hideCalendar() {
    document.getElementById("kalendarChange").style.display = "none"
}

function changeCal(danNew, mjesecNew, godinaNew, dan, mjesec, godina) {
    var now = new Date

    var dd = now.getDate()
    var mm = now.getMonth()
    var dow = now.getDay()
    var yyyy = now.getFullYear()

    var currM = mjesecNew
    var prevM
    if (currM != 0) {
        prevM = currM - 1
    } else {
        prevM = 11
    }

    var currY = godinaNew
    var mmyyyy = new Date()
    mmyyyy.setFullYear(currY)
    mmyyyy.setDate(1)
    mmyyyy.setMonth(currM)

    var day1 = mmyyyy.getDay()-1
    if (day1 < 0) {
        day1 += 7
    }
    var arrN = new Array(41)
    var aa
    for (ii = 0; ii < day1; ii++) {
        arrN[ii] = maxDays((prevM), currY) - day1 + ii + 1
    }
    aa = 1
    for (ii = day1; ii <= day1 + maxDays(currM, currY) - 1; ii++) {
        arrN[ii] = aa
        aa += 1
    }
    aa = 1
    for (ii = day1 + maxDays(currM, currY); ii <= 41; ii++) {
        arrN[ii] = aa
        aa += 1
    }
    for (ii = 0; ii <= 41; ii++) {
        nnn = "sp" + ii
        document.getElementById(nnn).style.backgroundColor = "#FFFFFF"
    }
    var dCount = 0
    for (ii = 0; ii <= 41; ii++) {
        nnn = "sp" + ii
        if (((ii < 7) && (arrN[ii] > 20)) || ((ii > 27) && (arrN[ii] < 20))) {
            if ((ii < 7) && (arrN[ii] > 20)) {
                currM1 = currM - 1
            } else {
                currM1 = currM + 1
            }
            currY1 = currY
            if (currM1 == -1) {
                currM1 = 11
                currY1 = currY - 1
            }
            if (currM1 == 12) {
                currM1 = 0
                currY1 = currY + 1
            }

            //if (((dd<=arrN[ii] && mm==currM1 && yyyy==currY1) || (mm<currM1 && yyyy==currY1) || yyyy<currY1)) {
            document.getElementById(nnn).innerHTML = "<a href='javascript:submitDate(" + arrN[ii] + ", " + currM1 + ", " + currY1 + ")'>" + arrN[ii] + "</a>"
            document.getElementById(nnn).className = "calendarInactive"
            if ((arrN[ii] == dan) && (mjesec - 1 == currM1) && (godina == currY1)) {
                document.getElementById(nnn).className = "calendarNow"
            }
            //} else {
            //	document.getElementById(nnn).innerHTML = arrN[ii]
            //	document.getElementById(nnn).className = "calendarBlur"
            //}
        }
        else {
            //if (((dd<=arrN[ii] && mm==currM && yyyy==currY) || (mm<currM && yyyy==currY) || yyyy<currY)) {
            document.getElementById(nnn).innerHTML = "<a href='javascript:submitDate(" + arrN[ii] + ", " + currM + ", " + currY + ")'>" + arrN[ii] + "</a>"
            if ((dCount == 0) || (dCount == 6)) {
                document.getElementById(nnn).className = "calendarActive"
            } else {
                document.getElementById(nnn).className = "calendarActive"
            }
            if ((arrN[ii] == dan) && (mjesec - 1 == currM) && (godina == currY)) {
                document.getElementById(nnn).className = "calendarNow"
            }
            //} else {
            //	document.getElementById(nnn).innerHTML = arrN[ii]
            //	document.getElementById(nnn).className = "calendarBlur"
            //}
        }

        dCount += 1
        if (dCount > 6) {
            dCount = 0
        }
    }
}
