/**
 * @package GieldaWWW
 *
 *
 *
 * Skrypty odpowiadajÄ�ce za funkcjonowanie AJAXowego autouzupeĹ�niania
 * nazw miast i kodĂłw pocztowych w INPUTach formularzy
 *
 * @author Kamil Sofowora
 */

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

function getAJAXLocation(objAJAX)
{
 if (objAJAX.readyState == 4) {
   if (objAJAX.status == 200) {
		 AJAXLock = 0;
		 getsel(objAJAX.responseText);
	 }
   else{return "Server error";}
 }
 else {return false;}
}

var xAJAXLoc1 = false;

function getHTTPLocation_AJAX(xurl)
{
 xAJAXLoc1 = false;

 var xAJAXLoc1 = getAJAXObj();
 if (xAJAXLoc1)
 {
  xAJAXLoc1.onreadystatechange = function(){getAJAXLocation(xAJAXLoc1)};
  xAJAXLoc1.open('GET', xurl, true);
  xAJAXLoc1.send(null);
 }
}

var LastSrchText = new Array();

var LastVal_CountryFrom = ""; //Zabezpieczenie przed wielokrotnym uruchamianiem eventu
var LastVal_CountryTo = "";

var MixedCountryFrom = ""; //Id aktualnie wybranego kraju w selektorach
var MixedCountryTo = "";

var TimeoutIDFrom = false;
var TimeoutIDTo = false;

var LastSrchObjName = ""; //"From" lub "To" - steruje tym do ktĂłrego pola jest wpisywany wynik AJAX'a

var TypingXTime = 450;

//Blokada naciĹ�niÄ�cia klawisza enter w polu
var OneKeyLock = 0;

var focusedElement = false;

function InitLocSelectors(){
	window.htmlSelectLoc = new Array();
	window.htmlSelectLoc[1] = '\
	<select class="rst_qselect" size="6" name="loc_selectorFrom" id="' + StrPlFromName + '_sel" style="width:230px; border-style:double;" onclick="Selected2TextInput(this)" onkeydown="catchKeyDown_Sel(event, this)">';
	window.htmlSelectLoc[2] = '\
	</select>';

	window.htmlSelectLoc[3] = '\
	<select class="rst_qselect" size="6" name="loc_selectorFrom2" id="' + StrPlFromName2 + '_sel" style="width:230px; border-style:double;" onclick="Selected2TextInput(this)" onkeydown="catchKeyDown_Sel(event, this)">';
	window.htmlSelectLoc[4] = '\
	</select>';

	//window.htmlSelectLoc = new Array();
	window.htmlSelectLoc[5] = '\
	<select class="rst_default01" size="6" name="loc_selectorTo" id="' + StrPlToName + '_sel" style="width:230px;" onclick="Selected2TextInput(this)" onkeydown="catchKeyDown_Sel(event, this)">';
	window.htmlSelectLoc[6] = '\
	</select>';

	window.htmlSelectLoc[7] = '\
	<select class="rst_default01" size="6" name="loc_selectorTo2" id="' + StrPlToName2 + '_sel" style="width:230px;" onclick="Selected2TextInput(this)" onkeydown="catchKeyDown_Sel(event, this)">';
	window.htmlSelectLoc[8] = '\
	</select>';

}


