﻿
var inchina = "三亚|丽江|桂林|西藏|四川|重庆|浙江|江苏|黄山|山东|厦门|武夷山|江西|陕西|河南|张家界|贵州|东北|广东|山西|北京|上海";

var outasia = "香港|澳门|台湾|日本|韩国|巴厘岛|泰国|新加坡|马来西亚|马尔代夫|菲律宾|柬埔寨|越南|印度|尼泊尔|印度尼西亚";
var outafrica = "埃及|土耳其|迪拜|南非|肯尼亚|毛里求斯|塞舌尔";
var outeurope = "法国|意大利|瑞士|希腊|德国|英国|爱尔兰|西班牙|葡萄牙|荷兰|奥地利|捷克|波兰|匈牙利|芬兰|丹麦|挪威|瑞典|俄罗斯";
var outaustralia = "澳大利亚|新西兰|斐济";
var outamerica = "美国|巴西|阿根廷";

var varAddress = "@xizang|西藏|@sichuan|四川|@zhejiang|浙江|@jiangsu|江苏|@shandong|山东|@jiangxi|江西|@shanxi|陕西|@henan|河南|@guizhou|贵州|@dongbei|东北|@guangdong|广东|@shanxi|山西|@tanwan|台湾| @Japan|日本|@Korea|韩国|@Bali|巴厘岛|@thailand|泰国|@singapore|新加坡|@malaysia|马来西亚|@philippines|菲律宾|@cambodia|柬埔寨|@vietnam|越南|@india|印度| @nepal|尼泊尔|@indonesia|印度尼西亚|@France|法国|@italy|意大利|@Switzerland|瑞士|@greece|希腊|@Germany|德国|@Great Britain|英国|@Ireland|爱尔兰|@spain|西班牙|@Portugal|葡萄牙|@Netherland|荷兰|@Austria|奥地利|@czech|捷克|@Poland|波兰|@Hungary|匈牙利|@Finland|芬兰|@Denmark|丹麦|@norway|挪威|@Sweden|瑞典|@Russia|俄罗斯|@egypt|埃及|@turkey|土耳其|@dubai|迪拜|@southafrica|南非|@kenya|肯尼亚|@mauritius|毛里求斯|@seychelles|塞舌尔|@australia|澳大利亚|@newzealand|新西兰|@fiji|斐济|@Akesu|阿克苏|@Aletai|阿勒泰|@Ankang|安康|@Anqing|安庆|@Anshun|安顺|@Anting|安亭|594@Baise|百色|AEB@Baoshan|保山|BSD@Baotou|包头|BAV@Beihai|北海|BHY@Beijing|北京|BJS@Changchun|长春|CGQ@Changde|常德|CGD@Changdu|昌都|BPX@Changsha|长沙|CSX@Changzhi|长治|CIH@Changzhou|常州|CZX@Chaoyang|朝阳|CHG@Chengdu|成都|CTU@Chifeng|赤峰|CIF@Chongqing|重庆|CKG@Dali|大理|DLU@Dalian|大连|DLC@Dandong|丹东|DDG@Datong|大同|DAT@Daxian|达县|DAX@Dehong|德宏|LUM@Diqing|迪庆|DIG@Dongying|东营|DOY@Dunhuang|敦煌|DNH@Enshi|恩施|ENH@Fuyang|阜阳|FUG@Fuzhou|福州|FOC@Ganzhou|赣州|KOW@Geermu|格尔木|GOQ@Guanghan|广汉|GHN@Guanghua|光化|LHK@Guangzhou|广州|CAN@Guilin|桂林|KWL@Guiyang|贵阳|KWE@Haerbin|哈尔滨|HRB@Haikou|海口|HAK@Hailaer|海拉尔|HLD@Handan|邯郸|HDG@Hangzhou|杭州|HGH@Hanzhong|汉中|HZG@Hefei|合肥|HFE@Heihe|黑河|HEK@Hetian|和田|HTN@Hong Kong|香港|HKG@Huangshan|黄山|TXN@Huangyan|黄岩|HYN@Huhehaote|呼和浩特|HET@Jiamusi|佳木斯|JMU@Jiayuguan|嘉峪关|JGN@Jilin|吉林|JIL@Jinan|济南|TNA@Jingdezhen|景德镇|JDZ@Jinggangshan|井冈山|JGS@Jinghong|景洪|JHG@jinjiang|晋江|JJN@Jinzhou|锦州|JNZ@Jiujiang|九江|JIU@Jiuzhaigou|九寨沟|JZH@Kaohsiung|高雄|KHH@Kashi|喀什|KHG@Kelamayi|克拉玛依|KRY@Kuche|库车|KCA@Kuerle|库尔勒|KRL@Kunming|昆明|KMG@Lanzhou|兰州|LHW@Lasa|拉萨|LXA@LiangPing|梁平|LIA@Lianyungang|连云港|LYG@Lijiang|丽江|LJG@Lincang|临沧|LNJ@Linxi|林西|LXI@Linyi|临沂|LYI@Linzhi|林芝|LZY@LIPING|黎平|HZH@Liuzhou|柳州|LZH@LONGYAN|龙岩|LCX@Luoyang|洛阳|LYA@Luzhou|泸州|LZO@Macau|澳门|MFM@Mangshi|芒市|LUM@Manzhouli|满洲里|NZH@Meixian|梅县|MXZ@Mianyang|绵阳|MIG@Mudanjiang|牡丹江|MDG@Nanchang|南昌|KHN@Nanchong|南充|NAO@Nanjing|南京|NKG@Nanning|南宁|NNG@Nantong|南通|NTG@Nanyang|南阳|NNY@Ningbo|宁波|NGB@Panzhihua|攀枝花|PZI@Qingdao|青岛|TAO@Qingyang|庆阳|IQN@Qinhuangdao|秦皇岛|SHP@Qiqihaer|齐齐哈尔|NDG@Quanzhou|泉州|JJN@Quzhou|衢州|JUZ@Sanya|三亚|SYX@Shanghai|上海|SHA@Shantou|汕头|SWA@Shashi|沙市|SHS@Shenyang|沈阳|SHE@Shenzhen|深圳|SZX@Shijiazhuang|石家庄|SJW@Shishi|石狮|JJN@Simao|思茅|SYM@Tacheng|塔城|TCG@Taipei|台北|TPE@Taiyuan|太原|TYN@Tianjin|天津|TSN@Tongliao|通辽|TGO@Tongren|铜仁|TEN@Wanxian|万州|WXN@Weifang|潍坊|WEF@Weihai|威海|WEH@Wenshan|文山|WNH@Wenzhou|温州|WNZ@Wuhai|乌海|WUA@Wuhan|武汉|WUH@Wulanhaote|乌兰浩特|HLH@Wulumuqi|乌鲁木齐|URC@Wuxi|无锡|WUX@Wuyishan|武夷山|WUS@Xiamen|厦门|XMN@Xian|西安|SIA@Xiangfan|襄樊|XFN@Xianggelila|香格里拉|DIG@Xichang|西昌|XIC@Xilinhaote|锡林浩特|XIL@Xingyi|兴义|ACX@Xining|西宁|XNN@Xishuangbanna|西双版纳|JHG@Xuzhou|徐州|XUZ@Yanan|延安|ENY@Yancheng|盐城|YNZ@Yanji|延吉|YNJ@Yantai|烟台|YNT@Yibin|宜宾|YBP@Yichang|宜昌|YIH@Yinchuan|银川|INC@Yining|伊宁|YIN@Yiwu|义乌|YIW@Yongzhou|永州|LLF@Yulin|榆林|UYN@Yuncheng|运城|YCU@Zhangjiajie|张家界|DYG@Zhanjiang|湛江|ZHA@Zhaotong|昭通|ZAT@Zhengzhou|郑州|CGO@zhijiang|芷江|HJJ@Zhongdian|中甸|DIG@Zhoushan|舟山|HSN@Zhuhai|珠海|ZUH@Wuzhou|梧州|WUZ@Eerduosi|鄂尔多斯|DSN@Nalati|那拉提|NLT@";

