// Общие параметры
var site_url ='http://rmt.v2.vnetgis.com/';
var map_name = 'zp';
var vnet_ver= '2';
var is_show_loading_img=1;
var lang = 'ru';
// ntv start
//var map_size_num = '4';
var map_size_num = '4';
// ntv end
var zoom_size = '1';
var map_pix_size = ''; // Ширина высота рисунка
var commands_arr = ['3','4','5','2','marker'];
var commands_desc_arr = {'3': 'Зб_льшити масштаб','4': 'Зменшити масштаб','5': 'Рецентрувати карту','2': 'Вибрати рег_он на карт_','marker': 'Зробити позначку та визначити в_дстань','move': 'Пересунути карту'};
var command_selected = 'move';
//var hints_arr = {};
var hints_arr = {
		'school':1,
		'before_school':1,
		'intern':1,
		'non_school':1,
		'prof_tech':1,
		'high':1,
		'jek':1,
		'postofice':1,
		'pubsuf':1,
		'drugstore':1,
		'poliklinik':1,
		'child_polik':1,
		'fast_medic':1,
		'travm_medic':1,
		'railway':1,
		'metro':1,
		'narod_district':1,
		'gover_district':1,
		'boss_district':1,
		'yurist_district':1
	};
	
var bn = 1; // Номер страницы для результата поиска
var prefix = ''; // Префикс для резульатата поиска
var max_markers = 50;
var web_img_path = './images/map_img/'; // Путь к картинкам
var isIE = true; // true, если браузер Internet Explorer
var preloaded_imgs = []; // just fake, never used, only as container
var prev_rnd = -1;
var is_block_started = false;
//Координаты первой точки мышки
var block_base_x = 0;
var block_base_y = 0;
//Координаты второй точки мышки
var mouse_move_x2 = 0;
var mouse_move_y2 = 0;

// Расчитанные координаты для запроса региона
var base_map_x1 = 0; 
var base_map_y1 = 0;  
var base_map_x2 = 0;  
var base_map_y2 = 0; 

// ntv start
// Координаты дивки с объектами
var objects_base_x = 0;
var objects_base_y = 0;
// Координаты точки, где нажали кнопку мыши
var mouse_down_x = 0;
var mouse_down_y = 0;
// ntv end

var is_desc_displayed = false; // Подсказка к коммандам активна
var timer = null;
var current_hints_str = '';
var ObjInfo = []; // Хинты
var search_wnd = ''; // Окно с результатом поиска
var send_mail_wnd = ''; // Окно с отсылкой карты
var is_search_by_id = false; 
var searched_strt_id=0;//strt_id результата поиска
var go_history = false;
var max_st = 0;
var markers_arr = [];
var meters_per_pixel = 0;
var backup_arr = [];

// ntv start
// Информация о последней команде
var map_extent_info		= new Array(643933.876719, 5289625.47213, 678012.191651, 5313967.12565); // Координаты ТЕКУЩИХ углов
var map_limits_info		= new Array(643933.876719, 5289625.47213, 678012.191651, 5313967.12565); // Координаты КРАЙНИХ углов
var map_size_info		= new Array(756, 540); // Размеры карты
//var map_size_info		= new Array(997, 714); // Размеры карты
var map_scale_info		= 127777;
var map_sc_idx_info		= 1;
//var map_size_idx_info	= 4;
var map_size_idx_info	= 4;
// Язык для поиска
var search_lang			= 'ru';
// Слой для поиска
var search_obj			= 'strt';

// Элемент бегунка зума
var slider				= null;

// Временная переменная для хранения текущего зума
var tmp_map_zoom		= 1;

// Массив, содержащий найденные в адресном реестре записи
var address_info		= new Array();
//Количество найденных в адресном реестре записей
var address_count		= 0;
// ntv end
var map_objects = document.getElementById('map_objects');

		var step = 33; //кол-во шагов слайдера 
		var min_Value = 1; //минимальное значение слайдера
		var max_Value = 9; //максимальное значение слайдера
// Вызывается после загрузки страницы
// Загрузка информации
function on_load_info(){

	// Определяем тип браузера
	document.body.setAttribute("class", "attribute-test");
	if (document.body.className == "attribute-test") isIE = false;
	else isIE = true;
	
	// После проверки является или браузера ie, вернули класс body равным yui-skin-sam
	document.body.setAttribute("class", "yui-skin-sam");

	/*	// Загружаем картинки
	preload_images(web_img_path+'sm%.png',1,4);
	preload_images(web_img_path+'sm%s.png',1,4);
	preload_images(web_img_path+'mscl%.png',1,9);
	preload_images(web_img_path+'mscl%s.v',1,9);
	preload_images(web_img_path+'cmd_%.png',2,5);
	preload_images(web_img_path+'cmd_%s.png',2,5);
	preload_images(web_img_path+'cmd_marker.png');
	preload_images(web_img_path+'cmd_markers.png');
	preload_images(web_img_path+'inf.png');
	preload_images(web_img_path+'request_active.png');
	preload_images(web_img_path+'close.png');
	preload_images(web_img_path+'cmd_move.png');
	preload_images(web_img_path+'cmd_moves.png');*/

	// Не даем карте уйди на не допустимый масштаб
	if (zoom_size > max_Value) zoom_size = max_Value;
	if (zoom_size < min_Value || zoom_size == undefined) zoom_size = min_Value;
	
	// Подсвечеваем тикущий масштаб и размер
	if (slider != null)
		slider.setValue((min_Value - zoom_size) * step, false);

	var cmd = command_selected;
	command_selected = '';
	change_cmd(cmd); 

	if(is_show_loading_img) show_loading();

	if (isIE)
		document.getElementById('map_small_img').style.margin	= '-78px 0px 0px 0px'; 
	
	if (objects_base_x == 0)
	{
		//objects_base_x = map_objects.offsetLeft;
		//objects_base_y = map_objects.offsetTop;
		if (document.getElementById('map_objects')!= undefined)
		{
		//objects_base_x = document.getElementById('map_objects').offsetLeft;
		//objects_base_y = document.getElementById('map_objects').offsetTop;
		}
		
	}
}

