﻿var outDate; //存放被操作对象的日期

var MonHead = new Array(12); //定义阳历中每个月的最大天数 
MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4] = 31; MonHead[5] = 30;
MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31;

var nickTheYear = new Date().getFullYear(); //定义年的变量的初始值 
var nickTheMonth = new Date().getMonth() + 1; //定义月的变量的初始值
var nickWDay = new Array(37); //定义写日期的数组

var RecordedDay = new Array(32); //有事件的日期
var MonthlyCalendarXml;
var CalendarXMLYear;
var CalendarXMLMonth; //年份和月份改变时才重新获取XML
var TabSelected = 3; //记录当前选项卡;默认为月

function doInit() {

    nickSetMonth(new Date().getFullYear(), new Date().getMonth() + 1);

  
}
function IsPinYear(year) //判断是否闰平年 
{
    if (0 == year % 4 && ((year % 100 != 0) || (year % 400 == 0))) return true; else return false;
}

function GetMonthCount(year, month) //闰年二月为29天 
{
    var c = MonHead[month - 1]; if ((month == 2) && IsPinYear(year)) c++; return c;
}
function GetDOW(day, month, year) //求某天的星期几 
{
    var dt = new Date(year, month - 1, day).getDay() / 7; return dt;
}
function nickPrevM() //往前翻月份 
{
    if (nickTheMonth > 1) { nickTheMonth-- } else { nickTheYear--; nickTheMonth = 12; }
  
    nickSetMonth2(nickTheYear, nickTheMonth);
}
function nickNextM() //往后翻月份 
{
    if (nickTheMonth == 12) { nickTheYear++; nickTheMonth = 1 } else { nickTheMonth++ }
  
    nickSetMonth2(nickTheYear, nickTheMonth);
}

function nickSetMonth2(yy, mm) {
   
    outDate = new Date(yy, mm - 1, 1);
    SetMonthlyCalendarInit(yy, mm);
    SetDayStyle(yy, mm);

    switch (TabSelected) {
        case 1:
            listDay();
            break;
        case 2:
            listWeek();
            break;
        case 3:
            listMonth();
            break;
        case 4:
            listTask();
            break;
        default:
            listMonth();
            break;
    }

}
function nickSetMonth(yy, mm) {
    SetMonthlyCalendarInit(yy, mm);
    SetDayStyle(yy, mm);
  listMonth();

}

