	// http://www.c-p-f.org/javascript-Utilisation_de_GoogleMap_Geolocalisation-a34.html

// instanciation de la carte
var map = null;
// instanciation du géocodage
var geocoder = null;


	// Création des icones
var iconRouge = new GIcon();
iconRouge.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
iconRouge.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
iconRouge.iconSize = new GSize(12, 20);
iconRouge.shadowSize = new GSize(22, 20);
iconRouge.iconAnchor = new GPoint(6, 20);
iconRouge.infoWindowAnchor = new GPoint(5, 1);

var iconVerte = new GIcon();
iconVerte.image = "http://labs.google.com/ridefinder/images/mm_20_green.png";
iconVerte.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
iconVerte.iconSize = new GSize(12, 20);
iconVerte.shadowSize = new GSize(22, 20);
iconVerte.iconAnchor = new GPoint(6, 20);
iconVerte.infoWindowAnchor = new GPoint(5, 1);





// Fonction d'initialisation de la carte
function gmap_load(div, lng, lat, zoom) {
    // div: le div dans lequel nous affichons la carte
    // lng, lat: les coordonnées du point
    // zoom: le niveau de zoom de la carte
    if (GBrowserIsCompatible()) {
        if (!map) {
            map = new GMap2(document.getElementById(div));
	    map.setMapType(G_SATELLITE_MAP); 
            map.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());
	    }
        coord = new GLatLng( lat, lng );
        map.setCenter(coord, zoom);
 //       gmap_add_marker(coord, div);
 
 
// 	Test
 
 
 
 
    }
}


// Fonction de création de points et utilisation des icones
function createMarker(point, legend, couleurIcone) {
	var marker = new GMarker(point, couleurIcone);

	  GEvent.addListener(marker, "click", function() {
	    marker.openInfoWindowHtml(tabDescrGM[legend]);
  	});


return marker;
}












// Fonction d'ajout d'un marqueur
function gmap_add_marker(coord, div) {
    // coord: les coordonnées du point
    // div: le div dans lequel nous affichons la carte
    map.clearOverlays();
    var marker = new GMarker(coord, {draggable: true});
    // L'option |draggable: true} permet de déplacer le marqueur
    GEvent.addListener(marker, "dragend", function() {
        // Cette fonction permet de mettre à jour les coordonnées dans le formulaire
        ncoords = marker.getPoint();
        map.setCenter(ncoords);
        document.getElementById(div+'_lng').value = ncoords.lng();
        document.getElementById(div+'_lat').value = ncoords.lat();
    });
    
        GEvent.addListener(marker, "click", function() {
        // Cette fonction permet de mettre à jour les coordonnées dans le formulaire
        ncoords = marker.getPoint();
        map.setCenter(ncoords);
        document.getElementById(div+'_lng').value = ncoords.lng();
        document.getElementById(div+'_lat').value = ncoords.lat();
    });
    
    
    
    
    map.addOverlay(marker);
}

// Fonction de recherche d'une adresse
function gmap_show_address(div, address) {
    if(!geocoder) {
        // si le geocoder n'a pas été utilisé, on l'instancie
        geocoder = new GClientGeocoder();
    }
    if(geocoder) {
        geocoder.getLatLng(address, function(point) {
            if(address== "" ) {
                // Cette condition permet de ne réagir que lorsque l'API a effectivement reçu notre champ
            } else if(!point) {
                // Ici, le cas où l'adresse n'existe pas dans la base de GoogleMaps
                alert(address +' : est introuvable sur GoogleMap');
            } else {
                gmap_load(div, point.lng(), point.lat(), true, map.getZoom());
                gmap_add_marker(point, field);
            }
        });
    }
}






	// Récupère les coordonnées sur le panoramique
function getcoordpano(formX, formY, appletName)
	{
	document.getElementById(formX).value = document.getElementById(appletName).get_x();
	document.getElementById(formY).value = document.getElementById(appletName).get_y();
	}


function resizeMapDiv() {
        //Resize the height of the div containing the map.
        //Do not call any map methods here as the resize is called before the map is created.
    	var d=document.getElementById("map");
        var offsetTop=0;
        for (var elem=d; elem!=null; elem=elem.offsetParent) {
            offsetTop+=elem.offsetTop;
        }
        var height=getWindowHeight()-offsetTop-getWindowHeight()*.2;
        if (height>=0) {
            d.style.height=height+"px";
        }
    }
   function getWindowHeight() {
        if (window.self&&self.innerHeight) {
            return self.innerHeight;
        }
        if (document.documentElement&&document.documentElement.clientHeight) {
            return document.documentElement.clientHeight;
        }
        return 0;
    }

