﻿var months = new Array("一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二");
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var days = new Array("日", "一", "二", "三", "四", "五", "六");
var classTemp;
var today = new getToday();
var year = today.year;
var month = today.month;
var newCal;
var selectedDay;
var FirstDay = 1;
var PrevWeekBegin;
var NextWeekBegin = 0;
var type = "day";
var URL = "";
var bigClassId = 0;
function selectType(p_type) {
    type = p_type;
    Web.Service.CanlendarService.GetNewsCountByDay(bigClassId, month + 1, year, GetNewsCountByDaySuccess);
}
function getDays(month, year) {
    if (1 == month) return ((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? 29 : 28;
    else return daysInMonth[month];
}
function getToday() {
    this.now = new Date();
    this.year = this.now.getFullYear();
    this.month = this.now.getMonth();
    this.day = this.now.getDate();
}
function Calendar(Url, type, result) {
    var newsCountList = result.split('@');
    var dayList = new Array() ;
    var countList = new Array() ;
    for(var i=0;i<(newsCountList.length-1);i++)
    {
        dayList[i] = newsCountList[i].split('|')[0];
        countList[i] = newsCountList[i].split('|')[1];
    }
    newCal = new Date(year, month, 1);
    today = new getToday();
    var day = -1;
    var startDay = newCal.getDay();
    var endDay = getDays(newCal.getMonth(), newCal.getFullYear());
    var daily = 0;
    if ((today.year == newCal.getFullYear()) && (today.month == newCal.getMonth())) {
        day = today.day;
    }
    var caltable = document.all.caltable.tBodies.calendar;
    var intDaysInMonth = getDays(newCal.getMonth(), newCal.getFullYear());
    for (var intWeek = 0; intWeek < caltable.rows.length; intWeek++)
        for (var intDay = 0; intDay < caltable.rows[intWeek].cells.length; intDay++) {
        var cell = caltable.rows[intWeek].cells[intDay];
        var montemp = (newCal.getMonth() + 1) < 10 ? ("0" + (newCal.getMonth() + 1)) : (newCal.getMonth() + 1);
        if ((intDay == startDay) && (0 == daily)) { daily = 1; }
        var daytemp = daily < 10 ? ("0" + daily) : (daily);
        var d = "<" + newCal.getFullYear() + "-" + montemp + "-" + daytemp + ">";
        if (day == daily) cell.className = "DayNow";
        else if (intDay == 6) cell.className = "DaySat";
        else if (intDay == 0) cell.className = "DaySun";
        else cell.className = "Day";
        //cell.onclick=selectDay;
        if ((daily > 0) && (daily <= intDaysInMonth)) {
            cell.innerText = daily;
            for (var i = 0; i < dayList.length; i++) {
                if (dayList[i] == daily) {
                    cell.className = "NewsInIt";
                }
            }

                cell.onclick = function selectDay() {
                    var UrlDetail = Url + "@SearchTime=" + year + "-" + (month + 1) + "-" + this.innerText + "*SearchTimeType=" + type;
                    window.open(UrlDetail);
                };
                    
            daily++;
        } else {
                cell.onclick = null;
                cell.className = "CalendarTD";
                cell.innerText = "";
            }
    }
    document.all.year.value = year;
    document.all.month.value = month + 1;
}
function subMonth() {
    if ((month - 1) < 0) {
        month = 11;
        year = year - 1;
    } else {
        month = month - 1;
    }
    Web.Service.CanlendarService.GetNewsCountByDay(bigClassId, month + 1, year, GetNewsCountByDaySuccess);
}
function subYear() {
    year = year - 1;
    Web.Service.CanlendarService.GetNewsCountByDay(bigClassId, month + 1, year, GetNewsCountByDaySuccess);
}
function addMonth() {
    if ((month + 1) > 11) {
        month = 0;
        year = year + 1;
    } else {
        month = month + 1;
    }
    Web.Service.CanlendarService.GetNewsCountByDay(bigClassId, month + 1, year, GetNewsCountByDaySuccess);
}
function addYear() {
    year = year + 1;
    Web.Service.CanlendarService.GetNewsCountByDay(bigClassId, month + 1, year, GetNewsCountByDaySuccess);
}
function setDate() {
    if (document.all.month.value < 1 || document.all.month.value > 12) {
        alert("月的有效范围在1-12之间!");
        return;
    }
    year = Math.ceil(document.all.year.value);
    month = Math.ceil(document.all.month.value - 1);
    Web.Service.CanlendarService.GetNewsCountByDay(bigClassId, month + 1, year, GetNewsCountByDaySuccess);
}
function buttonOver() {
    var obj = window.event.srcElement;
    obj.runtimeStyle.cssText = "background-color:#FFFFFF";
    // obj.className="Hover";
}
function buttonOut() {
    var obj = window.event.srcElement;
    window.setTimeout(function() { obj.runtimeStyle.cssText = ""; }, 300);
}
function dayValidate(pDay, pMonth, pYear, pintDaysInMonth) {
    if ((pMonth + 1) > 12) {
        pMonth = 0;
        pYear = pYear + 1;
    }
    var TheWeekEnd = "";
    if (pDay > pintDaysInMonth) {
        TheWeekEnd = pYear + "-" + (pMonth + 2) + "-" + 1; //Turn to the next month;
        if ((pMonth + 2) > 12)
            TheWeekEnd = (pYear + 1) + "-" + 1 + "-" + 1; //Turn to the next year;
    }
    else {
        TheWeekEnd = pYear + "-" + (pMonth + 1) + "-" + pDay;
    }
    return TheWeekEnd;
}
function GetNewsCountByDaySuccess(result) {
    Calendar(URL, type,result);
}