function SetDayStyle(yy, mm) {//主要的写程序**********

    nickWriteHead(yy, mm);
   
    //设置当前年月的公共变量为传入值 
    nickTheYear = yy;
    nickTheMonth = mm;
    for (var i = 0; i < 37; i++) { nickWDay[i] = "" }; //将显示框的内容全部清空
    var day1 = 1, day2 = 1, firstday = new Date(yy, mm - 1, 1).getDay(); //某月第一天的星期几

    for (i = firstday; day1 < GetMonthCount(yy, mm) + 1; i++) { nickWDay[i] = day1; day1++; }
    //            for (var j = 1; j < 32; j++) {
    //                if (RecordedDay[j] != "") {
    //                    nickWDay[j + firstday - 1] = "<b>" + nickWDay[j + firstday - 1] + "</b>";
    //                }
    //            }
    for (i = 0; i < 37; i++) {

      //  var dy = "nickDay" + i;
        var da = document.getElementById("nickDay" + i);

        if (nickWDay[i] != "") {


            da.title = mm + "月" + nickWDay[i] + "日";

            da.onclick = Function("nickDayClick(" + nickWDay[i] + ",0)"); //给td赋予onclick事件的处理


            if (!outDate) {
                if (yy == new Date().getFullYear() && mm == new Date().getMonth() + 1 && nickWDay[i] == new Date().getDate()) {
                    if (RecordedDay[i - firstday + 1] == 1)
                        da.innerHTML = "<a  class=set2><b><i>" + nickWDay[i] + "</i></b></a>";
                    else da.innerHTML = "<a  class=set2>" + nickWDay[i] + "</a>";

                }
                else {
                    if (RecordedDay[i - firstday + 1] == 1)
                        da.innerHTML = "<a ><b><i>" + nickWDay[i] + "</i></b></a>";
                    else da.innerHTML = "<a >" + nickWDay[i] + "</a>";
                }

            }
            else {

                if (yy == outDate.getFullYear() && mm == outDate.getMonth() + 1 && nickWDay[i] == outDate.getDate()) {
                    if (RecordedDay[i - firstday + 1] == 1)
                        da.innerHTML = "<a  class=set3><b><i>" + nickWDay[i] + "</i></b></a>";
                    else da.innerHTML = "<a  class=set3>" + nickWDay[i] + "</a>";
                }
                else if (yy == new Date().getFullYear() && mm == new Date().getMonth() + 1 && nickWDay[i] == new Date().getDate()) {
                    if (RecordedDay[i - firstday + 1] == 1)
                        da.innerHTML = "<a  class=set2><b><i>" + nickWDay[i] + "</i></b></a>";
                    else da.innerHTML = "<a  class=set2>" + nickWDay[i] + "</a>";
                }
                else {

                    if (RecordedDay[i - firstday + 1] == 1)
                        da.innerHTML = "<a ><b><i>" + nickWDay[i] + "</i></b></a>";
                    else da.innerHTML = "<a >" + nickWDay[i] + "</a>";
                }

            }
            da.style.cursor = "pointer";
        }
        else {

            da.innerHTML = "";
            da.title = "";
            da.style.cursor = "default";
        }

    }

}
function tmpSelectYearInnerHTML(strYear) //年份的下拉框
{
    //  alert(strYear)
    if (strYear.match(/\D/) != null) { alert("年份输入参数不是数字！"); return; }
    var m = (strYear) ? strYear : new Date().getFullYear();
    if (m < 1000 || m > 9999) { alert("年份值不在 1000 到 9999 之间！"); return; }
    var n = m - 10;
    if (n < 1000) n = 1000;
    if (n + 26 > 9999) n = 9974;
    var s = "<select name=tmpSelectYear style='font-size: 12px' "
    s += "onblur='document.getElementById(\"selectarea\").style.display=\"none\"' "
    s += "onchange='document.getElementById(\"selectarea\").style.display=\"none\";"
    s += "nickTheYear = this.value; nickSetMonth2(nickTheYear,nickTheMonth)'>";
    var selectInnerHTML = s;
    //n = n-70; 
    for (var i = n; i < n + 20; i++) {
        if (i == m)
        { selectInnerHTML += "<option value='" + i + "' selected>" + i + "年" + "</option>"; }
        else { selectInnerHTML += "<option value='" + i + "'>" + i + "年" + "</option>"; }
    }
    selectInnerHTML += "</select>";
    document.getElementById("selectarea").style.display = "inline";
    document.getElementById("selectarea").innerHTML = selectInnerHTML;
    //  document.getElementById("nickYearHead").focus();
}
function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框
{
  
    var m = (strMonth) ? strMonth : new Date().getMonth() + 1;

    var s = "<select name=tmpSelectMonth style='font-size: 12px' "
    s += "onblur='document.getElementById(\"selectarea1\").style.display=\"none\"' "
    s += "onchange='document.getElementById(\"selectarea1\").style.display=\"none\";"
    s += "nickTheMonth = this.value; nickSetMonth2(nickTheYear,nickTheMonth)'>";
    var selectInnerHTML = s;
    for (var i = 1; i < 13; i++) {
        if (i == m)
        { selectInnerHTML += "<option value='" + i + "' selected>" + i + "月" + "</option>"; }
        else { selectInnerHTML += "<option value='" + i + "'>" + i + "月" + "</option>"; }
    }
    selectInnerHTML += "</select>";
    document.getElementById("selectarea1").style.display = "inline";
    document.getElementById("selectarea1").innerHTML = selectInnerHTML;
    //  document.getElementById("tmpSelectMonth").focus();
}
function nickWriteHead(yy, mm) //往 head 中写入当前的年与月 
{

    document.getElementById("nickYearHead").innerHTML = "<a href=#ky>" + yy + "</a>" + " 年&nbsp;";
    document.getElementById("nickMonthHead").innerHTML = "<a href=#yue>" + mm + "</a>" + " 月";
}

function nickDayClick(n, ex) //点击显示框选取日期，主输入函数*************
{
    //    alert(n);
    var yy = nickTheYear;
    var mm = parseInt(nickTheMonth) + ex; //ex表示偏移量，用于选择上个月份和下个月份的日期 
    //判断月份，并进行对应的处理 
    if (mm < 1) {
        yy--;
        mm = 12 + mm;
    }
    else if (mm > 12) {
        yy++;
        mm = mm - 12;
    }
    outDate = new Date(yy, mm - 1, n);
    SetDayStyle(yy, mm);
    switch (TabSelected) {
        case 1:
            listDay();
            break;
        case 2:
            listWeek();
            break;
        case 3:
            listMonth();
            break;
        case 4:
            listTask();
            break;
        default:
            listMonth();
            break;
    }

}

function SetMonthlyCalendarInit(yy, mm) {

    CalendarXMLYear = yy;
    CalendarXMLMonth = mm;
    //按月获得CalendarXML
    calendarXMLDoc = null;
    TaskID = new Array();
    TaskTitle = new Array();
    TaskType = new Array();
    TaskDate = new Array();

    GetMonthlyCalendarXML(yy + "-" + mm);
    for (var i = 0; i < 32; i++) { RecordedDay[i] = "" };
    RecordedDayByCalendarXML();

}
var calendarXMLDoc;
var TaskID = new Array();
var TaskTitle = new Array();
var TaskType = new Array();
var TaskDate = new Array();