function getsel(str){

	var y = 0, allcnt = 0, xopt;

	//Poprawka dla IE
	if (window.external && document.all) {var ieCompLeft = 0; /*/alert('ie');/*/}
	else {var ieCompLeft = 0; /*/alert('other');/*/}

	//alert(str);
	str2 = str.substring(str.search("<root>") + 6, str.search("</root>"));

	var arry = ExtractOptions(str2, "priorityopt"); //WyrĂłĹźnione pozycje
	var arrcnty = arry.length;
	arrcnty = arry.length;

	var arrx = ExtractOptions(str2, "normalopt"); //Normalne pozycje
	var arrcntx = arrx.length;
	arrcntx = arrx.length;

	if (arrcntx + arrcnty == 0) {
		switch (LastSrchObjName){
			case StrPlFromName:	case StrPlFromName2:
				EnlightAccuracy(0, window.toLocRecCnt);
			break;
			case StrPlToName:		case StrPlToName2:
				EnlightAccuracy(window.fromLocRecCnt, 0);
			break;
		}
		return false;
	}

	//Celowo taka dziwna skĹ�adnia... baĹ�em siÄ� daÄ� "zmienna <= 0", bo cholera wie co to za wartoĹ�Ä� moĹźe mieÄ� wczeĹ�niej
	if (!(window.fromLocRecCnt > 0)) window.fromLocRecCnt = 0;
	if (!(window.toLocRecCnt > 0)) window.toLocRecCnt = 0;

	if (typeof(arry) == "object")	arry.sort();
	if (typeof(arrx) == "object")	arrx.sort();

	switch (LastSrchObjName){
		case StrPlFromName:
			var LocInDiv = "LocInpDivFrom";
			var OptNm = "xoptfr_";
			var DvName2 = "DropFromDiv";
			var siId01 = 1, siId02 = 2;
			window.fromLocRecCnt = arrcntx + arrcnty;
		break;
		case StrPlFromName2:
			var LocInDiv = "LocInpDivFrom2";
			var OptNm = "xoptfr_";
			var DvName2 = "DropFromDiv";
			var siId01 = 3, siId02 = 4;
			window.fromLocRecCnt = arrcntx + arrcnty;
		break;
		case StrPlToName:
			var LocInDiv = "LocInpDivTo";
			var OptNm = "xoptto_";
			var DvName2 = "DropToDiv";
			var siId01 = 5, siId02 = 6;
			window.toLocRecCnt = arrcntx + arrcnty;
		break;
		case StrPlToName2:
			var LocInDiv = "LocInpDivTo2";
			var OptNm = "xoptto_";
			var DvName2 = "DropToDiv";
			var siId01 = 7, siId02 = 8;
			window.toLocRecCnt = arrcntx + arrcnty;
		break;
	}

	try{
		document.getElementById(DvName2).style.top = parseInt(document.getElementById(LocInDiv).offsetTop) + 17;
		document.getElementById(DvName2).style.left = parseInt(document.getElementById(LocInDiv).offsetLeft) + ieCompLeft;
		document.getElementById(DvName2).innerHTML = htmlSelectLoc[siId01] + htmlSelectLoc[siId02];
		document.getElementById(DvName2).style.visibility = "";
		document.getElementById(DvName2).style.display = "block";
	}catch(e){}

	var Tsel = document.getElementById(LastSrchObjName + "_sel");
	var xy_array = new Array(), xxr = new Array();

	for (var y = 0; y<arrcnty; y++){

		xxr = arry[y];
		xy_array["X"] = xxr["X"];		xy_array["Y"] = xxr["Y"];

		//alert(y);
		xopt = CreateOption(xxr["value"], allcnt, "red", OptNm + allcnt, "bold", xy_array);
		Tsel.appendChild(xopt);
		allcnt++;
	}

	var grpAll = CreateOptGroup("------");
	for (var y = 0; y<arrcntx; y++){
		xxr = arrx[y];
		xy_array["X"] = xxr["X"];		xy_array["Y"] = xxr["Y"];

		//alert(y);
		xopt = CreateOption(xxr["value"], allcnt, "black", OptNm + allcnt, "normal", xy_array);
		grpAll.appendChild(xopt);
		allcnt++;
	}
	Tsel.appendChild(grpAll);

	EnlightAccuracy(window.fromLocRecCnt, window.toLocRecCnt);
}

