/* ------------------------------------------------------------------- Função para imprimir a tela selecionada ------------------------------------------------------------------- */ function Imprimir() { window.print() } /* ------------------------------------------------------------------- Função para voltar pra a página anterior ------------------------------------------------------------------- */ function Voltar() { window.history.back(); } /* ------------------------------------------------------------------- Função para fechar uma jenela ------------------------------------------------------------------- */ function Fechar() { window.close(); } /* ------------------------------------------------------------------- Função para abrir uma nova janela centralizada ------------------------------------------------------------------- */ function Abrir(URL,janela,largura,altura) { posx = (screen.width/2)-(largura/2)-5 posy = (screen.height/2)-(altura/2)-40 features = "status=no,menubar=no,toolbar=no,scrollbars=auto,location=no,resizable=no,width=" + largura + ",height=" + altura + ",top=" + posy + ",left=" + posx window.open(URL,janela,features); } /* -------------------------------------------------------------------- Função responsável por encontrar objetos e elementos -------------------------------------------------------------------- */ function LocalizarObj(n, d) //v4.01 { var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p); } if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4)); if (!dataValida) { alert("Data inválida. Formato: dd/mm/aaaa"); data.focus(); return false; } dataValida = ( ano >= hojeAno) && (mes >= hojeMes) && (dia>=hojeDia); if (!dataValida) { alert("Data inválida, dia anterior à hoje. Formato: dd/mm/aaaa"); data.focus(); return false; } } else { alert("Data inválida. Formato: dd/mm/aaaa"); data.focus(); return false; } hora = LocalizarObj('txtHora'); barras = hora.value.split(":"); if (barras.length == 2) { horas = barras[0]; minutos = barras[1]; horaValida = (!isNaN(horas) && (horas >= 0) && (horas < 24)) && (!isNaN(minutos) && (minutos >= 0) && (minutos < 60)) if (!horaValida) { alert("Hora inválida. Formato: hh:mm"); hora.focus(); return false; } horaValida = ( ( ano > hojeAno) || (mes > hojeMes) || (dia > hojeDia) || (horas > hojeHoras) || ( (horas == hojeHoras) && (minutos > hojeMinutos) ) ); if (!horaValida) { alert("Hora inválida. Formato: hh:mm"); hora.focus(); return false; } } else { alert("Hora inválida. Formato: hh:mm"); hora.focus(); return false; } } nome = LocalizarObj('txtNome'); rua = LocalizarObj('txtRuaColeta'); numero = LocalizarObj('txtNumeroColeta'); cidade = LocalizarObj('txtCidadeColeta'); estado = LocalizarObj('txtEstadoColeta'); if ( nome == undefined || nome.value == "") { alert('Preencher nome'); nome.focus(); return false; } if ( rua == undefined || rua.value == "") { alert('Preencher endereço de coleta'); rua.focus(); return false; } if ( numero == undefined || numero.value == "") { alert('Preencher endereço de coleta'); numero.focus(); return false; } if ( cidade == undefined || cidade.value == "") { alert('Preencher endereço de coleta'); cidade.focus(); return false; } if ( estado == undefined || estado.value == "") { alert('Preencher endereço de coleta'); estado.focus(); return false; } return true; } function ValidaData(data) { barras = data.split("/"); if (barras.length != 3) return("Data inválida. Formato: dd/mm/aaaa"); dia = barras[0]; mes = barras[1]; ano = barras[2]; dataValida = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4)); if (!dataValida) return("Data inválida. Formato: dd/mm/aaaa"); return true; } function ValidaHora(hora) { barras = hora.split(":"); if (barras.length != 2) return("Hora inválida. Formato: hh:mm"); horas = barras[0]; minutos = barras[1]; horaValida = (!isNaN(horas) && (horas >= 0) && (horas < 24)) && (!isNaN(minutos) && (minutos >= 0) && (minutos < 60)) if (!horaValida) return("Hora inválida. Formato: hh:mm"); return true; } function ValidaFiltroData() { data = LocalizarObj('txtDataInicial'); ret = ValidaData(data.value); if (ret != true) { alert(ret); data.focus(); return false; } } function ValidaFiltroPosicoes() { if (LocalizarObj('cbDataInicial').checked) { data = LocalizarObj('txtDataInicial'); ret = ValidaData(data.value); if (ret != true) { alert(ret); data.focus(); return false; } hora = LocalizarObj('txtHoraInicial'); ret = ValidaHora(hora.value); if (ret != true) { alert("Hora inválida. Formato: hh:mm"); hora.focus(); return false; } } if (LocalizarObj('cbDataFinal').checked) { data = LocalizarObj('txtDataFinal'); ret = ValidaData(data.value); if (ret != true) { alert(ret); data.focus(); return false; } hora = LocalizarObj('txtHoraFinal'); ret = ValidaHora(hora.value); if (ret != true) { alert("Hora inválida. Formato: hh:mm"); hora.focus(); return false; } } return true; } /* ------------------------------------------------- Funcao que verifica se o usuário escolheu alguma opção no form de escolher endereços ------------------------------------------------- */ function ValidaEnderecoSelecionado() { coleta_selecionada = false; coleta = LocalizarObj('txtColetaSelecionada'); for (counter = 0; counter < coleta.length; counter++) { if (coleta[counter].checked) { coleta_selecionada = true; break; } } if (coleta_selecionada == false) { alert("Selecione um ponto de coleta"); return false; } // O ponto de entrega não é obrigatório, mas se foi // escolhido no form anterior, uma opção deve ser // selecionada entrega = LocalizarObj('txtEntregaSelecionada'); if (entrega != undefined) { entrega_selecionada = false; for (counter = 0; counter < entrega.length; counter++) { if (entrega[counter].checked) { entrega_selecionada = true; break; } } if (entrega_selecionada == false) { alert("Selecione um ponto de entrega"); return false; } } return true; } /* Tratamento dos eventos */ var EvtHandlerInitialized = false; var interval=30000; var mensagensTotal=""; var mensagensHigh=""; var mensagensMid=""; var mensagensLow=""; var mensagensUnk=""; var sireneLigada = false; var mensagens = new Array(); try { AjaxEvtHandler = new XMLHttpRequest(); } catch(ee) { try { AjaxEvtHandler = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { AjaxEvtHandler = new ActiveXObject("Microsoft.XMLHTTP"); } catch(E) { AjaxEvtHandler = false; } } } function StartTimer() { var total = document.getElementById("mensagensTotal"); if (total != undefined) TimerHandler(); } function AjaxHandler() { if (AjaxEvtHandler == undefined) return; switch (AjaxEvtHandler.readyState) { case 0: // status.innerHTML="Uninitialized"; break; case 1: // status.innerHTML="Loading"+contador; break; case 2: // status.innerHTML="Loaded"; break; case 3: // status.innerHTML="Interactive"; break; case 4: if (AjaxEvtHandler.status == 200) { // status.innerHTML="Completed"; status.innerHTML=AjaxEvtHandler.responseText; AjaxMessageParser(AjaxEvtHandler.responseText); MessageHandlerAcoes(); var total = document.getElementById("mensagensTotal"); var high = document.getElementById("mensagensHigh"); var mid = document.getElementById("mensagensMid"); var low = document.getElementById("mensagensLow"); var unk = document.getElementById("mensagensUnk"); total.innerHTML=mensagensTotal; high.innerHTML=mensagensHigh; mid.innerHTML=mensagensMid; low.innerHTML=mensagensLow; unk.innerHTML=mensagensUnk; } else { status.innerHTML="Erro atualizando status: " + AjaxEvtHandler.status; // value.innerHTML=""; } break; } } function MessageHandlerPopup(msg) { var popup = window.open('', '', 'height=300,width=300'); popup.document.write(' Mensagem de alerta '); popup.document.write(''); popup.document.write('

