
function GetLatLng(id) {
	$.ajax({
		type: 'GET',
		url: '/advert/'+ids+'/geo/',
		success: function(xml){
			if ( $('status', xml).text() == 'success' ) {
				// поставим в центр карты 
			} else {
				alert ('Произошла ошибка');	
			}
		},
		error: function() {
			alert ('Не удалось получить данные');
		}
	});
}

function createMarker(point, html) {
	
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	if (villageicon) {
		var Icon = new GIcon();
		Icon.image = "/img/icon/house.png";
		Icon.shadow = "";
		Icon.iconSize = new GSize(48, 48);
		Icon.shadowSize = new GSize(0, 0);
		Icon.iconAnchor = new GPoint(48, 48);
		Icon.infoWindowAnchor = new GPoint(48, 48);
	} else {
		var Icon = new GIcon(baseIcon);
		Icon.image = "/img/icon/home.png";
	}
	markerOptions = { icon:Icon, draggable: true};

	var marker = new GMarker(point, markerOptions);
    geocounter++;
	if (edit==false) {
		marker.disableDragging();
	}
	return marker;
}

function clearMarkers() {
  mgr.clearMarkers();
}


function ShowMap() {
	InitGMap();
	mgr = new MarkerManager(map, {trackMarkers:true});
	mgr.refresh();
	return false;
}

function AddMarker(latlng) {
	var marker = createMarker(latlng);
	allmarkers.push( marker );
	RebuildGeoTagLegend();
	mgr.addMarker(marker, 1);
	mgr.refresh();
	return marker;
}

function InitListener() {
	if (edit==true) {
		var listener = GEvent.addListener(map,"click", function(overlay,latlng) {     
			if (latlng) {   
				var marker = AddMarker(latlng);
				allmarkerdescription.push($("#advert_body").text());
				var i=allmarkerdescription.length-1;
				var listener = GEvent.addListener(marker, "click", function(){
					var html="";
					html = html+"<a href='javascript:void(0);' onclick='deleteGeoTag("+i+")'>Удалить гео-метку</a><hr>";
					html = html+"описание:<br>";
					html = html+"<textarea class='marker_legend' onchange='SaveDescription("+i+", $(this).val());'>"+allmarkerdescription[i]+"</textarea>";
					this.openInfoWindowHtml(html, {maxWidth:300});
				});
				alllisteners.push(listener);
				
			}
		});
		alllisteners.push(listener);
	}
	$.each(allmarkers, function(i){
		if (this!=false) {
			//alert(edit);
			var listener = GEvent.addListener(this, "click", function(){
				var html="";
				if (edit==true) {
					html = html+"<a href='javascript:void(0);' onclick='deleteGeoTag("+i+")'>Удалить гео-метку</a><hr>";
					html = html+"описание:<br>";
					html = html+"<textarea class='marker_legend' onchange='SaveDescription("+i+", $(this).val());'>"+allmarkerdescription[i]+"</textarea>";
				} else {
					html = html+allmarkerdescription[i];
				}
				this.openInfoWindowHtml(html, {maxWidth:300});
			});
			alllisteners.push(listener);
			if (edit==true) {
				this.enableDragging();
			}
		}
	});
	return false;
}

function deleteGeoTag(markerNum) {
	allmarkers[markerNum]=false;
	mgr.clearMarkers();
	for(i=0; i<allmarkers.length; i++) {
		if (allmarkers[i]) {
			mgr.addMarker(allmarkers[i], 10);
		}
	}
	mgr.refresh();
	RebuildGeoTagLegend();
}

function SetMapCenter(lat, lng) {
	map.panTo( new GLatLng(lat, lng));
}

function SetMapBounds(bounds) {
	map.setCenter( bounds.getCenter(), map.getBoundsZoomLevel(bounds));
}

function RebuildGeoTagLegend() {
	$("#geo_tags").empty();
	var c=0;
	$.each(allmarkers, function(i){
		if (this!=false){
			c++;
			//alert(c);
			$("#geo_tags").append("<a href='javascript:void(0)' onclick='SetMapCenter("+this.getLatLng().lat()+", "+this.getLatLng().lng()+")'>#"+c+"</a> ");
		}
	});
}

function SetGeoTags() {
	if ($('#advert_pass').val()==''){
		alert('Не заполнено поле "Секретный код"');
		return false;
	}
	
	edit=false;
	var bounds=map.getBounds();
	var data="pass="+$('#advert_pass').val()+"&bounds_sw="+bounds.getSouthWest().toUrlValue()+"&bounds_ne="+bounds.getNorthEast().toUrlValue();
	$.each(allmarkers, function(i){
		if (this!=false) {
			data = data+"&geo_tag[]="+this.getLatLng().toUrlValue();
			this.disableDragging();
		}
	});
	$.each(allmarkerdescription, function(i){
		data = data+"&description[]="+encodeURI(this);
	});
	
	$.each(alllisteners, function(i){
		GEvent.removeListener(this);
	});

	alllisteners=[];
	InitListener();
	$('#advertpass_container').hide();
	$('.map_show').show();
	$.ajax({
		type: "GET",
		url: '/advert/'+$('#idchastnik').val()+'/setgeopos/',
		data: data,
		success: function(msg){
				if (msg!='ok') {
					alert( 'Неудалось записать данные! Возможно вы ошиблись при вводе секретного кода.' );
				}
  			}
	});
}

function SaveDescription(i, description) {
	allmarkerdescription[i]=description;
}