var MAX_ZOOM = 8;
var map;
var tooltip;


function GMapLoad()
{
	tooltip = document.createElement("div");
	tooltip.id = "tooltip";
	tooltip.style.visibility="hidden";

	map = new QMap($("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
//	map.setCenter(new GLatLng(53.722, 46.977), 5);

	map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip);

	GEvent.addListener(map, "zoomend", function(zold, znew) {
		zoomend(zold, znew);
	});
	GEvent.addListener(map, "addoverlay", function(o) {
		addListener(o);
	});

	map.loadXml("/map/data.xml", true);

//	var kml = new GGeoXml("http://www.electrode.ru/map.kml");
//	map.addOverlay(kml);
}



function zoomend(zold, znew)
{
	if (znew >= MAX_ZOOM)
		map.setZoom(zold);
}



function addListener(marker)
{
	if(marker.type != "default")
		return;

	GEvent.addListener(marker, "mouseover", function() {
		showTooltip(marker);
	});
	GEvent.addListener(marker, "mouseout", function() {
		hideTooltip();
	});
}



function showTooltip(marker)
{
	if (!marker.title) return;

	tooltip.innerHTML = marker.title;

	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width;
	var height=tooltip.clientHeight;
	var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width, offset.y - point.y -anchor.y -height));
	pos.apply(tooltip);

	tooltip.style.visibility="visible";
}



function hideTooltip()
{
	tooltip.style.visibility = "hidden";
}
