// JavaScript Document
var _mMapMode = "Mapa";
var _mSatelliteMode = "Satélite";
var _mHybridMode = "Híbrido";
var _mTerms = "Terms of Use";
var _mMapError = "Desculpe mas não temos mapas neste zoom para esta região.<p>Tente ver mais distante.</p>";
var _mSatelliteError = "Desculpe mas não temos mapas neste zoom para esta região.<p>Tente ver mais distante.</p>";
var _mZoomIn = "Aumentar Zoom";
var _mZoomOut = "Diminuir Zoom ";
var _mZoomSet = "Clique para determinar o zoom";
var _mZoomDrag = "Arraste para determinar o zoom";
var _mPanWest = "Esquerda";
var _mPanEast = "Direita";
var _mPanNorth = "Para cima";
var _mPanSouth = "Para baixo";
var _mLastResult = "Volta a primeira página";
var _mMapCopy = "&#169;2007";
var _mSatelliteCopy = "&#169;2007 ";
var _mGoogleCopy = "&#169;2007 Google";
var _mKilometers = "km";
var _mMiles = "mi";
var _mMeters = "m";
var _mFeet = "ft";
var _mPreferMetric = true;
var _mUsePrintLink = 'To see all the details that are visible on the screen,use the "Print" link next to the map.';
var _mAutocompleteFrom = 'from';
var _mAutocompleteTo = 'to';
var _mAutocompleteNearRe = '^(?:(?:.*?)&#92;s+)(?:(?:in|near|around|close to):?&#92;s+)(.+)$'; 

GLoadMapsScript();
var map;
var map= null;
var moving = false;
var IE = document.all ? true : false;
var mm= null;
var side_bar_html = "";
var maps= null;
var mType = 0;
var gmarkers = [];
var htmls = [];
var TEMPI = [];
var largu = 200;
var altur = 190;
var gmarkersA = [];var gmarkersB = [];var gmarkersC = [];var gmarkersD = [];var gmarkersE = [];var gmarkersF = []; var gmarkersG = []; var gmarkersH = [];var gmarkersI = [];var gmarkersJ = [];    
var cidadeA = [];var cidadeB = [];var cidadeC = [];var cidadeD = [];var cidadeE = [];var cidadeF = []; var cidadeG = []; var cidadeH = [];var cidadeI = [];var cidadeJ = [];
var temperA = [];var temperB = [];var temperC = [];var temperD = [];var temperE = [];var temperF = []; var temperG = []; var temperH = [];var temperI = [];var temperJ = [];
var modoA = [];var modoB = [];var modoC = [];var modoD = [];var modoE = [];var modoF = []; var modoG = []; var modoH = [];var modoI = [];var modoJ = [];
var codA = [];var codB = [];var codC = [];var codD = [];var codE = [];var codF = []; var codG = []; var codH = [];var codI = [];var codJ = [];
var htmlsA = [];var htmlsB = [];var htmlsC = [];var htmlsD = [];var htmlsE = [];var htmlsF = []; var htmlsG = []; var htmlsH = [];var htmlsI = [];var htmlsJ = [];
 // The allowed region which the whole map must be within
var allowedBounds = new GLatLngBounds(new GLatLng(-27.92,-53.04), new GLatLng(-19.09,-42.15));



function hookMouseWheelToZoom(mapobj, map) {
		function wheelZoom(a) { (a.detail || -a.wheelDelta) < 0 ? map.zoomIn() : map.zoomOut(); }
		GEvent.addDomListener(mapobj, "DOMMouseScroll", wheelZoom); 
		GEvent.addDomListener(mapobj, "mousewheel", wheelZoom); 
}


function getWeatherIcon(i,j) {
       // if (!TEMPI[i]) {
        	var icon = new GIcon();
        	icon.image = "/google/imagens/temp/" + i + ".png";
        	icon.iconAnchor = new GPoint(30, 20);
        	icon.infoWindowAnchor = new GPoint(30, 0);
        	icon.iconSize = new GSize(30, 20);
		    icon.shadow = "/google/imagens/prev2/mini-" + j + ".png";
		    icon.shadowSize = new GSize(35,35);
        	TEMPI[i] = icon;
      	//}
      	return TEMPI[i];
}

