/**
Keresőmező osztály:
	cname:			a keresési osztály neve (ut,telep...) (ez az előtagja a használt közös mezők azonosítójának. pl <tr id="this.cname+"sorszam" >...).
	mezoid: 		keresési mező id és név
	mezofelirat:  	a mezőben megjelenő felirat alapállapotban
	mezoclass: 		css class (design)
	scrollid: 		a találatokat tartalmazo div
	suggestid: 		scrollon belüli belső div
	suggesturl:		a lehetőségek lekérdezéséhez használt php elérése
	zoomurl:		a kiválasztás utáni rázoomoláshoz használt php elérése
*/

kezdoie=0;
vegeie=500;
//					  cname, mezoid,      mezofelirat,       mezoclass   scrollid,   suggestid,    suggesturl,                 
//szelvénykereső
utkereso = new Kereso('ut','utkeyword','','utkeyword','utscroll','utsuggest','kereses/suggest.php?tipus=KSZAM&keyword=');
//csomópont kereső
csp1kereso = new Kereso('csp1','csp1keyword','','csp1keyword','csp1scroll','csp1suggest','kereses/suggest.php?tipus=KSZAM&keyword=');
//településkereső
telepkereso = new Kereso('telep','telepkeyword','','telepkeyword','telepscroll','telepsuggest','kereses/suggest.php?tipus=TKOD&keyword=');

function Kereso(name,mezoid,mezofelirat,mezoclass,scrollid,suggestid,suggesturl){           
	this.cname = name;
	this.mezoid = mezoid;
	this.mezofelirat = mezofelirat;
	this.mezoclass = mezoclass;
	this.scrollid = scrollid;
	this.suggestid = suggestid;
	// Php elérések
	this.getFunctionsUrl = suggesturl;
	
	/* mindegyiknek saját kell, mert változók! */
	
	// Elküldött kulcsszó
	this.httpRequestKeyword = "";
	/* Utolsó kulcsszó amit lekérdeztünk  */
	this.userKeyword = "";
	/* Találatok száma*/
	this.suggestions = 0;
	/* Az utolsó találat amivel kitöltöttük a keresőmezőt, ha autocompleted be van kapcsolva */
	this.autocompletedKeyword = "";	
	/* A kiválasztott találat sorszáma*/
	this.position = -1;
	/* A cache objektum. ebbe tároljuk a már lekért kulcsszavakat.*/
	this.oCache = new Object();
	/* Általános hibakód ha nincs visszaküldve hiba.*/
	this.hibaszoveg = '';	

	function createXmlHttpRequestObject() {
		var xmlHttp;
		try {
			xmlHttp = new XMLHttpRequest();
		} 
		catch (e) {							//Létrehozom a tömböt, amiben a vizsgált formátumok vannak.
			var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", 
											"MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", 
											"MSXML2.XMLHTTP", "Microsoft.XMLHTTP");
			
			for (var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++) { 	// mindet kirpóbálom, egyik működik.
				try { 														
					xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
				} 
				catch (e) {
					//ha nem jó, nem történik semmi, megyek a következőre.
				}
			}
		}
		if (!xmlHttp)
			alert("XML ERROR");//alert("Nem készült el az XMLHttpRequest objectum.");
		else 
			return xmlHttp;
	}
	//ezt hívom meg, ennek az értéke lesz a fvtől visszatérő objektum.
	this.xmlHttpGetSuggestions = createXmlHttpRequestObject();

}

//Ezek az állandók minden Kereso típusu osztályban elérhetők lesznek. (csak állandókat szabad idevenni)!

/* Maximálisan kiírható találatok száma */
Kereso.prototype.suggestionMaxLength = 20;

/* Le - fel nyíl figyelése */
Kereso.prototype.isKeyUpDownPressed = false;

/* Timeout figyelése ??? hova kell ??? */
Kereso.prototype.timeoutId = -1;

