var trans = [];
for (var i = 0x410; i <= 0x44F; i++) trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё
trans[0x457] = 0xBF;    // ї
trans[0x407] = 0xAF;    // Ї
trans[0x456] = 0xB3;    // і
trans[0x406] = 0xB2;    // І
trans[0x404] = 0xBA;    // є
trans[0x454] = 0xAA;    // Є

escape2 = function(str)
{
  var res="";

  for (var i = 0; i < str.length; i++)
  {
    var n = str.charCodeAt(i);
    if (typeof trans[n] != 'undefined')
    {
      n = trans[n];
      res=res+escape(String.fromCharCode(n));
    }
    else
    {
      n = str.charAt(i);
      res=res+n;
    }

  }
  return res;
}


var townindex=0;

function mainsearch(fChar, state) {
	if (fChar!='') {
		GetCTList(escape2(fChar)); //поиск по первой букве
	}
	if (state!=0) GetTList(state); //поиск по региону
}

function GetCTList(fChar){ //поиск по первой букве
//  var URL="/find.htm?searchby=firstchar&fchar="+fChar+"&type=cgi";
    var URL="/search/?req=findall&town="+escape2(fchar);

  gotoPage(URL);
}

function GetTList(state){

	clearContainer("townsContainer");

	initTList();

	initPreloader("townsContainer", "preloader2", "");

	clearTimeout(timeOut);

  timeOut=window.setTimeout(function() {sendAjaxRequest("/loadXML.php?searchby=towns&state="+state+"&r="+Math.random(),"GET", fOkTList, fError)}, 500);

}

function fOkTList(xrequest) {
  if (document.getElementById("preloader2"))
  document.getElementById("preloader2").style.visibility="hidden";

  var listrecords=xrequest.responseXML.getElementsByTagName('t');
  showSliderList(listrecords);
}

function fError(xrequest) {
	xrequest=null;
}

function showSliderList(listrecords) {

	var count=0;
	var tdnum=0;
	var str="";
	var nTown=-1;
	var mincount=listrecords.length;
	var fChar="";
	var strFChar="";
	var bFChar=false;
	var new_URL="";

	for (i=0; i<listrecords.length; i++) {
  	count++;
  	try {
  		var strindex=listrecords[i].getAttribute("i");
  		var strname=listrecords[i].getAttribute("n");
  		var cindex=listrecords[i].getAttribute("ci");
  		var strOnClick="";

  		if ((fChar!=strname.charAt(0)) || (count==1)) {
  			if (bFChar) {
  	          fChar=strname.charAt(0);
  			  strFChar="<tr><td height='19' class='fChar'>"+fChar+"</td></tr>";
  	        }
  	    }
  	    else strFChar="";
  	    new_URL=setURL(cindex);
      	if (strindex==townindex) {
      		var nTown=i;
      		str+=strFChar+"<tr><td width='150' height='19' bgcolor='#e8eef8' "+strOnClick+"><a href='"+new_URL+"/frc/"+strindex+".htm'><b>"+strname+"</b></a></td></tr>";
      	}
      	else str+=strFChar+"<tr><td width='150' height='19' "+strOnClick+"><a href='"+new_URL+"/frc/"+strindex+".htm'>"+strname+"</a></td></tr>";
    }
    catch(err) {
    	document.getElementById("td"+tdnum).innerHTML="<table>"+str+"</table>";
    	return;
    }

    if ((count==mincount)||(i==listrecords.length-1)){
    	if (document.getElementById("td"+tdnum))
        document.getElementById("td"+tdnum).innerHTML="<table>"+str+"</table>";
      str="";
      count=0;
      tdnum++;
    }
  }

  if (nTown>-1) scroll3('townsContainer','vSlider', 'slideHandle', nTown);

  var obj=document.getElementById("townsContainer");
  if (obj.className=="townsContainer") obj.style.height="100%";

  townindex=0;
}

