﻿      var map;
      var gdir;
      var geocoder = null;
      var addressMarker;
      function initialize()
        {
        if (GBrowserIsCompatible())
          {      
          map = new GMap2(document.getElementById("map_canvas"));
    map.addControl(new GMapTypeControl()); /* Type de vue */
    map.addControl(new GLargeMapControl()); /* Type de zoom +/- et 4 directions */
/*    map.addControl(new GScaleControl());   /* Echelle */
/*    map.addControl(new GOverviewMapControl());  /* Miniature carte */
	  map.setCenter(new GLatLng(44.92032726996294, 4.901361465454102),13,G_HYBRID_MAP);
/*
G_NORMAL_MAP affiche le plan 
G_SATELLITE_MAP visualise une image satellite 
G_HYBRID_MAP Visalise une combinaison d'images satellite et une carte normale (mixte) 
G_PHYSICAL_MAP visualise les informations du terrain (Relief)
*/
	  var point = new GLatLng(44.92032726996294, 4.901361465454102);
	  var MGMicon = new GIcon();
	  MGMicon.iconSize=new GSize(96,96);
	  MGMicon.shadowSize=new GSize(96,96);
	  MGMicon.iconAnchor=new GPoint(24,96);
	  MGMicon.infoWindowAnchor=new GPoint(0,0);
	  var MGMrepere = new GIcon(MGMicon, "./images/pushpin-tooeasy.png", null, "./images/pushpin-shadow.png");
	  var marker = new GMarker(point,MGMrepere);
          gdir = new GDirections(map, document.getElementById("directions"));
          GEvent.addListener(gdir, "load", onGDirectionsLoad); <!-- Charge la partie pour les distances -->
          GEvent.addListener(gdir, "error", handleErrors); <!-- Charge la partie pour les messages d erreurs -->
          map.enableScrollWheelZoom();
	      map.addOverlay(marker);
          }
        }
      function setDirections(fromAddress, toAddress, locale)
        {
        gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
        }
      function handleErrors()
        {
        if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
          alert("Aucune location géographique correspondante n'a pu &ecirc;tre trouvée pour l'une des adresses spécifiées.\nCe qui peut &ecirc;tre du &agrave; une adresse récente, ou incorrecte.\nN'oubliez pas d'ajouter dans l'adresse le pays (en anglais).\nError code: " + gdir.getStatus().code);
        else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
          alert("La demande d'itinéraire n'a pu &ecirc;tre calculée avec succès, aucune raison de l'échec n'est connu.\n Error code: " + gdir.getStatus().code);
        else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
          alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);
        else if (gdir.getStatus().code == G_GEO_BAD_KEY)
          alert("La clé (Key) n'est pas valide ou ne correspond pas au nom de domaine. \n Error code: " + gdir.getStatus().code);
        else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
          alert("La demande d'itinéraire n'a pu &ecirc;tre correctement parsé.\n Error code: " + gdir.getStatus().code);
        else alert("Une erreur inconnue est survenue.");
        }
      function onGDirectionsLoad()
	    {
        var reg=new RegExp("&nbsp;", "g");
        kilometrage = gdir.getDistance().html;
        document.getElementById("km").value = kilometrage.replace(reg,' ');
        }