/* Megjelenítendő min és max találat. */
Kereso.prototype.minVisiblePosition = 0;
Kereso.prototype.maxVisiblePosition = 20;

/* Ha true, kiírja a hibaüzeneteket. */
Kereso.prototype.debugMode = true;

//ha rákattintok, törölje ki ami benne volt és keresse le az összes lehetőséget. Csukja be és tiltsa le a többi mezőt.
Kereso.prototype.keywordAllClick = function (){

		var oKeyword = document.getElementById(this.mezoid);
		oKeyword.value = "";
		this.hideSuggestions();
		this.userKeyword="";
		this.httpRequestKeyword="";
		this.autocompletedKeyword = "";
		
		closeAllScroll('ketszer');		//mindent becsuk
		clearAllKeyword(this.cname);	//mindent töröl
		
	if(varakozas('kereses','','','WAITO')){		
		//mindent lekér
		this.getAllSuggestions();		//lekéri az összeset
	}
}
// belekatt az inputmezőbe
Kereso.prototype.keywordClick = function (){
//	this.hideSuggestions();	
	closeAllScroll(this.cname);

}
//ie ben lapozás 100 találatonként
Kereso.prototype.Lapozas = function (kezdo){
	kezdoie=kezdo;
	vegeie= parseInt(kezdo)+500;
	this.keywordAllClick();
}

/* Cache be belepakoljuk a kulcsszóhoz tartozó összes találatot */
Kereso.prototype.addToCache = function(keyword, values){
	this.oCache[keyword] = new Array();
	for(i=0; i<values.length; i++)								
		this.oCache[keyword][i] = values[i];
}

/* Kulcsszó ellenőrzése cache ből */
Kereso.prototype.checkCache = function(keyword){
	if(this.oCache[keyword])									//Ha már létezik a cacheben, sima true val visszatér.
		return true;														
//alert('cacheből kiszedi az értékeket. tudja a classsnevet? név: '+this.cname);

	if(keyword != "-ALL-"){
		for(i=keyword.length-2; i>=0; i--){							//Megnézzük visszafelé lépkedve van e találat, amit majd szűkíteni lehet
			var currentKeyword = keyword.substring(0, i+1);
			if(this.oCache[currentKeyword]){						//Ha így van találat         
//alert('ha van benne találat: '+currentKeyword);
				var cacheResults = this.oCache[currentKeyword];		//Kiszedem a cache ből a tömböt és beírom ide			
				var keywordResults = new Array();
				var keywordResultsSize = 0;            
	
				for(j=0;j<cacheResults.length;j++){					//A cache ből kiszedett tömböt végignézem, hátha vannak benne jó értékek

  			var varid = cacheResults[j].split(";");	  
  			if(this.cname == 'ut' || this.cname == 'csp1')				//Útnál az útszámot írom be, tehát a kódot
  						var varnev = varid[0].split("=")[1].toLowerCase();	
  			else if(this.cname == 'telep') 								//Településnél a nevet írom be, tehát a leírást
  			var varnev = varid[1].split("=")[1].toLowerCase();		
  				
  			if (varnev.indexOf(keyword.toLowerCase()) == 0) {
  				keywordResults[keywordResultsSize++] = cacheResults[j]; //A jó találatot beírom.
  			}

				}      
				this.addToCache(keyword, keywordResults);   		//visszaírom a találatot a cache be, az új kulcsszó tömbbe   
				return true;  
			}
		}
		if(this.oCache["-ALL-"]){								// ha létezik az össze lekérdezés cachben, akkor már nem kell lekérdezni, innen kiszedem.
			var cacheResults = this.oCache["-ALL-"];				
			var keywordResults = new Array();
			var keywordResultsSize = 0;            
//alert('ha már volt all: '+keyword);
			for(j=0;j<cacheResults.length;j++){					
				var varid = cacheResults[j].split(";");	  
				if(this.cname == 'ut' || this.cname == 'csp1')			
		  			var varnev = varid[0].split("=")[1].toLowerCase();		
		  		else if(this.cname == 'telep') 							
					var varnev = varid[1].split("=")[1].toLowerCase();		
					
				if (varnev.indexOf(keyword.toLowerCase()) == 0) {
					keywordResults[keywordResultsSize++] = cacheResults[j]; 
				}
			}      
			this.addToCache(keyword, keywordResults);   		//visszaírom a találatot a cache be, az új kulcsszó tömbbe   
			return true;  
		}  					
	}
	else{
		if(this.oCache["-ALL-"])
			return true;
	}
	return false;												// Ha nincs találat
}