function showRegionsList(listrecords) {
	clearContainer("townsContainer");
	initTList();

	if (listrecords.length==0) {
		document.getElementById("td0").innerHTML="<table><tr><td style='cursor:default; text-decoration:none'>Ничего не найдено</td><tr></table>";
		return;
	}

	var count=0;
	var tdnum=0;
	var str="";
  var mincount=Math.ceil(listrecords.length/4);
	var fChar="";
	var strFChar="";


	if (document.getElementById("ttitle")) {		var obj=document.getElementById("ttitle");
		obj.innerHTML="<ul>"
  	obj.innerHTML+="<li class='title2'><b>"+arrtitle[1]+" (области)</b></li>";
		obj.innerHTML+="<ul>"
  }

	for (i=0; i<listrecords.length; i++) {
  	count++;
  	try {
 		if ((fChar!=listrecords[i][1].charAt(0)) || (count==1)) {
      		fChar=listrecords[i][1].charAt(0);
			strFChar="<tr><td height='19' class='fChar'>"+fChar+"</td></tr>";
  	    }
  	    else strFChar="";

      	str+=strFChar+"<tr><td height='19'><a href='/find.htm?&searchby=towns&state="+listrecords[i][0]+"&type=cgi'>"+listrecords[i][1]+"</a></td></tr>";
    }
    catch(err) {
    	document.getElementById("td"+tdnum).innerHTML="<table>"+str+"</table>";
      	return;
    }

    if ((count==mincount)||(i==listrecords.length-1)){
    	if (document.getElementById("td"+tdnum))
        document.getElementById("td"+tdnum).innerHTML="<table>"+str+"</table>";
      str="";
      count=0;
      tdnum++;
    }
  }
}

function showCountriesList(listrecords) {
	initСList();

	if (listrecords.length==0) {
		document.getElementById("сtd0").innerHTML="<table><tr><td style='cursor:default; text-decoration:none'>Ничего не найдено</td><tr></table>";
		return;
	}

	if (document.getElementById("country_lable"))
  		document.getElementById("country_lable").innerHTML+="<li class='last title4'><b>Страны</b></li>";

	var count=0;
	var tdnum=0;
	var str="";
  	var mincount=Math.ceil(listrecords.length/4);
	var fChar="";
	var strFChar="";
	var new_URL="";

	for (i=0; i<listrecords.length; i++) {
  	count++;
  	try {
 		if ((fChar!=listrecords[i][1].charAt(0).toLowerCase()) || (count==1)) {
      		fChar=listrecords[i][1].charAt(0).toLowerCase();
			strFChar="<tr><td height='19' class='fChar'>"+listrecords[i][1].charAt(0).toUpperCase()+"</td></tr>";
  	    }
  	    else strFChar="";
  	    new_URL=setURL(listrecords[i][0]);
      	str+=strFChar+"<tr><td height='19'><a href='"+new_URL+"/find.htm?cindex="+listrecords[i][0]+"&searchby=regions'>"+listrecords[i][1]+"</a></td></tr>";
    }
    catch(err) {
    	document.getElementById("сtd"+tdnum).innerHTML="<table>"+str+"</table>";
      	return;
    }

    if ((count==mincount)||(i==listrecords.length-1)){
    	if (document.getElementById("сtd"+tdnum))
        document.getElementById("сtd"+tdnum).innerHTML="<table>"+str+"</table>";
      str="";
      count=0;
      tdnum++;
    }
  }
}

