﻿/**************************************************************
* Copyright Cares Corporation. All rights reserved.
* 
* Author: Cloud.Xie(xiecj@Cares.sh.cn) 
* Create Date: 01/13/2010
* Description:
*          
* Revision History:
*      Date         Author               Description
*              
***************************************************************/

/*Use Object Detection to detect IE6*/
var m = document.uniqueID /*IE*/
&& document.compatMode /*>=IE6*/
&& !window.XMLHttpRequest /*<=IE6*/
&& document.execCommand;
try {
    if (!!m) {
        m("BackgroundImageCache", false, true) /* = IE6 only */
    }
} catch (oh) { };

var SysEC = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? SysEC.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? SysEC.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? SysEC.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? SysEC.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? SysEC.safari = s[1] : 0;

var version;
if (SysEC.ie) { version = 'ie_' + SysEC.ie.substring(0, 1); }
if (SysEC.firefox) { version = 'firefox_' + SysEC.firefox.substring(0, 1); }
if (SysEC.chrome) { version = 'chrome_' + SysEC.chrome.substring(0, 1); }
if (SysEC.opera) { version = 'opera_' + SysEC.opera.substring(0, 1); }
if (SysEC.safari) { version = 'safari_' + SysEC.safari.substring(0, 1); }

document.documentElement.className = version;

//Namespace
window.usingNamespace = function(a) {
    var ro = window;
    if (!(typeof (a) === "string" && a.length != 0)) {
        return ro;
    }
  
    var co = ro;
    var nsp = a.split(".");
    for (var i = 0; i < nsp.length; i++) {
        var cp = nsp[i];       
        if (!ro[cp]) {
            ro[cp] = {};//定义个空对象
        };        
        co = ro = ro[cp];  
    };

    return co;
};

usingNamespace("Web.Utils")["String"] = {

    IsNullOrEmpty: function(v) {    
        return !(typeof (v) === "string" && v.replace(/^\s+|\s+$/g, "").length != 0);
    },
    Trim: function(v) {
        return v.replace(/^\s+|\s+$/g, "")
    },
    TrimStart: function(v, c) {
        if ($String.IsNullOrEmpty(c)) {
            c = "\\s";
        };
        var re = new RegExp("^" + c + "*", "ig");
        return v.replace(re, "");
    },
    TrimEnd: function(v, c) {
        if ($String.IsNullOrEmpty(c)) {
            c = "\\s";
        };
        var re = new RegExp(c + "*$", "ig");
        return v.replace(re, "");
    },
    Camel: function(str) {
        return str.toLowerCase().replace(/\-([a-z])/g, function(m, c) { return "-" + c.toUpperCase() })
    },
    Repeat: function(str, times) {
        for (var i = 0, a = new Array(times); i < times; i++)
            a[i] = str;
        return a.join();
    },
    IsEqual: function(str1, str2) {
        if (str1 == str2)
            return true;
        else
            return false;
    },
    IsNotEqual: function(str1, str2) {
        if (str1 == str2)
            return false;
        else
            return true;
    },
    ReplaceAll: function(v, s1, s2) {
        return v.replace(new RegExp(s1, "gm"), s2);
    }
};