// Вызывается после загрузки страницы
function on_load_script(){
	
	on_load_info();
	
	// Не даем карте уйди на не допустимый масштаб
	if (zoom_size > max_Value) zoom_size = max_Value;
	if (zoom_size < min_Value || zoom_size == undefined) zoom_size = min_Value;

	// выполняем первый запрос
	do_request({
		'rq':          'new',
		'cmd':         'set_zoom_size',
		'cmd_param':   zoom_size,
		'set_mapsize': map_size_num
	});
}
// загружаем набор картинок
function preload_images(url_template,min,max){
	if (min == null) min = 1;
	if (max == null) max = 1;
	for (var i = min; i <= max; i++){
		var url = url_template;
		url = url.replace('%',i);
		var img = new Image();
		img.src = url;
	//	alert(url);
		preloaded_imgs.push(img);
	}
}

// Вызывается после запроса new
function onload_new(){
	if (map_size_num != index_img_size)
		map_size_num = index_img_size;
	
	// Не даем карте уйди на не допустимый масштаб
	if (zoom_size > max_Value) zoom_size = max_Value;
	if (zoom_size < min_Value || zoom_size == undefined) zoom_size = min_Value;

	// ntv start
	if (zoom_size != index_scale)
		zoom_size = index_scale;
	// ntv end
	
	if (vnet_ver>=2 ) meters_per_pixel=scale;
	else meters_per_pixel=mc;


	var map_img = document.getElementById('map_img_id');
	var map_scale_img = document.getElementById('map_scale_img_id');
	var map_small_img = document.getElementById('map_small_img_id');

	if (isIE){
		map_img.setAttribute('onload', function(){ hide_loading(); }  );
		map_scale_img.setAttribute('onload', function(){this.style.visibility='visible';} );
		map_small_img.setAttribute('onload', function(){this.style.visibility='visible';} );
	} else {
		map_img.setAttribute('onload','hide_loading();');
		map_small_img.setAttribute('onload', "document.getElementById('map_small_img_id').style.visibility='visible';");
	}
	
	document.getElementById('map_img_id').onLoad = hide_load_panel();

	map_img.src = get_url({'rq':'get_map'});
	map_scale_img.src = get_url({'rq':'get_mapscbar'});
	map_small_img.src = get_url({'rq':'get_mapkey'});
	// ntv start
	do_request({'rq':'get_hints'}, 'load_hints()'); // get hints
	// ntv end

	var style_value = '';
	if (st == 0) style_value = 'none';
	else style_value = 'inline';
	if (go_history){
		if (st == max_st) style_value = 'none';
		else style_value = 'inline';

		go_history = false;
	} else {
		max_st = st;
	}
}

// Вызывается после get_hints
function load_hints(){
	// ntv start
	// Отправка запроса для получения информации о последней команде:
	// координат углов карты, размеров карты и другой
	do_request({'rq':'get_state'}, 'show_vector_objects()');
	// ntv start
}
// собираем URL запроса
function get_url(params_arr){
	// необходимые параметры
	var required_params_arr = {
		'uamap_cuid': uamap_cuid,
		'map':        map_name,
		'lg':        'j',
		'rq':         'new',
		'st':         st,
		'l':          lang,
		'garbage':    random()
	};

	for (var key in required_params_arr){
		if (!params_arr[key]) params_arr[key] = required_params_arr[key];
	}

	if (params_arr['rq'] == 'new'){
		for (var key in hints_arr){
			if (hints_arr[key]) params_arr[key] = 1;
		}
	}

	var arr = [];
	for (var key in params_arr){
		arr.push(key + '=' + params_arr[key]);
	}
	var url = site_url + '?' + arr.join('&');
	
	return url;
}
// Выполняем запрос
// onload_event необязательный параметр
function do_request2(url,onload_event){
	if (typeof url != 'string') url = get_url(url);
  //  alert(url);
	if (url.match('rq=new') && !url.match('cmd=lsearch')){
		truncate_markers(1);
		if(is_show_loading_img) show_loading();
	}

	var postData	= url;
	var request		= YAHOO.util.Connect.asyncRequest('POST', site_url, {success:onload_event, failure:handleFailure, argument: {}}, postData);

}
function do_request(url,onload_event){
	if (typeof url != 'string') url = get_url(url);
  //  alert(url);
	if (url.match('rq=new') && !url.match('cmd=lsearch')){
		truncate_markers(1);
		if(is_show_loading_img) show_loading();
	}
	
	var obj = document.createElement('script');
	obj.type = 'text/javascript';

	if (onload_event){
		if (isIE){
			obj.setAttribute('onreadystatechange',
				function(p){
					return function(){
						if ('loaded' == this.readyState) eval(p);
					}
				}(onload_event)
			);
		} else {
			obj.setAttribute('onload',onload_event);
		}
	}
	
	obj.src = url;
//	alert(url)
	var container = document.getElementById('request_container');
	if (container != undefined)
	{
		if (container.innerHTML != '')
			while (container.childNodes.length > 0) container.removeChild(container.lastChild);
		container.appendChild(obj);
	}
}
function random(){
	var rnd = Math.round(100*Math.random());
	while (prev_rnd == rnd){
		rnd = Math.round(100*Math.random());
	}
	prev_rnd = rnd;
	return rnd;
}

// Возвращаес абсолютные координаты объекта
function get_absolute_coords(elem){
	if (elem == null)
		return;
	
	var xx = elem.offsetLeft < 0 ? 0 : elem.offsetLeft;
	var yy = elem.offsetTop < 0 ? 0 : elem.offsetTop;
	for (var parent = elem.offsetParent; parent; parent = parent.offsetParent){
		xx += parent.offsetLeft < 0 ? 0 : parent.offsetLeft;
		yy += parent.offsetTop < 0 ? 0 : parent.offsetTop;
	}
	return {'x': xx, 'y': yy};
}
// Показываем строку "загрузка"
function show_loading(){
	var loading_elem = document.getElementById('request_active');
	var map_img = document.getElementById('map_img_id');
	var map_coords = get_absolute_coords(map_img);

	loading_elem.style.display = 'block';

	loading_elem.style.left = map_coords['x'];
	loading_elem.style.top = map_coords['y'];
}

// Прячем строку "загрузка"
function hide_loading()
{
	// set size for base map image
	if (map_pix_size != '')
	{
		var map_img = document.getElementById('map_img_id');
		var map_mirror = document.getElementById('map_mirror_id');
		var map_mirror_div = document.getElementById('map_mirror_div_id');
		
		if (vnet_ver>=2)
		{
		  map_img.width = map_img.width=map_pix_size[0];
		  map_img.height = map_img.height=map_pix_size[1];
		}
		else
		{
		  map_img.width = map_pix_size.split(',')[0];
		  map_img.height = map_pix_size.split(',')[1];
		}

		map_mirror_div.style.width=map_img.width;
		map_mirror_div.style.height=map_img.height;
		map_mirror.style.width=map_img.width;
		map_mirror.style.height=map_img.height;
	}

	document.getElementById('map_img_id').style.visibility = 'visible';
	document.getElementById('request_active').style.display = 'none';
	document.getElementById('map_mirror_div_id').style.display = 'none';
	document.getElementById('map_mirror_id').src=document.getElementById('map_img_id').src;
}

