﻿//==============================价格日历==============================
var cur_navigator = 0; //IE
if (navigator.appName.indexOf("Explorer") <= -1) {
    cur_navigator = 1; //火狐
}
var cur_request;
var xmlhttp;
var cur_xml;

function getHTMLStringFromURL(tmpURL, obj) {
    var xmlhttp = GLOBAL.Lang.createAjaxObject();
    var tmpResult = "";

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200) {
                tmpResult = xmlhttp.responseText;
                obj.innerHTML = tmpResult;
            }
        }
    }
    xmlhttp.open('get', tmpURL, true);
    xmlhttp.send(null);
}
function getHTMLStringFromURLAndInitPrice(tmpURL, position, productID, productInterFlag) {

    var xmlhttp = GLOBAL.Lang.createAjaxObject();
    var tmpResult = "";

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200) {

                tmpResult = xmlhttp.responseText;
                initPriceList(tmpResult, position, productID, productInterFlag);
                var priceList = $(".xq_rlgj");
                priceList.each(function (i) {
                    $(this).parent().hover(function () {
                        var id = $(this).attr("id");
                        if ($(this).offset().left + $(this).width() + 240 > $(window).width()) {
                            $("#divStock" + id.slice(13, id.length)).css({ left: ($(this).offset().left - 240) + "px", top: ($(this).offset().top) + 50 + "px" }).css("display", "block");
                        }
                        else {
                            $("#divStock" + id.slice(13, id.length)).css({ left: ($(this).offset().left + $(this).width()) + "px", top: ($(this).offset().top) + 50 + "px" }).css("display", "block");
                        }
                    }, function () { var id = $(this).attr("id"); $("#divStock" + id.slice(13, id.length)).css("display", "none"); });
                });
                if (position == "L") {
                    $("#divLoadingL").css("display", "none");
                }
                else {
                    $("#divLoadingR").css("display", "none");
                }
            }
        }
    }
    xmlhttp.open('get', tmpURL, true);
    xmlhttp.send(null);

}


