function getNewXMLHttpRequest() {
      var _req;
      // branch for native XMLHttpRequest object (safari/mozilla)
      if (window.XMLHttpRequest) {
        _req = new XMLHttpRequest();
      }
      // branch for IE/Windows ActiveX version
      else if (window.ActiveXObject) {
        _req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      return _req;
    }


function findPosX(obj) { 
var curleft = 0; 
if (obj.offsetParent) { 
while (obj.offsetParent) { 
curleft += obj.offsetLeft; 
obj = obj.offsetParent; 
} 
} else if (obj.x) 
curleft += obj.x; 

return curleft; 
} 

function findPosY(obj) { 
var curtop = 0; 

if (obj.offsetParent) { 
while (obj.offsetParent) { 
curtop += obj.offsetTop; 
obj = obj.offsetParent; 
} 
} else if (obj.y) 
curtop += obj.y; 

return curtop; 
} 




function parseDest(xmld){
hiliteTd = -1
document.getElementById("autofll").innerHTML = ""
document.getElementById("autofll").style.display = "none"
try{
var elms = xmlDoc.getElementsByTagName("ITEM")
}catch(e){
var elms=new Array();
}
	//alert(elms.lnegth)
//document.title = elms.length + xmld
var tab = document.createElement("TABLE")
//tab.width = "100\%"
for (var i=0;i<elms.length;i++)
{
	var cont = elms[i].getElementsByTagName("engine_name")[0] 
	var Econt = elms[i].getElementsByTagName("city_name")[0] 	
	if (document.all){
	cont = cont.text 
	Econt = Econt.text
	}else{
	cont = cont.textContent  
	Econt = Econt.textContent
	}
//	window.status = xmld + "  -  " +  cont.toLowerCase().substr(0,(xmld.length))
if ((xmld == cont.toLowerCase().substr(0,(xmld.length))) || (xmld == Econt.toLowerCase().substr(0,(xmld.length))))
{
	tab.insertRow(tab.rows.length)
	var td = document.createElement("TD")
	td.className = "mnuAFItem"
	td.onmouseover = function(){
	this.className = "mnuAFItemHL"
	}
	td.onmouseout = function(){
	this.className = "mnuAFItem"
	}
	td.onclick = function(){
	opener.value = this.innerHTML
	document.getElementById("autofll").style.display = "none"
	}
	var tc = ""
	tc = Econt
	td.innerHTML = tc
	tab.rows[(tab.rows.length - 1)].appendChild(td)
//document.title = xmld.length
}
document.getElementById("autofll").appendChild(tab)
if (xmld.length > 1){
	document.getElementById("autofll").style.display = "block"
}else{
	document.getElementById("autofll").style.display = "none"
}
}
document.getElementById("autofll").style.top = findPosY(opener) + opener.offsetHeight + "px"
document.getElementById("autofll").style.width = "90px"//opener.offsetWidth+ "px"
document.getElementById("autofll").style.left = findPosX(opener)+ "px"
//document.getElementById("autofll").style.display = "block"
}


function pullData(typdtxt){
if(typdtxt.length>0){


var url = "/core/PHP/AutoDestination.php?city=" + typdtxt;

      var xmlhttp = getNewXMLHttpRequest();
      xmlhttp.open("GET",url,true);
      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {

xmld = xmlhttp.responseText
if (document.all)
{
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(xmld);
}
else{
var parser=new DOMParser();
 xmlDoc=parser.parseFromString(xmld,"text/xml");
}
		parseDest(typdtxt)
		}
	
}

	xmlhttp.send(null)
	xmlpreFetch = typdtxt
}

}

var typdtxt = ''