usingNamespace("Web")["HttpUtility"] = {
    UrlEncode: function(str) {
        return escape(str).replace(/\*/g, "%2A").replace(/\+/g, "%2B").replace(/-/g, "%2D").replace(/\./g, "%2E").replace(/\//g, "%2F").replace(/@/g, "%40").replace(/_/g, "%5F");
    },
    UrlDecode: function(str) {
        return unescape(str);
    }
};

var $String = Web.Utils.String;
var $HttpUtility = Web.HttpUtility;

usingNamespace("Web")["Resources"] = {
    Build: function(resourceKey) {
        return eval('Environment.' + resourceKey);
    }
};
var $Resources = Web.Resources;

usingNamespace("Web")["Url"] = {
    BuildCurrentUrl: function(relativePath) {
        return $String.TrimEnd($Resources.Build("WWWSite"), '\/') + "/" + $String.TrimStart(relativePath, '\/');
    },
    BuildCurrentUrlByName: function(name) {        
        var relativePath = eval('Web.PagePathConfig.RelativePath.' + name);   
        return Web.Url.BuildCurrentUrl(relativePath);
    },
    BuildOldSiteUrlByName: function(name) {
        var relativePath = eval('Web.PagePathConfig.RelativePath.' + name);
        return $String.TrimEnd($Resources.Build("OldWWWSite"), '\/') + "/" + $String.TrimStart(relativePath, '\/');
    }

    /*,
    BuildUrl:function(relativePath, type) {
    var rootPath = "";
    if (type.toLowerCase() == "www") {
    rootPath = $WebsiteConfig.UrlPathMappings.WWWSite;
    } else if (type.toLowerCase() == "shopper") {
    rootPath = $WebsiteConfig.UrlPathMappings.ShopperSite;
    } else if (type.toLowerCase() == "secure") {
    rootPath = $WebsiteConfig.UrlPathMappings.SSLSite;
    }
    return rootPath + "/" + $String.TrimStart(relativePath, '\/');
    }*/

};
var $Url = Web.Url;

usingNamespace("Web")["Row"] = {
    onmouseover: function(obj) {
        obj.oldColor = obj.style.backgroundColor;
        obj.style.backgroundColor = '#C8F7FF';
    },

    onmouseout: function(obj) {
        obj.style.backgroundColor = obj.oldColor;
    }
};

$.fn.getClassNames = function() {
    if (name = this.attr("className")) {
        return name.split(" ");
    }
    else {
        return [];
    }
};

usingNamespace("Web.Utils")["Validation"] = {
    //邮箱格式校验
    isEmail: function(s) {
        var patrn = /^([0-9a-zA-Z]([-.\w\+]*[0-9a-zA-Z_-])*@([0-9a-zA-Z][-.\w]*\.)+[a-zA-Z]{2,9})$/;
        return patrn.test(s);
    },
    isLowEmail: function(s) {
        var b, e;
        b = s.indexOf("@");
        e = s.indexOf(".");
        if (b <= 0) return false;
        if (e < 0 || e == (s.length - 1)) { return false; }
        return true;
    },
    clearNoNum: function(event, obj) {

        event = window.event || event;
        if (event.keyCode == 37 | event.keyCode == 39) {
            return;
        }

        obj.value = obj.value.replace(/[^\d.]/g, "");

        obj.value = obj.value.replace(/^\./g, "");

        obj.value = obj.value.replace(/\.{2,}/g, ".");

        obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
    },
    checkNum: function(obj) {

        obj.value = obj.value.replace(/\.$/g, "");
    },
    isInteger: function(value) {
        var integerReg = new RegExp(/^\d+$/);
        return integerReg.test(value);
    },
    isValidateReg: function(value) {
        var validateReg = new RegExp(/^[0-9a-zA-Z]{6,12}$/);
        return validateReg.search(value) = -1 ? false : true;
    },
    //验证是不是数字
    isNumber: function(oNum) {
        if (!oNum) return false;
        var strP = /^\d+(\.\d+)?$/;
        if (!strP.test(oNum)) return false;
        try {
            if (parseFloat(oNum) != oNum) return false;
        }
        catch (ex) {
            return false;
        }
        return true;
    },
    //长旅客卡号9或12位数字验证
    isFfpCardNumber: function(oNum) {
        if (!$String.IsNullOrEmpty(oNum)) {
            var regu = /^(\d{9}|\d{12})$/;
            var re = new RegExp(regu);
            if (!re.test(oNum)) {
                return false;
            }
        }
        return true;

    },
    //邮编格式校验
    isPostCode: function(postCode) {
        if (!$String.IsNullOrEmpty(postCode)) {
            var regu = /^[0-9]{6}$/;
            var re = new RegExp(regu);
            if (!re.test(postCode)) {
                return false;
            }
        }
        return true;
    },

    //密码格式校验
    isPassword: function(password) {
        var reg = /^[a-zA-Z0-9]+$/;
        var password = password;
        if ($String.IsNullOrEmpty(password) || !reg.exec(password)) {
            return false;
        }
        return true;
    },
    //身份证号校验
    isChinaIDCard: function(StrNo) {
        if ($String.IsNullOrEmpty(StrNo)) {
            return true;
        }
        StrNo = StrNo.toString();
        if (StrNo.length == 15) {
            if (!$Validation.isValidDate("19" + StrNo.substr(6, 2), StrNo.substr(8, 2), StrNo.substr(10, 2))) { return false; }
        } else if (StrNo.length == 18) {
            if (!$Validation.isValidDate(StrNo.substr(6, 4), StrNo.substr(10, 2), StrNo.substr(12, 2))) { return false; }
        } else {
            return false;
        }

        if (StrNo.length == 18) {
            var a, b, c
            if (!$Validation.isNumber(StrNo.substr(0, 17))) { return false; }
            a = parseInt(StrNo.substr(0, 1)) * 7 + parseInt(StrNo.substr(1, 1)) * 9 + parseInt(StrNo.substr(2, 1)) * 10;
            a = a + parseInt(StrNo.substr(3, 1)) * 5 + parseInt(StrNo.substr(4, 1)) * 8 + parseInt(StrNo.substr(5, 1)) * 4;
            a = a + parseInt(StrNo.substr(6, 1)) * 2 + parseInt(StrNo.substr(7, 1)) * 1 + parseInt(StrNo.substr(8, 1)) * 6;
            a = a + parseInt(StrNo.substr(9, 1)) * 3 + parseInt(StrNo.substr(10, 1)) * 7 + parseInt(StrNo.substr(11, 1)) * 9;
            a = a + parseInt(StrNo.substr(12, 1)) * 10 + parseInt(StrNo.substr(13, 1)) * 5 + parseInt(StrNo.substr(14, 1)) * 8;
            a = a + parseInt(StrNo.substr(15, 1)) * 4 + parseInt(StrNo.substr(16, 1)) * 2;
            b = a % 11;
            if (b == 2)   //最后一位为校验位   
            {
                c = StrNo.substr(17, 1).toUpperCase();   //转为大写X   
            }
            else {
                c = parseInt(StrNo.substr(17, 1));
            }
            switch (b) {
                case 0: if (c != 1) { return false; } break;
                case 1: if (c != 0) { return false; } break;
                case 2: if (c != "X") { return false; } break;
                case 3: if (c != 9) { return false; } break;
                case 4: if (c != 8) { return false; } break;
                case 5: if (c != 7) { return false; } break;
                case 6: if (c != 6) { return false; } break;
                case 7: if (c != 5) { return false; } break;
                case 8: if (c != 4) { return false; } break;
                case 9: if (c != 3) { return false; } break;
                case 10: if (c != 2) { return false; }
            }
        } else {//15位身份证号
            if (!$Validation.isNumber(StrNo)) { return false; }
        }
        return true;
    },
    isValidDate: function(iY, iM, iD) {
        if (iY > 2200 || iY < 1900 || !$Validation.isNumber(iY)) {
            return false;
        }
        if (iM > 12 || iM <= 0 || !$Validation.isNumber(iM)) {
            return false;
        }
        if (iD > 31 || iD <= 0 || !$Validation.isNumber(iD)) {
            return false;
        }
        return true;
    },
    //儿童生日验证
    isChild: function(birth) {
        var today = new Date();
        var nowYear = today.getYear();
        var nowMonth = today.getMonth() + 1;
        var nowDay = today.getDate();

        var nowDate = nowYear + "-" + nowMonth + "-" + nowDay;

        var age = $Validation.daysBetween(nowDate, birth) / 365;

        age = Math.ceil(age); //Math.ceil向上取整   Math.floor 向下取整数     

        if (age > 2 && age <= 12) {
            return true;
        }

        return false;
    },

    //青年生日验证
    isYTH: function(birth) {
        var today = new Date();
        var nowYear = today.getYear();
        var nowMonth = today.getMonth() + 1;
        var nowDay = today.getDate();

        var nowDate = nowYear + "-" + nowMonth + "-" + nowDay;

        var age = $Validation.daysBetween(nowDate, birth) / 365;

        age = Math.ceil(age); //Math.ceil向上取整   Math.floor 向下取整数     

        if (age >= 12 && age <= 23) {
            return true;
        }

        return false;
    },

    //老年生日验证
    isSRC: function(birth) {
        var today = new Date();
        var nowYear = today.getYear();
        var nowMonth = today.getMonth() + 1;
        var nowDay = today.getDate();

        var nowDate = nowYear + "-" + nowMonth + "-" + nowDay;

        var age = $Validation.daysBetween(nowDate, birth) / 365;

        age = Math.ceil(age); //Math.ceil向上取整   Math.floor 向下取整数     

        if (age >= 55) {
            return true;
        }

        return false;
    },

    //求两个时间的天数差 日期格式为 YYYY-MM-dd   
    daysBetween: function(DateOne,DateTwo)  
    {   
        var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));  
        var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);  
        var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));  
      
        var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));  
        var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);  
        var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));  
      
        var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);   
        return Math.abs(cha);  
    },

    //乘客名校验
    isValidatePassenger: function(psgName) {

        var reg = /^[a-zA-Z]+\/[a-zA-Z]+$|(([\u4e00-\u9fa5]+)|([\u4e00-\u9fa5]+[a-zA-Z]+))$/;
        if ($String.IsNullOrEmpty(psgName) || !reg.exec(psgName)) {
            return false;
        }
        return true;
    },
    //验证是否是英文名
    isValidateForeignPassenger: function(psgName) {
        var reg = /^[a-zA-Z]+\/[a-zA-Z]+$/;
        if (!reg.exec(psgName)) {
            return false;
        }
        return true;
    },
    //验证是否是中文名
    isValidateChinesePassenger: function(psgName) {

        var reg = /^[\u4e00-\u9fa5]+|([\u4e00-\u9fa5]+[a-zA-Z]+)$/;
        if (!reg.exec(psgName)) {
            return false;
        }
        return true;

    },

    //出生日期校验
    isValidateBirth: function(birthDate) {
        var reg = /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/;
        if ($String.IsNullOrEmpty(birthDate) || !reg.exec(birthDate)) {
            return false;
        }
        return true;

    },
    //证件有效期校验
    isValidateVldt: function(birthDate) {
        var reg = /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/;
        if ($String.IsNullOrEmpty(birthDate) || !reg.exec(birthDate)) {
            return false;
        }
        return true;

    },
    //手机号校验
    isMobile: function(s) {
        var regu = /^[1][3,5,8]{1}[0-9]{9}$/;
        var re = new RegExp(regu);
        if (re.test(s)) {
            return true;
        } else {
            return false;
        }
    },
    isPhone: function(s) {
        var regu = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/;
        var re = new RegExp(regu);
        if (re.test(s)) {
            return true;
        } else {
            return false;
        }
    },
    //中文校验
    isChinese: function(s) {
        var reg = /^[\u4e00-\u9fa5]+|([\u4e00-\u9fa5]+[a-zA-Z]+)$/;
        if (!reg.exec(s)) {
            return false;
        }
        return true;
    },
    //英文校验
    isEnglish: function(s) {
        var reg = /^[ a-zA-Z]+$/;
        if (!reg.exec(s)) {
            return false;
        }
        return true;
    },
    //UATP卡号验证 15位数字
    isUATP: function(s) {
        var regu = /^\d{15}$/;
        var re = new RegExp(regu);
        if (re.test(s)) {
            return true;
        } else {
            return false;
        }
    }
}

