﻿cidadeOrigem = new objCidade();
cidadeDestino = new objCidade();
informacoesCidade = new Array();
arrayMarker = new Array();
contMarker = 0;
var cidadesAfetadasSC = [];

var cidadesAfetadasMG = [];

var cidadesAfetadasRS = [];

var avisoSantaCatarina = "<div style='border: 1px solid #ccc;padding:5px;text-align:center;'>"
						+ "Antes de viajar para uma cidade afetada pelas chuvas, informe-se sobre as condições das estradas:"
						+ "<br/>"
						+ "Polícia Rodoviária Federal, tel. (48) 3224-1527 ou 3389-8038. Dentro do estado, também é possível discar 191."
						+ "<br/>"
						+ "Polícia Rodoviária Estadual, tel. 3271-2300. do estado, também é possível discar 198."
						+ "</div>";

var cidadeAtingidaTrecho = "";

//Funcao que captura o elemento: $("exemplo")
function $(id) { return document.getElementById(id); }

/*******************************************************************************************
Fernando José Santa Rosa - 05/09/2008
Retorna todas as cidades que contenham o nome passado em  nomeCidade

Paramêtros:
nomeCidade: Nome da cidade a ser buscada.
divResultado: Div que será exibido o resultado.
paginaAtual: Define qual a pagina atual (Quando existir mais de uma página, para paginação).
tipoLocal:  Define se é Origem ou Destino.
*******************************************************************************************/
function findCity(nomeCidade, divResultado, paginaAtual, tipoLocal, estado) {
    hideDiv("divCidades");
    showDiv("carregando");
    if (!nomeCidade)
        alert("Preencha o campo Cidade");
    else {
        var af = new MWsAdressLocator();                       //manipulador do web service AddressLocator.
        var city = new City();
        city.name = nomeCidade;                                       /*nome da cidade.*/

        if (tipoLocal == "cidadeIsolada")
            city.state = estado;
        else
            city.state = '';
        /*sigla do estado.*/
        var ao = new AddressOptions();                          /*Configurações da busca e apresentação dos dados.*/
        ao.searchType = 2;                                             /*Tipo de Busca,1:Todo o texto */
        ao.usePhonetic = true;                                     /*Utilizar dicionário fonético */
        var rr = new ResultRange();
        rr.pageIndex = paginaAtual;                                              /*página inicial, número 1;*/
        rr.recordsPerPage = 20;                                     /*no. de registros apresentados por página: 15 registros.*/
        ao.resultRange = rr;

        /*------------------------------------------------------------------
        chamando serviço findCity passando cidade,
        opções do endereço e a função de callback.
        ------------------------------------------------------------------ */
        af.findCity(city, ao,
		function(cLocInfo) {                                      /* Array de objetos CityLocationInfo */
		    //var r= "--- MaplinkAPI:findCity de ("+city.name +","+city.state+ ")---<br/>";
		    //r+= "Numeros de registros retornados: "+cLocInfo.recordCount + "<br/>";    /* no. total de registros retornados */
		    //r+="Total de paginas:" + cLocInfo.pageCount+"<br/>";                 /* no. total de páginas retornadas */   
		    //r+="Pagina Atual" + paginaAtual + "<br/>";  
		    var r = "<table style=\"width:785px;\"><thead>";
		    r += "<tr><th style=\"background-color:#CCCCCC\" colspan=3>Rota entre cidades</th></tr>";
		    r += "<tr style=\"background-color:#E2E2E2\" ><th>Cidade</th> <th>Estado</th><th></th></tr></thead>";

		    var cInfo = null;

		    for (var i = 0; i < cLocInfo.cityLocation.length; i++)       /* para cada CityLocation retornada... */
		    {
		        if (i % 2 == 0)
		        { classeTr = ""; }
		        else
		        { classeTr = " class=odd "; }

		        cInfo = cLocInfo.cityLocation[i];
		        informacoesCidade[i] = cInfo;

		        r += "<tr" + classeTr + ">"
					  + "<td>" + cInfo.city.name + "</td> <td>" + cInfo.city.state + "</td>"
					  + " <td> <a href='javascript:confirmaCidade(\"" + tipoLocal + "\", informacoesCidade[" + i + "]);'><img src=\"includes/images/seta_bt_pq_red.gif\" border=0> Confirmar</a></td></tr>"
		    }

		    r += "</table>";

		    r += "<br><br>";
		    r += "<div id=\"divPaginacao\">";
		    /*paginacao*/
		    rr.pageIndex = paginaAtual;  /*página inicial, número 1;*/
		    rr.recordsPerPage = 10;  /*no. de registros apresentados por página: 15 registros.*/
		    ao.resultRange = rr;
		    if (cLocInfo.pageCount > 1) {
		        //debugger;										
		        primeiroItem = ((paginaAtual * rr.recordsPerPage) - rr.recordsPerPage) + 1;
		        ultimoItem = primeiroItem + cLocInfo.cityLocation.length - 1;

		        r += "<p>";
		        r += "Resultados: <b>" + primeiroItem + "</b> a <b>" + ultimoItem + "</b> (Total de " + cLocInfo.recordCount + " sugestões)";
		        r += "</p>";

		        r += "<p>";
		        for (var i = 1; i <= cLocInfo.pageCount; i++)       /* para cada CityLocation retornada... */
		        {
		            if (tipoLocal == "origem")
		                r += " | <a href='javascript:findCity(\"" + nomeCidade + "\", \"divCidadesOrigem\"," + i + ", \"" + tipoLocal + "\", \"\");'>" + i + "</a>";
		            else if (tipoLocal == "destino")
		                r += " | <a href='javascript:findCity(\"" + nomeCidade + "\", \"divCidadesDestino\"," + i + ", \"" + tipoLocal + "\", \"\");'>" + i + "</a>";
		            else if (tipoLocal == "cidadeIsolada")
		                r += " | <a href='javascript:findCity(\"" + nomeCidade + "\", \"divCidadesDestino\"," + i + ", \"" + tipoLocal + "\",\"" + estado + "\");'>" + i + "</a>";
		            else
		                break;
		        }
		        r += "</p>";

		        r += "<p><b> Página " + paginaAtual + " de " + cLocInfo.pageCount + "</b></p>";
		        r += "</p>";

		    }
		    /*fim paginacao*/

		    r += "</div>";
		    r += "<p>* Em caso de dúvidas ou problemas, entre em contato com o <a href=\"javascript:Suporte();\">suporte</a></p>";

		    hideDiv("carregando");

		    $(divResultado).innerHTML = r;
		    showDiv("divCidades");
		    //showDiv(divResultado);	
		});
    }
}


