var KX = window.KX || {};
KX.AC = KX.AC || {};
KX.AC.JipiaoGNPrePopulateListData = [
    ["北京","bj","pek",""], 
    ["上海", "sh", "sha", ""],
    ["广州", "gz", "can", ""],
    ["深圳", "sz", "szx", ""],
    ["成都", "cd", "ctu", ""],
    ["重庆", "cq", "ckg", ""],
    ["西安", "xa", "xiy", ""],
    ["杭州", "hz", "hgh", ""],
    ["武汉", "wh", "wuh", ""],
    ["昆明", "km", "kmg", ""]
];
KX.AC.JipiaoGJPrePopulateListData = [
    ["香港" , "xg", "gjhkg", ""],
    ["东京", "dj", "gjtyo", ""],
    ["首尔", "se", "gjicn", ""],
    ["新加坡", "xjp", "gjsin", ""],
    ["大阪", "dz", "gjosa", ""],
    ["曼谷", "mg", "gjbkk", ""],
    ["台北", "tb", "gjtpe", ""],
    ["悉尼", "xn", "gjsyd", ""],
    ["巴黎", "bl", "gjcdg", ""],
    ["纽约", "ny", "gjnyc", ""]
];
KX.AC.mychannels = [
{
    "name":"JipiaoStart", 
        "channel":"JipiaoGN",
        "input":"frmcity",
        "container":"container1",
//		"containerWidth":155,
        "resultCount":10,
        "resultsJsonTag":["sKey", "sJianpin", "sAbbr"]
},
{
    "name":"JipiaoEnd", 
    "channel":"JipiaoGN",
    "input":"tocity",
    "container":"container2",
//	"containerWidth":155,
    "resultCount":10,
    "resultsJsonTag":["sKey", "sJianpin", "sAbbr"]
}];
KX.AC.init = function(configs) {
    var nChannels = configs.length;
    for(var i=0; i<nChannels; i++){
        var item = configs[i];
        if(!item.name || !item.channel || !item.input ||!item.container||!item.resultsJsonTag){
            continue;
        }
        if(!item.count){
            item.count = 10;
        }
        KX.AC[item["name"]] = new function(item){
            this.oACDS = new YAHOO.widget.DS_ScriptNode("http://www.kuxun.cn/complete/search.fcgi?count="+item.count+"&ch="+item.channel, ["ResultSet.Result"].concat(item.resultsJsonTag));
            this.oACDS.scriptQueryParam = "q";
            if(item['channel'] == "Hotel"){
                this.oACDS.scriptQueryAppendByOtherInput = {'param':"city", 'id':'city'};
            }
            this.oACDS.maxCacheEntries = 0;

            // Instantiate AutoComplete
            this.oAutoComp = new YAHOO.widget.AutoComplete(item.input, item.container, this.oACDS);
            this.oAutoComp.queryDelay = 0;
            this.oAutoComp.animVert = false;
            this.oAutoComp.useShadow = true;
            this.oAutoComp.useIFrame = true;
            if(item.containerWidth){
                this.oAutoComp.containerWidth = item.containerWidth;
            }
//            this.oAutoComp.forceSelection = true;
            this.oAutoComp.prehighlightClassName = "yui-ac-prehighlight";
            this.oAutoComp.setHeader("输入中文/拼音或↑↓选择.")
            this.oAutoComp.formatResult = function(oResultItem, sQuery) {
                var nResultLen = oResultItem.length;
                var oResultItemObject = {};
                for(var i=0; i<nResultLen; i++){
                    oResultItemObject[item.resultsJsonTag[i]] = oResultItem[i];
                }
                var sKey = oResultItemObject["sKey"].slice(0,12);
                if(sKey.indexOf(sQuery) == 0){
                    var sKeyQuery = sKey.substr(0, sQuery.length);
                    var sKeyRemainder = sKey.substr(sQuery.length);
                    var aMarkup = [];
                    aMarkup.push("<div class='sample-result'><div class='sample-quantity'>");
                    if(oResultItemObject.nQuantity){
                        aMarkup.push("约"+oResultItemObject.nQuantity+"查询");
                    }
                    aMarkup = aMarkup.concat(["</div><span class='sample-query'>",
                        sKeyQuery,
                        "</span>",
                        sKeyRemainder]);
                    if(oResultItemObject.sJianpin){
                        aMarkup = aMarkup.concat(["(",
                            oResultItemObject.sJianpin.toUpperCase(),
                            ")"]);
                    }
                    aMarkup.push("</div>");
                }else{
                    var aMarkup = [];
                    aMarkup.push("<div class='sample-result'><div class='sample-quantity'>");
                    if(oResultItemObject.nQuantity){
                        aMarkup.push("约"+oResultItemObject.nQuantity+"查询");
                    }
                    aMarkup = aMarkup.concat(["</div>",
                        sKey]);
                    if(oResultItemObject.sJianpin){
                        aMarkup = aMarkup.concat(["(",
                            oResultItemObject.sJianpin.toUpperCase(),
                            ")"]);
                    }
                    aMarkup.push("</div>");
                }
                return (aMarkup.join(""));
            };
            if(item["channel"] == "JipiaoGN" || item["channel"] == "JipiaoGJ"){
                this.oAutoComp.textboxFocusEvent.subscribe(function(){
                    var inString ='汉字、拼音或首字母';
                    if(this._elTextbox.value == inString){
                        this._elTextbox.value = "";
                    }
                    this._populateList('', KX.AC[item.channel+"PrePopulateListData"], this);
					if($("#frmcity")){
						$("#frmcity").css("color","#333");
					}
					if($("#tocity")){
						$("#tocity").css("color","#333");
					}
						$("#container1").css("left","60px");
						$("#container1").css("top","24px");
						$("#container2").css("left","60px");
						$("#container2").css("top","24px");
                });
                this.oAutoComp.itemSelectEvent.subscribe(function(type, args){
                    var result = args[2];
					callBackYuce();
					if($("#searchhotel")){
						if(item["channel"] == "JipiaoGJ" && item['name'] == "JipiaoEnd"){
							to_code = result[2].toUpperCase();
							if(HRS[to_code]){
								$("#searchhotel").attr("checked","cheched");
							}
							else{
								$("#searchhotel").removeAttr("checked");
							}
						}
					}
					if(item['name'] == "JipiaoStart"){
                        document.sjipiao.From.value = result[2].toUpperCase();
                    }
                    if(item['name'] == "JipiaoEnd"){
                        document.sjipiao.to.value = result[2].toUpperCase();
                    }

                });
            }
        }(item);
    }
}

