google.load("maps", "2");

var map = null;

function xml_to_map(element_id, url)
{
	if(element_id == "" || url == "")
		return;
	
	var element = document.getElementById(element_id);
	
	if(google.maps.BrowserIsCompatible())
	{
		map = new google.maps.Map2(element);
		
		map.addControl(new google.maps.LargeMapControl());
		map.addControl(new google.maps.MapTypeControl());
		
		map.setCenter(new google.maps.LatLng(0.0, 0.0), 0);
		
		google.maps.DownloadUrl(url, parse_xml);
	}
	else
		alert("Your browser is not compatible with google maps!");
}

function parse_xml(data, code)
{
	if(data == null || code == -1)
		return;
	
	var xml = google.maps.Xml.parse(data);
	var bounds = new google.maps.LatLngBounds();
	var markers = xml.documentElement.getElementsByTagName("marker");
	
	for(var i = 0; i < markers.length; i++)
	{
		var image = markers[i].getAttribute("img");
		var latlng = new google.maps.LatLng(markers[i].getAttribute("lat"), markers[i].getAttribute("lng"));
		var marker = new google.maps.Marker(latlng);
		
		bounds.extend(latlng);
		
		marker.bindInfoWindowHtml((image != "" ? "<img src=\"" + image + "\"/>" : "") + markers[i].getAttribute("html")
								  + "<a href=\"javascript:street_view('" + latlng.toUrlValue() + "');\">Street View</a>");
		
		map.addOverlay(marker);
	}
	
	map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	map.savePosition();
	delete bounds;
}

function street_view(latlng)
{
	window.open("streetview.php?latlng=" + latlng, "_blank", "width=800,height=600");
}