var metro = {'Авиамоторная':{'lat':'55.7521','lng':'37.7168'},'Автозаводская':{'lat':'55.708','lng':'37.6586'},'Академическая':{'lat':'55.6881','lng':'37.575'},'Александровский сад':{'lat':'55.7522','lng':'37.6084'},'Алексеевская':{'lat':'55.8074','lng':'37.6384'},'Алтуфьево':{'lat':'55.8988','lng':'37.5871'},'Аннино':{'lat':'55.5842','lng':'37.5966'},'Арбатская':{'lat':'55.7524','lng':'37.6033'},'Аэропорт':{'lat':'55.7998','lng':'37.5341'},'Бабушкинская':{'lat':'55.8706','lng':'37.6643'},'Багратионовская':{'lat':'55.7437','lng':'37.4973'},'Баррикадная':{'lat':'55.7608','lng':'37.5812'},'Бауманская':{'lat':'55.7723','lng':'37.6786'},'Беговая':{'lat':'55.7738','lng':'37.5441'},'Белорусская':{'lat':'55.7753','lng':'37.5826'},'Беляево':{'lat':'55.6437','lng':'37.5276'},'Бибирево':{'lat':'55.8843','lng':'37.6014'},'Библиотека им. Ленина':{'lat':'55.7505','lng':'37.6092'},'Битцевский парк':{'lat':'55.6019','lng':'37.553'},'Боровицкая':{'lat':'55.7523','lng':'37.6129'},'Ботанический сад':{'lat':'55.8465','lng':'37.6391'},'Братеево (стр.)':{'lat':'55.6314','lng':'37.7517'},'Братиславская':{'lat':'55.6599','lng':'37.7521'},'Бульвар Адмирала Ушакова':{'lat':'55.5453','lng':'37.5421'},'Бульвар Дмитрия Донского':{'lat':'55.5702','lng':'37.578'},'Бунинская аллея':{'lat':'55.538','lng':'37.5154'},'Варшавская':{'lat':'55.6538','lng':'37.6208'},'ВДНХ':{'lat':'55.8223','lng':'37.6414'},'Владыкино':{'lat':'55.8472','lng':'37.59'},'Водный стадион':{'lat':'55.8399','lng':'37.4867'},'Войковская':{'lat':'55.8181','lng':'37.4991'},'Волгоградский проспект':{'lat':'55.7247','lng':'37.6879'},'Волжская':{'lat':'55.691','lng':'37.755'},'Волоколамская (стр.)':{'lat':'55.8346','lng':'37.3837'},'Воробьёвы горы':{'lat':'55.7115','lng':'37.561'},'Выхино':{'lat':'55.7159','lng':'37.8176'},'Деловой центр':{'lat':'55.7502','lng':'37.5428'},'Динамо':{'lat':'55.7887','lng':'37.5594'},'Дмитровская':{'lat':'55.8081','lng':'37.5816'},'Добрынинская':{'lat':'55.729','lng':'37.6228'},'Домодедовская':{'lat':'55.6107','lng':'37.7168'},'Достоевская (стр.)':{'lat':'55.7824','lng':'37.6127'},'Дубровка':{'lat':'55.718','lng':'37.6772'},'Измайловская':{'lat':'55.7877','lng':'37.7833'},'Калужская':{'lat':'55.6557','lng':'37.5392'},'Кантемировская':{'lat':'55.6364','lng':'37.6549'},'Каховская':{'lat':'55.6533','lng':'37.5972'},'Каширская':{'lat':'55.6541','lng':'37.6474'},'Киевская':{'lat':'55.7439','lng':'37.5667'},'Китай город':{'lat':'55.7539','lng':'37.6354'},'Кожуховская':{'lat':'55.7062','lng':'37.6856'},'Коломенское':{'lat':'55.6774','lng':'37.663'},'Комсомольская':{'lat':'55.7772','lng':'37.6557'},'Коньково':{'lat':'55.6325','lng':'37.5201'},'Красногвардейская':{'lat':'55.6145','lng':'37.7447'},'Краснопресненская':{'lat':'55.7601','lng':'37.5771'},'Красносельская':{'lat':'55.78','lng':'37.6662'},'Красные ворота':{'lat':'55.7696','lng':'37.6499'},'Крестьянская застава':{'lat':'55.7323','lng':'37.6656'},'Кропоткинская':{'lat':'55.7453','lng':'37.6046'},'Крылатское':{'lat':'55.7559','lng':'37.409'},'Кузнецкий мост':{'lat':'55.7612','lng':'37.6239'},'Кузьминки':{'lat':'55.7053','lng':'37.7677'},'Кунцевская':{'lat':'55.7304','lng':'37.4465'},'Курская':{'lat':'55.7585','lng':'37.6599'},'Кутузовская':{'lat':'55.7395','lng':'37.5343'},'Ленинский проспект':{'lat':'55.7082','lng':'37.5874'},'Лубянка':{'lat':'55.7588','lng':'37.6257'},'Люблино':{'lat':'55.6769','lng':'37.7632'},'Марксистская':{'lat':'55.7407','lng':'37.6577'},'Марьина роща':{'lat':'55.6512','lng':'37.7437'},'Марьино':{'lat':'55.6502','lng':'37.7441'},'Маяковская':{'lat':'55.7704','lng':'37.5956'},'Медведково':{'lat':'55.887','lng':'37.6613'},'Международная':{'lat':'55.7483','lng':'37.5328'},'Менделеевская':{'lat':'55.7825','lng':'37.5979'},'Минская (стр.)':{'lat':'55.7315','lng':'37.491'},'Митино (стр.)':{'lat':'55.8459','lng':'37.3591'},'Молодежная':{'lat':'55.7409','lng':'37.4168'},'Нагатинская':{'lat':'55.6831','lng':'37.622'},'Нагорная':{'lat':'55.6728','lng':'37.6102'},'Нахимовский проспект':{'lat':'55.6638','lng':'37.6062'},'Новогиреево':{'lat':'55.7515','lng':'37.8182'},'Новокосино (стр.)':{'lat':'55.7405','lng':'37.8563'},'Новокузнецкая':{'lat':'55.7421','lng':'37.629'},'Новослободская':{'lat':'55.7792','lng':'37.6009'},'Новые черемушки':{'lat':'55.6689','lng':'37.5542'},'Октябрьская':{'lat':'55.729','lng':'37.6114'},'Октябрьское поле':{'lat':'55.7936','lng':'37.4935'},'Орехово':{'lat':'55.6121','lng':'37.6958'},'Отрадное':{'lat':'55.8642','lng':'37.6049'},'Охотный ряд':{'lat':'55.7568','lng':'37.6157'},'Павелецкая':{'lat':'55.7313','lng':'37.6361'},'Парк культуры':{'lat':'55.7351','lng':'37.5933'},'Парк Победы':{'lat':'55.7366','lng':'37.5168'},'Партизанская':{'lat':'55.7884','lng':'37.7497'},'Первомайская':{'lat':'55.7946','lng':'37.7991'},'Перово':{'lat':'55.7511','lng':'37.7885'},'Петровско-Разумовская':{'lat':'55.8364','lng':'37.5754'},'Печатники':{'lat':'55.6925','lng':'37.7295'},'Пионерская':{'lat':'55.7358','lng':'37.4673'},'Планерная':{'lat':'55.8593','lng':'37.4369'},'Площадь Ильича':{'lat':'55.7472','lng':'37.6807'},'Площадь Революции':{'lat':'55.7565','lng':'37.6232'},'Площадь Суворова (стр.)':{'lat':'55.782','lng':'37.6145'},'Полежаевская':{'lat':'55.7769','lng':'37.5169'},'Полянка':{'lat':'55.7365','lng':'37.6186'},'Пражская':{'lat':'55.6135','lng':'37.605'},'Преображенская площадь':{'lat':'55.7966','lng':'37.7159'},'Пролетарская':{'lat':'55.7317','lng':'37.6673'},'Пронская (стр.)':{'lat':'55.6983','lng':'37.8509'},'Проспект Вернадского':{'lat':'55.6761','lng':'37.5045'},'Проспект мира':{'lat':'55.7812','lng':'37.6335'},'Профсоюзная':{'lat':'55.6782','lng':'37.5638'},'Пушкинская':{'lat':'55.7657','lng':'37.6042'},'Речной вокзал':{'lat':'55.8546','lng':'37.4764'},'Рижская':{'lat':'55.7922','lng':'37.6356'},'Римская':{'lat':'55.7464','lng':'37.6812'},'Рязанский проспект':{'lat':'55.7175','lng':'37.7943'},'Савеловская':{'lat':'55.7941','lng':'37.5879'},'Свиблово':{'lat':'55.8554','lng':'37.6542'},'Севастопольская':{'lat':'55.6512','lng':'37.5994'},'Семеновская':{'lat':'55.7828','lng':'37.7184'},'Серпуховская':{'lat':'55.7266','lng':'37.6246'},'Славянский бульвар (стр.)':{'lat':'55.7295','lng':'37.4688'},'Смоленская':{'lat':'55.7482','lng':'37.5838'},'Сокол':{'lat':'55.8052','lng':'37.5149'},'Сокольники':{'lat':'55.7889','lng':'37.6794'},'Спортивная':{'lat':'55.724','lng':'37.5655'},'Сретенский бульвар':{'lat':'55.7653','lng':'37.6366'},'Строгино':{'lat':'55.8037','lng':'37.403'},'Студенческая':{'lat':'55.7387','lng':'37.5482'},'Сухаревская':{'lat':'55.7721','lng':'37.6324'},'Сходненская':{'lat':'55.8494','lng':'37.4395'},'Таганская':{'lat':'55.7425','lng':'37.6539'},'Тверская':{'lat':'55.765','lng':'37.6054'},'Театральная':{'lat':'55.7586','lng':'37.6177'},'Текстильшики':{'lat':'55.7095','lng':'37.7328'},'Теплый стан':{'lat':'55.6181','lng':'37.5081'},'Тимирязевская':{'lat':'55.8189','lng':'37.575'},'Третьяковская':{'lat':'55.741','lng':'37.6256'},'Трубная':{'lat':'55.7677','lng':'37.622'},'Тульская':{'lat':'55.709','lng':'37.6226'},'Тургеневская':{'lat':'55.766','lng':'37.637'},'Тушинская':{'lat':'55.8258','lng':'37.4362'},'Улица 1905 года':{'lat':'55.7647','lng':'37.5611'},'Улица Академика Янгеля':{'lat':'55.5946','lng':'37.6006'},'Улица Горчакова':{'lat':'55.542','lng':'37.5311'},'Улица Подбельского':{'lat':'55.8134','lng':'37.7352'},'Улица Скобелевская':{'lat':'55.5481','lng':'37.5546'},'Улица Старокачаловская':{'lat':'55.5684','lng':'37.5767'},'Университет':{'lat':'55.6917','lng':'37.5343'},'Филевский парк':{'lat':'55.7395','lng':'37.4837'},'Фили':{'lat':'55.7467','lng':'37.5138'},'Фрунзенская':{'lat':'55.7272','lng':'37.5804'},'Царицино':{'lat':'55.6201','lng':'37.6694'},'Цветной бульвар':{'lat':'55.7716','lng':'37.6206'},'Черкизовская':{'lat':'55.8028','lng':'37.7449'},'Чертаново':{'lat':'55.6398','lng':'37.6089'},'Чеховская':{'lat':'55.766','lng':'37.6075'},'Чистые пруды':{'lat':'55.7649','lng':'37.6383'},'Чкаловская':{'lat':'55.7562','lng':'37.6594'},'Шаболовская':{'lat':'55.7189','lng':'37.608'},'Шоссе энтузиастов':{'lat':'55.7584','lng':'37.7515'},'Щелковская':{'lat':'55.8096','lng':'37.7988'},'Щукинская':{'lat':'55.808','lng':'37.4663'},'Электрозаводская':{'lat':'55.782','lng':'37.7052'},'Юго-западная':{'lat':'55.6646','lng':'37.4842'},'Южная':{'lat':'55.6214','lng':'37.6085'},'Ясенево':{'lat':'55.6054','lng':'37.5349'}};
var map;
var geo;
var cross;
var mapDIV;
var mapPos;
var oldPoly;
var markers = {};
var mlength = 0;
var markers2 = {};
var iam_mark;
var tt;
var ot;
var searched = false;

