﻿


var s = "";
//调用日历
function myshowdate(id,country,sceneryname,startcityname) {
    //ajax调用
    number++;
    CreateCallback("/ajaxdate.aspx?id=" + id + '&type=1&ram=' + number, showCalendarLoading, showCalendarList,country,sceneryname,startcityname,id);
}

//随机数
var number = Math.random();


//XmlHttpRequest 对象
function GetHttpObject() {
    if (typeof XMLHttpRequest != "undefined") return new XMLHttpRequest();

    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) { }
    }

    return false;
}

//ajax请求
function CreateCallback(url,calling,callback,country,sceneryname,startcityname,id) {
    var http = GetHttpObject();
    http.open("GET", url, true);
    http.onreadystatechange = function() {
        //成功
        if (http.readyState == 1) {
            if (calling != undefined) {
                calling();
            }
        }
        if (http.readyState == 4) {
            if (callback != undefined) {
                if (http.responseText.length > 0) {
                    callback(http.responseText,country,sceneryname,startcityname,id);
                }
            }
        }
    };
    http.send(null);
}


//得到这个月多少天
function getdays(year, month) {
    var date = new Date(year, month , 0);
    return date.getDate();
}

//得到这个月第一天星期几
function getFirstWeek(year, month) {
    var date = new Date(year, month - 1, 1);
    return date.getDay();
}

//得到今天星期几
function getDayOfWeek(year, month, day) {
    var date = new Date(year, month - 1, day);
    return date.getDay();
}

//得到当前月
function getCurrentMonth(){
    var date = new Date();
    return date.getMonth()+1;
}

//ajax日历调用
function showCalendarList(response,country,sceneryname,startcityname,id) {
    try
    {
        var date = new Date();
        var year = date.getFullYear();
        var month = date.getMonth();
        s = eval("(" + response + ")");
        showCalendar(year, month + 1,country,sceneryname,startcityname,id);
    }catch(e)
    {
    }
}

//显示日历方法
function showCalendar(year, month, country, sceneryname, startcityname, id) {
    getCalendar(year, month, s,country,sceneryname,startcityname,id);
}

//生成日历
function getCalendar(year, month, obj,country,sceneryname,startcityname,id) {
    var url = "";
    switch(country)
    {
        case "country":
            url += "/country/" + sceneryname+"/" + id;
            break;
        case "region":
            url += "/region/" + sceneryname+"/" + id;
            break;
        case "outspot":
	    if(sceneryname=="")
	   {
		 url += "/outspot/" + id;
           }
	   else
	   {
            url += "/outspot/" + sceneryname+"/" + id;
	   }

            break;
	case "nearspot":
	    if(sceneryname=="")
	   {
		 url += "/nearspot/" + id;
           }
	   else
	   {
            url += "/nearspot/" + sceneryname+"/" + id;
	   }

            break;
	case "lvyouspot":
	    if(sceneryname=="")
	   {
		 url += "/lvyouspot/" + id;
           }
	   else
	   {
            url += "/lvyouspot/" + sceneryname+"/" + id;
	   }

            break;
    }
    var treeid = obj.treeid;
    var o = obj.date;
    var calendar = "<DIV style=\"DISPLAY: block;margin:0px;\" id=priceCalendar class=prCd >";
    calendar += "<H3 style='margin:0px;'><SPAN class=close onclick=clearlayer() ></SPAN>";
    var currentmonth = getCurrentMonth();
    if (month == currentmonth) {
        calendar += "<SPAN id=pcDown class=down onclick=\"showCalendar(" + year + "," + (month + 1) + ",'"+country+"','"+sceneryname+"','"+startcityname+"','"+id+"')\"></SPAN>";

    }
    else {
        calendar += "<SPAN id=pcUp class=up onclick=\"showCalendar(" + year + "," + (month - 1) + ",'" + country + "','" + sceneryname + "','" + startcityname + "','" + id + "');\"></SPAN>";
    }
    calendar+="<SPAN class=ymd>"+year+"年 "+month+"月</SPAN></H3>";
    calendar+="<TABLE border=0 cellSpacing=0 cellPadding=0>";
    calendar+= "<TBODY>";
    calendar+="<TR>";
    calendar+="<TH>一</TH>";
    calendar+="<TH>二</TH>";
    calendar+="<TH>三</TH>";
    calendar+="<TH>四</TH>";
    calendar+="<TH>五</TH>";
    calendar+="<TH class=sday>六</TH>";
    calendar += "<TH class=sday>日</TH></TR>";
    calendar += "<tr>";
    var j = 1;
    for (var i = 0; i < 42; i++) {
        var d = new Date(year, month - 1, j).format("yyyy-MM-dd");
        if (i % 7 == 0) {
            calendar += "</tr><tr>";
        }
        if (i + 1 >= getFirstWeek(year, month) && j <= getdays(year, month)) {
            if (getDayOfWeek(year, month, j) == 6 || getDayOfWeek(year, month, j) == 0) {
                calendar += "<td class=sday><a href="+url+"/"+new Date(year, month - 1, j).format("yyyy/MM/dd")+".html>" + j + "<span>" + o[d] + "</span></a> </td>";
            }
            else{
                calendar += "<td><a href=" + url + "/" + new Date(year, month - 1, j).format("yyyy/MM/dd") + ".html>" + j + "<span>" + o[d] + "</span></a> </td>";
            }
            j++;
        }
        else {
            calendar += "<td>&nbsp; </td>";
        }
    }
    calendar += "</tr>";
    calendar += "</TBODY></TABLE></DIV>";
    var t = $("#showcalendar").offset().top;
    var l = $("#showcalendar").offset().left;
    $("#calendarLoding").css("top",t-200);
    $("#calendarLoding").css("left",l - 220);
    $("#calendarLoding").html(calendar);
}