function confirmaCidade(tipoLocal, infoCidade) {
    if (tipoLocal == "origem") {
        $("frmCidadesOrigem").hidCidadeOrigemNome.value = infoCidade.city.name;
        $("frmCidadesOrigem").hidCidadeOrigemPontoX.value = infoCidade.point.x;
        $("frmCidadesOrigem").hidCidadeOrigemPontoY.value = infoCidade.point.y;
        $("frmCidadesOrigem").hidCidadeOrigemEstado.value = infoCidade.city.state;
        //hideDiv("divCidadesOrigem");		
        $("frmCidadesOrigem").submit();
        //findCity(document.formCidades.cidade_destino.value,"divCidadesDestino",1,"destino");	
    }
    else if (tipoLocal == "destino") {
        //mostrarRota();
        $("frmCidadesDestino").hidCidadeDestinoNome.value = infoCidade.city.name;
        $("frmCidadesDestino").hidCidadeDestinoPontoX.value = infoCidade.point.x;
        $("frmCidadesDestino").hidCidadeDestinoPontoY.value = infoCidade.point.y;
        $("frmCidadesDestino").hidCidadeDestinoEstado.value = infoCidade.city.state;
        //hideDiv("divCidades");		
        //showDiv("carregando");		
        $("frmCidadesDestino").submit();
        //mostrarRota();	
    }
    else if (tipoLocal == "cidadeIsolada") {
        //mostrarRota();
        $("frmCidadesOrigem").hidCidadeIsoladaNome.value = infoCidade.city.name;
        $("frmCidadesOrigem").hidCidadeIsoladaPontoX.value = infoCidade.point.x;
        $("frmCidadesOrigem").hidCidadeIsoladaPontoY.value = infoCidade.point.y;
        $("frmCidadesOrigem").hidCidadeIsoladaEstado.value = infoCidade.city.state;
        //hideDiv("divCidades");		
        //showDiv("carregando");	
        $("frmCidadesOrigem").action = "mapa.aspx";
        $("frmCidadesOrigem").submit();
        //if(tipoLocal == "cidadeIsolada")			
        //$("divLabel").innerHTML = "LOCALIZADOR DE CIDADES";
        //mostrarRota();	
    }
    else {
        alert('Opção inválida');
    }
}


