﻿var BindQuery = "";

//+---------------------------------------------------   
//| 字符串转成日期类型    
//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd   
//+---------------------------------------------------   
function StringToDate(DateStr)   
{    
   
    var converted = Date.parse(DateStr);   
    var myDate = new Date(converted);   
    if (isNaN(myDate))   
    {    
        //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';   
        var arys= DateStr.split('-');   
        myDate = new Date(arys[0],--arys[1],arys[2]);   
    }   
    return myDate;   
}  

//设置日期
$(function() {
    if (BindQuery != "Flight") {
        init("InterDeparture", InterFromCitys);
        initHotCity("InterDeparture", InterFromHotCities);
        if (location.href.toLowerCase().indexOf("usquery.aspx") > -1) {
            initCity("InterArrival", USCitys);
            initHotCity("InterArrival", USHotCities);
        }
        else {
            init("InterArrival", InterCitys);
            initHotCity("InterArrival", InterHotCities);

            init("InterHotelArrival", InterCitys);
            initHotCity("InterHotelArrival", InterHotCities);
        }
        init("txtDeparture", Citys);
        initHotCity("txtDeparture", HotCities);
        init("txtArrival", Citys);
        initHotCity("txtArrival", HotCities);
    }
    //    $("#InterDepTime").focus(function() { WdatePicker({ minDate: '%y-%M-%d', maxDate: '{%y+1}-%M-%d', readOnly: true, isShowClear: true, isShowToday: false }); });
    //    $("#InterArriveTime").focus(function() { WdatePicker({ minDate: '%y-%M-%d', maxDate: '{%y+1}-%M-%d', readOnly: true, isShowClear: true, isShowToday: false }); });
    //    $("#txtDepTime").focus(function() { WdatePicker({ minDate: '%y-%M-%d', maxDate: '{%y+1}-%M-%d', readOnly: true, isShowClear: true, isShowToday: false }); });
    //    $("#txtArriveTime").focus(function() { WdatePicker({ minDate: '%y-%M-%d', maxDate: '{%y+1}-%M-%d', readOnly: true, isShowClear: true, isShowToday: false }); });
});
//初始化城市查询 控件
function init(id, data) {
    $("#" + id)
    .bind('blur', function() {
        var value = '';
        for (var i = 0; i < data.length; i++) {
            if (data[i][4] + "(" + data[i][1] + ")" == this.value) {
                value = data[i][0];
                break;
            }
            else if (data[i][2].toLowerCase() == this.value.toLowerCase()) {
                this.value = data[i][4];
                $(this).closest("form").validate().element($(this));
                value = data[i][0];
                break;
            }
            else if (data[i][0].toLowerCase() == this.value.toLowerCase()) {
                this.value = data[i][4] + "(" + data[i][1] + ")";
                $(this).closest("form").validate().element($(this));
                value = data[i][0];
                break;
            }
        }
        if (this.value != '') {
            $("#f" + id).val(value);
        } else {
            $("#f" + id).val('');
        }
    })
    .autocomplete(data, {
        width: 240,
        multiple: false,
        caption: "可输入城市中文名/英文名/拼音，按↑↓选择",
        mustMatch: false,
        matchContains: false,
        minChars: 1,
        max: 14,
        selectFirst: true,
        delay: 10,
        cacheLength: 500,
        autoFill: false,
        formatItem: function(row, i, max) {
            //            return "<span style='float:left;'>" + row.CityEnName + "</span> <span style='float:right'>" + row.CityName + "</span>";
            return "<span style='float:left;'>" + row[2] + "</span> <span style='float:right'>" + row[4] + "</span>";
        },
        formatMatch: function(row, i, max) {
            // return row.Code + " " + row.CityCode + " " + row.CityEnName + " " + row.CityPing + " " + row.CityName;
            return row[4] + "(" + row[1] + ") " + row[0] + " " + row[1] + " " + row[2] + " " + row[3];
        },

        formatResult: function(row) {
            //return row.CityName;
            return row[4] + "(" + row[1] + ")";
        }
    }).result(function(event, data, formatted) {
        if (formatted.length > 1) {
            $("#f" + id).val(formatted.split(' ')[1]);
        }
    }).keyup(function() {

        $(this).setOptions({ matchContains: false });

    }).keydown(function() {
        $(this).setOptions({ matchContains: true });
    });
}
//初始化城市查询 控件 table显示 返回值加上三字码
function initCity(id, data) {
    $("#" + id)
    .bind('blur', function() {
        var value = '';
        for (var i = 0; i < data.length; i++) {
            if (data[i][4] + "(" + data[i][1] + ")" == this.value) {
                value = data[i][0];
                break;
            }
            else if (data[i][2].toLowerCase() == this.value.toLowerCase()) {
                this.value = data[i][4] + "(" + data[i][1] + ")";
                $(this).closest("form").validate().element($(this));
                value = data[i][0];
                break;
            }
        }
        if (this.value != '') {
            $("#f" + id).val(value);
        } else {
            $("#f" + id).val('');
        }
    })
    .autocomplete(data, {
        width: 340,
        multiple: false,
        caption: "可输入城市中文名/英文名/拼音，按↑↓选择",
        mustMatch: false,
        matchContains: false,
        minChars: 1,
        max: 500,
        selectFirst: true,
        delay: 10,
        cacheLength: 500,
        autoFill: false,
        formatItem: function(row, i, max) {
            //            return "<span style='float:left;'>" + row.CityEnName + "</span> <span style='float:right'>" + row.CityName + "</span>";
            //return "<span style='float:left;'>" + row[2] + "</span> <span style='float:right'>" + row[4] + "</span>";
            return "<table style='width:100%; border:none; table-layout:fixed;' ><tr><td style='width:50%;'>" + row[2] + "</td><td style='width:30%'>" + row[4] + "</td><td>" + row[5] + "</td></tr></table>";
        },
        formatMatch: function(row, i, max) {
            // return row.Code + " " + row.CityCode + " " + row.CityEnName + " " + row.CityPing + " " + row.CityName+"" +row.ZoneName;
            return row[4] + "(" + row[1] + ") " + row[0] + " " + row[1] + " " + row[2] + " " + row[3] + " " + row[5];
        },

        formatResult: function(row) {
            //return row.CityName;
            return row[4] + "(" + row[1] + ")";
        }
    }).result(function(event, data, formatted) {
        if (formatted.length > 1) {
            $("#f" + id).val(formatted.split(' ')[1]);
        }
    }).keyup(function() {

        $(this).setOptions({ matchContains: false });

    }).keydown(function() {
        $(this).setOptions({ matchContains: true });
    });
}
function getCityHtml(data) {
    var html = "";
    for (var i = 0; i < data.length; i++) {
        html += "<li data_n='" + data[i].N + "' data_c='" + data[i].C + "'><a>" + data[i].N + "</a></li>"
    }
    return html;
}
function initHotCity(id, data) {
    var crtInterval;
    var popupId = "h" + id;

    var head = "<div class='hot_title'>可输入城市中文名/英文名/拼音</div>";
    var menu = "<ul class='hot_menu'>";
    var item = "<ul class='hot_city'></ul>";
    for (var i = 0; i < data.length; i++) {
        if (i == 0) {
            menu += "<li class='hot_action' data='" + i + "'>" + data[i].Tab + "</li>";
        }
        else {
            menu += "<li data='" + i + "'>" + data[i].Tab + "</li>";
        }
    }
    menu += "</ul>";
    //$("#" + popupId).html(head + menu + item);
    $("body").append("<div id='" + popupId + "' class='hotcity'>" + head + menu + item + "</div>");

    $("#" + id).click(function() {
        if (this.value == "") {
            showHotCityPopup(popupId, id);
        }
        else
            hideHotCityPopup(popupId);
    }).mouseout(function() {
        crtInterval = setInterval(function() { hideHotCityPopup(popupId); }, 500);
    }).mouseover(function() {
        clearInterval(crtInterval);
    }).keyup(function() {
        if (this.value == "") {
            showHotCityPopup(popupId, id);
        }
        else {
            hideHotCityPopup(popupId);
        }
    });

    $("#" + popupId).mouseout(function() {
        crtInterval = setInterval(function() { hideHotCityPopup(popupId); }, 500);
    }).mouseover(function() {
        clearInterval(crtInterval);
    });

    if (data.length > 0) {
        $("#" + popupId + " .hot_city").html(getCityHtml(data[0].Cities));
        $("#" + popupId + " .hot_city li").click(function() { $("#" + id).val($(this).attr("data_n") + "(" + $(this).attr("data_c") + ")"); $("#" + id).closest("form").validate().element($("#" + id)); $("#" + id).css("color", "#000000"); $("#f" + id).val($(this).attr("data_c")); hideHotCityPopup(popupId); });
    }
    $("#" + popupId + " .hot_menu li").click(function() {
        $("#" + popupId + " .hot_menu li").removeClass("hot_action");
        $(this).addClass("hot_action");
        $("#" + popupId + " .hot_city").html(getCityHtml(data[$(this).attr("data")].Cities));
        $("#" + popupId + " .hot_city li").click(function() { $("#" + id).val($(this).attr("data_n") + "(" + $(this).attr("data_c") + ")"); $("#" + id).closest("form").validate().element($("#" + id)); $("#" + id).css("color", "#000000"); $("#f" + id).val($(this).attr("data_c")); hideHotCityPopup(popupId); });
    });
}

