﻿var outp;
	var oldins;
	var posi = -1;
	var words = new Array();
	var input;
	var key;

	function setVisible(visi){
		var x = document.getElementById("search_suggest");
		var t = document.getElementsByName("txtSearch")[0];
		x.style.position = 'absolute';
		//x.style.top =  (findPosY(t)+0)+"px";
		//x.style.left = (findPosX(t)+0)+"px";
		x.style.top =  "25px";
		x.style.left = "0px";
		x.style.visibility = visi;
	}

	function init(){
		outp = document.getElementById("search_suggest");
		window.setInterval("lookAt()", 100);
		setVisible("hidden");
		document.onkeydown = keygetter; //needed for Opera...
		document.onkeyup = keyHandler;
	}

	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){
			curtop += obj.offsetHeight;
			while (obj.offsetParent){
				curtop += obj.offsetTop;
				obj = obj.offsetParent;
			}
		}
		else if (obj.y){
			curtop += obj.y;
			curtop += obj.height;
		}
		return curtop;
	}
	
	function lookAt(){
		var ins = document.getElementsByName("txtSearch")[0].value;
		if (oldins == ins) return;
		else if (posi > -1);
		else if (ins.length > 0){
			words = getWord(ins);
			if (words.length > 0){
				clearOutput();
				for (var i=0;i<words.length; ++i) addWord (words[i]);
				setVisible("visible");
				input = document.getElementsByName("txtSearch")[0].value;
			}
			else{
				setVisible("hidden");
				posi = -1;
			}
		}
		else{
			setVisible("hidden");
			posi = -1;
		}
		oldins = ins;
	}
	
	function addWord(word){
		var sp = document.createElement("div");
		sp.appendChild(document.createTextNode(word));
		sp.onmouseover = mouseHandler;
		sp.onmouseout = mouseHandlerOut;
		sp.onclick = mouseClick;
		outp.appendChild(sp);
	}
	
	function clearOutput(){
		while (outp.hasChildNodes()){
			noten=outp.firstChild;
			outp.removeChild(noten);
		}
		posi = -1;
	}
	
	function getWord(beginning){
		var words = new Array();
		var statesList = document.getElementById("suggest_list");
		var k =0;
		          for(var i=0;i<statesList.options.length;i++)
                    {
                    deger1=statesList.options[i].text;
                    deger1=deger1.toLowerCase();
                    beginning=beginning.toLowerCase();
                            if (deger1.indexOf(beginning)!=-1)
                            {
                               words[words.length] = statesList.options[i].text;
                                k+=1;
                            }
                            if(k==15){
                            break;}
                     }
//                     
                     
		return words;
	}
	
	function setColor (_posi, _color, _forg,_underline){
		outp.childNodes[_posi].style.background = _color;
		outp.childNodes[_posi].style.color = _forg;
		outp.childNodes[_posi].style.textDecoration=_underline;
		outp.childNodes[_posi].style.cursor="hand";
		
	}
	
	function keygetter(event){
		if (!event && window.event) event = window.event;
		if (event) key = event.keyCode;
		else key = event.which;
	}
		
	function keyHandler(event){
	for (var i=0;i<words.length;++i)
			setColor (i, "white", "black","none");
			
		if (document.getElementById("search_suggest").style.visibility == "visible"){
		var textfield = document.getElementsByName("txtSearch")[0];
		if (key == 40){ //Key down
			//alert (words); 
			
			if (words.length > 0 && posi < words.length-1){
				if (posi >=0) setColor(posi, "#fff", "black","none");
				else input = textfield.value;
				//setColor(++posi, "#FE860C", "white","none");
				setColor(++posi, "#fff", "black","underline");
				textfield.value = outp.childNodes[posi].firstChild.nodeValue;
				
			}
		}
		else if (key == 38){ //Key up
			if (words.length > 0 && posi >= 0){
				if (posi >=1){
					setColor(posi, "#fff", "black","none");
					//setColor(--posi, "#FE860C", "white","none");
					setColor(--posi, "#fff", "black","underline");
					textfield.value = outp.childNodes[posi].firstChild.nodeValue;
				}
				else{
					setColor(posi, "#fff", "black","none");
					textfield.value = input;
					textfield.focus();
					posi--;
				}
			}
		}
		else if (key == 27){ // Esc
			textfield.value = input;
			setVisible("hidden");
			posi = -1;
			oldins = input;
		}
		else if (key == 8){ // Backspace
			posi = -1;
			oldins=-1;
		}
		}
	}
	
	var mouseHandler=function(){
		for (var i=0;i<words.length;++i)
			setColor (i, "white", "black","none");
	
		//this.style.background = "blue";
		//this.style.color= "white";
		this.style.textDecoration="underline";
	}
	
	var mouseHandlerOut=function(){  
	
		this.style.background = "white";
		this.style.color= "black";
		this.style.textDecoration="underline";
	}
	
	var mouseClick=function(){
//		document.getElementsByName("txtSearch")[0].value = this.firstChild.nodeValue;
//		setVisible("hidden");
//		posi = -1;
//		oldins = this.firstChild.nodeValue;
		//alert(this.firstChild.nodeValue);
     	
     	
     	TargetLink(this.firstChild.nodeValue);
		
	}
	function TargetLink(str)
	{
			var target_id=0;
		
		target_id=SelectID(str);
		if (target_id!=0)
		{
		window.open('otel_detay.aspx?id='+target_id,'_parent');
		}
		else
		{
                          if (str.indexOf("Otelleri")!=-1)
                            {
                             window.open('otel_sonuc.aspx?suggest_il_ilce='+encodeURIComponent(str.substring(0,str.indexOf("Otelleri")-1)),'_parent');
		                    }
                            else
                            {
                             window.open('otel_sonuc.aspx?oadi='+str,'_parent');
		                    } 
                            
		}

	}
    function SelectID(beginning){
		var id=0;
		var statesList = document.getElementById("suggest_list");
		var k =0;
		          for(var i=0;i<statesList.options.length;i++)
                    {
                    deger1=statesList.options[i].text;
                    deger1=deger1.toLowerCase();
                    beginning=beginning.toLowerCase();
                    
                            if (deger1==beginning)
                            {
                               id = statesList.options[i].value;
                                 break;
                            }
                     }
                     
		return id;
	}