/* Összes találat lekérése */
Kereso.prototype.getAllSuggestions = function(){
//alert('új rész, all suggestion.');
	var keyword = "";
	var isInCache = this.checkCache("-ALL-");				//Cache ellenőrzése
	if(isInCache){                					
//alert('cache ből az új keyword, plusz kiírás '+keyword);		
		this.httpRequestKeyword=keyword;					
		this.userKeyword=keyword;     
		this.displayResults("-ALL-", this.oCache["-ALL-"]);   //A cache ből kiírom táblába az értékeket.           
	}
	else{
		if(this.xmlHttpGetSuggestions){ 	
			try{ 									/* Ha nincs folyamatban kérés */        
				if (this.xmlHttpGetSuggestions.readyState == 4 || this.xmlHttpGetSuggestions.readyState == 0){    
					changeCursorWait();
					this.httpRequestKeyword = "";
					this.userKeyword = "";
					// új kérés küldése
//alert(this.cname+' sallalala2: '+this.xmlHttpGetSuggestions);	

					if (this.cname == 'ut') {						//ha utkereso class
						this.xmlHttpGetSuggestions.open("GET", this.getFunctionsUrl + this.encode(keyword), true);		
						this.xmlHttpGetSuggestions.onreadystatechange = this.handleGettingSuggestionsUt;
					} 
					else if (this.cname == 'telep') { 				//ha telepkereso class
						this.xmlHttpGetSuggestions.open("GET", this.getFunctionsUrl + this.encode(keyword), true);		
						this.xmlHttpGetSuggestions.onreadystatechange = this.handleGettingSuggestionsTelep;
					}
					else if (this.cname == 'csp1') {						//ha csomópont kereső 1. része
						this.xmlHttpGetSuggestions.open("GET", this.getFunctionsUrl + this.encode(keyword), true);		
						this.xmlHttpGetSuggestions.onreadystatechange = this.handleGettingSuggestionsCsp1;
					} 
					this.xmlHttpGetSuggestions.send(null);
				}        
				else{	  							/* Ha még nem fejeződött be egy előző kérés */       
					this.userKeyword = keyword;			//Átállítjuk a kulcsszót az új kérésre	
				}
			}
			catch(e){
				this.displayError(deferrormessage+":\n" + e.toString());
			}
		}
		
	}
}
/* A találatok lekérése */
Kereso.prototype.getSuggestions= function(keyword){  
	if(keyword !='' && !this.isKeyUpDownPressed){			//Ha nem üres és nem le - fel nyíl volt lenyomva, keresés	
//alert('nemüres és nem le föl gomb.');
		var isInCache = this.checkCache(keyword);				//Cache ellenőrzése
		if(isInCache){                					
//alert('cache ből az új keyword, plusz kiírás '+keyword);		
			this.httpRequestKeyword=keyword;					
			this.userKeyword=keyword;     
			this.displayResults(keyword, this.oCache[keyword]);   //A cache ből kiírom táblába az értékeket.           
		}
		else{    										//Ha nem volt a cache ben, Ajax...
			if(this.xmlHttpGetSuggestions){ 	
				try{ 									/* Ha nincs folyamatban kérés */        
					if (this.xmlHttpGetSuggestions.readyState == 4 || this.xmlHttpGetSuggestions.readyState == 0){   
						changeCursorWait();
						this.httpRequestKeyword = keyword;
						this.userKeyword = keyword;
						// új kérés küldése
//alert(this.cname+' sallalala2: '+this.xmlHttpGetSuggestions);	

						if (this.cname == 'ut') {						//ha utkereso class
							this.xmlHttpGetSuggestions.open("GET", this.getFunctionsUrl + this.encode(keyword), true);		
							this.xmlHttpGetSuggestions.onreadystatechange = this.handleGettingSuggestionsUt;
						} 
						else if (this.cname == 'telep') { 				//ha telepkereso class
							this.xmlHttpGetSuggestions.open("GET", this.getFunctionsUrl + this.encode(keyword), true);		
							this.xmlHttpGetSuggestions.onreadystatechange = this.handleGettingSuggestionsTelep;
						}
						else if (this.cname == 'csp1') {						//ha csomópont kereső 1. része
							this.xmlHttpGetSuggestions.open("GET", this.getFunctionsUrl + this.encode(keyword), true);		
							this.xmlHttpGetSuggestions.onreadystatechange = this.handleGettingSuggestionsCsp1;
						} 
						this.xmlHttpGetSuggestions.send(null);
					}        
					else{	  							/* Ha még nem fejeződött be egy előző kérés */       
						this.userKeyword = keyword;			//Átállítjuk a kulcsszót az új kérésre	
					}
				}
				catch(e){
					this.displayError(deferrormessage+":\n" + e.toString());
				}
			}
		}    
	}
	else{
/////		
//alert('üres tehát kitörlöm a memóriából az utolsó keywordot.');
/////
		this.httpRequestKeyword = '';
		this.userKeyword = '';
	}
}