//Funcao para criar o marcador
function createMarker(point, cod, icon,modo) {
		var marker = new GMarker(point,icon);
		GEvent.addListener(marker, "click", function() {
			var html = "<iframe scrolling=\'no\' src=\'/google/mapas.php?cid="+cod+"&lat="+point.y+"&lon="+point.x+"\' width=\'230\' height=\'150\' frameborder=\'0\'> </iframe>";
			marker.openInfoWindowHtml(html);
		});
               return marker;
}
      
function myclick(j,l) {
        if ( l == 0 ) {	gmarkersA[j].openInfoWindowHtml(htmlsA[j]); }
		if ( l == 1 ) {	gmarkersB[j].openInfoWindowHtml(htmlsB[j]); }
		if ( l == 2 ) {	gmarkersC[j].openInfoWindowHtml(htmlsC[j]); }
		if ( l == 3 ) {	gmarkersD[j].openInfoWindowHtml(htmlsD[j]); }
		if ( l == 4 ) {	gmarkersE[j].openInfoWindowHtml(htmlsE[j]); }
		if ( l == 5 ) {	gmarkersF[j].openInfoWindowHtml(htmlsF[j]); }
		if ( l == 6 ) {	gmarkersG[j].openInfoWindowHtml(htmlsG[j]); }
		if ( l == 7 ) {	gmarkersH[j].openInfoWindowHtml(htmlsH[j]); }
		if ( l == 8 ) {	gmarkersI[j].openInfoWindowHtml(htmlsI[j]); }
}

function checkBounds() {
        // Perform the check and return if OK
        if (allowedBounds.contains(map.getCenter())) {
          return;
        }
        // It`s not OK, so find the nearest allowed point and move there
        var C = map.getCenter();
        var X = C.lng();
        var Y = C.lat();

        var AmaxX = allowedBounds.getNorthEast().lng();
        var AmaxY = allowedBounds.getNorthEast().lat();
        var AminX = allowedBounds.getSouthWest().lng();
        var AminY = allowedBounds.getSouthWest().lat();

        if (X < AminX) {X = AminX;}
        if (X > AmaxX) {X = AmaxX;}
        if (Y < AminY) {Y = AminY;}
        if (Y > AmaxY) {Y = AmaxY;}
        //alert ("Restricting "+Y+" "+X);
        map.setCenter(new GLatLng(Y,X));
	  }
	  