var startcity = "上海|杭州";


function showGoCity() {
    var html = "<DIV  id=pkgStartCityDiv class=departures>";
    var citys  = startcity.split("|");
    for(var i=0;i<citys.length;i++){
        html += "<A title=Beijing href=\"javascript:void(0);\" onclick=\"selectGoCity(this)\" >" + citys[i] + "</A> ";
    }
    html += "</DIV>";
    var t = $("#gocity").offset().top;
    var l = $("#gocity").offset().left;
    var gocityDiv = document.createElement("div");
    gocityDiv.style.zIndex = 1002;
    gocityDiv.id = "gocityDiv";
    gocityDiv.style.position = "absolute";
    gocityDiv.style.top = (t) + "px";
    gocityDiv.style.left = (l-50)+"px";
    gocityDiv.innerHTML = html;
    document.body.appendChild(gocityDiv);
}

function selectGoCity(obj) {
    $("#gocity").val($(obj).text());
    $("#gocityDiv").empty().remove();
}

function showStartCity() {
    if ($("#searchcity").val() == "") {
        var html = "<DIV  id=pkgDestCityDiv class=destination><DIV class=tips>输入中文/拼音或在下列关键字中选择</DIV>";
        html += "<DL class=inland>";
        html += "<DT>国内旅游度假 </DT>";
        var chinas = inchina.split("|");
        var outasias = outasia.split("|");
        var outeuropes = outeurope.split("|");
        var outafricas = outafrica.split("|");
        var outeuropes = outeurope.split("|");
        var outaustralias = outaustralia.split("|");
        var outamericas = outamerica.split("|");
        for (var i = 0; i < chinas.length; i++) {
            html += "<DD><A href=\"javascript:void(0);\"  onclick=showSelected(this)>" + chinas[i] + "</A></DD>";
        }
        html += "</DL>";
        html += "<DL class=brand>";
        html += "<DT>亚洲旅游度假 </DT>";
        for (var i = 0; i < outasias.length; i++) {
            html += "<DD><A href=\"javascript:void(0);\" onclick=showSelected(this)>" + outasias[i] + "</A></DD>";
        } html += "</DL>";
        html += "<DL class=brand>";
        html += "<DT>欧洲旅游度假 </DT>";
        for (var i = 0; i < outeuropes.length; i++) {
            html += "<DD><A href=\"javascript:void(0);\" onclick=showSelected(this)>" + outeuropes[i] + "</A></DD>";
        } html += "</DL>";
        html += "<DL class=brand>";
        html += "<DT>中东/非洲旅游度假 </DT>";
        for (var i = 0; i < outafricas.length; i++) {
            html += "<DD><A href=\"javascript:void(0);\" onclick=showSelected(this)>" + outafricas[i] + "</A></DD>";
        } html += "</DL>";
        html += "<DL class=brand>";
        html += "<DT>澳洲旅游度假 </DT>";
        for (var i = 0; i < outaustralias.length; i++) {
            html += "<DD><A href=\"javascript:void(0);\" onclick=showSelected(this)>" + outaustralias[i] + "</A></DD>";
        } html += "</DL>";
        html += "<DL class=brand>";
        html += "<DT>美洲旅游度假 </DT>";
        for (var i = 0; i < outamericas.length; i++) {
            html += "<DD><A href=\"javascript:void(0);\" onclick=showSelected(this)>" + outamericas[i] + "</A></DD>";
        } html += "</DL>";
        html += "</DIV>";
        var t = $("#searchcity").offset().top;
        var l = $("#searchcity").offset().left;
        var layer = document.createElement("div");
        layer.style.zIndex = 1002;
        layer.id = "searchdiv";
        layer.style.position = "absolute";
        layer.style.top = (t) + "px";
        layer.style.left = (l - 150) + "px";
        layer.innerHTML = html;
        document.body.appendChild(layer);
        $("#divAddressMenu").remove();
    }
    else {
        GetCityList(document.getElementById("searchcity"));
    }
}