/*XML válasz beírása tömbbe*/
Kereso.prototype.xmlToArray = function(resultsXml){					//A PHP XML válaszát tömbbe írjuk
	var resultsArray= new Array();  
	for(i=0;i<resultsXml.length;i++)								//végiglépkedünk az XML válaszon
		resultsArray[i]=resultsXml.item(i).firstChild.data;
	return resultsArray;
	
	document.body.style.cursor='default';
}

/** Ajax válasz feldolgozása, minden classnak külön van név szerint!  
 * 
 * Mindegyiknek külön kell!
 * 
 */
Kereso.prototype.handleGettingSuggestionsUt = function(){
	if (utkereso.xmlHttpGetSuggestions.readyState == 4) {
		if (utkereso.xmlHttpGetSuggestions.status == 200) {    	// Ha rendben visszajött a válasz
			try {
				utkereso.updateSuggestions();					// A válasz feldolgozása 
			} 
			catch (e) { 								// Ha hiba volt a küldés közben     
//////
//alert('ajaxból visszajött, de valami nem jó.');
//////
				utkereso.displayError(e.toString());				
			}
   		} 
   		else
     		utkereso.displayError(deferrormessage+":\n" + utkereso.xmlHttpGetSuggestions.statusText);     
	}
}
Kereso.prototype.handleGettingSuggestionsTelep = function(){	
	if (telepkereso.xmlHttpGetSuggestions.readyState == 4) {
		if (telepkereso.xmlHttpGetSuggestions.status == 200) {    	// Ha rendben visszajött a válasz
			try {
				telepkereso.updateSuggestions();					// A válasz feldolgozása 
			} 
			catch (e) { 								// Ha hiba volt a küldés közben     
//////
//alert('ajaxból visszajött, de valami nem jó.');
//////
				telepkereso.displayError(e.toString());
			}
   		} 
    	else
     		telepkereso.displayError(deferrormessage+":\n" + telepkereso.xmlHttpGetSuggestions.statusText);     
	}
}
Kereso.prototype.handleGettingSuggestionsCsp1 = function(){
	if (csp1kereso.xmlHttpGetSuggestions.readyState == 4) {
		if (csp1kereso.xmlHttpGetSuggestions.status == 200) {    	// Ha rendben visszajött a válasz
			try {
				csp1kereso.updateSuggestions();					// A válasz feldolgozása 
			} 
			catch (e) { 								// Ha hiba volt a küldés közben     
//////
//alert('ajaxból visszajött, de valami nem jó.');
//////
				csp1kereso.displayError(e.toString());
			}
   		} 
   		else
     		csp1kereso.displayError(deferrormessage+":\n" + csp1kereso.xmlHttpGetSuggestions.statusText);     
	}
}

