// declaração de variáveis
var map;
var marker;

// função que carrega o mapa inicial marcando o nosso ponto de chegada
function loadMaps() {
	// verifica a compatibilidade do google maps
  if (GBrowserIsCompatible()) {
	
	// Instancia o objeto e aplica na div 'mapa'
	map = new GMap2(document.getElementById("mapa"));
	// Especifica as coordenadas do centro do mapa e o zoom
	map.setCenter(new GLatLng(-19.749918, -47.941699), 17);
	// Especifica o div em que será exibido o detalhamento da rota 
	directionsPanel = document.getElementById("route");
	gdir = new GDirections(map, directionsPanel);
	// Adiciona o evento de erros a função handleErrors
	GEvent.addListener(gdir, "error", handleErrors);

	//Adiciona barra de zoom e setas para movimentação no mapa
	map.addControl(new GSmallMapControl());
	
	//Adiciona um marcador nas coordenadas de chegada
	var point = new GLatLng(-19.749918, -47.941699); 
	marker = new GMarker(point);
	map.addOverlay(marker);
	marker.title = "Travessa Cel. José Ferreira, 396 <br /> Uberaba - MG - 38010-320 <br /> (34) 3312-0796";
 	//GEvent.addListener(marker, "click", function() {  
		marker.openInfoWindow(marker.title);  
	//});
  }
}

// Traça a Rota
function setDirections(fromAddress, toAddress, locale){
	gdir.load("from: " + fromAddress + " to: " + toAddress,{"locale": "pt_BR"});
	// Remove o marcador inicial
	map.removeOverlay(marker);
}

// Especifica a origem e o destino
function tracarRota() {
	setDirections(document.getElementById('from').value, "Travessa Cel. José Ferreira, 396 - Uberaba - MG, 38010-320");
}

// Função com tratamentos de erros
function handleErrors()
{
   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	 alert("Não foi possível achar o endereço. Isso pode ter ocorrido porque o endereço digitado ainda não está inserido no googlemaps ou porque foi digitado incorretamente.\nCódigo do Erro: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	 alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Código do Erro: " + 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 Código do Erro: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	 alert("Key inválida. Procure a key correta para este domínio no site do google. \n Código do Erro: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	 alert("A directions request could not be successfully parsed.\n Código do Erro: " + gdir.getStatus().code);
   else alert("Ocorreu um erro inesperado.");
}