var map;var gdir;var geocoder = null;var addressMarker;var xml;var animIntval;
WebApp.AddEventListener("endslide", endSlideListener);WebApp.AddEventListener("load", loadListener);
function init() {	var loader = new XMLHttpRequest();	loader.open("GET", "xml/tarifastaxi.xml" ,false);	loader.send(null);	xml = loader.responseXML;	var elem = xml.getElementsByTagName("tarifa") ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	for(i=0; i < elem.length; i++) {		var item = elem[i];		var value =  item.getElementsByTagName("estado")[0].firstChild.nodeValue;		var text =  item.getElementsByTagName("cidade")[0].firstChild.nodeValue;		var combo = e("cmbCidade");		combo.options[i]=new Option(text,value);	}	//		map = new GMap2(e("map"));	gdir = new GDirections(map, e("directions"));	GEvent.addListener(gdir, "load", beginTransition);	GEvent.addListener(gdir, "error", erros);	map.addControl(new GLargeMapControl());	map.addControl(new GMapTypeControl());}function erros() {	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) {		alert("Endereço não encontrado, verifique a ortografia e tente novamente.");	}	else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) {		alert("Erro no servidor.");	}	else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) {		alert("Endereço não encontrado, verifique a ortografia e tente novamente.");	}	else if (gdir.getStatus().code == G_GEO_BAD_KEY) {		alert("Erro no servidor");	}	else if (gdir.getStatus().code == G_GEO_BAD_REQUEST) {		alert("Erro no servidor");	}	else {		alert("Endereço não encontrado, verifique a ortografia e tente novamente.");  	} }// fim funcao erros
	
String.prototype.trim = function() {	return this.replace(/^\s+|\s+$/g,"");}
function loadListener(evt) {	if(evt.context.length > 0) {		e("iHeader").hide();		e("homeHeader").show();		location.href = "#_Home";	}	init();}
function endSlideListener(evt) {	var l = location.href;	var hash;	if(l.indexOf("#") == -1)		hash = null;	else		hash = l.substr(l.indexOf("#"), l.length);
	if(hash == null || hash == "#_Home" || hash == "#") { // home		e("iHeader").hide();		e("homeHeader").show();		e("logo").show();	}	else { // outros		//e("homeHeader").hide();		//e("logo").hide();		//e("iHeader").show();		return;	}}
// função auxiliar - atalho para obter elemento e injeção de métodos hide() e show()
function e(en) {	var el = document.getElementById(en);	if(el == null)		return null;	el.show = function() {		this.style.display = "block";	}	el.hide = function() {		this.style.display = "none";	}	el.x = function(value) {		this.style.left = (parseInt(this.style.left) + value) + "px";	}	el.y = function(value) {		this.style.top = (parseInt(this.style.top) + value) + "px";	}	el.width = function(value) {		if(value == null) {			return parseInt(this.style.width);		}		if(!isNaN(value)) {			this.style.width = value + "px";		}	}		el.height = function(value) {		if(value == null) {			return parseInt(this.style.height);		}		if(!isNaN(value)) {			this.style.height = value + "px";		}	}		el.moveX = function(value) {		el.x(el.x() + value);	}		el.moveY = function(value) {		el.y(el.y() + value);	}	
	return el;
}
function calcular() {	if(!testaForm()) 		return;
	//	var local = "pt_BR";	var pais = "Brasil";	var combo = e("cmbCidade");	var estado = combo.options[combo.selectedIndex].value;	var cidade = combo.options[combo.selectedIndex].text;	var origem = e("txtOrigem").value + "," + cidade + "," + estado + "," + pais;	var destino = e("txtDestino").value + "," + cidade + "," + estado + "," + pais;	gdir.load("from: " + origem + " to: " + destino, {"locale": local });}
function Tarifas() {	var combo = e("cmbCidade");	var seltext = combo.options[combo.selectedIndex].text;	var elem = xml.getElementsByTagName("tarifa");	for(i = 0; i < elem.length; i++) {		var item = elem[i];		if(item.getElementsByTagName("cidade")[0].firstChild.nodeValue == seltext){			this.bandeirada =  parseFloat(item.getElementsByTagName("bandeirada")[0].firstChild.nodeValue);			this.bandeira1 =  parseFloat(item.getElementsByTagName("bandeira1")[0].firstChild.nodeValue);			this.bandeira2 = parseFloat(item.getElementsByTagName("bandeira2")[0].firstChild.nodeValue);			return;		}	}}
function beginTransition() {	e("iHeader").x(-e("iHeader").height());	e("iHeader").show();	animIntval = setInterval(intvalAnim(), 16);}
function intvalAnim() {	if(e("homeHeader").y() >  -e("homeHeader").height()) {		e("homeHeader").moveY(-1);	} 	else if(e("iHeader").y() <  0) {		e("iHeader").x(0);	}	else {		e("homeHeader").hide();		endTransition();		return;	}}function endTransition() {	clearInterval(animIntval);	calcularTarifas();	location.href = "#_Calc";}function calcularTarifas() {		var result1;	var result2;	var gdis = gdir.getDistance();	var tarifa = new Tarifas();	preco1 = Math.round((tarifa.bandeirada + (tarifa.bandeira1 * (gdis.meters / 1000))) * 100) / 100;	preco1total = (preco1 * 0.02) + preco1;	e("tar1").innerHTML = + preco1total.toFixed(2);	preco2 = Math.round((tarifa.bandeirada + (tarifa.bandeira2 * (gdis.meters / 1000))) * 100) / 100;	preco2total = (preco2 * 0.02) + preco2;	e("tar2").innerHTML = + preco2total.toFixed(2);}

// testa se campos do formulário foram preenchidos
function testaForm() {	if(e("cmbCidade").selectedIndex == 0) {		alert("Selecione uma cidade");		return false;	}
	else if(e("txtOrigem").value.trim() == "") {		alert("Digite o endereço de partida");		return false;	}
	else if(e("txtDestino").value.trim() == "") {		alert("Digite o endereço de destino");		return false;	}
	return true;}