/* A válasz XML feldolgozása */
Kereso.prototype.updateSuggestions = function(){
	var response = this.xmlHttpGetSuggestions.responseText;					//Válasz text
//alert('updateSuggestions / xmlHttpGetSuggestions.responseText: '+response);

	response = this.xmlHttpGetSuggestions.responseXML.documentElement;		//Kiszedem az XML részt

  this.hibaszoveg = this.xmlToArray(response.getElementsByTagName("hiba"));
//    alert('hibaszoveg keresoclass: '+this.hibaszoveg);

	var nameArray = new Array(); 	
	if(response.childNodes.length >1){
		nameArray= this.xmlToArray(response.getElementsByTagName("res"));   //kiszedjük tömbbe a válaszokat   		
	}
	else{
		nameArray = Array();
	}
	
//alert('378. sor keresoclass: találat: '+nameArray.length);
//alert(nameArray[0]);
	
	if (this.httpRequestKeyword == this.userKeyword) { //Ha még mindig ezt keresi, megjelenítem az eredményt
//alert('még ezt keresi, megjelenítés');
		this.displayResults(this.httpRequestKeyword, nameArray);
	}
	else { //Ha már nem ezt keresi
//alert('már nem ezt keresi, kihagyom a megjelenítést');
		this.addToCache(this.httpRequestKeyword, nameArray); //Cache be rakom a választ, de nem jelenítem meg mert már mást keres
	}
}

