﻿/// <reference path="jquery-vsdoc.js"/>

// Executa um resumo do getElementById, com jQuery
function o(id) {
    return $("#" + id)[0];
}

// Variáveis globais
var Mapa = null;
var Direcoes = null;
var mManager = null;
var mManagerAlto = null;
var Geocoder = null;
var PontoGeocode = null;
var PontoAdicionarRadar = null;
var IconesRadares = new Array();
var jjma = false;
var gRadares = [];
var iRadares = [];
var RadarAlteracao = null;
var EnderecoBuscado = "";
var abcd = false;
var ModoLocal = false;

var RadaresNormais = true;
var RadaresErrados = false;
var RadaresSuspeitos = false;
var RadaresSemDirecao = false;
var RadaresExcluidos = false;

var LatitudeInicial = null;
var LatitudeFinal = null;
var LongitudeInicial = null;
var LongitudeFinal = null;
var PrecisaCarregar = true;
var CargaCompleta = false;

$(document).ready(function () {
    $("#carregando").fadeIn("slow");
	$("#totalRadares").html("<b>Muitos</b> radares e contando... ");
    AjustaDivs();
    Inicializa();
});

// Inicialização do sistema
function Inicializa() {
    CriaMapa();
    AjustaDivs();

    // Verifica browser atual
    if ($.browser.msie)
        if ($.browser.version == "6.0")
            $("#AlertaIE6").show();

    // Verifica como o site está rodando
	/*
    if (window.location.href.indexOf("localhost") > -1) {
        ModoLocal = true;
        //$("#parcerias").hide();
        $("#propaganda").hide();
        $("#Titulo").css("background", "#ff0000");
        $("#Titulo").html("<b>MODO LOCAL</b>");
    }*/

    // Ajusta Controles
    $("input").focus(function () {
        this.style.border = "1px black solid";
    });

    $("input").blur(function () {
        this.style.border = "1px #999 solid";
    });

    if (!abcd)
        $("#debug").hide();

};

function MostraDivs() {
	$("#principal,#propaganda,#parcerias,#logo").show();
}

setInterval("TotalRadares()", 60000);

// Aloca a função AjustaDivs no resize do windows
$(window).resize(function () { AjustaDivs() });

// Cria estrutura do mapa com parametros iniciais
function CriaMapa() {
    try {

        if (!GBrowserIsCompatible()) {
            if (confirm("Infelizmente seu browser não é compatível com o sistema MapaRadar. Quer dar uma olhada no Google Chrome?")) {
                window.location = "http://www.chromium.org/";
            }
        }
        CarregaIconesRadares();

        Mapa = new GMap2(o("mapa"));

        GEvent.addListener(Mapa, "zoomend", function () {
			if(CargaCompleta)
				ListaRadares(false);
        });

        GEvent.addListener(Mapa, "load", function () {
            ListaRadares(true);
            CarregaEndereco();
        });

        GEvent.addListener(Mapa, "dragstart", function () {
            PrecisaCarregar = false;
            LatitudeInicial = Mapa.getCenter().lat();
            LongitudeInicial = Mapa.getCenter().lng();
        });

        GEvent.addListener(Mapa, "dragend", function () {
            LatitudeFinal = Mapa.getCenter().lat();
            LongitudeFinal = Mapa.getCenter().lng();
            var DiferencaLatitude = (LatitudeInicial - LatitudeFinal);
            if (DiferencaLatitude < 0)
                DiferencaLatitude = (DiferencaLatitude * (-1));

            var DiferencaLongitude = (LongitudeInicial - LongitudeFinal);
            if (DiferencaLongitude < 0)
                DiferencaLongitude = (DiferencaLongitude * (-1));

            if (DiferencaLatitude > 0.001 || DiferencaLongitude > 0.001)
                PrecisaCarregar = true;
            else
                PrecisaCarregar = false;

            if (PrecisaCarregar)
                ListaRadares(false);
        });

        Direcoes = new GDirections(Mapa, o("conteudoAuxiliar"));
        Geocoder = new GClientGeocoder();
        Mapa.setUIToDefault();
        Mapa.enableInfoWindow();
        Mapa.enableContinuousZoom();
        Mapa.enableScrollWheelZoom();
        Mapa.addControl(new GMapTypeControl());
		Mapa.addControl(new GOverviewMapControl()); 
        Mapa.addMapType(G_SATELLITE_3D_MAP);

        if (google.loader.ClientLocation)
            Mapa.setCenter(new GLatLng(google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude), 12);
        else
            Mapa.setCenter(new GLatLng(-23.548943, -46.638818), 12);

        AjustaDivs();

    }
    catch (e) {
        //alert("Foi encontrado erro em uma parte crítica do sistema.\n" + e.message);
    }
}