function showTownsList(listrecords) {
	clearContainer("townsContainer");
	initTList();

	if (listrecords.length==0) {
		document.getElementById("td0").innerHTML="<table><tr><td style='cursor:default; text-decoration:none'>Ничего не найдено</td><tr></table>";
		return;
	}

	if (document.getElementById("ttitle")) {
		var obj=document.getElementById("ttitle");
  		if (arrtitle[2]!="") {
  			obj.innerHTML="<p class='title4'>Города | "+arrtitle[1]+" | "+arrtitle[2]+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a style='font-size:13px; font-weight:normal' href='/find.htm?searchby=regions&cindex="+arrtitle[0]+"'>Все области</a></p>";
  		}
  		else if(arrtitle[1]!="") obj.innerHTML="<p class='title4'>"+arrtitle[1]+"</p>";
  	}

	var count=0;
	var tdnum=0;
	var str="";
  	var mincount=Math.ceil(listrecords.length/4);
	var fChar="";
	var strFChar="";
	var new_URL="";

	for (i=0; i<listrecords.length; i++) {
  	count++;
  	try {
 		if ((fChar!=listrecords[i][1].charAt(0)) || (count==1)) {
      		fChar=listrecords[i][1].charAt(0);
			strFChar="<tr><td height='19' class='fChar'>"+fChar+"</td></tr>";
  	    }
  	    else strFChar="";
  	    new_URL=setURL(listrecords[i][2]);
      	str+=strFChar+"<tr><td height='19'><a href='"+new_URL+"/frc/"+listrecords[i][0]+".htm'>"+listrecords[i][1]+"</a></td></tr>";
    }
    catch(err) {
    	document.getElementById("td"+tdnum).innerHTML="<table>"+str+"</table>";
      	return;
    }

    if ((count==mincount)||(i==listrecords.length-1)){
    	if (document.getElementById("td"+tdnum))
        document.getElementById("td"+tdnum).innerHTML="<table>"+str+"</table>";
      str="";
      count=0;
      tdnum++;
    }
  }
}

function initTList(){

	var obj=document.getElementById("townsContainer");

	if (obj) {


	 var content='';

	  content+='<div>'+
	  		   '<table width=100%><tr>'+
			   '<td width="20%" id="td0" class="countrieslist" valign="top"></td>'+
			   '<td width="1%"></td>';

		var strlocation=new String(document.location);
	  if (strlocation.indexOf("htm")>-1) {
	  	content+='<td width="20%" id="td1" class="countrieslist" valign="top"></td>'+
			     '<td width="1%"></td>'+
				 '<td width="20%" id="td2" class="countrieslist" valign="top"></td>'+
				 '<td width="1%"></td>'+
				 '<td width="20%" id="td3" class="countrieslist" valign="top"></td>';
     }
     content+='</tr></table></div>';
    document.getElementById("townsContainer").innerHTML=content;
    strlocation=null;
	}
}

function initСList(){
	var obj=document.getElementById("countriesContainer");
	if (obj) {		var content='';		var strlocation=new String(document.location);
		if (strlocation.indexOf('find.htm')>-1)
			content='<div class="title2">Страны</div>';
	  strlocation=null;
	  content+='<div>'+
	  	'<table width=100%><tr>'+
			'<td width="20%" id="сtd0" class="countrieslist" valign="top"></td>'+
			'<td width="1%"></td>'+
	  		'<td width="20%" id="сtd1" class="countrieslist" valign="top"></td>'+
			'<td width="1%"></td>'+
			'<td width="20%" id="сtd2" class="countrieslist" valign="top"></td>'+
			'<td width="1%"></td>'+
			'<td width="20%" id="сtd3" class="countrieslist" valign="top"></td>'+
     	'</tr></table></div>';
   	 	document.getElementById("countriesContainer").innerHTML=content;
	}
}

function gotoPage(URL) {
	document.location.href=URL;
}

function clearContainer(objName) {
	var obj=document.getElementById(objName);
	if (obj) obj.innerHTML="";
}

//////////////////////////////////////////////////////////////////////////////////////
// DropDownList

var searchObj=null;
var selectObjId=null;
var id=0;

function press(evt) {
	evt = (evt) ? evt : window.event;
 	if(evt) {
 		 var code = evt.keyCode;
 		 switch(code) {
 		 	case 13:
	      	if (searchObj){
	      		selectObjOnKeyUp(searchObj);
	      		removeDropDownList();
	      	}
	      	else gotoPage(getSearchURL(document.getElementById('searchCity').value));
 		 	break;

 		 	case 17:
 		 	case 18:
 		 	case 37:
 		 	case 39:
 		 	break;

 		 	case 38:
 		 	unselectObj(-1);
     		searchObj=selectObj(-1);
       		break;

 		 	case 40:
     		unselectObj(1);
     		searchObj=selectObj(1);
       		break;

 		  	default:
 		  		selectObjId=-1;
 		 		removeDropDownList();
		    	var obj=document.getElementById("searchCity");
		    	if (checkDropDownTList("search_text",obj.value)) {
		    		clearTimeout(timeOut);
		    		initDropDownList("dropDownTList","search_text");
		    		getDropDownTList(escape2(obj.value));
		    	}
 		 }
	}
}