/* Találatok kiírása */
Kereso.prototype.displayResults = function(keyword, results_array){
//alert('bejöttünk a display resultba. classnév: '+this.cname);
	var keyword = keyword;	
	if(keyword == '')
		var keyword = "-ALL-";
		
	var div = "<table>";
	if (!this.oCache[keyword] && keyword || this.oCache[keyword] == 'undefined') {	//Ha még nincs a cache ben, beírom
		this.addToCache(keyword, results_array);
	}
	if(results_array.length == 0){										//Ha üres a tömb, nincs találat 
		div += "<tr><td>"+this.hibaszoveg+"</td></tr>";			   
		hasResults = false;												//Flag átírása
		suggestions = 0;												//Találatok száma
	}
	else{	
	    position = -1;													//Az első találat lesz a kiválasztott
	    this.isKeyUpDownPressed = false;								//A kapcsolót kikapcsolom.
	    hasResults = true;												//Van találat
	    suggestions = this.oCache[keyword].length;						//Találatok száma

	    for (var i = 0; i < this.oCache[keyword].length; i++) { //Találatok kiírása soronként
/*			if (ie == 1) {
				if (i < kezdoie) {
					udiv = '<tr id="tr' + this.cname + i + '" onclick=\'' + this.cname + 'kereso.Lapozas("' + (kezdoie - 100) + '");\'>';
					udiv += '<td align="left"><a>előző 100 találat</a></td></tr>';
					div = div + udiv;
					i = kezdoie;
				}
				if (i == vegeie) {
					udiv = '<tr id="tr' + this.cname + i + '" onclick=\'alert("váááááá");' + this.cname + 'kereso.Lapozas("' + vegeie + '");\'>';
					udiv += '<td align="left"><a>következő 100 találat</a></td></tr>';
					div = div + udiv;
					i = (this.oCache[keyword].length);
				}
			}
*/			if (i < this.oCache[keyword].length) {
				var valasz = this.oCache[keyword][i].split(";");
				var varid = valasz[0].split("=")[1];
				if (this.cname == 'ut' || this.cname == 'csp1') 
					var varnev = valasz[0].split("=")[1]; //ez itt ha a kód kell .toLowerCase(); kiszedve
				else 
					if (this.cname == 'telep') 
						var varnev = valasz[1].split("=")[1]; //ez itt ha a kódleírás kell .toLowerCase(); kiszedve
				if (valasz[2].split("=")[1] != '') {
					var xcmin = valasz[2].split("=")[1];
					var ycmin = valasz[3].split("=")[1];
					var xcmax = valasz[4].split("=")[1];
					var ycmax = valasz[5].split("=")[1];
				}
				else {
					var xcmin = '';
					var ycmin = '';
					var xcmax = '';
					var ycmax = '';
				}
				if (this.cname == 'ut') {
					div += '<tr id="tr' + this.cname + i + '" ' +
					' onclick=\'' +
					this.cname +
					'kereso.updateKeywordVal("' +
					varnev +
					'");if(' +
					xcmin +
					'!=""){ zoomToCoord(' +
					xcmin +
					',' +
					ycmin +
					',' +
					xcmax +
					',' +
					ycmax +
					',"wgs");};kmkeresoplusz.keywordClick();  \' ' +
					' onmouseover=\'' +
					this.cname +
					'kereso.handleOnMouseOver(this);\' ' +
					' onmouseout=\'' +
					this.cname +
					'kereso.handleOnMouseOut(this);\' >';
				}
				else 
					if (this.cname == 'csp1') {
						div += '<tr id="tr' + this.cname + i + '" ' +
						' onclick=\'' +
						this.cname +
						'kereso.updateKeywordVal("' +
						varnev +
						'");if(' +
						xcmin +
						'!=""){ zoomToCoord(' +
						xcmin +
						',' +
						ycmin +
						',' +
						xcmax +
						',' +
						ycmax +
						',"wgs");};csp2keresoplusz.keywordClick();  \' ' +
						' onmouseover=\'' +
						this.cname +
						'kereso.handleOnMouseOver(this);\' ' +
						' onmouseout=\'' +
						this.cname +
						'kereso.handleOnMouseOut(this);\' >';
					}
					else {
						div += '<tr id="tr' + this.cname + i + '" '   // +' onclick=\''+this.cname+'kereso.getSelectedCoord('+varid+');\' '
						+
						' onclick=\'' +
						this.cname +
						'kereso.updateKeywordVal("' +
						varnev +
						'");if(' +
						xcmin +
						'!=""){ zoomToCoord(' +
						xcmin +
						',' +
						ycmin +
						',' +
						xcmax +
						',' +
						ycmax +
						',"wgs");};pluszegykeres();\' ' +
						' onmouseover=\'' +
						this.cname +
						'kereso.handleOnMouseOver(this);\' ' +
						' onmouseout=\'' +
						this.cname +
						'kereso.handleOnMouseOut(this);\' >';
						
					}
				
				if (this.cname == 'telep') {
					varnev = varnev.charAt(0).toUpperCase() + varnev.slice(1);
				}
				
				if (keyword == "-ALL-") {
					div += '<td align="left"><a id="a' +i+'">' + varnev + '</a></td></tr>';
				}
				else {
					if (varnev.length <= this.suggestionMaxLength) { //Vastagon írjuk ki a beírt kulcsszó részt	             
						div += '<td align="left"><a id="a' +i+'"><b>' + varnev.substring(0, this.httpRequestKeyword.length) + '</b>' +
						varnev.substring(this.httpRequestKeyword.length, varnev.length) +
						'</a></td></tr>';
					}
					else {
						if (this.httpRequestKeyword.length < this.suggestionMaxLength) {
							div += '<td align="left"><a id="a' +i+'"><b>' + varnev.substring(0, this.httpRequestKeyword.length) + '</b>' +
							varnev.substring(this.httpRequestKeyword.length, this.suggestionMaxLength) +
							'</a></td></tr>';
						}
						else {
							div += '<td align="left"><a id="a' +i+'"><b>' + varnev.substring(0, this.suggestionMaxLength) + '</b></a></td></tr>';
						}
					}
				}
			}
		}	
	} 
  div += "</table>";
	
	if(varnev != keyword){	
	  var oSuggest = document.getElementById(this.suggestid);  						//létrehozza a suggest objectet
	  var oScroll = document.getElementById(this.scrollid);							//létrehozza a scroll objectet
	  oScroll.scrollTop = 0;														//a scroll tetejére ugrik

	  oSuggest.innerHTML = div;														//Felülírom a suggestet
	  oScroll.style.display = "block";
	  
	  if(oSuggest.style.display == "none")											//megjelenítem, ha még nem volt. régen ez nem kellett!
	  	oSuggest.style.display = "block"
	doResize();

 		if(results_array.length > 0)		//Ha volt találat, kiírjuk a kulcsszót
    		this.autocompleteKeyword(); 
	}	
	else{	//egyből odaugrik és megjeleníti.
//alert('csak 1 maradhat! :) ');
 		if(this.cname == 'ut' || this.cname == 'csp1')
		  		var varnev = valasz[0].split("=")[1];		//ez itt ha a kód kell
		  else if(this.cname == 'telep') 
				var varnev = valasz[1].split("=")[1];		//ez itt ha a kódleírás kell
				
		if(valasz[2].split("=")[1] != ''){
		  	var xcmin = valasz[2].split("=")[1];
			var ycmin = valasz[3].split("=")[1];
			var xcmax = valasz[4].split("=")[1];
			var ycmax = valasz[5].split("=")[1];
		  }
		  else{
			var xcmin =''; var ycmin =''; var xcmax =''; var ycmax ='';
		  }
		  
		  if(xcmin !=""){ 
				zoomToCoord(xcmin,ycmin,xcmax,ycmax,"wgs");
			}
			
		  if(this.cname == 'ut' ){
//			kmkeresoplusz.keywordAllClick();
//alert('ut '+document.getElementById('kmkeyword').className);
			document.getElementById('kmkeyword').className="keyword";
			document.getElementById('kmkeyword').disabled=false;
			document.getElementById('kmkeyword').focus();
		  }
	  	  else if (this.cname == 'csp1'){
//			csp2keresoplusz.keywordAllClick();
			document.getElementById('csp2keyword').className="keyword";
			document.getElementById('csp2keyword').disabled=false;
			document.getElementById('csp2keyword').focus();
	  	  }
		this.hideSuggestions();
	}
	changeCursorDef();
	varakozasVege('kereses');
}