function CarregaEndereco() {
    $("#endereco").val(EnderecoBuscado);
    if (EnderecoBuscado != "")
        MostraEndereco(EnderecoBuscado, true, 15);
}

// Pega o endereço passado via Geocode e atribui um Marcador, caso o parametro seja true
function MostraEndereco(Endereco, Marcador, Zoom) {
    if (Endereco == "")
        return false;

    if (!Zoom)
        Zoom = 12;

    if (Geocoder) {
        Geocoder.getLatLng(
			Endereco,
			function (Ponto) {
			    if (!Ponto) {
			        d("Endereço não encontrado");
			        alert(Endereco + " não encontrado!");
			    } else {
			        Mapa.setCenter(Ponto, Zoom);
			        d("Ponto encontrado: " + Ponto.toString());
			        if (Marcador) {
			            if (PontoGeocode)
			                Mapa.removeOverlay(PontoGeocode);

			            PontoGeocode = new GMarker(Ponto, { title: Endereco });
			            GEvent.addListener(PontoGeocode, "click", function () {
			                PontoGeocode.openInfoWindowHtml("Endereço procurado: <br><b>" + Endereco + "</b>");
			            });
			            Mapa.addOverlay(PontoGeocode);

			        }
			    }
			}
		);
    }
}

// Faz calculos necessários para ajustar as Divs de acordo com o tamanho disponível
function AjustaDivs() {
    var AlturaDisponivel = document.documentElement.clientHeight;
    var LarguraDisponivel = document.documentElement.clientWidth;

    var AlturaPropaganda = 0;

    if (o("propaganda"))
        AlturaPropaganda = o("propaganda").offsetHeight;

    if (ModoLocal)
        AlturaPropaganda = 0;


    $("#mapa").width(parseInt(LarguraDisponivel));
    $("#mapa").height(parseInt(AlturaDisponivel) - AlturaPropaganda + 1);
    $(".box").css("top", "110px");
    $(".box").css("left", (LarguraDisponivel / 2) - 300);
    d("AjustaDivs (" + AlturaDisponivel + ", " + LarguraDisponivel + ")");

    $("#propaganda").css("top", parseInt(AlturaDisponivel - AlturaPropaganda + 1) + "px");

    $("#carregando").css("top", (AlturaDisponivel / 2) - 20);
    $("#carregando").css("left", (LarguraDisponivel / 2) - 120);

    $("#parcerias").css("left", parseInt(LarguraDisponivel - 207) + "px");
}

function d(Texto) {
    if (abcd)
        $("#debug").html($("#debug").html() + "<br>" + Texto);
}


// Pega o endereço passado via Geocode e atribui um Marcador, caso o parametro seja true
function MostraEnderecoAdicionaRadar(Endereco) {
    if (Endereco == "")
        return false;

    if (Geocoder) {
        Geocoder.getLatLng(
			Endereco,
			function (Ponto) {
			    if (!Ponto) {
			        alert(Endereco + " não encontrado!");
			    } else {
			        Mapa.setCenter(Ponto, 17);
			        d("Ponto encontrado: " + Ponto.toString());

			        if (PontoGeocode)
			            Mapa.removeOverlay(PontoGeocode);

			        PontoGeocode = new GMarker(Mapa.getCenter(), { draggable: true, bouncy: true, title: "Arraste para a localização do radar" });
			        Mapa.addOverlay(PontoGeocode);

			        Mapa.panDirection(0, 1);
			    }
			}
		);
    }
}

