	var suggestions = new Array("abazhure", "aeroporte", "aeroporte sherbimi bagazhe","agjensi Autobuzesh","agjensi Detare","agjensi Doganore", "agjensi Imobiliare","agjensi kembimi valutor" ,"agjensi Lajmesh","agjensi Martesore", "agjensi Promocionesh","agjensi Pune",
"agjensi Publiciteti",
	"agjensi Spedicioni","agjensi qeveritare","agjensi Udhetimesh","aksesore hidraulike","alumini", "alumini e punime","ambasada","arkitekte",
	"arkitektura","arkitektura e studio","argjendari","arme gjahu","artikuj shtepiake","atelie mode","asfalti, shtrimi","ashensore riparime","astrologe","atelie mode","automatizimi","auditim mjedisi","autoshkolla","avokate","avokaterite","avokat i popullit","banka",
	"bashkia e tiranes","bashkite","bare dhe kafene","berbere","betoni","betoni nyje betoni","bime mjeksore","bilardo","birra prodhimi","blegtoria","bojra","bojaxhinj","bricolage","furra buke","butik","butik e aksesore","byrektore","call center","canta","canta dhe aksesore","celsa","cimento prodhimi",
	"divane","depo farmaceutike","dermatologjia","detersive","dizinfektante","distributore te shumices","djathi, prodhimi","dobesimi, klinika dobesimi","doreza","dritare","druri","dyer","duhani","duralumini","dhoma tregtise","dyqan kafshesh","dysheke","elektriciteti","elektrike","elektroshtepiake","elektroshtepiake dhe riparime","elektrike prodhimi","ene kuzhine","energjia elektrike prodhimi","estetika","exchange","farmaci","farmaci veterinare","fast food",
	"ferma bujqesore","fikse zjarri","firma pastrimi","fizioterapia",
	"fonderia e sherbimet","fotografia","fotokopje","frigorifere industriale","fruta e perime","furra pjekjeje","fustane nusesh","galeri arti","piktura","galerite e skulptures","gazeta","gazetat - prodhimi dhe shitja","gazi","gelqerja","germime dheu","gipsi",
	"goma me shumice","gomiste","gjeneratore","gjeoinxhinjeria, gjeologjia","grumbullim hekurishtesh","gurore","hekuri - prodhimi","hekuri dhe punime","hidraulike","hidrocentrale","hidrosanitare","hotele","informacioni","internet provider","kanceleri","kaldaja","kartoleri","kanalizime","karburante","kasa fiskale",
	"kimikatet","kinema","klinika dentare","klinika dermatologjike","klinika mjeksore","klinika veterinare","kimikate","kompani ajrore","kompani detare","kompanite e sigurimeve",",koncensionare","koncensionare motorresh","kondicionere",
	"konfeksione prodhimi","konfeksione shitja me pakice","konsulenca business","konsulenca financiare","konstruksione metalike","skela","kopshte private","kopshte shteterore","korrieret expresse","kozmetika","kristaleri","kurse private",
	"kurse per kompiuter","kurse gjuhesh","kurset e parukerive","kuzhinat","laboratore per materiale ndertimi","letra","lekura - perpunimi","librari","lodrat - prodhimi,shitja me shumice","lodrat - shitja me pakice","lule natyrale","lubrifikante","makina me qera",
	"makina - shitja","makinat komerciale","makinat bujqesore","makineri ndertimi","magazinime dhe sherbime","marketing dhe kerkime tregu","materiale mjeksore","materiale ndertimi","mermeri","mielli","ministri","minerale","mishi","mjeke specialiste","mobilje",
	"mobilje per zyra","mokete","ndertimi","ndertimi - makinat","notere","optika","organizata nderkombetare","organizata joqeveritare","riparime oresh, ore","orkestra dasmash","paisje per hotele","paisje dentare","palestrat sportive","panele diellore","parkete","parukeri","pasticeri","pastrimi kimik",
	"pastrime profesionale","perde","perde dhe peshqire","personal computer","perkthime","perpunim mineralesh","pesticide e kimikate","peshkimi dhe tregtia e peshkut","piceri","pica ekspress","pije freskuese","pije","pjese kembimi","pjese kembimi per makina","pjese kembimi per makineri","pjese kembimi per motorre","plastika","polici private","pompa uji",
	"poligrafike","posta shqiptare","posta e shpejte","produkte pastrimi","promocioni - objekte","qendra akustike","qendra business","qendra dietike","qender dobesimi","qendra kulturore","qendra panairesh","qendra estetike","qendra tregtare","qese letre","qese plastike","radio","radio taxi","real estate","restorante","revista - prodhimi",
	"riparime tapicerie","riparime elektroshtepiake","riparime radio tv","riparime kepucesh","rrobaqepsite","sallone bukurie","servis per makina","servis per makineri germimi","sinjalistika","sigurime","sisteme ngrohje ftohje","sisteme sigurimi","sisteme pompimi","sisteme furnizimi","sisteme shkarkimi ujrash","software","souvenir","stiliste","sporti",
	"studiot e arkitektures","studio grafike","studio modelimi","studio montazh video","studio projektimi","studio stampimi","supermarkete","sherbime per bankete","sherbime funerale","sherbime kalibrimesh","shkollat private 9 vjecare","shkollat private te mesme",
	"shkolla private","shkolla publike","shopping center","shtypshkronja","tapete","teatri","telefonia mobile","telefonia fikse","televizione","tenda dielli","transporti","transporti ajror","transporti publik","transporti i mallrave","transport udhetaresh me taksi","universitete","uji","ulluqe","ushqime",
	"ushqime per kafshe","vaji","vegla muzikore","vegla pune","veshja","veshje sportive","vula","xhami");
	var outp;
	var oldins;
	var posi = -1;
	var words = new Array();
	var input;
	var key;

	function setVisible(visi){
		var x = document.getElementById("shadow");
		var t = document.getElementsByName("fv1")[0];
		x.style.position = 'absolute';
		x.style.top =  (findPosY(t)+3)+"px";
		x.style.left = (findPosX(t)+2)+"px";
		x.style.visibility = visi;
	}

	function init(){
		outp = document.getElementById("output");
		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("fv1")[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("fv1")[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();
		for (var i=0;i<suggestions.length; ++i){
			var j = -1;
			var correct = 1;
			while (correct == 1 && ++j < beginning.length){
				if (suggestions[i].charAt(j) != beginning.charAt(j)) correct = 0;
			}
			if (correct == 1) words[words.length] = suggestions[i];
		}
		return words;
	}
	
	function setColor (_posi, _color, _forg){
		outp.childNodes[_posi].style.background = _color;
		outp.childNodes[_posi].style.color = _forg;
	}
	
	function keygetter(event){
		if (!event && window.event) event = window.event;
		if (event) key = event.keyCode;
		else key = event.which;
	}
		
	function keyHandler(event){
		if (document.getElementById("shadow").style.visibility == "visible"){
		var textfield = document.getElementsByName("fv1")[0];
		if (key == 40){ //Key down
			//alert (words);
			if (words.length > 0 && posi < words.length-1){
				if (posi >=0) setColor(posi, "#fff", "black");
				else input = textfield.value;
				setColor(++posi, "blue", "white");
				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");
					setColor(--posi, "blue", "white");
					textfield.value = outp.childNodes[posi].firstChild.nodeValue;
				}
				else{
					setColor(posi, "#fff", "black");
					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");
	
		this.style.background = "blue";
		this.style.color= "white";
	}
	
	var mouseHandlerOut=function(){
		this.style.background = "white";
		this.style.color= "black";
	}
	
	var mouseClick=function(){
		document.getElementsByName("fv1")[0].value = this.firstChild.nodeValue;
		setVisible("hidden");
		posi = -1;
		oldins = this.firstChild.nodeValue;
	}

