// JavaScript Document

// JavaScript Document
var map;
var map= null;
var opacity= 0.5;
var pre1;
var pre= [];var pres= [];
var moving = false;
var IE = document.all ? true : false;
var mm= null;
var glo= null;
var ame=null;
var mapnuve=null;
var mapprec=null;
var maptmin=null;
var maptmax=null;
var side_bar_html = "";
var maps= null;
var mType = 0;
var gmarkers = [];
var insert1 = [];
var htmls = [];
var TEMPI = [];
var TRANI = [];
var DESTI = [];
var ALAGI = [];
var cor = [];
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 = [];


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];
}

function getAlagIcon(i,j) {
       // if (!TEMPI[i]) {
        	var icon = new GIcon();
        	icon.image = "/google/imagens/alag/" + j + ".png";
        	icon.iconAnchor = new GPoint(35, 35);
        	icon.infoWindowAnchor = new GPoint(35, 0);
        	icon.iconSize = new GSize(35, 35);
		    icon.shadow = "/google/imagens/prev2/mini-SD.png";
		    icon.shadowSize = new GSize(35,35);
        	ALAGI[i] = icon;
      	//}
      	return ALAGI[i];
}

function getTranIcon(i,j) {
       // if (!TEMPI[i]) {
        	var icon = new GIcon();
        	icon.image = "/google/imagens/tran/" + i + ".png";
        	icon.iconAnchor = new GPoint(50, 20);
        	icon.infoWindowAnchor = new GPoint(50, 0);
        	icon.iconSize = new GSize(50, 20);
		    icon.shadow = "/google/imagens/tran/" + j + ".png";
		    icon.shadowSize = new GSize(60,20);
        	TRANI[i] = icon;
      	//}
      	return TRANI[i];
}

function getDestIcon(i) {
       // if (!TEMPI[i]) {
        	var icon = new GIcon();
        	icon.image = "/google/imagens/dest/" + i + ".png";
        	icon.iconAnchor = new GPoint(16, 32);
        	icon.infoWindowAnchor = new GPoint(16, 0);
        	icon.iconSize = new GSize(32, 32);
		    icon.shadow = "/google/imagens/somabraestado.png";
		    icon.shadowSize = new GSize(59,32);
        	DESTI[i] = icon;
      	//}
      	return DESTI[i];
}

//Funcao para criar o marcador
function createMarker(point, cod, icon,modo) {
		var marker = new GMarker(point,icon);
		marker.mycategory = modo;                                 
        marker.myname = cod;
		GEvent.addListener(marker, "click", function() {
			if(modo == 'est' || modo == 'brasil'){
				var html = "<iframe scrolling=\'no\' src=\'/google/aero.php?cod="+cod+"&modo="+modo+"\' width=\'"+largu+"\' height=\'"+altur+"\' frameborder=\'0\'> </iframe>";
				marker.openInfoWindowHtml(html);
			}
			if(modo == 'prev'){
				var html = "<iframe scrolling=\'no\' src=\'/google/mapas.php?cid="+cod+"&lat="+point.y+"&lon="+point.x+"\' width=\'"+largu+"\' height=\'"+altur+"\' frameborder=\'0\'> </iframe>";
				marker.openInfoWindowHtml(html);
			}
			if(modo == 'tran'){
				var html = "<iframe scrolling=\'yes\' src=\'/google/tran.php?cod="+cod+"&modo="+modo+"\' width=\'350\' height=\'190\' frameborder=\'0\'> </iframe>";
				marker.openInfoWindowHtml(html);
			}
			if(modo == 'dest'){
				var html = "<iframe scrolling=\'no\' src=\'/google/dest.php?cod="+cod+"&modo="+modo+"\' width=\'200\' height=\'90\' frameborder=\'0\'> </iframe>";
				marker.openInfoWindowHtml(html);
			}
			if(modo == 'alag'){
				var html = "<iframe scrolling=\'no\' src=\'/google/alag.php?cod="+cod+"&modo="+modo+"\' width=\'200\' height=\'130\' frameborder=\'0\'> </iframe>";
				marker.openInfoWindowHtml(html);
			}
			
		});
		gmarkers.push(marker);
        return marker;
}