function RecordedDayByCalendarXML() {


    //    try {
    if (window.ActiveXObject) {
        //create support IE browser xml dom object,it supports xml file and string.
        calendarXMLDoc = new ActiveXObject('Microsoft.XMLDOM');
        calendarXMLDoc.async = false;
        calendarXMLDoc.loadXML(MonthlyCalendarXml);
    }
    else if (document.implementation && document.implementation.createDocument) {
        //create support Firefox browser xml dom object,it only supports xml string.
        calendarXMLDoc = document.implementation.createDocument('', '', null);
        var oParser = new DOMParser();
        calendarXMLDoc = oParser.parseFromString(MonthlyCalendarXml, "text/xml");

    }
    else {
        alert("XML Doc Load Failed");
    }

    var taskitems = calendarXMLDoc.getElementsByTagName("task");
    if (taskitems) {
        for (var i = 0; i < taskitems.length; i++) {
            //有事件的日期
            var taskday = taskitems[i].childNodes[0].firstChild.nodeValue;
            RecordedDay[taskday] = 1;
            if (TaskID[taskday] == null) {
                TaskID[taskday] = new Array();

            }
            if (TaskTitle[taskday] == null) {
                TaskTitle[taskday] = new Array();

            }
            if (TaskType[taskday] == null) {
                TaskType[taskday] = new Array();

            }
            if (TaskDate[taskday] == null) {
                TaskDate[taskday] = new Array();

            }

            TaskID[taskday][TaskID[taskday].length] = taskitems[i].childNodes[1].firstChild.nodeValue;
            TaskTitle[taskday][TaskTitle[taskday].length] = taskitems[i].childNodes[2].firstChild.nodeValue;
            TaskType[taskday][TaskType[taskday].length] = taskitems[i].childNodes[3].firstChild.nodeValue;
            TaskDate[taskday][TaskDate[taskday].length] = taskitems[i].childNodes[4].firstChild.nodeValue;
        }
    }


}

var xmlHttpRequestCalendarXML;
function GetMonthlyCalendarXML(yearMonth) {
    ajaxGetMonthlyCalendarXML("GetMonthlyXMLCalendarAPI.aspx", "ReceiveDate=" + yearMonth);
}
function ajaxGetMonthlyCalendarXML(url, strInfo) {

    xmlHttpRequestCalendarXML = getXMLHttpRequest();
    xmlHttpRequestCalendarXML.open("POST", url, false);
    xmlHttpRequestCalendarXML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //  xmlHttpRequestCalendarXML.onreadystatechange = onReadyStateChangeCalendarXML;
    xmlHttpRequestCalendarXML.send(strInfo);
    onReadyStateChangeCalendarXML();
}
function onReadyStateChangeCalendarXML() {
    if (xmlHttpRequestCalendarXML.readyState == 4) {

        if (xmlHttpRequestCalendarXML.status == 200) {
            //处理页面
            MonthlyCalendarXml = xmlHttpRequestCalendarXML.responseText;
            //   MonthlyCalendarXml = xmlHttpRequestCalendarXML.responseXML;
            //       alert(MonthlyCalendarXml);


        } else
            alert("处理忙，请稍候再试！");
    }
}
function getXMLHttpRequest() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        request = new ActiveXObject("Microsoft.XMLHTTP");
        if (!request) {
            request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        return request;
    }

}

function listTodayCalendar() {
    outDate = new Date(); //(new Date().getFullYear(), new Date().getMonth(), new Date().getDate());
    nickTheYear = new Date().getFullYear();
    nickTheMonth = new Date().getMonth() + 1;
    listDay();
    SetDayStyle(nickTheYear, nickTheMonth);
}

function filterCal(flag) {  //筛选日历事件
    // alert(flag);
    // alert(TabSelected);
    switch (TabSelected) {
        case 1:
            listDay(flag);
            break;
        case 2:
            listWeek(flag);
            break;
        case 3:
            listMonth(flag);
            break;
        case 4:
            listTask(flag);
            break;
        case 5:
            ListSearchResult(flag);
            break;
    }

}

