  var map;
    var gdir;
    var geocoder = new GClientGeocoder();

    var addressMarker;
	var mgr;
	var batch=[];
	var Icon = new GIcon(G_DEFAULT_ICON);
	var value_aff=0;
Icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
Icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
Icon.iconSize = new GSize(12, 20);
Icon.shadowSize = new GSize(22, 20);
Icon.iconAnchor = new GPoint(6, 20);
Icon.infoWindowAnchor = new GPoint(5, 1);
//var trafficInfo = new GTrafficOverlay();

    function load() {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));
		mapdiv = document.getElementById("map");

		map.enableDoubleClickZoom();
		map.addControl(new GOverviewMapControl());
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		//map.addControl(new GSmallZoomControl());
		map.addControl(new GScaleControl());
  //map.addOverlay(trafficInfo);


		function mouseWheel(event) 
		{
				if (event.cancelable)
			event.preventDefault();
			(event.detail || -event.wheelDelta) < 0 ? map.zoomIn() : map.zoomOut();
			affiche_radars();
			return false;
		}

		GEvent.addDomListener(mapdiv, "DOMMouseScroll", mouseWheel);
		GEvent.addDomListener(mapdiv, "mousewheel", mouseWheel);

		var point = new GLatLng(47, 1.9);
		map.setCenter(point, 5);
        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "error", handleErrors);

		moveEventHandler = GEvent.addListener(map, "moveend", affiche_radars);
		zoomEventHandler = GEvent.addListener(map, "zoomend", affiche_radars);
		affiche_radars();


      }
    }


    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("L'adresse donnée n'a pu être trouvée\nCeci peut être du au fait que l'adresse est trop récente, ou alors incomplète.");
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("Erreur retournée par le serveur de localisation.");
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Une des adresse spécifiée est vide");
  
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("Une des adresse spécifiée est vide ou mal formulée.");
	    
	   else alert("L'adresse donnée n'a pu être trouvée\nCeci peutr être du au fait que l'adresse est trop récente, ou incomplète, ou alors pas assez renseignée pour être unique.");
		clearId("print");	
	}



	function affiche_radars()
	{
		cache();
        var bounds = map.getBounds();
        var sw = bounds.getSouthWest();
        var ne = bounds.getNorthEast();
		lat1=ne.lat();
		lat2=sw.lat();
		lng1=ne.lng();
		lng2=sw.lng();
		var url = "js/liste.php?lat1=" + lat1 + "&lat2=" + lat2 + "&lng1=" + lng1 + "&lng2=" + lng2;
        GDownloadUrl(url,tr);

	}


	function tr(xml, code) {
				cache();
				batch=[];
			    mgr = new GMarkerManager(map);
                if (code != 200) {
                        alert("Couldn't get \"" + rssobj.source + "\": " + code);
                } else {
                        var xmlData = GXml.parse(xml);
						umarkers = xmlData.getElementsByTagName("marker");
						if (umarkers.length<=100)
						{
							for (var i = 0; i < umarkers.length; i++) {
								var point = new GLatLng(parseFloat(umarkers[i].getAttribute("lat")),parseFloat(umarkers[i].getAttribute("lng")));
								batch.push(new GMarker(point,Icon));
							}
							document.getElementById("result_radar").value=umarkers.length+" radars dans la zone.";
							document.getElementById("result_radar").style.color="#000000";
							clearId("tn1");
							affiche();

						}
						else
						{
							document.getElementById("result_radar").value=umarkers.length+" radars dans la zone.";
							document.getElementById("result_radar").style.color="#ff0000";
							affId("tn1");
						}
				}
        }

function showAddress(address) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert(address + " not found");
      } else {
        map.setCenter(point, 13);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
      }
    }
  );
}


function cache()
{
	for (i=0;i<batch.length;i++)
	{
		map.removeOverlay(batch[i]);
	}
	value_aff=0;
}

function affiche()
{
	for (i=0;i<batch.length;i++)
	{
		map.addOverlay(batch[i]);
	}
	value_aff=1;
}

function chto(str)
{
	reinit_menu();
	if (str=="metro")
	{
		var point = new GLatLng(47, 1.9);
		map.setCenter(point, 5);
	}
	else if (str=="guadeloupe")
	{
		var point = new GLatLng(15.4236, -61.0949);
		map.setCenter(point, 8);
	}
	else if (str=="guyanne")
	{
		var point = new GLatLng(3.6753, -52.612);
		map.setCenter(point, 7);
	}
	else if (str=="martinique")
	{
		var point = new GLatLng(15.4236, -61.0949);
		map.setCenter(point, 8);
	}
	else if (str=="reunion")
	{
		var point = new GLatLng(-21.116859, 55.537119);
		map.setCenter(point, 8);
	}
	else if (str=="polynesie")
	{
		var point = new GLatLng(-17.675273, -149.14048);
		map.setCenter(point, 9);
	}
	else if (str=="st-pierre")
	{
		var point = new GLatLng(46.9491, -56.2889);
		map.setCenter(point, 9);
	}
	else if (str=="wallis")
	{
		var point = new GLatLng(-13.768752, -177.1561);
		map.setCenter(point, 8);
	}
	else if (str=="mayotte")
	{
		var point = new GLatLng(-12.8275, 45.166244);
		map.setCenter(point, 9);
	}
	else if (str=="st-martin")
	{
		var point = new GLatLng(18.092526,-63.059503);
		map.setCenter(point, 9);
	}
	else if (str=="st-barth")
	{
		var point = new GLatLng(17.898262,-62.822308);
		map.setCenter(point, 9);
	}

	else if (str=="nlle-caledonie")
	{
		var point = new GLatLng(-21.755087, 165.46392);
		map.setCenter(point, 8);
	}
}

function reinit_menu()
{
clearId("dom");
clearId("tom");
}

function aff_menu(obj,id_menu)
{
	reinit_menu();
	setLyr(obj,document.getElementById(id_menu),0,20);
	affId(id_menu);

}
