/*
	В отображении определяются переменные
	cid, cdir, c_lat, c_lng, c_zoom;
*/
var map, marker, coords, Dots = [];
var add_typ = 1;

$(function() {
	map = new GMap2(document.getElementById("Map"));
	map.enableScrollWheelZoom();
	map.enableContinuousZoom();
	map.addControl(new GLargeMapControl());
	map.addControl(new GScaleControl());
	map.addControl(new GHierarchicalMapTypeControl());
	map.addControl(new GMapTypeControl());

	map.setCenter(new GLatLng(c_lat, c_lng), c_zoom);

	GEvent.addListener(map, "moveend", function() {
		LoadDots();
	});

	GEvent.addListener(map, "mousemove", Map_mousemove);
	GEvent.trigger(map, "mousemove");

	LoadDots();
});


function Map_mousemove(ll) {
	if(!ll) ll = map.getCenter();
	$('#Info').html("Широта: <b>" + Float2Deg(ll.lat()) + "</b> Долгота: <b>" + Float2Deg(ll.lng()) + "</b>");
}

/*
	Загружает и показывает точки на карте
*/
function LoadDots() {
	var bnd = map.getBounds();

	$.getJSON('/ajax/load_dots/', {cid:cid, sw: bnd.getSouthWest().toUrlValue(5), ne: bnd.getNorthEast().toUrlValue(5)}, function(data) {

//		ClearDots();
		if(data.nItems == 0) return;

		for(var did in data.L) {
			if(Dots[did]) continue;
			Dots[did] = new GMarker(new GLatLng(data.L[did].lat, data.L[did].lng), {title: data.L[did].title});
			Dots[did].did = did;
			GEvent.addListener(Dots[did], 'dblclick', GotoDotPage);
			GEvent.addListener(Dots[did], 'click', function() { LoadDotInfo(this.did); });
			map.addOverlay(Dots[did]);
		}
	});
}


function LoadDotInfo(did) {
	Dots[did].openInfoWindowHtml("Подождите, загружаются данные... ");
	$.get('/ajax/dot_info', {id: did}, function(data) {
		Dots[did].openInfoWindowHtml(data);
	});
}

function GotoDotPage() {
	location.href = "/community/" + cdir + "/blog/" + this.did + ".html";
}

function ClearDots() {
	for(var did in Dots) {
		map.removeOverlay(Dots[did]);
		delete Dots[did];
	}
}

function HideDots() {
	for(var did in Dots) { Dots[did].hide(); }
}

function ShowDots() {
	for(var did in Dots) { Dots[did].show(); }
}

