var letters=new Object;
var firlet;
var searchtext='';
var pagenum=1;
var atemp=new Array();


function loadwordsbylet(datas)
{
	letters[datas[0][0]]=new Array();
 for(i=0;i<(datas.length-1);i++)
 {
	letters[datas[0][0]][2*i]=datas[i][1];
	letters[datas[0][0]][2*i+1]=datas[i][2];
 }
 showsearchhint();  //i pokazat	
}
/*
function searchresult(datas)
{
	alert(datas[0][0]+" "+datas[0][1]+" "+datas[0][2]+" "+datas[0][3]+" ");
}
*/

function searchresult(datas)
{
	// nado vse obnulit
	 // sozdaem obiekti 4 sloya 
    var levarray=new Array(0,document.getElementById('level1'),document.getElementById('level2'),document.getElementById('level3'),document.getElementById('level4'));
   // udalyaem resultat predidushego poiska s karti
   	  for(j=0;j<atemp.length;j++)
  {
  
    for(i=1;i<5;i++)
	{
	  var sshint=document.getElementById( i+"fob"+atemp[j][6])
	  levarray[i].removeChild(sshint);
	}
  }
		
	 atemp=new Array();
	//alert(ptext);
	var start=0;// nachalo slova
	var t=0;//obj index
    var k=0;//property index

  for(i=0;i<(datas.length-1);i++)
  {

	  atemp[i]= new Array();
	  for(j=0;j<=7;j++)
      	atemp[i][j]=datas[i][j];

  }
  
  
 ///sozdaem obyekti na stranici
 var searchresult=document.getElementById('searchresult');


   while(searchresult.hasChildNodes()){
    searchresult.removeChild(searchresult.firstChild);
	
  }

 //vivodim rezultat poiska na kartu
  for(j=0;j<atemp.length;j++)
 {

//var iconn=new createicon('files/'+ j+'.png',20,26,10,26);
//var objj=new addobjtomap('fob',atemp[j][1],atemp[j][2],iconn,atemp[j][6]); 
  
   var div1 = document.createElement('div');
   div1.setAttribute('id','search1');


   var tab1=document.createElement('table');
   //tab1.setAttribute('width','100%');
   tab1.setAttribute('border','0');
   tab1.setAttribute('cellspacing','0');
   tab1.setAttribute('cellpadding','0');


   // novaya stroka  
   var rowid=0;
   var newRow=tab1.insertRow(rowid);
	  rowid++;
  // noviy stolbec 1 
   var newCell = newRow.insertCell(0);
   newCell.className='tagtd';
  
   var img1=document.createElement('img');
   img1.setAttribute('src','files/'+j+'.png');
   newCell.appendChild(img1);
  // noviy stolbec 2  

   var newCell2=newRow.insertCell(1);
   newCell2.innerHTML='<a href="#" class="itemlink" onclick="return showserches('+j+')">'+atemp[j][0]+'</a><p class="address">'+atemp[j][4]+'</p><p class="phone">'+atemp[j][5]+'</p>';
   //alert(atemp[j][0]);

   // dobavlyaem table k div
   div1.appendChild(tab1);
   //dobavlyaem div k searchresult
   searchresult.appendChild(div1);
  /// konec sozdaniya elementov
  
  }
   
   document.getElementById('navigation').scrollTop=0; 
   showsearchresultslow(searchresult);	  
	  
	  
  
 var pagenavig=document.getElementById('pagenavig');
   while(pagenavig.hasChildNodes()){
    pagenavig.removeChild(pagenavig.firstChild);	
  }
 
   if(atemp.length>0) //esli massiv
   {
   	//alert(atemp[0][7]);
     if(atemp[0][7]>1)
     {
       showpagenavig(atemp[0][7],pagenavig);
     }
   }
   
  // alert(atemp.length);
   var iconn;
   var objj;
     for(s=0;s<atemp.length;s++)
  {
    iconn=new createicon('files/'+ s+'.png',20,26,10,26);
    objj=new addobjtomap('fob',atemp[s][1],atemp[s][2],iconn,atemp[s][6]);
  }
}
var mazbug;
function showsearchresultslow(searchresult)
{
	mazbug=true;
	var hei=searchresult.offsetHeight;
	if(hei>0)hei+=10;
	/*searchresult.style.height=hei +'px';*/
	srr = window.setTimeout("slowheightgrow("+hei+",0);", 50);
}

function slowheightgrow(maxheight,nowheight)
{
	if(mazbug)
	{
	  if (navigator.appName=="Netscape" || navigator.appName=="Opera") 
	  {
	   var searchresult=document.getElementById('searchresult');
	   var hei=searchresult.offsetHeight;
	   maxheight=hei+10;
	  }
	  else
		 mazbug=false;
	}
	
	var searchdiv=document.getElementById('searchdiv');
	if((nowheight+20)>maxheight)
	 {  
	   searchdiv.style.height=maxheight +'px';
	 }
						else  
	{
	  searchdiv.style.height=(nowheight+20) +'px';
	  srr = window.setTimeout("slowheightgrow("+maxheight+","+(nowheight+20)+");", 50);
	}
}