// Кнопки для перемещения карты
function move_map(direction){
	do_request({
		'rq':        'new',
		'cmd':       'fixed_mov',
		'cmd_param': direction
	}, 'set_slider_value()');
}

// Изменение размера рисунка
/*function set_map_size(new_size){
	if (new_size == map_size_num) return;

	do_request({
		'rq':        'new',
		'cmd':       'set_mapsize',
		'cmd_param': new_size
	});
}*/



// Картографический навигатор
function go_to_small(event_obj){
	var mouse_x = event_obj.clientX + document.body.scrollLeft;
	var mouse_y = event_obj.clientY + document.body.scrollTop;
	var map_coords = get_absolute_coords(document.getElementById('map_small_img_id'));
	var small_map_x = map_coords['x'];
	var small_map_y = map_coords['y'];
	mouse_x -= small_map_x;
	mouse_y -= small_map_y;

	if (isIE){
		mouse_x -= 3;
		mouse_y -= 3;
	}

	do_request({
		'rq':        'new',
		'cmd':       'key_recenter',
		'cmd_param': mouse_x + ',' + mouse_y
	});
}

// меняем текущую команду
function change_cmd(new_cmd){
	if (new_cmd == command_selected) return;

	if (command_selected != ''){
		document.getElementById('cmd_'+command_selected).src = web_img_path+'cmd_'+command_selected+'.png';
		document.getElementById('radio_cmd_'+command_selected).checked = false;
	}
	document.getElementById('cmd_'+new_cmd).src = web_img_path+'cmd_'+new_cmd+'s.png';
	document.getElementById('radio_cmd_'+new_cmd).checked = true;
	command_selected = new_cmd;

	var base_map = document.getElementById('map_img_id');

	// set cursor style and mouse handlers for base map
	if (command_selected == 2){
		base_map.style.cursor = 'crosshair';
	} else {
		base_map.style.cursor = 'pointer';
	}
}

// Показываем описание комманды

function show_desc(event_obj,msg){
	if (event_obj == null) event_obj = event;

	var desc_div = document.getElementById('desc_div');
	if (desc_div != null) document.body.removeChild(desc_div);

	var mouse_x = event_obj.clientX + document.body.scrollLeft;
	var mouse_y = event_obj.clientY + document.body.scrollTop;

	var desc_div = document.createElement('div');
	desc_div.id = 'desc_div';
	//desc_div.setAttribute("class", "desc_div");
	//alert(desc_div.className);
	//desc_div.innerHTML = '<div class="desc_div">'+msg+'</div>';
		desc_div.innerHTML = '<div class="desc_div">asdasdaSDd</div>';
	desc_div.style.left = mouse_x;
	desc_div.style.top = mouse_y + 20;
	document.body.appendChild(desc_div);

	is_desc_displayed = true;
	timer = setTimeout('hide_desc()',2000);
}

// Прячем описание команды
function hide_desc(){

	var desc_div = document.getElementById('desc_div');
	if (desc_div != null) document.body.removeChild(desc_div);

	if (timer != null){
		clearTimeout(timer); timer = null;
	}
	is_desc_displayed = false;
}