var row_tpl = '<tr  id="r_{id}" class="res"><td><IMG width="15px" SRC="/images/star.png" BORDER="0"> &rarr; <b>{distance} км.</b><br>3,5т. / 24ч.<br></td><td>{model}</td><td></td><td></td><td ></td><td width="20px" align="center"><input id="print{id}" name="ids[]" checked type="checkbox" alt="Добавить в печать" title="Добавить в печать" id="c_{id}" value="{id}"></td></tr>';
var row2_tpl = '<tr  id="h_{id}"><td colspan="6" class="hid"><div  id="i_{id}" class="info">{photo}{price_full}</div></td></tr>';
var info_tpl = '<div class="mrk_info"><h1>{model}</h1><IMG width=15px SRC=/images/star.png BORDER=0>  &rarr; <b>{distance} км.</b></div>';

var photo_tpl = '<a href="/images/evac/{photo}" target="_blank"><img width="160" height="120" style="margin:0px 5px 5px 0px;" src="/images/evac/tn_{photo}" align="left"></a>';

var green_m = new GIcon();
green_m.image = "/images/green_m1.png";
green_m.iconSize = new GSize(50, 23);
green_m.iconAnchor = new GPoint(16, 16);
green_m.infoWindowAnchor = new GPoint(16, 16);
var red_m = new GIcon();
red_m.image = "/images/red_m.png";
red_m.iconSize = new GSize(32, 32);
red_m.iconAnchor = new GPoint(16, 16);
red_m.infoWindowAnchor = new GPoint(16, 16);
var grey_m = new GIcon();
grey_m.image = "/images/grey_m.png";
grey_m.iconSize = new GSize(32, 32);
grey_m.iconAnchor = new GPoint(16, 16);
grey_m.infoWindowAnchor = new GPoint(16, 16);
var star_m = new GIcon();
star_m.image = "/images/star.png";
star_m.iconSize = new GSize(25, 23);
star_m.iconAnchor = new GPoint(16, 16);
star_m.infoWindowAnchor = new GPoint(16, 16);

