﻿var item_parentbject;
window.item_city_suggest = function() {
    this.item_id2 = this.item_object = this.item_Remoreurl = "";
    this.item_taskid = 0;
    this.item_delaySec = 100;
    this.item_lastkeys_val = 0;
    this.item_lastinputstr = "";
    this.item_citys = [];
    this.item_commoncitys = [];
    this.item_setArr_Citys = function(a) {
        this.item_citys = a
    };
    this.item_setArr_Commoncitys = function() {
        this.item_commoncitys = citys
    };
    this.item_init_zhaobussuggest = function() {
        var a = document.getElementsByTagName("body").item(0),
        b = document.createElement("iframe"),
        c = document.createElement("div");
        b.setAttribute("id", "top_getiframe");
        b.style.zindex = "100";
        b.style.border = "0";
		b.style.width='0px';
		b.style.height='0px';
        b.style.position = "absolute";
        c.setAttribute("id", "top_getplatform");
        //c.setAttribute("align", "left");
        c.style.position = "absolute";
        c.style.border = "solid 1px #7f9db9";
        c.style.background = "#ffffff";
        c.style.padding = "0px 0px 3px 0px";
        a.appendChild(b);
        b.ownerDocument.body.appendChild(c);
        document.all ? window.document.attachEvent("onclick", this.item_hidden_suggest) : window.document.addEventListener("click", this.item_hidden_suggest, false)
    };
    this.item_getPinYinByCity = function(a) {
        for (var b = "", c = 0, d = this.item_citys.length; c < d; c++) if (a == this.item_citys[c][0]) {
            b = this.item_citys[c][1];
            break
        }
        return b
    };
    this.item_fill_div = function(a) {
        var b = "",
        c = "",
        d = "",
        f = "",
        e = this.item_object.value;
        if (e = this.ltrim(e)) if (a.length < 1 || !a[0]) b += '<div class="ds_input_tips ds_input_tips_no">\u5bf9\u4e0d\u8d77\uff0c\u627e\u4e0d\u5230\uff1a' + e + "</div>";
        else {
            b += a.length == 1 ? '<div class="ds_input_tips ds_input_tips_one">' + e + "\uff0c\u6309\u62fc\u97f3\u6392\u5e8f</div>": 
            '<div class="ds_input_tips ds_input_tips_full">' + e + "\uff0c\u6309\u62fc\u97f3\u6392\u5e8f</div>";
            for (e = 0; e < a.length; e++) {
                c = a[e].split(",");
                d = c[0];
                f = c[1];
                szm = c[2];
                if (szm != null && szm != "" && szm.indexOf("$") > -1) {
                    b += '<dd><div class="suggest-key" style="color:#0055aa">' + d + '</div><div class="suggest-result" style="color:#0055aa">' + f + '</div><div style="display:none"></div></dd>';
                    c = szm.split("$");
                    if (c.length > 0) {
                        b += "<dl><dt>\u00b7\u8be5\u57ce\u5e02\u65e0\u673a\u573a</dt></dl>";
                        for (d = 1; d < c.length; d++) b += "<li onclick=\"item_parentbject.item_add_input_text('" + 
                        c[d].split("-")[0] + '\',\'\');item_parentbject.item_hidden_suggest()"><div class="suggest-key" style="float:left;color:#414141;padding-left:2px">\u00b7\u90bb\u8fd1\u673a\u573a\uff1a</div><div class="suggest-result" style="float:left;color:#414141;">' + c[d].split("-")[0] + '</div><div style="float:left;color:#414141;">' + c[d].split("-")[1] + "\u516c\u91cc</div></li>"
                    }
                } else b += "<li onclick=\"item_parentbject.item_add_input_text('" + f + "','" + szm + '\');item_parentbject.item_hidden_suggest()"><div class="suggest-key">' + 
                d + '</div><div class="suggest-result">' + f + '</div><div style="display:none">' + szm + "</div></li>"
            }
        } else {
            b += '<div class="ds_input_tips ds_input_tips_no">\u8f93\u5165\u4e2d\u6587/\u62fc\u97f3\u6216&uarr;&darr;\u9009\u62e9</div>';
            for (e = 0; e < a.length; e++) {
                c = a[e].split(",");
                d = c[0];
                f = c[1];
                szm = c[2];
                if (szm != null && szm != "" && szm.indexOf("$") > -1) {
                    b += '<dd><div class="suggest-key" style="color:#0055aa">' + d + '</div><div class="suggest-result" style="color:#0055aa">' + f + '</div><div style="display:none"></div></dd>';
                    c = szm.split("$");
                    if (c.length > 0) {
                        b += "<dl><dt>\u00b7\u8be5\u57ce\u5e02\u65e0\u673a\u573a</dt></dl>";
                        for (d = 1; d < c.length; d++) b += "<li onclick=\"item_parentbject.item_add_input_text('" + c[d].split("-")[0] + '\',\'\');item_parentbject.item_hidden_suggest()"><div class="suggest-key" style="float:left;color:#414141;padding-left:2px">\u00b7\u90bb\u8fd1\u673a\u573a\uff1a</div><div class="suggest-result" style="float:left;color:#414141;">' + c[d].split("-")[0] + '</div><div style="float:left;color:#414141;">' + c[d].split("-")[1] + "\u516c\u91cc</div></li>"
                    }
                } else b += 
                "<li onclick=\"item_parentbject.item_add_input_text('" + f + "','" + szm + '\');item_parentbject.item_hidden_suggest()"><div class="suggest-key">' + d + '</div><div class="suggest-result">' + f + '</div><div style="display:none">' + szm + "</div></li>"
            }
        }
        document.getElementById("top_getplatform").innerHTML = '<div class="suggest-container">' + b + "</div>";
        b = document.getElementById("top_getplatform").childNodes;
        var g = document.getElementById("top_getplatform").getElementsByTagName("li");
        b[0].className = "suggest-container";
        if (a.length >= 
        1 && a[0]) g[0].className = "ds_selected";
        for (e = this.item_lastkeys_val = 0; e < g.length; e++) {
            g[e].onmouseover = function() {
                for (var h = 0; h < g.length; h++) g[h].className = "top_mout";
                this.className = "ds_selected"
            };
            g[e].onmouseout = function() {
                var h = item_parentbject.lastkeys_val,
                k;
                a: for (var j = 0; j < this.parentNode.childNodes.length; j++) if (this == this.parentNode.childNodes[j]) {
                    k = j;
                    break a
                }
                this.className = h == k - 1 ? "ds_selected": "top_mout"
            }
        }
        document.getElementById("top_getiframe").style.width = document.getElementById("top_getplatform").clientWidth + 
        2;
        document.getElementById("top_getiframe").style.height = document.getElementById("top_getplatform").clientHeight + 2
    };
    this.item_fix_div_coordinate = function() {
        var a = 0,
        b = 0,
        c = this.item_object;
        a = c.offsetLeft
        do {
            c = c.offsetParent;
            a = a+c.offsetLeft;
            b = b+c.offsetTop
        }
        while (c.tagName != "BODY" && c.tagName != "HTML");        
        document.getElementById("top_getiframe").style.width = "175px";
        //c = this.item_object;
        if((a+175)>document.body.offsetWidth)  //如果弹出层宽度加上左侧距大于屏幕宽度，则取右偏移
        {
            a = document.body.offsetWidth-a;
            if(a>175) a=a-175; else a= 175-a;
            a=a+6;//a 为右偏移量
            var t =0; 
            t=document.body.offsetWidth-a -175;//再次转换为左偏移（解决在火狐下的不兼容）
            if (document.layers) 
            {
                document.getElementById("top_getiframe").style.left=t+"px";
                document.getElementById("top_getiframe").style.top = this.item_object.offsetTop + b + this.item_object.offsetHeight + 2 + "px"
            } 
            else 
            {
                document.getElementById("top_getiframe").style.left=t+"px";
                document.getElementById("top_getiframe").style.top = this.item_object.offsetTop + b + this.item_object.offsetHeight + "px"
            }
            if (document.layers) 
            {
                document.getElementById("top_getplatform").style.left=t+"px";
                document.getElementById("top_getplatform").style.top = this.item_object.offsetTop + b + this.item_object.offsetHeight + 2 + "px"
            } 
            else 
            {   
                document.getElementById("top_getplatform").style.left=t+"px";
                document.getElementById("top_getplatform").style.top = this.item_object.offsetTop + b + this.item_object.offsetHeight + "px"
            }
        }
        else
        {
            if (document.layers) {
                document.getElementById("top_getiframe").style.left =  a + "px";
                document.getElementById("top_getiframe").style.top = this.item_object.offsetTop + b + this.item_object.offsetHeight + 2 + "px"
            } else {
                document.getElementById("top_getiframe").style.left =  a + "px";
                document.getElementById("top_getiframe").style.top = this.item_object.offsetTop + b + this.item_object.offsetHeight + "px"
            }
            if (document.layers) {
                document.getElementById("top_getplatform").style.left =  a + "px";
                document.getElementById("top_getplatform").style.top = this.item_object.offsetTop + b + this.item_object.offsetHeight + 2 + "px"
            } else {
                document.getElementById("top_getplatform").style.left = a + "px";
                document.getElementById("top_getplatform").style.top = this.item_object.offsetTop + b + this.item_object.offsetHeight + "px"
            }
        }
    };
    this.item_hidden_suggest = function() {
        if (this.item_lastkeys_val == null || this.item_lastkeys_val < 0) this.item_lastkeys_val = 0;
        document.getElementById("top_getiframe").style.visibility = "hidden";
        document.getElementById("top_getplatform").style.visibility = "hidden"
    };
    this.item_show_suggest = function() {
        document.getElementById("top_getiframe").style.visibility = 
        "visible";
        document.getElementById("top_getplatform").style.visibility = "visible"
    };
    this.is_showsuggest = function() {
        return document.getElementById("top_getplatform").style.visibility == "visible" ? true: false
    };
    this.sleep = function(a) {
        for (var b = (new Date).getTime();;) if ((new Date).getTime() - b > a) break
    };
    this.ltrim = function(a) {
        return a.replace(/[\$&\|\^*%#@! ]+/, "")
    };
    this.item_add_input_text = function(a, b) {
        a = this.ltrim(a);
        this.item_object.value = a;
        var c = this.item_object.id;
        if (document.id2) document.getElementById(this.item_id2).value = 
        b;
        document.getElementById(c).style.color = "#000000";
        document.getElementById(c).value = a
    };
    this.item_keys_handleup = function() {
        this.item_lastkeys_val > 0 && this.item_lastkeys_val--;
        var a = document.getElementById("top_getplatform").getElementsByTagName("li");
        if (this.item_lastkeys_val < 0) this.item_lastkeys_val = a.length - 1;
        for (var b = 0, c = 0; c < a.length; c++) {
            if (b == this.item_lastkeys_val) {
                a[c].className = "ds_selected";
                a[c].childNodes.length > 1 && this.item_add_input_text(a[c].childNodes[1].innerHTML)
            } else a[c].className = 
            "top_mout";
            b++
        }
    };
    this.item_keys_handledown = function() {
        this.item_lastkeys_val++;
        var a = document.getElementById("top_getplatform").getElementsByTagName("li");
        if (this.item_lastkeys_val >= a.length) this.item_lastkeys_val--;
        else for (var b = 0, c = 0; c < a.length; c++) {
            if (b == this.item_lastkeys_val) {
                a[c].className = "ds_selected";
                a[c].childNodes.length > 1 && this.item_add_input_text(a[c].childNodes[1].innerHTML)
            } else a[c].className = "top_mout";
            b++
        }
    };
    this.item_ajaxac_getkeycode = function(a) {
        var b;
        if (!a) a = window.event;
        if (a.keyCode) b = 
        a.keyCode;
        else if (a.which) b = a.which;
        return b
    };
    this.item_keys_enter = function() {
        for (var a = document.getElementById("top_getplatform").getElementsByTagName("li"), b = 0; b < a.length; b++) a[b].className == "ds_selected" && a[b].childNodes.length > 1 && this.item_add_input_text(a[b].childNodes[1].innerHTML);
        this.item_hidden_suggest()
    };
    this.item_display = function(a, b, c) {
        if (this.item_getPinYinByCity(a.value) != "") {
            a.focus();
            a.select()
        }
        this.item_id2 = b;
        document.getElementById("top_getplatform") || this.item_init_zhaobussuggest();
        if (!c) c = window.event;
        c.cancelBubble = true;
        if (c.target) targ = c.target;
        else if (c.srcElement) targ = c.srcElement;
        if (targ.nodeType == 3) targ = targ.parentNode;
        switch (this.item_ajaxac_getkeycode(c)) {
        case 38:
            if(document.getElementById("city_box")!=null)
            return false;
            this.item_keys_handleup(a.id);
            return;
        case 40:
            if(document.getElementById("city_box")!=null)
            return false;
            this.is_showsuggest() ? this.item_keys_handledown(a.id) : this.item_show_suggest();
            return;
        case 39:
            return;
        case 37:
            return;
        case 13:
            this.item_keys_enter();
            return;
        case 18:
            this.item_hidden_suggest();
            return;
        case 27:
            this.item_hidden_suggest();
            return
        }
        this.item_object = a;
        window.opera && 
        this.sleep(100);
        item_parentbject = this;
        this.item_taskid && window.clearTimeout(this.item_taskid);
        this.item_taskid = setTimeout("item_parentbject.item_localtext();", this.item_delaySec)
    };
    this.item_localtext = function() {
        var a = "";
        a = this.item_getSuggestionByName();
        if (a == "") {
            item_parentbject.item_show_suggest();
            item_parentbject.item_fill_div("")
        } else {
            a = a.substring(0, a.length - 1);
            item_parentbject.item_show_suggest();
            item_parentbject.item_fill_div(a.split(";"))
        }
        item_parentbject.item_fix_div_coordinate()
    };
    this.item_getSuggestionByName = 
    function() {
        platkeys = this.item_object.value;
        var a = "";
        if (platkeys = this.ltrim(platkeys)) {
            platkeys = platkeys.toUpperCase();
            for (i = 0; i < this.item_citys.length; i++) if (this.item_citys[i][0].toUpperCase().indexOf(platkeys) != -1 || this.item_getLeftStr(this.item_citys[i][1], platkeys.length).toUpperCase() == platkeys || this.item_getLeftStr(this.item_citys[i][2], platkeys.length).toUpperCase() == platkeys) a += this.item_citys[i][1] + "," + this.item_citys[i][0] + "," + this.item_citys[i][2] + ";"
        } else for (i = 0; i < this.item_commoncitys.length; i++) a += 
        this.item_commoncitys[i][1] + "," + this.item_commoncitys[i][0] + "," + this.item_commoncitys[i][2] + ";";
        return a
    };
    this.item_getLeftStr = function(a, b) {
        if (isNaN(b) || b == null) b = a.length;
        else if (parseInt(b) < 0 || parseInt(b) > a.length) b = a.length;
        return a.substr(0, b)
    };
    this.item_autoChoseAirplaceCity = function(a) {
        this.item_object = a;
        a = "";
        a = this.item_getSuggestionByName().split(";");
        var b = "",
        c = "";
        b = this.item_object.value;
        if (b = this.ltrim(b)) for (i = 0; i < a.length; i++) {
            b = a[i].split(",");
            c = b[1];
            szm = b[2];
            if (szm != null && szm != "" && 
            szm.indexOf("$") > -1 && c == this.item_object.value) {
                b = szm.split("$");
                if (b.length > 1) this.item_object.value = b[1].split("-")[0]
            }
        }
    }
};
var item_suggest = new item_city_suggest;
item_suggest.item_citys = citys;
var item_c = [];
item_c[0] = Array("\u5317\u4eac", "Beijing", "BJ");
item_c[1] = Array("\u4e0a\u6d77", "Shanghai", "SH");
item_c[2] = Array("\u5e7f\u5dde", "Guangzhou", "GZ");
item_c[3] = Array("\u82cf\u5dde", "Suzhou", "SZ");
item_c[4] = Array("\u6df1\u5733", "Shenzhen", "SZ");
item_c[5] = Array("\u676d\u5dde", "Hangzhou", "HZ");
item_c[6] = Array("\u5357\u4eac", "Nanjing", "NJ");
item_c[7] = Array("\u5929\u6d25", "Tianjin", "TJ");
item_c[8] = Array("\u6b66\u6c49", "Wuhan", "WH");
item_c[9] = Array("\u6210\u90fd", "Chengdu", "CD");
item_c[10] = Array("\u897f\u5b89", "Xian", "XA");
item_c[11] = Array("\u6c88\u9633", "Shenyang", "SY");
item_suggest.item_commoncitys = item_c;