function listMonth(filterflg) {
    TabSelected = 3;

    document.getElementById("tabday").src = "images/titlebot02.gif";
    document.getElementById("tabweek").src = "images/titlebot03.gif";
    document.getElementById("tabmonth").src = "images/titlebot04_1.gif";
    document.getElementById("tabtask").src = "images/titlebot05.gif";
    document.getElementById("rili1").style.display = "none";
    document.getElementById("rili2").style.display = "none";
    document.getElementById("rili3").style.display = "inline";
    document.getElementById("rili4").style.display = "none";

    document.getElementById("calendarnav").innerHTML = nickTheYear + "年" + nickTheMonth + "月&nbsp;&nbsp;"
   + "<a onclick=nickPrevM()><img  src=\"images/arrowLeft.gif\" style='cursor: pointer;'/></a>&nbsp;<a onclick=nickNextM() ><img src=\"images/arrowRight.gif\" style='cursor: pointer;'/></a>";


    //气球位置
    document.getElementById("qiqiu").style.marginTop="525px";
    document.getElementById("qiqiu").style.paddingLeft="179px";
    
    listMonthContent(filterflg);
}
function listMonthContent(filterflg) {
    //alert(0);
    
    var b = new Date(nickTheYear, nickTheMonth - 1, 1).getDay(); //某月第一天的星期几
    for (var i = 0; i < 37; i++) {

        var dac = document.getElementById("calDay" + i);
        var daa = document.getElementById("calList" + i);

        daa.innerHTML = "";
      //  daa.style.backgroundColor = "";
        dac.innerHTML = "";
        dac.style.backgroundColor = "";
        dac.onclick = "";
        dac.title = "";
        dac.style.cursor = "default"; 
        if (nickWDay[i] != "") {
            var taskday = nickTheYear + "-" + nickTheMonth + "-" + nickWDay[i];

            if (outDate && nickWDay[i] == outDate.getDate() && nickTheYear == outDate.getFullYear() && nickTheMonth == outDate.getMonth() + 1) {//被选中天
                dac.style.backgroundColor = "#7ad1d5";
              //  daa.style.backgroundColor = "#7ad1d5";
            } else//今天
                if (nickWDay[i] == new Date().getDate() && nickTheYear == new Date().getFullYear() && nickTheMonth == new Date().getMonth() + 1) {
                    dac.style.backgroundColor = "#ffc041";
              //      daa.style.backgroundColor = "#ffc041";
                
            }
            else//其它天
            {

                dac.style.backgroundColor = "";
             //   daa.style.backgroundColor = "";
            }
            dac.innerHTML = nickWDay[i];

            dac.onclick = Function("showAddTask('" + taskday + "','00:00')"); //给td赋予onclick事件的处理
            dac.title = "创建这个时间点的新任务";
            dac.style.cursor = "pointer";
            var t = i - b + 1;

            if (RecordedDay[t] == 1) {
                var ss = "";
                var alist = 0;
                for (var j = 0; j < TaskID[t].length; j++) {
                    if (filterflg != undefined && TaskType[t][j] != filterflg)
                        continue;

                    var c = "";
                    if (alist == 1) {
                        ss += "<br /><a onclick='showDailyTasks(" + nickWDay[i] + ")'>更多...</a>";                       
                        break;
                    }
                    alist++;
                    switch ('' + TaskType[t][j]) {
                        case "1":
                            c = "ce705f";
                            break;
                        case "2":
                            c = "968128";
                            break;
                        case "0":
                            c = "f5736e";
                            break;

                    }
                    var regC = /[^\x00-\xff]+/g; //有双字节字符)：[^x00-xff]
                    if (document.all) {
                        var titleR = TaskTitle[t][j].substr(0, 8);
                        if (regC.test(titleR))
                            titleR = titleR.substr(0, 4);
                    }
                    else
                        var titleR = TaskTitle[t][j].substr(0, 4);
                    ss += "<a onclick='showDetailTask(" + TaskID[t][j] + ")'><span class='txt_" + c + "' style ='text-align :left ;'><img src='images/hugicon0" + TaskType[t][j] + ".png' width=22 height=17 onload='fixPNG(this)' />"
            + "<br />" + TaskDate[t][j].substring(11, 16) + "<br />" + titleR + "</a></span>"
                    
             
                }
              //  ss += "</table></div>";
                daa.innerHTML = ss;

            }

//            else {//该天无事
//                daa.innerHTML += "";
//            }



        }
//        else {//不在该月

//                      
//           
//            

//        }

    }

}

//显示日试图 查看更多...
function showDailyTasks(day) {
    outDate = new Date(nickTheYear, nickTheMonth - 1, day);
    listDay()
    SetDayStyle(nickTheYear, nickTheMonth);
}