function GravaNovoRadar() {
    var Senha = o("SenhaAdicionar").value;
    var TipoRadarID = o("tipoRadar").value;
    var Inteligente = o("inteligente").checked ? 1 : 0;
    var VelocidadeVia = o("velocidadeVia").value;
    var Direcao = o("direcaoReal").value;
	var SentidoDuplo = o("sentidoDuplo").checked ? 1 : 0;
    var Observacoes = o("observacoes").value;


    if (TipoRadarID == "") {
        alert("Tipo do radar é obrigatório");
        return false;
    }


    if (TipoRadarID != 5 && TipoRadarID != 6) {
        if (VelocidadeVia == "") {
            alert("Velocidade da Via é obrigatória");
            return false;
        }
    }

    if (Direcao == "") {
        if (!confirm("Tem certeza que você quer deixar a direção em branco?")) {
            return false;
        }
    }

    EscondePassos(false);
    $('#adicionaRadarPasso4').show();

    var Ponto = PontoGeocode.getLatLng();
    var Latitude = Ponto.lat();
    var Longitude = Ponto.lng();

    $("#statusAdicionaRadar").html("Processando...");

    $.getJSON("AdicionaRadar.aspx?Senha=" + Senha + "&Direcao=" + Direcao + "&SentidoDuplo=" + SentidoDuplo + "&Observacoes=" + Observacoes + "&TipoRadarID=" + TipoRadarID + "&Inteligente=" + Inteligente + "&VelocidadeVia=" + VelocidadeVia + "&Latitude=" + Latitude + "&Longitude=" + Longitude,
		function (data) {
		    if (data.status == "1") {
		        $("#statusAdicionaRadar").html($("#statusAdicionaRadar").html() + "<br/><br/><span class='Verde'>Informações gravadas com sucesso. Muito obrigado pela colaboração.</span>");

		        o("enderecoRadar").value = "";
		        o("tipoRadar").value = "";
		        o("inteligente").checked = false;
		        o("velocidadeVia").value = "";
		        o("direcaoReal").value = "";
				o("sentidoDuplo").checked = false;
		        o("observacoes").value = "";

		        Mapa.removeOverlay(PontoGeocode);

		        ListaRadares();
		    }
		    else
		        $("#statusAdicionaRadar").html($("#statusAdicionaRadar").html() + "<br/><br/><span class='Vermelho'>Ocorreu algum erro ao processar os dados. Favor tentar novamente mais tarde.</span>");

		});

}

function TotalRadares() {
	try {
		$.ajax({
			url: "TotalRadares.aspx",
			type: "GET",
			dataType: "json",
			async: true,
			timeout: 1500,
			success: function (data, status, xmlreq) {
				if (data.status)
					if (data.status == "0")
						return;

				$("#totalRadares").html("<b>" + data.radares + "</b> radares e contando...");

			}

		});
	}
    catch (ex) { };

}