function setBestZoom() {
	var bounds = new GLatLngBounds();
	bounds.extend(iam_mark.getPoint());
	for (i in markers) {
		bounds.extend( new GLatLng(markers[i].getLatLng().lat(),markers[i].getLatLng().lng()));
	}
	map.setZoom(map.getBoundsZoomLevel(bounds)-1);
	map.setCenter(bounds.getCenter());
}

var addr_found = false;
var search_bounds;
function go_search() {
	search_bounds = new GLatLngBounds();
	search_bounds.extend(new GLatLng('55.9868597371165','38.167877197265625'));
	search_bounds.extend(new GLatLng('55.5231892215535','37.065124511718755'));
	if (addr_found == false) {
		if ($('input[name=street]', $('#srch')).val() != '') {
			showAddress($('input[name=street]', $('#srch')).val(),function(found,fpoint) {
				if (found) {
					$('input[name=lat]').val(fpoint.lat());
					$('input[name=lng]').val(fpoint.lng());
					addr_found = found;
					go_search();
					map.removeOverlay(iam_mark);
					iam_mark.MySetNewLocation(fpoint);
					map.addOverlay(iam_mark);
				} else {
					clearTimeout(tt);
					refresh_icons([]);
					map.removeOverlay(iam_mark);
				}
				//clearTimeout(tt);
				addr_found = false;
			});
			return false;
		} else if ($('#metro').val() != '' && metro[$('#metro').val()] != undefined) {
			
			$('input[name=lat]').val(metro[$('#metro').val()].lat);
			$('input[name=lng]').val(metro[$('#metro').val()].lng);
			map.removeOverlay(iam_mark);
			iam_mark.MySetNewLocation( new GLatLng(metro[$('#metro').val()].lat,metro[$('#metro').val()].lng) );
			map.addOverlay(iam_mark);
			//return false; 
		} else {
			clearInterval( ot );
			//clearTimeout(tt);
			alert('Выберите станцию метро или введите адрес');
			map.removeOverlay(iam_mark);
			clearTimeout(tt);
			return false; 
		}
	}
	
	if (search_bounds.contains(new GLatLng($('input[name=lat]', $('#srch')).val(), $('input[name=lng]', $('#srch')).val()))) {
	$.post('/search/',$('#srch').serialize(),function(data) {
		newm = eval(data);
		searched = true;
		mlength = newm.length;
		if (newm.length > 0) {
			$('table.results').css({'display':'table'});
			$('#print_evac').css({'display':'table'});
			//tt = setTimeout('go_search();',10000);
		} else {
			clearInterval( ot );
			clearTimeout(tt);
		}
		refresh_icons(newm,1);
		clearInterval( ot );
	});
	}
	else {
		refresh_icons([]);
		//clearTimeout(tt);
		map.removeOverlay(iam_mark);
		alert('Адрес не найден в Москве');
	}
	return false;
}

