﻿var _x;
var _y;
var rm;
var rc = null;
var rc1;
var mapa;
var mk = null;
var marker1 = null;
var marker2 = null;
var chosentfv;
var sTanqCapacidade;
var sConsumo;
var sPrecoCombustivel;
var strAgencias = '';
var RetornaGeo = null;
var bAgencia = false;
var bAgenciaRet = false;
var bcidadeA = false;
var bCidadeB = false;
var tt1 = [];
var tt2 = [];
var o1 = null;
var o2 = null;
var ValoresRota;
var ValoresInfo;
var Valorespedagio;
var ValoresTrecho;
 var pontoAtendimento;

var $j = jQuery;

function CarregarMapa() {
    _x = -57.744140625;
    _y = -14.3495478372;
    mapa = new MMap2(document.getElementById('map'));
    mapa.setCenter(new MPoint(_x, _y), 4);

    mapa.addControl(new GLargeMapControl());
}
function load() {
    CarregarMapa();
    var subtitulo;
    var titulo;
    CarregarValCookie();
}

function getRoute() {
    //Seta a rota como entre cidadedes sem sendereço
    bcidadeA = false;
    bcidadeB = false;
    //var pontoAtendimento;
    o1 = document.getElementById("AutoComplete2_hdnSelectedValue").value;
    o2 = document.getElementById("AutoComplete4_hdnSelectedValue").value;
    //var pontoAtendimento = document.getElementById("cbo_pto_atend").value;
    if (document.getElementById("cbo_pto_atend").value == "Agencia") {
        pontoAtendimento = "TB_SANTANDER";
    } else if (document.getElementById("cbo_pto_atend").value == "Caixa") {
        pontoAtendimento = "TB_SANTANDER_CAIXAS_ELETRONICOS";
    }
    
    
    //textoItem("cbo_pto_atend");
    
    //len = document.form1.chbRaio.length;


    //var indexSelect = document.getElementById("cbo_pto_atend").selectedIndex;
    
    //var valueSelected = f2.cbo_pto_atend.options[indexSelect].value;

    //alert(indexSelect);

    if (o1 == "" || o2 == "") {
        if (o1 == "") {
            o1 = document.getElementById("AutoComplete1_hdnSelectedValue").value;
            bcidadeA = true;
        }
        if (o2 == "") {
            o2 = document.getElementById("AutoComplete3_hdnSelectedValue").value;
            bcidadeB = true;
        }
        if (o1 == "" || o2 == "") {
            alert("Por favor, selecione os dois endereços corretamente antes que traçar a rota.");
            $j("input:text:visible:first").focus();
            return false;
        }
        if (document.getElementById("txt_combustivel").value == "" || document.getElementById("txt_consumo").value == "" || document.getElementById("txt_capacidade").value == "") {
            alert("Por favor, insira corretamente os dados de consumo do veículo antes que traçar a rota.");
            $j("#txt_combustivel").focus();
            return false;
        }
    }
    
    var myObject1 = $j.evalJSON(o1);
    var myObject2 = $j.evalJSON(o2);

    if (bcidadeA) {
        tt1[0] = myObject1.point.x;
        tt1[1] = myObject1.point.y;
        tt1[2] = myObject1.city.name + ", " + myObject1.city.state;
    }
    else {
        tt1[0] = myObject1.point.x;
        tt1[1] = myObject1.point.y;
        tt1[2] = myObject1.address.city.name + ", " + myObject1.address.city.state + ", " + myObject1.address.street + ", " + myObject1.address.houseNumber;
    }
    if (bcidadeB) {
        tt2[0] = myObject2.point.x;
        tt2[1] = myObject2.point.y;
        tt2[2] = myObject2.city.name + ", " + myObject2.city.state;
    }
    else {
        tt2[0] = myObject2.point.x;
        tt2[1] = myObject2.point.y;
        tt2[2] = myObject2.address.city.name + ", " + myObject2.address.city.state + ", " + myObject2.address.street + ", " + myObject2.address.houseNumber;
    }


    //Grava informações x y string inicio
    var PontoPartida = "" + tt1[0] + "|" + tt1[1] + "|" + tt1[2];
    var PontoDestino = "" + tt2[0] + "|" + tt2[1] + "|" + tt2[2];
    //Coloca na sessao
    $j.cookie("ssOrigem", PontoPartida, { expires: 7 });
    $j.cookie("ssDestino", PontoDestino, { expires: 7 });
    $j.cookie("ssDesOriginal", PontoDestino, { expires: 7 });
    $j.cookie("ssPontoAtendimento", pontoAtendimento, { expires: 7 });


    //if (!bcidade) {
    strOrigem = tt1[2];
    strDestino = tt2[2];

    $j("#spanOrigem").html(strOrigem);
    $j("#spanDestino").html(strDestino);

    inicio = tt1[2];
    inicioX = tt1[0];
    inicioY = tt1[1];

    fim = tt2[2];
    fimX = tt2[0];
    fimY = tt2[1];

    Route(inicio, inicioX, inicioY, fim, fimX, fimY);

}

