/*
  调用GetCityList(this)函数，传入的参数为输入框对象本身
*/

//*******通用函数开始********//


/******提取某个对象，若不存在，则自动创建一个*******/
function C$(objID, objClass) {
    var varDivObj = $(objID);
    if (!varDivObj) {
        varDivObj = document.createElement("div");
        varDivObj.id = objID;
        if (objClass && objClass != "") varDivObj.className = objClass;
        document.body.appendChild(varDivObj);
    }
    return varDivObj;
}

/******提取一个Iframe对象，若不存在，则创建一个Iframe对象*******/
function CIfm$(objID, objVisibility, objTop, objWidth, objLeft, objHeight) {
    var varIfmObj = $(objID);
    if (!varIfmObj) {
        varIfmObj = document.createElement("iframe");
        varIfmObj.id = objID;
        varIfmObj.style.position = "absolute";
        varIfmObj.style.zIndex = "-1";
        varIfmObj.style.visibility = "hidden";
		varIfmObj.frameborder="0"
        document.body.appendChild(varIfmObj);
    }
    if (objVisibility) varIfmObj.style.visibility = (document.all ? objVisibility : "hidden");
    if (objTop) varIfmObj.style.top = objTop + "px";
    if (objHeight) varIfmObj.style.height = objHeight + "px";
    if (objWidth) varIfmObj.style.width = objWidth + "px";
    if (objLeft) varIfmObj.style.left = objLeft + "px";

    return varIfmObj;
}

/********取得某个对象坐标位置、宽、高********/
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 AutoNextInputObj(varObj, varActFct) {
    var varNextInput = varObj.getAttributeNode("next-Input");
    if (varNextInput && varNextInput != "") {
        if (document.all) {
            eval("$('" + varNextInput.value + "')." + varActFct + "()");
        }
        else {
            var evt = document.createEvent("MouseEvents");
            evt.initEvent(varActFct, true, true);
            $(varNextInput.value).dispatchEvent(evt);
        }
        $(varNextInput.value).foucs();
    }
}

/******给某对象的某事件增加处理函数AddFunToObj(document, "onclick", "alert('1');")******/
function AddFunToObj(varObj, varEvent, varFunction) {
    if (varObj.addEventListener) {
        varObj.addEventListener(varEvent.replace("on", ""), function(e) {
            event.cancelBubble = !eval(varFunction);
        }, false);
    }
    else if (varObj.attchEvent) {
        varObj.attchEvent(varEvent, function() {
            return eval(varFunction);
        });
    }
}
//*****通用函数结束******//

/*********城市选择*********/
/****城市下拉菜单CSS样式***/

