	/* Chargement du module "maps" dans sa version "2.x" */
	google.load("maps", "2.x",{"other_params":"sensor=false"});
	
	/* D�claration des variables globales */
	var carteItineraire;
	var optionsItineraire={avoidHighways:true, preserveViewport:false, getPolyline:true}
	var maBalade;
	
	/* Fonction initialize() */
	function initialize() {
		if (google.maps.BrowserIsCompatible()) {
			if( $('map') || $('map_studio') ) {
				
				/* Génération de la carte */
				if( $('map') ) carteItineraire = new google.maps.Map2($('map'));
				else if( $('map_studio') ) carteItineraire = new google.maps.Map2($('map_studio'));
				carteItineraire.setCenter(new google.maps.LatLng(47,2), 5);
				carteItineraire.setUIToDefault();
				
				/* Création de l'objet Balade */
				maBalade = new Balade(carteItineraire);	
				
				if($('studioForm')){
					
					/* Event Handlers pour les controles */
					$('eviterAutoroute').onclick = function(){
						if( $('eviterAutoroute').checked ){
							optionsItineraire.avoidHighways=true;
							maBalade.doItineraire();
						}else{
							optionsItineraire.avoidHighways=false;
							maBalade.doItineraire();
						}
					}
					$('recadrage').onclick = function(){
						if( $('recadrage').checked ){
							optionsItineraire.preserveViewport=true;
							maBalade.boundCarte();
						}else{
							optionsItineraire.preserveViewport=false;
						}
					}
					
					/* Event Handlers sur la map */
					GEvent.addListener(carteItineraire,"click", mapClick);
				}
				//else if( $('map') ){
					// On déclanche le loadBalade aussi bien dans le détail d'une balade
					// que dans le studio (pour modifier une balade).
					loadBalade();
				//}
			}
			else if ($('map_home')) {
				/* Génération de la carte */
				carteItineraire = new google.maps.Map2(document.getElementById("map_home"));
				carteItineraire.setCenter(new google.maps.LatLng(47,1.6), 5);
				carteItineraire.setUIToDefault();
				loadHomePoints();
			}	
		}else{
			alert('Désolé, mais votre navigateur n\'est pas compatible avec Google Maps');
		}	
	}
	
	function baladeMarker(name, lat, lng, id){
		// Création d'un GooglePoint
		var latLng = new GLatLng(lat, lng, false);
		
    	var myIcon = new GIcon();
		myIcon.image = public_url+'images/mapIcon/balade.png';
		myIcon.printImage = public_url+'images/mapIcon/balade_printImage.gif';
		myIcon.mozPrintImage = public_url+'images/mapIcon/balade_mozPrintImage.gif';
		myIcon.iconSize = new GSize(37,37);
		myIcon.shadow = public_url+'images/mapIcon/balade_shadow.png';
		myIcon.transparent = public_url+'images/mapIcon/transparent.png';
		myIcon.shadowSize = new GSize(56,37);
		myIcon.printShadow = public_url+'images/mapIcon/balade_printShadow.gif';
		myIcon.iconAnchor = new GPoint(19,37);
		myIcon.infoWindowAnchor = new GPoint(19,0);
    	
    	// Création du nouveau marqueur
    	newMarker = new GMarker(latLng,{
    		icon: myIcon,
    		title: id,
    		draggable:false
    	});
    	newMarker.disableDragging();
    	
    	// Ajout d'event handler
		GEvent.addListener(newMarker, "click", homeInfoWindow);
		
		// Mise en place du nouveau marqueur
		carteItineraire.addOverlay(newMarker);
	}
	
	function homeInfoWindow(point) {
		var content = "<div class='infobulleTitle'>"+"&nbsp;"+"</div>";
		content += "<hr/>";
		content += "<div class='infobulleLatLng'>";
		content += "Lattitude : "+point.lat() + "<br/>";
		content += "Longitude : "+point.lng() + "<br/>";
		content += "</div>";
		content += "<hr/>";
		content += "<a href='"+public_url+"index.php/balades/detail?balade_id="+this.getTitle()+"'>Consulter cette balade</a>";
		content += "<br/>";
		content += "<a href='"+public_url+"index.php/balades/index'>Consulter la liste de toutes les balades</a>";
		//carteItineraire.openInfoWindow(point,content);
		load_content_forInfoWindowInIndexMap(point.lat(), point.lng(), this.getTitle());
	}

function load_content_forInfoWindowInIndexMap(lat, lng, id){
  $j.ajax({
    url: public_url+'index.php/actions/loadcontentforinfowindowinindexmap',
    data: {
            balade_id: id,
            lat: lat,
            lng: lng
        },
    success: function(data){
      point = new google.maps.LatLng(data['lat'],data['lng']);
        carteItineraire.openInfoWindow(point,data['htmlContent']);
    }
  });
}
	
	/* Appelle la fonction "initialize" lorsque la page web sera chargée */
	google.setOnLoadCallback(initialize);
	
	function mapClick(overlay, point) {
		// Here, 'this' refers to Gmap object.
		if(point){
			maBalade.addWaypoint(point.lat(),point.lng());
		}
	}
	
	function clearMap() {
	  carteItineraire.clearOverlays();
	}
	
	function bmlog(message){
		$("logBox").innerHTML += message+"<br/>";
	}
	
	function displayPoi(name, lat, lng, type){
		// Création d'un GooglePoint
		var latLng = new GLatLng(lat, lng, false);    	
		
		iconName = 'defaultpoi';
		if(type ==  8) iconName = 'fuel';
		if(type ==  9) iconName = 'fixe';
		if(type == 10) iconName = 'mobile';
		if(type == 11) iconName = 'feu';
		
		var myIcon = new GIcon();
		myIcon.image = public_url+'images/mapIcon/'+iconName+'.png';
		myIcon.iconSize = new GSize(38,40);
		myIcon.shadow = public_url+'images/mapIcon/'+iconName+'_shadow.png';
		myIcon.transparent = public_url+'images/mapIcon/transparent.png';
		myIcon.shadowSize = new GSize(62,40);
		myIcon.iconAnchor = new GPoint(19,40);
		myIcon.infoWindowAnchor = new GPoint(19,0);
    	
    	// Création du nouveau marqueur
    	newMarker = new GMarker(latLng,{
    		icon: myIcon,
    		title: name,
    		draggable:false
    	});
    	newMarker.disableDragging();
    	
    	// Ajout d'event handler
		//GEvent.addListener(newMarker, "click", homeInfoWindow);
		
		// Mise en place du nouveau marqueur		
		carteItineraire.addOverlay(newMarker);		
/*
		var point = new GLatLng(lat, lng);
		carteItineraire.addOverlay(new GMarker(point));
*/		
	}
	
	function loadPoi(typeId){
		$j.ajax({
			url: public_url+'index.php/actions/loadpoi',
			data: {
				poi_type_id: typeId
			},
			success: function(data){
				clearMap();
				for(var i= 0; i < data.length; i++){
					displayPoi(data[i]['poi_name'], data[i]['poi_lat'], data[i]['poi_lng'], data[i]['poi_type_id']);
				}
			}
		});
	}