var $Validation = Web.Utils.Validation;

usingNamespace("Web.Utils")["DateHelper"] = {
    /*
    false: strStartDate > strEndDate
    true : strStartDate <= strEndDate
    */
    compare: function(strStartDate, strEndDate) {
        var arrayStartDate = strStartDate.split("-");
        var arrayEndDate = strEndDate.split("-");

        var length = arrayStartDate.length;
        var i = 0;

        while (i < length) {
            var start = parseFloat(arrayStartDate[i]);
            var end = parseFloat(arrayEndDate[i]);

            if (end > start) return true;
            else if (start > end) return false;
            i++;
        }

        return true;
    }
};
var $DateHelper = Web.Utils.DateHelper;


(function($) {
    $.fn.removeValid = function() {
        $(this).removeClass("inputError");
        $(this).removeClass("inputChoosed");
        $(this).parent().find('.warningInfo').remove();
    };
    $.fn.validatedData = function(opts) {

        var defaults = {
            valid: function(inputValue, item) { return true; },
            errorMessage: function(inputValue) { return "Data is not valid!"; }
        };
        var options = $.extend(defaults, opts);

        this.focus(function() {
            $(this).removeValid();
            $(this).addClass("inputChoosed");
        })
        .blur(function() {
            $(this).removeValid();
            var currentObj = $(this);

            setTimeout(function() {
                var value = currentObj.val();
                if (!options.valid(value, currentObj)) {
                    currentObj.addClass("inputError");
                    var strMsg = options.errorMessage(value);

                    var top = currentObj.position().top + currentObj.height() + 4;
                    var left = currentObj.position().left;

                    var strStyle = 'top:' + top + 'px;';
                    strStyle += 'left:' + left + 'px';

                    currentObj.after('<span class="warningInfo" style="' + strStyle + '">' + strMsg + '</span>');
                }
            }, 300);
        });
    };
})(jQuery);