//PodĹ�wietlenie pĂłl "OD" i "DO" - oznaczenie trafnoĹ�ci wyszukiwania
function EnlightAccuracy(x_fromLocRecCnt, x_toLocRecCnt){

	if (typeof(window.AutoAdjustForFilteringAction) == "function"){
		AutoAdjustForFilteringAction();
	}

	if (typeof(window.AdjustGisSearchParameters) == "function"){ //Dostosuj parametry w inputach wyszukiwania GiS do tego co teraz
		var adjGis = true;
	}

	try{
		//PodĹ�wietlenia trafnoĹ�ci - sprawdzenie czy istniejÄ� obiekty do podĹ�wietlenia
		if (StrCtrySelFromOuter && StrCtrySelToOuter && StrPlFromNameOuter && StrPlToNameOuter){

			if ( document.getElementById(StrCtrySelFromOuter) && document.getElementById(StrCtrySelToOuter) && document.getElementById(StrPlFromNameOuter) && document.getElementById(StrPlToNameOuter) ){

				//PodĹ�wietlanie trafnoĹ�ci
				if (x_fromLocRecCnt > 0 && !(x_toLocRecCnt > 0)){ //Tylko ĹşrĂłdĹ�o - Na zielono
					if (typeof(adjGis) != "undefined")
						AdjustGisSearchParameters( "skip", "skip", false, false ); //WyczyĹ�Ä� parametry lokalizacji docelowej GiS
					jQuery("#"+StrCtrySelFromOuter).removeClass("bothEnds normalBorder");
					jQuery("#"+StrCtrySelFromOuter).addClass("sourceOnly");

					jQuery("#"+StrPlFromNameOuter).removeClass("bothEnds normalBorder");
					jQuery("#"+StrPlFromNameOuter).addClass("sourceOnly");

					jQuery("#"+StrCtrySelToOuter).removeClass("destOnly bothEnds");
					jQuery("#"+StrCtrySelToOuter).addClass("normalBorder");

					jQuery("#"+StrPlToNameOuter).removeClass("destOnly bothEnds");
					jQuery("#"+StrPlToNameOuter).addClass("normalBorder");
				}
				else if (!(x_fromLocRecCnt > 0) && x_toLocRecCnt > 0){ //Tylko cel - na czerwono
					if (typeof(adjGis) != "undefined")
						AdjustGisSearchParameters( false, false, "skip", "skip" ); //WyczyĹ�Ä� parametry lokalizacji ĹşrĂłdĹ�owej GiS
					jQuery("#"+StrCtrySelFromOuter).removeClass("bothEnds sourceOnly");
					jQuery("#"+StrCtrySelFromOuter).addClass("normalBorder");

					jQuery("#"+StrPlFromNameOuter).removeClass("bothEnds sourceOnly");
					jQuery("#"+StrPlFromNameOuter).addClass("normalBorder");

					jQuery("#"+StrCtrySelToOuter).removeClass("normalBorder bothEnds");
					jQuery("#"+StrCtrySelToOuter).addClass("destOnly");

					jQuery("#"+StrPlToNameOuter).removeClass("normalBorder bothEnds");
					jQuery("#"+StrPlToNameOuter).addClass("destOnly");
				}
				else if (x_fromLocRecCnt > 0 && x_toLocRecCnt > 0){ //ĹšrĂłdĹ�o i cel - na niebiesko
					jQuery("#"+StrCtrySelFromOuter).removeClass("normalBorder sourceOnly");
					jQuery("#"+StrCtrySelFromOuter).addClass("bothEnds");

					jQuery("#"+StrPlFromNameOuter).removeClass("normalBorder sourceOnly");
					jQuery("#"+StrPlFromNameOuter).addClass("bothEnds");

					jQuery("#"+StrCtrySelToOuter).removeClass("destOnly normalBorder");
					jQuery("#"+StrCtrySelToOuter).addClass("bothEnds");

					jQuery("#"+StrPlToNameOuter).removeClass("destOnly normalBorder");
					jQuery("#"+StrPlToNameOuter).addClass("bothEnds");
				}
				else{ //Bez podĹ�wietlenia
					if (typeof(adjGis) != "undefined")
						AdjustGisSearchParameters( false, false, false, false ); //WyczyĹ�Ä� wszystkie parametry lokalizacji GiS
					jQuery("#"+StrCtrySelFromOuter).removeClass("bothEnds sourceOnly");
					jQuery("#"+StrCtrySelFromOuter).addClass("normalBorder");

					jQuery("#"+StrPlFromNameOuter).removeClass("bothEnds sourceOnly");
					jQuery("#"+StrPlFromNameOuter).addClass("normalBorder");

					jQuery("#"+StrCtrySelToOuter).removeClass("destOnly bothEnds");
					jQuery("#"+StrCtrySelToOuter).addClass("normalBorder");

					jQuery("#"+StrPlToNameOuter).removeClass("destOnly bothEnds");
					jQuery("#"+StrPlToNameOuter).addClass("normalBorder");
				}

				//Ustawia iloĹ�ci ostatnich wynikĂłw dla ĹšrĂłdĹ�a i celu
				window.fromLocRecCnt = x_fromLocRecCnt; window.toLocRecCnt = x_toLocRecCnt;
			}
		}
	}catch(e){}
}

//Tworzy element DOM typu OPTGROUP o podanych parametrach
function CreateOptGroup(xtext){
	var optgx = document.createElement('optgroup');
	optgx.label = xtext;
	return optgx;
}