function ListaRadares2() {
    $("#carregando").fadeIn("slow");
    $("#exibidosAtuais").html("");
    var Endereco = "ListaRadares2.aspx?Zoom=" + Mapa.getZoom() + "&Bounds=" + Mapa.getBounds();

    if (RadaresNormais)
        Endereco += "&RadaresNormais=1";
    else
        Endereco += "&RadaresNormais=0";

    if ($("#RadaresTela").val() != "")
        Endereco += "&RadaresTela=" + $("#RadaresTela").val();

    if (RadaresErrados)
        Endereco += "&RadaresErrados=1";

    if (RadaresSuspeitos)
        Endereco += "&RadaresSuspeitos=1";

    if (RadaresSemDirecao)
        Endereco += "&RadaresSemDirecao=1";

    if (RadaresExcluidos)
        Endereco += "&RadaresExcluidos=1";


    GDownloadUrl(Endereco, function (data, responseCode) {
        var xml = GXml.parse(data);
        var Radares = xml.documentElement.getElementsByTagName("marker");
        if (mManager)
            mManager.clearMarkers();
        if (Radares.length != 0) {

            mManager = new MarkerManager(Mapa, { borderPadding: 50, maxZoom: 15, trackMarkers: true });
            var aPontos = [];

            $("#exibidosAtuais").html("(Ex: " + Radares.length + ")");

            $.each(Radares, function (i, radar) {

                if (typeof (radar) == "undefined") {
                    mManager.addMarkers(Radares, 1);
                    mManager.refresh();
                    $("#carregando").fadeOut("slow");
                    return;
                }

                var RadarID = radar.getAttribute("RadarID");
                var Pais = radar.getAttribute("Pais");
                var Estado = radar.getAttribute("Estado");
                var Cidade = radar.getAttribute("Cidade");
                var Endereco = radar.getAttribute("Endereco");
                var CEP = radar.getAttribute("CEP");
                var TipoRadarID = radar.getAttribute("TipoRadarID");
                var Inteligente = radar.getAttribute("Inteligente");
                var VelocidadeVia = radar.getAttribute("VelocidadeVia");
                var Latitude = radar.getAttribute("Latitude");
                var Longitude = radar.getAttribute("Longitude");
                var DataCriacao = radar.getAttribute("DataCriacao");
                var Direcao = radar.getAttribute("Direcao");
                var SentidoDuplo = radar.getAttribute("SentidoDuplo");
                var Ativo = radar.getAttribute("Ativo");
                var Observacoes = radar.getAttribute("Observacoes");
                var TentativasGeoCode = radar.getAttribute("TentativasGeoCode");

                var PontoRadar = new GLatLng(parseFloat(Latitude), parseFloat(Longitude));

                var Prefixo = "";

                if (TipoRadarID == "1" || TipoRadarID == "2")
                    Prefixo = "Radar ";

                var r = null;
                if (TipoRadarID == "5")
                    r = new GMarker(PontoRadar, { title: Prefixo + ConverteTipoRadar(TipoRadarID), icon: IconesRadares[1] });
                else if (TipoRadarID == "6")
                    r = new GMarker(PontoRadar, { title: Prefixo + ConverteTipoRadar(TipoRadarID), icon: IconesRadares[2] });
                else
                    r = new GMarker(PontoRadar, { title: Prefixo + ConverteTipoRadar(TipoRadarID), icon: IconesRadares[VelocidadeVia] });

                gRadares[RadarID] = r;
                iRadares[RadarID] = radar;

                GEvent.addListener(r, "click", function () {
                    var html = "";

                    html += "<b class='TituloRadar'>" + Prefixo + ConverteTipoRadar(TipoRadarID) + "</b>";

                    html += "<br>ID: <b>" + EmBranco(RadarID) + "</b>";
                    html += "<br>Pais: <b>" + EmBranco(Pais) + "</b>";
                    html += "<br>Cidade: <b>" + EmBranco(Cidade) + "</b>";
                    html += "<br>Estado: <b>" + EmBranco(Estado) + "</b>";
                    html += "<br>Endereço: <b>" + EmBranco(Endereco) + "</b>";
                    html += "<br>CEP: <b>" + EmBranco(CEP) + "</b>";

                    if (Inteligente == "1")
                        Inteligente = "Sim";
                    else
                        Inteligente = "Não";

                    html += "<br>Inteligente: <b>" + Inteligente + "</b>";
                    html += "<br>Velocidade na Via: <u>" + VelocidadeVia + " km\\h</u>";
                    html += "<br>Coordenadas: <b>(" + Latitude + ", " + Longitude + ") " + "</b>";
                    SentidoDuplo = (SentidoDuplo == "True" || SentidoDuplo == "Sim") ? "Sim" : "Não";
                    html += "<br>Direção: <b>" + EmBranco(Direcao) + "</b> - Sentido Duplo: <b>" + SentidoDuplo + "</b>";
                    html += "<br>Data Criação: <b>" + DataCriacao + "</b>";
                    html += "<br>Tentativas GeoCode: <b>" + EmBranco(TentativasGeoCode) + "</b>";
                    html += "<br>Observações: <b><div style='width:300px'>" + EmBranco(Observacoes) + "</div></b>";
                    html += "<hr>";

                    if (Ativo == "True") {
                        html += "<div>Radar errado? <a href='javascript:void(0)' onclick='AlterarRadar(this.parentNode, " + RadarID + ")' class='Vermelho'>Altere</a> ou ";
                        html += "<a href='javascript:void(0)' onclick='ExcluirRadar(" + RadarID + ")' class='Vermelho'>Remova!</a><br></div>";
                    } else {
                        html += "<div>Ponto está correto? <a href='javascript:void(0)' onclick='RestaurarRadar(" + RadarID + ")' class='Vermelho'>Restaurar</a></div>";
                    }

                    r.openInfoWindowHtml(html);
                });
                aPontos.push(r);
            });

            mManager.addMarkers(aPontos, 1);
            mManager.refresh();

        }
        $("#carregando").fadeOut("slow");

        if ($("#logo").css("display") == "none") {
            CargaCompleta = true;
            MostraDivs();
            AjustaDivs();
            TotalRadares();

            // Carrega Parceiros
            $("#parcerias").load("conteudo/Parcerias.htm");
        }

    });

}