var ls = null;
function Route(inicio, inicioX, inicioY, fim, fimX, fimY) {
    
    
    if (ls != null) {
        ls.destroy();
    }

    if (marker1)
        mapa.removeMarker(marker1);

    if (marker2)
        mapa.removeMarker(marker2);

    if (mk)
        mapa.removeMarker(mk);

    var ro = new MRouteOptions();

    //Armazena variaveis em cookie
    if (!bAgencia) {
        $j.cookie("ssCapacidade", TryParseInt($j("#txt_capacidade").val(), 64), { expires: 7 }); ////
        $j.cookie("ssConsumo", TryParseInt($j("#txt_consumo").val(), 10), { expires: 7 }); ////
        $j.cookie("ssPrecoComtivel", TryParseDouble($j("#txt_combustivel").val(), 2.15), { expires: 7 }); ////
        getValueRadio();
        getTollFeeCat();
    }

    /*dados da rota */
    var rd = new MRouteDetails();
    rd.optimizeRoute = true;
    var strPoiRoute = [];
    strPoiRoute[0] = 'Santander';
    //strPoiRoute[0] = '3043';
    
    rd.poiRoute = strPoiRoute;
    rd.routeType = $j.cookie("ssTpRota");
    /*dados do veiculo */
    var ve = new MVehicle();

    //retorna valor digitado para capacidade do tanque
    sTanqCapacidade = $j.cookie("ssCapacidade");
    ve.tankCapacity = sTanqCapacidade;
    //Retorna valor digitado para o consumo de combustivel
    sConsumo = $j.cookie("ssConsumo");
    ve.averageConsumption = sConsumo; /*média de consumo em litros */
    //Retorna valor digitado para o valor do  lt de combustivel
    sPrecoCombustivel = $j.cookie("ssPrecoComtivel");
    ve.fuelPrice = sPrecoCombustivel;

    if ($j("txtCEOrigem").val() == $j("txtCEDestino").val()) {
        ve.averageSpeed = 80;   /*velocidade média */
    }

    ve.tollFeeCat = $j.cookie("ssCatPedagio");

    /* define a base para gerar a rota */
    var ro = new MRouteOptions();
    ro.language = "portugues";
    ro.vehicle = ve;
    ro.routeDetails = rd;

    /* define os pontos da rota */
    var rs = [new MRouteStop(), new MRouteStop()];

    /* define o ponto de origem */
    rs[0].description = inicio;

    var point = new MPoint();
    point.x = inicioX;
    point.y = inicioY;
    rs[0].point = point;

    /* define o ponto de destino */
    rs[1].description = fim;
    var point1 = new MPoint();
    point1.x = fimX;
    point1.y = fimY;
    rs[1].point = point1;


    var rs = new Array();
    rs[0] = new MRouteStop();
    var point = new MPoint();
    point.x = inicioX;
    point.y = inicioY;
    rs[0].point = point;

    rs[1] = new MRouteStop();
    var point = new MPoint();
    point.x = fimX;
    point.y = fimY;
    rs[1].point = point;

    var rp = new Array;
    var routePointAux;
    routePointAux = new MRoutePoint();
    routePointAux.routeStop = rs[0];
    rp.push(routePointAux);

    routePointAux = new MRoutePoint();
    routePointAux.routeStop = rs[1];
    rp.push(routePointAux);

    ValoresRota = "" + inicio + "|" + inicioX + "|" + inicioY + "|" + fim + "|" + fimX + "|" + fimY;

    var rm = new MRouteMannager(mapa, "#0131ff");
    rm.createRoute(rp, ro, null, function(ri) {
        mRota.TratarRotaRodoviaria(ri, inicio, fim);
    });
}




//Retorna Inteiro    
function TryParseInt(str, defaultValue) {
    var retValue = defaultValue;
    if (str != null) {
        if (str.length > 0) {
            if (!isNaN(str)) {
                retValue = parseInt(str);
            }
        }
    }
    return retValue;
}

function TryParseDouble(str, defaultValue) {
    var retValue = defaultValue;
    if (str != null) {
        if (str.length > 0) {
            str = str.replace(",", '.')
            str = parseFloat(str)
            if (!isNaN(str)) {
                retValue = str;
            }
        }
    }
    return retValue;
}


function Postback(ri) {
}

function createMarker(point, tipo) {
    var icon = new GIcon();
    if (tipo) {
        if (tipo == "largada") {
            icon.image = "includes/" + tipo + ".png";
            icon.shadow = "includes/sombra-bandeira.png";
            icon.iconSize = new GSize(25, 25);
            icon.shadowSize = new GSize(46, 30);
            icon.iconAnchor = new GPoint(15, 10);
            icon.infoWindowAnchor = new GPoint(15, 10);
        }
        if (tipo == "chegada") {
            icon.image = "includes/" + tipo + ".png";
            icon.shadow = "includes/sombra-bandeira.png";
            icon.iconSize = new GSize(25, 25);
            icon.shadowSize = new GSize(46, 30);
            icon.iconAnchor = new GPoint(15, 10);
            icon.infoWindowAnchor = new GPoint(15, 10);
        }
        if (tipo == "santander") {
            icon.image = "includes/img/ico_santander.gif";
            icon.shadow = "";
            icon.iconSize = new GSize(20, 20);
            icon.shadowSize = new GSize(46, 30);
            icon.iconAnchor = new GPoint(15, 10);
            icon.infoWindowAnchor = new GPoint(15, 10);
        }
        if (tipo == "Pedagio") {
            icon.image = "includes/img/icones/rotas/sifrao.png";
            icon.shadow = "";
            icon.iconSize = new GSize(20, 20);
            icon.shadowSize = new GSize(46, 30);
            icon.iconAnchor = new GPoint(15, 10);
            icon.infoWindowAnchor = new GPoint(15, 10);
        }
    }

    var marker = new MMarker(new MPoint(point.x, point.y), icon);

    return marker;
}

function tratarImagem(command, description) {
    var r = "", s = "";
    var c = command.toLowerCase();
    var d = {};

    if (description == "Rotatória")
        r = "rotatoria";
    else if (/^in.cio/.test(c))                    //"Inicio da rota"
        r = "origem";
    else if (/permane.a.*esquerda/.test(c))        //permaneça a esquerda?
        r = "perma_esquerda";
    else if (/permane.a.*direita/.test(c))         //permaneça a direita?
        r = "perma_Direita";
    else if (/vire.*esquerda/.test(c))             //vire a esquerda?
        r = "curva_esquerda";
    else if (/vire.*direita/.test(c))              //vire a direita?
        r = "curva_direita";
    else if (/curva.*acentuada.*esquerda/.test(c)) //curva acentuada a esquerda?
        r = "curva_esquerda";
    else if (/curva.*acentuada.*direita/.test(c))  //curva acentuada a esquerda?
        r = "curva_direita";
    else if (/retorno/.test(c))                    //curva acentuada a esquerda?
        r = "retorno";
    else if (/fim da rota/.test(c))                //Fim da rota
        r = "chegada";
    else if (/parada/.test(c))                     // Parada
        r = "chegada";
    else
        r = "cima";

    return r;
}

function getValueRadio() {
    len = document.f2.tipoRota.length;
    var chosen = 0;
    for (i = 0; i < len; i++) {
        if (document.f2.tipoRota[i].checked) {
            chosen = document.f2.tipoRota[i].value;
        }
    }

    $j.cookie("ssTpRota", chosen, { expires: 7 })
    return;
}