function map_click(event_obj){
		if (YAHOO.example.container.register_panel != undefined && YAHOO.example.container.register_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.search_panel != undefined && YAHOO.example.container.search_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.login_panel != undefined && YAHOO.example.container.login_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.tab_panel != undefined && YAHOO.example.container.tab_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.news_panel != undefined && YAHOO.example.container.news_panel.cfg.getProperty("visible") == true || YAHOO.example.container.object_window != undefined && YAHOO.example.container.object_window.cfg.getProperty("visible") == true)
		return;
	
	var mouse_x = event_obj.clientX + document.body.scrollLeft;
	var mouse_y = event_obj.clientY + document.body.scrollTop;
	if (isIE){
		mouse_x -= 3;
		mouse_y -= 3;
	}
	switch (command_selected){
		case '3':
		case '4':
		case '5':
			var map_coords = get_absolute_coords(document.getElementById('map_img_id'));
			var map_x = map_coords['x'];
			
			var map_y = map_coords['y'];
			mouse_x -= map_x;
			mouse_y -= map_y;

			var http_cmd = {
				'3': 'zoom_in',
				'4': 'zoom_out',
				'5': 'recenter'
			};

			do_request({
				'rq':        'new',
				'cmd':       http_cmd[command_selected],
				'cmd_param': mouse_x + ',' + mouse_y
			}, 'set_slider_value()');
		break;
		case 'marker':
			if (markers_arr.length >= max_markers) truncate_markers(max_markers);

			var marker_img = new Image();
			marker_img.src = web_img_path+'cmd_marker.png';
			var div_elem = document.createElement('div');

			markers_arr.push({'x':mouse_x, 'y':mouse_y});

			var new_marker_id = markers_arr.length;
			if (new_marker_id >= 10){
				mouse_x -= 8;
			}
			div_elem.id = 'marker_' + new_marker_id;
			div_elem.style.position = 'absolute';
			div_elem.style.zIndex = 5;
			div_elem.style.left = mouse_x - 12;
			div_elem.style.top = mouse_y - 12;
			div_elem.style.cursor = 'pointer';
			div_elem.style.verticalAlign = 'sub';
			div_elem.style.whiteSpace = 'nowrap';
			div_elem.style.color = '#F00';
			div_elem.style.fontSize = '10pt';
			div_elem.style.fontWeight = 'bold';
			div_elem.style.fontFamily = 'Courier New';
			div_elem.innerHTML = new_marker_id;

			var desc = '';
			if (new_marker_id > 1){
				var i = new_marker_id - 1;
				var dx = Math.abs(markers_arr[i]['x'] - markers_arr[i-1]['x']);
				var dy = Math.abs(markers_arr[i]['y'] - markers_arr[i-1]['y']);
				desc = Math.round( meters_per_pixel * Math.sqrt(dx*dx + dy*dy) ) + ' м';
			}

			if (isIE){
				div_elem.setAttribute('onclick',
					function(){ truncate_markers(new_marker_id); }
				);
				if (desc != ''){
					div_elem.setAttribute('onmouseover',function(){show_desc(event,desc);});
					div_elem.setAttribute('onmouseout', function(){ hide_desc(); } );
				}
			} else {
				div_elem.setAttribute('onclick','truncate_markers('+new_marker_id+');');
				if (desc != ''){
					div_elem.setAttribute('onmouseover','show_desc(event,"'+desc+'");');
					div_elem.setAttribute('onmouseout','hide_desc();');
				}
			}

			div_elem.appendChild(marker_img);
			document.body.appendChild(div_elem);
			recalculate_distance();
		break;
	}
}
function mouse_down(event_obj){
   
//	alert(YAHOO.example.container.search_panel.cfg.getProperty("visible"));
	if (YAHOO.example.container.register_panel != undefined && YAHOO.example.container.register_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.search_panel != undefined && YAHOO.example.container.search_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.login_panel != undefined && YAHOO.example.container.login_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.tab_panel != undefined && YAHOO.example.container.tab_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.news_panel != undefined && YAHOO.example.container.news_panel.cfg.getProperty("visible") == true || YAHOO.example.container.object_window != undefined && YAHOO.example.container.object_window.cfg.getProperty("visible") == true)
		return;
	//alert(YAHOO.example.container.login_panel);
	// Проверка, не был ли выполнен клик иконке или окне описания
	if (command_selected == '2' || command_selected == 'move')
	{
		var mouse_x = 0;
		var mouse_y = 0;
		if (isIE)
		{
			mouse_x -= 2;
			mouse_y -= 2;
		}
		else
		{
			mouse_x = event_obj.clientX + document.body.scrollLeft;
			mouse_y = event_obj.clientY + document.body.scrollTop;
		}
		
		if (YAHOO.example.container.object_window != undefined && YAHOO.example.container.object_window.cfg.getProperty("visible") == true)
		{
			var ow_top		= parseInt(document.getElementById('object_window').style.top, 10);
			var ow_left		= parseInt(document.getElementById('object_window').style.left, 10);
			var ow_bottom	= ow_top + 200;
			var ow_right	= ow_left + parseInt(document.getElementById('object_window').style.width, 10);
			if (mouse_y > ow_top && mouse_y < ow_bottom
					&& mouse_x > ow_left && mouse_x < ow_right)
				return;
		}
	}
	
	if (event_obj == null) event_obj = event;
//alert(command_selected);
	switch (command_selected){
		case '2':
			var mouse_x = event_obj.clientX + document.body.scrollLeft;
			var mouse_y = event_obj.clientY + document.body.scrollTop;
			if (isIE){
				mouse_x -= 2;
				mouse_y -= 2;
			}
			var map_img = document.getElementById('map_img_id');
			var map_coords = get_absolute_coords(map_img);
			var x1 = map_coords['x'];
			var y1 = map_coords['y'];
			var x2 = x1 + map_img.offsetWidth;
			var y2 = y1 + map_img.offsetHeight;
			if (mouse_x < x1 || mouse_x > x2) return true;
			if (mouse_y < y1 || mouse_y > y2) return true;

			base_map_x1 = x1; base_map_y1 = y1;
			base_map_x2 = x2; base_map_y2 = y2;

			block_base_x = mouse_x;
			block_base_y = mouse_y;

			var block_div = document.createElement('div');
			block_div.id = 'block_div';
			block_div.style.position = 'absolute';
			block_div.style.left = block_base_x;
			block_div.style.top = block_base_y;
			block_div.style.width = '0px';
			block_div.style.height = '0px';
			block_div.style.border = '1px solid #F00';
			block_div.style.cursor = 'crosshair';
			block_div.style.lineHeight = '0px';
			document.body.appendChild(block_div);

			is_block_started = true;
			return false;
		break;
		case 'move':
			var mouse_x = event_obj.clientX + document.body.scrollLeft;
			var mouse_y = event_obj.clientY + document.body.scrollTop;
			if (isIE){
				mouse_x -= 2;
				mouse_y -= 2;
			}
			var map_img = document.getElementById('map_img_id');
			var map_coords = get_absolute_coords(map_img);
			if (map_coords == undefined)
				return true;
			var x1 = map_coords['x'];
			var y1 = map_coords['y'];
			//alert(map_img.offsetWidth+','+map_img.offsetHeight);
			var x2 = x1 + map_img.offsetWidth;
			var y2 = y1 + map_img.offsetHeight;
			if (mouse_x < x1 || mouse_x > x2) return true;
			if (mouse_y < y1 || mouse_y > y2) return true;
			
			// ntv start
			var map_zoom_size = document.getElementById('map_zoom_size');
			var map_small_img = document.getElementById('map_small_img');
			var map_objects = document.getElementById('map_objects');
			var map_control = document.getElementById('map_control');
			if (mouse_x > parseInt(map_zoom_size.offsetLeft, 10) && (parseInt(map_zoom_size.offsetLeft, 10) + parseInt(map_zoom_size.offsetWidth, 10)) > mouse_x
					&& mouse_y > parseInt(map_zoom_size.offsetTop, 10) && (parseInt(map_zoom_size.offsetTop, 10) + parseInt(map_zoom_size.offsetHeight, 10)) > mouse_y)
				return true;
			map_zoom_size.style.zIndex = 1;
			map_small_img.style.zIndex = 1;
			map_objects.style.zIndex = 1;
			map_control.style.zIndex = 1;
			

			
			mouse_down_x = mouse_x;
			mouse_down_y = mouse_y;
			// ntv end
			
			base_map_x1 = x1; base_map_y1 = y1;
			base_map_x2 = x2; base_map_y2 = y2;

			block_base_x = mouse_x;
			block_base_y = mouse_y;
			
			var map_mirror = document.getElementById('map_mirror_id');
			map_mirror.style.left = 0;
			map_mirror.style.top = 0;
			var map_mirror_div = document.getElementById('map_mirror_div_id');
			map_mirror_div.style.display = 'block';
		//	map_mirror_div.style.left = map_coords['x'];
		//	map_mirror_div.style.top = map_coords['y'];
			map_mirror_div.style.left = 6
			map_mirror_div.style.top = 26;
			map_img.style.visibility='hidden';
			mouse_move_x2 = mouse_x;
			mouse_move_y2 = mouse_y;

			is_block_started = true;
			
			return false;
		break;
	}
}
function mouse_move(event_obj){

	if (YAHOO.example.container.register_panel != undefined && YAHOO.example.container.register_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.search_panel != undefined && YAHOO.example.container.search_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.login_panel != undefined && YAHOO.example.container.login_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.tab_panel != undefined && YAHOO.example.container.tab_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.news_panel != undefined && YAHOO.example.container.news_panel.cfg.getProperty("visible") == true || YAHOO.example.container.object_window != undefined && YAHOO.example.container.object_window.cfg.getProperty("visible") == true)
		return;
	
	if (event_obj == null) event_obj = event;

	switch (command_selected){
		case '2':
			if (!is_block_started) return true;

			var mouse_x = event_obj.clientX + document.body.scrollLeft;
			var mouse_y = event_obj.clientY + document.body.scrollTop;
			if (isIE){
				mouse_x -= 2;
				mouse_y -= 2;
			}

			if (mouse_x < base_map_x1) mouse_x = base_map_x1;
			if (mouse_x > base_map_x2) mouse_x = base_map_x2;
			if (mouse_y < base_map_y1) mouse_y = base_map_y1;
			if (mouse_y > base_map_y2) mouse_y = base_map_y2;

			var x1 = block_base_x;
			var y1 = block_base_y;
			var x2 = mouse_x;
			var y2 = mouse_y;

			if (x2 < x1){
				var tmp = x1; x1 = x2; x2 = tmp;
			}
			if (y2 < y1){
				var tmp = y1; y1 = y2; y2 = tmp;
			}

			var block_div = document.getElementById('block_div');
			block_div.style.left = x1;
			block_div.style.top = y1;
			block_div.style.width = x2-x1;
			block_div.style.height = y2-y1;

			return false;
		break;
		case 'move':
			if (!is_block_started) return true;

			var mouse_x = event_obj.clientX + document.body.scrollLeft;
			var mouse_y = event_obj.clientY + document.body.scrollTop;
			if (isIE){
				mouse_x -= 2;
				mouse_y -= 2;
			}
			mouse_move_x2 = mouse_x;
			mouse_move_y2 = mouse_y;

			var map_img = document.getElementById('map_img_id');
			var map_coords = get_absolute_coords(map_img);

			var map_mirror = document.getElementById('map_mirror_id');
			map_mirror.style.left = mouse_x-block_base_x;
			map_mirror.style.top = mouse_y-block_base_y;

			// ntv start
			var map_objects = document.getElementById('map_objects');
			map_objects.style.left = objects_base_x - mouse_down_x + mouse_x;
			map_objects.style.top = objects_base_y - mouse_down_y + mouse_y;
			
			if (object_window_id != null)
				YAHOO.example.container.object_window.hide();
			// ntv end
			
			return false;
		break;
	}
}
function mouse_up(){
	
	if (YAHOO.example.container.register_panel != undefined && YAHOO.example.container.register_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.search_panel != undefined && YAHOO.example.container.search_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.login_panel != undefined && YAHOO.example.container.login_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.tab_panel != undefined && YAHOO.example.container.tab_panel.cfg.getProperty("visible") == true
			|| YAHOO.example.container.news_panel != undefined && YAHOO.example.container.news_panel.cfg.getProperty("visible") == true || YAHOO.example.container.object_window != undefined && YAHOO.example.container.object_window.cfg.getProperty("visible") == true)
		return;
	
	switch (command_selected){
		case '2':
			if (!is_block_started) return;

			var block_div = document.getElementById('block_div');
			var block_coords = get_absolute_coords(block_div);

			var block_div_width		= parseInt(block_div.style.width, 10);
			var block_div_height	= parseInt(block_div.style.height, 10);

			var map_coords = get_absolute_coords(document.getElementById('map_img_id'));
			var map_x = map_coords['x'];
			var map_y = map_coords['y'];

			var x1 = block_coords['x'] - map_x;
			var y1 = block_coords['y'] - map_y;
			var x2 = x1 + block_div.offsetWidth;
			var y2 = y1 + block_div.offsetHeight;

			document.body.removeChild(block_div);

			is_block_started = false;

			if (block_div_width > 2 && block_div_height > 2)
			{
				do_request({
					'rq':        'new',
					'cmd':       'view_region',
					'cmd_param': x1+','+y1+ ';' +x2+','+y2
				}, 'set_slider_value()');
				
				return false;
			}
		break;
		case 'move':
			if (document.getElementById('map_objects') != undefined)
				document.getElementById('map_objects').style.zIndex = 1;
			
			if (!is_block_started) return true;
			is_block_started = false;
			
			var map_img = document.getElementById('map_img_id');
			var map_coords = get_absolute_coords(map_img);

			mouse_move_x2=map_img.width/2+(block_base_x-mouse_move_x2);
			mouse_move_y2=map_img.height/2+(block_base_y-mouse_move_y2);
			
			do_request({
				'rq':        'new',
				'cmd':       'recenter',
				'cmd_param': mouse_move_x2 + ',' + mouse_move_y2
			}, 'set_slider_value()');

			return false;
		break;
	}
}