//删除日历
function clearlayer() {
    $("#calendarLoding").remove();
}

//ajax调用显示一段时间
function showDataNav(date, t, treeid) {
    number++
    CreateCallback("/ajaxdate.aspx?type=2&sdate=" + date + "&t=" + t + "&id=" + treeid + "&ram=" + number, showNavLoading, showResponseNav);
}

//显示一段时间
function showResponseNav(response) {
    document.getElementById("uldatanav").innerHTML = response;
}

//显示一段时间loading
function showNavLoading() {
    document.getElementById("uldatanav").innerHTML="<img src='/images/load.gif' style='margin-left:300px;' />";
}

//显示日历loading
function showCalendarLoading() {
    var html = "<DIV style=\"DISPLAY: block;\" class=prCd>";
    html += "<img src=\"/images/load.gif\"/>";
    html += "</DIV>";
    if (document.getElementById("calendarLoding") == null) {    
        var layer = document.createElement("div");
        layer.style.zIndex = 1000;
        layer.id = "calendarLoding";
        var t = $("#showcalendar").offset().top;
        var l = $("#showcalendar").offset().left;
        layer.style.position = "absolute";
        layer.style.top = (t + 50) + "px";
        layer.style.left = (l - 20) + "px";
        layer.innerHTML = html;
        document.body.appendChild(layer);
    }
    else {
        $("#calendarLoding").html(html);
    }
}





//格式化日期方法扩展
Date.prototype.format = function(mask) {

    var d = this;

    var zeroize = function(value, length) {

        if (!length) length = 2;

        value = String(value);

        for (var i = 0, zeros = ''; i < (length - value.length); i++) {

            zeros += '0';

        }

        return zeros + value;

    };

    return mask.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])\1?|[lLZ])\b/g, function($0) {

        switch ($0) {

            case 'd': return d.getDate();

            case 'dd': return zeroize(d.getDate());

            case 'ddd': return ['Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'][d.getDay()];

            case 'dddd': return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][d.getDay()];

            case 'M': return d.getMonth() + 1;

            case 'MM': return zeroize(d.getMonth() + 1);

            case 'MMM': return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][d.getMonth()];

            case 'MMMM': return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][d.getMonth()];

            case 'yy': return String(d.getFullYear()).substr(2);

            case 'yyyy': return d.getFullYear();

            case 'h': return d.getHours() % 12 || 12;

            case 'hh': return zeroize(d.getHours() % 12 || 12);

            case 'H': return d.getHours();

            case 'HH': return zeroize(d.getHours());

            case 'm': return d.getMinutes();

            case 'mm': return zeroize(d.getMinutes());

            case 's': return d.getSeconds();

            case 'ss': return zeroize(d.getSeconds());

            case 'l': return zeroize(d.getMilliseconds(), 3);

            case 'L': var m = d.getMilliseconds();

                if (m > 99) m = Math.round(m / 10);

                return zeroize(m);

            case 'tt': return d.getHours() < 12 ? 'am' : 'pm';

            case 'TT': return d.getHours() < 12 ? 'AM' : 'PM';

            case 'Z': return d.toUTCString().match(/[A-Z]+$/);

                // Return quoted strings with the surrounding quotes removed   

            default: return $0.substr(1, $0.length - 2);

        }

    });

};  






