var letters=new Object;;
var firlet;
var searchtext='';
var pagenum=1;
var atemp=new Array();

function parseresult(ptext)
{
	// 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<ptext.length;i++)
  {
     if(ptext.charAt(i)=='@')
    {
		if(k==0)// esli v noviy obj(fist property)
		{
		  atemp[t]= new Array();
		}
      atemp[t][k]=ptext.substr(start,(i-start));
	  k++;
	  start=i+1;
    }

	 if(k>=9)// esli proshel do konca stroki to uvel obj index
	 { 
		k=0;
		t++;
	 }
  }
  
  
 ///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++)
 {
    for(t=1;t<5;t++)//cikl po vsem 4-rem sloyam
   {
	  	//fob- finded objekt
	var backg;
     if(navigator.appName.indexOf("Explorer")!=-1)//esli explorer to backgroung....
	 {
		backg="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='files/"+ j +".png', sizingMethod='scale')";
	 }
	  else
	 {
		backg="background: no-repeat url(files/"+ j +".png)";
	 }

	   div=create( "div", { id: t+"fob"+atemp[j][6],style: "position:absolute; width:20px; height:26px; z-index:5; cursor:pointer;"+ backg +"; top:"+(Math.round(atemp[j][2]/Math.pow(2,(4-t)))-26)+"px;left:"+(Math.round(atemp[j][1]/Math.pow(2,(4-t)))-10)+"px" });

	div.setAttribute("onclick","showobjhint()");
	div.onclick = showobjhint;





	   levarray[t].appendChild(div);
   }
  
   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
   {
     if(atemp[0][7]>1)
     {
       showpagenavig(atemp[0][7],pagenavig);
     }
   }
  
}
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(pagenum);
 
 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');
  			
}

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(objloadinfo[obID])
	{
		if (addhintinfo(objinfo[obID][0],objinfo[obID][1],objinfo[obID][2],objinfo[obID][3],objinfo[obID][4],objinfo[obID][5],objinfo[obID][6],objinfo[obID][7]))
				showmovehint();
	}
	 else
	{
		requestdata('showobj.php?objID='+obID,'loadobjinfo');
	}
  
     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';
   obID=userobjarr[objID][3];
   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(objloadinfo[obID])
	{
		if (addhintinfo(objinfo[obID][0],objinfo[obID][1],objinfo[obID][2],objinfo[obID][3],objinfo[obID][4],objinfo[obID][5],objinfo[obID][6],objinfo[obID][7]))
				showmovehint();
	}
	 else
	{
		requestdata('showobj.php?objID='+obID,'loadobjinfo');
	}
  
     ctopokazat();
  return false;
}

function findit()
{
  var searchdiv=document.getElementById('searchdiv');
  searchdiv.style.height='0px';

  pagenum=1;
  var searchedit=document.getElementById('searchtext');
  searchtext=searchedit.value;
  requestdata('search.php?searchstr='+searchtext,'search');
  hidesearchhint();
  return false;
}


function focussearchtext()
{
  var searcht=document.getElementById('searchtext');
  searcht.focus();	
}

function hidesearchhint()
{
  var searchhint=document.getElementById('searchhint');
  searchhint.style.visibility="hidden";
}
function showsearchhint()
{
  var searchhint=document.getElementById('searchhint');
  searchhint.style.visibility="visible";
}

function findbylet(ev)
{
    if(ev.keyCode == 13)hidesearchhint();
			else
	{
      var searchhint=document.getElementById('searchhint');
      searchhint.style.visibility='visible';	
      var searchedit=document.getElementById('searchtext');
	  searchtext=searchedit.value;
	 if(searchtext.length>0)//proverka ne pustoe li pole
   { 
	  //alert(searchtext);
      // var letindex; //index toy bukvi na kotoroe nachinaetsya slovo



		firlet=searchtext.charAt(0);
        firlet=firlet.toLowerCase();



     if(!letters[firlet])
  	   {
		   letters[firlet]=new Array();
  		   requestdata('searchbyletter.php?letter='+firlet,'loadwordsbylet');
	   }
     else
      {
	    showsearchhint()
      }
   }//konec proverki ne pustoe li pole
    else
    {  //esli pole vvodimoe pole pustoe nado ochistit podskazku ii spryatat
  	    var searchtable=document.getElementById('searchtable'); // ochishaem rezultat predidushego poiska
     for(i=(searchtable.rows.length-1);i>=0;i--)
		  searchtable.deleteRow(i);
	 hidesearchhint();
    }
  }
}



// search hint on mouse over
function onsh()
{
	this.style.background='#88A2FB';
	//alert('on');
}
// search hint on mouse out
function outsh()
{
	this.style.background='#ffffff';
	//alert('out');
}

function clicksh()
{
 //alert('click');
  var searchtext=document.getElementById('searchtext');

  var  tempstr=this.innerHTML;
  
   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.visibility="hidden";
 findit();
}



function showsearchhint()
{
  var searchhint=document.getElementById('searchhint');
  
  var searchtable=document.getElementById('searchtable'); // ochishaem rezultat predidushego poiska
   for(i=(searchtable.rows.length-1);i>=0;i--)
	searchtable.deleteRow(i);

var k=0;
  var sovpad,a,b;
  var haveresult=false; 
  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;
		var newRow=searchtable.insertRow(k);
		k++;
		var newCell = newRow.insertCell(0);
		newCell.innerHTML=letters[firlet][i] + '<small style="color: red">('+ letters[firlet][i+1] +')</small>';

		newCell.setAttribute("onmouseover","onsh()");
		newCell.onmouseover = onsh;

		newCell.setAttribute("onmouseout","outsh()");
		newCell.onmouseout = outsh;
				
		newCell.setAttribute("onclick","clicksh()");
		newCell.onclick = clicksh;	

				//alert(letters[firlet][i] +' tip '+letters[firlet][i+1]);
				//searchhint.innerHTML+="<tr><td onMouseOver=\"this.style.background='#88A2FB'\" onMouseOut=\"this.style.background='#ffffff'\">"+ letters[firlet][i] +"</td></tr>";
			  }
  }
     if(!haveresult)hidesearchhint();
}