function listWeek(filterflg) {
    TabSelected = 2;

    document.getElementById("tabday").src = "images/titlebot02.gif";
    document.getElementById("tabweek").src = "images/titlebot03_1.gif";
    document.getElementById("tabmonth").src = "images/titlebot04.gif";
    document.getElementById("tabtask").src = "images/titlebot05.gif";
    document.getElementById("rili1").style.display = "none";
    document.getElementById("rili2").style.display = "inline";
    document.getElementById("rili3").style.display = "none";
    document.getElementById("rili4").style.display = "none";  

    var d = outDate == null ? new Date() : outDate;
    var begindate;
    var enddate;
    if (d.getDay() >= d.getDate())
        begindate = 1;
    else begindate = d.getDate() - d.getDay();

    enddate = d.getDate() + (6 - d.getDay())
    var allday = GetMonthCount(d.getFullYear(), d.getMonth() + 1)
    if (enddate > allday)
        enddate = allday;
    document.getElementById("calendarnav").innerHTML = d.getFullYear() + "年" + (d.getMonth() + 1) + "月" + begindate + "日-" + enddate + "日"
 + "<a onclick=nickPrevW()><img  src=\"images/arrowLeft.gif\" style='cursor: pointer;'/></a>&nbsp;<a onclick=nickNextW() ><img src=\"images/arrowRight.gif\" style='cursor: pointer;'/></a>";

    //气球位置
    document.getElementById("qiqiu").style.marginTop = "";
    document.getElementById("qiqiu").style.paddingLeft = "";
    listWeekContent(begindate, enddate, filterflg);
}
function listWeekContent(begindate, enddate, filterflg) {
  
    if (nickTheYear != CalendarXMLYear || nickTheMonth != CalendarXMLMonth)
        SetMonthlyCalendarInit(nickTheYear, nickTheMonth);
    var d = outDate == null ? new Date() : outDate;
    var w = new Array();
    for (var i = 0; i < 7; i++) {
        w[i] = "";
        document.getElementById("w" + (i + 1)).innerHTML = "";
        document.getElementById("w" + (i + 1)).style.backgroundColor = "";
        document.getElementById("w" + (i + 1) + "0").innerHTML = "";
        document.getElementById("w" + (i + 1) + "0").style.backgroundColor = "";
        document.getElementById("w" + (i + 1)).onclick = "";
        document.getElementById("w" + (i + 1)).style.cursor = "default";
    }

    var bw = new Date(d.getFullYear(), d.getMonth(), begindate).getDay();
    var ew = new Date(d.getFullYear(), d.getMonth(), enddate).getDay();
    for (var i = bw; i < ew + 1; i++)
        w[i] = 1;
    var b;
    for (var i = 0; i < 7; i++)
        if (w[i] == 1) {

        switch (i) {
            case 0:
                b = "日";
                break;
            case 1:
                b = "一";
                break;
            case 2:
                b = "二";
                break;
            case 3:
                b = "三";
                break;
            case 4:
                b = "四";
                break;
            case 5:
                b = "五";
                break;
            case 6:
                b = "六";
                break;
        }
        document.getElementById("w" + (i + 1)).innerHTML = (d.getMonth() + 1) + "月" + (i - bw + begindate) + "日<br>[星期" + b+"]";
        var taskdate = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + (i - bw + begindate);
        document.getElementById("w" + (i + 1)).onclick = Function("showAddTask('" + taskdate + "','00:00')"); //给td赋予onclick事件的处理
        document.getElementById("w" + (i + 1)).title = "创建这个时间点的新任务";

        document.getElementById("w" + (i + 1)).style.cursor = "pointer";
       
        //当前时间
        if ((i - bw + begindate) == new Date().getDate() && new Date().getMonth() == d.getMonth() && new Date().getFullYear() == d.getFullYear()) {
            document.getElementById("w" + (i + 1)).style.backgroundColor = "#ffc041";
            document.getElementById("w" + (i + 1) + "0").style.backgroundColor = "#ffc041";

        }
        //被选中
        if (outDate && (i - bw + begindate) == outDate.getDate() && outDate.getMonth() == d.getMonth() && outDate.getFullYear() == d.getFullYear()) {
            document.getElementById("w" + (i + 1)).style.backgroundColor = "#7ad1d5";
            document.getElementById("w" + (i + 1) + "0").style.backgroundColor = "#7ad1d5";

        }
        
    }
    else {//默认红颜色
        document.getElementById("w" + (i + 1)).style.backgroundColor = "";
    }

    for (var i = begindate; i < enddate + 1; i++)
        if (RecordedDay[i] == 1) {//今天有事
        var r = new Date(d.getFullYear(), d.getMonth(), i).getDay() + 1;
        var id = "w" + r + "0";

        var ss = "";  //"<div class='todaygansha'><table rules=none border=0 cellspacing=0 cellpadding=0 >";

        for (var j = 0; j < TaskID[i].length; j++) {
            if (filterflg != undefined && TaskType[i][j] != filterflg)
                continue;
            var c = "";
            switch ('' + TaskType[i][j]) {
                case "1": 
                    c = "ce705f";
                    break;
                case "2":
                    c = "968128";
                    break;               
                case "0":
                    c = "f5736e";
                    break;

            }
            var regC = /[^\x00-\xff]+/g; //有双字节字符)：/[^ -~]+/g; //有中文字符
            if (document.all) {
                var titleR = TaskTitle[i][j].substr(0, 8);
                if (regC.test(titleR))
                    titleR = titleR.substr(0, 4);
            }
            else
                var titleR = TaskTitle[i][j].substr(0, 4);

            ss += "<p class='txt_" + c + "' style ='text-align :left ;'><a onclick='showDetailTask(" + TaskID[i][j] + ")'><img src='images/hugicon0" + TaskType[i][j] + ".png' onload='fixPNG(this)' />"
            + "<br />" + TaskDate[i][j].substring(11, 16) + "<br />" + titleR + "</a></p>"
          
        }
       // ss += "</table></div>";

        document.getElementById(id).innerHTML = ss;


    }

}
function nickPrevW() {
    if (outDate == null) {
        outDate = new Date();

    }
    var pw = new Date(outDate.getFullYear(), outDate.getMonth(), outDate.getDate());

    pw.setDate(outDate.getDate() - 7);
    if (pw.getMonth() != outDate.getMonth()) {
        //    if(outDate.getDate() == 1)
        //        outDate.setDate(outDate.getDate() - 7);
        //        else outDate.setDate(1);
        // alert(outDate.getDay());
        if (outDate.getDay() < new Date(outDate.getFullYear(), outDate.getMonth(), 1).getDay()) {
            outDate.setDate(1);
        }
        else {
            outDate.setDate(1);
            outDate.setDate(outDate.getDate() - 1);
        }

    }
    else {
        outDate.setDate(outDate.getDate() - 7);

    }


    nickTheYear = outDate.getFullYear();
    nickTheMonth = outDate.getMonth() + 1;
    listWeek();
    SetDayStyle(nickTheYear, nickTheMonth);

}
function nickNextW() {
    if (outDate == null) {
        outDate = new Date();

    }
    //     var allday = GetMonthCount(outDate.getFullYear(), outDate.getMonth() + 1)
    //     if (outDate.getDate() + 7 > allday && outDate.getDate()!=allday)
    //         outDate.setDate(allday);
    //        else
    //        outDate.setDate(outDate.getDate() + 7);

    var pw = new Date(outDate.getFullYear(), outDate.getMonth(), outDate.getDate());

    pw.setDate(outDate.getDate() + 7);
    if (pw.getMonth() != outDate.getMonth()) {
        pw.setDate(1);
        pw.setDate(pw.getDate() - 1);
        if (outDate.getDay() > pw.getDay()) {
            outDate.setDate(pw.getDate());
        }
        else {

            //            outDate.setMonth(outDate.getMonth() + 1);
            //            outDate.setDate(1);
            outDate = new Date(outDate.getFullYear(), outDate.getMonth() + 1, 1);
        }

    }
    else {
        outDate.setDate(outDate.getDate() + 7);

    }



    nickTheYear = outDate.getFullYear();
    nickTheMonth = outDate.getMonth() + 1;
    listWeek();
    SetDayStyle(nickTheYear, nickTheMonth);

}

