﻿//根据三字码查找城市
function getCityByThreeWord(threeWord,flag)
{
    if(flag!=undefined&&flag!=null&&flag=="hotel")
    {
       commoncitys = commoncitysHotel;
       citys = citysForHotel;
    }
    else if(flag!=undefined&&flag!=null&&flag=="flight")
    {
       commoncitys = commoncitysFlight;
       citys = citysForFlight;
    }
    var cityCn = "";
    for(var i = 0,len = citys.length;i<len;i++)
    {
        if(threeWord == citys[i][0])
        {
            cityCn = citys[i][1];
            break;
        }
    }
    return cityCn;
}
//根据城市查找三字码
function getThreeWordByCity(cityName,flag)
{
    if(flag!=undefined&&flag!=null&&flag=="hotel")
    {
       commoncitys = commoncitysHotel;
       citys = citysForHotel;
    }
    else if(flag!=undefined&&flag!=null&&flag=="flight")
    {
       commoncitys = commoncitysFlight;
       citys = citysForFlight;
    }
    var threeWord = "";
    for(var i = 0,len = citys.length;i<len;i++)
    {
        if(cityName == citys[i][1])
        {
            threeWord = citys[i][0];
            break;
        }
    }
    return threeWord;
}

//根据城市拼音查找三字码
function getThreeWordByPinyin(cityName,flag)
{
    if(flag!=undefined&&flag!=null&&flag=="hotel")
    {
       commoncitys = commoncitysHotel;
       citys = citysForHotel;
    }
    else if(flag!=undefined&&flag!=null&&flag=="flight")
    {
       commoncitys = commoncitysFlight;
       citys = citysForFlight;
    }
    cityName = cityName.toUpperCase();
    var threeWord = "";
    for(var i = 0,len = citys.length;i<len;i++)
    {
        if(cityName == citys[i][2])
        {
            threeWord = citys[i][0];
            break;
        }
    }
    return threeWord;
}

//根据城市中文名查找三字码
function getThreeWordByZhong(cityName,flag)
{
    if(flag!=undefined&&flag!=null&&flag=="hotel")
    {
       commoncitys = commoncitysHotel;
       citys = citysForHotel;
    }
    else if(flag!=undefined&&flag!=null&&flag=="flight")
    {
       commoncitys = commoncitysFlight;
       citys = citysForFlight;
    }
    //cityName = cityName.toUpperCase();
    var threeWord = "";
    for(var i = 0,len = citys.length;i<len;i++)
    {
        if(cityName == citys[i][1])
        {
            threeWord = citys[i][0];
            break;
        }
    }
    return threeWord;
}

function showSearch(obj,type){
    if(type){
        if(obj.value==""){
            obj.style.color="#C1C1C1";
            obj.value="中文/拼音";
        }
    }else{
        if(obj.value=="中文/拼音"){
            obj.style.color="#000000";
            obj.value="";
        }
    }
}



