if (GBrowserIsCompatible())
{
	// === Create an associative array of GIcons() ===
	var baseIcon = new GIcon();
	baseIcon.image = "http://www.previmeteo.fr/static/picto_gmap/mm_20_red.png";
	baseIcon.shadow = "http://www.previmeteo.fr/static/picto_gmap/mm_20_shadow.png";
	baseIcon.iconSize=new GSize(12,20);
	baseIcon.shadowSize=new GSize(22,20);
	baseIcon.iconAnchor=new GPoint(6,20);
	baseIcon.infoWindowAnchor=new GPoint(5,1);
	var gicons = [];
	gicons["station"] = new GIcon(baseIcon, "http://www.previmeteo.fr/static/picto_gmap/mm_20_red.png");
	gicons["ICAO"] = new GIcon(baseIcon, "http://www.previmeteo.fr/static/picto_gmap/mm_20_blue.png");

	var baseIcon2 = new GIcon();
	baseIcon2.image = "http://www.previmeteo.fr/static/picto_gmap/mm_20_red.png";
	baseIcon2.shadow = "http://www.previmeteo.fr/static/picto_gmap/mm_20_shadow.png";
	baseIcon2.iconSize=new GSize(32,32);
    baseIcon2.shadowSize=new GSize(56,32);
    baseIcon2.iconAnchor=new GPoint(16,32);
    baseIcon2.infoWindowAnchor=new GPoint(20,1);

	gicons["ville"] = new GIcon(baseIcon2, "http://www.previmeteo.fr/static/picto_gmap/arrow.png");

	function charge_xml()
	{
        var bounds = map.getBounds();
  		var southWest = bounds.getSouthWest();
  		var northEast = bounds.getNorthEast();

		GDownloadUrl("/meteo/GoogleMap/XML.php?ptsw="+southWest.toString()+"&ptne="+northEast.toString(), function(data) {
		//GDownloadUrl("test.xml", function(data) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++)
			{
				var lat = parseFloat(markers[i].getAttribute("lat"));
	            var lng = parseFloat(markers[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
			    var html = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
	         	var label = markers[i].getAttribute("label");
	            var icontype = markers[i].getAttribute("icontype");
	            // === create the marker, passing the icontype string ===
				var marker = createMarker(point,html,icontype);
	         	map.addOverlay(marker);
			}
		});
	}

	// Create the marker and corresponding information window
	function createMarker(point,html,icontype)
	{
		var marker = new GMarker(point, gicons[icontype]);
		GEvent.addListener(marker, "mouseover",function() {marker.openExtInfoWindow(map,"simple_example_window",html,{beakOffset: 3});});
		return marker;
	}

	// Display the map, with some controls and set the initial location
	var map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(latitude,longitude),7,G_HYBRID_MAP);
	var center_old = map.getCenter();

	var point = new GLatLng(latitude,longitude);
	var marker = new GMarker(point, gicons['ville']);
	map.addOverlay(marker);

	GEvent.addListener(map, "moveend", function()
	{
		var center_new = map.getCenter();
		var distance=Math.sqrt( (center_old.lat()-center_new.lat())*(center_old.lat()-center_new.lat()) + (center_old.lng()-center_new.lng())*(center_old.lng()-center_new.lng()));

		if (distance> (15/map.getZoom()))
		{
			//je me deplace de plus de 1 deg sur l hypothenuse
			charge_xml();
			center_old = map.getCenter();
		}
	});
	charge_xml();
}