function ListaRadares(ListaAlto) {
    ListaRadares2();
    return;
}

function EmBranco(Valor) {
    if (Valor == "") {
        return "N/D";
    }
    else {
        return Valor;
    }
}

function ConverteTipoRadar(ID) {
    switch (ID) {
        case "1":
            return "Fixo";
            break;
        case "2":
            return "Móvel";
            break;
        case "3":
            return "Lombada eletrônica";
            break;
        case "4":
            return "Câmera - Apenas filmagem";
            break;
        case "5":
            return "Semáforo";
            break;
        case "6":
            return "Polícia Rodoviária";
            break;
    }
}

var RadarIDExclusao = 0;
function ExcluirRadar(RadarID) {
    if (confirm("Deseja mesmo excluir este radar?")) {

        $("#excluirRadarPasso1").show();

        RadarIDExclusao = RadarID;
    }
}

function ExcluirRadar2() {
    var Senha = o("SenhaExcluir").value;

    $("#statusExcluirRadar").html("Processando...");

    $.getJSON("ExcluirRadar.aspx?Senha=" + Senha + "&Radar=" + RadarIDExclusao,
	function (data) {
	    if (data.status == "1") {
	        $("#statusExcluirRadar").html($("#statusExcluirRadar").html() + "<br/><br/><span class='Verde'>Informações gravadas com sucesso. Muito obrigado pela colaboração.</span>");
	    } else {
	        $("#statusExcluirRadar").html($("#statusExcluirRadar").html() + "<br/><br/><span class='Vermelho'>Ocorreu algum erro ao processar os dados. Favor tentar novamente mais tarde.</span>");
	    }
	    ListaRadares();
	});

    RadarIDExclusao = 0;
}

function RestaurarRadar(RadarID) {

    var Senha = "";
    if ($("#SenhaAdicionar").val() != ""){
        Senha = $("#SenhaAdicionar").val();
    }

    if ($("#SenhaAlterar").val() != ""){
        Senha = $("#SenhaAlterar").val();
    }

    $.getJSON("ExcluirRadar.aspx?Senha=" + Senha + "&Restaurar=1&Radar=" + RadarID,
		function (data) {
		    if (data.status == "1") {
		    } else {
		        alert("Erro ao restaurar radar!");
		    }
		    ListaRadares();
		});
}


