    var map;
    var gdir;
    var geocoder = null;
    var addressMarker;

    function load() {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));

        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);

        setDirections("Pintor Navarro Llorens 17, Valencia, Spain", "Pintor Navarro Llorens 17, Valencia, Spain", "es");
      }
    }
    
    function setDirections(fromAddress, toAddress, locale) {
      gdir.load("from: " + fromAddress + " to: " + 'Calle Pintor Navarro Llorens 17, Valencia, Espana',
                { "locale": locale });
    }

    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("No se puede encontrar una localizacion geografica para la direccion facilitada. Esto puede deberse a que la direccion sea relativamente nueva o que pueda ser incorrecta.\nError code: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("La direccion solicitada o la codificacion geografica (geocoding) no puede ser procesada con exito y aun no se conoce la razon del fallo.\n Error code: " + gdir.getStatus().code);
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("El parametro q de HTTP se perdio o no tiene valor. Para peticiones ubicacion geografica esto puede significar que se especifico una direccion vacia en los datos de entrada. Para direccionessolicitadas esto significa que ninguna consulta fue especificada en la peticion.\n Error code: " + gdir.getStatus().code);

	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("El codigo geografico (geocode) para la direccion dada o la ruta las direcciones dadas en la consulta no pueden ser devueltas por causas legales o razones contractuales de servicio de Google.\n Error code: " + gdir.getStatus().code);
	     
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("La clave o es invalida o no se corresponde con la del dominio para el que se facilito. \n Error code: " + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("La direccion solicitada no puede ser analizada sintacticamente con exito.\n Error code: " + gdir.getStatus().code);
	    
	   else alert("An unknown error occurred.");
	   
	}

	function onGDirectionsLoad(){ 
          // Use this function to access information about the latest load()
          // results.

          // e.g.
	  // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	  // and yada yada yada...
	}