function show_hint(event_obj){
	if (is_block_started) return;

	if (event_obj == null) event_obj = event;

	var map_coords = get_absolute_coords(document.getElementById('map_img_id'));
	var map_x = map_coords['x'];
	var map_y = map_coords['y'];

	var mouse_x = event_obj.clientX + document.body.scrollLeft;
	var mouse_y = event_obj.clientY + document.body.scrollTop;
	if (isIE){
		mouse_x -= 3;
		mouse_y -= 3;
	}

	var xx = mouse_x - map_x;
	var yy = mouse_y - map_y;

	var txt_arr = [];
	var new_ids = '';

	for (var i in ObjInfo){
		if (xx >= ObjInfo[i][1]-5 && xx <= ObjInfo[i][1]+5 &&
			yy >= ObjInfo[i][2]-5 && yy <= ObjInfo[i][2]+5){

			new_ids += '' + ObjInfo[i][4];
			txt_arr.push('<img src="'+web_img_path+'inf.png" alt="">&nbsp;'+ObjInfo[i][3]);
		}
	}

	if (current_hints_str == new_ids) return;

	hide_hint();
	if (txt_arr.length > 0){
		var hint_div = document.createElement('div');
		hint_div.id = 'hint_div';
		hint_div.innerHTML = txt_arr.join('<br>');
		hint_div.style.left = mouse_x;
		hint_div.style.top = mouse_y + 20;
		document.body.appendChild(hint_div);

		current_hints_str = new_ids;
	}
}

function hide_hint(){
	var hint_div = document.getElementById('hint_div');
	if (hint_div != null) document.body.removeChild(hint_div);

	current_hints_str = '';
}

