var myMap;
function initMap(rawxmlstring,controltype) 
{
	if (GBrowserIsCompatible()) 
	{
	
		var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined');
		var saf = ( navigator.userAgent.indexOf( 'Safari' ) != -1 );
		function createMarker(point,icon,data) 
		{
			var marker = new GMarker(point,icon);
			var xslurl = data.getAttribute("infoStyle");
			if(xslurl != null)
			{
				if(moz && !saf)
				{
					GEvent.addListener(marker, "click", function() {
						var xsltProcessor = new XSLTProcessor();
						var myXMLHTTPRequest = new XMLHttpRequest();
						myXMLHTTPRequest.open("GET", xslurl, false);
						myXMLHTTPRequest.send(null);
						xslStylesheet = myXMLHTTPRequest.responseXML;
						xsltProcessor.importStylesheet(xslStylesheet);
						var result = xsltProcessor.transformToFragment(data, document);
						var resultdiv = document.createElement('div');
						resultdiv.appendChild(result);
						marker.openInfoWindowHtml(resultdiv.innerHTML);
						});
				}
				else if(window.ActiveXObject)
				{
					GEvent.addListener(marker, "click", function() {
						xsl = new ActiveXObject("Microsoft.XMLDOM");
						xsl.async = false;
						xsl.load(xslurl);
						marker.openInfoWindowHtml(data.transformNode(xsl));
						});
				}
				else
				{
					GEvent.addListener(marker, "click", function() {
						var info = data.getElementsByTagName("info");
						var lnk = info[0].getElementsByTagName("LNK");
						window.open('/' + lnk[0].textContent + '.html');
						});
				}
			}
			return marker;
		}

	
		myMap = new GMap2(document.getElementById("container_frb"));
		if(controltype=='small')
			myMap.addControl(new GSmallMapControl());
		else
		{
			myMap.addControl(new GLargeMapControl());
			myMap.addControl(new GMapTypeControl());
		}

		var xml = GXml.parse(rawxmlstring);
		
		var center = xml.documentElement.getElementsByTagName("center");
		var latCenter = parseFloat(center[0].getAttribute("lat"));
		var lngCenter = parseFloat(center[0].getAttribute("lng"));
		var span = xml.documentElement.getElementsByTagName("span");
		var latSpan = parseFloat(span[0].getAttribute("lat"));
		var lngSpan = parseFloat(span[0].getAttribute("lng"));

		var the_bounds = new GLatLngBounds(
			new GLatLng(latCenter + latSpan/2, lngCenter - lngSpan/2),
			new GLatLng(latCenter - latSpan/2, lngCenter + lngSpan/2) );

		var zlevel = myMap.getBoundsZoomLevel(the_bounds) + 1;
		if (zlevel > 11)
			zlevel = 11;
		myMap.setCenter(new GLatLng(latCenter, lngCenter), zlevel);
		
		var markers = xml.documentElement.getElementsByTagName("location");
		for (var i = 0; i < markers.length; i++)
		{
			var point = markers[i].getElementsByTagName("point");
			var pointlatlng = new GLatLng(parseFloat(point[0].getAttribute("lat")),
								parseFloat(point[0].getAttribute("lng")));

			var iconnode = markers[i].getElementsByTagName("icon");
			var iconurl = iconnode[0].getAttribute("image");
			var icon = new GIcon(G_DEFAULT_ICON,iconurl);

			var newmarker = createMarker(pointlatlng, icon, markers[i]);
					
			myMap.addOverlay(newmarker);
		}

	}
	else 
	{
		if(controltype!='small')
			alert("Sorry, the maps are not compatible with your browser!");
	}
}