usingNamespace("Web.PagePathConfig")["RelativePath"] = {

    FlightTicketsAjaxPage: "Ajax/Flights/AjaxFlightTickets.aspx",
    OneWayFlights: "Flights/OneWayFlights.aspx",
    RoundTripFlights: "Flights/RoundTripFlights.aspx",
    UpOneWayFlights: "SeatLeavelup/OneWayFlights.aspx",
    UpRoundTripFlights: "SeatLeavelup/RoundTripFlights.aspx",
    OneWaySpec: "SpecFlights/OneWayFlights.aspx",
    RoundTripSpec: "SpecFlights/RoundTripFlights.aspx",
    
    //Added By ZhengBing @ 2011-01-11
    InterOneWayFlights: "InterFlights/OneWayFlights.aspx",
    InterRoundTripFlights: "InterFlights/RoundTripFlights.aspx",
    FreeFlights:"FreeFlights/FreeFlights.aspx",

    AjaxFindPassword: "Ajax/Customer/AjaxFindPassword.ashx",
    ValidateLoginAjaxPage: "Ajax/Customer/AjaxValidateLogin.ashx",
    AjaxRemoveCookies: "Ajax/Customer/AjaxRemoveCookies.aspx",
    SearchSpecialFlightTicketAjaxPage: "Ajax/Flights/AjaxSearchSpecialFlightTicket.aspx",
    SearchFlightLaneByPriceCalendarAjaxPage: "Ajax/Flights/AjaxPriceCalendarSearchFlightLane.aspx",
    SearchCalendarAjaxPage: "Ajax/Flights/AjaxCalendar.aspx",
    SearchSpecCalendarAjaxPage: "Ajax/SpecFlights/AjaxCalendar.aspx",
    
    //Added By ZhengBing @ 2011-01-12
    SearchInterFlightLaneResultAjaxPage: "Ajax/InterFlights/AjaxFlightLaneResult.aspx",
    SearchInterCalendarAjaxPage: "Ajax/InterFlights/AjaxCalendar.aspx",
    SearchInterRTFlightLaneResultAjaxPage: "Ajax/InterFlights/AjaxRTFlightLaneResult.aspx",
    
    SearchFlightLaneResultAjaxPage: "Ajax/Flights/AjaxFlightLaneResult.aspx",
    SearchUpflightsAjaxPage: "Ajax/Flights/AjaxLevelUpResult.aspx",
    SearchAdditionalPoints: "Ajax/Flights/AjaxAdditionalPoints.aspx",
    SearchSpecFlightsAjaxPage: "Ajax/SpecFlights/AjaxFlightLaneResult.aspx",
    SearchFreeFlightLaneResultAjaxPage: "Ajax/FreeFlights/AjaxGetFreeFlights.aspx",
    ExChangeSearchFlightAjaxPage: "Ajax/Order/AjaxExChangeFlightQeury.aspx",
    GetFfpCardType: "Ajax/Shopping/GetFfpCardType.ashx",
    PayOrder: "Ajax/Shopping/GenerateOrderPay.ashx",
    InterPayOrder: "Ajax/Shopping/GenerateInterOrderPay.ashx",
    FreePayOrder: "Ajax/Shopping/GenerateFreeOrderPay.ashx",
    TicketQuery: "Ajax/Order/TicketListAjaxPage.aspx",
    GenerateOrder: "Ajax/Order/GenerateOrderPay.ashx",
    AjaxRefundTypeSwitch: "Ajax/Order/AjaxRefundTypeSwitch.aspx",
    PayOrderResult: "Order/OrderResult.aspx",
    GenerateRefundApply: "Ajax/Order/GenerateRefundApply.aspx",
    ExChangeFlightLane: "Ajax/Order/ExChangeFlightLane.ashx",
    
    
    LotteryAjaxPage: "Ajax/Lottery/AjaxLottery.aspx",
    MyLotteryAjaxPage: "Ajax/Lottery/AjaxMyLottery.aspx",

    GetPassengerCertType: "Ajax/Shopping/GetPassengerCertType.ashx",
    GetPassengerInfoByCond: "Ajax/Shopping/GetPassengerInfoByCond.aspx",
    GetInterPassengerInfoByCond: "Ajax/Shopping/GetInterPassengerInfoByCond.aspx",
    GetFreePassengerInfoByCond: "Ajax/Shopping/GetFreePassengerInfoByCond.aspx",
    CheckOutAjaxPage: "Ajax/Shopping/CheckOutAjaxPage.aspx",
    CheckOut: "Shopping/CheckOut.aspx", 
    UpCheckOut: "UpShopping/CheckOut.aspx", 
    FreeCheckOut: "Freeshopping/CheckOut.aspx", 
    SpecCheckOut: "SpecShopping/CheckOut.aspx",

    //Added By ZhengBing @ 2011-02-12
    InterCheckOut: "InterShopping/CheckOut.aspx",    
    InterAjax: "Ajax/InterFlights/BuildFlightStr.aspx",
    InterCheckOutAjaxPage: "Ajax/Shopping/InterCheckOutAjaxPage.aspx",
    InterCheckOutResult: "InterShopping/CheckOutResult.aspx",  
    
    FreeCheckOut: "FreeShopping/CheckOut.aspx",  
    FreeCheckOutAjaxPage: "Ajax/Shopping/FreeCheckOutAjaxPage.aspx",
    FreeCheckOutResult: "FreeShopping/CheckOutResult.aspx",      
     
    CheckOutResult: "Shopping/CheckOutResult.aspx",
    SearchPackagePriceAjaxPage: "Ajax/Flights/AjaxFlightLanesContainer.aspx",
    SearchPackagePriceAjaxPageSpec: "Ajax/SpecFlights/AjaxFlightLanesContainer.aspx",
    
    SearchInterPackagePriceAjaxPage: "Ajax/InterFlights/AjaxFlightLanesContainer.aspx",
    
    Login: "Customer/Login.aspx",
    Refund: "RMA/Refund.aspx",
    ExChange: "RMA/ExChange.aspx",
    SearchFlight: "/B2G/InformationAndServices/SearchFlight.aspx",
    ReOrder: "RMA/ReOrder.aspx",
    OrderDetail: "/B2G/MyTravelE/Orderdetails.aspx",
    OrderQuery: "Order/OrderQuery.aspx",
    RefundTaobao: "RMA/RefundTaobao.aspx",
    ExchangeTaobao: "RMA/ExchangeTaobao.aspx",
    ReOrderTaobao: "RMA/ReOrderTaobao.aspx",
    CheckOutResultTaobao: "Shopping/CheckOutResultTaobao.aspx",
    wanlitongURL: "https://www.wanlitong.com/eloyalty_chs/start.swe?SWENeedContext=false&SWECmd=Logoff&SWEC=2&SWEBID=-1&SWETS="
};