function showSelected(obj) {
    var v = $(obj).text();
    $("#searchcity").val(v);
    GetCityList(document.getElementById("searchcity"));
}   


function hideStartCity(e) {
    e = e ? e : event;
    if (e) {
        var EventOBJ = (e.srcElement ? e.srcElement : e.target);
        $("#calendarLoding").remove();
        $("#gocityDiv").remove();
        if (EventOBJ.id == "menuPageS") { //如果点的是“上一页”则向上翻页
            varPageId = varPageId - 1;
            GetCityList(EventOBJ);
        }
        else if (EventOBJ.id == "menuPageE") { //如果点的是“下一页”则向下翻页
            varPageId = varPageId + 1;
            GetCityList(EventOBJ);
        }
        else if (EventOBJ.id != "searchcity" && EventOBJ.id != "areadiv") {
            $("#searchdiv").remove();
            $("#divAddressMenu").remove();
        }
        if (EventOBJ.id == "showcalendar") {
            myshowdate();
        }
        if (EventOBJ.id == "gocity"){
            showGoCity();
        }

    }
}

function removeStartCity() {
    $("#searchdiv").remove();
}


//给某对象的某事件增加处理函数AddFunToObj(document,"onclick","alert('1');")
function AddFunToObj(fctObj, fctAct, fctFunction) {
    if (fctObj.addEventListener) { //!IE
        fctObj.addEventListener(fctAct.replace("on", ""), function(e) {
            e.cancelBubble = !eval(fctFunction);
        }, false);
    } else if (fctObj.attachEvent) { //IE
        fctObj.attachEvent(fctAct, function() {
            return eval(fctFunction);
        });
    }
}