function rodovia(binario,bes,cor){
        var encodedPoints = binario;
        var encodedLevels = bes;
        encodedPolyline = new GPolyline.fromEncoded({
		color: cor,
		weight: 8,
		points: encodedPoints,
		levels: encodedLevels,
		zoomFactor: 32,
		numLevels: 4
	});
		return encodedPolyline;
}
	  
	  
function onLoad(lati,loni) {	
	if (GBrowserIsCompatible()) {

      //Mostra a mensagem de Carregando
     var om = new OverlayMessage(document.getElementById('map'));      
     om.Set('<b>Carregando...</b>');
     // Criar as figuras dos marcadores
       
	 // Le os marcadores de um XML
      GDownloadUrl("/google/xml/rodovias_prev.xml", function (doc) {
        		
        var xmlDoc = GXml.parse(doc);
	    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
	
          
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lon"));
	      var tmp = parseFloat(markers[i].getAttribute("tmp"));
	      var tsi = markers[i].getAttribute("ico");
          var point = new GLatLng(lat,lng);
          var cid = markers[i].getAttribute("cid");
          var tipo = parseInt(markers[i].getAttribute("tipo"));
          var modo = markers[i].getAttribute("tipo2");
          var cod = markers[i].getAttribute("cod");
          // split the markers into four arrays, with different GIcons
         
		 if (tipo == 0) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
          	 gmarkersA.push(marker);cidadeA.push(cid);temperA.push(tmp);modoA.push(modo);codA.push(cod);
		  }
         if (tipo == 1) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
          	 gmarkersB.push(marker);cidadeB.push(cid);temperB.push(tmp);modoB.push(modo);codB.push(cod);
          }
		 if (tipo == 2) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
          	 gmarkersC.push(marker);cidadeC.push(cid);temperC.push(tmp);modoC.push(modo);codC.push(cod);
          }
		 if (tipo == 3) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
             gmarkersD.push(marker);cidadeD.push(cid);temperD.push(tmp);modoD.push(modo);codD.push(cod);
          }
		  if (tipo == 4) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
             gmarkersE.push(marker);cidadeE.push(cid);temperE.push(tmp);modoE.push(modo);codE.push(cod);
          }
		   if (tipo == 5) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
             gmarkersF.push(marker);cidadeF.push(cid);temperF.push(tmp);modoF.push(modo);codF.push(cod);
          }
		   if (tipo == 6) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
             gmarkersG.push(marker);cidadeG.push(cid);temperG.push(tmp);modoG.push(modo);codG.push(cod);
          }
		  if (tipo == 7) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
             gmarkersH.push(marker);cidadeH.push(cid);temperH.push(tmp);modoH.push(modo);codH.push(cod);
          }
		  if (tipo >= 8) {
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
             gmarkersI.push(marker);cidadeI.push(cid);temperI.push(tmp);modoI.push(modo);codI.push(cod);
          }
        }

        // Mostra o mapa e os controles
		var mapobj = document.getElementById("map");
        map = new GMap2(mapobj);
		var mt = map.getMapTypes();
        for (var i=0; i<mt.length; i++) {
            mt[i].getMinimumResolution = function() {return 7;}
            mt[i].getMaximumResolution = function() {return 17;}
        }
		map.addControl(new GSmallMapControl());
		
				// Add a move listener to restrict the bounds range
      GEvent.addListener(map, "move", function() {
	      checkBounds();
      });
		
	hookMouseWheelToZoom(mapobj, map);
    map.setCenter(new GLatLng(lati, loni), 7);
	
	// Faz o mapa clicável para qualquer cidade 
	GEvent.addListener(map, 'dblclick', function(overlay,point){
		if (point != null){
			var html = "<iframe scrolling=\'no\' src=\'/google/mapas.php?cid=prox&lat="+point.y+"&lon="+point.x+"\' width=\'230\' height=\'150\' frameborder=\'0\'> </iframe>";
			if(point){map.openInfoWindowHtml(point,html);
			}
		}
	});
	GDownloadUrl("/google/xml/rssrodovias.xml", function(data, responseCode) {
		  var xml = GXml.parse(data);
		  var markers2 = xml.documentElement.getElementsByTagName("marker");
		  for (var o = 0; o < markers2.length; o++) {
		          var binario = markers2[o].getAttribute("binario");
				  var bes = markers2[o].getAttribute("bes");
				  var cor = markers2[o].getAttribute("cor");
				  var rod = markers2[o].getAttribute("rod");
				  map.addOverlay(rodovia(binario,bes,cor));
		  }
	});
	//Faz os pontos diferenciados por Zoom
	var mm = new GMarkerManager(map, {borderPadding:1});
        mm.addMarkers(gmarkersA,10,17);
        mm.addMarkers(gmarkersB,9,17);
		mm.addMarkers(gmarkersC,8,17);
		mm.addMarkers(gmarkersD,7,17);
		mm.addMarkers(gmarkersE,6,17);
		mm.addMarkers(gmarkersF,5,17);
		mm.addMarkers(gmarkersG,4,17);
		mm.addMarkers(gmarkersH,3,17);
		mm.addMarkers(gmarkersI,1,17);
	mm.refresh();
	
	om.Clear();
	});
    }

    // display a warning if the browser was not compatible
    else {
      alert("Seu Navegador não é compatível");
    }
}