function load_map() {
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.setCenter(new GLatLng(55.755786, 37.617633), 10);
		map.setUIToDefault();
		//map.enableGoogleBar();
		geo =  new GClientGeocoder(); 
		//$('#metro').bind('change',function() {gotoStation(this.value);});
		//$('#street').bind('blur',function() {showAddress(this.value);});
		//$('#srch_address').bind('click',function() {showAddress('Москва '+$('#street')[0].value);});
		GEvent.addListener(map,"click", function(overlay,point2){
			//map.panTo(point2);
			if (overlay == null) {
				map.closeInfoWindow();
			}
			/*	getAddress(point2.lat()+' '+point2.lng(), function(tmp) {
			if (tmp === false) {
				$('#geo_res').html('Не найдено');
			} else {
				$('#geo_res').html(tmp);
			}
			});
		*/
			//DMarker(point2);
		});
		iam_mark = EMarker({'lat':'55.755786','lng':'37.617633','iamhere':'1','type':'0'});
		//console.log(iam_mark);
		GEvent.addListener(map,"resize", function(){
			setCrosshair();
			map.setCenter(mapPos);}
			
		);
		
		GEvent.addListener(map,"move", function(){
			point2 = map.getCenter();
			$('#coords').html('lat: '+point2.x+', lng:'+point2.y);
			$('#lat').val(point2.x);
			$('#lng').val(point2.y);
			
		});
		
		GEvent.addListener(map,"moveend", function(overlay,point2){
			mapPos = map.getCenter();
			
		});
		cross = $('#myCrosshair')[0];
		mapDIV = $('#map_canvas')[0];
		mapPos = map.getCenter();
		
		refresh_icons(newm);
		$('table.results').css({'display':'none'});
		
		//setCrosshair();
		if (typeof(after_load) ==  'function') {
			after_load();
		}
		ot = setInterval('getOnline();',10000)
	}

}