function hideDiv(nameDiv) {
    if (document.getElementById) {
        $(nameDiv).style.display = 'none';
    }
}

function showDiv(nameDiv) {
    if (document.getElementById) {
        $(nameDiv).style.display = 'block';
    }
}


var control = null, fFullAddrOrigem = null;

var _fState, _fCity;
function initialize() {
    if (typeof MaplinkAPI == "undefined") return;
    control = new MaplinkAPI();
    if (!control) return;
    getMaplinkAPI().setAutoShowErrors(false);
}

function geraMapa() {

    showDiv("carregando");
    if (typeof MaplinkAPI == "undefined") return;
    control = new MaplinkAPI();
    if (!control) return;
    control.setDivWait('loader');


    icone = new GIcon();
    icone.iconAnchor = new GPoint(25, 34);
    icone.infoWindowAnchor = new GPoint(9, 2);
    var rr = new MResultRange();
    var geocoder = new MGeocoder();

    var map = new MMap2($("cmdMap"));


    _map = getMaplinkAPI().currentMap;
    point = new GLatLng($("frmMapa").hidCidadeOrigemPontoY.value, $("frmMapa").hidCidadeOrigemPontoX.value);
    _map.setCenter(point);
    _map.addOverlay(new GMarker(point)

	);
    _map.setZoom(10);
    _map.addInternalPOIHandler();
    _map.addControl(new MMapControls());
    _map.addControl(new GLargeMapControl());

    hideDiv("carregando");
    $("divMapa").style.visibility = "visible";

    showDiv("divMapa");
}

