var	ovmap;

// This must be defined before the function setTimeout
function displayOverviewMarkers()
{
	var SmallIcon = new GIcon(G_DEFAULT_ICON);
	SmallIcon.iconSize = new GSize(10, 17);
	SmallIcon.iconAnchor = new GPoint(4, 17);

	var mid_point = mid_marker.getPoint();	
	var	marker = new GMarker(mid_point,{ icon: SmallIcon ,title:'Main Location'});
	if (ovmap)
	{
		if (marker)
			ovmap.addOverlay(marker); 
	}
}
function show_map(arr)
{
	if (!GBrowserIsCompatible())
	{
		alert('Your browser cannot handle our maps');
		return;
	}

		// create the icon, which will indicate where we are on the minimap
		// Lets not bother with a shadow
	var Icon = new GIcon(G_DEFAULT_ICON);
	Icon.image = "/icon/info.png";
	Icon.iconAnchor = new GPoint(11, 34);
	Icon.infoWindowAnchor = new GPoint(17, 0);
	Icon.iconSize = new GSize(21, 34);
	Icon.shadowSize = new GSize(0,0);
	Icon.infoShadowAnchor = new GPoint(11, 11);

	var map = new GMap2(document.getElementById("map"));
	var bounds = new GLatLngBounds();

	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	if (arr.lat)
		map.setCenter(new GLatLng(arr.lat,arr.lon),11);
	else
		map.setCenter(new GLatLng(0,0),11);

	if (arr.ov != 'N')
	{
		over = new GOverviewMapControl();
		map.addControl(over);
		ovmap=over.getOverviewMap();
	}

	GDownloadUrl("mapadd.php3?house="+arr.id+"&single="+arr.single, function(data, responseCode)
	{
  		var xml = GXml.parse(data);
		
  		var markers = xml.documentElement.getElementsByTagName("marker");
  		for (var i = 0; i < markers.length; i++)
		{
			//var point = new GLatLng(parseFloat(markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue), parseFloat(markers[i].getElementsByTagName("lng")[0].firstChild.nodeValue));
	
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lng = parseFloat(markers[i].getAttribute("lng"));
            var point = new GLatLng(lat,lng);
            var html = markers[i].getAttribute("html");
            var caption = markers[i].getAttribute("caption");
            var link = markers[i].getAttribute("link");
            var mid = markers[i].getAttribute("mid");
            var icon = markers[i].getAttribute("icon");

			if (icon.length > 5)
			{
				var marker = createMarker(point,arr,mid,caption,html,link,icon);
			}
			else
				var marker = createMarker(point,arr,mid,caption,html,link);
			map.addOverlay(marker);
			if (mid == 'M')
				mid_marker=marker;
		}

		map.setCenter(mid_marker.getPoint());
		setTimeout("displayOverviewMarkers()",1);
		point = map.getCenter();

		var zoom = map.getBoundsZoomLevel(bounds) -1;
		if (arr.zoom > 1)
			zoom = arr.zoom;
		if (zoom > 10) zoom = 10;
		map.setZoom(zoom);
	});

	function createMarker(point,arr,mid,caption,html,link,icon)
	{
		if (icon)
		{
			Icon.image = icon;
			var	marker = new GMarker(point,{icon: Icon, title:caption, draggable:true});
		}
		else
			var	marker = new GMarker(point,{ title:caption, draggable:true});

		marker.caption=caption;
		marker.html=html;
		marker.link=link;
		marker.mid = mid;
		marker.image = icon;
						// don't allow edit on main icon
		bounds.extend(point);
		if (arr.info != 'N')
		{
			GEvent.addListener(marker, 'mouseover', function()
			{
	  			marker.openInfoWindowHtml(ws(marker.html,marker.link));
			});
			GEvent.addListener(marker, 'click', function()
			{
	  			marker.openInfoWindowHtml(ws(marker.html,marker.link));
			});
		}
		return marker;
	}

	function ws(html,link)
	{
		if (link)
			html += '<div><br><a href="'+link+'" target="win">Link to the Site</a>';
		return '<div style="width:200px; height:100px; overflow:hidden; text-align:justify">'+html+'.</div>';
	}
}