function listDay(filterflg) {
    TabSelected = 1;

    document.getElementById("tabday").src = "images/titlebot02_1.gif";
    document.getElementById("tabweek").src = "images/titlebot03.gif";
    document.getElementById("tabmonth").src = "images/titlebot04.gif";
    document.getElementById("tabtask").src = "images/titlebot05.gif";
    document.getElementById("rili1").style.display = "inline";
    document.getElementById("rili2").style.display = "none";
    document.getElementById("rili3").style.display = "none";
    document.getElementById("rili4").style.display = "none";
    var d = outDate == null ? new Date() : outDate;
    document.getElementById("calendarnav").innerHTML = d.getFullYear() + "年" + (d.getMonth() + 1) + "月" + d.getDate() + "日&nbsp;&nbsp;"
   + "<a onclick=nickPrevD()><img  src=\"images/arrowLeft.gif\" style='cursor: pointer;'/></a>&nbsp;<a onclick=nickNextD() ><img src=\"images/arrowRight.gif\" style='cursor: pointer;'/></a>";
    //气球位置
    document.getElementById("qiqiu").style.marginTop = "";
    document.getElementById("qiqiu").style.paddingLeft = "";
    listDayContent(filterflg);
}
function listDayContent(filterflg) {
   
    if (nickTheYear != CalendarXMLYear || nickTheMonth != CalendarXMLMonth)
        SetMonthlyCalendarInit(nickTheYear, nickTheMonth);
    var d = outDate == null ? new Date() : outDate;
    var b = d.getDay(); //星期几
    switch (b) {
        case 0:
            b = "日";
            break;
        case 1:
            b = "一";
            break;
        case 2:
            b = "二";
            break;
        case 3:
            b = "三";
            break;
        case 4:
            b = "四";
            break;
        case 5:
            b = "五";
            break;
        case 6:
            b = "六";
            break;
    }
    var tt = d.getDate();
    document.getElementById("d0").innerHTML = (d.getMonth() + 1) + "月" + tt + "日 [星期" + b + "]";
    var taskdate = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + tt;
    //清除原有表单
    var obj1;
    var obj2;
    var area="";
    for (var i = 0; i < 24; i++) {
   
        if (i > 9) {
            obj1 = "d" + i + "1";
            obj2 = "d" + i + "2";
            area = i;
        }
        else {
            obj1 = "d0" + i + "1";
            obj2 = "d0" + i + "2";
            area = "0" + i;
        }
     //   document.getElementById(obj1).style.backgroundColor = "#FFFFFF";
        document.getElementById(obj2).innerHTML = "<dt id='"+obj1 +"'>"+area +":00</dt>";

        document.getElementById(obj1).onclick = Function("showAddTask('" + taskdate + "','" + (document.all ? document.getElementById(obj1).innerText : document.getElementById(obj1).textContent) + "')"); //给td赋予onclick事件的处理
        document.getElementById(obj1).style.cursor = "pointer";
        document.getElementById(obj1).title = "创建这个时间点的新任务";
    }
    //当前时间
//    if (tt == new Date().getDate() && new Date().getMonth() == d.getMonth() && new Date().getFullYear() == d.getFullYear()) {
//        var id1;
//        if (new Date().getHours() > 9)
//            id1 = "d" + new Date().getHours() + "1";
//        else id1 = "d0" + new Date().getHours() + "1";
//        document.getElementById(id1).style.backgroundColor = "#ffc041";
//    }
  
    if (RecordedDay[tt] == 1) {//今天有事


        for (var j = 0; j < TaskID[tt].length; j++) {
            
            if (filterflg != undefined && TaskType[tt][j] != filterflg)
                continue;
            var id2 = "d" + TaskDate[tt][j].substring(11, 13) + "2";
            var taskbg;
            if(parseInt ( TaskType[tt][j])==0)
            taskbg=3;
            else taskbg =TaskType[tt][j];
            
 var ss ="<dd class='taskbg"+taskbg+"'><span class='left'><img src='images/hugicon0"+TaskType[tt][j]+".png'  onload='fixPNG(this)' class='img' align='absmiddle' /></span>"
 + "<span ><a onclick='showDetailTask(" + TaskID[tt][j] + ")'>&nbsp;" + TaskTitle[tt][j] + "</a></span></dd>";
         
            document.getElementById(id2).innerHTML += ss;
        }

    }


}
function nickPrevD() {
    if (outDate == null) {
        outDate = new Date();
        outDate.setDate(new Date().getDate() - 1);
    }
    else {
        outDate.setDate(outDate.getDate() - 1);
    }

    nickTheYear = outDate.getFullYear();
    nickTheMonth = outDate.getMonth() + 1;
    listDay();
    SetDayStyle(nickTheYear, nickTheMonth);

}
function nickNextD() {
    if (outDate == null) {
        outDate = new Date();
        outDate.setDate(new Date().getDate() + 1);
    }
    else {
        outDate.setDate(outDate.getDate() + 1);
    }

    nickTheYear = outDate.getFullYear();
    nickTheMonth = outDate.getMonth() + 1;
    listDay();
    SetDayStyle(nickTheYear, nickTheMonth);

}

