  
 
whistlerSelect  = function(objectName,worker,len,maxr) {


	document.write("<div style=\"position:absolute;display:none;height\" id=\""+objectName+"Holder\" ><select id=\""+objectName+"Body\"></select></div>");
	var own = this;
	this.velikost =0;
   	this.curIndex = 0;
   	this.divIndex=0;
	this.objectNameWork="";
	this.objectNameWork = objectName;
	this.naSeznamu = 0;
	this.worker = worker;
	this.len = len;
	this.maxr = maxr;
	this.isKeyDown = false;

 	this.getName = function() {
		return objectNameWork;
	}
		
	this.vyhledejJmena = function () {
		if (xObject(own.objectNameWork+"Value").value.length >= (own.len) ) {
			request='s='+xObject(own.objectNameWork+"Value").value+'&maxr='+own.maxr;
			if (!send_httprequest(own.zpracujZmenuStavu, 'POST', own.worker, request)){return false;}
		} else {
			own.vymazJmena();
		}
      }

	this.zpracujZmenuStavu = function(xmlhttp) {
		if (isRequestOk (xmlhttp)){
			var jmena = xmlhttp.responseXML.getElementsByTagName("result");
			own.nastavJmena(jmena);
		} else {
			own.vymazJmena();
		}
	}
	  

	 this.vymazJmena = function() {
		own.velikost=0;
		xObject(own.objectNameWork+"Holder").style.display = 'none';
		var velikost = xObject(own.objectNameWork+"Body").childNodes.length;
		for (var i = velikost - 1; i >= 0 ; i--) {
			xObject(own.objectNameWork+"Body").removeChild(xObject(own.objectNameWork+"Body").childNodes[i]);
		}
			xObject(own.objectNameWork+"Holder").style.border = "none";
	}
	  
	  

	this.nastavJmena = function (jmena) {
		own.curIndex=0;
		own.divIndex=0;
		own.vymazJmena();
		own.velikost = jmena.length;
		own.divIndex = own.velikost;
		own.nastavUmisteni();
		var rada, polozka, txtUzel;
		var delka=10;
		if (own.velikost>10) {
			delka=10;
		} else {
			delka=own.velikost;
		}
		
		if (delka==1) {delka=2;}
		xObject(own.objectNameWork+"Body").size=delka;
		if (own.velikost>0) {
			for (var i = 0; i < own.velikost; i++) {
				var dalsiUzel = jmena[i].firstChild.data;
				polozka = document.createElement("option");
				polozka.value=dalsiUzel;
				polozka.text=dalsiUzel;

			try {
			    xObject(own.objectNameWork+"Body").add(polozka, null); // standards compliant; doesn't work in IE \n\n
			 }
			catch(ex) { 
   				xObject(own.objectNameWork+"Body").add(polozka); 
			} 



			}
			xObject(own.objectNameWork+"Holder").style.display = 'block';
		}
	}

	this.nastavUmisteni = function() {
		var levy = own.vypoctiUmisteniLevy(xObject(own.objectNameWork+"Value"));
		var konec = xObject(own.objectNameWork+"Value").offsetWidth;
		var horni = own.vypoctiUmisteniHorni(xObject(own.objectNameWork+"Value")) + xObject(own.objectNameWork+"Value").offsetHeight;
		xObject(own.objectNameWork+"Holder").style.left = levy + "px";
		xObject(own.objectNameWork+"Holder").style.top = horni + "px";
		xObject(own.objectNameWork+"Body").style.width = konec + "px";
	}

	this.vypoctiUmisteniLevy = function (pole) {
		return own.vypoctiUmisteni(pole, "offsetLeft");
	}

	this.vypoctiUmisteniHorni = function (pole) {
		return own.vypoctiUmisteni(pole, "offsetTop");
	}
        
	this.vypoctiUmisteni = function (pole, atribut)  {
		var umisteni = 0;
		while(pole) {
			umisteni += pole[atribut];
			pole = pole.offsetParent;
		}
        return umisteni;
	}

	this.vyplnJmeno = function (polozka) {
		xObject(own.objectNameWork+"Value").value = polozka;
		own.vymazJmena();
		xObject(this.objectNameWork+"Value").focus();
	}	 

	//xObject(this.objectNameWork+"Value").onblur = function() {
		//if (own.naSeznamu==0) {own.vymazJmena();}
	//}
	

	xObject(own.objectNameWork+"Value").onkeydown = function (event) {
		var evenW = event;
		own.handleKeyDownM(evenW);
	}
	
	xObject(own.objectNameWork+"Value").onkeyup = function (event) {
		var evenW = event;
		own.handleKeyUpM(evenW);
	}


	this.handleKeyUpM  = function (e) {
		e = (!e) ? window.event : e;
		target = (!e.target) ? e.srcElement : e.target;
		if (target.nodeType == 3)  {target = target.parentNode;}
		code = (e.charCode) ? e.charCode : 	((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
		if (code>40 |code==8 ) {
			own.vyhledejJmena();
		}
	}
	
	this.handleKeyDownM  = function (e) {
		e = (!e) ? window.event : e;
		target = (!e.target) ? e.srcElement : e.target;
		if (target.nodeType == 3)  {target = target.parentNode;}
		code = (e.charCode) ? e.charCode : 	((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
	  //alert (code); 
		switch (code) {
		case 40:
			
			if (own.velikost>0) {
				 xObject(own.objectNameWork+"Body").focus();
			}
			 break;

		case 27:
				own.vymazJmena();
			break;

			
		}   
	}
	
	xObject(own.objectNameWork+"Body").onkeydown = function (event) {
		var evenW = event;
		own.handleKeyDownB(evenW);
	}
	
	this.handleKeyDownB  = function (e) {
		e = (!e) ? window.event : e;
		target = (!e.target) ? e.srcElement : e.target;
		if (target.nodeType == 3)  {target = target.parentNode;}
		code = (e.charCode) ? e.charCode : 	((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
	   	
	   	
		switch (code) {
		case 27:
			own.vymazJmena();
			xObject(own.objectNameWork+"Value").focus();
			break;
		

		case 8:
			own.vymazJmena();
			xObject(own.objectNameWork+"Value").focus();
			break;

		}   
	}
	
	xObject(own.objectNameWork+"Body").ondblclick = function() {
			xObject(own.objectNameWork+"Value").value = xObject(own.objectNameWork+"Body").value;
			own.vymazJmena();
			xObject(own.objectNameWork+"Value").focus();	
	}
	
	xObject(own.objectNameWork+"Body").onkeypress = function(e) {
		e = (!e) ? window.event : e;
		target = (!e.target) ? e.srcElement : e.target;
		if (target.nodeType == 3)  {target = target.parentNode;}
		code = (e.charCode) ? e.charCode : 	((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));

		if(code==13 || code==32) {
			xObject(own.objectNameWork+"Value").value = xObject(own.objectNameWork+"Body").value;
			own.vymazJmena();
			xObject(own.objectNameWork+"Value").focus();	
		}
		
		if(code==27) {
			own.vymazJmena();
			xObject(own.objectNameWork+"Value").focus();	
		}

	}
	
	
	xObject(own.objectNameWork+"Body").onblur = function () {
			own.vymazJmena();
			xObject(own.objectNameWork+"Value").focus();
	}
	
	
}
	

//naseptavac konec