/* ha változott a beírás */
Kereso.prototype.checkForChanges = function(e){
	this.handleKeyUp(e);
	var keyword = document.getElementById(this.mezoid).value;	//lekérem az értéket
	if(keyword == ""){														//ha üres, mindent törlök.
//alert('üres ezért mindent törlök');
    	this.hideSuggestions();
    	this.userKeyword="";
    	this.httpRequestKeyword="";
		this.autocompletedKeyword = "";
		closeAllScroll(this.cname);	
		clearAllKeyword(this.cname);
	}																		//ha változott, új suggestiont keresek
	else if((this.userKeyword != keyword) /*&& (autocompletedKeyword != keyword)*/ && (!this.isKeyUpDownPressed)){
//alert('váltorás, újat keresek keyword: '+keyword);
		closeAllScroll(this.cname);		//mindent becsuk
		clearAllKeyword(this.cname);	//mindent töröl
		this.getSuggestions(keyword);
	}		
}

/* Lenyomott billentyű */
Kereso.prototype.handleKeyUp = function(e){
	e = (!e) ? window.event : e;

	target = (!e.target) ? e.srcElement : e.target;
	if (target.nodeType == 3) 
		target = target.parentNode;
		
	//A lenyomott gomb kódja	
	code = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
	
	if (code != 9 && code != 13){
		this.isKeyUpDownPressed = false;  		
	}
	if (e.type == "keyup") { //Ha keyup volt, akkor megvizsgálom 
			this.isKeyUpDownPressed = false;
	}
}