var rMann = null;
function mostrarRota() {

    showDiv("carregando");

    xorigem = parseFloat($("frmMapa").hidCidadeOrigemPontoX.value);
    yorigem = parseFloat($("frmMapa").hidCidadeOrigemPontoY.value);

    xdestino = parseFloat($("frmMapa").hidCidadeDestinoPontoX.value);
    ydestino = parseFloat($("frmMapa").hidCidadeDestinoPontoY.value);


    var mPag = new MPaginationControl(['', ''], '', '', 10);
    var mapCfg = new MMapConfig('cmdMap', new MMapSize(505, 330));

    mapCfg.startRouteIcon = new GIcon(MGetBaseIcon());

    mapCfg.startRouteIcon = new GIcon(MGetBaseIcon());
    mapCfg.startRouteIcon.image = "includes/images/flag-green-30x30.png";
    mapCfg.startRouteIcon.iconSize = new GSize(25, 25);
    mapCfg.startRouteIcon.iconAnchor = new GPoint(3, 20);
    mapCfg.startRouteIcon.infoWindowAnchor = new GPoint(17, 2);

    mapCfg.endRouteIcon = new GIcon(MGetBaseIcon());
    mapCfg.endRouteIcon.image = "includes/Images/flag-red-30x30.png";
    mapCfg.endRouteIcon.iconSize = new GSize(25, 25);
    mapCfg.endRouteIcon.iconAnchor = new GPoint(3, 15);
    mapCfg.endRouteIcon.infoWindowAnchor = new GPoint(17, 2);

    mapCfg.startRouteIcon.shadow = "includes/Images/shadow-flag.png";
    mapCfg.startRouteIcon.shadowSize = new GSize(46, 30);
    mapCfg.startRouteIcon.iconAnchor = new GPoint(15, 15);
    mapCfg.startRouteIcon.infoWindowAnchor = new GPoint(15, 15);

    mapCfg.endRouteIcon.shadow = "includes/Images/shadow-flag.png";
    mapCfg.endRouteIcon.shadowSize = new GSize(46, 30);
    mapCfg.endRouteIcon.iconAnchor = new GPoint(15, 15);
    mapCfg.endRouteIcon.infoWindowAnchor = new GPoint(15, 15);

    var routeOpts = montaMRouteOptions();

    rMann = new MRouteMannager(mPag, mapCfg, routeOpts);

    var origemRota, destinoRota;

    origemRota = new MPOILocation();
    origemRota.name = 'inicio';
    origemRota.point = new MPoint();
    origemRota.point.x = xorigem;
    origemRota.point.y = yorigem;
    origemRota.city = new MCity();

    destinoRota = new MPOILocation();
    destinoRota.name = 'fim';
    destinoRota.point = new MPoint();
    destinoRota.point.x = xdestino;
    destinoRota.point.y = ydestino;
    destinoRota.city = new MCity();

    //  MElement.show("tblMap");  
    rMann.createRoute([origemRota, destinoRota],
        function(estagioRota) {
            if (estagioRota == M_STAT_ROUTE) {

                var dTotal = rMann.routeInfo.routeTotals.totalDistance;
                var custoPedagio = rMann.routeInfo.routeTotals.totaltollFeeCost;
                var totalCombustivel = rMann.routeInfo.routeTotals.totalFuelUsed;
                var totalValorCombustivel = rMann.routeInfo.routeTotals.totalfuelCost;
                var sDistancia = "";

                if (dTotal < 1)
                    sDistancia = String(parseInt(dTotal * 1000)) + " metros";
                else
                    sDistancia = String(dTotal).replace(/\./g, ",") + " Km";


                _map = getMaplinkAPI().currentMap;
                _map.addInternalPOIHandler();

                //_map.addControl(new MMapControls());	               

                function MTipoMapaControl() { };
                MTipoMapaControl.prototype = new GControl();
                MTipoMapaControl.prototype.initialize = function(map) {
                    var div = document.createElement("div");
                    div.id = "divTipoMapa";
                    div.innerHTML += "<div style='float: left' onmouseover='this.className=\"selecionada\";' onmouseout='this.className=\"\";'>Mapa</div>";
                    div.innerHTML += "<div style='float: left' onmouseover='this.className=\"selecionada\";' onmouseout='this.className=\"\";'>Satélite</div>";
                    div.innerHTML += "<div style='float: left' onmouseover='this.className=\"selecionada\";' onmouseout='this.className=\"\";'>Híbrido</div>";
                    div.innerHTML += "<div style='float: left' onmouseover='this.className=\"selecionada\";' onmouseout='this.className=\"\";'>Terreno</div>";
                    map.getContainer().appendChild(div);

                    var divsTipoMapa = $("divTipoMapa").getElementsByTagName("div");
                    divsTipoMapa[0].onclick = function() { map.setMapType(M_MAP_LBSLOCAL); }
                    divsTipoMapa[1].onclick = function() { map.setMapType(G_SATELLITE_MAP); }
                    divsTipoMapa[2].onclick = function() { map.setMapType(G_HYBRID_MAP); }
                    divsTipoMapa[3].onclick = function() { map.setMapType(G_PHYSICAL_MAP); }

                    return div;
                }
                MTipoMapaControl.prototype.getDefaultPosition = function() {
                    return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(2, 2));
                }

                //_map.addMapType(G_PHYSICAL_MAP);
                //var mapControl = new GMapTypeControl();
                //google
                //_map.addControl(new MMapControls());	
                //maplink
                _map.addControl(new MTipoMapaControl());
                _map.addControl(new GLargeMapControl());


                hideDiv("carregando");

                totalPedagios = rotaInfo();

                if ($("hidPrecoLitro").value != "")
                    precoGasolina = parseFloat(String($("hidPrecoLitro").value).replace(",", "."));
                else
                    precoGasolina = 0.0;

                var resumoPercurso = "<br><br><table style=\"width:785px;\"><thead>"
									+ "<tr><th style=\"background-color:#CCCCCC\" colspan=2>Resumo do Percurso</th>"
									+ "</tr></thead>"
									+ "<tr class=\"odd\"><td width=\"250px\">Origem:</td><td>" + cidadeOrigem.nome + " (" + cidadeOrigem.estado + ")" + "</td>"
									+ "<tr ><td>Destino:</td><td>" + cidadeDestino.nome + " (" + cidadeDestino.estado + ")" + "</td>"
									+ "<tr class=\"odd\"><td>Distância percorrida:</td><td>" + parseInt(sDistancia) + "</td>"
									+ "<tr ><td>Combustível necessário:<td>" + totalCombustivel + " Litros</td>"
									+ "<tr class=\"odd\"><td>Custo de combustível::<td>R$ " + totalValorCombustivel + "</td>"
									+ "<tr><td>Custo de pedágio:<td>R$ " + custoPedagio + "</td>"
									+ "<tr class=\"odd\"><td> Número de pedágios:<td>" + totalPedagios + "</td>"
									+ "</table>";

                $("divResumoPercurso").innerHTML = resumoPercurso;

                showDiv("divResumoPercurso");
                $("divMapa").style.visibility = "visible";

                setTimeout('mudaLogo("cmdMap")', 2000);

            }
        });
    showDiv("divMapa");

}

