function init_gmaps(uniqueid, listMarker, url, options) {
	
	if (options.mousewheel == null) options.mousewheel = false;
	if (options.typeCarte == null) options.typeCarte = google.maps.MapTypeId.ROADMAP;
	if (options.choixTypeAff == null) options.choixTypeAff = false;
					
	//Création de la carte
	var latlng = new google.maps.LatLng(48.88, 2.36);
    var myOptions = {
      zoom: 5,
      center: latlng,
      disableDefaultUI: true,
      navigationControl: true,
      scaleControl: true,
	  mapTypeControl: options.choixTypeAff,
	  scrollwheel: options.mousewheel,
      mapTypeId: options.typeCarte
    };
	var map = new google.maps.Map(document.getElementById("mapContainer_" + uniqueid), myOptions);

	
	// Icon perso
	//var defaultIcon = new google.maps.MarkerImage("/extension/ez2ST/design/base/images/gmaps/blue.png");

	// Recuperation des markers
   	var arrayMarker = listMarker.evalJSON();
	
	// Chargement en cours - nb marker charge  		
	var nbmarker = 0;
	$('mapContainer_' + uniqueid).className = 'opacity';
	$('mapLoading_' + uniqueid).show();
		
	// Parcours des markers et affichage
	var infowindow = new google.maps.InfoWindow({ maxWidth: 300 });
	var markers = new Array();
	arrayMarker.each(function(marker) {
			  			
			new Ajax.Request(url + "/" + marker, {
			  method: 'get',
			  onSuccess: function(transport) {
			  						
			  		// Nb de marker fait
			  		nbmarker++;
			  	
			  		// Recupere les donnees xml
			    	var xmlDoc = transport.responseXML;
			    	var lat = parseFloat(xmlDoc.getElementsByTagName("latitude")[0].firstChild.nodeValue);
			    	var lng = parseFloat(xmlDoc.getElementsByTagName("longitude")[0].firstChild.nodeValue);
					var zoom = parseInt(xmlDoc.getElementsByTagName("zoom")[0].firstChild.nodeValue);
	    			var titre = xmlDoc.getElementsByTagName("titre")[0].firstChild.nodeValue;
			    	var desc = xmlDoc.getElementsByTagName("desc")[0].firstChild.nodeValue;
			    							
					// Positionne le point sur la carte
					var gpoint = new google.maps.LatLng(lat, lng);
										
			    	// Icone du marker
			    	if (xmlDoc.getElementsByTagName("icon")[0] != null) {
			    		
			    		var icon = xmlDoc.getElementsByTagName("icon")[0].firstChild.nodeValue;
			    		var size = xmlDoc.getElementsByTagName("size")[0].firstChild.nodeValue;
			    		
						var iconPerso = new google.maps.MarkerImage(icon);
	
						var gmarker = new google.maps.Marker({  position: gpoint,
														        map: map,
														        icon: iconPerso,
														        title: titre
														    });
																											
			    	}
			    	else {

						var gmarker = new google.maps.Marker({  position: gpoint,
														        map: map,
														        //icon: defaultIcon,
														        title: titre
														    });
					}
					
					markers.push(gpoint);
					
					// Ajouter un popup sur le marker
					if (desc.length != 0) {

						google.maps.event.addListener(gmarker, "click", function() {
							infowindow.setContent(desc);
							infowindow.open(map, gmarker);
						});
						
			  		}
					
					// Chargement fini.
					if(arrayMarker.length == nbmarker) {
						$('mapLoading_' + uniqueid).hide();
						$('mapContainer_' + uniqueid).removeClassName('opacity');							
					}
					
					
					// Si plus d'un point Centre les points et la carte sinon prends le zoom de l'unique point
					if (markers.length < 1) {
						var bounds = new google.maps.LatLngBounds();
						for (i = 0; i < markers.length; i++) {
							bounds.extend(new google.maps.LatLng(markers[i].lat(), markers[i].lng()));
						}
						
						map.fitBounds(bounds);
					}
					else {
						map.setZoom(zoom);
						map.panTo(gpoint);						
					}
			  }
		});
	});
	
	google.maps.event.addListener(map, "click", function() {			
		if (infowindow) {
			infowindow.close();
			}
	});
}
