﻿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();
        }
}

//给某对象的某事件增加处理函数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);
                });
        }
}


/**********城市列表功能 *************/
//输出城市列表菜单CSS样式 
//document.write('<tyle type="text/css">'+
//                'body{background-color:#efefef;}'+
//                '#divAddressMenu {position:absolute;visibility:hidden;z-index:1;overflow:hidden;width:172px;background-color:#FFFFFF;border:solid #EBcccC 1px;font-size:12px;}'+
//                '#divAddressMenu h4{border-bottom:dotted #CCCCCC 1px;color:#999999;font-size:12px; font-weight:100; padding:2px 2px 0 2px; margin:0;}'+
//                '#divAddressMenu div{border:solid #FC7A7D 1px;padding:1px;}'+
//                '#divAddressMenu a {display:block;width:162px !important;width:100%;padding:1px 2px 2px 2px;cursor:default;text-decoration:none;color:#990000;border:solid #ffffff 1px;background-color:none;}'+
//                '#divAddressMenu a span{float:right;}'+
//                '#divAddressMenu a:hover {border:solid #F2C2BD 1px;background-color:#FBEDEC;}'+
//        '</style>');

var varAddress="@Ankang|安康市五里铺机场|AKA@Anqing|安庆市大龙山机场|AQG@Anyang|安阳市安阳机场|AYN@Baotou|包头市海兰泡机场|BAV@Beihai|北海市福城机场|BHY@Beijing|北京市首都国际机场|PEK@Changchun|长春市大房身机场|CGQ@Changde|常德市桃花机场|CGD@Changsha|长沙市黄花国际机场|CSX@Changzhou|常州市奔牛机场|CZX@Chengdu|成都市双流国际机场|CTU@Chifeng|赤峰市土城子机场|CIF@Chongqing|重庆市江北国际机场|CKG@Dali|大理市大理机场|DLU@Dalian|大连市周水子国际机场|DLC@Dandong|丹东市浪头机场|DDG@Datong|大同市怀仁机场|DAT@Dongying|东营市东营机场|DOY@Dunhuang|敦煌市敦煌机场|DNH@Enshi|恩施市许家坪机场|ENH@Fuzhou|福州市长乐国际机场|FOC@Guangzhou|广州市白云国际机场|CAN@Guilin|桂林市两江国际机场|KWL@Guiyang|贵阳市龙洞堡机场|KWE@Haerbin|哈尔滨市阎家岗国际机场|HRB@Haikou|海口市美兰国际机场|HAK@Hangzhou|杭州市萧山国际机场|HGH@Hanzhong|汉中市西关机场|HZG@Hefei|合肥市骆岗机场|HFE@Heihe|黑河市黑河机场|HEK@Hengyang|衡阳市衡阳机场|HNY@Huangshan|黄山市屯溪机场|TXN@Huhehaote|呼和浩特市白塔机场|HET@Jiamusi|佳木斯市东郊机场|JMU@Jiayuguan|嘉峪关市嘉峪关机场|JGN@Jilin|吉林市二台子机场|JIL@Jinan|济南市遥墙国际机场|TNA@Jingdezhen|景德镇市罗家机场|JDZ@Jinggangshan|井冈山市井冈山机场|JGS@Jinzhou|锦州市小岭子机场|JNZ@Jiujiang|九江市庐山机场|JIU@Jiuquan|酒泉市酒泉机场|CHW@Jiuzhaigou|九寨沟黄龙机场|JZH@Kashi|喀什市喀什机场|KHG@Kuerle|库尔勒市库尔勒机场|KRL@Kunming|昆明市巫家坝国际机场|KMG@Lanzhou|兰州市中川机场|LHW@Lasa|拉萨市贡嘎机场|LXA@Lianyungang|连云港市白塔埠机场|LYG@Lijiang|丽江市丽江机场|LJG@Linyi|临沂市临沂机场|LYI@Liuzhou|柳州市白莲机场|LZH@Luoyang|洛阳市北郊机场|LYA@Luzhou|泸州市萱田机场|LZO@Macau|澳门澳门国际机场|MFM@Mianyang|绵阳市南郊机场|MIG@Mudanjiang|牡丹江市海浪机场|MDG@Nanchang|南昌市昌北机场|KHN@Nanchong|南充市都尉坝机场|NAO@Nanjing|南京市禄口国际机场|NKG@Nanning|南宁市吴墟机场|NNG@Nantong|南通市兴东机场|NTG@Nanyang|南阳市姜营机场|NNY@Ningbo|宁波市栎社机场|NGB@PAN?ZHI?HUA|攀枝花攀枝花机场|PZI@Qingdao|青岛市流亭国际机场|TAO@Qinhuangdao|山海关市秦皇岛机场|SHP@Qiqihaer|齐齐哈尔市三家子机场|NDG@Quzhou|衢州市衢州机场|JUZ@Sanya|三亚市凤凰国际机场|SYX@Shanghai|上海市浦东国际机场|PVG@Shanghai|上海市虹桥机场|SHA@Shantou|汕头市外砂机场|SWA@Shaoshan|荆州市沙市机场|SHS@Shenyang|沈阳市桃仙机场|SHE@Shenzhen|深圳市宝安国际机场|SZX@Shijiazhuang|石家庄市正定机场|SJW@Taipei|桃园中正国际机场|TPE@Taiyuan|太原市武宿机场|TYN@Tianjin|天津市滨海国际机场|TSN@Tonghua|通化通化机场|TNH@Tongliao|通辽市通辽机场|TGO@Weifang|潍坊市文登机场|WEF@Weihai|威海市大水泊机场|WEH@Wenzhou|温州市永强机场|WNZ@Wuhan|武汉市天河国际机场|WUH@Wulumuqi|乌鲁木齐市地窝堡国际机场|URC@Wuxi|无锡市无锡机场|WUX@Wuyishan|武夷山市武夷山机场|WUS@Wuzhou|梧州市长州岛机场|WUZ@Xiamen|厦门市高崎国际机场|XMN@Xiangfan|襄樊市刘集机场|XFN@Xianggang|香港赤喇角机场|HKG@Xianyang|西安市咸阳国际机场|XIY@Xichang|西昌市青山机场|XIC@Xining|西宁市曹家堡机场|XNN@Xishuangbanna|西双版纳市景洪机场|JHG@Xuzhou|徐州市观音机场|XUZ@Yanji|延吉市朝阳川机场|YNJ@Yantai|烟台市莱山机场|YNT@Yibin|宜宾市菜坝机场|YBP@Yichang|宜昌市三峡机场|YIH@Yinchuan|银川市河东机场|INC@Yining|伊宁市伊宁机场|YIN@Yiwu|义乌市义乌机场|YIW@Yulin|榆林市西沙机场|UYN@Zhangjiajie|张家界市荷花机场|DYG@Zhanjiang|湛江市湛江机场|ZHA@Zhengzhou|郑州市新郑国际机场|CGO@Zhoushan|舟山市普陀山机场|HSN@Zhuhai|珠海市三灶机场|ZUH@Zunyi|遵义市遵义机场|ZYI@taipei|台北市松山机场|TSA@Simao|思茅市思茅机场|SYM@Xianggelila|香格里拉迪庆机场|DIG@Tacheng|塔城市塔城机场|TCG@Lincang|临沧市临沧机场|LNJ@Gaoxiong|高雄小港机场|KHH@Huangyan|黄岩市路桥机场|HYN@Wulanhaote|乌兰浩特市乌兰浩特机场|HLH@Hailaer|海拉尔市东山机场|HLD@Tongren|铜仁市大兴机场|TEN@Liancheng|连城市连城机场|LCX@Geermu|格尔木市格尔木机场|GOQ@Taizhong|台中市清泉岗机场|RMQ@Qinyang|庆阳市西峰镇机场|IQN@Shaotong|昭通市昭通机场|ZAT@Chaoyang|朝阳市朝阳机场|CHG@Ganzhou|赣州市黄金机场|KOW@Baoshan|保山市保山机场|BSD@Fuyang|阜阳市西关机场|FIG@@Hami|哈密市哈密机场|HMI@Hetian|和田市和田机场|HTN@Quanzhou|泉州市晋江机场|JJN@Xilinhaote|锡林浩特市锡林浩特|XIL@Aletai|阿勒泰市阿勒泰机场|AAT@Changzhi|长治市王村机场|CIH@Changdu|昌都市昌都马草机场|BPX@Guanghan|广汉市广汉机场|GHN@Yancheng|盐城市盐城机场|YHZ@Changhai|长海市大长山岛机场|CNI@Fuyun|富蕴市可可托托海机场|FYN@Akesu|阿克苏市温宿机场|AKU@Yanan|延安市二十里铺机场|ENY@KeLaMaYi|克拉玛依市克拉玛依机场|KRY@";
var varPageId=0;
//生成并显示出城市下拉菜单
function GetCityList(fctThisObj){
        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):18);
        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 style='cursor:pointer;' href='javascript:;' onclick='WriteCity("+varThisPageI+")' id='menuA"+varThisPageI+"' title='"+varCityDataSplitI+"'><span>"+varCityDataSplitISplit[1]+"("+varCityDataSplitISplit[2]+")</span>"+varCityDataSplitISplit[0]+"</a>";
                        }
                }
        }
        if(varThisPageI>varPageRCount){
                varNextPageStr="&nbsp;<b id=menuPageS style="+(varPageId>0?"cursor:pointer;":"color:#666666;")+">&lt;&lt;&lt;&nbsp;上一页</b>　"
                varNextPageStr+="<b id=menuPageE style="+(varThisPageI>(varPageId+1)*varPageRCount?"cursor:pointer;":"color:#666666;")+">下一页&nbsp;&gt;&gt;&gt;</b>";
        }
        var varThisObjPosition=getPosition(varThisObj); //取得事件发生处控件坐标
        with(varMenuObj){
                style.top=(varThisObjPosition.top+0)+varThisObjPosition.height+"px";
                style.left=(varThisObjPosition.left+0)+"px";
                style.visibility="visible";
                innerHTML="<div><h4>可输城市拼音/汉字/三字码。</h4>"+(varHtmlStr==""?"<nobr>没有找到您查的信息‘"+varObjValue+"’。</nobr>":varHtmlStr+varNextPageStr)+"</div>";
        }
        GetPyzyIframe("ifm"+varMenuObj.id,"visible",(varThisObjPosition.top+0+varThisObjPosition.height),varThisObjPosition.left+0,varMenuObj.offsetWidth,varMenuObj.offsetHeight); //取Iframe
        return false;
}
//选择某城市
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[2];
        
        if(typeof(fctI)=="number")
            AutoNextInputAct(varThisObj,"click");
        //_Hidden("1");
}
//隐藏城市列表
function _Hidden(e){
        e=e?e:event;
        var varMenuObj=c$("divAddressMenu");
        var varThisObj=varMenuObj.obj;
        if(varMenuObj.style.visibility!="hidden"){
                if(e){
                        var EventOBJ=(e.srcElement?e.srcElement:e.target);
                        if(EventOBJ.id=="menuPageS" && EventOBJ.style.color==""){ //如果点的是“上一页”则向上翻页
                                varPageId=varPageId-1;
                                GetCityList(EventOBJ);
                        }
                        if(EventOBJ.id=="menuPageE" && EventOBJ.style.color==""){ //如果点的是“下一页”则向下翻页
                                varPageId=varPageId+1;
                                GetCityList(EventOBJ);
                        }
                        if(varThisObj==EventOBJ || EventOBJ.id.indexOf("menuPage")==0 || EventOBJ.id.indexOf("divAddressMenu")==0) return false;
                }
                
                var varThisObjAutoInput=GetValueToInputObj(varThisObj); //取得城市编码值存储对象
                if($("menuA1")){ //如果下拉菜单中存在第一个城市
                        if(!varThisObjAutoInput)varThisObjAutoInput=varThisObj;
                        if(varThisObjAutoInput.value=="" || varThisObjAutoInput==varThisObj){ //编码框中无值
                                WriteCity("1");
                        }
                }else if(EventOBJ.id.indexOf("menuA")<0){ //如果下拉菜单中不存在满足条件的城市
                        if(varThisObj)varThisObj.value="";
                }
                varMenuObj.style.visibility="hidden";
                GetPyzyIframe("ifm"+varMenuObj.id,"hidden");
        }
}

