// JavaScript Document
// Simulador de Taximetro
// Versão: 3.3
// Autor: Jarmando
<!--
var imagens = new Array(11);
/*
##############################################
# Imagens numéricas:                         #
# Para usar as suas próprias imagens,        #
# deve alterar o caminho das imagens abaixo. #
##############################################
*/
	imagens[11] = new Image();
	// 8 cinzento que aparece por baixo dos digitos vermelhos
	imagens[11].src='http://www.antral.pt/imagens/digitos/digito_nada.png';
	imagens[10] = new Image();
	// Ponto
	imagens[10].src='http://www.antral.pt/imagens/digitos/digito_ponto.png';
	imagens[13] = new Image();
	// Simbolo do Euro
	imagens[13].src='http://www.antral.pt/imagens/digitos/digito_euro.png';
	imagens[12] = new Image();
	// Imagem que aparece quando o tamanho do mostrador é superado
	imagens[12].src='http://www.antral.pt/imagens/digitos/digito_erro.png';
for(i=0;i<=9;i++){
	imagens[i] = new Image();
	// Numeros de 0 a 9
	imagens[i].src='http://www.antral.pt/imagens/digitos/digito_'+i+'.png';
}
/*
##############################################
#    Daqui para baixo não se deve mexer...   #
##############################################
*/

