

    var map;
    var geocoder;
    
        function InicializarMapa() 
        {       
            if (GBrowserIsCompatible()) 
            {   
                if (map != null)
                    return;
                
                map = new GMap2(document.getElementById("map")); 
                map.setCenter(new GLatLng(-23.102,-48.258), 6);  
                
   
                //Adiciona os controles para seleção básica dos tipos de mapa (mapa, satélite, híbrido)
                map.addControl(new GMapTypeControl()); 

                //Adiciona o controle de zoom e direção do mapa
                map.addControl(new GLargeMapControl());

//              GEvent.addListener(map, "click", "map.clearOverlays();");
                //GEvent.addListener(map, "click", LimparOverlays);
                //GEvent.addListener(map, "click", getAddress);
                AdicionarOutrasVisualizacoes(map);

                 
             }  
        }
       
        function LimparOverlays()
        {
            map.clearOverlays();
        }
        
        function ClearOverlays()
        {
            map.clearOverlays();
        }
        
        function MarcarEstadoSaoPaulo(cor)
        {
            var returnGeom = '-53.15685,-22.70582|-52.94834,-22.56973|-52.88834,-22.57584|-52.84361,-22.59417|-52.70292,-22.60820|-52.54528,-22.61139|-52.44605,-22.60166|-52.33820,-22.61820|-52.23612,-22.61916|-52.15848,-22.58208|-52.11097,-22.53111|-52.06305,-22.52667|-52.01473,-22.54139|-51.96473,-22.56111|-51.92000,-22.58819|-51.75820,-22.61570|-51.58931,-22.68028|-51.50501,-22.68778|-51.43667,-22.65584|-51.36223,-22.64973|-51.25306,-22.67473|-51.22153,-22.71458|-51.10917,-22.76458|-50.88431,-22.81208|-50.84417,-22.84250|-50.79834,-22.92084|-50.66097,-22.90507|-50.55542,-22.91361|-50.51292,-22.94584|-50.45723,-22.94972|-50.17250,-22.95361|-50.04292,-22.91438|-49.98229,-22.90278|-49.91000,-22.99473|-49.67973,-23.16250|-49.65250,-23.19944|-49.62292,-23.26681|-49.64709,-23.46319|-49.65778,-23.51111|-49.62236,-23.63868|-49.54973,-23.70924|-49.57792,-23.84555|-49.48445,-24.01778|-49.40486,-24.09000|-49.36181,-24.10687|-49.32980,-24.14681|-49.33334,-24.19889|-49.27445,-24.31445|-49.21980,-24.35750|-49.23555,-24.41931|-49.31736,-24.54386|-49.29646,-24.66340|-49.25820,-24.68597|-49.19361,-24.69806|-49.04084,-24.69111|-48.96473,-24.67834|-48.78973,-24.68278|-48.68847,-24.67153|-48.58660,-24.67910|-48.48361,-24.75334|-48.51028,-24.79223|-48.54959,-24.81528|-48.59389,-25.00792|-48.55445,-25.06528|-48.50305,-25.08452|-48.46111,-25.03500|-48.39055,-24.87326|-48.30473,-24.86862|-48.25167,-24.88223|-48.20486,-24.89736|-48.21111,-24.94695|-48.23049,-25.01153|-48.14958,-25.22278|-48.09278,-25.23750|-48.08270,-25.31492|-48.01973,-25.22945|-47.95250,-25.19944|-47.91431,-25.15236|-47.89500,-25.10362|-47.92042,-25.06528|-47.99667,-25.07666|-48.05410,-25.05136|-47.98306,-25.01028|-47.83389,-24.89612|-47.71666,-24.82278|-47.59667,-24.73806|-47.54556,-24.70862|-47.42278,-24.67750|-47.31750,-24.62222|-47.21473,-24.56305|-47.00549,-24.38695|-46.97223,-24.30361|-46.92445,-24.27084|-46.84195,-24.22167|-46.59195,-24.09223|-46.47778,-24.03778|-46.41681,-23.98570|-46.43362,-23.94125|-46.38042,-23.86876|-46.30549,-23.91910|-46.28262,-23.96211|-46.27973,-24.02584|-46.19555,-23.99223|-46.16584,-23.96028|-46.15055,-23.87882|-46.22695,-23.91910|-46.12944,-23.85834|-46.08584,-23.83611|-45.97486,-23.78765|-45.89001,-23.76778|-45.83501,-23.75889|-45.63528,-23.78834|-45.54973,-23.80556|-45.50500,-23.84334|-45.39473,-23.80313|-45.40278,-23.75445|-45.42660,-23.71139|-45.41084,-23.62889|-45.26640,-23.58750|-45.06001,-23.49611|-45.02889,-23.44528|-45.00140,-23.40667|-44.90646,-23.34126|-44.83820,-23.38972|-44.72565,-23.35328|-44.86404,-23.21084|-44.79417,-23.00334|-44.72403,-22.93500|-44.54181,-22.88389|-44.36445,-22.86223|-44.26862,-22.82014|-44.16265,-22.69223|-44.18265,-22.63444|-44.21084,-22.59472|-44.31973,-22.59389|-44.39250,-22.60153|-44.43486,-22.61555|-44.52126,-22.62515|-44.63452,-22.60208|-44.71362,-22.50750|-44.73181,-22.45653|-44.77917,-22.41959|-44.83130,-22.40601|-44.88417,-22.44000|-44.97042,-22.44709|-45.05223,-22.46250|-45.11250,-22.48903|-45.17584,-22.52347|-45.22834,-22.56556|-45.36890,-22.63694|-45.52194,-22.65167|-45.67170,-22.64681|-45.64994,-22.58868|-45.73209,-22.58771|-45.74334,-22.66612|-45.74313,-22.72424|-45.73111,-22.78792|-45.77896,-22.84604|-45.86278,-22.86486|-45.89890,-22.83973|-46.00667,-22.87194|-46.13056,-22.89889|-46.27112,-22.88167|-46.34320,-22.86681|-46.47288,-22.67007|-46.39528,-22.62820|-46.42806,-22.52611|-46.54389,-22.47694|-46.65805,-22.40334|-46.70396,-22.30771|-46.67001,-22.21473|-46.65778,-22.00861|-46.67431,-21.83292|-46.63195,-21.78042|-46.55500,-21.67000|-46.51028,-21.53945|-46.50702,-21.46334|-46.75904,-21.36181|-46.82285,-21.36473|-46.89097,-21.40494|-46.94473,-21.41111|-46.99393,-21.40788|-46.99181,-21.35702|-47.04501,-21.23778|-47.12841,-21.12986|-47.14001,-21.05639|-47.15223,-20.99695|-47.22243,-20.91521|-47.21070,-20.79813|-47.11320,-20.67584|-47.11667,-20.60584|-47.13473,-20.54889|-47.20695,-20.50139|-47.25556,-20.47584|-47.29250,-20.43910|-47.27403,-20.29584|-47.23764,-20.23466|-47.25055,-20.17166|-47.43528,-19.98973|-47.54334,-19.98639|-47.59750,-20.02500|-47.68055,-19.99250|-47.80723,-19.97722|-47.85597,-19.98483|-47.86306,-20.04944|-47.89097,-20.10910|-48.06910,-20.15056|-48.12056,-20.13473|-48.16070,-20.10875|-48.23695,-20.03666|-48.30195,-20.11250|-48.40528,-20.11250|-48.56917,-20.12556|-48.82612,-20.15334|-48.88612,-20.25445|-48.87639,-20.30806|-48.86862,-20.40792|-48.94445,-20.42000|-48.97889,-20.38306|-48.96834,-20.26431|-48.97862,-20.20166|-49.01112,-20.15361|-49.06334,-20.16202|-49.08952,-20.23021|-49.11806,-20.27264|-49.16709,-20.30667|-49.22625,-20.28334|-49.28473,-20.17861|-49.30556,-20.09250|-49.29709,-20.03708|-49.40416,-19.98944|-49.51375,-19.91209|-49.59612,-19.90973|-49.64890,-19.93444|-49.77542,-19.92584|-49.88223,-19.94736|-50.15723,-19.88889|-50.32055,-19.88389|-50.36515,-19.85626|-50.39612,-19.81639|-50.43166,-19.79014|-50.47959,-19.78181|-50.57556,-19.81861|-50.60973,-19.85167|-50.64764,-19.90473|-50.69889,-19.93334|-50.76806,-19.93945|-50.92806,-20.01084|-50.96639,-20.03639|-51.00643,-20.07929|-51.04980,-20.25194|-51.17452,-20.30757|-51.26056,-20.31528|-51.33862,-20.37709|-51.41112,-20.46194|-51.46612,-20.53917|-51.51308,-20.57801|-51.57764,-20.59611|-51.62251,-20.73805|-51.62695,-20.82111|-51.64834,-20.90666|-51.81112,-21.10486|-51.87000,-21.14764|-51.86966,-21.19459|-51.85028,-21.26362|-51.85500,-21.32028|-51.93250,-21.46084|-51.99036,-21.51047|-52.06084,-21.59653|-52.03826,-21.64702|-52.05618,-21.71986|-52.10917,-21.74889|-52.15917,-21.80056|-52.17438,-21.85403|-52.29584,-21.97431|-52.31334,-22.01694|-52.38223,-22.12028|-52.42639,-22.16417|-52.49070,-22.21195|-52.54973,-22.24223|-52.59862,-22.26306|-52.75389,-22.35167|-52.97528,-22.48223|-53.05612,-22.55028|-53.10305,-22.64167|-53.15685,-22.70582'; 
            var geomAry = new Array(); 
            geomAry = returnGeom.split('|'); 
            var XY = new Array(); 
            var points = []; 
            for (var i = 0; i < geomAry.length; i++) 
            { 
            XY = geomAry[i].split(','); 
            points.push( new GLatLng(parseFloat(XY[1]),parseFloat(XY[0]))) ; 
            } 
            var dynRegionPolygon;
            
            if (cor)
                dynRegionPolygon = new GPolygon(points,'#f33f00', 1, 1, '#' + cor, 0.2); 
            else
                dynRegionPolygon = new GPolygon(points,'#f33f00', 1, 1, '#ff0000', 0.2); 
            map.addOverlay(dynRegionPolygon);
            map.setCenter(new GLatLng(-23.102,-48.258), 6); 
        }
        
        function AdicionarOutrasVisualizacoes(map)
        {
            var crossLayer = new GTileLayer(new GCopyrightCollection(""), 0, 15);
            crossLayer.getTileUrl =  function(tile, zoom) {
            return "./include/tile_crosshairs.png";};

            var layerTerCross = [ G_PHYSICAL_MAP.getTileLayers()[0],
            crossLayer ];

//            var mtTerCross = new GMapType(layerTerCross,
//            G_PHYSICAL_MAP.getProjection(), "Ter+");
            
            map.addMapType(G_PHYSICAL_MAP);
            
//             map.addMapType(mtTerCross);
             
        }
        
        function DefinirVisualizacaoInicial()
        {
            map.setMapType(G_PHYSICAL_MAP);  
        }
        
        function AbrirJanelaInformacao(map, texto)
        {
            map.openInfoWindow(map.getCenter(), document.createTextNode(texto));
        }

    function getAddress(overlay, latlng) {
      if (latlng != null) {
        address = latlng;
        geocoder = new GClientGeocoder();
        geocoder.getLocations(latlng, showAddress);
      }
    }

    function showAddress(response) {
        //no arquivo de js
    }

        var lista; //Contem as coordenadas
        var listaDados; //Contem as informações sobre a cidade
        
        function CriaArray()
        {
            lista = new Array();
            listaDados = new Array();
        }
        
        function AddArray(array, nomeCidade)
        {   
            var posicaoNova = lista.length;
            //trkPointsReduced = GDouglasPeucker(array,1000); 
            trkPointsReduced = GDouglasPeucker(array,500); 
            lista[posicaoNova] = trkPointsReduced;
            listaDados[posicaoNova] = nomeCidade;
        }
        
     function Pintar()
        {       

            for(i in lista)
            {
                var polygon;
                if (i%3 == 0)
                    polygon = new GPolygon(lista[i] , '#00ff00', 0.5, 1, '#00ff00', 0.3);
                else if (i%4 == 0)
                    polygon = new GPolygon(lista[i] , '#0000ff', 0.5, 1, '#0000ff', 0.3);
                else
                    polygon = new GPolygon(lista[i] , '#ff0000', 0.5, 1, '#ff0000', 0.3);

                GEvent.addListener(polygon, "mouseover", function(){
                    //document.getElementById("lbl001").innerText = cid;
                });

                    map.addOverlay(polygon);                
                
            }
        }
        
        function MarcarCidade(nomeDaCidade, coordenadas, cor, cidadeID, mostrarInfo)
        {       
//            trkPointsReduced = GDouglasPeucker(coordenadas,1000); 
            trkPointsReduced = GDouglasPeucker(coordenadas,500); 
            
//            var polygon = new GPolygon(trkPointsReduced , '#' + cor, 0.5, 1, '#' + cor, 0.3);
            var polygon = new GPolygon(trkPointsReduced , '#' + cor, 0.5, 1, '#' + cor, 0.3);

            GEvent.addListener(polygon,"click", function() {
            __doPostBack('ctl00_ContentPlaceHolder1_accordionMenu', 'MarcarCidade;' + cidadeID);
            });
            
            
            
//            GEvent.addListener(polygon, "mouseover", function(){
//                this.setFillStyle({color:'#00ffff'});   });


            map.addOverlay(polygon);
        }
        
        function Centralizar(lat, lng, zoom)
        {
                map.setCenter(new GLatLng(parseFloat(lat),parseFloat(lng)), zoom);  
        }
        
     var arrayEndereco = new Array();
     var tempo = 0;
        
    function showLocation(address, nome, site, email, enderecoID) {
       geocoder = new GClientGeocoder();
       
      
       
       
       
       tempo = tempo + 400;
       
       setTimeout(function() { geocoder.getLocations(address, addAddressToMap); }, tempo);
       
       arrayDados = new Array();
       arrayDados["tipo"] = 'entidade';
       arrayDados["endereco"] = address;
       arrayDados["nome"] = nome;
       arrayDados["site"] = site;
       arrayDados["email"] = email;
       arrayDados["enderecoID"] = enderecoID; //Usado para colocar o id do endereço na planilha do excel para o pessoal
                                                //atualizar os dados
      

       arrayEndereco[address] = arrayDados;
    }

    function addAddressToMap(response) {
        var informacoes = arrayEndereco[response.name];
        
      if (!response || response.Status.code != 200) {
            //label = document.getElementById('lblNaoAchados');
            //label.innerText =  label.innerText + "\r\n\r\n " + informacoes["enderecoID"] + " - " + informacoes["endereco"];
      } else {
      
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
                            
        marker = new GMarker(point);
        
        //Balão de informações sobre a entidade no marker
        GEvent.addListener(marker,"click", function() {
            
            var nome = informacoes["nome"];
            var site = informacoes["site"];
            var email = informacoes["email"];
            
            var myHtml = "<div style=\"background-color:Yellow\"><br /><b>Escola: </b>" + nome +  "<br/>" +
                         "<b>Site: </b>" + site + "<br />" +
                         "<b>E-mail: </b>" + email + "<br /><br /></div>";
                                     
                           
        map.openInfoWindowHtml(new GLatLng(response.Placemark[0].Point.coordinates[1],
                            response.Placemark[0].Point.coordinates[0]), myHtml);
      });
      
        lat = place.Point.coordinates[0];
        lng = place.Point.coordinates[1];
        enderecoId = informacoes["enderecoID"];
        label = document.getElementById('LabelUpdate');
        label.innerText =  label.innerText + "\r\n\r\n Update Endereco set end_lng = '" + lat + "', end_lat = '" + lng + "' where end_cod = " + enderecoId ;
      
      
      //document.getElementById('ctl00_ContentPlaceHolder1_hdnLatLng').value = document.getElementById('ctl00_ContentPlaceHolder1_hdnLatLng').value +  enderecoId + ';' +lat + ';' + lng + '$';
      //document.getElementById('ctl00_ContentPlaceHolder1_btnAtualizar').click();
      
    
      
        map.addOverlay(marker);

      }
    }
    
    function AtualizarEndereco()
    {
        document.getElementById('ctl00_ContentPlaceHolder1_btnAtualizar').click();
    }
    
    
    //Adiciona um GMarker no mapa
    function MarcarPonto(lat, lng, texto)
    {   
        var newIcon = MapIconMaker.createMarkerIcon({width: 16, height: 16, primaryColor: '#ff0000'});
        var marker = new GMarker(map.getCenter(), {icon: newIcon});
        point = new GLatLng(lat,lng);
        marker = new GMarker(point, {icon: newIcon});
        
        if (texto)
        {
            GEvent.addListener(marker,"click", function() {  
                //map.openInfoWindow(point, document.createTextNode(texto)); 
                var myHtml = "<div width=\"90%\">" + texto + "</div>";
                            map.openInfoWindowHtml(new GLatLng(lat, lng), myHtml);
            Centralizar(lat,lng, map.getZoom());       
            });
        }
        
        map.addOverlay(marker);
        
        
    }
    
    
    