var varAddress = "ANKANG|安康|AKA@ANQING|安庆|AQG@ANSHAN|鞍山|AOG@ANSHUN|安顺|AVA@BAOSHAN|保山|BSD@BAOTOU|包头|BAV@BEIHAI|北海|BHY@BEIJING|北京|PEK@BENGBU|蚌埠|BFU@CHANGCHUN|长春|CGQ@CHANGDE|常德|CGD@CHANGDU|昌都|BPX@CHANGSHA|长沙|CSX@CHANGZHI|长治|CIH@CHANGZHOU|常州|CZX@CHAOYANG|朝阳|CHG@CHENGDU|成都|CTU@CHI MEI|七美（台湾）|CMJ@CHIAYI|嘉义|CYI@CHIFENG|赤峰|CIF@CHONGQING|重庆|CKG@DALI|大理|DLU@DALIAN|大连|DLC@DANDONG|丹东|DDG@DATONG|大同|DAT@DAXIAN|达县|DAX@DIQING PREFECTURE|迪庆香格里拉|DIG@DUNHUANG|敦煌|DNH@ENSHI|恩施|ENH@FOSHAN|佛山|FUO@FUYANG|阜阳|FUG@FUYUN|富蕴|FYN@FUZHOU|福州|FOC@GANZHOU|赣州|KOW@GOLMUD|格尔木|GOQ@GUANGHAN|广汉|GHN@GUANGYUAN|广元|GYS@GUANGZHOU|广州|CAN@GUILIN|桂林|KWL@GUIYANG|贵阳|KWE@HAIKOU|海口|HAK@HAILAR|海拉尔|HLD@HAMI|哈密|HMI@HANG ZHOU|杭州|HGH@HANZHONG|汉中|HZG@HARBIN|哈尔滨|HRB@HEFEI|合肥|HFE@HEIHE|黑河|HEK@HENGYANG|衡阳|HNY@HOHHOT|呼和浩特|HET@HONGKONG|香港|HKG@HOTAN|和田|HTN@HUALIEN|花莲|HUN@HUIZHOU|惠州|HUZ@JIAMUSI|佳木斯|JMU@JIAYUGUAN|嘉裕关|JGN@JILIN|吉林|JIL@JINANG|济南|TNA@JINGDEZHEN|景德镇|JDZ@JINGGANGSHAN|井冈山|JGS@JINGHONG|景洪西双版纳|JHG@JINJIANG|晋江|JJN@JINZHOU|锦州|JNZ@JIUJIANG|九江|JIU@JIUQUAN|酒泉|CHW@JIUZHAIGOU|九寨沟|JZH@KAOHSIUNG|高雄|KHH@KARAMAY|克拉玛依|KRY@KASHI|喀什|KHG@KORLA|库尔勒|KRL@KUNMING|昆明|KMG@LANZHOU|兰州|LHW@LHASA|拉萨|LXA@LIANG PING|梁平|LIA@LIANYUNGANG|连云港|LYG@LIJIANG|丽江|LJG@LINYI|临沂|LYI@LINZHI|林芝|LZY@LISHAN|梨山|LHN@LIUZHOU|柳州|LZH@LU ZHOU|泸州|LZO@LUOYANG|洛阳|LYA@MACAU|澳门|MFM@MAGONG-MAKUNG|马公|MZG@MANGSHI|芒市|LUM@MEIXIAN|梅县|MXZ@MIANYANG|绵阳|MIG@MUDANJIANG|牡丹江|MDG@NANCHANG|南昌|KHN@NANCHONG|南充|NAO@NANJING|南京|NKG@NANNING|南宁|NNG@NANTONG|南通|NTG@NANYANG|南阳|NNY@NINGBO|宁波|NGB@PANZHIHUA|攀枝花|PZI@QIEMO|且末|IQM@QINGDAO|青岛|TAO@QINGYANG|庆阳|IQN@QIQIHAER|齐齐哈尔|NDG@QUANZHOU|泉州|JJN@QUZHOU|衢州|JUZ@RUGAO|如皋|RUG@SANYA|三亚|SYX@SHANGHAI|上海|SHA@SHANHAIGUAN|秦皇岛|SHP@SHANSHAN|鄯善|SXJ@SHANTOU|汕头|SWA@SHASHI|沙市|SHS@SHENYANG|沈阳|SHE@SHENZHEN|深圳|SZX@SHIJIAZHUANG|石家庄|SJW@SIMAO|思茅|SYM@SUZHOU|苏州|SZV@TACHENG|塔城|TCG@TAIBEI-SUNGSHAN|台北|TSA@TAIDONG-TAITUNG|台东|TTT@TAINAN|台南|TNN@TAIYUAN|太原|TYN@TAIZHONG-TAICHUNG|台中|TXG@TIANJIN|天津|TSN@TONGLIAO|通辽|TGO@TONGREN|铜仁|TEN@TUNXI HUANGSHAN|黄山|TXN@ULANHOT|乌兰浩特|HLH@URUMQI|乌鲁木齐|URC@WANZHOU|万州|WXN@WEIFANG|潍坊|WEF@WEIHAI|威海|WEH@WENZHOU|温州|WNZ@WUHAN|武汉|WUH@WUHU|芜湖|WHU@WUTAISHAN,WUT|五台山|WUT@WUXI|无锡|WUX@WUYISHAN|武夷山|WUS@XIAMEN|厦门|XMN@XIAN XIANYANG|西安|XIY@XIANGFAN|襄樊|XFN@XICHANG|西昌|XIC@XILINHOT|锡林浩特|XIL@XINGCHENG|兴城|XEN@XINGNING|兴宁|XIN@XINING|西宁|XNN@XUZHOU|徐州|XUZ@YANAN|延安|ENY@YANCHENG|盐城|YNZ@YANJI|延吉|YNJ@YANTAI|烟台|YNT@YIBIN|宜宾|YBP@YICHANG|宜昌|YIH@YINCHUAN|银川|INC@YINING|伊宁|YIN@YIWU|义乌|YIW@YULIN|榆林|UYN@ZHANGJIAJIE|张家界|DYG@ZHANJIANG|湛江|ZHA@ZHAOTONG|昭通|ZAT@ZHENGZHOU|郑州|CGO@ZHIJIANG|怀化|HJJ@ZHOUSHAN|舟山|HSN@ZHUHAI|珠海|ZUH";