function showpagenavig(pages,pagenavig)
{

 // alert(pages);
 
 var nav="";
 if(pagenum!=1)nav="<a href='#' onclick=\"gotopage('search.php?searchstr="+searchtext+"&page="+(pagenum-1) +"pages="+pages+"',(pagenum-1));\">Previous</a>";


  var rednum;
  for(f=1;f<=pages;f++)
  {
  	if(f==pagenum)rednum='id="selected"';
			 else rednum='';
    nav=nav+"<a href='#' "+ rednum +" onclick=\"gotopage('search.php?searchstr="+searchtext+"&page="+ f +"pages="+pages+"',"+f+");\">"+f+"</a>";
  }
   if(pagenum!=pages)
  	nav=nav+"<a href='#' onclick=\"gotopage('search.php?searchstr="+searchtext+"&page="+(pagenum+1) +"pages="+pages+"',(pagenum+1));\">Next</a>";


   pagenavig.innerHTML=nav;
   pagenavig.style.display='block';
}
function gotopage(url, pagen)
{
 //alert(pagen);	
  pagenum=pagen;
  //requestdata(url,'search');
  loadXMLDoc(url,'searchresult',7); 			
}

function showserches(objID)
{
	//objID-  ne ID obyekta, a index massiva atemp

     var lx,ly;
   var lev=document.getElementById('level'+level);
   lx=-Math.round(atemp[objID][1]/ Math.pow(k,(4-level)))+Math.round(maindivW/2);
   ly=-Math.round(atemp[objID][2]/ Math.pow(k,(4-level)))+Math.round(maindivH/2);

    ly+=80;// smeshaem vse vniz na 80 ot centra ekrana
	if(lx>0)lx=0; //proverka granic
 	if(ly>0)ly=0;
	if(ly<(-(divh[level]-maindivH))&& (ly<0) )ly=-(divh[level]-maindivH);
	if(lx<(-(divw[level]-maindivW))&& (lx<0))lx=-(divw[level]-maindivW); 
	//alert(lx+' '+ly);
   lev.style.left=lx +'px';   
   lev.style.top=ly+'px';

//podskazka

//////////////////////////sdes nado zagruzit dannie obyekta///////////////////////////////////////////////////
   var divhint=document.getElementById('divhint');
   var divinfo=document.getElementById('divinfo');
   
   
   tipznacka='fob';
   obID=atemp[objID][6];
   tempt=Math.round((atemp[objID][2])/Math.pow(2,(4-level)))-26;//26 i 10 nujni dlya togo chto
   templ=Math.round((atemp[objID][1])/Math.pow(2,(4-level)))-10;//zdes tochnie dannie, tam priveden
	if(objinfo[obID])
	{
		addhintinfo(obID,objinfo[obID]);
	}
	 else
	{
		loadXMLDoc('showobj.php?objID='+obID,'loadobjinfo',8);
	}
  
     ctopokazat();
  return false;
}

function showuserobj(objID)
{
	//objID-  ne ID obyekta, a index massiva atemp

     var lx,ly;
   var lev=document.getElementById('level'+level);
   lx=-Math.round(userobjarr[objID][1]/ Math.pow(k,(4-level)))+Math.round(maindivW/2);
   ly=-Math.round(userobjarr[objID][2]/ Math.pow(k,(4-level)))+Math.round(maindivH/2);

    ly+=80;// smaeshaem vse vniz na 80 ot centra ekrana
	if(lx>0)lx=0; //proverka granic
 	if(ly>0)ly=0;
	if(ly<(-(divh[level]-maindivH))&& (ly<0) )ly=-(divh[level]-maindivH);
	if(lx<(-(divw[level]-maindivW))&& (lx<0))lx=-(divw[level]-maindivW); 
	//alert(lx+' '+ly);
   lev.style.left=lx +'px';   
   lev.style.top=ly+'px';

//podskazka

//////////////////////////sdes nado zagruzit dannie obyekta///////////////////////////////////////////////////
   var divhint=document.getElementById('divhint');
   var divinfo=document.getElementById('divinfo');
   
   
   tipznacka='fob';
   
   tempt=Math.round((userobjarr[objID][2])/Math.pow(2,(4-level)))-26;//26 i 10 nujni dlya togo chto
   templ=Math.round((userobjarr[objID][1])/Math.pow(2,(4-level)))-9;//zdes tochnie dannie, tam priveden

		 	if(objinfo[objID])
	{
		addhintinfo(userobjarr[objID][3],objinfo[userobjarr[objID][3]])
				//showmovehint();
	}
	 else
	{
		loadXMLDoc('showobj.php?objID='+userobjarr[objID][3],'loadobjinfo',8);
	}
  
     ctopokazat();
  return false;
}

function findit()
{
  var searchdiv=document.getElementById('searchdiv');
  searchdiv.style.height='0px';

  pagenum=1;
  var searchedit=document.getElementById('searchtext');
  searchtext=searchedit.value;
  loadXMLDoc('search.php?searchstr='+searchtext,'searchresult',7);
  hidesearchhint();
  return false;
}