function listTask(filterflg) {
    TabSelected = 4;

    document.getElementById("tabday").src = "images/titlebot02.gif";
    document.getElementById("tabweek").src = "images/titlebot03.gif";
    document.getElementById("tabmonth").src = "images/titlebot04.gif";
    document.getElementById("tabtask").src = "images/titlebot05_1.gif";
    document.getElementById("rili1").style.display = "none";
    document.getElementById("rili2").style.display = "none";
    document.getElementById("rili3").style.display = "none";
    document.getElementById("rili4").style.display = "inline";
    document.getElementById("calendarnav").innerHTML = nickTheYear + "年" + nickTheMonth + "月&nbsp;&nbsp;"
   + "<a onclick=nickPrevT()><img  src=\"images/arrowLeft.gif\" style='cursor: pointer;'/></a>&nbsp;<a onclick=nickNextT() ><img src=\"images/arrowRight.gif\" style='cursor: pointer;'/></a>";

    //气球位置
    document.getElementById("qiqiu").style.marginTop = "";
    document.getElementById("qiqiu").style.paddingLeft = "";
    listTasksContent(filterflg);
}
function listTasksContent(filterflg) {
    if (outDate == null) {
        outDate = new Date();
    }
    document.getElementById("rili4").innerHTML = "";
    var ss = "<img src='images/hugTitle07.gif' /><br /><div id='hugcontent'><div id='hugscroll'>";
    var isfirstday = 1;
    var taskstr="";
    var emptytask = 0;
    for (var t = 0; t < 32; t++) {
        var hastask = 0;
        if (RecordedDay[t] == 1) {
            emptytask = 1;
            if (isfirstday == 1)
                taskstr += "<dl><dt>" + outDate.getFullYear() + "年" + (outDate.getMonth() + 1) + "月" + t + "日</td></dt>";
            else
                taskstr += "<div class='line'></div> <dl><dt>" + outDate.getFullYear() + "年" + (outDate.getMonth() + 1) + "月" + t + "日</td></dt>";
            
            hastask = 0;
            for (var j = 0; j < TaskID[t].length; j++) {

                if (filterflg != undefined && TaskType[t][j] != filterflg)
                    continue;
                var taskbg;
                if (parseInt(TaskType[t][j]) == 0)
                    taskbg = 3;
                else taskbg = TaskType[t][j];
                isfirstday = 0;
                hastask=1;
                taskstr += "<dd class='taskbg" + taskbg + "'><span class='left'><img src='images/hugicon0" + TaskType[t][j] + ".png'  onload='fixPNG(this)' class='img' align='absmiddle' /></span>"
 + "<span ><a onclick='showDetailTask(" + TaskID[t][j] + ")'>&nbsp;" + TaskDate[t][j].substring(11, 16) + "&nbsp;" + TaskTitle[t][j] + "</a></span></dd>";
// + "<span ><a onclick='showDetailTask(" + TaskID[t][j] + ")'>&nbsp;" + TaskTitle[t][j] + "</a></span></dd>";


            }

            taskstr += "</dl>";
            if(hastask==0)
                taskstr = "";
            ss += taskstr;
            taskstr = "";
        }

    }
    ss += "</div></div><img src='images/hugTitle09.gif' /><br />";
    document.getElementById("rili4").innerHTML += ss;
    if (emptytask == 0)
        alert("本月没有相关任务");
    
}
function nickPrevT() //往前翻月份 
{
    if (nickTheMonth > 1) { nickTheMonth-- } else { nickTheYear--; nickTheMonth = 12; }
    SetMonthlyCalendarInit(nickTheYear, nickTheMonth);
    //  if (outDate == null)
    outDate = new Date(nickTheYear, nickTheMonth - 1, 1);
    SetDayStyle(nickTheYear, nickTheMonth);
    listTask();

}
function nickNextT() //往后翻月份 
{
    if (nickTheMonth == 12) { nickTheYear++; nickTheMonth = 1 } else { nickTheMonth++ }
    SetMonthlyCalendarInit(nickTheYear, nickTheMonth);
    //  if (outDate == null)
    outDate = new Date(nickTheYear, nickTheMonth - 1, 1);
    SetDayStyle(nickTheYear, nickTheMonth);
    listTask();
}

//search
function clearSearch() {
    document.getElementById("searchContent").value = "";
    document.getElementById("searchBegin").value = "";
    document.getElementById("searchEnd").value = "";
}

