<!--    
	var map = null;	
	var geocoder = null;
	var i;
	var j;
	var visibile;
	var limiti = null;
	var lines = [];
	var gru_cor = "all";
			
//Definisce le icone
    var icoTrova = new GIcon(); 
		icoTrova.image = 'simboli/mm_20_red.png';
		icoTrova.shadow = 'simboli/mm_20_shadow.png';
		icoTrova.iconSize = new GSize(12, 20);
		icoTrova.shadowSize = new GSize(22, 20);
		icoTrova.iconAnchor = new GPoint(6, 20);
		icoTrova.infoWindowAnchor = new GPoint(5, 1);
	var icoStaz = new GIcon();
		icoStaz.image = "simboli/verde.png";
		icoStaz.iconSize = new GSize(12, 12);
		icoStaz.iconAnchor = new GPoint(10, 6);
		icoStaz.infoWindowAnchor = new GPoint(9, 2);

	var gruppoSensore = { "all": [], "R": [], "T": [], "P": [], "U": [], "V": [], "D": [], "G": [], "N": [], "search": [] };
		
//Inizializza la mappa	
	function initialize() {
			var m_lat=45.7;
			var m_lon=10.2;
			var zoom_iniz=8;
			map = new GMap2(document.getElementById("map_canvas"));
			map.enableScrollWheelZoom();
			map.addMapType(G_PHYSICAL_MAP);
			map.setMapType(G_PHYSICAL_MAP);
			map.addControl(new GOverviewMapControl());
			map.addControl(new GScaleControl());
			map.setCenter(new GLatLng(m_lat, m_lon), zoom_iniz);
			limiti = map.getBounds();
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
			
		    map.addMapType(G_SATELLITE_3D_MAP);
			//map.addControl(new GHierarchicalMapTypeControl());

			// Uncomment the following line to start the map with 3D enabled.
			// map.setMapType(G_SATELLITE_3D_MAP);
          
			// Obtain a pointer to the Google Earth instance attached to
			// your map.
			map.getEarthInstance(getEarthInstanceCB);
    
			var ge;
			function getEarthInstanceCB(object) {
			ge = object;
			// You can now manipulate ge using the full Google Earth API.
			}				
    
			geocoder = new GClientGeocoder();
			geocoder.setBaseCountryCode("it")
		//Legge il file xml contenente le informazioni
		GDownloadUrl("xml/staz_lomb.xml", function(data) {
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				for (var i = 0; i < markers.length; i++) {
					var idstaz = markers[i].getAttribute("idstaz");
					var nome = markers[i].getAttribute("nome");
					var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
										    parseFloat(markers[i].getAttribute("lon")));
					var alt = String(markers[i].getAttribute("quota"));
					var sens = markers[i].getAttribute("sens");
					var marker = createMarker(point, idstaz, nome, alt, sens);
					if (visibile==true) {
					 map.addOverlay(marker);
					}
					else {
						marker.hide();
					}
				}
		});
		
		// Disegna contorno Lombardia in modo molto complicato ------------------------------------------------------------
		/**
		 * parseCsv()
		 * @return an array of GLatLng() objects
		 * @param opt_options object {lat, lng} integers defining the csv cells of coordinates (default: {lat:1, lng:0})
		 * @author Esa 2008
		 */
		String.prototype.parseCsv = function(opt_options){
		  var results = [];
		  var opts = opt_options||{};
		  var iLat = opts.lat||1;
		  var iLng = opts.lng||0;
		  var lines = this.split("\n");
		  for (var i=0; i<lines.length; i++) {
			var blocks = lines[i].split('"');
			//finding commas inside quotes. Replace them with '::::'
			for(var j=0;j<blocks.length;j++){
			  if(j%2){
				blocks[j]=blocks[j].replace(/,/g,'::::');
			  }
			}  //@author Esa 2008, keep this note.
			lines[i] = blocks.join("");
			var lineArray = lines[i].split(",");
			var lat = parseFloat(lineArray[iLat]);
			var lng = parseFloat(lineArray[iLng]);
			var point = new GLatLng(lat,lng);
			//after splitting by commas, we put hidden ones back
			for(var cell in lineArray){
			  lineArray[cell] = lineArray[cell].replace(/::::/g,',');
			} //corrupted line step-over
			if(!isNaN(lat+lng)){
			  point.textArray = lineArray;
			  results.push(point);
			}
		  }
		  return results;
		}

		/**
		 * csv formatted text files in the same domain
		 */
		var textFiles = [
		//  "badfile.txt",
		//  "pacman.txt",
		//  "worldaround.txt",
		//  "pitcairn.txt",
		//  "finlandborder.txt",
		//  "london_brighton.txt"
		  "xml/lonlat_lomb.txt"
		  ];
		  
		/**
		 * This function triggers the downloading and parsing of a selected text file by sidebar click
		 * options travel all the way to GPolyline/GPolygon
		 */
		function ajaxLoad(fileNumber,opt_options){
		  var opts = opt_options||{};
		//  map.clearOverlays();
		  var process = function(material){
			var polyPoints = material.parseCsv(opts);
			makeDrawing(polyPoints, opts);
		  }
		  GDownloadUrl(textFiles[fileNumber], process);
		}

		/**
		 * draw the polyline
		 * if fillOpa is defined, we draw polygon insted of polyline
		 */
		function makeDrawing(pnts, opt_options){
		  var opts = opt_options||{};
		  var color = opts.color||'#FF0000';
		  var weight = opts.weight||3;
		  var opa = opts.liOpa||0.7;
		  var fillColor = opts.fillColor||color;
		  if(opts.fillOpa){
			var poly = new GPolygon(pnts,color,weight,opa,fillColor,opts.fillOpa);
		  }else{
			var poly = new GPolyline(pnts,color,weight,opa);
		  }
		  map.addOverlay(poly);
		//  map.fit(poly.getBounds(),true); 
		}

		/**
		 * file #0 (lonlat_lomb.txt) called at page load. fillOpa defined makes it a polygon instead of polyline
		 * file number is the only mandatory parameter. See sidebar section above.
		 */
		//window.onload = ajaxLoad(0,{color:'red',fillOpa:0.5});
		window.onload = ajaxLoad(0,{color:'#FF0000'});
		// --- FINE disegno contorno Lombardia -------------------------------------------------------------------------------------	
	} //------ FINE funzione initialize()

	
	
