﻿var POICities = new Array('GUARULHOS', 'RIO DE JANEIRO', 'CURITIBA', 'COTIA', 'SANTANA DE PARNAÍBA', 'SÃO BERNARDO DO CAMPO', 'SÃO PAULO', 'BARUERI', 'SÃO CAETANO DO SUL', 'SANTO ANDRÉ', 'EMBU', 'OSASCO', 'BRASÍLIA');
var _pesquisaPOIExibida;

function atualizarExibicaoPesquisaPOI() 
{
    var flagPOI = false;
    for(var i = 0; i < POICities.length; i++)
    {
        var cidadePOI = POICities[i];
        if(cidadePOI.toUpperCase() == $('sCitydivCboCtEnd').value.toUpperCase()) {
            flagPOI = true;
            break;
        }
    }
    
    if(flagPOI)
        $('divPOIEnd').style.display = 'block';
    else
        $('divPOIEnd').style.display = 'none';
}

function callAcceptFunctionAdd(ev)
{
    var e;
    if(ev)
        e = ev;
    else
        e = window.event;
        
    if(e.keyCode==13) {
        buscarEndereco();
    }
}

function callAcceptFunctionPOI(ev)
{
    var e;
    if(ev)
        e = ev;
    else
        e = window.event;
        
    if(e.keyCode==13) {
        buscarPOI();
    }
}

function callAcceptFunctionRoute(ev)
{
    var e;
    if(ev)
        e = ev;
    else
        e = window.event;
        
    if(e.keyCode==13) {
        buscarRota();
    }
}

function atualizaExibicaoPesquisaPOIRota()
{
    var flagPOI = false;
    _pesquisaPOIExibida = false;
    for(var i = 0; i < POICities.length; i++)
    {
        var cidadePOI = POICities[i];
        if(cidadePOI.toUpperCase() == $('sCitydivCboCtRota').value.toUpperCase()) {
            _pesquisaPOIExibida = true;
            flagPOI = true;
            break;
        }
    }
    
//    if(flagPOI) {
//        $('tablePOIOrigem').style.display = 'block';
//        $('tablePOIDestino').style.display = 'block';
//    }
//    else {
//        $('tablePOIOrigem').style.display = 'none';
//        $('tablePOIDestino').style.display = 'none';
//    }
}

function buscarEndereco()
{
    if($('txtRuaEnd').value.length < 3) {
        alert('- O endereço deve ter no mínimo 3 caracteres.');
        return false;
    }
    
    $('op').value = 'address';
    $('cidade').value = $('sCitydivCboCtEnd').value
    $('UF').value = $('sStatedivCboStEnd').value
    $('ruaEnd').value = $('txtRuaEnd').value;
    $('nroEnd').value = $('txtNroEnd').value;
    
    document.formPesquisa.action = 'mapa.aspx';
    document.formPesquisa.submit();
}

function buscarPOI()
{
    if($('txtPOIEnd').value.length < 3) {
        alert('- O nome do ponto de interesse deve ter no mínimo 3 caracteres.');
        return false;
    }
    
    $('op').value = 'POI';
    $('cidade').value = $('sCitydivCboCtEnd').value
    $('UF').value = $('sStatedivCboStEnd').value
    $('POI').value = $('txtPOIEnd').value;
    
    document.formPesquisa.action = 'mapa.aspx';
    document.formPesquisa.submit();
}