//Tworzy element DOM typu OPTION o podanych parametrach
function CreateOption(xtext, xvalue, xcolor, id, fontweight, xy_array){
	//alert(xtext);

	var optx = document.createElement('option');
	optx.text = xtext;
	optx.innerText = xtext;
	optx.value = xvalue;
	optx.style.fontWeight = fontweight;
	optx.style.color = xcolor;
	optx.id = id;

	//Dodatkowo, przypisz kaĹźdemu elementowi (miastu) jego wspĂłĹ�rzÄ�dne X i Y
	optx.setAttribute("X", xy_array["X"]);
	optx.setAttribute("Y", xy_array["Y"]);

	return optx;
}



//PrzeksztaĹ�ca opcje na tablicÄ� opcji. Przerabia teĹź wspĂłĹ�rzÄ�dne i takie tam
function ExtractOptions(szHTML, tagname){
	//alert(szHTML);

	var strL = szHTML.length;
	var tagL = tagname.length;
	var hlp1 = "";
	var cnt1 = 0, cnt2 = 0, cntall = 0;
	var arrout = new Array();
	var arrx = new Array(), arry = new Array();

	if (strL > 5){
		while (cnt2 + tagL + 4 < strL && cnt1 != -1){
			hlp1 = "";
			cnt1 = szHTML.indexOf("<" + tagname + "", cnt1);

			if (cnt1 >= 0) cnt1 = szHTML.indexOf(">", cnt1 + 1);
			cnt2 = szHTML.indexOf("</" + tagname + ">", cnt1);
			if (cnt1 >= 0) hlp1 = szHTML.slice(cnt1 + 1, cnt2);

			//alert(cnt1 + "||" + hlp1);

			arrx = hlp1.split("-^-"); //Rozdziel nazwÄ� oraz wspĂłĹ�rzÄ�dne GISu.

			arrout[cntall] = new Array();

			arrout[cntall]["value"] = arrx[0];
			arrout[cntall]["X"] = arrx[1];
			arrout[cntall]["Y"] = arrx[2];

			cntall++;

			cnt1 = szHTML.indexOf("<" + tagname + "", cnt1);
		}
	}

	//document.getElementById("txtst01").innerHTML = arrout.toString();
	//alert(arrout.toString());



	return arrout;
}

//Korekta BUGĂłw przeglÄ�darki tyczÄ�cych siÄ� nieprawidĹ�owych eventĂłw
//PozwĂłl wywoĹ�aÄ� "onclick" tylko na tym obiekcie, nad ktĂłrym mycha siÄ� znajduje
//Dla OnMouseOver
function ClickBlockON(objname){
	//if (typeof(window.ClickAllowObj) == "undefined"){
	//alert("on");
	window.ClickAllowObj = objname;
	//}
}
//Dla OnMouseOut
function ClickBlockOFF(objname){
	//alert("off");
	if (typeof(window.ClickAllowObj) != "undefined"){
		if (window.ClickAllowObj.length > 0){
			if (window.ClickAllowObj == objname) window.ClickAllowObj = ""; //JeĹźeli opuszczamy obiekt mychÄ�, a byliĹ�my nad nim, to wyczyĹ�Ä� nazwÄ� obiektu
		}
	}
}


//Wychwytywanie przyciĹ�niÄ�cia klawisza na INPUTcie
function catchKeyDown_Loc(e, objname){

	var keynum;
	var keychar;
	var numcheck;

	if(window.event) // IE
		{
			keynum = e.keyCode;
		}
	else if(e.which) // Netscape/Firefox/Opera
		{
			keynum = e.which;
		}


	if (keynum == 40){ //StrzaĹ�ka w dĂłĹ� - przerzuÄ� focus na pole wyboru pod spodem

		try{document.getElementById(objname + "_sel").focus();
		}catch (e) {
			try{document.getElementById(objname + "_sel").focus();
			}catch (e){}
		}

	}
	else if (keynum == 13){ //ENTER - wyĹ�lij formularz
		if (typeof(window.SubmitOK) == "function"){
			SubmitOK();
		}
	}
	else if (keynum == 16 || keynum == 8 || keynum == 9 || keynum == 46 || keynum == 17 || keynum == 18){ //SHIFT-16, BACKSPACE-8, TAB-9, DEL-46, CTRL-17, ALT-18
		switch (objname){
			case StrPlFromName:
				if (typeof(window.AutoAdjustForFilteringAction) == "function"){
					AutoAdjustForFilteringAction();
				}
				inputcheck_location_from_pure(objname, false);
			break;
			case StrPlToName:
				if (typeof(window.AutoAdjustForFilteringAction) == "function"){
					AutoAdjustForFilteringAction();
				}
				inputcheck_location_to_pure(objname, false);
			break;
		}
	}
	/*/
	/*/

}