function $$(fctId) {
    return document.getElementById(fctId);
}

//取得某对象，若提供ID下的对象不存在则自动创建
function c$(fctId, fctClassName) {
    var varTempDivObj = $$(fctId);
    if (!varTempDivObj) {
       // GetPyzyIframe("ifm" + fctId);
        varTempDivObj = document.createElement("div");
        varTempDivObj.id = fctId;
        if (fctClassName && fctClassName != "") varTempDivObj.className = fctClassName;
        document.body.appendChild(varTempDivObj);
    }
    return varTempDivObj;
}

//取得某ID的iframe对象，若不存在该ID的对象则自动创建
function GetPyzyIframe(fctIfmId, fctVisibility, fctTop, fctLeft, fctWidth, fctHeight) {
    var varTempIfmObj = $$(fctIfmId);
    if (!varTempIfmObj) {
        varTempIfmObj = document.createElement("iframe");
        varTempIfmObj.id = fctIfmId;
        varTempIfmObj.style.position = "absolute";
        varTempIfmObj.style.zIndex = "1";
        varTempIfmObj.style.visibility = "hidden";
        document.body.appendChild(varTempIfmObj);
    }
    if (fctTop) varTempIfmObj.style.top = fctTop + "px";
    if (fctLeft) varTempIfmObj.style.left = fctLeft + "px";
    if (fctWidth) varTempIfmObj.style.width = fctWidth + "px";
    if (fctHeight) varTempIfmObj.style.height = fctHeight + "px";
    if (fctVisibility) varTempIfmObj.style.visibility = (document.all ? fctVisibility : "hidden");
    return varTempIfmObj;
}

//取得某对象的坐标位置、宽、高
function getPosition(obj) {
    var top = 0;
    var left = 0;
    var width = obj.offsetWidth;
    var height = obj.offsetHeight;
    while (obj.offsetParent) {
        top += obj.offsetTop;
        left += obj.offsetLeft;
        obj = obj.offsetParent;
    }
    return { "top": top, "left": left, "width": width, "height": height };
}

//取得编码存储框对象
function GetValueToInputObj(fctThisObj) {
    if (!fctThisObj) return null;
    var varThisObjAutoInput = (fctThisObj.getAttributeNode("value_to_input") ? fctThisObj.getAttributeNode("value_to_input").value : "");
    if (varThisObjAutoInput == "") return null;
    return $$(varThisObjAutoInput);
}

//自动触发下一个对象的Act事件
function AutoNextInputAct(fctThisObj, fctAct) {
    var varNextInput = fctThisObj.getAttributeNode("nextinput");
    if (varNextInput && varNextInput != "") {
        if (document.all) {
            eval("$$('" + varNextInput.value + "')." + fctAct + "()");
        } else {
            var evt = document.createEvent("MouseEvents");
            evt.initEvent(fctAct, true, true);
            $$(varNextInput.value).dispatchEvent(evt);
        }
        $$(varNextInput.value).focus();
    }
}