/* a keyword átírása a táblázatból kiválasztott értékkel */
Kereso.prototype.updateKeywordVal = function(varnev){
	var oKeyword = document.getElementById(this.mezoid);
	if(this.cname == 'telep'){
		varnev = varnev.charAt(0).toUpperCase() + varnev.slice(1);
	}
	oKeyword.value = varnev;
	this.hideSuggestions();
}

/* Innen kellenek majd a this.cname val kiegészített id-k!!! */
/* deselect all */
Kereso.prototype.deselectAll = function(){ 
if(ie != 1){
  for(i=0; i<suggestions; i++){
    var oCrtTr = document.getElementById("tr" +this.cname+ i);
    oCrtTr.className = "";    
  }
}
}

/* Ha az egér a találatok fölé ér */
Kereso.prototype.handleOnMouseOver = function(oTr){
if(ie != 1){
  this.deselectAll();  
  oTr.className = "highlightrow";  
  position = oTr.id.substring(2, oTr.id.length);
}
}

/* Ha az egér kikerül a találatok fölül */
Kereso.prototype.handleOnMouseOut = function(oTr){
if(ie != 1){
  oTr.className = "";   
  position = -1;
}
}

/* stringet vizsgálja */
Kereso.prototype.encode = function(uri){
  if (encodeURIComponent) 
    return encodeURIComponent(uri);

  if (escape) 
    return escape(uri);
}

/* Elrejti a találatok div et */
Kereso.prototype.hideSuggestions = function(){
  var oScroll = document.getElementById(this.suggestid);
  oScroll.style.display = "none";  
}


/* function that selects a range in the text object passed as parameter */
Kereso.prototype.selectRange = function(oText, start, length)
{  
  // check to see if in IE or FF
  if (oText.createTextRange) 
  {
    //IE
    var oRange = oText.createTextRange(); 
    oRange.moveStart("character", start); 
    oRange.moveEnd("character", length - oText.value.length); 
    oRange.select();
 
  }
  else 
    // FF
    if (oText.setSelectionRange) 
    {
      oText.setSelectionRange(start, length);
    } 
  oText.focus(); 
}

/* function that autocompletes the typed keyword*/
Kereso.prototype.autocompleteKeyword = function(){
  var oKeyword = document.getElementById(this.mezoid);					//kulcsszó mező
  position=0;															//nincs kiválasztott mező
//  deselectAll();														//minden találatra deselect
 
  document.getElementById("tr"+this.cname+"0").className="highlightrow";  			//A kiválasztott kijelölése
//  updateKeywordValue(document.getElementById("tr0"));  					//A kulcsszóba beírni a kiválasztottat
  // apply the type-ahead style	???
//  selectRange(oKeyword,httpRequestKeyword.length,oKeyword.value.length);  
  // set the autocompleted word to the keyword's value	???
  this.autocompletedKeyword=oKeyword.value;
 
}

/* Hiba kiírása */
Kereso.prototype.displayError = function(message){ //Ha debug true, akkor többet ír ki. Ez nagyon jó. :)
  alert("Hiba! "+
        (this.debugMode ? "\n" + message : ""));
}

/*	textbox cursor pozíció.
<form>
<input type="text" onkeyup="s(this)" onclick="s(this)">
<input type="text" name="position">
</form>

<script type="text/javascript">
function s(el){
var sel, rng, r2, i=-1;

if(typeof el.selectionStart=="number") {
i=el.selectionStart;
} else if(document.selection && el.createTextRange) {
sel=document.selection;
if(sel){
r2=sel.createRange();
rng=el.createTextRange();
rng.setEndPoint("EndToStart", r2);
i=rng.text.length;
}
} else {
el.onkeyup=null;
el.onclick=null;
}

el.form.elements["position"].value=i;
}
</script>

*/