function toggle_hint(hint){
	if (hints_arr[hint] != null)
		hints_arr[hint] = 1 - hints_arr[hint];
	else hints_arr[hint] = 1;
	reload_map_images();
}
function truncate_markers(from_marker){
	if (from_marker < 1 || from_marker > markers_arr.length) return;

	for (var i = from_marker; i <= markers_arr.length; i++){
		var marker_div = document.getElementById('marker_'+i);
		if (marker_div != null) document.body.removeChild(marker_div);
	}
	markers_arr.length = from_marker - 1;
	hide_desc();
	recalculate_distance();
}
function recalculate_distance(){
	if (markers_arr.length > 1){
		var distance_div = document.getElementById('distance_indicator');
		if (distance_div == null){
			var map_img = document.getElementById('map_img_id');
			var map_coords = get_absolute_coords(map_img);

			var distance_div = document.createElement('div');
			distance_div.id = 'distance_indicator';
			distance_div.style.position = 'absolute';
			distance_div.style.left = map_coords['x'];
			distance_div.style.top = map_coords['y'];
			distance_div.innerHTML = 'Длина: <span id="distance_value"></span> м <button onClick="truncate_markers(1);"><img src="'+web_img_path+'close.png"></button>';

			document.body.appendChild(distance_div);
		}
		
		var distance = 0;
		for (var i = 1; i < markers_arr.length; i++){
			var dx = Math.abs(markers_arr[i]['x'] - markers_arr[i-1]['x']);
			var dy = Math.abs(markers_arr[i]['y'] - markers_arr[i-1]['y']);
			distance += meters_per_pixel * Math.sqrt(dx*dx + dy*dy);
		}
		distance = Math.round(distance);
		document.getElementById('distance_value').innerHTML = distance;
	} else {
		var distance_div = document.getElementById('distance_indicator');
		if (distance_div != null) document.body.removeChild(distance_div);
	}
}

function reload_map_images(){
	do_request({
		'rq':        'new',
		'cmd':       'redraw',
		'cmd_param': ''
	});
}

function history_walk(direction){
	go_history = true;
	if (direction == 'back') st--;
	else st++;
	onload_new();
}

function show_on_map(obj_type, obj_id, set_slider_value){

	var calback_function	= 'init_zoom_element()';
	if (set_slider_value == true)
		calback_function	= 'set_slider_value()';
	do_request({
		'rq':        'new',
		'cmd':       'msearch',
		'cmd_param': obj_type+'::'+obj_id,
		'set_mapsize':  map_size_num
	}, calback_function);
}

// Поиск текста
// obj_id необязательный параметр
function do_search(page_num, obj_id){
	var search_txt = document.getElementById('find').value;
	if (search_txt == '') return;
	if (page_num==null) page_num=1;
	var calback_function = 'show_search_results()';
	
	var search_str = '';
	if (obj_id == null)
	{
		is_search_by_id		= false;
		searched_strt_id	= 0;
		prefix				= ''; 
		search_str			= search_obj + '!!' + search_txt;
	//	alert(search_str);
	}
	else
	{
		is_search_by_id		= true;
		//is_search_by_id		= false;
		searched_strt_id	= obj_id;
		search_str			= 'strt' + '::' + obj_id;
		calback_function	= 'show_search_houses(' + page_num + ',' + obj_id + ')';
	}
	if (search_str.indexOf(',')!= -1)
	{
		search_str = search_str.replace(/\s*,\s*/, ',');
		search_str = (search_str.substr(0,search_str.indexOf(',')))+'$address!!'+(search_str.substr(search_str.indexOf(',')+1));
	  is_search_by_id=true;
	  searched_strt_id=0;
	}
	//search_str='strt!!'+search_str;
/*	if(search_str.indexOf('strt!!')==0&&search_str.indexOf(',')>0)
	{
	  search_str=search_str.replace(',','$address!!');
	  is_search_by_id=true;
	  searched_strt_id=0;
	}
	*/
	//alert(search_str);
	bn = page_num;
	
	do_request({
		'rq':        'new',
		'cmd':       'lsearch',
		'cmd_param': search_str,
		'l':         search_lang,
		'bn':        bn
	}, calback_function);
}

// ntv start
function show_obj(id, show_search_type)
{
	if (map_type != 'vector')
	{
		map_type	= 'vector';
		
		// Покачать панель загрузки
		show_load_panel();
		
		var handleSuccess = function(o)
		{
			if(o.responseText !== undefined)
			{
				on_load_map();
				
				document.getElementById('middle').innerHTML		= o.responseText;
					
				YAHOO.util.Event.addListener('a_find', 'click', YAHOO.example.container.search_panel.show, YAHOO.example.container.search_panel, true);
				
				// Скрипт, который должен выполниться при загрузке карты
				on_load_info();
				// Переход на искомый адрес
				show_on_map(show_search_type, id);
				// Инициализация бегунка
				init_zoom_element();	
			}
		}
		
		var getData		= '';
		if (isIE)
			getData		= '?is_ie=true';
		var sUrl		= 'docs/map_' + map_type + '.php';
		var request		= YAHOO.util.Connect.asyncRequest('GET', sUrl + getData, {success:handleSuccess, failure:handleFailure, argument: {}});
	}
	else
	{
		// Переход на искомый адрес
		show_on_map(show_search_type, id, true);
	}
	
	YAHOO.example.container.search_panel.hideMask();
	YAHOO.example.container.search_panel.hide();
}

/*function search_sub(id, pref)
{
	//prefix = pref + " № ";
	//prefix = 'д. № ';
	do_search(1, id);
}*/
function get_address(page_num, number)
{
	var search_str		= '';
	//alert(address_info);
	obj_id				= address_info[number]['id'];
	if (document.getElementById('houses_' + obj_id) != undefined) document.getElementById('houses_' + obj_id).innerHTML = '&nbsp;&nbsp;&nbsp;<img src=./images/loading.gif>';
	s_search_by_id		= false;
	searched_strt_id	= obj_id;
	search_str			= 'strt' + '::' + obj_id;
	//alert(number + ', ' + address_info[number]['id']);
	calback_function	= 'show_search_houses(' + number + ', ' + address_info[number]['id'] + ')';
//alert(calback_function);
	if (search_str.indexOf('strt!!') == 0 && search_str.indexOf(',')!= -1)
	{
		search_str = search_str.replace(/\s*,\s*/, ',');
		search_str = (search_str.substr(0,search_str.indexOf(',')))+'$address!!'+(search_str.substr(search_str.indexOf(',')+1));
		is_search_by_id = true;
	 	searched_strt_id = 0;
	}
/*	if(search_str.indexOf('strt!!') == 0 && search_str.indexOf(',') > 0)
	{
	  search_str=search_str.replace(',', '$address!!');
	  is_search_by_id = true;
	  searched_strt_id = 0;
	}
	*/
	//alert(search_str);
	bn = page_num;
	do_request({
		'rq':        'new',
		'cmd':       'lsearch',
		'cmd_param': search_str,
		'l':         search_lang,
		'bn':        bn
	}, calback_function);
}