function showHotCityPopup(popupId, triggerId) {
    $(".hotcity").css("left", "-400px");
    var p = $("#" + triggerId).offset();
    $("#" + popupId).css("left", p.left + "px");
    $("#" + popupId).css("top", p.top + 20 + "px");
    $("select").css("visibility", "hidden");
}
function hideHotCityPopup(popupId) {
    if ($("#" + popupId).css("left") != "-400px") {
        $("#" + popupId).css("left", "-400px");
        $("select").css("visibility", "visible");
    }
}

////禁用/启用 返程日期
function fillBackDate(isCheck, sign) {
    if (isCheck) {
        $("." + sign + "backdate").show();
        $("#TrArriveTime").show();
        $('#trCanRebooking').show();
    }
    else {
        $("." + sign + "backdate").hide();
        $("#TrArriveTime").hide();
        $('#trCanRebooking').hide();
    }
}

//表单属性
$.metadata.setType("attr", "validate");
$.validator.setDefaults({
    focusInvalid: false,
    submitHandler: function() {
        var formid = $(this.currentForm).attr("id"); //表单ID
        var posturl = $(this.currentForm).attr("action"); //Url
        if (formid == "interFlightQuery") {
            if ($("#InterGoBack").attr("checked")) {
		var t11 = $("#InterDepTime").val();
		var t22 = $("#InterArriveTime").val();

                var t1 = $("#InterDepTime").val().split('-');
                var t2 = $("#InterArriveTime").val().split('-');
		var mon1 = parseInt(t1[1]) - 1;
		var mon2 = parseInt(t2[1]) - 1;
                //if ((new Date(t1[0], mon1, t1[2])) > (new Date(t2[0], mon2, t2[2]))) {
		if(StringToDate(t11) > StringToDate(t22)) {
                    alert("返程日期不能小于出发日期");
                    return false;
                }
            }
            if ($("#fInterDeparture").val() == "" || $("#fInterArrival").val() == "") {
                alert("请从列表中选择出发地和目的地");
                return false;
            }
            if ($("#fInterDeparture").val() == $("#fInterArrival").val()) {
                alert("出发地或目的地选择有误");
                return false;
            }
            PostForm(formid, posturl);
        }
        else if (formid == "interHotelQuery") {
            /*var t1 = $("#InterHotelArriveTime").val().split('-');
            var t2 = $("#InterHotelDepTime").val().split('-');
            if ((new Date(t1[0], t1[1], t1[2])) > (new Date(t2[0], t2[1], t2[2]))) {
            alert("入住日期不能小于退房日期");
            return false;
            }
            if ($("#fInterHotelArrival").val() == "") {
            alert("请从列表中选择入住城市");
            return false;
            }*/
            $(this.currentForm).submit();
        }
        else {
            if ($("#GoBack").attr("checked")) {
		var t11 = $("#InterDepTime").val();
		var t22 = $("#InterArriveTime").val();

                var t1 = $("#txtDepTime").val().split('-');
                var t2 = $("#txtArriveTime").val().split('-');
		var mon1 = parseInt(t1[1]) - 1;
		var mon2 = parseInt(t2[1]) - 1;
                //if ((new Date(t1[0], mon1, t1[2])) > (new Date(t2[0], mon2, t2[2]))) {
		if(StringToDate(t11) > StringToDate(t22)) {
                    alert("离店日期不能小于入住日期");
                    return false;
                }
            }
            if ($("#ftxtDeparture").val() == "" || $("#ftxtArrival").val() == "") {
                alert("请从列表中选择出发地和目的地");
                return false;
            }
            if ($("#ftxtDeparture").val() == $("#ftxtArrival").val()) {
                alert("出发地或目的地选择有误");
                return false;
            }
            PostForm(formid, posturl);
        }

    }
});