function getTollFeeCat() {
    lentfc = document.f2.qtd_eixo.length;
    chosentfv = 0;
    for (i = 0; i < lentfc; i++) {
        if (document.f2.qtd_eixo[i].checked) {
            chosentfv = document.f2.qtd_eixo[i].value;
        }
    }
    $j.cookie("ssCatPedagio", chosentfv, { expires: 7 });
    return;
}

$j("#txtCEDestino").onfocus = function() {
    textOn("txtCEDestino");
    $j("#txtRuaDestino").val("");
    $j("#AutoComplete4_hdnSelectedValue").val("");
}

$j("#txtCEOrigem").onfocus = function() {
    textOn("txtCEOrigem");
    $j("#txtRuaOrigem").val("");
    $j("#AutoComplete2_hdnSelectedValue").val("");
}



function CarregarValCookie() {
    var ip = TryParseInt($j.cookie("ssCatPedagio"), 1);
    var ir = TryParseInt($j.cookie("ssTpRota"), 1);

    ip = ip - 1;


    if ($j.cookie("ssCapacidade") != null) {
        $j("#txt_capacidade").val($j.cookie("ssCapacidade"));
    }
    if ($j.cookie("ssPrecoComtivel") != null) {
        $j("#txt_combustivel").val($j.cookie("ssPrecoComtivel"));
    }
    if ($j.cookie("ssConsumo") != null) {
        $j("#txt_consumo").val($j.cookie("ssConsumo"));
    }
    if ($j.cookie("ssTpRota") != null) {
        $j('input[name="tipoRota"]')[ir].checked = true;

    }
    if ($j.cookie("ssCatPedagio") != null) {
        document.f2.qtd_eixo[ip].checked;
        $j('input[name="qtd_eixo"]')[ip].checked = true;
    }
}


function AplicarZoom(x, y) {
    mapa.setCenter(new MPoint(x, y), 15);
}

function AplicarZoomCidade(cidade, estado) {

    var af = new MWsAddressFinder();         //manipulador do web service AddressLocator.
    var city = new MCity();
    city.name = cidade;                       /*nome da cidade.*/
    city.state = estado;                      /*sigla do estado.*/
    var ao = new MAddressOptions();           /*Configurações da busca e apresentação dos dados.*/
    ao.searchType = 1;                        /*Tipo de Busca,1:Todo o texto */
    ao.usePhonetic = false;                   /*Utilizar dicionário fonético */
    var rr = new MResultRange();
    rr.pageIndex = 1;                         /*página inicial, número 1;*/
    rr.recordsPerPage = 1;                   /*no. de registros apresentados por página: 15 registros.*/
    ao.resultRange = rr;
    af.findCity(city, ao,
        function(cLocInfo) {                    													/* Array de objetos CityLocationInfo */
            cInfo = cLocInfo.cityLocation[0];
            mapa.setCenter(new MPoint(cInfo.point.x, cInfo.point.y), 12);
        });
}

function mascara1(o, f) {
    v_obj = o
    v_fun = f
    setTimeout("execmascara1()", 1)
}

function execmascara1() {
    v_obj.value = v_fun(v_obj.value)
}

function soNumeros(v) {
    return v.replace(/\D/g, "")
}