function show_search_results()
{
	var search_text_info = '';
	var search_txt = document.getElementById('find').value;
	
	if (cnt == '') cnt = 0;
	var status_msg = '';
	if (!cnt || !bs) status_msg = 'Ни одной записи не найдено';
	if (!window['bn']) bn = 1;
	//alert('status_msg - '+status_msg);
	if (status_msg == '')
	{
		var pages = Math.ceil(cnt/bs);
		
		var arr = [];
		for (var i = 1; i <= pages; i++)
		{
			if (i == bn) arr.push('<b>'+i+'</b>');
			else if(is_search_by_id && searched_strt_id > 0) arr.push('<a href="javascript:do_search(' + i + ', ' + searched_strt_id + ' class="search")">' + i + '</a>');
			else arr.push('<a href="javascript:do_search(' + i + ')" class="search">' + i + '</a>');
		}
		var pager_links = '<span id="adress_pages">'+arr.join('&nbsp;')+'</span>';
		//alert(pager_links);
		search_text_info += '<br /><b>Адреса на ' + (map_type == 'google' ? 'UaMap' : '') + ' карте:</b>'
				+ '<ul class="search">';
		
		address_info	= new Array();
		address_count	= 0;
		
		var n = 0;
		//search_obj = 'address';
		for (var i in find_id)
		{
			address_info[i]			= new Array();
			address_info[i]['id']	= find_id[i];
			address_info[i]['name']	= find_name[i];
			address_count++;
			
			var td_txt		= '<li>';
			var addr_str	= parseInt(bn-1)*parseInt(bs)+parseInt(i)+parseInt(1)+'. '+prefix + find_name[i];
			
			var index_of_number	= addr_str.indexOf("*");
			if (index_of_number != -1)
			{
				//addr_str	= addr_str.substring(index_of_number + 1, addr_str.length);
				addr_str		= addr_str.replace('*',' № ');
				search_obj2  = 'address';
			}
			else
				search_obj2  = 'strt';
			
			td_txt			+= "<a href=\"javascript:show_obj(" + find_id[i] + ", '" + search_obj2 + "');\" class=\"search\">" + addr_str + "</a>";
			
			if (search_obj == 'strt' && !is_search_by_id)
				td_txt	+= '<span id="houses_' + find_id[i] + '"></span>';
		//	get_address(1, find_id[i]);
			td_txt			+= '</li>';
			
			search_text_info += td_txt;

			n = 1 - n;
		}
		
		get_address(1, 0);
	
		search_text_info += '</ul>';

		if (pages > 1)
			search_text_info += pager_links + '<br />';
		
		search_text_info += '<br />';
	}
	
	if (document.getElementById('search_objects') == undefined)
		document.getElementById('bd_search_panel').innerHTML	= ''; 
	
	if (document.getElementById('search_address') != undefined)
		document.getElementById('search_address').innerHTML		= search_text_info;
	else
		document.getElementById('bd_search_panel').innerHTML += '<div id="search_address">' + search_text_info + '</div>'
				+ str_btn_close;
	
	if ((document.getElementById('search_objects') == undefined || document.getElementById('search_objects').innerHTML == '')
			&& document.getElementById('search_address').innerHTML == '')
		document.getElementById('bd_search_panel').innerHTML	= '<br /><b class="red">Ни одной записи не найдено.</b><br />'
				+ 'Поиск улиц и объектов на карте не дал результата.<br /><br />'
				+ str_msg_search_info + str_btn_close;
}
function show_search_houses(number, obj_id)
{
	var search_text_info = '';
	
	if (cnt == '') cnt = 0;
	var status_msg = '';
	if (!cnt || !bs) status_msg = 'Ни одной записи не найдено';
	if (!window['bn']) bn = 1;
	if (obj_id!=null) searched_strt_id = obj_id
	is_search_by_id = true;
	if (status_msg == '')
	{
		var pages = Math.ceil(cnt/bs);
		var arr = [];
		//alert(pages);
		for (var i = 1; i <= pages; i++)
		{
			if (i == bn) arr.push('<b>'+i+'</b>');
		//	else if(is_search_by_id&&searched_strt_id>0) arr.push('<a href="javascript:window.opener.do_search('+i+','+searched_strt_id+')">'+i+'</a>');
			else if(is_search_by_id&&searched_strt_id>0) arr.push('<a href="javascript:do_search('+i+','+searched_strt_id+')">'+i+'</a>');
			else arr.push('<a href="javascript:do_search('+i+')">'+i+'</a>');
		//	else arr.push('<a href="javascript:window.opener.do_search('+i+')">'+i+'</a>');
		}
		var pager_links = '&nbsp;&nbsp;(<span id="adress_pages">'+arr.join('&nbsp;')+'</span>)';

		var n = 0;
		for (var i in find_id)
		{
			var addr_str		= prefix + find_name[i];
			//addr_str			= addr_str.replace('*',' № ');
			/***/
			var index_of_number	= addr_str.indexOf("*");
			if (index_of_number != -1)
				addr_str	= addr_str.substring(index_of_number + 1, addr_str.length);
			/***/
			if (search_text_info != '')
				search_text_info	+= ', '
			else
				search_text_info	+= '&nbsp; Дома: '
			search_text_info	+= "<a href=\"javascript:show_obj(" + find_id[i] + ", 'address');\" class=\"search_houses\">" + addr_str + "</a>";
			n = 1 - n;
		}
		
		if (pages > 1)
			search_text_info += pager_links;
	}
	
	if (document.getElementById('houses_' + obj_id) != undefined) document.getElementById('houses_' + obj_id).innerHTML = search_text_info;
	
	number++;
	if (number < address_count - 1)
		get_address(1, number);

}
function send_map(){
	if (typeof send_mail_wnd == 'object' && send_mail_wnd.closed == false){
	} else {
		send_mail_wnd = window.open('', 'send_mail_'+random(), 'width=330,height=350,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,status=yes');
	}
	send_mail_wnd.document.open();
	send_mail_wnd.document.writeln('Отримання параметр_в карти.....');
	send_mail_wnd.document.close();

	var variable = ['map_size'];
	for (var i in variable){
		backup_arr[ variable[i] ] = eval(variable[i]);
	}

	do_request({'rq':'get_state'});
}