function PostForm(formid, posturl) {
    var len = $("link[href*='default.css']").size();
    if (len < 1) {
        if (window.callLoading == undefined) {
            $("#formContainer").hide();
            $("#searchContainer").show();
        } else {
            window.callLoading();
        }
    } else {
        showload();
    }
    var content = $("#" + formid).formSerialize();
    var travalType = ($('#' + formid + ' input[name=TravalType]:checked').val());
    $("#from").text($("#" + formid + " input[name='Departure']").val());
    $("#to").text($("#" + formid + " input[name='Arrival']").val());
    $("#fromtime").html('出发日期：<span>' + $("#" + formid + " input[name='DepTime']").val() + "</span>");

    var befrom = $("#" + formid + " input[name='befrom']").val();
    var befromInput = '';
    if (befrom) {
        if (befrom == '') {
            befromInput = '';
        }
        else {
            befromInput = '<input type="hidden" name="befrom" value="' + (befrom) + '" />';
        }
    }
    else {
        befromInput = '';
    }

    var crtpid = 1;
    function changePic() {
        crtpid = parseInt(crtpid) + 1;
        if (crtpid == 6) crtpid = 1;
        $(".pop_searchload .pop_adimg img").fadeOut(500, function() { $(".pop_searchload .pop_adimg img").attr("src", "/images/search/" + crtpid + ".gif").fadeIn(1000); });
    }

    setInterval(changePic, 4000);


    if (travalType == '2') {
        $("#returntime").html('返程日期：<span>' + $("#" + formid + " input[name='ArriveTime']").val() + "</span>");
    }
    $.post('/common/Search.ashx', content, function(data) {
        var obj = window.eval("(" + data + ")");
        if (obj.Success.toLowerCase() == "true") {
            $(document.body).append('<form action="' + (posturl) + '" method="get" id="hform"><input type="hidden" name="searchkey" value="' + (obj.Key) + '" />' + (befromInput) + '</form>');
            document.getElementById("hform").submit();
        } else {
            var url = '';
            if (obj.url) {
                url = obj.url;
            }
            $(document.body).append('<form action="/ErrorInfo.aspx" method="post" id="hform"><input type="hidden" name="error" value="' + (obj.ErrorInfo) + '" /><input type="hidden" name="code" value="' + (obj.ErrorCode) + '" /><input type="hidden" name="backurl" value="' + (url) + '" /></form>');
            document.getElementById("hform").submit();
        }
    });
    return false;
}

