﻿
	var p1, p2, oO, oR, zP, zM;
	var m_width = 698;
	var m_height = 355;
	var m_lon =	18.6782;
	var m_lat = 54.4913;
	var pl_min_lon = 12.50;
	var pl_min_lat = 48.90;
	var pl_max_lon = 24.00;
	var pl_max_lat = 55.90;
	var m_scale = 15;
	var min_width = 60;
	var min_height = 60;
	var b_width = 180;
	var b_height = 120;
	var b_x1 = m_width/2-b_width/2;
	var b_y1 = m_height/2-b_height/2;
	var b_x2 = m_width/2+b_width/2;
	var b_y2 = m_height/2+b_height/2;
	var ico_w = 19;
	var ico_h = 19;
					
	var map_isIE = navigator.appName.indexOf("Microsoft") != -1;
	var map_isOpera = ( /opera/i.test(navigator.userAgent) );

	var stat_after_init_map	= 0;
	var stat_click_set_map = 0;
	var stat_click_menu = 0;
	var stat_click_menu_cnt = 0;
	var stat_map_green_start = 0;

	function getE(id) {
		return document.getElementById(id);
	}

	function ustaw(x1,y1,x2,y2,mx,my,ms,action) {
		//deb_write(x1+' '+y1+' '+x2+' '+y2+' '+mx+' '+my+' '+ms+' '+action);
		//deb_write(mx+' '+my+' '+ms+' '+action);
		getE('map_mx1').value = x1;
		getE('map_my1').value = y1;
		getE('map_mx2').value = x2;
		getE('map_my2').value = y2;
		getE('map_mx').value = mx;
		getE('map_my').value = my;
		getE('map_ms').value = ms;
		set_map_param(mx,my,m_scale);
		set_map_center();
		//set_send_pos_to_mini_map(x1, y1, x2 ,y2);
	}

	function menu_set_map(nr) {
		if(nr==1||nr==3) {
			if(!map_isIE&&!map_isOpera) stat_map_green_start = 0;
			stat_click_menu=1;if(!map_isIE&&!map_isOpera)mapobject_s.map_init=0;
			stat_click_menu_cnt++;
		} else {
			if(map_isOpera)after_init_map();
			mapobject_s.hideToolbar();
		}
	}

	function map_flash_start(name) {
		//deb_write('map_flash_start: '+stat_after_init_map+' ,'+name);
		stat_map_green_start = 1;
		if(stat_after_init_map==1)
			set_param_to_mini_map();		
	}

	function set_param_to_mini_map() {
		var p=mapobject_s.getMapParams();
		var m1_lon = p.min_lon;
		var m1_lat = p.min_lat;
		var m2_lon = p.max_lon;
		var m2_lat = p.max_lat;
		set_send_pos_to_mini_map(m1_lon, m2_lat, m2_lon ,m1_lat);
	}

	function set_map() {
        getE('main-search').className='show2';
		getE('cbox_map').style.display = 'none';
		set_map_center();
		if(stat_after_init_map==1) {
			set_param_to_mini_map();
		}
		else {
			stat_click_set_map=1;
		}
		//set_val();
		//set_map_move();
	}

	function set_map_param(mx,my,ms) {
		m_lon = parseFloat(mx);
		m_lat = parseFloat(my);
		m_scale = parseFloat(ms);
	}

	function set_map_center() {
		//deb_write(mapobject_s+' '+m_lon+' '+m_lat+' '+m_scale);
		mapobject_s.centerTo(m_lon,m_lat,m_scale);
	}

	function set_map_move() {

		var x1 = parseInt(p1.style.left);
		var y1 = parseInt(p1.style.top);
		var x2 = parseInt(p2.style.left);
		var y2 = parseInt(p2.style.top);

		var ow, oh, px, py;
		
		if(x1<x2) { ox = x1; ow = x2 - x1; } else { ox = x2; ow = x1 - x2; }
		if(y1<y2) { oy = y1; oh = y2 - y1; } else { oy = y2; oh = y1 - y2; }

		//if(ox==0 || ox+ow+ico_w==m_width || oy==0 || oy+oh+ico_h==m_height) {

		var p=mapobject_s.getMapParams();
    	var mapScale=p.scale;

		var mar = 3;
		if(ox<mar || ox+ow+ico_w>m_width-mar || oy<mar || oy+oh+ico_h>m_height-mar) {
		}
		else return;

		var l1=mapobject_s.convertToGeo(ox+ow/2,oy+oh/2);
		var mapCenterX = l1.lon;
		var mapCenterY = l1.lat;

		if(l1.lon<pl_min_lon) mapCenterX = pl_min_lon+2.5;
		if(l1.lat<pl_min_lat) mapCenterY = pl_min_lat+0.5;
		if(l1.lon>pl_max_lon) mapCenterX = pl_max_lon-0.5;
		if(l1.lat>pl_max_lat) mapCenterY = pl_max_lat-0.5;
		
		set_map_param(mapCenterX, mapCenterY, mapScale);
		set_map_center();
		
		var p=mapobject_s.getMapParams();
		//deb_write(p.min_lon+', '+p.max_lat+', '+p.max_lon+', '+p.min_lat);
		set_send_pos_to_mini_map(p.min_lon, p.max_lat, p.max_lon ,p.min_lat); // celow zamiana min i max
	//	set_send_pos_to_mini_map(m1_lon,	m1_lat,	   m2_lon,    m2_lat);
	}

	function set_bor() {
		oR.style.top = parseInt(oO.style.top)+'px';
		oR.style.left = parseInt(oO.style.left)+'px';
		oR.style.height = (parseInt(oO.style.height)?(parseInt(oO.style.height)-2):0)+'px';
		oR.style.width = (parseInt(oO.style.width)?(parseInt(oO.style.width)-2):0)+'px';

		var x1 = parseInt(p1.style.left);
		var y1 = parseInt(p1.style.top);
		var x2 = parseInt(p2.style.left);
		var y2 = parseInt(p2.style.top);

		var ow, oh, px, py;

		if(x1<x2) { ow = x2 - x1; px = x2; } else { ow = x1 - x2; px = x1; }
		if(y1<y2) { oh = y2 - y1; py = y2; } else { oh = y1 - y2; py = y1; }

		oO.maxX = (m_width  - Math.abs(ow + ico_w) );
		oO.maxY = (m_height - Math.abs(oh + ico_h ) );

		zP.style.left = (px - ow/2 + 2) +'px';
		zP.style.top = (py - oh/2 - 10)+'px';
		zM.style.left = (px - ow/2 + 2)+'px';
		zM.style.top = (py - oh/2 + 8)+'px';

		//getE('w1').style.width = oO.maxX+'px';
		//getE('w1').style.height = oO.maxY+'px';
	}

	function set_ob() {
		var x1 = parseInt(p1.style.left);
		var y1 = parseInt(p1.style.top);
		var x2 = parseInt(p2.style.left);
		var y2 = parseInt(p2.style.top);

		var ox, oy, ow, oh;

		if(x1<x2) { ox = x1; ow = x2 - x1; } else { ox = x2; ow = x1 - x2; }
		if(y1<y2) { oy = y1; oh = y2 - y1; } else { oy = y2; oh = y1 - y2; }

		oO.style.left = ox+'px';
		oO.style.width = Math.abs(ow + ico_w)+'px';

		oO.style.top = oy+'px';
		oO.style.height = Math.abs(oh + ico_h)+'px';
	}

	function set_pp() {
		var x1 = parseInt(oO.style.left);
		var y1 = parseInt(oO.style.top);
		var x2 = parseInt(oO.style.left) + parseInt(oO.style.width) - ico_w;
		var y2 = parseInt(oO.style.top) + parseInt(oO.style.height) - ico_h;

		p1.style.left = x1+'px';
		p1.style.top = y1+'px';
		p2.style.left = x2+'px';
		p2.style.top = y2+'px';
	}

	function set_val() {
		var x1 = parseInt(p1.style.left);
		var y1 = parseInt(p1.style.top);
		var x2 = parseInt(p2.style.left);
		var y2 = parseInt(p2.style.top);

		var l1=mapobject_s.convertToGeo(x1,y1);
		var l2=mapobject_s.convertToGeo(x2,y2);

		var p = get_par();
		getE('map_x1').value = l1.lon.fmt(4);
		getE('map_y1').value = l1.lat.fmt(4);
		getE('map_x2').value = l2.lon.fmt(4);
		getE('map_y2').value = l2.lat.fmt(4);
		getE('map_ox1').value = x1;
		getE('map_oy1').value = y1;
		getE('map_ox2').value = x2;
		getE('map_oy2').value = y2;
		getE('map_mx').value = p.x.fmt(4);
		getE('map_my').value = p.y.fmt(4);
		getE('map_ms').value = p.s;

		var p=mapobject_s.getMapParams();
		getE('map_mx1').value = p.min_lon.fmt(4);
		getE('map_my1').value = p.min_lat.fmt(4);
		getE('map_mx2').value = p.max_lon.fmt(4);
		getE('map_my2').value = p.max_lat.fmt(4);
	}

	function get_par() {
		var s=mapobject_s.getMapParams();

    	var mapScale=s.scale;
		var mapCenterX = s.min_lon+(s.max_lon-s.min_lon)/2;
		var mapCenterY = s.min_lat+(s.max_lat-s.min_lat)/2;
		return {x:mapCenterX,y:mapCenterY,s:mapScale};
	}

	function ch_zoom(id) {

		var p = get_par();
		var x1 = parseInt(p1.style.left);
		var y1 = parseInt(p1.style.top);
		var ow = parseInt(oO.style.width);
		var oh = parseInt(oO.style.height);
		p.x = x1 + ow/2;
		p.y = y1 + oh/2;
		var l1=mapobject_s.convertToGeo(p.x,p.y);

		if(id=='zp') {
			mapobject_s.centerTo(l1.lon,l1.lat,p.s);	
			mapobject_s.zoom_in();
		}
		else {
			mapobject_s.centerTo(l1.lon,l1.lat,p.s);	
			mapobject_s.zoom_out();
		}

		var p = get_par();
		m_scale = p.s;

		if(id=='zp'){
			//deb_write(p.s);
			if(p.s==3)
				bl_zoom('zp', 0);
			if(p.s==14)
				bl_zoom('zm', 1);
		}
		else {
			if(p.s==15)
				bl_zoom('zm', 0);
			if(p.s==5)
				bl_zoom('zp', 1);
		}

		p1.style.left = (m_width/2  - ow/2)+'px';
		p1.style.top  = (m_height/2 - oh/2)+'px';
		p2.style.left = (m_width/2  + ow/2 - ico_w)+'px';
		p2.style.top  = (m_height/2 + oh/2 - ico_h)+'px';

		set_ob();
		set_bor();
	}

	function bl_zoom(id, on) {
		
		var el = getE(id);
		var name = '';
		if(id=='zp') name = 'plus';
		else		 name = 'minus';

		if(on==1) {
			el.src = 'img/'+name+'_0.png';
			el.onmouseover=function() { el.src='img/'+name+'_1.png'; };
			el.onmouseout=function() { el.src='img/'+name+'_0.png'; };
			el.onclick=function() { ch_zoom(id); };
		}
		else {
			el.src = 'img/'+name+'_2.png';
			el.onmouseover=null;
			el.onmouseout=null;
			el.onclick=null;
		}
	}


	function map_w(a,b) {

		var x1, y1, x2, y2, mx, my, ms;

		p1 = getE("g");
		p2 = getE("d");
		oO = getE("o");
		oR = getE("r");
		zP = getE("zp");
		zM = getE("zm");

		var map_zoom_in = langV.getLV('map_zoom_in');
		var map_zoom_out = langV.getLV('map_zoom_out');
		var	map_scale_select = langV.getLV('map_scale_select');
		
		p1.setAttribute('title', map_scale_select);
		p2.setAttribute('title', map_scale_select);
		zP.setAttribute('title', map_zoom_in);
		zM.setAttribute('title', map_zoom_out);

		x1 = parseInt(getE('map_ox1').value);
		y1 = parseInt(getE('map_oy1').value);
		x2 = parseInt(getE('map_ox2').value);
		y2 = parseInt(getE('map_oy2').value);

		ms=parseInt(getE('map_ms').value);
		if(isNaN(ms) || ms==15) {
			bl_zoom('zm',0);
		}

		if(isNaN(x1) && isNaN(y1) && isNaN(x2) && isNaN(y2)) {
			x1=b_x1;
			y1=b_y1;
			x2=b_x2;
			y2=b_y2;			
			var s_r1='18.4017,54.6162,18.9547,54.3704';
			var s_r2='17.6061,54.8558,19.7503,54.1288';
			var t_r=s_r1.split(',');
			getE('map_x1').value = parseFloat(t_r[0]);
			getE('map_y1').value = parseFloat(t_r[1]);
			getE('map_x2').value = parseFloat(t_r[2]);
			getE('map_y2').value = parseFloat(t_r[3]);
			var t_r=s_r2.split(',');
			getE('map_mx1').value = parseFloat(t_r[0]);
			getE('map_my1').value = parseFloat(t_r[1]);
			getE('map_mx2').value = parseFloat(t_r[2]);
			getE('map_my2').value = parseFloat(t_r[3]);
			getE('map_ox1').value = parseInt(x1);
			getE('map_oy1').value = parseInt(y1);
			getE('map_ox2').value = parseInt(x2);
			getE('map_oy2').value = parseInt(y2);
			getE('map_mx').value = m_lon;
			getE('map_my').value = m_lat;
			getE('map_ms').value = m_scale;
		}
		
		if(b!='' && b!=undefined) {
			tab2=b.split(',');
			if(mapobject_s!=undefined) {
				set_map_param(tab2[0],tab2[1],tab2[2]);
				mapobject_s.centerTo(m_lon,m_lat,m_scale);
			}
		}

		p1.style.left = x1+'px';
		p1.style.top  = y1+'px';
		p2.style.left = x2+'px';
		p2.style.top  = y2+'px';
		
		//deb_write(x1+','+y1+','+x2+','+y2);

		var a1_width  = (m_width  - ico_w);
		var a1_height = (m_height - ico_h);

		var ob_width  = Math.abs(parseInt(p2.style.left) - parseInt(p1.style.left) + ico_w);
		var ob_height = Math.abs(parseInt(p2.style.top) - parseInt(p1.style.top) + ico_h);

		var a2_width  = (m_width  - ob_width  );
		var a2_height = (m_height - ob_height );	

		Drag.init(p1, null, 0, a1_width, 0, a1_height, false, false, null, null);
		Drag.init(p2, null, 0, a1_width, 0, a1_height, false, false, null, null);
		Drag.init(oO, null, 0, a2_width, 0, a2_height, false, false, null, null);

		oO.style.top = parseInt(p1.style.top)+'px';
		oO.style.left = parseInt(p1.style.left)+'px';
		oO.style.height = ob_height+'px';
		oO.style.width = ob_width+'px';
		
		set_bor();
		//set_map_move();
		//set_val();
		
		if(!isNaN(ms) && ms==3) {
			bl_zoom('zp',0);
			mx=parseFloat(getE('map_mx').value);
			my=parseFloat(getE('map_my').value);
			set_map_param(mx,my,ms);
			set_map_center();
		}
		
		p1.onDrag = function(x, y) {

			var x2 = parseInt(p2.style.left);
			var y2 = parseInt(p2.style.top);
			
			set_ob();
			set_bor();
		}

		p2.onDrag = function(x, y) {

			var x1 = parseInt(p1.style.left);
			var y1 = parseInt(p1.style.top);

			set_ob();
			set_bor();
		}

		oO.onDrag = function(x, y) {
			set_pp();
			set_bor();

			//set_map_move();
		}

		p1.onDragEnd  = function(x, y) {
			set_ob();
			set_bor();
			set_val();
		}

		p2.onDragEnd  = function(x, y) {
			set_ob();
			set_bor();
			set_val();
		}

		oO.onDragEnd  = function(x, y) {
			set_pp();
			set_bor();
			set_val();

			//set_map_move();
		}
	}

	function scale_change_callback(){
		//deb_write('scale_change_callback');
		set_val();
	}

	function position_change_callback() {
		//deb_write('position_change_callback');
		set_val();
		var p=mapobject_s.getMapParams();
		set_send_pos_to_mini_map(p.min_lon, p.max_lat, p.max_lon ,p.min_lat); // celow zamiana min i max
	}

	function position_change_callback2() {
		//deb_write('position_change_callback');
		set_val();
		var p=mapobject_s.getMapParams();
		set_send_pos_to_mini_map(p.min_lon, p.max_lat, p.max_lon ,p.min_lat); // celow zamiana min i max
	}

	function azimuth_change_callback(){
	}



	function set_callback() {
		//deb_write('set_callback');
		if(stat_click_menu_cnt>0&&map_isOpera) {
			//deb_write('set_callback_opera_2x: '+typeof(position_change_callback));	
			mapobject_s.setOnPositionChangedCallback(window.position_change_callback);
			mapobject_s.setOnScaleChangedCallback(window.scale_change_callback);
		} else {
			mapobject_s.setOnPositionChangedCallback("position_change_callback");
			mapobject_s.setOnScaleChangedCallback("scale_change_callback");
			//deb_write('set_callback_position_scale');
		}
	}

	function after_init_map() {
		set_callback();
		if(stat_click_set_map==1) {
			
			set_param_to_mini_map();
			var x1 = parseInt(p1.style.left);
			var y1 = parseInt(p1.style.top);
			var x2 = parseInt(p2.style.left+ico_w);
			var y2 = parseInt(p2.style.top+ico_h);

			var l1=mapobject_s.convertToGeo(x1,y1);
			var l2=mapobject_s.convertToGeo(x2,y2);

			getE('map_x1').value = l1.lon.fmt(4);
			getE('map_y1').value = l1.lat.fmt(4);
			getE('map_x2').value = l2.lon.fmt(4);
			getE('map_y2').value = l2.lat.fmt(4);

			stat_click_set_map=0;
		}
		if(stat_click_menu==1) {
			position_change_callback();
			stat_click_menu=0;
		}
		stat_after_init_map=1;
	}

	function getFlashMovie(movieName) {
		var map_isIE = navigator.appName.indexOf("Microsoft") != -1;
		return (map_isIE) ? getE(movieName) : document[movieName+'_em'];
		//return (map_isIE) ? window[movieName] : document[movieName];
	}

	function set_send_pos_to_mini_map(m1_lon, m1_lat, m2_lon, m2_lat) {
		var fm = getFlashMovie("mapka_wyszukiwarka");
		if(fm!=undefined && stat_map_green_start==1)
			fm.sendPosToFlash(m1_lon, m1_lat, m2_lon, m2_lat);
	}
	
	if(window.langV) {} 
	else {
		var langV = new langSel();
		langV.addLV('map_zoom_in','przybliż mapę');
		langV.addLV('map_zoom_out','oddal mapę');
		langV.addLV('map_scale_select','sklauj zaznaczenie');
	}