function montaMRouteOptions() {
    var ro = new MRouteOptions();
    var rd = new MRouteDetails();

    var ve = new MVehicle();

    //valores de inputs
    ve.tankCapacity = document.frmMapa.hidCapacidadeTanque.value;
    ve.averageConsumption = document.frmMapa.hidConsumo.value;
    ve.fuelPrice = document.frmMapa.hidPrecoLitro.value;

    ve.averageSpeed = 80;
    ve.tollFeeCat = 2;

    ro.language = "portugues";
    ro.vehicle = ve;

    //Rota mais rápida (0) ou rota mais curta (1)  
    if (document.frmMapa.hidTipoRota.value == "1")
        rd.routeType = 1;
    else
        rd.routeType = 0;

    //Rota rodoviário ou urbana    
    rd.descriptionType = 1;

    ro.routeDetails = rd;

    return ro;
}


function montaTDescrRota() {
    var tDescRota = new MTable(520);
    tDescRota.setLineStyle('height: 11px; background-color: #F4F4F4;');
    tDescRota.setLineAlterStyle('height: 11px; background-color: #FFFFFF;');
    tDescRota.noHeader = true;
    tDescRota.insertLine('<tr><td colspan="5" style="text-align: left"><strong>Manobra</strong></td></tr>');

    return tDescRota;
}

function montaOpcoesDescrRota() {
    var opcoesDescrRota = {
        "imgDir": M_IMG_API + "/route",
        "imgInitRoute": "ico_mapa_origem.gif",
        "imgEndRoute": "ico_mapa_destino.gif",
        "imgContinue": "ico_mapa_up.gif",
        "imgLeft": "ico_mapa_left.gif",
        "imgRight": "ico_mapa_right.gif",
        "imgFind": "img_map_lupa.gif",
        "tableDescr": montaTDescrRota()
    };

    return opcoesDescrRota;
}

/*	Objeto: Cidade
Contém: Nome
PontoX
PontoY	*/
function objCidade() {
    this.nome = '';
    this.estado = '';
    this.pontoX = '';
    this.pontoY = '';
}

function objPonto(x, y) {
    this.x = x;
    this.y = y;

}

