var basic_width=470;
var basic_height=340;

var c=Math.pow(3,coefficient-1);	
var factor_coord=Math.pow(3,3-coefficient);	

var width=basic_width*c;
var height=basic_height*c;	
var step_x=basic_width/2;
var step_y=basic_height/2;		
		
var map=document.getElementById("map_img");
var view_finder=document.getElementById("view_finder");

var pointers_div=document.getElementById("pointers");
var form=document.f_objects;		
var form2=document.f_ch;
var form_selectors=document.f_selectors;
		
var elements_visible=new Array();

var bs1=document.getElementById("bm_s1");
var bs2=document.getElementById("bm_s2");
var bs3=document.getElementById("bm_s3");
 
function scale(size) {
	if (size!=coefficient) {
		cleaning();	
		dif=size-coefficient;		
		factor=Math.pow(3,dif);		
		coefficient=size;			
		c=Math.pow(3,coefficient-1);	
		factor_coord=Math.pow(3,3-coefficient);
		width=basic_width*c;
		height=basic_height*c;				
		pos_x=Math.round(((pos_x-step_x)*factor)+step_x);
		pos_y=Math.round(((pos_y-step_y)*factor)+step_y);		
		
		if (pos_x>0) {
			pos_x=0;
		}
		else if (pos_x<(-width+basic_width)) {
			pos_x=-width+basic_width;
		}
		if (pos_y>0) {
			pos_y=0;
		}
		else if (pos_y<(-height+basic_height)) {
			pos_y=-height+basic_height;
		}
		set_map();	
		set_buttons();	
		show();
	}
}

function move(left,top) {
	if (coefficient!=1) {
		pos_x_old=pos_x;
		pos_y_old=pos_y;
		if ((left==0)&&(top==0)) {
			pos_x=(-width+basic_width)/2;
			pos_y=(-height+basic_height)/2;
		}
		else {
			move_x=step_x*left;
			move_y=step_y*top;
			pos_x=pos_x+move_x;
			pos_y=pos_y+move_y;
			if (pos_x>0) {
				pos_x=0;
			}
			else if (pos_x<(-width+basic_width)) {
				pos_x=-width+basic_width;
			}
			if (pos_y>0) {
				pos_y=0;
			}
			else if (pos_y<(-height+basic_height)) {
				pos_y=-height+basic_height;
			}			
		}		
		if ((pos_x_old!=pos_x) || (pos_y_old!=pos_y)) {
			cleaning();
			move_map();				
			show();	
		}
	}
}

function show() {	
	elements_count=elements.length;	
	j=0;
	pos_x_abs=Math.abs(pos_x);
	pos_y_abs=Math.abs(pos_y);		
	for (i=0;i<elements_count;i++) {
		element_id=elements[i];
		obj_coord_x=Math.round(coord_x[i]/factor_coord)-9;
		obj_coord_y=Math.round(coord_y[i]/factor_coord)-8;
		if (((obj_coord_x+9)>pos_x_abs) && (obj_coord_x<(pos_x_abs+basic_width-12))) {
			if (((obj_coord_y+8)>pos_y_abs) && (obj_coord_y<(pos_y_abs+basic_height-12))) {			
				elements_visible[j]=element_id;
				j++;				
				obj=document.createElement("span");
				obj.innerHTML=j;					
				obj.style.left=obj_coord_x-pos_x_abs+"px";
				obj.style.top=obj_coord_y-pos_y_abs+"px";
				pointers_div.appendChild(obj);				
				el_div=document.getElementById("el_"+element_id);	
				el_div.style.display="block";
				el_span=el_div.getElementsByTagName("span");	
				el_span[0].innerHTML=j+") ";				
			}
		}
	}
}

function set_buttons() {
	bs1.style.background="url(/im/bm_s1.gif) no-repeat";	
	bs2.style.background="url(/im/bm_s2.gif) no-repeat";	
	bs3.style.background="url(/im/bm_s3.gif) no-repeat";
	eval("bs"+coefficient+".style.background='url(/im/bm_s"+coefficient+".gif) no-repeat -18px 0px';");
}	

function set_values() {
	form_selectors.coefficient_v.value=coefficient;
	form_selectors.pos_x_v.value=pos_x;
	form_selectors.pos_y_v.value=pos_y;	
}

function reset_values() {
	set_values();		
	selectors=form_selectors.getElementsByTagName("select");
	s_length=selectors.length;
	for (var i = 0; i < s_length; i++) {
		selectors[i][0].selected=true;
	}
}

function set_map() {
	map.src="/im/maps/map_"+coefficient+".gif";
	move_map();
}

function move_map() {
	map.style.left=pos_x+"px";
	map.style.top=pos_y+"px";
	set_view_finder();
}

function set_view_finder() {	
	factor_preview=Math.pow(3,coefficient);	
	width_vf=Math.round(basic_width/factor_preview);
	height_vf=Math.round(basic_height/factor_preview);		
	pos_x_vf=Math.round(Math.abs(pos_x/factor_preview));
	pos_y_vf=Math.round(Math.abs(pos_y/factor_preview));		
	view_finder.style.width=width_vf+"px";
	view_finder.style.height=height_vf+"px";	
	view_finder.style.left=pos_x_vf+"px";
	view_finder.style.top=pos_y_vf+"px";	
}

function cleaning() {
	pointers_div.innerHTML="";	
	elements_vis_count=elements_visible.length;	
	for (i=0;i<elements_vis_count;i++) {
		element_id=elements_visible[i];
		el_div=document.getElementById("el_"+element_id);	
		el_div.style.display="none";
	}
	elements_visible=new Array();	
}

function add(id) {
	cookie_enabled=CheckCookie();
	if (cookie_enabled == true) {
		if (eval("form2.c"+id+".checked")) {			
			el_s_div=document.getElementById("el_s_"+id);	
			el_s_div_parent=el_s_div.parentNode;
			el_s_div_parent.style.display="block";			
			el_s_div.style.display="block";
			el_s_checkbox=el_s_div.getElementsByTagName("input");	
			el_s_checkbox[0].checked=true;		
			ToCookie(cookie_map,id);	
		}
		else {
			del(id);
		}		
	}
}

function del(id) {
	if (eval("form2.c"+id+".checked")) {
		eval("form2.c"+id+".checked=false");
	}
	el_s_div=document.getElementById("el_s_"+id);	
	el_s_div.style.display="none";	
	DeleteFromCookie(cookie_map,id);	
}

function view(id) {
	name_w="view"+id;	
	source="/"+lang+"/view/index.php?i="+id;
	win_open(source,name_w,500,400,1);
}

function find_object(num) {
	pos_x_old=pos_x;
	pos_y_old=pos_y;
	number_square_x=Math.round(coord_x[num]/step_x);
	pos_x=-(step_x*(number_square_x-1));
	if (pos_x>0) {
		pos_x=0;
	}
	number_square_y=Math.round(coord_y[num]/step_y);
	pos_y=-(step_y*(number_square_y-1));
	if (pos_y>0) {
		pos_y=0;
	}	
	if (coefficient!=3) {
		cleaning();
		coefficient=3;
		c=9;
		factor_coord=1;
		width=basic_width*c;
		height=basic_height*c;	
		set_map();	
		set_buttons();	
		show();
	}
	else {
		if ((pos_x_old!=pos_x) || (pos_y_old!=pos_y)) {
			cleaning();
			move_map();				
			show();	
		}
	}
}

