var middle_x,middle_y,new_scale;

function getBounds(element){
    var left = element.offsetLeft;
    var top = element.offsetTop;
    for (var parent = element.offsetParent; parent; parent = parent.offsetParent){
	left += parent.offsetLeft - parent.scrollLeft;
	top += parent.offsetTop - parent.scrollTop
    }
    left+=document.body.scrollLeft;
    top+=document.body.scrollTop;
    return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}
		    
function fixhouse(){
  var fx,fy,lx,ly;
  if (isIe()){
    var bounds = getBounds(document.getElementById('map1x1'));
    fy = bounds.top;
    fx = bounds.left;
    bounds = getBounds(document.getElementById('map'+rows_y+'x'+rows_x));
    ly = bounds.top+100;
    lx = bounds.left+100;
    hx+= fx;
    hy+= fy;
   } else {
    fx=0;
    fy=0;
    lx=460;
    ly=460;
   }
    //Если домик в области видимости...
    if ((hx>fx) && (hy>fy) && (hx<=lx) && (hy<=ly)){
	document.getElementById('house').style.display='';
    }else{
	document.getElementById('house').style.display='none';	
    }
    if (document.getElementById('house').style.display!='none'){
	document.getElementById('house').style.top=hy+"px";
	document.getElementById('house').style.left=hx+"px";
    }
  if (isIe()){
    hx-= fx;
    hy-= fy;
  }
}

function movemap(type){
    var i;
    cacheImages();
    
    switch (type) {
	case 'U':
	    if (current_y==1) break;
	    hy+=100;
		for (i=rows_y; i>1; i--){
			for (j=1; j<=rows_x; j++){
				document.getElementById('map'+i+'x'+j).src=document.getElementById('map'+(i-1)+'x'+j).src;
			}
	    }
	    for (i=1; i<=rows_x; i++){
			document.getElementById('map1x'+i).src=pics_base_url+'image'+(current_y-1)+'x'+(i+current_x-1)+'.jpg';
	    }
	    current_y--;
	    break;
	    
	case 'D':
	    if (current_y>total_y-rows_y) break;
	    hy-=100;
	    for (i=1; i<=rows_y-1; i++){
			for (j=1; j<=rows_x; j++){
				document.getElementById('map'+i+'x'+j).src=document.getElementById('map'+(1*i+1)+'x'+j).src;
			}
	    }
	    for (i=1; i<=rows_x; i++){
			document.getElementById('map'+rows_x+'x'+i).src=pics_base_url+'image'+(1*rows_y+1*current_y)+'x'+(1*i+1*current_x-1)+'.jpg';
	    }
	    current_y++;
	    break;
	    
	case 'R':
	    if (current_x>total_x-rows_x) break;
	    hx -=100;
	    for (i=1; i<=rows_x-1; i++){
		for (j=1; j<=rows_y; j++){
		    document.getElementById('map'+j+'x'+i).src=document.getElementById('map'+j+'x'+(i+1)).src;
		}
	    }
	    for (i=1; i<=rows_y; i++){
		document.getElementById('map'+i+'x'+rows_x).src=pics_base_url+'image'+(current_y+i-1)+'x'+(current_x+rows_x)+'.jpg';
	    }
	    current_x++;
	    break;
	    
	case 'L':
	    if (current_x==1) break;
	    hx+=100;
	    for (i=rows_x; i>1; i--){
		for (j=1; j<=rows_y; j++){
		    document.getElementById('map'+j+'x'+i).src=document.getElementById('map'+j+'x'+(i-1)).src;
		}
	    }
	    for (i=1; i<=rows_y; i++){
		document.getElementById('map'+i+'x1').src=pics_base_url+'image'+(current_y+i-1)+'x'+(current_x-1)+'.jpg';
	    }
	    current_x--;
	    break;
	    
	case 'UL':
	    movemap('U');
	    movemap('L');
	    break;
	    
	case 'UR':
	    movemap('U');
	    movemap('R');
	    break;
	    
	case 'DL':
	    movemap('D');
	    movemap('L');
	    break;
	    
	case 'DR':
	    movemap('D');
	    movemap('R');
	    break;
    }
    fixhouse();
}

function calculateMiddleX(){ return (50*rows_x + 100*current_x); }

function calculateMiddleY(){ return (50*rows_y + 100*current_y); }

function scaleButton(id){
	middle_x  = calculateMiddleX();
	middle_y  = calculateMiddleY();
	if (id=='more' || id=='less'){
	    new_scale = 1*current_scale+1*((id=="more")?10:-10);
	}else new_scale = id;
	
	if (document.getElementById('dot_'+current_scale)!==null){
	    document.getElementById('dot_'+current_scale).style.display='none';
	    document.getElementById('dot_'+new_scale).style.display='';
	}
}

function cacheImages(){
    var i;
    var img = document.createElement('img');
    for (i=0; i<=rows_x; i++){
	    img.src=pics_base_url+'image'+(current_y-1)+'x'+(current_x+i)+'.jpg';
	    img.src=pics_base_url+'image'+(current_y+rows_y)+'x'+(current_x+i)+'.jpg';
    }
    
    for (i=0; i<=rows_y; i++){
	    img.src=pics_base_url+'image'+(current_y+i)+'x'+(current_x+rows_x)+'.jpg';
	    img.src=pics_base_url+'image'+(current_y+i)+'x'+(current_x-1)+'.jpg';
    }
}