﻿function buildcal(m, y) {
    var mn = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    var dim = [31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    var oD = new Date();
    var seld = $('#hdnSelD').val();
    flipperDate(y, m, oD.getDate());
    oD.setFullYear(y, m, 1);
    var nM = addMonth(oD, 1);
    var pM = addMonth(oD, -1);
    oD.od = oD.getDay() - 1;
    if (oD.od < 0) oD.od = 6;
    dim[1] = (((oD.getFullYear() % 100 != 0) && (oD.getFullYear() % 4 == 0)) || (oD.getFullYear() % 400 == 0)) ? 29 : 28;

    var t = "";
    t += "<div id=\"month\"><span class=\"prevnext\"><a href=\"javascript:void(0);\" onclick=\"buildcal(" + pM.getMonth() + "," + pM.getFullYear() + ");\">&lt;</a></span> " + mn[oD.getMonth()] + "  <span class=\"prevnext\"><a href=\"javascript:void(0);\" onclick=\"buildcal(" + nM.getMonth() + "," + nM.getFullYear() + ");\">&gt;</a></span></div>";
    t += '<table border="0" cellspacing="0" align="center" cellpadding="0" style="margin:0 auto;padding:0;"><tr>';
    for (s = 0; s < 7; s++) t += '<td valign="middle">' + "MTWTFSS".substr(s, 1) + '</td>';
    t += '</tr><tr>';
    var Xn = 1;
    for (i = 1; i <= 42; i++) {
        var x = ((i - oD.od >= 0) && (i - oD.od <= dim[m])) ? i - oD.od : 0;
        var dispText = make2dig(x);
        if (x > 0) {
            var currD =  createdDateObj(oD.getFullYear(), oD.getMonth(), x);
            if (x == seld)
                dispText = '<span class="active">' + make2dig(x) + '</span>' //DD added
            //alert(x);
            if (currD.od == 5 || currD.od == 6) {
                t += '<td valign="middle" class="weekend">' + dispText + '</td>';
            }
            else {
                t += '<td valign="middle"><a href="javascript: void(0)" onmouseover="flipperDate(' + y + ',' + m + ',' + x + ')" onclick="selDate(' + y + ',' + m + ',' + x + ')">' + dispText + '</a></td>';
            }
            if (((i) % 7 == 0) && (i < 36)) t += '</tr><tr>';

            if (x == dim[m]) break;
        }
        else {
            if (i < 8) {
                x = dim[pM.getMonth()] + ((i + 1) - oD.od);
            }
            else {
                x = Xn++;
            }
            t += '<td valign="middle" class="dull">' + make2dig(x) + '</td>';
            if (((i) % 7 == 0) && (i < 36)) {
                t += '</tr><tr>';
                break;
            }
        }
    }
    t += '</tr></table>';
    $('#calendar').html(t);


}

function createdDateObj(y, m, d) {
    var oD = new Date();
    oD.setFullYear(y, m, d);
    oD.od = oD.getDay() - 1;
    if (oD.od < 0) oD.od = 6;
    return oD;
}

function flipperDate(y, m, d) {
    //if (document.getElementById("hdnSelDate").value.length > 0)
    //return;
    var oD = new Date();
    oD.setFullYear(y, m, d);
    oD.od = oD.getDay() - 1;
    if (oD.od < 0) oD.od = 6;

    var days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
    $("#flipper").html("<div id=\"day\"> <strong>" + days[oD.od] + "</strong></div> <div id=\"date\"> " + make2dig(oD.getDate()) + "</div>");
}

function addMonth(d, month) {
    var t = new Date(d);
    t.setMonth(d.getMonth() + month);
    return t;
}

function make2dig(num) {
    return num.toString().length == 1 ? "0" + num.toString() : num.toString();
}
function selDate(y, m, d) {
    $("#hdnSelD").val(d);
    buildcal(m, y);
    window.setTimeout("flipperDate(" + y + ", " + m + ", " + d + ")", 1000);
    $("#hdnSelDate").val(d.toString() + "/" + (m + 1).toString() + "/" + y.toString());
}