function checkDropDownTList(parentElement,inputValue){	var obj=document.getElementById(parentElement);
	if(!obj) return false;
	obj=document.getElementById("dropDownTList");
	if ((!obj) && (inputValue!="")) return true;
	else return false;
}

function initDropDownList(divId,parentElement){
  var div = document.createElement("div");
  div.setAttribute("id", divId);
  var s = div.style;
  document.getElementById(parentElement).appendChild(div);
  document.getElementById(divId).innerHTML="<div id='"+divId+"_content'><br><br></div><div style='float:right;font-size:11px; cursor:pointer;' onclick=removeDropDownList('"+parentElement+"','"+divId+"');>X&nbsp;</div>";
}

function removeDropDownList(parentElement,removeElement) {
	var obj=document.getElementById('dropDownTList');
	if (obj) document.getElementById('search_text').removeChild(obj);
}

function selectObj(step){	var obj=null;
    selectObjId=selectObjId+step;
    var obj=document.getElementById("dropDownRow"+selectObjId);

    if (!obj) {    	if (step==1) selectObjId=0;
    	if (step==-1) {
    		for (var i=11; i>selectObjId; i--){    			obj=document.getElementById("dropDownRow"+i);
    			if (obj) { selectObjId=i; break; }            }    	}    }
    obj=document.getElementById("dropDownRow"+selectObjId);
    obj.style.backgroundColor="#c7d2ff";
	return obj;
}

function unselectObj(step) {
    if (step==1) var FromObjId=selectObjId;
    if (step==-1) var FromObjId=selectObjId;
    obj=document.getElementById("dropDownRow"+FromObjId);

    if (!obj) {
    	if(step==1) {
    		for (i=11; i>FromObjId; i--){
    			obj=document.getElementById("dropDownRow"+i);
    			if (obj) { FromObjId=i; break; }
            }
    	}
    	if (step==-1) FromObjId=0;
    }
    obj=document.getElementById("dropDownRow"+FromObjId);
    obj.style.background="#eff2ff";}

function selectObjOnKeyUp(obj){
	var id=obj.getAttribute('id');
	var cindex=0;
	if (document.getElementById(id+"cindex")) cindex=document.getElementById(id+"cindex").value;
	if (document.getElementById(id+"tname")) selectCity(obj, cindex);
	else if (document.getElementById(id+"cname"))  selectCountry(obj);
		 else selectMegaSearch();
}

function selectCity(obj, cindex) {
  var id=obj.getAttribute('id');
  URL=setURL(cindex);
  gotoPage(URL+"/frc/"+document.getElementById(id+"value").value+".htm");
}

function selectCountry(obj) {
  var id=obj.getAttribute('id');
  var cindex=document.getElementById(id+"value").value;
  URL=setURL(cindex);
//  gotoPage(URL+"/find.htm?searchby=regions&cindex="+cindex);
  gotoPage(URL+"/search/?req=listbycountry&country="+escape2(obj.innerText));
}

function selectMegaSearch() {
	gotoPage("/mgfind.htm?"+escape2(document.getElementById('searchCity').value));
}

function getDropDownTList(fChar) {
	var obj=document.getElementById("dropDownTList_content");
	if (obj) {
	  setPreloaderPict("dropDownTList_content","preloader_dropDownTList","mini");
	  setPreloaderStyle("dropDownTList_content","preloader_dropDownTList");
    }
	id++;
	timeOut=window.setTimeout(function() {sendAjaxRequest(URL+"/loadXML.php?id="+id+"&searchby=firstchar&fChar="+fChar+"&mcntcities=8&mcntcountries=3&r="+Math.random(),"GET", fOkDropDownList, fError)}, 200);
}