//Funzione inutile (sta qui per usi futuri,... forse)
		function icone(){
		  	visibile=true;
		}	
//Funzione per la creazione dei marker e l'associazione di ciascun marker al suo grafico
		function createMarker(point, idstaz, nome, alt, sens) {
				icone ();
				var icon = new GIcon(icoStaz);
				var marker = new GMarker(point,{icon: icon, clickable:"true"});
//				var marker = new GMarker(point,{icon: icon, title: idstaz+' - '+nome+'  '+point+' , '+alt+'mslm',clickable:"true"});
//			Alimenta i raggruppamenti di stazioni a seconda dei sensori contenuti				
				gruppoSensore["all"].push(marker);
				if (sens.match("R")) {gruppoSensore["R"].push(marker);}
				if (sens.match("T")) {gruppoSensore["T"].push(marker);}
				if (sens.match("P")) {gruppoSensore["P"].push(marker);}
				if (sens.match("U")) {gruppoSensore["U"].push(marker);}
				if (sens.match("D")) {gruppoSensore["D"].push(marker);}
				if (sens.match("V")) {gruppoSensore["V"].push(marker);}
				if (sens.match("G")) {gruppoSensore["G"].push(marker);}
				if (sens.match("N")) {gruppoSensore["N"].push(marker);}
//			Attiva i "listeners"				
				GEvent.addListener(marker, "click", function crealink() {
					var w = 640;
					var h = 800;
					var l = Math.floor((screen.width-w));
					var t = 10;
					//var t = Math.floor((screen.height-h)/2);
					window.open("grafico.html?staz="+idstaz,"","width=" + w + ",height=" + h + ",top=" + t + ",left=" + l + ",scrollbars=yes,toolbar=no,status=no,location=no");
				});
				GEvent.addListener(marker, "mouseover", function() {
				  var infostaz = idstaz + ' - ' + nome + ' - Quota: ' + alt + 'm - ' + sens; //marker.getPoint();
					document.getElementById("informa").innerHTML = infostaz;
					//marker.openInfoWindowHtml("<b>" + cod + " - " + nome + "<br>  Quota: " + altezza + "m <br>" + marker.getPoint() + "</b>");
				});
			 	GEvent.addListener(marker, "mouseout", function() {
					document.getElementById('informa').innerHTML="<br>";
					//map.closeInfoWindow();
				});

				return marker;
		}

// Funzione per la visualizzazione di un solo gruppo di sensori		
    function visGroup(gruppo) {
		//rimuove il gruppo di sensori attualmente visualizzati
		for (var i = 0; i < gruppoSensore[gru_cor].length; i++) {
        var marker = gruppoSensore[gru_cor][i];
			map.removeOverlay(marker);
        }
		//aggiunge i sensori richiesti
		for (var i = 0; i < gruppoSensore[gruppo].length; i++) {
        var marker = gruppoSensore[gruppo][i];
			map.addOverlay(marker);
        }
		gru_cor = gruppo; //imposta come gruppo corrente il gruppo appena visualizzato,
		//ripristina i marker delle località ricercate dall'utente
		for (var j = 0; j < gruppoSensore["search"].length; j++) {
        var mark_search = gruppoSensore["search"][j];
			map.addOverlay(mark_search);
        }
    }	
	


	
//Funzione per la ricerca di località	
		function showAddress(address) {
			geocoder.setViewport(limiti);
			var indirizzo = address + ", Italia";
			if (geocoder) {geocoder.getLatLng (indirizzo, function(pt) {
				if (!pt) {
					alert(indirizzo + " : non esiste!");
				} else {
					var mark = new GMarker(pt,icoTrova);
					gruppoSensore["search"].push(mark);
					map.setCenter(pt, 8);
					//map.setZoom(9);
					map.addOverlay(mark);
					//map.panTo(pt);
					GEvent.addListener(mark, "click", function crealink() {
					mark.openInfoWindowHtml(address+"<br>lat: "+pt.lat()+"<br>lon: "+pt.lng());
					});
					mark.openInfoWindowHtml(address+"<br>lat: "+pt.lat()+"<br>lon: "+pt.lng());
				}
			}
			);
			}
		}
//-->