function buscarRota()
{
    var errorList = '';
    
    if(_pesquisaPOIExibida) {
         var exitBlock = false;
         
         if($('txtRuaOrigem').value.length == 0 && $('txtPOIOrigem').value.length == 0) {
                errorList += '- O endereço ou o nome do ponto de interesse da origem deve ter no mínimo 3 caracteres.\n';
                exitBlock = true;
         }
         
         if(!exitBlock)
            if($('txtRuaOrigem').value.length < 3 && $('txtPOIOrigem').value.length == 0) {
                    errorList += '- O endereço da origem deve ter no mínimo 3 caracteres.\n';
                    exitBlock = true;
            }
            
         if(!exitBlock)
            if($('txtPOIOrigem').value.length < 3 && $('txtRuaOrigem').value.length == 0) {
                    errorList += '- O nome do ponto de interesse da origem deve ter no mínimo 3 caracteres.\n';
            } 
    }
    else {
        if($('txtRuaOrigem').value.length < 3)
            errorList += '- O endereço da origem deve ter no mínimo 3 caracteres.\n';
    }
    
    if(_pesquisaPOIExibida) {
         var exitBlock = false;
    
         if($('txtRuaDestino').value.length == 0 && $('txtPOIDestino').value.length == 0) {
                errorList += '- O endereço ou o nome do ponto de interesse do destino deve ter no mínimo 3 caracteres.\n';
                exitBlock = true;
         }
         
         if(!exitBlock)
            if($('txtRuaDestino').value.length < 3 && $('txtPOIDestino').value.length == 0) {
                    errorList += '- O endereço do destino deve ter no mínimo 3 caracteres.\n';
                    exitBlock = true;
            }
            
         if(!exitBlock)
            if($('txtPOIDestino').value.length < 3 && $('txtRuaDestino').value.length == 0) {
                    errorList += '- O nome do ponto de interesse do destino deve ter no mínimo 3 caracteres.\n';
            } 
    }
    else {
        if($('txtRuaDestino').value.length < 3)
            errorList += '- O endereço do destino deve ter no mínimo 3 caracteres.\n';
    }    
    
    if(errorList != '') {
        alert(errorList);
        return false;
    }
    
    $('op').value = 'route';
    $('cidade').value = $('sCitydivCboCtRota').value;
    $('UF').value = $('sStatedivCboStRota').value;
    $('ruaOrigem').value = $('txtRuaOrigem').value;
    $('nroOrigem').value = $('txtNroOrigem').value;
    $('POIOrigem').value = $('txtPOIOrigem').value;
    $('ruaDestino').value = $('txtRuaDestino').value;
    $('nroDestino').value = $('txtNroDestino').value;
    $('POIDestino').value = $('txtPOIDestino').value;
    
    document.formPesquisa.action = 'mapa.aspx';
    document.formPesquisa.submit();
}

function initialize()
{
    $('op').value = '';
    
    if(typeof MaplinkAPI == "undefined")
        return;
        
    var control = new MaplinkAPI();
    if(!control)
        return;

    var fStEnd = new MField('divCboStEnd', M_TP_STATE);
    fStEnd.field.className = "campo";
    fStEnd.show();

    var fCtEnd = new MField('divCboCtEnd', M_TP_CITY);
    fCtEnd.field.className = "campo";
    fCtEnd.show();
    
    var uf_atual = QueryString("uf") != ""? QueryString("uf").toUpperCase(): "SP";
    
    var primeiroEventoCboEnd = true;
    var firstTimeLoadCboRota = false;
    var trocaUFCboEnd = true;
    var trocaUFCboRota = true;
    
    control.findStates(fStEnd, fCtEnd, function(states){
            if(trocaUFCboEnd) { 
                trocaUFCboEnd = false; 
                 
                fStEnd.field.value = uf_atual;   
                fStEnd.field.onchange();
            } 
            else
            {
                if(primeiroEventoCboEnd) {
                    firstTimeLoadCboRota = true;
                    primeiroEventoCboEnd = false;
                }
                
                $('sCitydivCboCtEnd').onchange = atualizarExibicaoPesquisaPOI;
                atualizarExibicaoPesquisaPOI();
            }
                
            if(firstTimeLoadCboRota) {
            
                firstTimeLoadCboRota = false;

                var fStRota = new MField('divCboStRota', M_TP_STATE);
                fStRota.field.className = "campo";
                fStRota.show();

                var fCtRota = new MField('divCboCtRota', M_TP_CITY);
                fCtRota.field.className = "campo";
                fCtRota.show();
                
                control.findStates(fStRota, fCtRota, function(states){
                    
                    if(trocaUFCboRota) { 
                        trocaUFCboRota = false; 
                         
                        fStRota.field.value = uf_atual;   
                        fStRota.field.onchange();
                    } 
                    else
                    {
                        $('sCitydivCboCtRota').onchange = atualizaExibicaoPesquisaPOIRota;
                        atualizaExibicaoPesquisaPOIRota();
                    }
                }); 
            }                  
        });    
}