var searchTaskStr = "";
function searchCalendar() {
    searchTaskStr = "";

    if (checkSearchInfo() == true) {
        //  alert(searchTaskStr);
        //  if()
        document.getElementById("searchCalendarID").disabled = true;
        document.getElementById("middle_box_riliSearchTask").style.display = "inline";
        document.getElementById("middle_box_rili").style.display = "none";
        document.getElementById("middle_box_riliAddTask").style.display = "none";
        ajaxSearchTask("SearchTaskAPI.aspx", searchTaskStr);
        ListSearchResult();
    }
    //气球位置
    document.getElementById("qiqiu").style.marginTop = "";
    document.getElementById("qiqiu").style.paddingLeft = "";



}
function checkSearchInfo() {
    if (Trim(document.getElementById("searchContent").value) == "" && document.getElementById("searchBegin").value == "" && document.getElementById("searchEnd").value == "") {
        alert("请首先填写搜索内容！");
        document.getElementById("searchContent").focus();
        return false;
    }

    searchTaskStr = "searchContent=" + escape(document.getElementById("searchContent").value) + "&searchBegin=" + document.getElementById("searchBegin").value + "&searchEnd=" + document.getElementById("searchEnd").value;
    return true;
}
var xmlHttpRequestSearchTask
function ajaxSearchTask(url, strInfo) {

    xmlHttpRequestSearchTask = getXMLHttpRequest();
    xmlHttpRequestSearchTask.open("POST", url, false);
    xmlHttpRequestSearchTask.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //  xmlHttpRequestSearchTask.onreadystatechange = onReadyStateChangeAddTask;
    xmlHttpRequestSearchTask.send(strInfo);
    onReadyStateChangeSearchTask();
}
var SearchCalendarXML;
function onReadyStateChangeSearchTask() {
    if (xmlHttpRequestSearchTask.readyState == 4) {
        document.getElementById("searchCalendarID").disabled = false;
        if (xmlHttpRequestSearchTask.status == 200) {
            //处理页面

            SearchCalendarXML = xmlHttpRequestSearchTask.responseText;

        } else
            alert("处理忙，请稍候再试！");
    }
}
function BackToCalFromSearch() {

    document.getElementById("middle_box_riliSearchTask").style.display = "none";
    document.getElementById("middle_box_rili").style.display = "inline";
    // nickSetMonth(new Date().getFullYear(), new Date().getMonth() + 1);
    //重新获取数据
    SetMonthlyCalendarInit(nickTheYear, nickTheMonth);

    switch (TabSelected) {
        case 1:
            listDay();
            break;
        case 2:
            listWeek();
            break;
        case 3:
            listMonth();
            break;
        case 4:
            listTask();
            break;
        default:
            listMonth();
            break;
    }
}
function ListSearchResult(filterflg) {
    TabSelected = 5
   
    var ss;
    if (window.ActiveXObject) {
        //create support IE browser xml dom object,it supports xml file and string.
        calendarXMLDoc = new ActiveXObject('Microsoft.XMLDOM');
        calendarXMLDoc.async = false;
        calendarXMLDoc.loadXML(SearchCalendarXML);
    }
    else if (document.implementation && document.implementation.createDocument) {
        //create support Firefox browser xml dom object,it only supports xml string.
        calendarXMLDoc = document.implementation.createDocument('', '', null);
        var oParser = new DOMParser();
        calendarXMLDoc = oParser.parseFromString(SearchCalendarXML, "text/xml");

    }
    else {
        alert("XML Doc Load Failed");
    }

    var taskitems = calendarXMLDoc.getElementsByTagName("task");
    if (taskitems.length == 0) {
        alert("抱歉，没有相关信息!");
   //     return;
    }

    document.getElementById("searchlist").innerHTML = "";


    var ss = "<div id='hugcontent'><div id='hugscroll'>";
    var isfirstday = 1;
    var taskstr = "";
    for (var i = 0; i < taskitems.length; i++) {
        
        if (filterflg != undefined && taskitems[i].childNodes[3].firstChild.nodeValue != filterflg)
            continue;
        var strtaskdate = taskitems[i].childNodes[4].firstChild.nodeValue;
        if (isfirstday == 1)
            taskstr = "<dl><dt>" + strtaskdate.substring(0, 4) + "年" + strtaskdate.substring(5, 7) + "月" + strtaskdate.substring(8, 10) + "日</td></dt>";
        else 
        taskstr = "<div class='line'></div> <dl><dt>" + strtaskdate.substring(0, 4) + "年" + strtaskdate.substring(5, 7) + "月" + strtaskdate.substring(8, 10) + "日</td></dt>";
                        var taskbg;
                        if (parseInt(taskitems[i].childNodes[3].firstChild.nodeValue) == 0)
                            taskbg = 3;
                        else taskbg = taskitems[i].childNodes[3].firstChild.nodeValue;
                        isfirstday = 0;
                        
                        taskstr += "<dd class='taskbg" + taskbg + "'><span class='left'><img src='images/hugicon0" + taskitems[i].childNodes[3].firstChild.nodeValue + ".png'  onload='fixPNG(this)' class='img' align='absmiddle' /></span>"
         + "<span ><a onclick='showDetailTask1(" + taskitems[i].childNodes[1].firstChild.nodeValue + ")'>&nbsp;" + strtaskdate.substring(11, 16) + "&nbsp;" + taskitems[i].childNodes[2].firstChild.nodeValue + "</a></span></dd>";
                        taskstr += "</dl>";
                        ss += taskstr;
                        taskstr = "";
     }

                   
    ss += "</div></div>";
    document.getElementById("searchlist").innerHTML += ss;
 

}