function getOnline() {
	obj = {
		'lat1': map.getBounds().getSouthWest().lat(),
		'lng1': map.getBounds().getSouthWest().lng(),
		'lat2': map.getBounds().getNorthEast().lat(),
		'lng2': map.getBounds().getNorthEast().lng()
	}
	$.post('/search/online/',obj, function(data) {
			newm = eval(data);
			mlength = newm.length;
			if (newm.length > 0) {
				$('table.results').css({'display':'none'});
				$('#print_evac').css({'display':'none'});
			}
			refresh_icons(newm);
		}
	);
	
}



function add_rows(obj) {
	var $table = $('table.results');
	var row = row_tpl;
	var row2 = row2_tpl;
	var x =obj['distance'].indexOf('.');
	if (x != -1)
		obj['distance'] = obj['distance'].substr(0,x+3);
	if (obj['photo'].length>0) {
		obj['photo'] = photo_tpl.split('{photo}').join(obj['photo']);
	}
	for (a in obj) {
		row = row.split('{'+a+'}').join(obj[a]);
		row2 = row2.split('{'+a+'}').join(obj[a]);
	}
	$table.children('tbody').append($(row));
	$table.children('tbody').append($(row2));
}




function refresh_icons(arr,s) {
	if (searched == false) {
		selected = undefined;
	}
	var bounds = new GLatLngBounds();
	
	var $table = $('table.results');
	var ex = {};
	for (i in arr) {
		bounds.extend(new GLatLng(arr[i]['lat'],arr[i]['lng']));
		if (markers[arr[i]['id']] != undefined) {
			markers[arr[i]['id']].MySetNewLocation(new GLatLng(arr[i]['lat'],arr[i]['lng']));
			markers[arr[i]['id']].MyStatus(arr[i]['status'],arr[i]['busy']);
			markers[arr[i]['id']].inf = arr[i];
			markers[arr[i]['id']].infoHtml = undefined;
			ex[arr[i]['id']] = arr[i];
			$('#r_'+arr[i]['id']).remove();
			$('#h_'+arr[i]['id']).remove();
			add_rows(arr[i]);
		}
		else {
			EMarker(arr[i]);
			markers[arr[i]['id']].MyStatus(arr[i]['status'],arr[i]['busy']);
			ex[arr[i]['id']] = arr[i];
			add_rows(arr[i]);
		}
	}
	for (i in markers) {
		if (markers[i] == undefined) continue;
		if (ex[i] == undefined) {
			map.removeOverlay(markers[i]);
			delete  markers[i];
			$('#r_'+i).remove();
			$('#h_'+i).remove();
			//console.log('marker '+i+' removed');
		}
	}
	if ($table.children('tbody').children().length == 1) {
		$table.css({'display':'none'});
		$('#print_evac').css({'display':'none'});
	}
	ex = undefined;
	$('.res').bind('click',function() {
		highLight2(this.id.replace('r_',''), true);
	});
	 if (arr[0] !== undefined ) {
		if (selected == undefined && searched == true) {
			setBestZoom();
			highLight2(arr[0]['id']); 
			//bounds.extend(iam_mark.getPoint());
			//map.setZoom(map.getBoundsZoomLevel(bounds)-1);
			//map.setCenter(bounds.getCenter());
		} else {
			//highLight2(selected,true,true);
			highLight2(selected,false,false);
		}
	} else {
		clearTimeout(tt);
		clearTimeout(ot);
		if (s != undefined) {
			alert('По вашему запросу ничего не найдено. \nИзмените параметры запроса.');
		}
	}
	
}