usingNamespace("Cares.Ecommerce.Common")["WindowFloatScroll"] = {
    LoadScrollFuntion: function(options) {
        var defaults = {
            scrollID: 'advanced-search',
            top: 165
        };
        var options = $.extend(defaults, options);
        $(window).scroll(function() {
            //                var st = document.documentElement.scrollTop;
            var st;
            if (typeof window.pageYOffset != 'undefined') {
                st = window.pageYOffset;
            }
            else if (typeof document.compatMode != 'undefined'
                            && document.compatMode != 'BackCompat') {
                st = document.documentElement.scrollTop;
            }
            else if (typeof document.body != 'undefined') {
                st = document.body.scrollTop;
            }
            st = parseInt(st);
            if (st > options.top) {
                $('#' + options.scrollID).removeClass("nofixed-top");
                $('#' + options.scrollID).addClass("fixed-top");
            }
            else {
                if ($('#' + options.scrollID).attr("class") == 'fixed-top') {
                    $('#' + options.scrollID).removeClass("fixed-top");
                    $('#' + options.scrollID).addClass("nofixed-top");
                }
            }
        });

        $(window).resize(function() {
            var st;
            if (typeof window.pageYOffset != 'undefined') {
                st = window.pageYOffset;
            }
            else if (typeof document.compatMode != 'undefined'
                            && document.compatMode != 'BackCompat') {
                st = document.documentElement.scrollTop;
            }
            else if (typeof document.body != 'undefined') {
                st = document.body.scrollTop;
            }
            st = parseInt(st);
            if ($('#' + options.scrollID).attr("class") == 'fixed-top' && st < options.top) {
                $('#' + options.scrollID).removeClass("fixed-top");
                $('#' + options.scrollID).addClass("nofixed-top");
            }
        });
    }
};

