
    var map;
    var regionid;
    var municipaliteId = 0;

    function setupMap(lat, lng, zoom, regid) {
      if (GBrowserIsCompatible()) 
      {
		var MapDiv = document.getElementById("map");
		regionid = regid;
        map = new GMap2(MapDiv);
        map.addControl(new GLargeMapControl());
        map.setCenter(new GLatLng(lat, lng), zoom);
        map.enableDoubleClickZoom();
		window.setTimeout(getXMLMarkers, 0);
      }
    }

    function setupMapMunicipalite(lat, lng, zoom, regid, munid) {
		municipaliteId = munid;
		setupMap(lat, lng, zoom, regid);
    }

    function setupMapRegion(lat, lng, zoom) {
      if (GBrowserIsCompatible()) 
      {
		var MapDiv = document.getElementById("map");
        map = new GMap2(MapDiv);
        map.addControl(new GLargeMapControl());
        map.setCenter(new GLatLng(lat, lng), zoom);
        map.enableDoubleClickZoom();
		window.setTimeout(getXMLMarkersRegion, 0);
      }
    }


    function getXMLMarkersRegion() 
    {
		GDownloadUrl("/ext/GoogleMarkersRegion.aspx?rnd="+getRandomNumber(1000), function(data) 
		{
			var batch1 = [];
			var batch2 = [];
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) 
			{
				var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
										parseFloat(markers[i].getAttribute("lng")));
				var html = markers[i].getAttribute("html");
				var zoom = markers[i].getAttribute("z");
				var pin = markers[i].getAttribute("pin");
				var title = markers[i].getAttribute("title");

				var icon = getIcon(pin);

				var marker = new GMarker(latlng,{icon: icon,title: title});
				marker.bindInfoWindowHtml(html);
				if (zoom==5)
				{
					batch1.push(marker);
				}
				else
				{
					batch2.push(marker);
				}
			}
			mgr = new MarkerManager(map);
			mgr.addMarkers(batch1, 5);
			mgr.addMarkers(batch2, 11);
			mgr.refresh();
		});
    };

    function getXMLMarkers() 
    {
		GDownloadUrl("/ext/GoogleMarkers.aspx?id="+regionid+"&qrmunid="+municipaliteId+"&rnd="+getRandomNumber(1000), function(data) 
		{
			var batch = [];
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) 
			{
				var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
										parseFloat(markers[i].getAttribute("lng")));
				var html = markers[i].getAttribute("html");
				var pin = markers[i].getAttribute("pin");
				var title = markers[i].getAttribute("title");
				
				var icon = getIcon(pin);
				var marker = new GMarker(latlng,{icon: icon, title: title});
				marker.bindInfoWindowHtml(html);
				batch.push(marker);
			}
			mgr = new MarkerManager(map);
			mgr.addMarkers(batch, 2);
			mgr.refresh();
		});
    };

	
	function getIcon(path) 
	{
		var icon = new GIcon();
		icon.image = path;
		icon.iconAnchor = new GPoint(16, 16);
		icon.infoWindowAnchor = new GPoint(16, 0);
		icon.iconSize = new GSize(19, 28);
		return icon;
	};

	function getRandomNumber(range)
	{
		return Math.floor(Math.random() * range);
	};