//节假日
function callHoliday(url) {
    if (cur_xml != null) {
        updateHoliday(cur_xml);
    }
    else {
        xmlhttp = GLOBAL.Lang.createAjaxObject();
        if (xmlhttp != null) {
            xmlhttp.open("get", url, false);
            if (cur_navigator != 1) {
                xmlhttp.onreadystatechange = getHolidayXML;
                xmlhttp.send(null);
            }
            else {
                xmlhttp.send(null);
                var respponse = xmlhttp.responseXML;
                cur_xml = respponse;
                updateHoliday(respponse);
            }

        }
        else {
            alert("no xmlhttp");
        }
    }
}
function getHolidayXML() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            var response = xmlhttp.responseXML;
            cur_xml = response;
            updateHoliday(response);

        }
    }
}
function updateHoliday(response) {
    var items1 = response.getElementsByTagName("date");
    var items2 = response.getElementsByTagName("name");
    var position = GLOBAL.Dom.$g("position").value;
    var objYear = GLOBAL.Dom.$g("divYear" + position).innerHTML;
    var objMonth = GLOBAL.Dom.$g("divMonth" + position).innerHTML;
    var curDate = new Date();
    var length = items1.length;
    //alert(length);
    var middletext = "";
    for (var j = 1; j <= 42; j++) {
        obj1 = GLOBAL.Dom.$g("blankTagDate" + position + j);
        var obj1text;
        if (cur_navigator == 0) {
            obj1text = obj1.innerHTML;
        }
        else {
            obj1text = obj1.textContent;
        }

        for (var i = 0; i < length; i++) {

            if (items1[i].firstChild.nodeValue == (objYear + "-" + objMonth + "-" + obj1text)) {
                middletext = items2[i].firstChild.nodeValue;

            }
        }
        var c_date = obj1text;
        if (objYear == curDate.getFullYear() && objMonth == curDate.getMonth() + 1 && c_date == curDate.getDate()) {
            if (middletext == "") {
                obj1.innerHTML = "今天" + obj1text;
            }
            else {

                obj1.innerHTML = "今天" + middletext + obj1text;
            }

        }
        else {
            if (middletext != "") {
                if (cur_navigator == 0) {
                    obj1.innerHTML = middletext + obj1text;
                }
                else {
                    obj1.textContent = middletext + obj1text;
                }

            }
        }
        middletext = "";
    }

}
function outDate(oYear, oMonth, nYear, nMonth) {
    //alert(oYear + "," + oMonth + "," + nYear + "," + nMonth);
    if (nYear == oYear) {
        if (nMonth > oMonth) {
            return true;
        } else {
            return false;
        }
    } else if (nYear > oYear) {
        return true;
    } else if (nYear < oYear) {
        return false;
    }
}
//切换日历月份
function changeMonth(position) {
    var objYearL, objMonthL, objYearR, objMonthR;
    var tmpYearL, tmpMonthL, tmpYearR, tmpMonthR;

    var tmpToday, tmpMaxDate, tmpMinDate;
    tmpToday = new Date();

    tmpMinDate = new Date(GLOBAL.Dom.$g("minDate").value);
    tmpMaxDate = new Date(GLOBAL.Dom.$g("maxDate").value);


    if (position == "L")//减月份
    {
        objYearL = GLOBAL.Dom.$g("divYearL");
        objMonthL = GLOBAL.Dom.$g("divMonthL");
        tmpYearR = objYearL.innerHTML;
        tmpMonthR = objMonthL.innerHTML;
        if (outDate(tmpToday.getFullYear(), tmpToday.getMonth() + 1, objYearL.innerHTML, objMonthL.innerHTML) &&
             outDate(tmpMinDate.getFullYear(), tmpMinDate.getMonth() + 1, objYearL.innerHTML, objMonthL.innerHTML)) {
            $(".divshowstock").remove();
            if (parseInt(objMonthL.innerHTML) == 1) {
                tmpYearL = parseInt(objYearL.innerHTML) - 1;
                tmpMonthL = 12;
            } else {
                tmpYearL = objYearL.innerHTML;
                tmpMonthL = parseInt(objMonthL.innerHTML) - 1;
            }
        } else {
            alert("暂时没有比该月份更早的价格信息了！");
            return;
        }
    } else//加月份
    {
        objYearR = GLOBAL.Dom.$g("divYearR");
        objMonthR = GLOBAL.Dom.$g("divMonthR");
        tmpYearL = objYearR.innerHTML;
        tmpMonthL = objMonthR.innerHTML;

        if (outDate(objYearR.innerHTML, objMonthR.innerHTML, tmpMaxDate.getFullYear(), tmpMaxDate.getMonth() + 1)) {
            $(".divshowstock").remove();
            if (parseInt(objMonthR.innerHTML) == 12) {
                tmpYearR = parseInt(objYearR.innerHTML) + 1;
                tmpMonthR = 1;
            } else {
                tmpYearR = objYearR.innerHTML;
                tmpMonthR = parseInt(objMonthR.innerHTML) + 1;
            }
        } else {
            alert("暂时没有比该月份更晚的价格信息了！");
            return;
        }
    }

    initCalendar(tmpYearL, tmpMonthL, "L");
    initCalendar(tmpYearR, tmpMonthR, "R");
}
//日历数据初始化
function initCalendar(year, month, position) {
    var obj1, obj2;
    var objYear, objMonth;
    var objOffset;
    var tmpDate = new Date(year, month - 1, 1);
    var tmpOffset;
    tmpOffset = tmpDate.getDay();
    var maxDay = DayNumOfMonth(year, month);

    objYear = GLOBAL.Dom.$g("divYear" + position);
    objMonth = GLOBAL.Dom.$g("divMonth" + position);

    objYear.innerHTML = year;
    objMonth.innerHTML = month;
    var yearHref = GLOBAL.Dom.$g("Year" + position + "href");
    var yearImg = GLOBAL.Dom.$g("Year" + position + "img");
    var middleDate;
    if (position == "L") {

        var cur_date = new Date().getMonth() + 1;
        if (cur_date >= objMonth.innerHTML || GLOBAL.Dom.$g("mindatemonth").value >= objMonth.innerHTML) {
            yearImg.setAttribute("src", "http://images.aoyou.com/images/images/jgrl_left_isno.jpg");
        }
        else {
            yearImg.setAttribute("src", "http://images.aoyou.com/images/images/jgrl_left.jpg");
        }
    }
    else {
        middleDate = GLOBAL.Dom.$g("maxDate");
        if (GLOBAL.Dom.$g("maxdatemonth").value <= objMonth.innerHTML) {
            yearImg.setAttribute("src", "http://images.aoyou.com/images/images/jgrl_right_isno.jpg");
        }
        else {
            yearImg.setAttribute("src", "http://images.aoyou.com/images/images/jgrl_right.jpg");
        }
    }
    objOffset = GLOBAL.Dom.$g("divOffset" + position);
    objOffset.innerHTML = tmpOffset;

    //清空原有数据
    for (var i = 1; i <= 42; i++) {
        obj1 = GLOBAL.Dom.$g("blankTagDate" + position + i);
        obj1.innerHTML = "";
        obj1.parentNode.className = "";
        obj2 = GLOBAL.Dom.$g("blankTagValue" + position + i);
        obj2.innerHTML = "";
    }

    //重新初始化数据
    var tmpDay;
    var curDate = new Date();
    for (var i = 1; i <= maxDay; i++) {
        tmpDay = tmpOffset + i;
        obj1 = GLOBAL.Dom.$g("blankTagDate" + position + tmpDay);
        obj1.innerHTML = i;
    }

    GLOBAL.Dom.$g("position").value = position;
    //alert(GLOBAL.Dom.$g("position").value);
    callHoliday("XML/holiday.xml");
    for (var k = 1; k <= 42; k++) {
        tmpInfoDate = GLOBAL.Dom.$g("blankTagDate" + position + k);
        var tmpInfoDate_var = tmpInfoDate.innerHTML;
        var cur_td = tmpInfoDate.parentNode;
        setTdClassName(cur_td, tmpInfoDate, tmpInfoDate_var);
    }
    //显示价格日历
    showPrice(year, month, position);

}