function gotoStation(name) {
	if (metro[name] == undefined) return;
	map.setCenter( new GLatLng(metro[name]['lat'],metro[name]['lng']));
	map.setZoom(13);
}


function EMarker(obj) {
	if (obj.type == undefined) return;
	//if (obj['lat'] == undefined || obj['lng'] == undefined || obj['lat'] == '' || obj['lng'] == '' || obj['status'] == undefined || obj['busy'] == undefined || obj['busy'] == '') return false;
	var point = new GPoint(obj['lng'],obj['lat']);
	//console.log("/images/green_m"+obj.type+".png");
	var icon_i = "/images/green_m"+obj['type']+".png";
	
	//console.log(icon_i);
	if (obj['iamhere'] != undefined) {
		var mrk = new GMarker(point,{ icon: star_m});
		
	} else {
		var mrk = new GMarker(point,{ icon: green_m});
	}
	
	
	//console.log(icon_i);
	mrk.inf = obj;
	mrk.MySetNewLocation = function(point) {
		this.setPoint(point);
	}
	
	GEvent.addListener(mrk,'click',function() {
		if (this.inf['iamhere'] !== undefined) {
			//if (selected  != 0)  {
				map.closeInfoWindow();
				this.openInfoWindowHtml("<b>Ваше местоположение</b><br/> От него расчитывается расстояние до эвакуаторов.<br/><i style='color:grey'>Если ваше местоположение задано не верно,<br/> повторите поиск уточнив  адрес.</i>");
				selected  = 0;
			//}
		} else {
			//if (selected  != this.inf.id) {
				map.closeInfoWindow();
				highLight2(this.inf['id'],false);
			//}
		}
	});
	
	mrk.MyStatus = function(status,busy) {
		
		if (obj['iamhere'] != undefined) return;
		
		var icon_i = "/images/green_m"+this.inf.type+".png";
		if (status == '1' && busy == '1') icon_i = "/images/red_m"+this.inf.type+".png";
		if (status == '0') icon_i = "/images/blue_m"+this.inf.type+".png";
		this.setImage(icon_i);
	}
	
	mrk.MyShowInfo = function() {
		
		if (this.infoHtml == undefined) {
			this.infoHtml = info_tpl;
			for (a in this.inf) {
			this.infoHtml =this.infoHtml.split('{'+a+'}').join(this.inf[a]);
		}
		}
		
		if (this.inf['iamhere'] !== undefined) {
			this.openInfoWindow("Ваше местоположение" );
		}
		this.openInfoWindowHtml(this.infoHtml);
	}
	
	mrk.MyGetMe = function() {
		map.setZoom(14);
		map.setCenter(this.getPoint());
	}
	if (obj['iamhere'] != undefined) {
		
		return mrk;
	}
	
	markers[obj['id']] = mrk;
	map.addOverlay(mrk);
	
	return true;
}

function DMarker(point) {
	var mrk = new GMarker(point,{ icon: green_m});
	map.addOverlay(mrk);
	markers2[markers2.length] = mrk;
}

