function initmap()
{
 levarray=new Array(0,document.getElementById('level1'),document.getElementById('level2'),document.getElementById('level3'),document.getElementById('level4'));
}
function wresize()
{
	//nado proverit pokazan li login ,esli pokazan to spryatat
	
if (parseInt(navigator.appVersion)>3) {
  if (navigator.appName.indexOf("Microsoft")!=-1)
 {
  winW = document.documentElement.clientWidth-22;
  winH = document.documentElement.clientHeight-1;
 }
   else
 {
   winW = window.innerWidth-20;
   winH = window.innerHeight-4;
 } 			
   
}
winW-=300;
winH-=120;


maindivW=winW;
maindivH=winH;

var maindiv=document.getElementById('maindiv');
maindiv.style.width=winW+'px';
maindiv.style.height=winH+'px';

var navigation=document.getElementById('navigation');
navigation.style.height=(winH+6)+'px';

  if(firstload)//esli perviy raz zagrugaetsya pokaza centr goroda
  {
    var defx,defy;
	defx=-(defaultx-Math.round(maindivW/2));//270 -centr karti
	defy=-(defaulty-Math.round(maindivH/2));

    if(defx<(-(divw[level]-maindivW)))defx=-(divw[level]-maindivW);
	if(defy<(-(divh[level]-maindivH)))defy=-(divh[level]-maindivH);
	if(defx>0)defx=0;
	if(defy>0)defy=0;
	
	
	var lev=document.getElementById('level'+level);
    lev.style.left=defx+'px';
	lev.style.top=defy+'px';
     
	lev.style.display='block' 
    firstload=false;
  }
ctopokazat(); 
}








document.onmouseup = enddrag;
document.onmousemove=drag;
function koleso()
{
 cancopy=false;
 savemousexy=true;
 if (window.addEventListener)
        window.addEventListener('DOMMouseScroll', wheel, false);
 window.onmousewheel = document.onmousewheel = wheel;
}

function remkoleso()
{
	cancopy=true;
	
 savemousexy=false;
    if (window.removeEventListener) 
        window.removeEventListener('DOMMouseScroll', wheel, false);
	window.onmousewheel = document.onmousewheel = null;
}




function handle(event,delta) {
        if (delta<0)
               {  izmenraz(event,'-1');  }
        else
               { izmenraz(event,'1');  }

}
 
function wheel(event){
        var delta = 0;
        if (!event) event = window.event;
        if (event.wheelDelta) {
                delta = event.wheelDelta/120; 
               // if (window.opera) delta = -delta;
        } else if (event.detail) {
                delta = -event.detail/3;
        }
        
		

		
		if (delta)
                handle(event,delta);


	 if (event.preventDefault)
                event.preventDefault();
		event.returnValue = false;

}













function hand()
{
 act='hand';
   	var maindiv=document.getElementById('maindiv');
    maindiv.style.cursor="url(http://www.maps.az/files/openhand.cur), default";
}



function slowuseradds(lll,ttt)
{
	var addelemaa=document.getElementById('useradds');
	addelemaa.style.left=lll+'px';
	addelemaa.style.top =ttt+'px';
}

function slowdivregmove(lll,ttt)
{
	var addelemaa=document.getElementById('divdateregpoint');
	addelemaa.style.left=lll+'px';
	addelemaa.style.top =ttt+'px';
}


 var timerrID;


function drag(ev)
{
  if(savemousexy)// save mouse koordinat
  {
	if(navigator.appName.indexOf("Explorer")!=-1)
	{
	  mmx=window.event.clientX+document.body.scrollLeft;
	  mmy=window.event.clientY+document.body.scrollTop;
	}
	  else
	{
	  mmx=ev.pageX;
	  mmy=ev.pageY;
	}

	 if(useradding)
	 { 
	   timerrID = window.setTimeout("slowuseradds("+(mmx-mapx-11)+","+(mmy-mapy-52)+")", 50);
	 }

  }
  if(bm && !onhint)  //drag and drop  bm -  begin move
  {
    var mx1,my1,dx,dy;
     mx1=mmx;// ranshe opredelyali (nado proverit)
	 my1=mmy;
	

	 dx=mx1-mousX;
	 dy=my1-mousY;	
	 mousX=mx1;
	 mousY=my1;
	 
	 var karta=document.getElementById('level'+level);

	 if(isNaN(dx)||isNaN(dy)){ dx=0;dy=0;}
	
	

	 var tt=parseInt(karta.style.top)+dy;
	 var ll=parseInt(karta.style.left)+dx;

     var ttold=parseInt(karta.style.top);
	 var llold=parseInt(karta.style.left);
	 
     

	 if(tt<(-(divh[level]-maindivH)))tt=-(divh[level]-maindivH);
	 if(ll<(-(divw[level]-maindivW)))ll=-(divw[level]-maindivW);
	 if(ll>0)ll=0;//proverka granic
 	 if(tt>0)tt=0;

	 karta.style.top=tt+'px';
	 karta.style.left=ll+'px';
	 
	 
	 // esli eset podskazka 
	 if(showhint)
	 {
	   var divhint=document.getElementById('divhint');
	   divhint.style.top=(parseInt(divhint.style.top)+tt-ttold)+'px';
	   divhint.style.left=(parseInt(divhint.style.left)+ll-llold)+'px';
	 }
	 
	 
	 
  }
}