//显示价格日历
function showPrice(year, month, position) {

    var strURL = "";
    var objProduct = GLOBAL.Dom.$g("curProductID");
    var objProductInternal = GLOBAL.Dom.$g("hidInternal");



    strURL = "/DomesticPackage/ProductDetailService.ashx?OprType=8&ProductID=" + objProduct.value
            + "&SearchYear=" + year + "&SearchMonth=" + month + "&d=" + new Date().getTime();

    if (position == "L") {
        var tabPriceL = $("#tabPriceL");
        var w = tabPriceL.width();
        var h = tabPriceL.height();
        var offset = tabPriceL.position();
        var divLoading = $("#divLoadingL");
        divLoading.css({ left: (offset.left + (w / 2) - 125) + "px", top: offset.top + (h / 2) + "px" });
    }
    else {
        var tabPriceR = $("#tabPriceR");
        var w = tabPriceR.width();
        var h = tabPriceR.height();
        var offset = tabPriceR.position();
        var divLoading = $("#divLoadingR");
        divLoading.css({ left: (offset.left + (w / 2) - 125) + "px", top: offset.top + (h / 2) + "px" });
    }
    getHTMLStringFromURLAndInitPrice(strURL, position, objProduct.value, objProductInternal.value);
}
//在日历上显示价格
function initPriceList(tmpResult, position, productID, productInterFlag) {

    var autoconfirm = GLOBAL.Dom.$g("hidAutoConfirm").value;
    var tmpInfoDate;
    var tmpInfoPrice;
    var tmpString = "";

    var strArray, strArray2;
    var j = 1;
    var k;

    var objYear, objMonth
    var departureDate;
    var departureDate_Middle;

    objYear = GLOBAL.Dom.$g("divYear" + position);
    objMonth = GLOBAL.Dom.$g("divMonth" + position);

    var cur_date = new Date();
    var cur_today = (cur_date.getMonth() + 1) + "/" + cur_date.getDate() + "/" + cur_date.getFullYear();

    if (tmpResult.length > 0) {
        strArray = tmpResult.split('|');
        for (var i = 0; i < strArray.length - 1; i++) {
            strArray2 = strArray[i].split(',');
            for (k = j; k < 42; k++) {
                tmpInfoDate = GLOBAL.Dom.$g("blankTagDate" + position + k);
                var vholidayDate = "";
                var vholiday1 = tmpInfoDate.innerHTML.substring(tmpInfoDate.innerHTML.length - 1);
                var vholiday2 = tmpInfoDate.innerHTML.substring(tmpInfoDate.innerHTML.length - 2);
                if (GLOBAL.Lang.isNumber(vholiday1)) {
                    vholidayDate = vholiday1;
                }
                if (GLOBAL.Lang.isNumber(vholiday2)) {
                    vholidayDate = vholiday2;
                }
                if (vholidayDate == strArray2[0]) {
                    departureDate = objYear.innerHTML + "-" + objMonth.innerHTML + "-" + strArray2[0];
                    departureDate_Middle = objMonth.innerHTML + "/" + strArray2[0] + "/" + objYear.innerHTML;
                    tmpInfoPrice = GLOBAL.Dom.$g("blankTagValue" + position + k);

                    //                    alert(GLOBAL.Dom.$g("minDate").value +"||"+ departureDate_Middle);
                    if (Date.parse(GLOBAL.Dom.$g("minDate").value) > Date.parse(departureDate_Middle)) {
                        tmpInfoPrice.innerHTML = "";
                    }
                    else {
                        if (parseInt(strArray2[3]) > 0 && parseInt(strArray2[4])) {
                            tmpInfoPrice.innerHTML = "<div class=\"xq_day_js\">即时确认</div>";
                            var divMessage = $("<div/>");
                            divMessage.attr("class", "divshowstock")
                             .attr("id", "divStock" + position + k).css("display", "none").css("position", "absolute").css("width", "264px").css("font-family", "'宋体'")
                             .html("<div style=\"width:232px; border:1px solid #ffb400; background-color:#fdf9cc; margin-left:10px; position:relative; padding:14px 20px 10px 15px;color:#333; line-height:20px; font-size:12px\"><div><strong>即时确认:</strong>带有即时确认图标的日期，您可以即时预订购买，直接在线支付，无须等待确认。</div><div style=\"float:left\"><img src=\"http://images1.aoyou.cc/Images/2011date_logo1.jpg\" width=\"57\" height=\"52\" /></div><div style=\"line-height:25px; padding-left:70px\"><style>.redcolor{ color:#F00}</style><div>机票库存：<span class=\"redcolor\">" + strArray2[3] + "</span>张</div><div>酒店库存：<span class=\"redcolor\">" + strArray2[4] + "</span>间</div></div><div style=\"clear:both\"></div>");
                            divMessage.appendTo("#divShowStock");
                        }
                        else {
                            tmpInfoPrice.innerHTML = "<div class=\"xq_day_ec\">二次确认</div>";
                            var divMessage = $("<div/>");
                            divMessage.attr("id", "divStock" + position + k).attr("class", "divshowstock").css("display", "none").css("position", "absolute").css("width", "264px").css("font-family", "'宋体'").html("<div style=\"width:232px; border:1px solid #ffb400; background-color:#fdf9cc; margin-left:10px; position:relative; padding:14px 20px 10px 15px;color:#333; line-height:20px; font-size:12px\"><div><strong>二次确认:</strong>该日期目前名额紧张，您可先进行预订，留下联系方式，客服将电话回复您该产品是否预订成功。</div><div style=\"clear:both\"></div>");
                            divMessage.appendTo("#divShowStock");
                        }
                        tmpInfoPrice.innerHTML += "<div class='xq_rlgj'><a href='/DomesticPackage/ProductSelect.aspx?ID=" +
                        productID + "&Date=" + departureDate + "'>&yen;" + strArray2[1] + "</a></div>";

                        tmpInfoDate = GLOBAL.Dom.$g("blankTagDate" + position + k);
                    }
                    j = k + 1;
                    break;
                }

            }
        }
    }
}
function TdMouseOut() {
    return function () {
        var div1 = GLOBAL.Dom.$g("price_1");
        div1.style.display = "none";
    }
}
function TdMouseOver(senderId, productID, departureDate, productInterFlag, autoconfirm, arraykey) {
    return function () {
        var txtSender;
        var divPop;
        var divId = GLOBAL.Dom.$g("price_1");
        if (typeof (senderId) == "object") {
            txtSender = senderId;
        }
        else {
            txtSender = GLOBAL.Dom.$g(senderId);
        }
        if (typeof (divId) == "object") {
            divPop = divId;
        }
        else {
            divPop = GLOBAL.Dom.$g(divId);
        }
        var t = txtSender.offsetTop;
        var l = txtSender.offsetLeft;
        while (txtSender = txtSender.offsetParent) {
            t += txtSender.offsetTop;
            l += txtSender.offsetLeft;
        }
        divPop.style.left = l - 40 + "px";
        divPop.style.top = t + 30 + "px";
        divPop.style.display = "";
        var cur_tmpResult;
        var cur_request_1;
        var url = "GetPackageProductBookingInfo.ashx?ProductID=" + productID;
        url += "&DepartureDate=" + departureDate;
        cur_request = GLOBAL.Lang.createAjaxObject();
        cur_request.open('get', url, true);
        cur_request.onreadystatechange = updateDateBook;
        cur_request.send(null);
        GLOBAL.Dom.$g("price_span").innerHTML = arraykey;
        GLOBAL.Dom.$g("date_book_btn").setAttribute("href", "/DomesticPackage/ProductSelect.aspx?ID=" + productID + "&Date=" + departureDate);
    }
}
function setTdClassName(objParent, obj, objvalue) {

    if (objvalue.length > 2) {
        objParent.className = "holiday";
        return;
    }
    switch (obj.id) {
        case "blankTagDateL1":
        case "blankTagDateL8":
        case "blankTagDateL15":
        case "blankTagDateL22":
        case "blankTagDateL29":
        case "blankTagDateL36":
        case "blankTagDateL7":
        case "blankTagDateL14":
        case "blankTagDateL21":
        case "blankTagDateL28":
        case "blankTagDateL35":
        case "blankTagDateL42":
        case "blankTagDateR1":
        case "blankTagDateR8":
        case "blankTagDateR15":
        case "blankTagDateR22":
        case "blankTagDateR29":
        case "blankTagDateR36":
        case "blankTagDateR7":
        case "blankTagDateR14":
        case "blankTagDateR21":
        case "blankTagDateR28":
        case "blankTagDateR35":
        case "blankTagDateR42":
            objParent.className = "today";
            break;
        default:
            objParent.className = "dateshow";
    }
}
//获得每个月有多少天
function getDaysInMonth(year, month) {
    month = parseInt(month, 10) + 1;
    var temp = new Date(year + "/" + month + "/0");
    return temp.getDate();
}
//获得每个月有多少天（兼容ie,firefox,谷歌）
function DayNumOfMonth(Year, Month) {
    Month--;
    var d = new Date(Year, Month, 1);
    d.setDate(d.getDate() + 32 - d.getDate());
    return (32 - d.getDate());
}