//Wychwytywanie przyciĹ�niÄ�cia klawisza na SELECTcie
function catchKeyDown_Sel(e, obj){

	var keynum;
	var keychar;
	var numcheck;

	if(window.event) // IE
		{
			keynum = e.keyCode;
		}
	else if(e.which) // Netscape/Firefox/Opera
		{
			keynum = e.which;
		}

	if (keynum == 13){ //ENTER - wprowadĹş zawartoĹ�c aktualnie wybranego elementu do pola tekstowego

		OneKeyLock = 0; //Blokada "niepotrzebnego klawisza" - klawisz ENTER wskakuje dwa razy najpierw na polu SELECT a potem INPUT, wiÄ�c trzeba go przyblokowaÄ�, ustawiajÄ�c jednorazowÄ� blokadÄ�

		SubmitLock = 1;

		if (obj.id == StrPlFromName + "_sel")	Selected2TextInput(obj);
		else if (obj.id == StrPlToName + "_sel") Selected2TextInput(obj);
		else if (obj.id == StrPlFromName2 + "_sel") Selected2TextInput(obj);
		else if (obj.id == StrPlToName2 + "_sel") Selected2TextInput(obj);

	}

}


function inputcheck_location_from(e, obj_id){

	var keynum, keychar, numcheck;
	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;

	//JeĹźeli zostaĹ�a naciĹ�niÄ�ta strzaĹ�ka w dĂłĹ� albo strzaĹ�ka w prawo, to wymuĹ� wykonanie wyszukiwania
	if (keynum == 40 || keynum == 39) var ForceField = 1;
	else var ForceField = 0;

	return inputcheck_location_from_pure(obj_id, ForceField);

}

function inputcheck_location_from_pure(obj_id, ForceField){

	window.clearTimeout(TimeoutIDFrom);
	TimeoutIDFrom = window.setTimeout("inp_loc_from_proceed('" + obj_id + "', '" + ForceField + "')", TypingXTime);

	return true;

}



function inp_loc_from_proceed(obj_id, force){
	var obj = document.getElementById(obj_id);
	var zx1 = "", addOpt = "";

	//JeĹźeli wartoĹ�Ä� pola jest pusta lub jest domyĹ�lna, to nie rĂłb nic
	var r1 = obj.value.replace(" ", "");
	var r2 = document.getElementById("def_val_inp_locfrom").value.replace(" ", "");
	if (r1 == r2 || r1.length < 2) {EnlightAccuracy(0, window.toLocRecCnt); return false;}


	try{
		var LsSrch = LastSrchText[obj_id];
	}catch(e){LsSrch = "";}


	if (obj.value != undefined){
		var ObValLen = obj.value.length;
	}else{
		var ObValLen = 0;
	}

	//SprawdĹş czy nie byĹ�o juĹź identycznego wyszukiwania (blokada zbyt czÄ�stego wywoĹ�ywania AJAXa)
	if ((LsSrch != obj.value && ObValLen > 0) || force == 1){
		//alert(LsSrch + "-||-" + obj.value);

		if (OneKeyLock*1 > 0) OneKeyLock--; //Blokada "niepotrzebnego klawisza"
		else{
			if (AJAXLock == 0){
				var len = obj.value.length;
				var bbb = new RegExp("[0-9 -]{" + len + "}$", "i");
				var xmx = bbb.test(obj.value);

				if (obj.value.length >= 3 || xmx == true){
					//alert(MixedCountryFrom);
					if (MixedCountryFrom != "") zx1 = "&idcountry=" + MixedCountryFrom;
					else zx1 = "";

					//alert(obj_id);
					if (obj_id.indexOf("Code") > -1) addOpt = "&opt=code";
					if (obj.parentNode.title == "CityCodeSearch") addOpt = "&opt=citycode";

					LastSrchObjName = obj_id;
					AJAXLock = 1;

					if (typeof(window.AutoAdjustForFilteringAction) == "function"){
						AutoAdjustForFilteringAction();
					}

					//document.getElementById("txtst01").value = "http://ks.pl15.crm.rst.com.pl/mod.gieldawww.real/func/getxmldata.rst?type=locations" + zx1 + "&s=" + obj.value + "&tag=normalopt&ptag=priorityopt&lang=PL" + addOpt;

					LastSrchText[obj_id] = obj.value;
					getHTTPLocation_AJAX("func/getxmldata.rst?type=locations" + zx1 + "&s=" + encodeURI(obj.value) + "&tag=normalopt&ptag=priorityopt&lang=PL" + addOpt);
					LastVal_CountryFrom = obj.value;

					//try{
						//document.getElementById("txtst02").innerHTML = "func/getxmldata.rst?type=locations" + zx1 + "&s=" + encodeURI(obj.value) + "&tag=normalopt&ptag=priorityopt&lang=PL" + addOpt;
					//}catch(e){}

				}else {
					//alert("none from");
					ClearDropDownFrom();
					EnlightAccuracy(0, window.toLocRecCnt); //WyczyĹ�Ä� trafnoĹ�Ä� / usuĹ� kolorki dla "lokacji OD"
				}
			}
			OneKeyLock = 0;
		}
	}else if (ObValLen <= 0) EnlightAccuracy(0, window.toLocRecCnt);
}