var selected = undefined;
function highLight2(id,docenter,sh) {
	if (selected == undefined) {
		$('.results').css({'height':mlength * 26 + 27 +  120});
	}
	//if (selected == id) return;
	for (i in markers) {
		if (i == id) {
			$('#r_'+i).css({ 'backgroundColor': "#fadadd"});
			if (docenter===true) {
				markers[id].MyGetMe();
				//markers[id].MyShowInfo();
			}
		} else {
			$('#r_'+i).css({ 'backgroundColor': "#FFFFFF",'overflowY':'hidden'});
			$('#i_'+i).stop().animate({ height: "0"},300);
		}
	}
	if ($('#r_'+id).length > 0) {
		$('#i_'+id).stop().animate({ height: 120 },300,function() {
			//$(window).scrollTop($('#r_'+i).offset().top); 
			if (this.scrollHeight > 120) {
				$(this).css({'overflowY':'scroll'});
			}
		});
		if (sh == undefined) {
			markers[id].MyShowInfo();
		} else if (sh == true) {
			if (map.getInfoWindow().isHidden() === false)
			markers[id].MyShowInfo();
		}
		
		selected = id;
	}
}


function showAddress(search,callback) {
	if (search!='')
	{
		geo.getLocations(search, function (result)
		{
			if (result.Status.code == G_GEO_SUCCESS) {
				if (result.Placemark[0] != undefined) {
					var p = result.Placemark[0].Point.coordinates;
					//map.setCenter(new GLatLng(p[1],p[0]),getZoomByAccr(result.Placemark[0].AddressDetails.Accuracy));
					//map.setZoom (getZoomByAccr(result.Placemark[0].AddressDetails.Accuracy));
					if (callback != undefined && typeof(callback) == 'function') {
						callback(true,new GLatLng(p[1],p[0]));
					}
				} else {
					if (callback != undefined && typeof(callback) == 'function') {
						callback(false);
					}
				}
			}
			else {
				if (callback != undefined && typeof(callback) == 'function') {
					callback(false);
				}
				alert('"'+search+ '" не найдено.');
				//return false;
			}
		}
		);
	};
}

function getZoomByAccr (accr)
{
	zoom_acc = {1:5,2:8,3:9,4:11,5:11,6:15,7:16,8:17}
	if (zoom_acc[parseInt(accr)] != undefined)
	return zoom_acc[parseInt(accr)];
	else 
	return 13;
}


function getAddress(query,callback){
	geo.getLocations(query, function(addresses){
		if(addresses.Status.code != 200){
			callback(false);
		}else{
			//console.log(addresses.Placemark);
			retval = '';
			for (i=addresses.Placemark.length-1;i>-1;i--) {
				if (addresses.Placemark[i].address.indexOf('Россия') != -1 && addresses.Placemark[i].address.indexOf('Москва') != -1) {
					result = addresses.Placemark[i].address.replace('Россия, ','').replace('Россия','').replace('город Москва, ','').replace('город Москва','');
					
					result = result.split(', ');
					if (parseInt(result[0]) > 0) {
						result.shift();
					}
					//console.log(result);
					zero = result[0];
					if (zero == '') {
						result = '';
					}
					else  {
						result = result.join(', ');
					}
					zero = undefined;
					result = trimS(result);
					//console.log(result.length+' '+result+' || '+retval);
					if (result.length > 2 ) {
						if (retval == '') {
							retval = result;
						} else {
							retval += ', '+result;
						}
					}
				}
			}
			
			if (retval.length > 0 )
			callback(retval);
			else 
			callback(false);
		}
	});
}

function setCrosshair() {
	if (cross != undefined)
	jt_moveTo(cross, $('#map_canvas').offset().left + Math.round(mapDIV.offsetWidth/2) - 8, $('#map_canvas').offset().top + Math.round(mapDIV.offsetHeight/2) - 8);
}

function jt_moveTo(obj, x, y) {
	obj.style.left = jt_valPx(x);
	obj.style.top = jt_valPx(y);
}

function jt_valPx(pixels) {
	return isNaN(pixels) ? 0 : pixels + "px";
}

function trimS(str,chars){
	return ltrim(rtrim(str,chars),chars);
}
function ltrim(str,chars){
	chars=chars||'\\s';
	return str.replace(new RegExp("^["+chars+"]+","g"),"");
}
function rtrim(str,chars){
	chars=chars||'\\s';
	return str.replace(new RegExp("["+chars+"]+$","g"),"");
}