/****城市选择主函数****/
function GetCityList(varObj) {
    var varCityMenu = C$("divAddressMenu");
    var varThisObj = varObj;
    var varThisObjValue = varThisObj.value;
    var varThisObjAdd = (varThisObj.getAttributeNode("Default-Address") ? varThisObj.getAttributeNode("Default-Address").value : "");
    var varFullObjAdd = (varThisObjValue == "" ? (varThisObjAdd == "" ? varAddress : varThisObjAdd) : varAddress);
    var varHtmlStr='';
	
    var varCityDataSplit = varFullObjAdd.split("@");
    var varCityDataSplitI;
    //存储当前操作对象
    varCityMenu.obj = varThisObj;
    var varThisPageI = 0;

	var searchValue=varThisObjValue.toUpperCase();
    for (var i = 0; i < varCityDataSplit.length - 1; i++) {
        varCityDataSplitI = varCityDataSplit[i];
		varCityDataSplitISplit = varCityDataSplitI.split("|");

		var cityN =varCityDataSplitISplit[1];
		var cityCode =varCityDataSplitISplit[2];
		var cityEN =varCityDataSplitISplit[0];
		
		var findIt =false;
		
		var myre = eval('/^'+searchValue+'\D*/i');

		if (myre.test(cityCode))
		{
			findIt=true;
			cityCode=cityCode.replace(myre,'<font style="color:#ff6500;">'+searchValue+'</font>');
            varThisPageI += 1;
            varHtmlStr += "<a href='javascript:;' onclick=\"WriteCity('" + cityN + "')\" id='menuA" + varThisPageI + "' title='" + varCityDataSplitI + "'><span>" + cityN + "(" + cityCode + ")</span></a>";			
		}

		if (myre.test(cityEN)&& !findIt)
		{
			findIt=true;
			cityEN=cityEN.replace(myre,'<font style="color:#ff6500;">'+searchValue+'</font>');
            varThisPageI += 1;
            varHtmlStr += "<a href='javascript:void(0);' onclick=\"WriteCity('" + cityN + "')\" id='menuA" + varThisPageI + "' title='" + varCityDataSplitI + "'><span>" + cityN + "(" + cityEN + ")</span></a>";			
		}

		if (myre.test(cityN)&& !findIt)
		{
			findIt=true;
			var ncityN=cityN.replace(myre,'<font style="color:#ff6500;">'+searchValue+'</font>');
            varThisPageI += 1;
            varHtmlStr += "<a href='javascript:;' onclick=\"WriteCity('" + cityN + "')\" id='menuA" + varThisPageI + "' title='" + varCityDataSplitI + "'><span>" + ncityN + "(" + cityEN + ")</span></a>";			
		}



    }
    var varThisObjPosition = GetPosition(varThisObj); //取得事件发生处控件坐标
	
    with (varCityMenu) {
        style.top = varThisObjPosition.top + varThisObjPosition.height + "px";
        style.left = varThisObjPosition.left + "px";
        style.visibility = "visible";
        innerHTML = "<div>" + (varHtmlStr == "" ? "<span class='error'>输入错误</span>" : varHtmlStr) + "</div>";
    }
    CIfm$("ifm" + varCityMenu.id, "visible", (varThisObjPosition.top + varThisObjPosition.height), varThisObjPosition.width, varThisObjPosition.left, varThisObjPosition.height);
    return false;
}

/*****选择某个城市****/
function WriteCity(fctI) {
    var varCityMenu = C$("divAddressMenu");
    var varThisObj = varCityMenu.obj;
    //var varCityMenuValue = $("MenuA" + fctI).title;
    //varCityMenuValue = varCityMenuValue.split("|");
	
    varThisObj.value = fctI;
    var e = (document.all ? "" : e);
    Hidden(e);
}

/*****隐藏城市列表*****/
function Hidden(e) {
    e = e ? e : event;
    var varCityMenu = C$("divAddressMenu");
    var varThisObj = varCityMenu.obj;
    if (varCityMenu.style.visibility != "hidden") {
        if (e) {
            var EventObj = (e.srcElement ? e.srcElement : e.target);
            if (varThisObj == EventObj || EventObj.id.indexOf("divAddressMenu") == 0) {
                return false;
            }
        }
        //if (EventObj.id.indexOf("menuA") < 0) {
        //    if (varThisObj) varThisObj.value = "";
        //}
        varCityMenu.style.visibility = "hidden";
        CIfm$("ifm" + varCityMenu.id, "hidden");
    }
}