var parentbject;
window.city_suggest = function(){
    this.Remoreurl = ''; // 远程URL地址
    this.object = '';
    this.id2 = '';
    this.taskid = 0;
    this.delaySec = 100; // 默认延迟多少毫秒出现提示框
    this.lastkeys_val = 0;
    this.lastinputstr = '';
    /**
    * 初始化类库
    */
    this.init_zhaobussuggest=  function(){
        var objBody = document.getElementsByTagName("body").item(0);
        var objiFrame = document.createElement("iframe");
        var objplatform = document.createElement("div");
        objiFrame.setAttribute('id','getiframe');
        objiFrame.style.zindex='100';
        objiFrame.style.position = 'absolute';
        objiFrame.style.display = 'none';
        objplatform.setAttribute('id','getplatform');
        objplatform.setAttribute('align','left');
        objBody.appendChild(objiFrame);
        objiFrame.ownerDocument.body.appendChild(objplatform);
        $(document).click(function(){
            suggest.hidden_suggest();
        });
    }

    /***************************************************fill_div()*********************************************/
    //函数功能：动态填充div的内容，该div显示所有的提示内容
    //函数参数：allplat 一个字符串数组，包含了所有可能的提示内容
    this.fill_div = function(allplat){
        var msgplat = '';
        var all = '';
        var spell = '';
        var chinese = '';
        var platkeys = this.object.value;
        platkeys=this.ltrim(platkeys);
        if(!platkeys){
            msgplat += '<table class="hint"><tr align="left"><td class="tdleft" height="10" align="left">输入中文/拼音或&uarr;&darr;选择</td></tr></table><table class="mout" height="2"><tr><td></td></tr></table>';
            for(i=0;i<allplat.length;i++){
                all=allplat[i].split(",");
                spell=all[0];
                chinese=all[1];
                szm=all[2];
                msgplat += '<table class="mout" onmousedown="parentbject.add_input_text(\'' + chinese + '\',\'' + szm + '\')"><tr><td class="tdleft" height="10" align="left">'+ spell +
                       '</td><td class="tdright" align="right">' + chinese + '</td><td style="display:none">' + szm + '</td></tr></table>';
            }
        }
        else {
            if(allplat.length < 1 || !allplat[0]){
                msgplat += '<table class="hint"><tr align="left"><td class="tdleft" height="10" align="left">对不起，找不到：'+platkeys+'</td></tr></table><table width="210" class="mout" height="2"><tr><td></td></tr></table>';

            }
            else{
               msgplat += '<table class="hint"><tr align="left"><td class="tdleft" height="10" align="left">'+platkeys+'，按拼音排序</td></tr></table><table width="210" class="mout" height="2"><tr><td></td></tr></table>';
               for(i=0;i<allplat.length;i++){
                    all=allplat[i].split(",");
                    spell=all[0];
                    chinese=all[1];
                    szm=all[2];
                    msgplat += '<table class="mout" onmousedown="parentbject.add_input_text(\'' + chinese + '\',\'' + szm + '\')"><tr><td class="tdleft" height="10" align="left">'+ spell +
                       '</td><td class="tdright" align="right">' + chinese + '</td><td style="display:none">' + szm + '</td></tr></table>';
                }
            }
        }
        document.getElementById("getplatform").innerHTML =  msgplat;
        var nodes = document.getElementById("getplatform").childNodes;
        nodes[0].className = "hint";
        if(allplat.length >= 1 && allplat[0]){
            nodes[2].className = "selected";
        }
        this.lastkeys_val = 0;
        for(var i=2;i<nodes.length;i++){
            nodes[i].onmouseover = function(){
                this.className = "mover";
            }

            nodes[i].onmouseout = function(){
                if(parentbject.lastkeys_val==(parentIndexOf(this)-2)){this.className = "selected";}
                else{this.className = "mout";}
            }
        }
        if($.fn.bgiframe){
			$("#getplatform").bgiframe();
		}
        document.getElementById("getiframe").style.width = document.getElementById("getplatform").clientWidth+2;
        //document.getElementById("getiframe").style.height = document.getElementById("getplatform").clientHeight+2;
        document.getElementById("getiframe").style.height = document.getElementById("getplatform").clientHeight-2;
    }
    
    /***************************************************fillhotel_div()*********************************************/
	//函数功能：动态填充div的内容，该div显示所有的提示内容
	//函数参数：allplat 一个字符串数组，包含了所有可能的提示内容
	this.fillhotel_div = function(allplat){
		var msgplat = '';
		var chinese = '';
		var platkeys = this.object.value;
		//alert(platkeys);
        platkeys=this.ltrim(platkeys);
		if(!platkeys){ //没有输入任何内容时
			msgplat += '<table class="hint"><tr align="left"><td class="tdleft" height="10" align="left">输入中文/拼音或&uarr;&darr;选择</td></tr></table><table class="mout" height="2"><tr><td></td></tr></table>';
			for(i=0;i<allplat.length;i++){
				chinese=allplat[i];
				msgplat += '<table class="mout"><tr onclick="parentObject.add_input_text(\'' + chinese + '\',\'1\')"><td class="tdleft" height="10" align="left">'+ chinese + '</td><td style="display:none">' + chinese + '</td></tr></table>';	   
			}
        }
		else { //输入法的内容找不到时
			if(allplat.length < 1 || !allplat[0]){
				msgplat += '<table class="hint"><tr align="left"><td class="tdleft" height="10" align="left">对不起，找不到：'+platkeys+'</td></tr></table><table class="mout" height="2"><tr><td></td></tr></table>';
			}
			else{ //输入了内容，并找到时
			   msgplat += '<table class="hint"><tr align="left"><td class="tdleft" height="10" align="left">'+platkeys+'，按拼音排序</td></tr></table><table class="mout" height="2"><tr><td></td></tr></table>';
			   for(i=0;i<allplat.length;i++){
					chinese=allplat[i];
					msgplat += '<table class="mout"><tr onclick="parentObject.add_input_text(\''  + chinese + '\',\'1\')"><td class="tdleft" height="10" align="left">'+ chinese + '</td><td style="display:none">' + chinese + '</td></tr></table>';   
				}
			}
		}
		document.getElementById("getplatform").innerHTML =  msgplat;

		var nodes = document.getElementById("getplatform").childNodes;  //例如:当输入z时
		nodes[0].className = "hint"; //第一行提示文本(例如：z，按拼音排序)
		if(allplat.length >= 1 && allplat[0]){
			nodes[2].className = "selected"; //当输入部分文本时，默认选中第二行(即第一个候选项)(例如：zhuhai  珠海)
		}
		this.lastkeys_val = 0;
		for(var i=2;i<nodes.length;i++){ //为所有列表选项添加事件(改变列表项显示样式)
			nodes[i].onmouseover = function(){
				this.className = "mover";
			}

			nodes[i].onmouseout = function(){
				if(parentObject.lastkeys_val==(parentIndexOf(this)-2)){this.className = "selected";}
				else{this.className = "mout";}
			}
		}
		document.getElementById("getiframe").style.width = document.getElementById("getplatform").clientWidth + "px";
        document.getElementById("getiframe").style.height = document.getElementById("getplatform").clientHeight + "px";
	}
    

    /***************************************************fix_div_coordinate*********************************************/
    //函数功能：控制提示div的位置，使之刚好出现在文本输入框的下面
    this.fix_div_coordinate = function(){
        var leftpos=0;
        var toppos=0;
        aTag = this.object;
        do {
            aTag = aTag.offsetParent;
            leftpos += aTag.offsetLeft;
            toppos += aTag.offsetTop;
        }while(aTag.tagName!="BODY");
        document.getElementById("getiframe").style.width = this.object.offsetWidth + 'px';
        if(document.layers){
            document.getElementById("getiframe").style.left = this.object.offsetLeft    + leftpos + "px";
            document.getElementById("getiframe").style.top = this.object.offsetTop +    toppos + this.object.offsetHeight + 2 + "px";
        }else{
            document.getElementById("getiframe").style.left =this.object.offsetLeft + leftpos  +"px";
            document.getElementById("getiframe").style.top = this.object.offsetTop +    toppos + this.object.offsetHeight + 'px';
        }
        //div getplatform在FireFox下不能自动变大,因此去掉此行,其大小在css中定义
        //document.getElementById("getplatform").style.width = this.object.offsetWidth + 'px';
        if(document.layers){
            document.getElementById("getplatform").style.left = this.object.offsetLeft  + leftpos + "px";
            document.getElementById("getplatform").style.top = this.object.offsetTop +  toppos + this.object.offsetHeight + 2 + "px";
        }else{
            document.getElementById("getplatform").style.left =this.object.offsetLeft   + leftpos  +"px";
            document.getElementById("getplatform").style.top = this.object.offsetTop +  toppos + this.object.offsetHeight + 'px';
        }
    }

    /***************************************************hidden_suggest*********************************************/
    //函数功能：隐藏提示框
    this.hidden_suggest = function (){
        this.lastkeys_val = 0;
        document.getElementById("getiframe").style.visibility = "hidden";
        document.getElementById("getplatform").style.visibility = "hidden";
    }

    /***************************************************show_suggest*********************************************/
    //函数功能：显示提示框
    this.show_suggest = function (){
        document.getElementById("getiframe").style.visibility = "visible";
        document.getElementById("getplatform").style.visibility = "visible";
    }

    this.is_showsuggest= function (){
        if(document.getElementById("getplatform").style.visibility == "visible") return true;else return false;
    }

    this.sleep = function(n){
        var start=new Date().getTime(); //for opera only
        while(true) if(new Date().getTime()-start>n) break;
    }

    this.ltrim = function (strtext){
        return strtext.replace(/[\$&\|\^*%#@! ]+/, '');
    }

    /***************************************************add_input_text*********************************************/
    //函数功能：当用户选中时填充相应的城市名字

    this.add_input_text = function (keys,szm){
        keys=this.ltrim(keys)
        this.object.value = keys;
        var id=this.object.id;
        var id2 = this.id2;
        if(this.id2 != '' && document.getElementById(this.id2)){
            document.getElementById(this.id2).value = szm;
        }
        document.getElementById(id).style.color="#000000";
        document.getElementById(id).value=keys;
     }

    /***************************************************keys_handleup*********************************************/
    //函数功能：用于处理当用户用向上的方向键选择内容时的事件
    this.keys_handleup = function (){
        if(this.lastkeys_val > 0) this.lastkeys_val--;
        var nodes = document.getElementById("getplatform").childNodes;
        if(this.lastkeys_val < 0) this.lastkeys_val = nodes.length-1;
        var b = 0;
        for(var i=2;i<nodes.length;i++){
            if(b == this.lastkeys_val){
                nodes[i].className = "selected";
                //this.add_input_text(nodes[i].childNodes[0].childNodes[0].childNodes[1].innerHTML,nodes[i].childNodes[0].childNodes[0].childNodes[2].innerHTML);
                this.add_input_text(nodes[i].childNodes[0].childNodes[0].childNodes[1].innerHTML);
            }else{
                nodes[i].className = "mout";
            }
            b++;
        }
    }

    /***************************************************keys_handledown*********************************************/
    //函数功能：用于处理当用户用向下的方向键选择内容时的事件
    this.keys_handledown = function (){
        this.lastkeys_val++;
        var nodes = document.getElementById("getplatform").childNodes;
        if(this.lastkeys_val >= nodes.length-2) {
            this.lastkeys_val--;
            return;
        }
        var b = 0;
        for(var i=2;i<nodes.length;i++){
            if(b == this.lastkeys_val){
                nodes[i].className = "selected";
                //this.add_input_text(nodes[i].childNodes[0].childNodes[0].childNodes[1].innerHTML,nodes[i].childNodes[0].childNodes[0].childNodes[2].innerHTML);
                this.add_input_text(nodes[i].childNodes[0].childNodes[0].childNodes[1].innerHTML);
            }else{
                nodes[i].className = "mout";
            }
            b++;
        }
    }

    this.ajaxac_getkeycode = function (e)
    {
        var code;
        if (!e) var e = window.event;
        if (e.keyCode) code = e.keyCode;
        else if (e.which) code = e.which;
        return code;
    }

    /***************************************************keys_enter*********************************************/
    //函数功能：用于处理当用户回车键选择内容时的事件
    this.keys_enter = function (){
        var nodes = document.getElementById("getplatform").childNodes;
        for(var i=2;i<nodes.length;i++){
            if(nodes[i].className == "selected"){
                //this.add_input_text(nodes[i].childNodes[0].childNodes[0].childNodes[1].innerHTML,nodes[i].childNodes[0].childNodes[0].childNodes[2].innerHTML);
                this.add_input_text(nodes[i].childNodes[0].childNodes[0].childNodes[1].innerHTML);
            }
        }
        this.hidden_suggest();
    }

    /***************************************************display*********************************************/
    //函数功能：入口函数，将提示层div显示出来
    //输入参数：object 当前输入所在的对象，如文本框
    //输入参数：控件id 光标需要聚焦到下一个控件的id
    //输入参数：e IE事件对象
    //输入参数：flag "hotel":酒店城市数组   "flight":机票城市数组
    this.display = function (object,id2,e,flag){
        
//        if(flag!=undefined&&flag!=null&&flag=="hotel")
//        {
//           commoncitys = commoncitysHotel;
//           citys = citysForHotel;
//        }
//        else if(flag!=undefined&&flag!=null&&flag=="flight")
//        {
//           commoncitys = commoncitysFlight;
//           citys = citysForFlight;
//        }
        flag=="hotel";
        commoncitys = commoncitysHotel;
        citys = citysForHotel;
        /*haochenyang 2009-03-12 start : 第二次触发城市控件，默认全选。*/
        var content = object.value;
        //var flag_ch = /.*[\u4e00-\u9fa5]+.*$/.test(content);
        //var length = content.length;
        var flag = getThreeWordByCity(content)
        if(flag!="") 
        {
            object.focus();
            object.select();
        }//end if
        
        /*haochenyang 2009-03-12 end*/ 

        this.id2 = id2;
        if(!document.getElementById("getplatform")) this.init_zhaobussuggest();
        
        /*
        if (!e) e = window.event;
        e.stopPropagation;
        e.cancelBubble = true;
        if (e.target) targ = e.target;  else if (e.srcElement) targ = e.srcElement;
        if (targ.nodeType == 3)  targ = targ.parentNode;
        */
        /*xiangyang.li 2009-05-09 begin*/ 
        //jQuery来取消冒泡
        e.stopPropagation();
        /*xiangyang.li 2009-05-09 end*/ 

        var inputkeys = this.ajaxac_getkeycode(e);
        switch(inputkeys){
            case 38: //向上方向键
                this.keys_handleup(object.id);
                return;break;
            case 40: //向下方向键
                if(this.is_showsuggest()) this.keys_handledown(object.id); else this.show_suggest();
                return;break;
            case 39: //向右方向键
                return;break;
            case 37: //向左方向键
                return;break;
            case 13: //对应回车键
                this.keys_enter();
                return;break;
            case 18: //对应Alt键
                this.hidden_suggest();
                return;break;
            case 27: //对应Esc键
                this.hidden_suggest();
                return;break;
        }

        //object.value = this.ltrim(object.value);
        this.object = object;
        //if(object.value == this.lastinputstr) return;else this.lastinputstr = object.value;
        if(window.opera) this.sleep(100);//延迟0.1秒
        parentbject = this;
        if(this.taskid) window.clearTimeout(this.taskid);
        this.taskid=setTimeout("parentbject.localtext('"+this.object.value+"');" , this.delaySec)
        //this.taskid = setTimeout("parentbject.remoteurltext();" , this.delaySec);

    }

    /*************************************************** displayClick *********************************************/
    //函数功能：入口函数，将提示层div显示出来
    //输入参数：object 当前输入所在的对象，如文本框
    //输入参数：控件id 光标需要聚焦到下一个控件的id
    //输入参数：e IE事件对象
    //输入参数：flag "hotel":酒店城市数组   "flight":机票城市数组
    this.displayClick = function (object,id2,e,flag){
//        if(flag!=undefined&&flag!=null&&flag=="hotel")
//        {
//           commoncitys = commoncitysHotel;
//           citys = citysForHotel;
//        }
//        else if(flag!=undefined&&flag!=null&&flag=="flight")
//        {
//           commoncitys = commoncitysFlight;
//           citys = citysForFlight;
//           //alert(citys);
//        }
        //alert(object);
        commoncitys = commoncitysHotel;
        citys = citysForHotel;
        object.focus();
        object.select();
        this.id2 = id2;
        if(!document.getElementById("getplatform")) this.init_zhaobussuggest();
        //jQuery来取消冒泡
        e.stopPropagation();
        var inputkeys = this.ajaxac_getkeycode(e);
        switch(inputkeys){
            case 38: //向上方向键
                this.keys_handleup(object.id);
                return;break;
            case 40: //向下方向键
                if(this.is_showsuggest()) this.keys_handledown(object.id); else this.show_suggest();
                return;break;
            case 39: //向右方向键
                return;break;
            case 37: //向左方向键
                return;break;
            case 13: //对应回车键
                this.keys_enter();
                return;break;
            case 18: //对应Alt键
                this.hidden_suggest();
                return;break;
            case 27: //对应Esc键
                this.hidden_suggest();
                return;break;
        }
        this.object = object;
        parentbject = this;
        parentbject.localtext('');

    }
    
    //函数功能：从本地js数组中获取要填充到提示层div中的文本内容
    this.localtext = function(tempValue){
        var id=this.object.id;
        var suggestions="";
        suggestions=this.getSuggestionByName(tempValue);
        suggestions=suggestions.substring(0,suggestions.length-1);

        parentbject.show_suggest();
        parentbject.fill_div(suggestions.split(';'));
        parentbject.fix_div_coordinate();
    }

    /***************************************************getSuggestionByName*********************************************/
    //函数功能：从本地js数组中获取要填充到提示层div中的城市名字
    this.getSuggestionByName = function(tempValue){
        platkeys = tempValue;//
        var str="";
        platkeys=this.ltrim(platkeys);
        if(!platkeys){
            for(i=0;i<commoncitys.length;i++){
                str+=commoncitys[i][2]+","+commoncitys[i][1]+","+commoncitys[i][0]+";";
            }
            return str;
        }
        else{
           platkeys=platkeys.toUpperCase();
            for(i=0;i<citys.length;i++){
                if(this.getLeftStr(citys[i][0],platkeys.length).toUpperCase()==platkeys||
                   (citys[i][1].toUpperCase().indexOf(platkeys)!=-1)||
                   this.getLeftStr(citys[i][2],platkeys.length).toUpperCase()==platkeys||
                   this.getLeftStr(citys[i][3],platkeys.length).toUpperCase()==platkeys)
                    str+=citys[i][2]+","+citys[i][1]+","+citys[i][0]+";";
            }
            return str;
        }
    }
    
    /***************************************************gethotel*********************************************/
	/**
	 *@function  入口函数，将提示层div显示出来
	 *@param   {Object}    object     当前输入所在的对象，如文本框
	 *@param   {event}     e          捕获当前事件作用的对象
	 *@param   {Object}    objectEx   当用户在下拉选择框选择后,使用回车键,光标跳转到下一个输入框
	//输入参数：e IE事件对象
	 */
	this.gethotel = function (object,e,objectEx){
	    /* 2009-03-12 start : 第二次触发城市控件，默认全选。*/
	    var content;
	    var cityCode;
	    if(document.getElementById("id_cityCode")){
	        cityCode=$("#id_cityCode").val();
	        if(cityCode==undefined||cityCode==null||cityCode==""){
	            //content="请选择酒店所在城市";
	            alert("请选择酒店所在城市");
	            //$("#id_startCity").click();
	            window.setTimeout(function() { $('#id_startCity').focus(); }, 10);
	            return false;
	        }
	    }
	    else if(document.getElementById("radio1") && document.getElementById("radio2")){
	        cityCode = $("input[name='radiocity']:checked").val();
	        //alert(cityCode);
	    }
	    content = object.value;
		//alert(content);
		//var flag = '2001';
		//alert(flag);
		//if(flag!="") 
		//{
		//    object.focus();
		    //object.select();
		//}//end if
		
		/* 2009-03-12 end*/ 
		
		/* 2009-03-17 start : 当用户在下拉选择框选择后,使用回车键,光标跳转到下一个输入框。*/
		this.nextObject=(objectEx!=undefined&&objectEx!=null&objectEx!='')?objectEx:null;
	    /* 2009-03-17 end : 当用户在下拉选择框选择后,使用回车键,光标跳转到下一个输入框。*/

		if(!document.getElementById("getplatform")) this.init_zhaobussuggest();
		if (!e) e = window.event;
		e.stopPropagation; //firefox //阻止事件向上一级传递
		e.cancelBubble = true; //IE
		if (e.target) targ = e.target; //firefox //捕获当前事件作用的对象
		else if (e.srcElement) targ = e.srcElement; //IE
		if (targ.nodeType == 3)  targ = targ.parentNode;
		//nodeType:1  元素element
		//nodeType:2  属性attr
		//nodeType:3  文本text
		//nodeType:4  注释comments
		//nodeType:5  文档document

		var inputkeys = this.ajaxac_getkeycode(e);
		switch(inputkeys){
			case 38: //向上方向键
				this.keys_handleup(object.id);
			    return;break;
				
			case 40: //向下方向键
				if(this.is_showsuggest()) this.keys_handledown(object.id); else this.show_suggest();
			    return;break;
				
			case 39: //向右方向键
				return;break;
				
			case 37: //向左方向键
				return;break;
				
			case 13: //对应回车键
			    this.keys_enter();
			    return;break;
				
			case 18: //对应Alt键
				this.hidden_suggest();
			    return;break;
				
			case 27: //对应Esc键
				this.hidden_suggest();
			    return;break;
		}

		//object.value = this.ltrim(object.value);
		this.object = object;
		//if(object.value == this.lastinputstr) return;else this.lastinputstr = object.value;
		if(window.opera) this.sleep(100);//延迟0.1秒

		parentObject = this;
		//alert(this.taskid+"   "+this.delaySec)
		if(this.taskid) window.clearTimeout(this.taskid);
        this.taskid=setTimeout("parentObject.localtexthotel();" , this.delaySec)
		//this.taskid = setTimeout("parentObject.remoteurltext();" , this.delaySec);
	}
	
	//函数功能：从本地js数组中获取要填充到提示层div中的文本内容
	this.localtexthotel = function(){
		var id=this.object.id;
		//alert(id);
        this.getSuggestionByHotelName();
		//suggestions=suggestions.substring(0,suggestions.length-1); //去掉suggestions的最后一个分号(在循环语句中生成)

		//parentObject.show_suggest();
		//parentObject.fill_div(suggestions.split(';'));
		//parentObject.fix_div_coordinate();
	}
	
	/***************************************************getSuggestionByHotelName*********************************************/
	//函数功能：从本地js数组中获取要填充到提示层div中的城市名字
	this.getSuggestionByHotelName = function(){
		
		platkeys = this.object.value;
		var Keys=platkeys;
		//alert(platkeys);
		//var cityCode=document.getElementById("id_cityCode").value;
		//alert(cityCode);getThreeWordByZhong
		//var CityN=document.getElementById("id_startCity").value;
		//var CityN='2001';
		//alert(CityN);
//		var cityCode = $("input[name='radio1']:checked").val();
		var CityN;
		if(document.getElementById("CityID")){
		    CityN=document.getElementById("CityID").value;
		}
		else
		{
		    if(document.getElementById("id_startCity")){
		        CityN=getThreeWordByZhong(document.getElementById("id_startCity").value,"hotel");	
		    } else {
			    CityN=$("input[name='radiocity']:checked").val();
		    }
		}
		//var CityN=getThreeWordByZhong(document.getElementById("id_startCity").value,"hotel");
		//alert(CityN);
		var str="";
        platkeys=this.ltrim(platkeys);
		if(platkeys){
			var url = "/ajax/getHotel.aspx?kw=" + escape(Keys) + "&cid=" + CityN;
           //alert(url);
           $.ajax(
           {
               type:"get",
               url:url + "&d" + new Date().getTime(),
               success:function(data){
				    parentObject.show_suggest();
		            parentObject.fillhotel_div(data.split(','));
		            parentObject.fix_div_coordinate();
               }
            });
			}
			//alert(str);
			//return str;
		
	}
	
	/***************************************************getschool*********************************************/
	/**
	 *@function  入口函数，将提示层div显示出来
	 *@param   {Object}    object     当前输入所在的对象，如文本框
	 *@param   {event}     e          捕获当前事件作用的对象
	 *@param   {Object}    objectEx   当用户在下拉选择框选择后,使用回车键,光标跳转到下一个输入框
	//输入参数：e IE事件对象
	 */
	this.getschool = function (object,e,objectEx){
	    /* 2009-03-12 start : 第二次触发城市控件，默认全选。*/
	    var content;
	    var cityCode;
	    if(document.getElementById("CityID")){
	        cityCode=$("#CityID").val();
	        if(cityCode==undefined||cityCode==null||cityCode==""){
	            alert("请选择学校所在城市");
	            return false;
	        }
	    }
	    content = object.value;
		//alert(content);
		//var flag = '2001';
		//alert(flag);
		//if(flag!="") 
		//{
		//    object.focus();
		    //object.select();
		//}//end if
		
		/* 2009-03-12 end*/ 
		
		/* 2009-03-17 start : 当用户在下拉选择框选择后,使用回车键,光标跳转到下一个输入框。*/
		this.nextObject=(objectEx!=undefined&&objectEx!=null&objectEx!='')?objectEx:null;
	    /* 2009-03-17 end : 当用户在下拉选择框选择后,使用回车键,光标跳转到下一个输入框。*/

		if(!document.getElementById("getplatform")) this.init_zhaobussuggest();
		if (!e) e = window.event;
		e.stopPropagation; //firefox //阻止事件向上一级传递
		e.cancelBubble = true; //IE
		if (e.target) targ = e.target; //firefox //捕获当前事件作用的对象
		else if (e.srcElement) targ = e.srcElement; //IE
		if (targ.nodeType == 3)  targ = targ.parentNode;
		//nodeType:1  元素element
		//nodeType:2  属性attr
		//nodeType:3  文本text
		//nodeType:4  注释comments
		//nodeType:5  文档document

		var inputkeys = this.ajaxac_getkeycode(e);
		switch(inputkeys){
			case 38: //向上方向键
				this.keys_handleup(object.id);
			    return;break;
				
			case 40: //向下方向键
				if(this.is_showsuggest()) this.keys_handledown(object.id); else this.show_suggest();
			    return;break;
				
			case 39: //向右方向键
				return;break;
				
			case 37: //向左方向键
				return;break;
				
			case 13: //对应回车键
			    this.keys_enter();
			    return;break;
				
			case 18: //对应Alt键
				this.hidden_suggest();
			    return;break;
				
			case 27: //对应Esc键
				this.hidden_suggest();
			    return;break;
		}

		//object.value = this.ltrim(object.value);
		this.object = object;
		//if(object.value == this.lastinputstr) return;else this.lastinputstr = object.value;
		if(window.opera) this.sleep(100);//延迟0.1秒

		parentObject = this;
		//alert(this.taskid+"   "+this.delaySec)
		if(this.taskid) window.clearTimeout(this.taskid);
        this.taskid=setTimeout("parentObject.localtextscholl();" , this.delaySec)
		//this.taskid = setTimeout("parentObject.remoteurltext();" , this.delaySec);
	}
	
	//函数功能：从本地js数组中获取要填充到提示层div中的文本内容
	this.localtextscholl = function(){
		var id=this.object.id;
		//alert(id);
		this.getSuggestionBySchoolName();
        //this.getSuggestionByHotelName();
		//suggestions=suggestions.substring(0,suggestions.length-1); //去掉suggestions的最后一个分号(在循环语句中生成)

		//parentObject.show_suggest();
		//parentObject.fill_div(suggestions.split(';'));
		//parentObject.fix_div_coordinate();
	}
	
	/***************************************************getSuggestionByHotelName*********************************************/
	//函数功能：从本地js数组中获取要填充到提示层div中的城市名字
	this.getSuggestionBySchoolName = function(){
		
		platkeys = this.object.value;
		var Keys=platkeys;
		//alert(platkeys);
		//var cityCode=document.getElementById("id_cityCode").value;
		//alert(cityCode);getThreeWordByZhong
		//var CityN=document.getElementById("id_startCity").value;
		//var CityN='2001';
		//alert(CityN);
//		var cityCode = $("input[name='radio1']:checked").val();
		var CityN;
		if(document.getElementById("CityID")){
		    CityN=document.getElementById("CityID").value;
		}
		
		//var CityN=getThreeWordByZhong(document.getElementById("id_startCity").value,"hotel");
		//alert(CityN);
		var str="";
        platkeys=this.ltrim(platkeys);
		if(platkeys){
			var url = "/ajax/getSchool.aspx?at=TiShi&kw=" + escape(Keys) + "&cid=" + CityN;
           //alert(url);
           $.ajax(
           {
               type:"get",
               url:url + "&d" + new Date().getTime(),
               success:function(data){
				    parentObject.show_suggest();
		            parentObject.fillhotel_div(data.split(','));
		            parentObject.fix_div_coordinate();
               }
            });
			}
			//alert(str);
			//return str;
		
	}
	
	
	
	this.filemydiv=function(object,e){
		var content = object.value;
		alert(content);
		//parentObject = this;
		//parentObject.show_suggest();
        //parentObject.fillhotel_div("sdfsdfsdf,测试");
        //parentObject.fix_div_coordinate();

	}

    /***************************************************getLeftStr************* *************************************/
    //函数功能：得到左边的字符串
    this.getLeftStr = function(str,len){

        if(isNaN(len)||len==null){
            len = str.length;
        }
        else{
            if(parseInt(len)<0||parseInt(len)>str.length){
                len = str.length;
             }
        }
        return str.substr(0,len);
    }

    /***************************************************parentIndexOf************* *************************************/
    //函数功能：得到子结点在父结点的位置
    function parentIndexOf(node){
      for (var i=0; i<node.parentNode.childNodes.length; i++){
            if(node==node.parentNode.childNodes[i]){return i;}
      }
   }


}
var suggest = new city_suggest();