function rotaInfo() {
    _map = getMaplinkAPI().currentMap;
    var rMann = getMaplinkAPI().getCurrentRouteMann();
    if (!rMann) {
        alert("Nenhuma rota foi criada para o teste.");
        return;
    }

    cidadeOrigem.nome = $("frmMapa").hidCidadeOrigemNome.value;
    cidadeDestino.nome = $("frmMapa").hidCidadeDestinoNome.value;
    cidadeOrigem.estado = $("frmMapa").hidCidadeOrigemEstado.value;
    cidadeDestino.estado = $("frmMapa").hidCidadeDestinoEstado.value;

    var ri = rMann.getRouteInfo();
    var todasCidades = "," + cidadeOrigem.nome + cidadeOrigem.estado + "," + cidadeDestino.nome + cidadeDestino.estado + ",";

    if (ri.segDescription) {
        var sd = ri.segDescription;
        var totalPedagios = 0;
        var tipoEstradaAnterior = "";
        var corDeFundo = 0;
        //Global
        contMarker = 0;
        var x = "<br><br><table id=\"tblDescricaoRota\" cellspacing=\"0\" cellpadding=\"0\">";
        descricaoAnterior = ",";
        var s = sd[0];

        x += "<thead>"
			+ "<tr><th style=\"background-color:#CCCCCC\" colspan=4>Percurso passo-a-passo</th></tr></thead>";

        x += "<tr class=\"odd\">"
			+ "<td width=\"40px\"><img src=\"includes/images/rodo/sorigem.gif\"/></td>"
			+ "<td width=\"120px\"></td>"
			+ "<td><b>" + cidadeOrigem.nome + "</b></td>"
			+ "<td><a href=\"javascript:_MHandlerClickMiniMap(" + s.point.x + "," + s.point.y + ")\"><img src=\"http://webservices.maplink2.com.br/MaplinkAPI/img/route/img_map_lupa.gif\" border=\"0\"></a></td>"
			+ "</tr>";


        for (var i = 1; i < sd.length - 1; i++) {
            s = sd[i];

            cidadeEstado = s.city.name + s.city.state;

            if (corDeFundo % 2 == 0)
                classeTr = "";
            else
                classeTr = " class=odd ";

            textoBalaoInformacao = "";

            //Rodovias	 		
            if (descricaoAnterior != s.description) {

                if (i == 1) {
                    x += "<tr" + classeTr + ">"
							+ "<td><img border=\"0\" src=\"includes/images/rodo/es_" + sd[i + 1].roadType + ".gif\"/></td>"
							+ "<td class=tdcenter>" + parseInt(sd[i - 1].cumulativeDistance) + " Km</td>"
			 				+ "<td>" + s.description + "</td>"
			 				+ "<td></td>"
			 				+ "</tr>";

                    tipoEstradaAnterior = sd[i + 1].roadType;

                } else {
                    x += "<tr" + classeTr + ">"
							+ "<td><img src=\"includes/images/rodo/" + tipoEstradaAnterior + "_" + tipoEstradaAnterior + ".gif\"/></td>"
							+ "<td class=tdcenter>" + parseInt(sd[i - 1].cumulativeDistance) + " Km</td>"
			 				+ "<td>" + s.description + "</td>"
			 				+ "<td></td>"
			 				+ "</tr>";
                }
                corDeFundo++;
            }


            if (corDeFundo % 2 == 0)
                classeTr = "";
            else
                classeTr = " class=odd ";

            //Pedágios				
            if (s.tollFeeDetails.name || s.tollFeeDetails.concession) {

                //Cria o Marcador e seu Balão de informações	
                textoBalaoInformacao += "<div style=\"text-align:center;height:80px;line-height:1.8;\">"
									 + "<strong>" + s.tollFeeDetails.name
									 + " - " + s.tollFeeDetails.concession
									 + "</strong>"
									 + "<br/>" + s.tollFeeDetails.address
									 + "<br/>" + s.tollFeeDetails.phone
									 + "<br/>Preço: R$" + s.tollFeeDetails.price
									 + "</div>";

                var point = new GLatLng(s.point.y, s.point.x);
                //Adiciona o balao no marcador
                marker = createMarker(point, i, textoBalaoInformacao);


                arrayMarker[contMarker++] = new objPonto(s.point.x, s.point.y);
                _map.addOverlay(marker);
                //Fim "Cria o Marcador e seu Balão de informações"

                totalPedagios++;

                x += "<tr" + classeTr + ">"
		 			+ "<td>"
		 			+ "<img src=\"includes/images/rodo/" + tipoEstradaAnterior + "_" + s.roadType + ".gif\"/>"
		 			+ "<span style=\"position:absolute;left:18px;float:left;\"><img src=\"includes/images/pedagio-g4r-20x20.gif\"></span>"
		 			+ "</td>"
		 			+ "<td class=tdcenter>" + parseInt(sd[i - 1].cumulativeDistance) + " Km</td>"
		 			+ "<td class=pedagio>" + s.tollFeeDetails.name + "</td>"
		 			+ "<td><a href=\"javascript:_MHandlerClickMiniMap(" + s.point.x + "," + s.point.y + ")\"><img src=\"includes/images/img_map_lupa.gif\" border=\"0\"></a></td>"
		 			+ "</tr>";

                tipoEstradaAnterior = s.roadType;
                corDeFundo++;
            }
            //Cidades	 
            else {
                if (procuraOcorrencia(todasCidades, cidadeEstado) == false) {
                    afetada = "";
                    for (var cidadeafetada in cidadesAfetadasSC) {
                        if (s.city.name == cidadesAfetadasSC[cidadeafetada] && s.city.state == "SC") {
                            afetada = " -  <font color='#3399FF'>Município afetado pela chuva</font>";
                            cidadeAtingidaTrecho = "S";
                        }
                    }

                    for (var cidadeafetada in cidadesAfetadasMG) {
                        if (s.city.name == cidadesAfetadasMG[cidadeafetada] && s.city.state == "MG") {
                            afetada = " -  <font color='#3399FF'>Município afetado pela chuva</font>";
                            cidadeAtingidaTrecho = "S";
                        }
                    }
                    for (var cidadeafetada in cidadesAfetadasRS) {
                        if (s.city.name == cidadesAfetadasRS[cidadeafetada] && s.city.state == "RS") {
                            afetada = " -  <font color='#3399FF'>Município afetado pela chuva</font>";
                            cidadeAtingidaTrecho = "S";
                        }
                    }

                    x += "<tr" + classeTr + ">"
							+ "<td><img src=\"includes/images/rodo/" + tipoEstradaAnterior + "_" + s.roadType + ".gif\"/></td>"
							+ "<td class=tdcenter>" + parseInt(sd[i - 1].cumulativeDistance) + " Km</td>"
							+ "<td><b>" + s.city.name + " - " + s.city.state + afetada + "</b></td>"
							+ "<td><a href=\"javascript:_MHandlerClickMiniMap(" + s.point.x + "," + s.point.y + ")\"><img src=\"includes/images/img_map_lupa.gif\" border=\"0\"></a></td>"
							+ "</tr>";

                    tipoEstradaAnterior = s.roadType;
                    corDeFundo++;
                }
            }

            todasCidades += cidadeEstado + ",";
            descricaoAnterior = s.description;
        }

        //Pula o objeto Fim da Rota
        i++;

        x += "<tr class=\"odd\">"
			+ "<td><img src=\"includes/images/rodo/" + tipoEstradaAnterior + "_chegada.gif\"/></td>"
			+ "<td class=tdcenter>" + parseInt(sd[i - 1].cumulativeDistance) + " Km</td>"
			+ "<td><b>" + cidadeDestino.nome + "</b></td>"
			+ "<td><a href=\"javascript:_MHandlerClickMiniMap(" + s.point.x + "," + s.point.y + ")\"><img src=\"includes/images/img_map_lupa.gif\" border=\"0\"></a></td>"
			+ "</tr>";

        x += "</table>";

        if (cidadeAtingidaTrecho == "S")
            $("divDescCaminhoInt").innerHTML = avisoSantaCatarina + x;
        else
            $("divDescCaminhoInt").innerHTML = x;
    }

    return totalPedagios;
}