function inputcheck_location_to(e, obj_id){

	var keynum, keychar, numcheck;
	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;

	//JeĹźeli zostaĹ�a naciĹ�niÄ�ta strzaĹ�ka w dĂłĹ� albo strzaĹ�ka w prawo, to wymuĹ� wykonanie wyszukiwania
	if (keynum == 40 || keynum == 39) var ForceField = 1;
	else var ForceField = 0;

	return inputcheck_location_to_pure(obj_id, ForceField);

}

function inputcheck_location_to_pure(obj_id, ForceField){

	window.clearTimeout(TimeoutIDTo);
	TimeoutIDTo = window.setTimeout("inp_loc_to_proceed('" + obj_id + "', '" + ForceField + "')", TypingXTime);

	return true;

}


function inp_loc_to_proceed(obj_id, force){
	var obj = document.getElementById(obj_id);
	var zx1 = "", addOpt = "";

	//JeĹźeli wartoĹ�Ä� pola jest pusta lub jest domyĹ�lna, to nie rĂłb nic
	var r1 = obj.value.replace(" ", "");
	var r2 = document.getElementById("def_val_inp_locto").value.replace(" ", "");
	if (r1 == r2 || r1.length < 2) {EnlightAccuracy(window.fromLocRecCnt, 0); return false;}

	try{
		var LsSrch = LastSrchText[obj_id];
	}catch(e){LsSrch = "";}

	if (obj.value != undefined){
		var ObValLen = obj.value.length;
	}else{
		var ObValLen = 0;
	}

	//SprawdĹş czy nie byĹ�o juĹź identycznego wyszukiwania (blokada zbyt czÄ�stego wywoĹ�ywania AJAXa)
	if ((LsSrch != obj.value && ObValLen > 0) || force == 1){

		if (OneKeyLock*1 > 0) OneKeyLock--; //Blokada "niepotrzebnego klawisza"
		else{
			if (AJAXLock == 0){

				var len = obj.value.length;
				var bbb = new RegExp("[0-9 -]{" + len + "}$", "i");
				var xmx = bbb.test(obj.value);

				if (obj.value.length >= 3 || xmx == true){

					if (MixedCountryTo != "") zx1 = "&idcountry=" + MixedCountryTo;
					else zx1 = "";

					if (obj_id.indexOf("Code") > -1) addOpt = "&opt=code";
					if (obj.parentNode.title == "CityCodeSearch") addOpt = "&opt=citycode";

					LastSrchObjName = obj_id;

					AJAXLock = 1;

					if (typeof(window.AutoAdjustForFilteringAction) == "function"){
						AutoAdjustForFilteringAction();
					}

					LastSrchText[obj_id] = obj.value;
					getHTTPLocation_AJAX("func/getxmldata.rst?type=locations" + zx1 + "&s=" + encodeURI(obj.value) + "&tag=normalopt&ptag=priorityopt&lang=PL" + addOpt);

					//try{
					//document.getElementById("txtst01").innerHTML = "func/getxmldata.rst?type=locations" + zx1 + "&s=" + obj.value + "&tag=normalopt&ptag=priorityopt&lang=PL" + addOpt;
					//}catch(e){}

					LastVal_CountryTo = obj.value;

				}else {
					//alert("none to");
					ClearDropDownTo();
					EnlightAccuracy(window.fromLocRecCnt, 0); //WyczyĹ�Ä� trafnoĹ�Ä� / usuĹ� kolorki dla "lokacji DO"
				}
			}
			OneKeyLock = 0;
		}
	}else if (ObValLen <= 0) EnlightAccuracy(window.fromLocRecCnt, 0);
}