function fOkDropDownList(xrequest) {
	var listrecords=xrequest.responseXML.getElementsByTagName('id');
	if (parseInt(listrecords[0].getAttribute("id"))!=id) return;

	var ListTRecords=xrequest.responseXML.getElementsByTagName('t');
	var cnt=Math.min(8,ListTRecords.length);
  	var str=showDDTList(ListTRecords);
  	ListCRecords=xrequest.responseXML.getElementsByTagName('c');
  	if (ListCRecords.length>0)
  		str+="<tr><td style='width:100%; height:2px; background:#4b60bb'></td></tr>";
  	str+=showDDCList(ListCRecords,cnt);
  	str+="<tr><td style='width:100%; height:2px; background:#4b60bb'></td></tr>";
  	cnt+=Math.min(3,ListCRecords.length);
  	var strOnClick="OnClick=selectMegaSearch();";
  	str+="<tr><td id='dropDownRow"+cnt+"' "+strOnClick+" OnMouseOver='setBackground(this,&quot;#c7d2ff&quot,&quot;#eff2ff&quot;);' OnMouseOut='setBackground(this,&quot;#eff2ff&quot;,&quot;#c7d2ff&quot);'>Нет моего города</a></td></tr>";
  	document.getElementById("dropDownTList_content").innerHTML="<table width='100%'>"+str+"</table>";
}

function showDDTList(listrecords) {
	var str="";
	for (i=0; i<Math.min(8,listrecords.length); i++) {
  	try {
  		var name=listrecords[i].getAttribute("n");
  		var index=listrecords[i].getAttribute("i");
  		var cindex=listrecords[i].getAttribute("ci");
  		var strOnClick="OnClick='selectCity(this, "+cindex+"); removeDropDownList();'";
      	str+="<tr><td id='dropDownRow"+i+"' "+strOnClick+"  OnMouseOver='setBackground(this,&quot;#c7d2ff&quot,&quot;#eff2ff&quot;);' OnMouseOut='setBackground(this,&quot;#eff2ff&quot;,&quot;#c7d2ff&quot);'><input type='hidden' id='dropDownRow"+i+"cindex' value='"+cindex+"'><input type='hidden' id='dropDownRow"+i+"value' value='"+index+"'><input type='hidden' id='dropDownRow"+i+"tname' value='"+name+"'>"+name+"</td></tr>";
    }
    catch(err) {
    }
  }
  return str;
}

function showDDCList(listrecords,cnt) {
	var str="";
	for (i=0; i<Math.min(3,listrecords.length); i++) {
  	try {
  		var strname=listrecords[i].getAttribute("n");
  		var strindex=listrecords[i].getAttribute("i");
  		var strOnClick="OnClick='selectCountry(this); removeDropDownList();'";
      str+="<tr><td id='dropDownRow"+(i+cnt)+"' "+strOnClick+" OnMouseOver='setBackground(this,&quot;#c7d2ff&quot,&quot;#eff2ff&quot;);' OnMouseOut='setBackground(this,&quot;#eff2ff&quot;,&quot;#c7d2ff&quot);'><input type='hidden' id='dropDownRow"+(i+cnt)+"cname' value='"+strname+"'><input type='hidden' id='dropDownRow"+(i+cnt)+"value' value='"+strindex+"'>"+strname+"</td></tr>";
    }
    catch(err) {
    }
  }
  return str;
}

function fError(xrequest) {
	xrequest=null;
}

function setBackground(obj,color1,color2) {
	for (i=0; i<12;i++) {
	  var obj1=document.getElementById("dropDownRow"+i);
		if (obj1)
			if (obj1==obj) {
				obj1.style.backgroundColor=color1;
				selectObjId=i;
			}
		  	else {
      			var objBgSelect=obj1.style.backgroundColor;
      			if ((objBgSelect=="rgb(199, 210, 255)") || (objBgSelect=="#c7d2ff"))
		  			obj1.style.background=color2;
		  	}
  	}
}