function show2(category) {
        for (var i=0; i<gmarkers.length; i++) {
			gmarkers[i].hide();
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].show();
          }
        }
		  if (category == "alag") {
            gmarkersA[0].hide();
			gmarkersA[2].hide();
			gmarkersA[1].show();
          } else {
			if (category == "chuv") {
    			gmarkersA[1].hide();
				gmarkersA[0].show();
				gmarkersA[2].show();
			} else {
				gmarkersA[2].hide();
				gmarkersA[1].hide();
				gmarkersA[0].show();				
			}
		  }
		  
		// == check the checkbox ==
        document.getElementById(category).checked = true;
      }
	  
	  
function hide2(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].hide();
          }
        }
		  if (category == "alag") {
			gmarkersA[0].show();
			gmarkersA[1].hide();
			gmarkersA[2].hide();
          } else {
		 	gmarkersA[2].hide();
			gmarkersA[1].hide();
			gmarkersA[0].show();
		  }
		  
		  
		// == clear the checkbox ==
        document.getElementById(category).checked = false;
        // == close the info window, in case its open on a marker that we just hid
        map.closeInfoWindow();
}

// == a checkbox has been clicked ==
function boxclick(box,category) {
        if (box.checked) {
          show2(category);
		//  controlaCamada(category+"1",'0');
		} else {
          hide2(category);
		//  controlaCamada(category+"1",'1');
        }
        // == rebuild the side bar
}

function myclick(i) {
      GEvent.trigger(gmarkers[i],"click");
}

function controlaCamada(nomeDiv,teste) {
    if( teste == "0" ) {
        document.getElementById(nomeDiv).style.visibility = "visible";
    } else {
        document.getElementById(nomeDiv).style.visibility = "hidden";
    }
}

function inserefig(nome,i,j,lt,ln) {
    var marker = new EInsert(new GLatLng(lt, ln), "/google/imagens/inse/"+nome+".png", new GSize(i,j), 9);
	marker.mycategory = nome;
	gmarkersA.push(marker);
    return marker;
}

function mudaestado(estado){
        if(estado=="observacao"){cor = "#18FF00";}
		if(estado=="atencao"){cor = "#F0FF00";}
		if(estado=="alerta"){cor = "#FF0006";}
		return cor;
}

function rodovia(binario,bes,cor,modo){
        var encodedPoints = binario;
        var encodedLevels = bes;
		var marker = new GPolyline.fromEncoded({
		color: cor,
		weight: 8,
		points: encodedPoints,
		levels: encodedLevels,
		zoomFactor: 32,
		numLevels: 4
	});
		marker.mycategory = modo;                                 
        marker.myname = 0;
		gmarkers.push(marker);
		return marker;
}

