
  
  var map;
  var geocoder;
  
   var map2;
   var gdir;
   var geocoder = null;
   var addressMarker;
   
   

  function CapitalCitiesCache() {
    GGeocodeCache.apply(this);
  }

  CapitalCitiesCache.prototype = new GGeocodeCache();

  function addAddressToMap(response) {
    map.clearOverlays();

    if (response && response.Status.code != 200) {
      alert("Unable to locate " + decodeURIComponent(response.name));
    } else {
      var place = response.Placemark[0];
      var point = new GLatLng(place.Point.coordinates[1],
                              place.Point.coordinates[0]);
      map.setCenter(point, 14);
    }
  }

  function findCity(which) {
    if (which != 0) {
   //   geocoder.getLocations(city[which - 1].name, addAddressToMap);
     // geocoder.getLocations("Porto Alegre, brasil", addAddressToMap);
      geocoder.getLocations(which, addAddressToMap);
      gdir.load("from: " + which + " to: " + "Av Ipiranga,6681 , Porto Alegre", { "locale": 'pt-BR' });


    }
  }
  
  
    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Nenhum correspondente geográfico foi encontrar para algum dos endereços especificados. Isso pode ocorrer se o endereço for relativamente recente.\nError code: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("A solicitação de georeferência ou consulta de endereço não foi encontrada por alguma razão desconhecida.\n Error code: " + gdir.getStatus().code);
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("O parâmetro de consulta HTTP está errado ou perdido. Para consultas por georeferência, significa que um dos campos está vazio. Para consultas por solicitação por endereço, significa que um dos endereços não existe.\n Error code: " + gdir.getStatus().code);
 
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
	    
	   else alert("An unknown error occurred.");
	   
	}

  function initialize() {
    map = new GMap2(document.getElementById("map_canvas"));
	map.setCenter(new GLatLng(-30.058, -51.1749), 13);
	geocoder = new GClientGeocoder();
    geocoder.setCache(new CapitalCitiesCache());
    
    if (GBrowserIsCompatible()) {      
        map2 = new GMap2(document.getElementById("map_canvas2"));
		map2.addControl(new GSmallMapControl());
		gdir = new GDirections(map2, document.getElementById("directions"));
        // GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);
		
		findCity("Aeroporto Salgado Filho, Porto Alegre");
      }
	  


  }