function GravaRadarAlterado() {
    var Senha = o("SenhaAlterar").value;
    var TipoRadarID = o("a_tipoRadar").value;
    var Inteligente = o("a_inteligente").checked ? 1 : 0;
    var VelocidadeVia = o("a_velocidadeVia").value;
    var Direcao = o("a_direcaoReal").value;
	var SentidoDuplo = o("a_sentidoDuplo").checked ? 1 : 0;
    var Observacoes = o("a_observacoes").value;

    if (TipoRadarID == "") {
        alert("Tipo do radar é obrigatório");
        return false;
    }


    if (TipoRadarID != 5 && TipoRadarID != 6) {
        if (VelocidadeVia == "") {
            alert("Velocidade da Via é obrigatória");
            return false;
        }
    }

    if (Direcao == "") {
        if (!confirm("Tem certeza que você quer deixar a direção em branco?")) {
            return false;
        }
    }


    $("#carregando").fadeIn("slow");
    $("#alterarRadarPasso2").hide();
    $("#alterarRadarPasso3").show();

    var Ponto = PontoGeocode.getLatLng();
    var Latitude = Ponto.lat();
    var Longitude = Ponto.lng();

    $("#statusAlteraRadar").html("Processando...");

    $.getJSON("AlteraRadar.aspx?Senha=" + Senha + "&RadarID=" + RadarAlteracao + "&Direcao=" + Direcao + "&SentidoDuplo=" + SentidoDuplo + "&Observacoes=" + Observacoes + "&TipoRadarID=" + TipoRadarID + "&Inteligente=" + Inteligente + "&VelocidadeVia=" + VelocidadeVia + "&Latitude=" + Latitude + "&Longitude=" + Longitude,
		function (data) {
		    if (data.status == "1") {
		        $("#statusAlteraRadar").html($("#statusAlteraRadar").html() + "<br/><br/><span class='Verde'>Informações gravadas com sucesso. Muito obrigado pela colaboração.</span>");
		        Mapa.removeOverlay(PontoGeocode);
		        RadarAlteracao = null;

		        o("a_tipoRadar").value = "";
		        o("a_inteligente").checked = false;
		        o("a_velocidadeVia").value = "";
		        o("a_direcaoReal").value = "";
				o("a_sentidoDuplo").checked = false;
		        o("a_observacoes").value = "";

		        ListaRadares();

		        $("#carregando").fadeOut("slow");
		    }
		    else
		        $("#statusAlteraRadar").html($("#statusAlteraRadar").html() + "<br/><br/><span class='Vermelho'>Ocorreu algum erro ao processar os dados. Favor tentar novamente mais tarde.</span>");

		});


}

function AlterarRadar(DivPai, ID, Restaurar) {
    gRadares[ID].closeInfoWindow();
    Mapa.setCenter(gRadares[ID].getLatLng(), 17);
    PontoGeocode = new GMarker(gRadares[ID].getLatLng(), { draggable: true, bouncy: true, title: "Arraste para a nova localização do radar" });
    Mapa.addOverlay(PontoGeocode);
    $("#alterarRadarPasso0").show();

    // Carrega campos:

    o("a_tipoRadar").value = iRadares[ID].getAttribute("TipoRadarID");
    if (iRadares[ID].getAttribute("Inteligente") != "0")
        o("a_inteligente").checked = true;
    else
        o("a_inteligente").checked = false;

    o("a_velocidadeVia").value = iRadares[ID].getAttribute("VelocidadeVia");

    o("a_direcaoReal").value = iRadares[ID].getAttribute("Direcao");

	if (iRadares[ID].getAttribute("SentidoDuplo") != "False")
        o("a_sentidoDuplo").checked = true;
    else
        o("a_sentidoDuplo").checked = false;

    o("a_observacoes").value = iRadares[ID].getAttribute("Observacoes");

    RadarAlteracao = ID;
}

function ValidaEnter(e) {
    if (e.keyCode) {
        if (e.keyCode == 13)
            return true;
    }
}

function ValidaPasso1() {
    if (!PontoGeocode) {
        alert("Por favor, clique no botão procurar para gerar corretamente a latitude e longitude do radar.");
        return false;
    }
    return true;
}

function EscondePassos(RemovePonto) {
    if (PontoGeocode && RemovePonto) {
        Mapa.removeOverlay(PontoGeocode);
        PontoGeocode = null;
    }


    $('#adicionaRadarPasso0').hide();
    $('#adicionaRadarPasso1').hide();
    $('#adicionaRadarPasso2').hide();
    $('#adicionaRadarPasso3').hide();
    $('#adicionaRadarPasso4').hide();
    $('#alterarRadarPasso0').hide();
    $('#alterarRadarPasso1').hide();
    $('#alterarRadarPasso2').hide();
    $('#alterarRadarPasso3').hide();
    $('#excluirRadarPasso1').hide();

}

function UsarPontoAtual() {
    if (PontoGeocode)
        Mapa.removeOverlay(PontoGeocode);

    PontoGeocode = new GMarker(Mapa.getCenter(), { draggable: true, bouncy: true, title: "Arraste para a localização do radar" });
    Mapa.addOverlay(PontoGeocode);

    Mapa.panDirection(0, 0.2);
}