function onLoad() {	
	if (GBrowserIsCompatible()) {

     var om = new OverlayMessage(document.getElementById('map'));      
     om.Set('<b>Carregando...</b>');  
	 // Le os marcadores de um XML
      GDownloadUrl("/google/xml/rssestacoes.xml?"+Math.random(), function (doc) {
        		
        var xmlDoc = GXml.parse(doc);
	    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
	    var mapobj = document.getElementById("map");
        map = new GMap2(mapobj);
		var mt = map.getMapTypes();
      // Overwrite the getMinimumResolution() and getMaximumResolution() methods
     	for (var i=0; i<mt.length; i++) {
        	mt[i].getMinimumResolution = function() {return 9;}
	        mt[i].getMaximumResolution = function() {return 16;}
    	}
		
		map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
	    map.setCenter(new GLatLng(-23.54, -46.63), 10);
        
		
		map.setMapType(G_SATELLITE_MAP);
		var marker = inserefig("tran",963,598,-23.619361679019544,-46.46392822265625);
		map.addOverlay(marker);
		var marker = inserefig("alag",963,598,-23.619361679019544,-46.46392822265625);
		map.addOverlay(marker);
		var marker = inserefig("chuv",1673,1714,-23.579091596182867,-45.98602294921875);
		map.addOverlay(marker);
		gmarkersA[1].hide();
		gmarkersA[2].hide();
		//gmarkersA[2].makeDraggable();
		//GEvent.addListener(gmarkersA[2], "dragend", function (pt) {
        	//GLog.write("New position of insert = "+ pt.lat() + ","+pt.lng());
	    //});
		
        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
         
		  var marker = createMarker(point,cod,getWeatherIcon(tmp,tsi),modo);
       	  map.addOverlay(marker);
        }
		hide2("brasil");
		hide2("prev");

		GDownloadUrl("/google/xml/rsstransitogeral.xml?"+Math.random(), function(data, responseCode) {
		  var xml = GXml.parse(data);
		  var markers2 = xml.documentElement.getElementsByTagName("marker");
		  for (var o = 0; o < markers2.length; o++) {
		          var tipo = parseInt(markers2[o].getAttribute("tipo"));
				  var lat = parseFloat(markers2[o].getAttribute("lat"));
          		  var lng = parseFloat(markers2[o].getAttribute("lon"));
				  var cid = markers2[o].getAttribute("cid");
				  var rod = markers2[o].getAttribute("rod");
				  var km = parseFloat(markers2[o].getAttribute("km"));
				  var ten = markers2[o].getAttribute("ten");
				  var point = new GLatLng(lat,lng);
				  var modo = "tran";
				  var marker = createMarker(point,cid,getTranIcon(km,ten),modo);
				  map.addOverlay(marker);
		  }
		  hide2("tran");
		});
		
		GDownloadUrl("/google/xml/rssestados.xml?"+Math.random(), function(data, responseCode) {
		  var xml = GXml.parse(data);
		  var markers2 = xml.documentElement.getElementsByTagName("marker");
		  for (var o = 0; o < markers2.length; o++) {
		          var cid = markers2[o].getAttribute("cid");
				  var estado = markers2[o].getAttribute("estado");
				  if(cid != "Tiete" && cid != "Pinheiros"){
					  var tipo = parseInt(markers2[o].getAttribute("tipo"));
					  var lat = parseFloat(markers2[o].getAttribute("lat"));
        	  		  var lng = parseFloat(markers2[o].getAttribute("lon"));
					  var point = new GLatLng(lat,lng);
					  var modo = "dest";
					  var marker = createMarker(point,cid,getDestIcon(estado),modo);
					  map.addOverlay(marker);
				  } else {
					  var binario = markers2[o].getAttribute("binario");
					  var bes = markers2[o].getAttribute("bes");
					  var modo = "dest";
					  var marker = rodovia(binario,bes,mudaestado(estado),modo)
					  map.addOverlay(marker);
				  }
		  }
		  hide2("dest");
		});
		
		GDownloadUrl("/google/xml/rssalagamento.xml?"+Math.random(), function(data, responseCode) {
		  var xml = GXml.parse(data);
		  var markers2 = xml.documentElement.getElementsByTagName("marker");
		  for (var o = 0; o < markers2.length; o++) {
		          var tipo = parseInt(markers2[o].getAttribute("tipo"));
				  var lat = parseFloat(markers2[o].getAttribute("lat"));
          		  var lng = parseFloat(markers2[o].getAttribute("lon"));
				  var cid = markers2[o].getAttribute("cod");
				  var talag = parseFloat(markers2[o].getAttribute("talag"));
				  var ttran = markers2[o].getAttribute("ico");
				  var ten = markers2[o].getAttribute("ten");
				  var point = new GLatLng(lat,lng);
				  var modo = "alag";
				  var marker = createMarker(point,cid,getAlagIcon(talag,ttran),modo);
				  map.addOverlay(marker);
		  }
		  hide2("alag");
		});
		om.Clear();
	});
	  
    }

    // display a warning if the browser was not compatible
    else {
      alert("Seu Navegador não é compatível");
    }
}