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

// Fonction d'initialisation de la carte
function gmap_load(div, lng, lat, zoom) {//alert('google maps');
    // 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.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());
        }
        coord = new GLatLng( lat, lng )
        map.setCenter(coord, zoom);
        gmap_add_marker(coord, div);
    }
}

// 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, "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);
}

function gmtp(){
adresse=document.forms["google_search"].elements["address"].value;
 cp=document.forms["google_search"].elements["cp"].value;
alert(adresse+','+cp);
}

// Fonction de recherche d'une adresse
function gmap_show_address(div, address) {
//gmtp();
var adresse=document.forms["google_search"].elements["address"].value;
var cp=document.forms["google_search"].elements["cp"].value;

    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);
            }
        });
    }
}