function searchHotelSubmit() {
    if ($("#fInterHotelArrival").val() == "") {
        alert("请从列表中选择入住城市");
        return;
    }
    var arriveTime = $("#InterHotelArriveTime").val();
    var departTime = $("#InterHotelDepTime").val();
    if (arriveTime == "") {
        alert("请选择入住日期");
        return;
    } if (departTime == "") {
        alert("请选择退房日期");
        return;
    }
    var t1 = arriveTime.split('-');
    var t2 = departTime.split('-');
    if ((new Date(t1[0], t1[1], t1[2])) > (new Date(t2[0], t2[1], t2[2]))) {
        alert("入住日期不能小于退房日期");
        return;
    }
    var rn = $("#roomNum").attr("value");
    var ri = "";
    if (location.href.toLowerCase().indexOf("interhotel/default.aspx") > -1) {
        ri = rn;
        for (var ii = 1; ii <= parseInt(rn); ii++) {
            ri += "_" + $("#adult_room" + ii).attr("value") + $("#child_room" + ii).attr("value") + getFormatNum($("#child_room" + ii + "_1").attr("value")) + getFormatNum($("#child_room" + ii + "_2").attr("value")) + getFormatNum($("#child_room" + ii + "_3").attr("value"));
        }
    }
    location.href = "/InterHotel/Default.aspx?city=" + $("#fInterHotelArrival").val() + "&arrivedate=" + arriveTime + "&departdate=" + departTime + "&rn=" + rn + "&ri=" + ri + "&hn=" + $("#hotelName").val();
}

function focusInit(el, out) {
    if (el.value == el.title) {
        el.value = '';
        el.style.color = '#000000';
    } else if (out == true) {
        if (el.value == '') {
            el.value = el.title;
            el.style.color = '#666';
        }
        else {
            el.style.color = '#000000';
        }
    }
}

function initFormValues(jsonString, form) {
    var queryHeader = eval(jsonString);
    for (var key in queryHeader) {
        var $el = (form != null ? $(form) : $('form')).find(':input[name=' + key + ']');
        if ($el.length > 0) {
            if ($el[0].tagName == 'INPUT' || $el[0].tagName == 'SELECT') {
                if ($el[0].tagName == 'SELECT') {
                    $el.val(queryHeader[key]);
                    $el.trigger('change');
                } else if ($el[0].type != 'radio') {
                    $el.val(queryHeader[key]);
                } else if ($el[0].type == 'radio') {
                    $el.each(function() {
                        if (this.value == queryHeader[key]) {
                            $(this).trigger('click');
                        }
                    });
                }
            }
        }
    }
};


//获取页面大小参数
function getPageSize() {
    var xScroll, yScroll;
    if (window.innerHeight && window.scrollMaxY) {
        xScroll = document.body.scrollWidth;
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight) {
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    } else {
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }

    var windowWidth, windowHeight;
    if (self.innerHeight) {
        windowWidth = self.innerWidth;
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) {
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }

    if (yScroll < windowHeight) {
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }

    if (xScroll < windowWidth) {
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }
    return new Array(pageWidth, pageHeight, windowWidth, windowHeight)
}

//设置指定元素使其自动在屏幕水平中间显示
function SetElementPos(elem) {
    var winSize = getPageSize();
    var windowHeight = parseInt(winSize[3]);
    var elemTop = windowHeight / 2;
    var scrollTop = $(document).scrollTop();
    elem.style.top = (elemTop + scrollTop) + "px";
}