var varPageId = 0;
//生成并显示出城市下拉菜单
function GetCityList(fctThisObj) {
    removeStartCity();
    if ($("#searchcity").val() != "") {
        var varMenuObj = c$("divAddressMenu");
        var varThisObj = fctThisObj;
        if (varThisObj.id == "menuPageS" || varThisObj.id == "menuPageE") {
            varThisObj = varMenuObj.obj;
        } else {
            varPageId = 0;
        }
        //清除已选城市Value
        var varThisObjAutoInput = GetValueToInputObj(varThisObj); //取得城市编码值存储对象
        if (varThisObjAutoInput) varThisObjAutoInput.value = "";
        //取得城市数据并拆解为数组
        var varObjValue = varThisObj.value;
        var varThisObjAdd = (varThisObj.getAttributeNode("mod_address_suggest") ? varThisObj.getAttributeNode("mod_address_suggest").value : "");
        var varData = (varObjValue == "" ? (varThisObjAdd == "" ? varAddress : varThisObjAdd) : varAddress);
        var varHtmlStr = "", varCityDataSplit = varData.split("@"), varCityDataSplitI, varCityDataSplitIu, varNextPageStr = "";
        //存储当前操作对象
        varMenuObj.obj = varThisObj;
        var varPageRCount = (varThisObj.getAttributeNode("pagecount") ? parseInt(varThisObj.getAttributeNode("pagecount").value, 10) : 12);
        var varThisPageI = 0;
        for (var i = 1; i < varCityDataSplit.length - 1; i++) {
            varCityDataSplitI = varCityDataSplit[i];
            if (varCityDataSplitI.toUpperCase().indexOf(varObjValue.toUpperCase()) >= 0 || varObjValue == "" || i == varObjValue) { // || varCityDataSplitI.toLowerCase().indexOf(varObjValue.toLowerCase())>=0
                varThisPageI += 1;
                if (varThisPageI > varPageId * varPageRCount && varThisPageI <= (varPageId + 1) * varPageRCount) {
                    varCityDataSplitISplit = varCityDataSplitI.split("|");
                    varHtmlStr += "<a href='javascript:;' onclick='WriteCity(" + varThisPageI + ")' id='menuA" + varThisPageI + "' title='" + varCityDataSplitI + "'><span>" + varCityDataSplitISplit[1] + "</span>" + varCityDataSplitISplit[0] + "</a>";
                }
            }
        }
        if (varThisPageI > varPageRCount) {
            varNextPageStr = "<span id=menuPageS style=" + (varPageId > 0 ? "cursor:pointer;padding:10px 10px 10px 30px" : "color:#666666;padding:10px 10px 10px 30px") + ">&lt;&lt;&lt;&nbsp;上一页</span>　"
            varNextPageStr += "<span id=menuPageE style=" + (varThisPageI > (varPageId + 1) * varPageRCount ? "cursor:pointer;padding:10px" : "color:#666666;padding:10px") + ">下一页&nbsp;&gt;&gt;&gt;</span>";
        }
        var varThisObjPosition = getPosition(varThisObj); //取得事件发生处控件坐标
        with (varMenuObj) {
            style.top = varThisObjPosition.top + varThisObjPosition.height + "px";
            style.left = varThisObjPosition.left + "px";
            style.visibility = "visible";
            innerHTML = "<div  id=address_message><h4>输入中文/拼音/英文</h4>" + (varHtmlStr == "" ? "<nobr>没有找到您查的信息‘" + varObjValue + "’。</nobr>" : varHtmlStr + varNextPageStr) + "</div>";
        }
    }
    else {
        showStartCity();
    }

}
//选择某城市
function WriteCity(fctI) {
    var varMenuObj = c$("divAddressMenu");
    var varThisObj = varMenuObj.obj;
    var varMenuValue = $$("menuA" + fctI).title;
    varMenuValue = varMenuValue.split("|");
    varThisObj.value = varMenuValue[1];

    var varThisObjAutoInput = GetValueToInputObj(varThisObj); //取得城市编码值存储对象
    if (!varThisObjAutoInput) varThisObjAutoInput = varThisObj;
    varThisObjAutoInput.value = varMenuValue[1];
}

AddFunToObj(window, "onload", "AddFunToObj(document,'onclick','hideStartCity(" + (document.all ? "" : "e") + ")');");

