function $() {
    var elements = new Array();

    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);

        if (arguments.length == 1)
            return element;

        elements.push(element);
    }

    return elements;
}

var xmlhttprequest = null;
function getXMLHttpRequest()
{
	if(window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		request = new ActiveXObject("Microsoft.XMLHTTP");
		
		if (!request)
		{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		return request;
	}
}


/*
参数说明:
	Obj->下拉框名称
	SelectedValue->默认选中项(是value不是text)
*/
function SelMySelectedValue(Obj,SelectedValue){
	for(var i=0;i<Obj.options.length;i++){
		if(Obj.options[i].value==SelectedValue){
			Obj.options[i].selected=true;
		}
	}
}

var flightCityList = {HOT: ["珠海&ZhuHai","广州&GuangZhou","深圳&ShenZhen","东莞&DongGuan","中山&ZhongShan","佛山&FoShan","香港&XiangGang","澳门&AoMen","合肥&HeFei"]};
(function(){

   var style="#ShowFlightCityBox a{color:#0055AA;}  #ShowFlightCityBox a:hover{ color:#ff6000;}";
  document.write("<style type='text/css'>");
  document.write(style);
  document.write("</style>");

})();

function cnFlightCityBox(id)
{
     var obj=document.getElementById(id);
     if (obj.attachEvent)
     {
           obj.attachEvent("onclick", CnCityBoxClick);
           obj.attachEvent("onkeyup",CnCityBoxKeyUp);
           obj.attachEvent("onkeydown",CnCityBoxKeyDown);
     }
     
      function CnCityBoxClick()
      {
            CnFlightCityBoxKeyUp(obj);
      }
      
      function CnCityBoxKeyUp()
      {
           CnFlightCityBoxKeyUp(obj);
      }
      function CnCityBoxKeyDown()
      {
           CnFlightCityBoxKeyDown(obj);
      }
}

function CnFlightBoxSelectContent(textbox)  
{
    try    
    {   
        var r=textbox.createTextRange();    
        r.moveEnd('character',textbox.value.length);    
        r.moveStart('character',0);    
        r.select();    
    }     
    catch(e)  
    {
    }
}

var cnFlightCityCurrentObj;
var cnFlightCityCurrentType=1;

function CloseFlightCitySelect()
{
    document.getElementById('ShowFlightCityBox').style.display="none";
    document.getElementById('ShowFlightCityBoxiFrame').style.display="none";
}

function ShowFlightHotCity()
{
    cnFlightCityCurrentObj.focus();
    var CityListA=document.getElementById("ShowFlightAllCity").style.display="none";
    cnFlightCityCurrentType=1;
    document.getElementById("HotCityLabel").style.color="#ff6000";
    document.getElementById("AllCityLabel").style.color="";
    document.getElementById("CityList").innerHTML="";
    for( var i=0; i< flightCityList["HOT"].length; i++)
    {
	    var a = document.createElement("a");
	    a.href="javascript:void(0)";
	    a.title= flightCityList["HOT"][i];
	    a.style.cssText="font-size:14px;font-family:Helvetica,Arial,sans-serif; display:inline-block; font-weight:lighter; margin:5px;";
	    a.innerHTML= flightCityList["HOT"][i];
	    a.onclick=function(){ cnFlightCityCurrentObj.value=this.innerHTML; cnFlightCityCurrentObj.style.color="black"; document.body.removeChild(document.getElementById("ShowFlightCityBox"));  document.body.removeChild(document.getElementById("ShowFlightCityBoxiFrame"));};
	    document.getElementById("CityList").appendChild(a);
    }
}

function getPointsPos(el,ePro)
{
	var ePos=0;
	while(el!=null)
	{		
		ePos+=el["offset"+ePro];
		el=el.offsetParent;
	}
	return ePos;
}

var flightCityListIndex=0;
function CnFlightCityBoxKeyUp(obj)
{
    if(document.readyState!="complete") return;
    if(event.keyCode=="40" || event.keyCode=="38" || event.keyCode=="13")return;

    var inputKey = obj.value.replace(/(^\s*)|(\s*$)/g, "");            
    if(isChinese(inputKey))
    {
        showCityList(obj,inputKey,"cn");
    }
    else
    {
        showCityList(obj,inputKey,"en");
    }

    function isChinese(s)
    { 
        var ret=true;
        for(var i=0;i<s.length;i++){
            ret=ret && (s.charCodeAt(i)>=10000);
        }
        return ret; 
    } 

    function showCityList(obj,inputKey,type)
    {
        var flightCityBox=document.getElementById("ShowFlightCityBox");
        var iframe=document.getElementById("ShowFlightCityBoxiFrame");

        var browser=navigator.appName 
        var b_version=navigator.appVersion 
        var version=b_version.split(";"); 
        var trim_Version=version[1].replace(/[ ]/g,"");
        var topstr;
        var leftstr;
        if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE7.0") 
        { 
            leftstr = getPointsPos(obj,"Left");
            topstr = getPointsPos(obj,"Top")+obj.offsetHeight;
        } 
        else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0") 
        { 
            leftstr = getPointsPos(obj,"Left")-5;
            topstr = getPointsPos(obj,"Top")+obj.offsetHeight;
        } 

        if(flightCityBox)
        {
            flightCityBox.style.left=leftstr+"px";
            flightCityBox.style.top=topstr+"px";  
            flightCityBox.style.width=obj.offsetWidth +70;
            flightCityBox.style.overflow="auto";
            flightCityBox.style.height="";
            flightCityBox.innerHTML="";
            flightCityBox.style.display="block";
        }
        else
        {
            flightCityBox = document.createElement("div");
            flightCityBox.setAttribute("id","ShowFlightCityBox");
            flightCityBox.style.position="absolute";
            flightCityBox.style.padding="5px";
            flightCityBox.style.border="solid 1px #f5a85a";
            flightCityBox.style.background="#FFFFFF";
            flightCityBox.style.textAlign="left";
            flightCityBox.style.left=leftstr+"px";
            flightCityBox.style.top=topstr+"px";  
            flightCityBox.style.width=obj.offsetWidth +70;
            flightCityBox.style.zIndex="1000000";
            document.body.appendChild(flightCityBox);
        }

        var inputKeyDiv=document.createElement("div");
        inputKeyDiv.style.cssText="font-size:15px; color:#FF7B00; font-weight:bold; border-bottom-style:dashed ; border-bottom-color:#DDDDDD; border-bottom-width:1px; word-break:break-all; overflow:hidden;";
        inputKeyDiv.innerHTML=inputKey.toLowerCase()+"&nbsp;&nbsp;&nbsp;&nbsp; <span style='color:#707070; font-size:12px;font-weight:normal;'>↑↓选择 </span>";
        flightCityBox.appendChild(inputKeyDiv);

        var cityList=document.createElement("ul");
        cityList.setAttribute("id","ShowFlightCityBoxUl");
        cityList.style.cssText="list-style:none; margin-top:2px; margin-left:0px; ";

        xmlHttpRequest=getXMLHttpRequest();
        xmlHttpRequest.open("GET","/Agent.aspx?inputKey="+inputKey+"&type="+type+"&inputlen="+inputKey.length,true);
        xmlHttpRequest.onreadystatechange=function()
        {    
            if(xmlHttpRequest.readyState == 4)
            {
                if(xmlHttpRequest.status  == 200)
                {
                    var mytable=xmlHttpRequest.responseText;
                    if(inputKey.length>0)
                    {
                        if(mytable!="")
                        {
                            for(var i=0; i< mytable.split('|').length-1; i++ )
                            {
                                var cityName=document.createElement("li");
                                cityName.style.cssText="color:#0055AA; text-align:left;";

                                var cityNameDiv=document.createElement("div");
                                cityNameDiv.setAttribute("id","FlightCityListIndex_"+i);
                                cityNameDiv.style.cssText="text-align:left;height:20px;";
                                if(i==0){cityNameDiv.style.background="#ffed6a";cityNameDiv.selected=true; flightCityListIndex=0;};
                                else {cityNameDiv.selected=false};
                                cityNameDiv.onmouseover=function(){this.style.background='#ffffcb'; this.style.cursor='pointer';  };    
                                cityNameDiv.onmouseleave=function(){this.style.cursor='default'; if(this.selected)this.style.background='#ffed6a';else this.style.background='#FFFFFF'; };
                                cityNameDiv.onclick=function(){ obj.value= this.childNodes[0].innerHTML; document.body.removeChild(document.getElementById("ShowFlightCityBox"));    document.body.removeChild(document.getElementById('ShowFlightCityBoxiFrame'));};
                                cityNameDiv.innerHTML="<span style='float:left;color:#000000; font-size:13px; font-weight:normal; clear:both;'>"+mytable.split('|')[i].split('&')[0]+"</span><span style='float:right; color:#707070; font-size:13px; font-weight:normal;'>"+mytable.split('|')[i].split('&')[1]+"</span>";
                                cityName.appendChild(cityNameDiv);
                                cityList.appendChild(cityName);                                          
                            }
                        }
                        else
                        {
                            var cityName=document.createElement("li");
                            cityName.style.cssText=" text-align:left; color:#707070; font-size:12px;";
                            cityName.innerHTML="对不起,没有找到!";
                            cityList.appendChild(cityName);
                        }  
                    }
                    else
                    {
//                        var cityName=document.createElement("li");
//                        cityName.style.cssText="color:#f5a85a; text-align:left; font-size:14px; font-weight:bold;";
//                        cityName.innerHTML="热门城市";
//                        for(var i=0; i< flightCityList["HOT"].length; i++ )
//                        {
//                            var cityNameDiv=document.createElement("div");
//                            cityNameDiv.setAttribute("id","FlightCityListIndex_"+i);
//                            cityNameDiv.style.cssText="text-align:left;height:20px;";
//                            if(i==0){cityNameDiv.style.background="#ffed6a";cityNameDiv.selected=true; flightCityListIndex=0;};
//                            else {cityNameDiv.selected=false};
//                            cityNameDiv.onmouseover=function(){this.style.background='#ffffcb'; this.style.cursor='pointer';  };    
//                            cityNameDiv.onmouseleave=function(){this.style.cursor='default'; if(this.selected)this.style.background='#ffed6a';else this.style.background='#FFFFFF'; };
//                            cityNameDiv.onclick=function(){ obj.value= this.childNodes[0].innerHTML; document.body.removeChild(document.getElementById("ShowFlightCityBox"));    document.body.removeChild(document.getElementById('ShowFlightCityBoxiFrame'));};
//                            cityNameDiv.innerHTML="<span style='float:left;color:#000000; font-size:13px; font-weight:normal; clear:both;'>"+flightCityList["HOT"][i].split('&')[0]+"</span><span style='float:right; color:#707070; font-size:13px; font-weight:normal;'>"+flightCityList["HOT"][i].split('&')[1]+"</span>";
//                            cityName.appendChild(cityNameDiv);
//                            cityList.appendChild(cityName);                                          
//                        }
                    }
                }
            }
        }
        xmlHttpRequest.send(null);

        flightCityBox.appendChild(cityList);

        if(iframe)
        {
            iframe.style.height=flightCityBox.offsetHeight; 
            iframe.style.width=flightCityBox.offsetWidth;
            iframe.style.top=getPointsPos( flightCityBox,"Top");
            iframe.style.left=getPointsPos( flightCityBox,"Left");
            iframe.style.display="block";
        }
        else
        {
            iframe=document.createElement("iframe");
            iframe.setAttribute("id","ShowFlightCityBoxiFrame");
            iframe.style.position="absolute";
            iframe.style.height=flightCityBox.offsetHeight; 
            iframe.style.width=flightCityBox.offsetWidth;
            iframe.style.top=getPointsPos( flightCityBox,"Top");
            iframe.style.left=getPointsPos( flightCityBox,"Left");
            document.body.appendChild(iframe);	
        }
    } 
 }
 
function CnFlightCityBoxKeyDown(obj)
{
    if(event.keyCode=="40")
    {
        var prev = document.getElementById("FlightCityListIndex_"+flightCityListIndex);
        flightCityListIndex++;
        var selected = document.getElementById("FlightCityListIndex_"+flightCityListIndex);  

        if(prev) {prev.style.background="#FFFFFF";prev.selected=false;}
        if(selected) {selected.style.background="#ffed6a"; selected.selected=true;}
        else{ if(prev){prev.style.background="#ffed6a";prev.selected=true; flightCityListIndex--;}}
    }
    if(event.keyCode=="38")
    {
        var next = document.getElementById("FlightCityListIndex_"+flightCityListIndex);
        flightCityListIndex--;
        var selected = document.getElementById("FlightCityListIndex_"+flightCityListIndex);  

        if(next) {next.style.background="#FFFFFF";next.selected=false;}
        if(selected){ selected.style.background="#ffed6a"; selected.selected=true;  }
        else{ if(next){next.style.background="#ffed6a";next.selected=false;flightCityListIndex++;} }
    }
    if(event.keyCode=="13")
    {
        var selected = document.getElementById("FlightCityListIndex_"+flightCityListIndex);
        if(selected){ obj.value=selected.childNodes[0].innerHTML; document.body.removeChild(document.getElementById("ShowFlightCityBox")); document.body.removeChild(document.getElementById('ShowFlightCityBoxiFrame'));}
    }
    return false;
}
 
document.attachEvent("onmousedown", function()
{ 
    var el=event.srcElement;
    var IsElement=false;
    while(el !=null)
    {
        if(el.id !=null && el.id == "ShowFlightCityBox" )
        {
           IsElement=true;
           break;
        }
        el=el.parentNode;
    }

    if(IsElement==true)return;
    if(document.getElementById("ShowFlightCityBox"))
    {
        document.getElementById("ShowFlightCityBox").style.display="none";
        document.getElementById("ShowFlightCityBoxiFrame").style.display="none";

        if(cnFlightCityCurrentObj==null)return;
        if(cnFlightCityCurrentObj.value.replace(new RegExp("(^[\\s]*)|([\\s]*$)", "g"), "")=="")
        {
            if(cnFlightCityCurrentObj.id=="ddlOrgCity")
		        cnFlightCityCurrentObj.value="北京";
	        else
		        cnFlightCityCurrentObj.value="上海";
        }
    }
});
		
function flightCityBoxInit(id)
{
   var functonName ="cnFlightCityBox('"+id+"');";
   var oldProc = window.onload ? window.onload.toString() : ""; 
   if (oldProc.indexOf("anonymous()") > 0)
   {
      oldProc = oldProc.substring(oldProc.indexOf("{") + 1, oldProc.lastIndexOf("}"));
   }
   oldProc += functonName;
   window.onload = new Function (oldProc);
}