function CarregaIconesRadares() {
    var radarAtual;
    radarAtual = 30;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 40;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 50;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 60;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 70;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 80;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 90;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 100;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 110;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 120;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/radar" + radarAtual + ".png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);


    radarAtual = 0;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/logo.png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 1;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/semaforo.png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);

    radarAtual = 2;
    IconesRadares[radarAtual] = new GIcon();
    IconesRadares[radarAtual].image = "img/policia.png";
    IconesRadares[radarAtual].shadow = "img/sombra.png";
    IconesRadares[radarAtual].iconSize = new GSize(27, 35);
    IconesRadares[radarAtual].shadowSize = new GSize(35, 35);
    IconesRadares[radarAtual].iconAnchor = new GPoint(12, 35);
    IconesRadares[radarAtual].infoWindowAnchor = new GPoint(15, 15);
}




function Opcao(Obj, Tipo) {
    switch (Tipo) {
        case "RadaresNormais":
            RadaresNormais = Obj.checked;
            ListaRadares();
            break;
        case "RadaresErrados":
            RadaresErrados = Obj.checked;
            ListaRadares();
            break;
        case "RadaresSuspeitos":
            RadaresSuspeitos = Obj.checked;
            ListaRadares();
            break;
        case "RadaresSemDirecao":
            RadaresSemDirecao = Obj.checked;
            ListaRadares();
            break;
        case "RadaresExcluidos":
            RadaresExcluidos = Obj.checked;
            ListaRadares();
            break;

    }
}

function Exporta(Pagina) {
    try {
        window.location.href = "output/" + Pagina + ".aspx?Pais=" + $("#DdlPaisesExportacao").val() + "&Estado=" + $("#DdlEstadosExportacao").val() + "&Cidade=" + $("#DdlCidadesExportacao").val();
    } catch (ex) { alert("Erro: " + ex.message); }
}

function TutorialExporta(Pagina) {
    try {
        window.open("output/tutorial_" + Pagina + ".txt", "Tutorial")
    } catch (ex) { alert("Erro: " + ex.message); }
}


function ValidaSenha(Modo) {
    var Senha = $("#Senha" + Modo).val();

    $.getJSON("ValidaSenha.aspx", { Senha: Senha },
        function (data) {
            if (data.status == "1") {
                // Avança
                EscondePassos(false);
                if (Modo == "Adicionar") {
                    $('#adicionaRadarPasso1').show();
                    $("#rExcluidos").show();
                }
                else {
                    $('#alterarRadarPasso1').show();
                    $("#rExcluidos").show();
                }

            }
            else {
                alert("Senha inválida!");
            }
        });




}

function ValidaDirecao(Txt){
	if(Txt.value == "")
		return;

	if(isNaN(Txt.value)){
		Txt.value = "";
		alert("Direção inválida");
	}
}

// Rotas.js
function tracaRota(EnderecoInicial, EnderecoFinal) {
    $("#carregando").fadeIn("slow");
    GEvent.addListener(Direcoes, "load", carregaPontos);
    GEvent.addListener(Direcoes, "error", trataErrosRota);

    Direcoes.load("from: " + EnderecoInicial + " to: " + EnderecoFinal);

    return;
}

function trataErrosRota() {
    if (Direcoes.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
        alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + Direcoes.getStatus().code);
    else if (Direcoes.getStatus().code == G_GEO_SERVER_ERROR)
        alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + Direcoes.getStatus().code);

    else if (Direcoes.getStatus().code == G_GEO_MISSING_QUERY)
        alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + Direcoes.getStatus().code);

    //   else if (Direcoes.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
    //     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + Direcoes.getStatus().code);

    else if (Direcoes.getStatus().code == G_GEO_BAD_KEY)
        alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + Direcoes.getStatus().code);

    else if (Direcoes.getStatus().code == G_GEO_BAD_REQUEST)
        alert("A directions request could not be successfully parsed.\n Error code: " + Direcoes.getStatus().code);

    else alert("An unknown error occurred.");

    $("#carregando").fadeOut("slow");

}

function carregaPontos() {
    $("#rota").hide();
    $("#auxiliarPrincipal").slideDown();
    $("#conteudoAuxiliar").html("");
    $("#tituloAuxiliar").html("<b>Rota ponto a ponto</b>")
    setTimeout("ListaRadares()", 1000);
    $("#carregando").fadeOut("slow");
}