var pos;
var k=0;
var tag=0;
var inputObject;
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}
function createAjaxObj(){
  var httprequest=false
  if (window.XMLHttpRequest)
  { // if Mozilla, Safari etc
    httprequest=new XMLHttpRequest()
    if (httprequest.overrideMimeType)
      httprequest.overrideMimeType('text/xml')
   }
   else if (window.ActiveXObject)
   { // if IE
     try {
       httprequest=new ActiveXObject("Msxml2.XMLHTTP");
     }
     catch (e){
       try{
          httprequest=new ActiveXObject("Microsoft.XMLHTTP");
       }
       catch (e){}
     }
   }
   return httprequest
}
//Our XmlHttpRequest object to get the auto suggest
var searchReq = createAjaxObj();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest(o,tflag) {
	if(o==undefined){
    return ;
    }
	k=0;
	tag=0;
	pos=getPosition(o);
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(inputObject.value);
		searchReq.open("GET", '/AutoSearchKey/KeyXml.aspx?tflag='+tflag+'&Key=' + str+'&x=', true);//+Math.random()
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest')
		var str = searchReq.responseXML;
		str.loadXML(searchReq.responseText);
		var cityinfo = str.getElementsByTagName("city");
		if(cityinfo.length>0)
		{
				
		}
		ss.innerHTML = '';
		for(i=0; i < cityinfo.length; i++)
		{
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var temp=cityinfo[i].getElementsByTagName("name")[0].firstChild.nodeValue;
			var suggest = '<div onmouseover="javascript:suggestOver(this,'+i+');" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(\''+trim(temp)+'\');" ';//this.innerHTML
			suggest += 'class="suggest_link">' + cityinfo[i].getElementsByTagName("name")[0].firstChild.nodeValue+'--'+cityinfo[i].getElementsByTagName("ename")[0].firstChild.nodeValue + '</div>';
			ss.innerHTML += suggest;
		}
		
		if(ss.innerHTML!='')
		{
			ss.innerHTML += '<iframe src="javascript:false" style="position:absolute;visibility:inherit;top:0px;left:0px;width:224px;height:100px;z-index:-1;filter=\'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)\';"></iframe>'
			ss.style.display='';
			ss.style.top=(pos.top-81)+"px";
			ss.style.left=(pos.left+177)+"px";
			ss.style.width="200px";
		}
		else
		{
			ss.style.display='none';
		}

	}
}

//Mouse over function
function suggestOver(div_value,j) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch(value) {
	if(value!="Sorry")
	{
		inputObject.value = value;
	}
	else
	{
		inputObject.value = '';
	}
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('search_suggest').style.display='none';
}
//Clear left space char;
function ltrim(s){
return s.replace( /^\s*/, "");
}
//Clear right space char;
function rtrim(s){
return s.replace( /\s*$/, "");
}
//Clear space char;
function trim(s){
return rtrim(ltrim(s));
}

function   getPosition(obj)   {   
          var   top=102;   
          var   left=-(obj.offsetWidth);  
          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 selectElement()
    {    
		var divObj = document.getElementById('search_suggest');
		var num=divObj.childNodes.length;
        var key=window.event.keyCode
        if(divObj.style.display=="")
        {
            if(key==40)
            {
                //divObj.childNodes[k].style.background="#0080ff";    
                if(tag==0)
                {}
                else
                {                    
                    k++;
                    if(k>=num)
                    {                
                        k=0;                
                    }    
                }        
            }
            if(key==38)
            {
                //divObj.childNodes[k].style.background="#0080ff";
                k--;
                if(k<0)
                {
                    k=num-1;                
                }
            }
            for(var i=0;i<num;i++)
            {    
                if(i==k)
                {                
                    divObj.childNodes[i].style.background="#0080ff";
					//var str = divObj.childNodes[i].innerText.split(" --");
                    //document.getElementById("ArrayCity").value=str[0];
                }
                else
                {
                    divObj.childNodes[i].style.background="";
                    //document.getElementById("key").value=divObj.childNodes[i].innerText;
                }
            }        
        }
        tag=1;
        if(key==13)
        {
            
            if(divObj.style.display=="")
            {
                divObj.style.display="none";
            }
            else
            {
                divObj.style.display="";
            }
        }    
    
    }
	
	function EventKeyUp(obj,tflag)
	{
		inputObject=obj
		if(window.event.keyCode!=40&window.event.keyCode!=38&window.event.keyCode!=13&this.value!='')
		searchSuggest(obj,tflag);	
	}
	
	function HideSearchSuggest()
	{
		var divObj = document.getElementById('search_suggest');
		var InputObj = inputObject;
		if(divObj.childNodes.length>0)
		{
			//InputObj.value=divObj.childNodes[0].innerText.split("--")[0];
		}
		if(InputObj!=null)
		{
		if(InputObj.value=="Sorry")
		{
			inputObject.value = '';
		}
		}
		divObj.style.display="none";
	}