//<![CDATA[
var mapviewer;
var labeled = false;
var map;
var mapSize = 'normal';
var zoomControl;
var typeControl;
var point;
var marker;
var gdir;

function loadMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("mapviewer"));
		map.enableDoubleClickZoom();
		map.enableContinuousZoom();
		map.disableScrollWheelZoom(); 
		if (locationLAT != '' && locationLON != '') {
			point = new GLatLng(locationLAT, locationLON);
			map.setCenter(point, 15);
			marker = new GMarker(point);
			map.addOverlay(marker);
			gdir = new GDirections(map, document.getElementById("googleDir"));
      	  	GEvent.addListener(gdir, "error", handleErrors);
			GEvent.addListener(gdir, "load", onGDirectionsLoad);
		}
	}
}

function navMap(lat, lon) {
	map.removeOverlay(marker);
	point = new GLatLng(lat, lon);
	map.setCenter(point, 15);
	marker = new GMarker(point);
	map.addOverlay(marker);
	document.location.hash = 'mapa';
}

function switchMapSize() {
	var mapDiv = MM_findObj("mapviewer");
	var mapCtrl = MM_findObj("mapControls");
	var lnkLbl = MM_findObj("lnkLabel");
	if (mapSize == 'normal') {
		zoomControl = new GLargeMapControl();
		typeControl = new GMapTypeControl();
		map.addControl(zoomControl);
		map.addControl(typeControl);
		map.enableScrollWheelZoom(); 
		mapDiv.style.height = '600px';
		mapDiv.style.width = '650px';
		mapCtrl.style.width = '650px';
		lnkLbl.innerHTML = 'Smaller view';
		setTimeout('resetView()', 10);
		mapSize = 'extended';
	} else {
		map.removeControl(zoomControl);
		map.removeControl(typeControl);
		map.disableScrollWheelZoom(); 
		zoomControl = null;
		typeControl = null;
		mapDiv.style.height = '300px';
		mapDiv.style.width = '100%';
		mapCtrl.style.width = '100%';
		lnkLbl.innerHTML = 'Larger view';
		setTimeout('resetView()', 10);
		map.setMapType(G_NORMAL_MAP);
		mapSize = 'normal';
	}
}

function resetView() {
	map.checkResize(); 
	map.setCenter(point, 15);
}

function showRoute(theForm) {
	from = theForm.fromAddress.value;
	var to = '';
	to = point.y.toString() + ', ' + point.x.toString();
	gdir.load("from: " + from + " to: " + to,
                { "locale": 'pt_BR' });
}

function handleErrors(){
	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) {
		alert("Não foi possível localizar o endereço digitado. Verifique o endereço e tente novamente.\nError code: " + gdir.getStatus().code);
		document.form2.fromAddress.focus();
	} else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) {
		alert("Ocorreu um erro desconhecido ao processar o endereço solicitado.\n Error code: " + gdir.getStatus().code);
		document.form2.fromAddress.focus();
	} else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) {
		alert("Você não digitou nenhum endereço. Tente novamente.\n Error code: " + gdir.getStatus().code);
		document.form2.fromAddress.focus();
	} else if (gdir.getStatus().code == G_GEO_BAD_KEY) {
		alert("Ocorreu um problema ao processar o endereço.\n Error code: " + gdir.getStatus().code);
		document.form2.fromAddress.focus();
	}else if (gdir.getStatus().code == G_GEO_BAD_REQUEST){
		alert("Ocorreu um problema ao processar o endereço.\n Error code: " + gdir.getStatus().code);
		document.form2.fromAddress.focus();
	} else {
		alert("Ocorreu um erro desconhecido.\n Error code: " + gdir.getStatus().code);
	}
}
function onGDirectionsLoad(){ 
	el = MM_findObj('googleDir');
	el.style.display='block';
}

//]]> 