function beginmove(ev)
{

  if(act=='hand')
  {
  	if(navigator.appName.indexOf("Explorer")!=-1)
	{
	  mousX=window.event.X;
	  mousY=window.event.Y;
	}
	  else
	{
	  mousX=ev.pageX;
	  mousY=ev.pageY;
	}
	
  //document.body.focus();
   bm=true;
   var maindiv=document.getElementById('maindiv');
   maindiv.style.cursor="url(http://www.maps.az/files/closedhand.cur), default";

    

  // cancel out any text selections
  }
}

function enddrag()
{
	
  	if((navigator.appName.indexOf("Explorer")!=-1)&& bm && (!onhint)) document.selection.empty();
	onhint=false;
	if(bm)
	{
	  bm=false;
	  ctopokazat();
	  var maindiv=document.getElementById('maindiv');
      maindiv.style.cursor="url(http://www.maps.az/files/openhand.cur), default";
	}
}









function create( name, attributes ) {
  var el = document.createElement( name );
  if ( typeof attributes == 'object' ) {
    for ( var i in attributes ) {
      el.setAttribute( i, attributes[i] );

      if ( i.toLowerCase() == 'class' ) {
        el.className = attributes[i];  // for IE compatibility

      } else if ( i.toLowerCase() == 'style' ) {
        el.style.cssText = attributes[i]; // for IE compatibility
      }
    }
  }
  
  for ( var i = 2; i<arguments.length; i++ ) {
    var val = arguments[i];
    if ( typeof val == 'string' ) { val = document.createTextNode( val ) };
    el.appendChild( val );
  }
  return el;
}




 function ctopokazat()
 {

   var levelobj=document.getElementById('level'+level);
   var levleft=-parseInt(levelobj.style.left);
   var levtop=-parseInt(levelobj.style.top);
   var beginX=Math.floor(levleft/imgw[level])+1;
   var beginY=Math.floor(levtop/imgh[level])+1;
   var endX=Math.floor((levleft+maindivW)/imgw[level])+1;
   var endY=Math.floor((levtop+maindivH)/imgh[level])+1;
   
     for(i=beginX;i<=endX;i++)
	  {
	 	for(j=beginY;j<=endY;j++)
		  {
		    var ind=level+'_'+j+'_'+i;
			if(!document.getElementById('img'+ind))
			{

				div=create( "div", { id: "img"+ind,style: "position:absolute; width:120px; height:120px; background: url(images/"+ ind +".gif); top:"+((j-1)*imgh[level])+"px;left:"+((i-1)*imgw[level])+"px" });
				levelobj.appendChild(div);

			}
		  }
	  }
 }
 

 function izmenraz(ev,napr)
 {
	
	
	var mx,my;
	mx=mmx-mapx;  //koordinati mishki minus raspolozhenie karti
	my=mmy-mapy;
	

   if((napr=='uvelpocentru')||(napr=='umenpocentru')) //dlya uvelichen i umen po centru
   {
   	mx=Math.round(winW/2);/////////////////////////////////////////////////////////
	my=Math.round(winH/2);
   }
  
    if(napr=='uvelpocentru')napr='1';
    if(napr=='umenpocentru')napr='-1';

	
	 var ll,tt,llold,ttold;
	 if(((act=='uvelichit' && napr=='0')||(napr=='1'))&&(level<4))
	 {
	 	closehint();
	 	var level1=document.getElementById('level'+level);
		var level2=document.getElementById('level'+(level+1));
		
		var ukazatel=document.getElementById('ukazatel');		
		ukazatel.style.top=(parseInt(ukazatel.style.top)-21)+"px";
   		//alert("uvelichit");

   	    level++;
	    llold=parseInt(level1.style.left);
		ttold=parseInt(level1.style.top);
	    ll=-((mx-llold)*k-mx);
	    tt=-((my-ttold)*k-my);


	   //alert(parseInt(level1.style.left)+'  '+parseInt(level1.style.top));
	   //alert(level1.style.left+'  '+level1.style.top);

	   //alert(ll+'  '+tt);
	 
	   level2.style.left=ll+'px';
	   level2.style.top=tt+'px';

	   
	   level1.style.display='none';
	   level2.style.display='block';
	   ctopokazat(); 
	   	     if(showhint)
		{
	     var divhint=document.getElementById('divhint');
		 divhint.style.left=((parseInt(divhint.style.left)+pngwidth)*k+ll-k*llold-pngwidth)+'px';
		 divhint.style.top=((parseInt(divhint.style.top)+deltahint+pngheight)*k+tt-k*ttold-pngheight-deltahint)+'px';

		}
	   
	 }
	   else
	 if(((act=='umenshit' && napr=='0')||(napr=='-1'))&&(level>1)&&(winW<divw[level-1]+10))
	 {
	 	closehint();
	 	var level1=document.getElementById('level'+(level-1));
		var level2=document.getElementById('level'+level);
		
		var ukazatel=document.getElementById('ukazatel');		
		ukazatel.style.top=(parseInt(ukazatel.style.top)+21)+"px";
	   
	   
	   level--;
	  
	    llold=parseInt(level2.style.left);
	    ttold=parseInt(level2.style.top);
	    ll=-Math.round(((mx-llold)/k-mx));
	    tt=-Math.round(((my-ttold)/k-my));
 		

		if(tt<(-(divh[level]-maindivH)))tt=-(divh[level]-maindivH);
		if(ll<(-(divw[level]-maindivW)))ll=-(divw[level]-maindivW);
		if(ll>0)ll=0;//proverka granic
 		if(tt>0)tt=0;



	   level1.style.left=ll+'px';
	   level1.style.top=tt+'px';
	   level2.style.display='none';
	   level1.style.display='block';
	   ctopokazat(); 
	   
	   	   	     if(showhint)
		{
	     var divhint=document.getElementById('divhint');
		 divhint.style.left=Math.round((parseInt(divhint.style.left)+pngwidth)/k+ll-llold/k-pngwidth)+'px';
		 divhint.style.top=Math.round((parseInt(divhint.style.top)+deltahint+pngheight)/k+tt-ttold/k-pngheight-deltahint)+'px';
		}
	 }  
	

 }
 
   function moveslow(naprovlen,delt)
  {
   if(delt>8)
   	  {
	    move(naprovlen,8,true);
   		timerID = window.setTimeout("moveslow('"+naprovlen+"',"+(delt-8)+")", 25);
	  }
	  else
	  {
	  	move(naprovlen,delt,true);
		ctopokazat();
	  }
  
  }

  function moveslowLT(naprovlen,delt,naprovlenl,deltl) //zdvig vniz, vlevo
  {
  	var endt=false,endl=false;
	
   if(delt>8)
   	  {
	   move(naprovlen,8,false);	
	   delt-=8   
	  }
     else
	  {
	  	endt=true;
	  	move(naprovlen,delt,false);
		delt=0;
	  }
   
   if(deltl>8)
   	  {
	   move(naprovlenl,8,false);
	   deltl-=8;	   
	  }
     else
	  {
	  	endl=true;
	  	move(naprovlenl,deltl,false);
		deltl=0;
	  }

   if(endt&&endl)
   	{
		ctopokazat();
   	}
	else
   timerID = window.setTimeout("moveslowLT('"+naprovlen+"',"+delt+",'"+naprovlenl+"',"+deltl+")", 25);

  }
 
  function move(naprovlen,step,board)
  {
   var karta=document.getElementById('level'+level);
   var divhint=document.getElementById('divhint');
   var tempr,oldpos;
   switch (naprovlen) 
   {
     case 'vverx' :
	    oldpos=parseInt(karta.style.top)
	 	tempr=oldpos+step;
		if(tempr>0 && board)tempr=0;
        karta.style.top=tempr+'px';
		divhint.style.top=(parseInt(divhint.style.top)+(tempr-oldpos))+'px';
        break;
     case 'vniz' :
		oldpos=parseInt(karta.style.top);
	    tempr=oldpos-step;
		if(tempr<(-(divh[level]-maindivH)))tempr=-(divh[level]-maindivH);
		karta.style.top=tempr+'px';
		divhint.style.top=(parseInt(divhint.style.top)+(tempr-oldpos))+'px';
        break;
     case 'nalevo' :
		oldpos=parseInt(karta.style.left);
		tempr=oldpos+step;
		if(tempr>0 && board)tempr=0;
        karta.style.left=tempr+'px';
		divhint.style.left=(parseInt(divhint.style.left)+(tempr-oldpos))+'px';
        break;
     case 'napravo' :
	 	oldpos=parseInt(karta.style.left);
	    tempr=oldpos-step;
		if(tempr<(-(divw[level]-maindivW)))tempr=-(divw[level]-maindivW);
        karta.style.left=tempr+'px';
		divhint.style.left=(parseInt(divhint.style.left)+(tempr-oldpos))+'px';
        break;   
   }
  }
  
  function razmer(naprovlen)
  {
  	var maindiv=document.getElementById('maindiv');
   switch (naprovlen) 
   {
     case 'uvelichit' :
        maindiv.style.cursor="url(http://www.maps.az/files/uvel.cur), default";
		act='uvelichit';
        break;
     case 'umenshit' :
        maindiv.style.cursor="url(http://www.maps.az/files/umen.cur), default";
		act='umenshit';
        break;
   }
  }
  
  
  function showhidepanel(whathide)
  {
  	var imgsrc=document.getElementById('img'+whathide).src;
  	if(imgsrc.substr((imgsrc.length-9),9)=='vverx.gif')
	{
	  document.getElementById('img'+whathide).src='files/vniz.gif';
	  document.getElementById('span'+whathide).style.display='none';
	}
	 else
	{
	  document.getElementById('img'+whathide).src='files/vverx.gif';	
	  document.getElementById('span'+whathide).style.display='block';
	}
	
  }