function CountrySelectFrom(obj){
	MixedCountryFrom = obj.options.item(obj.selectedIndex).value;
	inp_loc_from_proceed(StrPlFromName, 1); //WymuĹ� aktualizacjÄ� wyszukiwania lokacji (Ĺźeby kolorki zniknÄ�Ĺ�y przy zmianie paĹ�stwa)

	if (typeof(window.AutoAdjustForFilteringAction) == "function"){
		AutoAdjustForFilteringAction();
	}
}

function CountrySelectTo(obj){
	MixedCountryTo = obj.options.item(obj.selectedIndex).value;
	inp_loc_to_proceed(StrPlToName, 1); //WymuĹ� aktualizacjÄ� wyszukiwania lokacji

	if (typeof(window.AutoAdjustForFilteringAction) == "function"){
		AutoAdjustForFilteringAction();
	}
}

//Przerzuca wynik wyszukiwania autouzupeĹ�niania do pola INPUT
//Nowa wersja funkcji
function Selected2TextInput(obj){
	var zxy = selectedOptionValue(obj).toString();
	if (zxy.indexOf("|") > -1) {
		var zxx = selectedOptionValue(obj).toString().split("|");
	}
	else {
		var zxx = new Array();
		zxx[0] = zxy;
		zxx[1] = "";
	}
	var zxl = zxx.length;

	//alert(obj.options.item(obj.selectedIndex).getAttribute("X"));
	//alert(optx.getAttribute("dupa"));

	if (zxl == 2){
		var zxx2 = zxx[0].trim(); //WyciÄ�gnij samÄ� nazwÄ� miejsca bez kodu pocztowego
	}
	else if (zxl == 3){
		var zxx2 = zxx[0].trim(); //WyciÄ�gnij samÄ� nazwÄ� miejsca bez kodu pocztowego
		var zxx3 = zxx[1].trim();
	}

	switch (obj.id){
		case StrPlFromName + '_sel':
			var inpxName = StrPlFromName; //MiejscowoĹ�Ä� (input)
			var inpxName2 = StrPlFromName2; //Kod pocztowy (input)
			var selxName = StrCtrySelFrom; //Selektor kraju (select)
			if (typeof(window.AdjustGisSearchParameters) == "function"){ //Dostosuj parametry w inputach wyszukiwania GiS do tego co teraz
				AdjustGisSearchParameters(obj.options.item(obj.selectedIndex).getAttribute("X"), obj.options.item(obj.selectedIndex).getAttribute("Y"), "skip", "skip");
			}
		break;
		case StrPlFromName2 + '_sel':
			var inpxName = StrPlFromName2; //Kod pocztowy (input)
			var inpxName2 = StrPlFromName; //MiejscowoĹ�Ä� (input)
			var selxName = StrCtrySelFrom; //Selektor kraju (select)
			if (typeof(window.AdjustGisSearchParameters) == "function"){
				AdjustGisSearchParameters(obj.options.item(obj.selectedIndex).getAttribute("X"), obj.options.item(obj.selectedIndex).getAttribute("Y"), "skip", "skip");
			}
		break;
		case StrPlToName + '_sel':
			var inpxName = StrPlToName;
			var inpxName2 = StrPlToName2;
			var selxName = StrCtrySelTo;
			if (typeof(window.AdjustGisSearchParameters) == "function"){
				AdjustGisSearchParameters("skip", "skip", obj.options.item(obj.selectedIndex).getAttribute("X"), obj.options.item(obj.selectedIndex).getAttribute("Y"));
			}
		break;
		case StrPlToName2 + '_sel':
			var inpxName = StrPlToName2;
			var inpxName2 = StrPlToName;
			var selxName = StrCtrySelTo;
			if (typeof(window.AdjustGisSearchParameters) == "function"){
				AdjustGisSearchParameters("skip", "skip", obj.options.item(obj.selectedIndex).getAttribute("X"), obj.options.item(obj.selectedIndex).getAttribute("Y"));
			}
		break;
	}

	if (zxx2.length > 0) document.getElementById(inpxName).value = zxx2;

	//if (typeof(zxx3) != "undefined"){
	//
	if (zxx[1]){
		//alert("Adjust_CtrSel:"+zxx[1]);
		var rgx = new RegExp("[a-zA-Z]{1,5}$", "i");
		if (rgx.test(zxx[1]) == true) AdjustCountrySelect(zxx[1], selxName);
		if (rgx.test(zxx[2]) == true) AdjustCountrySelect(zxx[2], selxName);
	}
	//}else{
	//	alert(typeof(zxx3));
	//}

	try{ //JeĹźeli jest jakieĹ� drugie pole, to sprĂłbuj wpisaÄ� do niego dwugÄ� wartoĹ�Ä�
		if (zxx3.length > 0) {
			document.getElementById(inpxName2).value = zxx3;
		}
	}catch(e){}

	setTimeout("FocusObj('" + inpxName + "')", 25);
	ClearDropDownFrom();
	HideSelectors();
}