usingNamespace("Cares.Ecommerce.Common")["BizPageNavigation"] = {

    Timer: null,
    CurrentPageGroupName: null,

    Show: function(obj) {

        if (Cares.Ecommerce.Common.BizPageNavigation.Timer) clearTimeout(Cares.Ecommerce.Common.BizPageNavigation.Timer);
        var name = $(obj).attr('name');
        Cares.Ecommerce.Common.BizPageNavigation.Reset(name);
    },

    Hide: function() {

        Cares.Ecommerce.Common.BizPageNavigation.Timer = setTimeout(function() {
            var name = Cares.Ecommerce.Common.BizPageNavigation.CurrentPageGroupName;
            Cares.Ecommerce.Common.BizPageNavigation.Reset(name);
        }, 300);
    },

    Reset: function(name) {
        $('#menu ul li').removeClass('cur');
        $('#menu ul li[name=' + name + ']').addClass('cur');

        $('#submenu ul').hide();
        $('#submenu ul[name=' + name + ']').show();
    }
};



$(document).ready(function() {
    Cares.Ecommerce.Common.BizPageNavigation.CurrentPageGroupName = $('#menu ul .cur').attr('name');

    $('#menu ul li')
    .mouseover(function() { Cares.Ecommerce.Common.BizPageNavigation.Show(this); })
   //.mouseout(function() { Cares.Ecommerce.Common.BizPageNavigation.Hide(); });

    $('#submenu ul')
    .mouseover(function() { Cares.Ecommerce.Common.BizPageNavigation.Show(this); })
    .mouseout(function() { Cares.Ecommerce.Common.BizPageNavigation.Hide(); });    
 

});