function createMarker(point, number, txt) {
    _map = getMaplinkAPI().currentMap;


    var myIcon = new GIcon(G_DEFAULT_ICON);
    myIcon.image = "includes/images/pedagio-g4r.png";
    myIcon.iconSize = new GSize(27, 28);
    myIcon.shadow = "includes/images/shadow-pedagio-gr4.png";
    myIcon.shadowSize = new GSize(42, 28);
    myIcon.iconAnchor = new GPoint(13, 20);
    myIcon.infoWindowAnchor = new GPoint(13, 20);
    //myIcon.printImage = "my_custom_icon_print.gif";
    //myIcon.mozPrintImage = "my_custom_icon_mozPrint.gif";
    //myIcon.printShadow = "my_custom_icon_printShadow.gif";
    //myIcon.transparent = "my_custom_icon_transparent.png";
    myIcon.imageMap = [10, 29, 1, 16, 0, 5, 5, 0, 12, 4, 18, 2, 21, 12, 21, 16];

    var markerOptions = { icon: myIcon };

    var marker = new GMarker(point, markerOptions);

    marker.value = number;

    if (txt) {
        GEvent.addListener(marker, "click", function() {
            var myHtml = txt;
            _map.openInfoWindowHtml(point, myHtml.toString());
        });
    }

    return marker;
}

function procuraOcorrencia(frase, palavra) {

    if (frase.indexOf("," + palavra + ",") != -1)
        return true;
    else
        return false;

}

function printMap() {
    var winHeight = 470;
    var winWidth = 820;

    var winLeft = screen.width / 2 - winWidth / 2;
    var winTop = screen.height / 2 - winHeight / 2;
    var opts = '"top=yes,toolbar=no,resizable=no,scrollbars=no,width=' + winWidth + ',height=' + winHeight + ',left=' + winLeft + ',top=' + winTop + '"';

    window.open("mapa_impressao.aspx", "MapaImpressao", opts);

}