function xxx(e){
//var elemen = document.getElementsByName("chcity")[0]

if (document.all){
var elemen = e.srcElement
}else{
var elemen = e.target
}
opener = elemen
var kc = e.keyCode
if (kc == 40){
//alert("down arrow")
hl("+")
return false;
}
if (kc == 38)
{
hl("-")
return false;
}


if (kc == 13)
{
//alert("Enter")
//opener.value = document.getElementById("autofll").getElementsByTagName("TD")[hiliteTd].innerHTML
document.getElementById("autofll").style.display = "none"
//alert("here")
return false;
}


var xpF = xmlpreFetch.length
var neT = elemen.value
neT = neT.toLowerCase()
//window.status = xmlpreFetch + " - " + neT + " - " + neT.substr(0,(xpF)) + " - " + (xmlpreFetch == neT.substr(0,(xpF)))


if ((!(xmlpreFetch == neT.substr(0,(xpF)))) || (xmlpreFetch == ""))
{
pullData(neT)
//window.status = "Fetch from Server"
}
else{
parseDest(neT)
//window.status = "Parse Local"
}



return true;

}


function hl(dir){

var tds = document.getElementById("autofll").getElementsByTagName("TD")
//document.title = tds.length
hiliteTd = hiliteTd * 1
if (tds)
{

		if (dir == "+")
		{
		hiliteTd = hiliteTd + 1
		}
		else{
		hiliteTd = hiliteTd - 1
		}

	if (hiliteTd < 0)
	{
		hiliteTd = tds.length - 1
	}

	if (hiliteTd == tds.length)
	{
		hiliteTd = 0
	}

window.status = hiliteTd
//	document.title = dir + " : " + hiliteTd

for (var i=0;i<tds.length;i++)
{
	tds[i].className = "mnuAFItem"
}

	tds[hiliteTd].className = "mnuAFItemHL"

}
}

var hiliteTd = -1
var xmlpreFetch = ""
var xmlDoc = ""
var opener = ""



var tl = ""

if (document.all)
{
	tl = document.body
}
else{
	tl = window
}


tl.onload = function(){
populate()
var div = document.createElement("DIV");
div.id="autofll";
div.className="mnuDiv"
document.body.appendChild(div)

var x = document.getElementsByTagName("INPUT")

for (var i=0;i<x.length;i++)
{
	if (x[i].getAttribute("rel") == "autoC")
		{
			var inp = x[i]
			var prev = (inp.getAttribute("onkeyup"))


				inp.onkeyup = function(e){
				if (!(e))
				{
				e = window.event
				}
				
				if (prev)
				{
				prev = prev.toString()
				prev = prev.replace("function anonymous()")
				eval(prev)
				}

				xxx(e)

//var david = new Function()

//				prev
		//	e.cancelBubble = true;
		//	e.returnValue = false;
			}
//			alert(prev)




//Part three Ends

                       /* var prev = (inp.getAttribute("onblur"))


                                inp.onblur = function(e){
                                if (!(e))
                                {
                                e = window.event
                                }

                               if (prev)
                                {
                                prev = prev.toString()
                                prev = prev.replace("function anonymous()")
                                eval(prev)
                                }
				//hidAtuofll()
                               dlayhidAtuofll()
                        }*/







//dlayhidAtuofll() Part Three
//*****************************

	//part two

			inp.onkeypress = function(e){
			if (!(e))
			{
			e = window.event
			}

		var kc = e.keyCode
		
		if (kc == 13)
				{
					if ((document.getElementById("autofll").style.display == "block") && (hiliteTd > -1))
					{
						opener.value = document.getElementById("autofll").getElementsByTagName("TD")[hiliteTd].innerHTML
						document.getElementById("autofll").style.display = "none"
						e.cancelBubble = true;
						e.returnValue = false;
						return false;
					}
				}
					
			}







	}
}
}



function dj_eval(s){ 

if (dj_global.execScript){ 

return dj_global.execScript(s, "javascript"); 

} else if (dj_global.eval){ 

return dj_global.eval(s); 

} else { 

return eval(s); 

} 

} 


function hidAtuofll(){
document.getElementById("autofll").style.display = "none"
}


function dlayhidAtuofll(){
window.setTimeout("hidAtuofll()",500)
}


document.write("<style>.mnuAFItem {font-family:arial; font-size:11px}.mnuAFItemHL {font-family:arial; font-size:11px; background:orange}.mnuDiv {position:absolute; border:black solid 1px; background:#EFEFEF; width:200; display:none}</style>")