//Automatycznie wybiera z listy krajĂłw kraj, ktĂłrego SzShort zgadza siÄ� z podanym
function AdjustCountrySelect(SzShort, SelectName){
	//alert(SzShort);
	var sel = document.getElementById(SelectName);
	var opts = sel.options;
	var vx = "";

	//alert(typeof(SzShort));
	if (typeof(SzShort) == "string"){
		if (SzShort.length > 0){
			SzShort = SzShort.trim();
			for (var i = 0; i<opts.length; i++){
				vx = opts.item(i).value.toString().split("-");
				if (vx[1] == SzShort) {
					document.getElementById(SelectName).options.item(i).selected = true;
				}
			}
		}else return false;
	}else return false;
}


function InpFromFocus(){
	document.getElementById(StrPlFromName).focus();
}

//Nowa wersja
function FocusObj(objname){
	document.getElementById(objname).focus();
}

function Selected2TextInputTo(obj){
	var zxx = selectedOptionValue(obj);
	var vxx = zxx.indexOf('|'); //ZnajdĹş rozdzielnik nazwy miejsca i kodu pocztowego
	if (vxx >= 0){
		zxx = zxx.substring(0, vxx - 1); //WyciÄ�gnij samÄ� nazwÄ� miejsca bez kodu pocztowego
	}

	if (zxx.length > 0) document.getElementById(StrPlToName).value = zxx;
	setTimeout("InpToFocus()", 25);
	ClearDropDownTo();
}

function InpToFocus(){
	document.getElementById(StrPlToName).focus();
}


function ClearDropDownFrom(){
	try{
		document.getElementById("DropFromDiv").style.visibility = "hidden";
		document.getElementById("DropFromDiv").style.display = "none";
		document.getElementById("DropFromDiv").innerHTML = "";
	}catch(e){}
	setTimeout("SubmitUnlock()", 100);
}

function ClearDropDownTo(){
	try{
		document.getElementById("DropToDiv").style.visibility = "hidden";
		document.getElementById("DropToDiv").style.display = "none";
		document.getElementById("DropToDiv").innerHTML = "";
	}catch(e){}
	setTimeout("SubmitUnlock()", 100);
}


function selectedOptionValue(obj){
	var xxy = obj.selectedIndex + "";
	if (xxy.length > 0)	{return obj.options.item(obj.selectedIndex).text;}
	else return "";
}

function InitCountrySelection(){
	var objFrom = document.getElementById(StrCtrySelFrom);
	var objTo = document.getElementById(StrCtrySelTo);

	try{
		MixedCountryFrom = objFrom.options.item(objFrom.selectedIndex).value;
		MixedCountryTo = objTo.options.item(objTo.selectedIndex).value;
	}catch(e){}
}



function HideSelectorFrom(){
	ClearDropDownFrom();
}

function HideSelectorTo(){
	ClearDropDownTo();
}

function HideSelectors(){
	HideSelectorFrom();
	HideSelectorTo();
}



//Dostosuj wybĂłr kraju do aktualnie wybranej opcji na samym poczÄ�tku
//setTimeout("InitCountrySelection()", 50);