function buscaRota() {
    if ($("cidade_origem").value && $("cidade_destino").value) {
        document.formCidades.action = "rotas_origem.aspx";
        document.formCidades.submit();
        return true;
    }
    else if (!$("cidade_origem").value && !$("cidade_destino").value)
        alert("Preencha o campo Cidade de Origem e Cidade de Destino");
    else if (!($("cidade_origem").value))
        alert("Preencha o campo Cidade de Origem");
    else
        alert("Preencha o campo Cidade de Destino");
}

function buscaRotaMapa() {
    if ($("cidade_origem").value && $("cidade_destino").value) {
        document.frmMapa.action = "rotas_origem.aspx";
        document.frmMapa.submit();
        return true;
    }
    else if (!$("cidade_origem").value && !$("cidade_destino").value)
        alert("Preencha o campo Cidade de Origem e Cidade de Destino");
    else if (!($("cidade_origem").value))
        alert("Preencha o campo Cidade de Origem");
    else
        alert("Preencha o campo Cidade de Destino");
}


function buscaCidade() {
    if ($("cidade").value) {
        $("hiddenTipoBusca").value = "buscacidadeisolada";
        document.formCidades.action = "rotas_origem.aspx";
        document.formCidades.submit();
    }
    else
        alert("Preencha o campo Cidade");
}


/************imprimir mapa****************************/
function ImprimirMapa(_divMapa) {
    var divMapa = "divMapa";
    if (typeof _divMapa != "undefined" && _divMapa) divMapa = _divMapa;

    var mapa = new MMap2("divMapa");


    var MapaMLAPIOpener = window.opener.getMaplinkAPI().currentMap;
    var markers = window.opener.arrayMarker;
    var contMarker = window.opener.contMarker;

    var MapLinkAPIOpener = window.opener.getMaplinkAPI();
    mapa.setCenter(MapaMLAPIOpener.getCenter());
    mapa.setZoom(MapaMLAPIOpener.getZoom());

    var start = MapaMLAPIOpener.routeStartMarker;

    var end = MapaMLAPIOpener.routeEndMarker;


    if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.indexOf("MSIE 6.0") > 0) {
        mapa.setMapType(G_NORMAL_MAP);
    }

    mapa.disableDragging();
    if (MapaMLAPIOpener.routeId) {
        //mapa.addOverlay(MapaMLAPIOpener.routeStartMarker.copy());
        // mapa.addOverlay(MapaMLAPIOpener.routeEndMarker.copy());      


        mapa.addOverlay(new GMarker(new GLatLng(start.getLatLng().lat(), start.getLatLng().lng()), { icon: start.getIcon() }));

        mapa.addOverlay(new GMarker(new GLatLng(end.getLatLng().lat(), end.getLatLng().lng()), { icon: end.getIcon() }));


        var pl = window.opener._MPolyline;
        var gpoints = new Array();
        for (var i = 0, length = pl.points.length; i < length; i++)
            gpoints[gpoints.length] = new GLatLng(pl.points[i].y, pl.points[i].x);

        var gpolyline = new GPolyline(gpoints, "#3366CC", 6, 0.8);
        mapa.addOverlay(gpolyline);
    }
    else {
        // mapa.addOverlay(MapaMLAPIOpener.currentMarker.copy());
        var a = 1;
    }


    if (mapa) {
        if (markers) {
            for (i = 0; i < contMarker; i++) {
                point = new GLatLng(markers[i].y, markers[i].x);
                marker = createMarker(point, i, "");
                mapa.addOverlay(marker);
            }
        }
    }

    setTimeout('mudaLogo("divMapa")', 5000);

}

function mudaLogo(divMapa) {
    var boxesContainer = $(divMapa);
    var childs = boxesContainer.childNodes;

    if (childs[1])
        childs[1].innerHTML += '<img src="includes/images/4rodas-90.png"/>';
}

function Suporte() {
    window.open('http://webservices.maplink2.com.br/viajeaqui/suporte.aspx', 'Suporte', 'status=no,scrollbars=yes,top=0,left=0,width=800,height=480');
}