var inicio=true;var arrListaLocal=listaLocal.split("#");var	sAntral_localidade = "Portugal";var	sAntral_latitude = 39.3998;var	sAntral_longitude = -8.2244;var	sAntral_zoom = 6;var sAntral_tarifa = 3;var sAntral_origin;var sAntral_destination;var sAntral_origin_old;var sAntral_destination_old;var rendererOptions={'preserveViewport': true, draggable: true};var directionsDisplay=new google.maps.DirectionsRenderer(rendererOptions);var directionsService = new google.maps.DirectionsService();var map;var sAntral_cidade = new google.maps.LatLng(sAntral_latitude, sAntral_longitude, 'PT');function sAntral_iniciar(local){if(document.getElementById('sAntralContainer').innerHTML==""){document.getElementById('sAntralContainer').innerHTML='<table align="center" width="100%"><tr><td><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td colspan="2" bordercolor="#F1f1f1" bgcolor="#F1f1f1"><form action="#" name="form1" onSubmit="sAntral_calcular(); return false" onReset="limpart();"><table width="100%" border="0" align="center" cellpadding="0" style="border:#CCCCCC solid 1px;" class="sAntral_texto"><tr><td height="20" bgcolor="#CCCCCC" style="text-align:center" class="sAntral_texto"><font color="#336699" size="3"><strong>Escolha as moradas de inicio e destino</strong></font></td></tr><tr><td class="sAntral_texto">Arraste os ponteiros no mapa em baixo ou escreva directamente nos campos de texto.</td></tr><tr><td><table width="100%" border="0" align="center" cellpadding="0"><tr><td style="text-align:right; width:30%;" class="sAntral_texto">Dist&acirc;ncia em <strong><span id="medida">Km\'s</span></strong>:&nbsp;</td><td><input name="distancia" onKeyPress="Tecla(event);" type="text" class="sAntral_texto" onFocus="calcular();" onKeyUp="calcular();" value="" size="10" maxlength="5"></td><td style="text-align:right" class="sAntral_texto"><span>Inicio:&nbsp;</span></td><td><input name="marker0" type="text" class="sAntral_texto" id="marker0" value="" size="30" /><input name="marker0_hidden" type="hidden" value="" /></td></tr><tr><td style="text-align:right" class="sAntral_texto"><span>Espera em minutos:&nbsp;</span></span></div></td><td><input name="tempo" onKeyPress="Tecla(event);" type="text" class="sAntral_texto" onFocus="calcular();" onKeyUp="calcular();" value="" size="10" maxlength="4"></td><td style="text-align:right" class="sAntral_texto"><span>Destino:&nbsp;</span></td><td align="right" width="40"><input name="marker1" type="text" class="sAntral_texto" id="marker1" value="" size="30" /><input name="marker1_hidden" type="hidden" value="" /></td></tr><tr><td style="text-align:right;" class="sAntral_texto"><span>Localidade:&nbsp;</span></td><td id="simuladorDropList">&nbsp;</td><td style="text-align:right; width:30%;" onClick="sAntral_calcular();" class="sAntral_texto">Evitar portagens<input name="evitarPortagens" type="checkbox" value="true" checked="checked" /></td><td style="text-align:right"><input name="submit" type="submit" class="sAntral_texto" value="Calcular!" /></td></tr><tr><td colspan="4" bgcolor="#C8C8C8" style="text-align:center"><font color="#336699" size="3"><strong>Suplementos</strong></font></td></tr><tr><td height="20" colspan="4" bgcolor="#F1F1F1" style="text-align:right" class="sAntral_texto"><span style="text-align:right">Bagagem<input name="bagagem" type="checkbox" id="bagagem" value="sim" onClick="calcular();">'+valorBagagem.toFixed(2)+' &euro; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Chamada pelo telefone<input name="telefone" type="checkbox" id="telefone" value="sim" onClick="calcular();">'+valorTelefone.toFixed(2)+' &euro;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Noite ou fim de semana<input name="nocturno" type="checkbox" id="nocturno" value="sim" onClick="calcular();">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" name="limpar" value="Limpar!" class="sAntral_texto"></span></td></tr><tr bordercolor="#F1F1F1" bgcolor="#F1F1F1"><td height="20" colspan="4"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="tabela_tarifa"><tr><td rowspan="2" valign="top" id="texto_lado">As tarifas 1 e 2 s&atilde;o usadas em alguns centros urbanos (ex: Lisboa).<br>As tarifas 3 e 4 s&atilde;o usadas quando se sai fora dos centros urbanos e no resto do pa&iacute;s.<br></td><td width="8" rowspan="2" valign="top">&nbsp;</td><td id="titulo_tarifa">Tarifa</td><td width="8">&nbsp;</td><td id="titulo_suplementos">Suplementos</td><td width="8">&nbsp;</td><td id="titulo_total">Total</td></tr><tr><td height="30" id="tarifa"><img src="'+imagens[11].src+'" height="20"><img src="'+imagens[11].src+'" height="20"></td><td>&nbsp;</td><td id="tsuplementos"><img src="'+imagens[11].src+'" height="20"><img src="'+imagens[11].src+'" height="20"><img src="'+imagens[10].src+'" height="20"><img src="'+imagens[11].src+'" height="20"><img src="'+imagens[11].src+'" height="20"></td><td>&nbsp;</td><td id="ttotal" style="text-align:center"><img src="'+imagens[11].src+'"><img src="'+imagens[11].src+'"><img src="'+imagens[11].src+'"><img src="'+imagens[11].src+'"><img src="'+imagens[11].src+'"><img src="'+imagens[10].src+'"><img src="'+imagens[11].src+'"><img src="'+imagens[13].src+'"></td></tr></table></td></tr></table></td></tr></table></form></td></tr><tr><td class="sAntral_texto"><a href="javascript:sAntral_aumentar();">Modificar tamanho do mapa</a></td><td id="direitos" style="text-align:right;" class="sAntral_texto">Powered by <img src="http://www.antral.pt/imagens/digitos/mini_logo.png" align="absmiddle"> <a href="http://www.antral.pt">www.antral.pt</a></td></tr><tr><tr><td colspan="2"><table width="100%" border="1" bordercolor="#CCCCCC" id="tab_map_canvas"><tr><td><div id="erro" class="erro" style="text-align:right"><table border="0" align="center" cellpadding="0" cellspacing="0"><tr><td id="erro_inc_titulo"><a href="javascript:sAntral_limparErro()">x</a></td></tr><tr><td id="erro_inc"></td></tr></table></div><div id="map_canvas" class="map_canvas" style="width:100%; height:300px;"></div><div id="directionsPanel" style="visibility:hidden; display:none"></div></td></tr></table></td></tr></table></td></tr></table>';if(window.location.search && inicio==true){inicio=false;var queryString=window.location.search.split("=")[1];for(var i=0; i<arrListaLocal.length; i++){if(arrListaLocal[i].search(queryString)!=-1){sAntral_iniciar(arrListaLocal[i]);}}}document.getElementById("direitos").innerHTML='Powered by <img src="http://www.antral.pt/imagens/digitos/mini_logo.png" align="absmiddle"> <a href="http://www.antral.pt">www.antral.pt</a>';}if(local!=null){document.form1.reset();var sAntral_arrLocal = local.split("@");sAntral_localidade = sAntral_arrLocal[0];sAntral_latitude = parseFloat(sAntral_arrLocal[1]);sAntral_longitude = parseFloat(sAntral_arrLocal[2]);sAntral_zoom = parseFloat(sAntral_arrLocal[3]);sAntral_cidade = new google.maps.LatLng(sAntral_latitude, sAntral_longitude, 'PT');if(sAntral_localidade=="Portugal"){sAntral_tarifa = 3;document.getElementById('medida').innerHTML = "Km\'s"}else{sAntral_tarifa = 1;document.getElementById('medida').innerHTML = "metros";}}initialize();}function initialize(){dropList();document.getElementById("tarifa").innerHTML='<img src='+imagens[11].src+' height="20"><img src='+imagens[sAntral_tarifa].src+' height="20">';var myOptions = {zoom: sAntral_zoom, mapTypeControl: true, mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, navigationControl: true, navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, mapTypeId: google.maps.MapTypeId.ROADMAP, center: sAntral_cidade};map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); directionsDisplay.setMap(map); directionsDisplay.setPanel(document.getElementById("directionsPanel")); google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {computeTotalDistance(directionsDisplay.directions);});sAntral_origin=sAntral_localidade;sAntral_destination=sAntral_localidade;calcRoute();}function sAntral_calcular(){sAntral_origin=document.form1.marker0.value;if(sAntral_origin.search("Portugal")==-1){sAntral_origin+=", Portugal";}sAntral_destination=document.form1.marker1.value;if(sAntral_destination.search("Portugal")==-1){sAntral_destination+=", Portugal";}setTimeout("calcRoute()", 500);document.getElementById("tarifa").innerHTML='<img src='+imagens[11].src+' height="20"><img src='+imagens[sAntral_tarifa].src+' height="20">';}function calcRoute() {if(document.form1.evitarPortagens.checked){sAntralPortagens=true;}else{sAntralPortagens=false;}var request = {avoidTolls: sAntralPortagens, region: "PT", origin: sAntral_origin, destination: sAntral_destination, travelMode: google.maps.DirectionsTravelMode.DRIVING};  directionsService.route(request, function(response, status){if (status == google.maps.DirectionsStatus.OK){directionsDisplay.setDirections(response);}});} function computeTotalDistance(result) {sAntral_origin_old=document.form1.marker0_hidden.value;sAntral_destination_old=document.form1.marker1_hidden.value;var totalMetros = 0;var totalSegundos = 0;var myroute = result.routes[0];var mylegs = myroute.legs[0];for (i = 0; i < myroute.legs.length; i++) {totalMetros += myroute.legs[i].distance.value;totalSegundos += myroute.legs[i].duration.value;}if(mylegs.start_address.search(sAntral_localidade)==-1){sAntral_origin=sAntral_origin_old;sAntral_destination=sAntral_destination_old;if(sAntral_tarifa==1 || sAntral_tarifa==2){sAntral_erro('A viagem tem de ser iniciada em '+sAntral_localidade+'.<br /> Para iniciar a viagem fora de '+sAntral_localidade+', por favor escolha outra localidade ou utilize a tarifa 3.');}else{sAntral_erro('A viagem tem de ser iniciada em '+sAntral_localidade+'.');}calcRoute();}else{document.form1.marker0.value=mylegs.start_address;document.form1.marker0_hidden.value=mylegs.start_location;}if(mylegs.end_address){if(mylegs.end_address.search(sAntral_localidade)==-1 && sAntral_tarifa==1 || sAntral_tarifa==2){sAntral_origin=sAntral_origin_old;sAntral_destination=sAntral_destination_old;sAntral_erro('Para sair para fora de '+sAntral_localidade+', por favor utilize a tarifa 3.');calcRoute();}else{document.form1.marker1.value=mylegs.end_address;document.form1.marker1_hidden.value=mylegs.end_location;}}var tempomedio = totalSegundos/240;document.form1.tempo.select();if(sAntral_tarifa==1 || sAntral_tarifa==2){document.form1.tempo.value = tempomedio.toFixed(0);document.form1.distancia.value=totalMetros;}else{totalMetros=totalMetros/1000;document.form1.distancia.value=totalMetros;}document.form1.distancia.select();}function sAntral_erro(erro){document.getElementById('erro_inc').innerHTML=erro;document.getElementById('map_canvas').setAttribute("class", "erro");document.getElementById('erro').setAttribute("class", "map_canvas");} function sAntral_limparErro(){document.getElementById('erro_inc').innerHTML='';document.getElementById('map_canvas').setAttribute("class", "map_canvas");document.getElementById('erro').setAttribute("class", "erro");}
//================================================================================
function dropList(){var sAntral_arrLocal2;if(document.getElementById('simuladorDropList')){var elementId = document.getElementById('simuladorDropList');var conteudo='<select name="local" class="sAntral_texto" id="local" onChange="sAntral_iniciar(this.value)">';conteudo+='<option value="Portugal@39.3998@-8.2244@6">Tarifa 3</option>';for(var i=0; i<arrListaLocal.length; i++){sAntral_arrLocal2=arrListaLocal[i].split("@");conteudo+='<option value="'+arrListaLocal[i]+'"';if(sAntral_arrLocal2[0]==sAntral_localidade){conteudo+=' selected'};conteudo+='>'+sAntral_arrLocal2[0]+'</option>';}elementId.innerHTML=conteudo+'</select>';}}function Tecla(e){var tecla;if(document.layers){tecla = e.which;}else{if ((e.charCode) && (e.keyCode==0)){tecla = e.charCode;}else{tecla = e.keyCode;}}if (tecla > 47 && tecla < 58){return true;}else if(tecla == 46){return true;}else{if (tecla != 8){event.keyCode = 0;}else{return true;}}} function calcular(){var ttotal=0;var tbandeirada=0;		var tdistancia = document.form1.distancia.value;var ttempo = document.form1.tempo.value;if(sAntral_tarifa==1 || sAntral_tarifa==2){		tbandeirada = valorBandeirada;ttempo=ttempo*60/valorSegundos*valorTempo;if(document.form1.nocturno.checked){document.getElementById("tarifa").innerHTML='<img src='+imagens[11].src+' height="20"><img src='+imagens[2].src+' height="20">';tbandeirada = valorBandeiradaN;tdistancia = tdistancia - valorBandMetrosN;tdistancia = tdistancia / valorMetrosN;tdistancia = tdistancia * valorDistancia;if(tdistancia<0){tdistancia=0;}}else{document.getElementById("tarifa").innerHTML='<img src='+imagens[11].src+' height="20"><img src='+imagens[1].src+' height="20">';sAntral_tarifa=1;tdistancia = tdistancia - valorBandMetros;tdistancia = tdistancia / valorMetros;tdistancia = tdistancia * valorDistancia;if(tdistancia<0){tdistancia=0;}}}else{tbandeirada = valorMinimo;tdistancia = tdistancia * 1000 - valorMinimoMetros;ttempo=ttempo*60/valorSegundos*valorTempo;if(document.form1.nocturno.checked){document.getElementById("tarifa").innerHTML='<img src='+imagens[11].src+' height="20"><img src='+imagens[4].src+' height="20">';sAntral_tarifa=4;tbandeirada = tbandeirada*1.20;tdistancia = tdistancia / valorFracaoMetrosN;tdistancia = tdistancia * ValorFracaoEuros;if(tdistancia<0){tdistancia=0;}}else{document.getElementById("tarifa").innerHTML='<img src='+imagens[11].src+' height="20"><img src='+imagens[3].src+' height="20">';sAntral_tarifa=3;tdistancia = tdistancia / valorFracaoMetros;tdistancia = tdistancia * ValorFracaoEuros;if(tdistancia<0){tdistancia=0;}}}ttotal=tbandeirada+tdistancia+ttempo;var tbagagem;if(document.form1.bagagem.checked){tbagagem=valorBagagem;}else{tbagagem=0;}var ttelefone;if(document.form1.telefone.checked){ttelefone=valorTelefone;}else{ttelefone=0;}var temp;var cont;var tsuplementos=tbagagem+ttelefone;var arrtsup = tsuplementos.toFixed(2).split("");tsuplementos="";cont = 5 - arrtsup.length;for(i=0;i<cont;i++){tsuplementos+='<img src='+imagens[11].src+' height="20">'}for(i=0;i<arrtsup.length;i++){temp=arrtsup[i];if(temp=="."){tsuplementos+='<img src='+imagens[10].src+' height="20">';}else{tsuplementos+='<img src='+imagens[arrtsup[i]].src+' height="20">';}}document.getElementById('tsuplementos').innerHTML = tsuplementos;ttotal+=tbagagem+ttelefone;var arrttotal = ttotal.toFixed(2).split("");ttotal='';if(arrttotal.length>7){ttotal='<img src='+imagens[12].src+'>';}else{cont = 7 - arrttotal.length;for(i=0;i<cont;i++){ttotal+='<img src='+imagens[11].src+'>';}for(i=0;i<arrttotal.length;i++){temp=arrttotal[i];if(temp=="."){ttotal+='<img src='+imagens[10].src+'>';}else{ttotal+='<img src='+imagens[arrttotal[i]].src+'>';}}}document.getElementById('ttotal').innerHTML = ttotal+'<img src='+imagens[13].src+'>';} function limpart(){setTimeout("initialize()", 500);} function sAntral_aumentar(){if(document.getElementById('gAdds')){var gAdds_div=document.getElementById('gAdds').style;if(gAdds_div.visibility=="hidden"){gAdds_div.visibility="visible";gAdds_div.display="block";}else{gAdds_div.visibility="hidden";gAdds_div.display="none";}}if(document.getElementById('tab_map_canvas')){var tDiv=document.getElementById('tab_map_canvas').style;if(tDiv.position=="absolute"){tDiv.position="relative";			tDiv.height="311px";document.getElementById('map_canvas').style.height="300px";}else{tDiv.position="absolute";tDiv.height="600px";document.getElementById('map_canvas').style.height="600px";}google.maps.event.trigger(map, 'resize');}}
// -->