function focussearchtext()
{
  var searcht=document.getElementById('searchtext');
  searcht.focus();	
}

function hidesearchhint()
{
  //init param
  nowupdown=-1;
  document.getElementById("searchtext").name="dinamic"+Math.random();
  //end init param
  var searchhint=document.getElementById('searchhint');
  searchhint.style.display="none";
}
function navigupdown(ev)
{
 	if(ev.keyCode == 40)keyupdown("down");
		    else
	if(ev.keyCode == 38)keyupdown("up");
			else
	if(ev.keyCode == 13)keyupdown("enter");	
}

function findbylet(ev)
{
	//alert("findbylet");
    if(ev.keyCode == 13)hidesearchhint();//enter
			else
	if(ev.keyCode == 40 || ev.keyCode == 38){ }
	else
	{
      var searchhint=document.getElementById('searchhint');
      searchhint.style.display='block';	
      var searchedit=document.getElementById('searchtext');
	  searchtext=searchedit.value;
	 if(searchtext.length>0)//proverka ne pustoe li pole
   { 
		firlet=searchtext.charAt(0);
        firlet=firlet.toLowerCase();



     if(!letters[firlet])
  	   {
		   letters[firlet]=new Array();
  		   loadXMLDoc('searchbyletter.php?letter='+firlet,'loadwordsbylet',2);
	   }
     else
      {
	    showsearchhint()
      }
   }//konec proverki ne pustoe li pole
    else
    {  //esli pole vvodimoe pole pustoe nado ochistit podskazku ii spryatat
	   searchhint.innerHTML="";
	   hidesearchhint();
    }
  }
}



// search hint on mouse over
function onsh(li)
{
	li.className="sel";
}
// search hint on mouse out
function outsh(li)
{
	li.className="nonsel";
}

function clicksh(tempstr)
{
 //alert('click');
  var searchtext=document.getElementById('searchtext');


   var i=0;
  while(tempstr.charAt(i)!='<')
  {
  	i++;
  }
	searchtext.value=tempstr.substr(0,i);
  //searchtext.value=this.innerText;

 var searchhint=document.getElementById('searchhint');
 searchhint.style.display="none";
}



function showsearchhint()
{
  nowupdown=-1; //shto pokazivat sinim
	//alert("showsearchhint");
  var searchhint=document.getElementById('searchhint');
  

  searchhint.innerHTML="";
  
  var k=0;
  var sovpad,a,b;
  var haveresult=false; 
  var searchhintinner='<ul id="hintul">';
  for(i=0;i<letters[firlet].length;i+=2) //cikl povsem slovam na etu bukvu
  {
  	sovpad=true;
	for(j=0;j<searchtext.length;j++) //cikl po slovu, vvedennoy polzovatelem
	{
	  a=searchtext.charAt(j);
	  b=letters[firlet][i].charAt(j);
	  if(a.toLowerCase()!=b.toLowerCase())
	  {
	   sovpad=false;	
	   break;
	  }
	//  alert(sovpad +'  lll');
	}
	if(sovpad){
		haveresult=true;	
		searchhintinner+='<li onclick="clicksh(this.innerHTML);findit();" onmouseover="onsh(this)" onmouseout="outsh(this)">'+letters[firlet][i]+' <span>('+letters[firlet][i+1]+')</span></li>';
		k++;
			  }
  }
  searchhintinner+='</ul>';
  searchhint.innerHTML=searchhintinner;
  searchhint.scrollTop=0;
     if(!haveresult)hidesearchhint();
}


var nowupdown=-1;
function keyupdown(direc)
{
  //alert(direc);
 // var scroldelta=20;
  var searchhint=document.getElementById('searchhint');
  var lihieght;
  var ul=document.getElementById('hintul');
  var childs=ul.childNodes.length-1;

  if(direc=='down')
  {
  	if(childs>nowupdown)
	{
	 ul.childNodes[nowupdown+1].className="sel";
	
	  if(nowupdown>-1)
	 {
	    ul.childNodes[nowupdown].className="nonsel";
		lihieght=ul.childNodes[nowupdown].offsetHeight;
		searchhint.scrollTop=searchhint.scrollTop+lihieght;
	 }
	
	 	
	 	
	 
	 nowupdown++;	
	}
  }
   else
   if(direc=='up')
  {
  	if(nowupdown>0)
	{
	  ul.childNodes[nowupdown-1].className="sel";
	  ul.childNodes[nowupdown].className="nonsel";
	  lihieght=ul.childNodes[nowupdown].offsetHeight;
	  nowupdown--;
	  searchhint.scrollTop=searchhint.scrollTop-lihieght;	
	}
  }
   else
   if(direc=='enter')
  {
  	if(nowupdown>=0)
  		clicksh(ul.childNodes[nowupdown].innerHTML);
  }	
  //document.getElementById('hintul').childNodes.length;
}