function escComb1(v) {
    v = v.replace(/\D/g, "")                    //Remove tudo o que não é dígito
    v = v.replace(/(\d{2})(\d)/, "$1,$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    return v
}
function escComb2(v) {
    v = v.replace(/\D/g, "")                    //Remove tudo o que não é dígito
    v = v.replace(/(\d{1})(\d)/, "$1,$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    return v
}
function soNumeros(v) {
    return v.replace(/\D/g, "")
}

var $j = jQuery;

function MRota() {
    this.addrLocOrigem = null;
    this.addrLocDestino = null;
    this.routeManager = null;
    this.routeOptions = null;
    this.routeDetails = null;
    this.routeConfig = null;
    this.routePoints = null;
    this.vehicle = null;
    this.vehicle_TankCapacity = 60;
    this.vehicle_AverageConsumption = 12;
    this.vehicle_FuelPrice = 2.15;
    this.vehicle_AverageSpeed = 80;
    this.vehicle_TollFeeCat = 2;
    this.details_routeType = 3; ;
    this.details_optimizeRoute = true;
    this.details_descriptionType = 0;
    this.letras = ['A', 'B', 'C', 'D', 'E'];

    // Rota Urbana
    this.UltimasParadasRotaUrbana = [];
    this.DadosRotaUrbana = null;
    this.ConfiguracoesRotaUrbana = { tipoVeiculo: 2, consumoVeiculo: 0, valorCombustivel: 0 };

    this.UltimasParadasRotaRodoviaria = [];
    this.DadosRotaRodoviaria = null;
    this.ConfiguracoesRotaRodoviaria = { tipoVeiculo: 2, consumoVeiculo: 0, valorCombustivel: 0 };

    this.TratarRotaRodoviaria = function(rota, strInicio, strFim) {

        if (typeof (rota) != "undefined") {
            var conteudoGeral = '';

            this.routeInfo = rota;

            mRota.DadosRotaRodoviaria = this.routeInfo;
            var rtDados = this.routeInfo.segDescription;
            var pos = 0;
            var TotalUrbano = 0;
            var TotalRodviario = 0;
            var PistaSimples = 0;
            var PistaDupla = 0;
            var itemRotaAnteriorIsRodoviaria = false;
            var ultimaParada = 0;

            ultimaParada++;

            var pontoX = null;
            var pontoY = null;
            var instrucao = null;
            var descricaoItem = null;
            var distancia = null;
            var descricaoGeral = null;
            var ptAdd = null;
            var cor = null;
            var cidadesItemRota = null;
            var cidDistanciaCidadeEstado = null;
            var cidDistancia = null;
            var cidCidadeEstado = null;
            var cidCidade = null;
            var cidEstado = null;
            var rDetails = null;
            var idPoi;

            //Tratar rota

            var strCidadeAtual = '';
            var strEstadoAtual = '';
            var strCidadeAnt = '';
            var strCidadeProx = '';
            var strRodAnterior = '';
            var strRodAtual = '';
            var strRodProx = '';
            var strPistaAnt = null;
            var strPistaAtual
            var bUltimoTrechoRod = false;
            var iultimaCidade = rtDados.length - 2;
            var distanciaAcumuladaTrechosRod = 0;
            var strSentido = rtDados[iultimaCidade].city.name + " - " + rtDados[iultimaCidade].city.state;

            $j("#tbRotaRodoviaria tbody").append('');
            $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg'></td>" +
                                                 "<td width='90px' align='center'><strong>KM Trecho</strong></td>" +
                                                 "<td width='110px' align='center'><strong>KM Acumulado</strong></td>" +
                                                 "<td align='left'><strong>Rodovia/Local</strong></td>" +
                                                 "<td align='left' width='100px'><strong>Custo Pedágio</strong></td>" +
                                                 "<td></td>" +
                                                 "</tr>");
            for (var i = 0, len = rtDados.length; i < len; i++) {

                pontoX = rtDados[i].point.x;
                pontoY = rtDados[i].point.y;
                instrucao = rtDados[i].command;
                descricaoGeral = (instrucao + " na " + descricaoItem);

                descricaoItem = rtDados[i].description;
                strCidadeAtual = rtDados[i].city.name;
                strEstadoAtual = rtDados[i].city.state;
                strPistaAtual = rtDados[i].roadType;
                distancia = mRota.converterDistancia(rtDados[i].distance);

                strCidadeAtual = rtDados[i].city.name;
                strEstadoAtual = rtDados[i].city.state;
                strCidadeAnt = null;
                strEstadoAnt = null;
                if (i > 0) {
                    strCidadeAnt = rtDados[i - 1].city.name;
                    strEstadoAnt = rtDados[i - 1].city.name;
                }
                if (i < len - 1) {
                    strCidadeProx = rtDados[i + 1].city.name;
                    strEstadoProx = rtDados[i + 1].city.state;
                }

                //*****************************************************************************************************************************
                //*****************************************************************************************************************************
                //*****************************************************************************************************************************
                //*****************************************************************************************************************************


                ///TRATAMENTO PARA RODOVIAS
                //Se For rodovia
                if ((descricaoItem.indexOf("Rod.", 0) != -1) || (descricaoItem.indexOf("Estr.", 0) != -1)) {
                    //Se o Texto Contiver rodovia
                    if ((rtDados[i].description.indexOf("Rod.", 0) == 0) || (rtDados[i].description.indexOf("Estr.", 0) == 0)) {
                        //é rodovia e seta a flag como verdadeira
                        bUltimoTrechoRod = true;
                        //Extrai o nome da rodovia
                        var strRodAtualsub = rtDados[i].description.substring(0, 11);
                        //Se rodovia Atual == anterior
                        //Ignora as pistas  exibe
                        if (strRodAtualsub == strRodAnterior) {
                            //Se Houver poi na estrada
                            //Se cidade Atual <> Cidade anterior
                            //Imprime a indicação de mudança de cidade
                            if (strCidadeAtual != strCidadeAnt) {
                                if (rtDados[i].roadType == "ED" && strPistaAnt != "ED" && strPistaAnt != 'PD') {
                                    $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg'><div style='background-image: url(" + mRota.tratarImagemTipoPiso("PD", "P") + ");'></div></td>" +
                                                 "<td></td>" +
                                                 "<td>Obras de duplicação da rodovia.</td>" +
                                                 "<td></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");
                                    if (strPistaAtual == "PD" && strPistaAnt == "P")
                                        strPistaAnt = "PD";
                                }

                                if (rtDados[i].poiRoute != null) {
                                    //se houver mais de um poi no mesmo ponto
                                    if (rtDados[i].poiRouteDetails.length > 0) {
                                        rDetails = rtDados[i].poiRouteDetails;
                                        for (var j = 0; j < rDetails.length; j++) {
                                            if (idPoi != rDetails[j].clientID) {
                                                $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(" + mRota.tratarImagemTipoPiso(strPistaAtual, strPistaAnt) + ");'></div></td>" +
                                                 "<td><img src='./Includes/img/icones/rotas/ico_santander.gif'/></td>" +
                                                 "<td></td>" +
                                                 "<td align='left'><strong class='agencia'>" + rDetails[j].name + "</strong></td>" +
                                                 "<td></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");
                                                idPoi = rDetails[j].clientID;
                                            }
                                        }
                                    }
                                }
                                $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(" + mRota.tratarImagemTipoPiso(strPistaAtual, strPistaAnt) + ");'></div></td>" +
                                                 "<td></td>" +
                                                 "<td>" + mRota.converterDistancia(rtDados[i].cumulativeDistance) + "</td>" +
                                                 "<td align='left'>" + strCidadeAtual + ' - ' + strEstadoAtual + "</td>" +
                                                 "<td></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");
                                strPistaAnt = strPistaAtual;
                                strRodAnterior = strRodAtualsub;
                                //divRotaPrincipal.appendChild(itemTrajeto);


                            }
                            //Se houver pedágios no caminho Trata o tipo de pista e exibe informações no precurso.                        
                            if (rtDados[i].tollFee != null) {
                                if (rtDados[i].tollFee == "S") {
                                    $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(" + mRota.tratarImagemTipoPiso(strPistaAtual, strPistaAnt) + ");'></div></td>" +
                                                 "<td><img src='./Includes/img/icones/rotas/sifrao.png' /></td>" +
                                                 "<td></td>" +
                                                 "<td align='left'><div style='display:none;'>'" + instrucao + "</div><strong>" + rtDados[i].tollFeeDetails.name + "</strong></td>" +
                                                 "<td align='center'><strong >" + rtDados[i].tollFeeDetails.price.formataReal() + "</strong></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");
                                    $j('#trResumoHeader').show();
                                    $j('#trResumoContent').show();

                                    //Cria nós da tabela do resumo do pedágio
                                    $j("#tbResPedagio tbody").append("<tr><td align='left'>" + rtDados[i].tollFeeDetails.name + "</td><td align='right'>" + rtDados[i].tollFeeDetails.price.formataReal() + "</td>");
                                    strPistaAnt = strPistaAtual;
                                }
                            }
                        }

                        //Se a rodovia for diferente da anterior
                        else {
                            //Varre todas as descrições a seguir que sejam rodovia
                            for (var p = i, plen = rtDados.length; p < plen; p++) {
                                //se inicio do texto igual até o decimo primeiro caracter igual a rodovia
                                if (rtDados[p].description.indexOf(strRodAtualsub, 0) != -1 || rtDados[p].description.indexOf(strRodAtualsub + " Pista Lateral", 0) != -1) {
                                    //acumula distância
                                    distanciaAcumuladaTrechosRod = distanciaAcumuladaTrechosRod + rtDados[p].distance;

                                }
                                else {
                                    //Caso seja a primeira vez que passa pelo trecho imprime o nome da rodovia

                                    $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(" + mRota.tratarImagemTipoPiso(strPistaAtual, strPistaAnt) + ");'></div></td>" +
                                                 "<td>" + mRota.converterDistancia(distanciaAcumuladaTrechosRod) + "</td>" +
                                                 "<td></td>" +
                                                 "<td align='left'><div style='display:none;'>'" + instrucao + "</div>Siga pela " + rtDados[i].description + "</td>" +
                                                 "<td></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");

                                    //Vefifica se tem pedágio no inicio da rodovia
                                    if (rtDados[i].tollFee != null) {
                                        if (rtDados[i].tollFee == "S") {
                                            $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(" + mRota.tratarImagemTipoPiso(strPistaAtual, strPistaAnt) + ");'></div></td>" +
                                                 "<td><img src='./Includes/img/icones/rotas/sifrao.png' /></td>" +
                                                 "<td></td>" +
                                                 "<td align='left'><div style='display:none;'>'" + instrucao + "</div><strong>" + rtDados[i].tollFeeDetails.name + "</strong></td>" +
                                                 "<td align='center'><strong >" + rtDados[i].tollFeeDetails.price.formataReal() + "</strong></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");
                                            //Cria nós da tabela do resumo do pedágio
                                            $j("#tbResPedagio tbody").append("<tr><td align='left'>" + rtDados[i].tollFeeDetails.name + "</td><td align='right'>" + rtDados[i].tollFeeDetails.price.formataReal() + "</td>");

                                            strPistaAnt = strPistaAtual;
                                        }
                                    }



                                    //Se cidade Atual <> Cidade anterior
                                    //Imprime a indicação de mudança de cidade
                                    if (strCidadeAtual != strCidadeAnt) {

                                        if (strPistaAnt == null) {
                                            strPistaAnt = strPistaAtual;
                                        }
                                        $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(" + mRota.tratarImagemTipoPiso(strPistaAtual, strPistaAnt) + ");'></div></td>" +
                                                 "<td></td>" +
                                                 "<td>" + mRota.converterDistancia(rtDados[i].cumulativeDistance) + "</td>" +
                                                 "<td align='left'><div style='display:none;'>'" + instrucao + "</div>" + strCidadeAtual + ' - ' + strEstadoAtual + "</td>" +
                                                 "<td></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");


                                        strPistaAnt = strPistaAtual;
                                        strRodAnterior = strRodAtualsub;
                                        //divRotaPrincipal.appendChild(itemTrajeto);
                                        //continue;

                                    }


                                    strPistaAnt = strPistaAtual;
                                    strRodAnterior = strRodAtualsub;
                                    TotalRodviario = TotalRodviario + distanciaAcumuladaTrechosRod;
                                    //alert(distanciaAcumuladaTrechosRod);
                                    distanciaAcumuladaTrechosRod = 0;
                                    //Sai do laço que imprime o total percorrido na rodovia                                    
                                    break;
                                }
                                continue;
                            }

                        }

                    }
                }
                else {
                    //Se o ultimo trecho foi rodoviario
                    if (bUltimoTrechoRod) {
                        strPistaAtual = "P";
                        //verifica o tipo de pista
                        if (strPistaAnt == "ED") {
                            strPistaAnt = "PD";
                        }


                        $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
								 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(" + mRota.tratarImagemTipoPiso(strPistaAtual, strPistaAnt) + ");'></div></td>" +
								 "<td></td>" +
								 "<td></td>" +
								 "<td align='left'><div style='display:none;'>'" + instrucao + "</div>Ínicio do trecho urbano</td>" +
								 "<td></td>" +
								 "<td></td>" +
								 "</tr>");
                        strPistaAnt = strPistaAtual;
                        //divRotaPrincipal.appendChild(itemTrajeto);
                        bUltimoTrechoRod = false;
                        //se for o ultimo item da rota
                        if (instrucao == "Fim da rota") {

                            $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(./Includes/img/icones/rotas/ico_chegada2.gif);'></div></td>" +
                                                 "<td class='no_bg' ></td>" +
                                                 "<td class='no_bg'><strong>" + mRota.converterDistancia(rtDados[i].cumulativeDistance) + "</strong></td>" +
                                                 "<td align='left' class='no_bg'><div style='display:none;'>'" + instrucao + "</div><strong>Fim da rota - " + strFim + "</strong></td>" +
                                                 "<td class='no_bg'></td>" +
                                                 "<td class='no_bg'><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");

                            break;

                        }

                    }

                    //Tratar Rota Urbana
                    //Se for inicio ou fim de rota
                    strRodAnterior = "";
                    if (instrucao == "Início da rota" || instrucao == "Fim da rota") {
                        if (instrucao == "Início da rota") {
                            //Se a proxima descriçào for Rodovia, inicia com o icone rodovia
                            if (rtDados[i + 1].description.indexOf("Rod.", 0) == 0) {
                                $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(./Includes/img/icones/rotas/ico_partida.gif);'></div></td>" +
                                                 "<td></td>" +
                                                 "<td><strong>" + mRota.converterDistancia(rtDados[i].cumulativeDistance) + "</strong></td>" +
                                                 "<td align='left'><div style='display:none;'>'" + instrucao + "</div><strong>Ínicio da rota - " + strInicio + "</strong></td>" +
                                                 "<td></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");
                            }
                            //Senao Inicia com o icone padrao
                            else {
                                $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(./Includes/img/icones/rotas/ico_origem.png);'></div></td>" +
                                                 "<td></td>" +
                                                 "<td><strong>" + mRota.converterDistancia(rtDados[i].cumulativeDistance) + "</strong></td>" +
                                                 "<td align='left'><div style='display:none;'>'" + instrucao + "</div><strong>Ínicio da rota - " + strInicio + "</strong></td>" +
                                                 "<td></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");
                            }
                        }
                        //se for fim de rota trata a imagem d efinal do trecho
                        else {
                            $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(" + mRota.tratarImagem(instrucao) + ");'></div></td>" +
                                                 "<td class='no_bg'></td>" +
                                                 "<td class='no_bg'><strong>" + mRota.converterDistancia(rtDados[i].cumulativeDistance) + "</strong></td>" +
                                                 "<td align='left' class='no_bg'><div style='display:none;'>'" + instrucao + "</div><strong>Fim da rota - " + strFim + "</strong></td>" +
                                                 "<td class='no_bg'></td>" +
                                                 "<td class='no_bg'><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");

                        }

                    }
                    //Senão trata rota urbana
                    else {
                        //Se tiver Balsa no caminho
                        if (rtDados[i].roadType == "BA") {

                            $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
                                                 "<td align='center' width='5%' class='no_bg'><div style='background-image: url(./Includes/img/icones/rotas/ico_balsa.gif);'></div></td>" +
                                                 "<td></td>" +
                                                 "<td><strong>" + mRota.converterDistancia(rtDados[i].cumulativeDistance) + "</strong></td>" +
                                                 "<td align='left' ><div style='display:none;'>'" + instrucao + "</div>" + descricaoItem + "</td>" +
                                                 "<td></td>" +
                                                 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
                                                 "</tr>");

                        }


                        //Rota urbana entre cidades
                        if ((strCidadeAnt != "") && strCidadeAtual != strCidadeAnt) {

                            $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
												 "<td align='center' width='5%' class='no_bg'><div style='background-image: url(./includes/img/icones/rotas/ico_em_frente.jpg);'></div></td>" +
												 "<td></td>" +
												 "<td><strong>" + mRota.converterDistancia(rtDados[i].cumulativeDistance) + "</strong></td>" +
												 "<td align='left'><div style='display:none;'>'" + instrucao + "</div><strong>" + strCidadeAtual + ' - ' + strEstadoAtual + "</strong></td>" +
												 "<td></td>" +
												 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
												 "</tr>");

                        }
                        //Se for uma passagem comum

                        $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
												 "<td align='center' width='5%' class='no_bg'><div style='background-image: url(" + mRota.tratarImagem(instrucao) + ");'></div></td>" +
												 "<td>" + distancia + "</td>" +
												 "<td></td>" +
												 "<td align='left' ><div style='display:none;'>'" + instrucao + "</div>" + descricaoItem + "</td>" +
												 "<td></td>" +
												 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
												 "</tr>");


                        //Se rota urbana tiver POI
                        if (rtDados[i].poiRoute != null) {
                            //se houver mais de um poi no mesmo ponto
                            if (rtDados[i].poiRouteDetails.length > 0) {
                                rDetails = rtDados[i].poiRouteDetails;
                                for (var j = 0; j < rDetails.length; j++) {
                                    if (idPoi != rDetails[j].clientID) {
                                        //if (rDetails[j].source == "TB_SANTANDER_CAIXAS_ELETRONICOS") {
                                        if (rDetails[j].source == pontoAtendimento) {
                                            $j("#tbRotaRodoviaria tbody").append("<tr class='no_bg'>" +
													 "<td class='no_bg' align='center' width='5%'><div style='background-image: url(./includes/img/icones/rotas/ico_em_frente.jpg);'></div></td>" +
													 "<td><img src='./Includes/img/icones/rotas/ico_santander.gif'/></td>" +
													 "<td></td>" +
													 "<td align='left'><div style='display:none;'>'" + instrucao + "</div><strong class='agencia'>" + rDetails[j].name + "</strong></td>" +
													 "<td></td>" +
													 "<td><a href='#Mapa' title='Veja mais informações'  style='cursor:pointer' onclick='AplicarZoom(" + rtDados[i].point.x + "," + rtDados[i].point.y + ");'><img src='./Includes/img/lupa.gif' title='Veja mais informações' alt='Ícone lupa' style='cursor:pointer;border:0px;padding:1px;'  border='0' /></a></td>" +
													 "</tr>");


                                            idPoi = rDetails[j].clientID;
                                        }
                                    }
                                }
                            }
                        }
                        strPistaAnt = null;
                        strRodAtual = "";
                        strRodAnterior = "";
                        // strRodAnterior = '';
                        distanciaAcumuladaTrechosRod = 0;
                    }
                }

            }

        }

        /*Valores da rota*/
        //Resumo de distancia total
        if (this.routeInfo.routeTotals.totalDistance) {
            ValoresInfo = "|" + this.routeInfo.routeTotals.totalDistance.formataDistancia() + " km";
        }
        else {
            ValoresInfo = "|" + "0 km";
        }
        //Resumo de Tempo total
        if (this.routeInfo.routeTotals.totalTime) {
            ValoresInfo = ValoresInfo + "|" + this.routeInfo.routeTotals.totalTime.replace(/^P(?=[^T])/, '').replace(/PT/, '').replace(/DT/, (' dia(s) ')).replace(/H/, (' h ')).replace(/M/, (' m')).replace(/S/, (' segundo(s) '));
        }
        else {
            ValoresInfo = ValoresInfo + "|" + " ";
        }
        //Resumo Total $ Pedágio
        if (this.routeInfo.routeTotals.totaltollFeeCost)
            ValoresInfo = ValoresInfo + "|" + this.routeInfo.routeTotals.totaltollFeeCost.formataReal();
        else {
            ValoresInfo = ValoresInfo + "|" + "R$ 0,00";
        }
        //Resumo Total Combustivel usado
        if (this.routeInfo.routeTotals.totalFuelUsed)
            ValoresInfo = ValoresInfo + "|" + this.routeInfo.routeTotals.totalFuelUsed.formataDistancia() + " L";
        else {
            ValoresInfo = ValoresInfo + "|" + "0,0 LTS";
        }
        //Resumo Total $ Combustivel
        if (this.routeInfo.routeTotals.totalfuelCost)
            ValoresInfo = ValoresInfo + "|" + this.routeInfo.routeTotals.totalfuelCost.formataReal();
        else {
            ValoresInfo = ValoresInfo + "|" + "R$ 0,00";
        }
        //Resumo do $ Total
        if (this.routeInfo.routeTotals.totalCost)
            ValoresInfo = ValoresInfo + "|" + this.routeInfo.routeTotals.totalCost.formataReal();
        else {
            ValoresInfo = ValoresInfo + "|" + "R$ 0,00";
        }
        ValoresInfo = ValoresInfo + "|" + 'R$' + $j.cookie("ssPrecoComtivel");
        ValoresInfo = ValoresInfo + "|" + $j.cookie("ssConsumo") + " Km/l";
        ValoresInfo = ValoresInfo + "|" + $j.cookie("ssCapacidade") + " Lts";

        /*Pega informações do tipo de veiculo*/

        if (this.routeInfo.roadType.oneLaneRoadway != 0) {
            $j("#tbTrechos tbody").append("<tr id='trP'><td width='5%' align='center'><img src='./Includes/img/ico_pista_simples.gif' alt='Pista simples' title='Pista simples' />" +
                "</td><td width='95%' align='left'>Pista simples: <span id='spanP'>" + this.routeInfo.roadType.oneLaneRoadway.formataDistancia() + " Km</span></td></tr>");
        }

        if (this.routeInfo.roadType.twoLaneHighway != 0) {
            $j("#tbTrechos tbody").append("<tr id='trPD'><td width='5%' align='center'><img src='./Includes/img/ico_pista_dupla.gif' alt='Pista dupla' title='Pista dupla' />" +
                                              "</td><td width='95%' align='left'>Pista dupla: <span >" + this.routeInfo.roadType.twoLaneHighway.formataDistancia() + " Km</span></td></tr>");
        }

        if (this.routeInfo.roadType.secondLaneUnderConstruction != 0) {
            $j("#tbTrechos tbody").append("<tr id='trOD'><td width='5%' align='center'><img src='./Includes/img/ico_em_obras.gif' alt='Em obras de duplicação' title='Em obras de duplicação' />" +
                                             "</td><td width='95%' align='left'>Em obras de duplicação: <span id='spanOD'>" + this.routeInfo.roadType.secondLaneUnderConstruction.formataDistancia() + " Km</span></td></tr>");
        }
        if (this.routeInfo.roadType.ferry != 0) {
            $j("#tbTrechos tbody").append("<tr id='trB'><td width='5%' align='center'><img src='./Includes/img/ico_balsa.gif' alt='Balsa' title='Balsa' />" +
                                              "</td><td width='95%' align='left'>Balsa : <span id='spanB'>" + this.routeInfo.roadType.ferry.formataDistancia() + " Km</span></td></tr>");
        }

        if (this.routeInfo.roadType.dirtRoad != 0) {
            $j("#tbTrechos tbody").append("<tr id='trTer'><td width='5%' align='center'><img src='./Includes/img/ico_terra.gif' alt='Terra' title='Terra' /></td>" +
                "<td width='95%' align='left'>Terra : <span id='spanTer'>" + this.routeInfo.roadType.dirtRoad.formataDistancia() + " Km</span></td></tr>");
        }

        if (this.routeInfo.roadType.pavingWorkInProgress != 0) {
            $j("#tbTrechos tbody").append("<tr id='trA'><td width='5%' align='center'><img src='./Includes/img/ico_obras_pavimentacao.gif' alt='Em obras de pavimentação' title='Em obras de pavimentação'/>" +
                                              "</td><td width='95%' align='left'>Em obras de pavimentação : <span id='spanA'>" + this.routeInfo.roadType.roadwayInPoorConditions.formataDistancia() + " Km</span></td></tr>");
        }

        if (this.routeInfo.roadType.roadwayInPoorConditions != 0) {
            $j("#tbTrechos tbody").append("<tr id='trM'><td width='5%' align='center'><img src='./Includes/img/ico_estrada_ruim.gif' alt='Rodovia em mau estado' title='Rodovia em mau estado' />" +
                                                            "</td><td width='95%' align='left'>Rodovia em mau estado: <span id='spanM'>" + this.routeInfo.roadType.pavingWorkInProgress.formataDistancia() + " Km</span></td></tr>");
        }


        switch ($j.cookie("ssCatPedagio")) {
            case "1":
                ValoresInfo = ValoresInfo + "|" + "background:url('./Includes/img/2_eixos.jpg') 0 0 no-repeat;height:49px;padding-left:50px;";
                ValoresInfo = ValoresInfo + "|" + "2 eixos";
                break;
            case "2":
                ValoresInfo = ValoresInfo + "|" + "background:url('./Includes/img/2_eixos_b.jpg') 0 0 no-repeat;height:49px;padding-left:50px;";
                ValoresInfo = ValoresInfo + "|" + "2 eixos";
                break;
            case "3":
                ValoresInfo = ValoresInfo + "|" + "background:url('./Includes/img/3_eixos.jpg') 0 0 no-repeat;height:49px;padding-left:50px;";
                ValoresInfo = ValoresInfo + "|" + "2 eixos";
                break;
            case "4":
                ValoresInfo = ValoresInfo + "|" + "background:url('./Includes/img/4_eixos.jpg') 0 0 no-repeat;height:49px;padding-left:50px;";
                ValoresInfo = ValoresInfo + "|" + "4 eixos";
                break;

            default:
                ValoresInfo = ValoresInfo + "|" + "background:url('./Includes/2_eixos_b.jpg') 0 0 no-repeat;height:49px;padding-left:50px;";
                ValoresInfo = ValoresInfo + "|" + "2 eixos";
                break;
        }
        TotalUrbano = this.routeInfo.routeTotals.totalDistance - TotalRodviario;
        ValoresInfo = ValoresInfo + "|" + TotalUrbano.formataDistancia() + " Km";
        ValoresInfo = ValoresInfo + "|" + TotalRodviario.formataDistancia() + " Km";

        Valorespedagio = $j("#hidePedagio").html();
        ValoresTrecho = $j("#hideTrecho").html();
        /* Guarda valores em hidden field e posta o formulário*/
        var $conteudoHtmlRora = $j("#hideRota").html();
        $j("#hdHtmlRota").val($conteudoHtmlRora);
        $j("#hdHtmlPedagio").val(Valorespedagio);
        $j("#hdValoresTrecho").val(ValoresTrecho);
        $j("#hdValoresRota").val(ValoresRota);
        $j("#hdValoresInfo").val(ValoresInfo);
        $j("#frmGerarRota").submit();
    }




    this.isRotaRodoviaria = function(addressLocation) {
        if (addressLocation != null) {
            if (addressLocation.city != null) {
                // Verifica se as cidades foram quebradas
                if (addressLocation.city.name.indexOf('|') != -1)
                    return true;
                else {
                    var desc = addressLocation.description;
                    var a = desc.substring(7, 8);
                    var b = desc.substring(3, 7);
                    if (a == '-')
                        return true;
                    else
                        return false;
                }
            }
            else {
                var desc = addressLocation.description;

                if (desc.substring(2, 3) == '-' && !isNaN(desc.substring(3, 7)))
                    return true;
                else
                    return false;
            }
        }
        else
            return false;
    }
    //Retorna inteiro
    this.TryParseInt = function(str, defaultValue) {
        var retValue = defaultValue;
        if (str != null) {
            if (str.length > 0) {
                if (!isNaN(str)) {
                    retValue = parseInt(str);
                }
            }
        }
        return retValue;
    }


    //Retorna Valor decimal
    this.TryParseDouble = function(str, defaultValue) {
        var retValue = defaultValue;
        if (str != null) {
            if (str.length > 0) {
                str = str.replace(",", '.')
                str = parseFloat(str)
                if (!isNaN(str)) {
                    retValue = str;
                }
            }
        }
        return retValue;
    }



    this.tratarImagemTipoPiso = function(piso, pisoAnterior, pisoProximo) {
        if (pisoAnterior != null) {

            if (pisoAnterior == "PD" && piso == "P") return './Includes/img/icones/rotas/ico_fim_dupla.gif'
            if (pisoAnterior == "P" && piso == "PD") return './Includes/img/icones/rotas/ico_inicio_dupla.gif';
        }
        else {
            if (piso == "PD") return './Includes/img/icones/rotas/ico_inicio_dupla.gif';
        }

        switch (piso) {
            case "PD": return './Includes/img/icones/rotas/ico_pista_dupla.gif'; break;
            case "ED": return './Includes/img/icones/rotas/ico_em_obras.gif'; break;
            case "P": return './Includes/img/icones/rotas/ico_pista_simples.gif'; break;
            case "EP": return './Includes/img/icones/rotas/ico_obras_pavimentacao.gif'; b
            case "T": return './Includes/img/icones/rotas/ico_terra.gif'; break;
            case "CP": return './Includes/img/icones/rotas/ico_estrada_ruim.gif'; break;
            case "BA": return './Includes/img/icones/rotas/ico_balsa.gif'; break;
            default: return './Includes/img/icones/rotas/ico_pista_simples.gif'; break;
        }
    }

    this.tratarImagem = function(command) {
        var c = command.toLowerCase();
        var image = "./includes/img/icones/rotas/";
        if (/^in.cio/.test(c))                        //"Inicio da rota"
            image = image + "ico_origem.png";
        else if (/permane.a.*esquerda/.test(c))        //permaneça a esquerda?
            image = image + "ico_perma_esquerda.jpg";
        else if (/permane.a.*direita/.test(c))         //permaneça a direita?
            image = image + "ico_perma_direita.jpg";
        else if (/vire.*esquerda/.test(c))             //vire a esquerda?
            image = image + "ico_curva_esquerda.jpg";
        else if (/vire.*direita/.test(c))              //vire a direita?
            image = image + "ico_curva_direita.jpg";
        else if (/curva.*acentuada.*esquerda/.test(c)) //curva acentuada a esquerda?
            image = image + "ico_acentu_esquerda.jpg";
        else if (/curva.*acentuada.*direita/.test(c))  //curva acentuada a esquerda?
            image = image + "ico_acentu_direita.jpg";
        else if (/retorno/.test(c))                    //curva acentuada a esquerda?
            image = image + "ico_retorno.jpg";
        else if (/fim da rota/.test(c))                //Fim da rota
            image = image + "ico_chegada.png";
        else if (/parada/.test(c))                     // Parada
            image = image + "ico_chegada.png";
        else
            image = image + "ico_em_frente.jpg";


        return image;
    }

    this.converterTempo = function(tempo) {
        var t = '';

        t = tempo.replace(/^P(?=[^T])/, '');
        t = t.replace(/PT/, '');
        t = t.replace(/DT/, (' dia(s) '));
        t = t.replace(/H/, (' hora(s) '));
        t = t.replace(/M/, (' minuto(s) '));
        t = t.replace(/S/, (' segundo(s) '));

        if (t == '')
            return '';

        return t.substring(0, t.length - 1);
    }

    this.converterDistancia = function(distancia) {
        try {
            // Validar se contém somente números
            if (!isNaN(distancia)) {
                var fltDistancia = parseFloat(distancia);
                //

                if (fltDistancia >= 1) {
                    var r = new RegExp(/^(\d+)\.?,?(\d{0,2}).*?$/);
                    var m = r.exec(fltDistancia.toString());
                    if (m) {
                        return m[1] + (m[2] ? "," + m[2] : "") + " km";
                    }

                    //return ((fltDistancia * 100) / 100) + " km";
                    //.formataDistancia() + " km";
                }
                else if (fltDistancia == 0)
                    return "";
                else
                    return (fltDistancia * 1000).toString().replace('.', ',') + " m";
            }
            else {
                return "";
            }
        }
        catch (e) {
            return distancia + " km";
        }
    }

    this.converterMoeda = function(moeda) {
    }

    this.converterCombustivel = function(litros) {
        if (litros != null)
            return litros + " litro(s)";
        else
            return "0 litros";
    }

    this.zoomTrecho = function(x, y) {
        mMapa.mostrarPontoLocal(new MPoint(x, y), 15);
    }
}
function Restposta(msg) {
    msg;
}
function onFail(msg) {
    msg;
}

// Inicializar objeto Rota
var mRota = new MRota;

Number.prototype.formataReal = function(c, d, t) { var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, i = parseInt(n = (+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0; return "R$ " + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); };
Number.prototype.formataDistancia = function(c, d, t) { var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, i = parseInt(n = (+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0; return (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); };