function onload_get_state(){
	// ntv start
	// Заполнение глобальных переменных информацией о последней команде:
	// координаты углов карты, размеры карты и другой
	map_extent_info		= map_extent;
	map_size_info		= map_size;
	map_scale_info		= map_scale;
	map_sc_idx_info		= map_sc_idx;
	map_size_idx_info	= map_size_idx;
	//ntv end
	
	/*cmd = cmd.toLowerCase();
	if (cmd != 'msearch' && cmd != undefined && cmd != null) {*/
	cmd = 'view_region_geo';
	cmd_param = Math.round(map_extent[0])+','+Math.round(map_extent[1]);
	cmd_param += ';'+Math.round(map_extent[2])+','+Math.round(map_extent[3]);
	/*}*/

	for (var v in backup_arr){
		eval(v + '=' + backup_arr[v]);
	}

	var h_arr = [];
	for (var key in hints_arr){
		if (hints_arr[key] == 1) h_arr.push(key+'='+1);
	}
	var h_str = h_arr.join('&');

	var map_coords = get_absolute_coords(document.getElementById('map_img_id'));
	var m_arr = [];
	for (var i in markers_arr){
		var xx = markers_arr[i]['x'] - map_coords['x'];
		var yy = markers_arr[i]['y'] - map_coords['y'];
		m_arr.push(xx+','+yy);
	}
	var m_str = m_arr.join(';');

	wr = function(str){ send_mail_wnd.document.writeln(str); }
}

// ntv start
// Инициализация элемента для изменения зума.
function init_zoom_element()
{
	YAHOO.util.Event.onDOMReady(function () {

	    // the slider can move up 200 pixels
    	var upLimit   = 270;
    	// and down 0 pixels
	    var downLimit = 0;
	//	var step = 20;
	//	var min_Value = 1;
	//	var max_Value = 9;
	//alert(upLimit);
    	// Create the Slider instance
	//    slider = YAHOO.widget.Slider.getVertSlider(
    //	            'slide_bg', 'slide_thumb', upLimit, downLimit, step);
	    slider = YAHOO.widget.Slider.getVertSlider(
    	            'slide_bg', 'slide_thumb', upLimit, downLimit);	
	    // Add a little functionality to the instance
    	YAHOO.lang.augmentObject(slider, {
	
    	    // A custom value range for the slider
        	minValue : min_Value,
	        maxValue : max_Value,
	
    	    // A method to retrieve the calculated value, per the value range
        	getCalculatedValue : function () {
            	// invert the offset value so "real" values increase as the
	            // slider moves up
    	        var offset = -1 * this.getValue();
	
    	        // Convert the offset to a value in our configured range
        	    var conversionFactor =
            	        (this.maxValue - this.minValue) /
                	    (this.thumb.topConstraint + this.thumb.bottomConstraint);
				
				var map_zoom	= Math.round(offset * conversionFactor) + this.minValue;
				
				// Не даем карте уйди на не допустимый масштаб
				//if (offset > 96 || offset < 0 || offset == undefined)
				if (offset > upLimit || offset < downLimit || offset == undefined)
				{
				//	alert(offset);
					
					/*offset		= (map_zoom - 1) * 12;
					document.getElementById('slide_thumb').style.top	= (100 - offset) + 'px'
					init_zoom_element();*/

					//document.getElementById('slide_thumb').style.top	= '100px';
					document.getElementById('slide_thumb').style.top	= upLimit+'px';
					offset		= 1;
					map_zoom	= 1;
					zoom_size	= 1;
					init_zoom_element();
					set_zoom_size(map_zoom);
					
					return map_zoom;
				}
				
				// Не даем карте уйди на не допустимый масштаб
				if (map_zoom > max_Value) map_zoom = max_Value;
				if (map_zoom < min_Value || map_zoom == undefined) map_zoom = min_Value;

				if (tmp_map_zoom != map_zoom)
				{
					tmp_map_zoom = map_zoom;
					set_zoom_size(map_zoom);
				}
				
    	        return map_zoom;
        	}
	    });

    	// display the native offset and the calculated while sliding
	    var offset_span = YAHOO.util.Dom.get('d_offset');
    	var calc_span   = YAHOO.util.Dom.get('d_val');
	
    	slider.subscribe('change', function (offsetFromStart) {
        	offset_span.innerHTML = offsetFromStart;
	        calc_span.innerHTML   = this.getCalculatedValue();
			
    	});
	});
	
	// Установка бегунка после задержки на 0.5 сек
	if (isIE)
		set_slider_value();
//	else
//		window.setTimeout('set_slider_value()', 500);
}
// Изменение масштаба
function set_zoom_size(new_size){

	// Не даем карте уйди на не допустимый масштаб
	if (new_size > max_Value) new_size = max_Value;
	if (new_size < min_Value || new_size == undefined) new_size = min_Value;

	if (new_size == zoom_size) return;

	do_request({
		'rq':        'new',
		'cmd':       'set_zoom_size',
		'cmd_param': new_size
	});
}

function set_zoom_size_cn(inc_value)
{	
	// Не даем карте уйди на не допустимый масштаб
	
	if (zoom_size > max_Value) zoom_size = max_Value;
	if (zoom_size < min_Value || zoom_size == undefined) zoom_size = min_Value;

	var new_zoom_size	= parseInt(zoom_size, 10) + parseInt(inc_value, 10);
//	document.getElementById('scale').innerHTML='max_Value='+max_Value+', min_Value='+min_Value+', zoom_size='+zoom_size+', new_zoom_size='+new_zoom_size+', slidervalue='+((min_Value - new_zoom_size) * step);
	if (new_zoom_size < min_Value || new_zoom_size > max_Value)
		return false;
	
	set_zoom_size(new_zoom_size);
	
	if (slider != undefined)
		slider.setValue((1 - new_zoom_size) * step, false);
	
	return true;
}
function set_slider_value()
{
	// Не даем карте уйди на не допустимый масштаб
	if (zoom_size > max_Value) zoom_size = max_Value;
	if (zoom_size < min_Value || zoom_size == undefined) zoom_size = min_Value;
  // alert('zoom_size='+zoom_size);
	if (slider != null)
		slider.setValue((min_Value - zoom_size) * step, false);
}

// ntv end

if (!isIE) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
document.onmousedown = mouse_down;
document.onmousemove = mouse_move;
document.onmouseup = mouse_up;