Mansagem:' + msg.texto + '

'); popup.document.write('

Veículo:' + msg.veiculo + '

'); popup.document.write(''); popup.document.close(); } function MessageHandlerAcoes() { var checkLigarSirene = false; for (var i=0; i LBSUpdateSteps)/* && ((!LBSHandlerInitialized) || (AjaxLBSHandler.readyState == 4))*/ ) { LBSStepCounter=0; var url="../veiculos/veiculos_lbsclaro_ajax.php?transaction=" + LBSTransactionNum; LBSHandlerInitialized = true; AjaxLBSHandler.open("GET", url, true); AjaxLBSHandler.onreadystatechange=LBSAjaxHandler; AjaxLBSHandler.send(null); } var timer = document.getElementById("lbs_timer"); var tempo = LBSUpdateSteps-LBSStepCounter; if (LBSStepCounter > LBSUpdateSteps) { tempo = 0; alert('readyState: ' + AjaxLBSHandler.readyState); } timer.innerHTML=tempo; self.setTimeout("LBSTimerHandler()", LBSStep); } //function StartLBSTimer() //{ // var div = document.getElementById("lbs_ajax"); // if (div != undefined) // LBSTimerHandler(); //} function AjaxLBSParser(xml) { var xmlDoc = new REXML(xml); transactions = Array(); transactions.length = 0; for (var i=0; i 0) && (transactions[0].status != undefined) && (transactions[0].status != "") ) { if (parseInt(transactions[0].status) == 0) { LBSmessage = '' + transactions[0].descr + ''; Abrir('../veiculos/veiculos_localizar.php?id=' + LBSIdVeiculo,'_blank', 800,600) } else { LBSmessage = '' + transactions[0].descr + ''; } LBSTransactionDone = true; window.location.href=window.location.href; } else { LBSmessage = "Resposta ainda não recebida"; } } function LBSAjaxHandler() { if (AjaxLBSHandler == undefined) return; switch (AjaxLBSHandler.readyState) { case 0: case 1: case 2: case 3: break; case 4: if (AjaxLBSHandler.status == 200) { AjaxLBSParser(AjaxLBSHandler.responseText); var div = document.getElementById("lbs_ajax"); div.innerHTML=LBSmessage; } break; } } function DesligarSirene() { if (!sireneLigada) return; document.sirene.Stop(); // var sound=document.getElementById("sirene"); // sound.Stop(); sireneLigada = false; } function LigarSirene() { if (sireneLigada) return; // var sound=document.getElementById("sirene"); // alert(sound); // sound.Play(); document.sirene.Play(); sireneLigada = true; } /* Funcoes para adicionar / remover veículos de uma lista * Requerem que uma estrutura como a abaixo tenha sido * montada var listaEquipPorGrupo= new Array(); listaEquipPorGrupo["taxisat"] = new Array( new equipamento(1, 'iih3747'), new equipamento(2, 'abc1234')); listaEquipPorGrupo["gaucha"] = new Array( new equipamento(3, 'aaa1111'), new equipamento(4, 'bbb2222')); Onde: taxisat e gaucha são os nomes dos grupos; 1, 2, 3 e 4 são os IDs dos equipamentos no banco. iih3747, abc1234... são as placas (st_nome); Além disto, deve haver uma chamada à função 'ShowGruposEquipamentos' para exibir a tela inicial e deve existir o esqueleto abaixo:
*/ function equipamento(id_veiculo, st_nome) { this.id_veiculo = id_veiculo; this.st_nome = st_nome; this.Option = "\n"; } function ShowGruposEquipamentos() { var grupos = ""; var selGrupos = document.getElementById("txtGrupos"); selGrupos.options.length=0; for (var grupo in listaEquipPorGrupo) { selGrupos.options[selGrupos.length] = new Option(grupo, grupo); } ReloadEquipamentos(); } function ShowGruposEquipamentos2() { var grupos = ""; var selGrupos = document.getElementById("txtGrupos2"); selGrupos.options.length=0; for (var grupo in listaEquipPorGrupo2) { selGrupos.options[selGrupos.length] = new Option(grupo, grupo); } ReloadEquipamentos2(); } function ReloadEquipamentos() { // var equips=""; var selGrupos = document.getElementById("txtGrupos"); var selEquips = document.getElementById("txtEquipamentos"); if (selGrupos.selectedIndex == -1) return; var grupo = selGrupos.options[selGrupos.selectedIndex].value; selEquips.options.length=0; selEquips.options[0] = new Option('Todos', 0); for (var j=0; j