		var agt = navigator.userAgent.toLowerCase();
		var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
		
		var geocoder = new GClientGeocoder() ;
		var addrpnt;
		var iconI ;
		var map;
		 
		var marker_NE;
  		var marker_SW;		 
  		var icon_NE;
  		var icon_SW;
		var grow = 20;
		 		 
		var totMarker = 0;
		var markerData = [];
		var pnt_oasi = [];
		 
		var objRef = ['oasi'];
		var head = [];  
		
		var xmlDoc;
		var results;
		var indexResults;
		var objDiv;
		
		var base_point = new GLatLng( 42.07267491908098, 13.0078125);
		var upper_bound = new GLatLng( 45.018149626758614, 5.82275390625);
		var down_bound = new GLatLng( 36.0390313991155, 21.55517578125);
		var castelPorziano = new GLatLng(41.677747778849216, 12.386913299560547);
		var allowedBounds = new GLatLngBounds( upper_bound, down_bound);
		var minZoomScale = 6;
		var maxZoomScale = 13; 
		
		function initialize() {
		
			map = new GMap2(document.getElementById("map"));
			map.setCenter(base_point, 6, G_PHYSICAL_MAP);			
			map.addControl(new GScaleControl(300));			
			
			var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10, 40));
		    map.addControl(new GLargeMapControl3D(), pos);
			
			//var mini= new GOverviewMapControl(new GSize(200, 150));
			//map.addControl(mini);
	
			var ui = map.getDefaultUI();
			ui.controls = {largemapcontrol3d:false};
			ui.zoom = {scrollwheel:false};
			
			map.setUI(ui); 
			
			var mapTypes = map.getMapTypes();

			for (var i=0; i<mapTypes.length; i++) {
				mapTypes[i].getMinimumResolution = function() {return minZoomScale;}
				mapTypes[i].getMaximumResolution = function() {return maxZoomScale;}
			}
			
			map.clearOverlays();
			
			head['oasi'] = "Oasi WWF";
			
			var cp = new GMarker(castelPorziano, {draggable: false, title:  'CastelPorziano'});
			cp.getIcon().image = "images/images_oasi09/oasi_red.png";
			cp.getIcon().iconSize = new GSize(32, 32);
			map.addOverlay(cp);
			GEvent.addListener( cp, "mouseover", function() {
											
						html1 = "<table><tr><td><img src='images/images_oasi09/uploads/castel.jpg' border='0' width='100' height='100' /></td><td valign='top'><table><tr><td><strong class='titolo_brown'>";
			html1 += "Castelporziano";
			html1 += "</strong></td></tr><tr><td>Oasi per un giorno: il 19 aprile la tenuta presidenziale<br/> apre al pubblico eccezionalmente</td></tr><tr><td>Pagina Oasi : <a href='http://www.wwf.it/castelporziano.oasi";
			html1 += "' target='_blank'><strong>www.wwf.it/castelporziano.oasi</strong></a>";
			html1 += "</td></tr></table></td></tr></table>";
				
				//marker.openInfoWindowHtml(strInfo);
					cp.openInfoWindowTabsHtml([new GInfoWindowTab("L'Oasi", html1), new GInfoWindowTab("Aiutaci", "La natura ha bisogno di aiuto")]);
				});	
													
			GEvent.addListener( cp, "click", function() {
								map.setCenter( cp.getPoint(), 11);							
			});	
			
			//$('results').setStyle( { display: 'none' } );
			loadData();
			
			
		}
		
		function getValue( vobj) { 
			return vobj.childNodes[0].nodeValue;
		}
 
		function loadData() {
			GDownloadUrl("/client/data.xml", function(data, responseCode) {
  										
				markerData = [];
				
				var xml = GXml.parse(data);
				
				totMarker = 0;
				idx = 0;
				for( j = 0; j < objRef.length; j++) {
					
					var obj = xml.documentElement.getElementsByTagName( objRef[j]);
					
					for (var i = 0; i < obj.length; i++) {
						
						if( obj[i].getElementsByTagName('lat')[0]) {
							
							lat = getValue( obj[i].getElementsByTagName('lat')[0]); 
							lng = getValue( obj[i].getElementsByTagName('lng')[0]);
							var point = new GLatLng( parseFloat( lat), parseFloat( lng));
							name = getValue( obj[i].getElementsByTagName('nome')[0]);
							address = getValue( obj[i].getElementsByTagName('indirizzo')[0]);
							info = getValue( obj[i].getElementsByTagName('info')[0]);
							recapiti = getValue( obj[i].getElementsByTagName('recapiti')[0]);
							link = getValue( obj[i].getElementsByTagName('link')[0]);
							immagine = getValue( obj[i].getElementsByTagName('img')[0]);
						
							var lmarker = new GMarker(point, {draggable: false, title:  name});

							var ldata = [];
							ldata[0] = lmarker; 
							ldata[1] = name;
							ldata[2] = address;
							ldata[3] = info;
							ldata[4] = recapiti;
							ldata[5] = link;
							ldata[6] = immagine;
							
							idx = totMarker;
							markerData [ totMarker ++ ] = ldata;
							
							eval( 'pnt_' + objRef[j] + '[pnt_' + objRef[j] + '.length]=' + idx);		    										

							lmarker.property1 = idx;
							lmarker.property2 = objRef[j];
							lmarker.property3 = eval('pnt_' + objRef[j] + '.length -1');
							
							if( name == 'Lago di Alviano')
								lmarker.getIcon().image = "images/images_oasi09/segnaposto_blu.png";
							else if( name == 'Cratere degli Astroni')
								lmarker.getIcon().image = "images/images_oasi09/segnaposto_blu.png";
							else if( name == 'Valpredina')
								lmarker.getIcon().image = "images/images_oasi09/segnaposto_blu.png";
							else if( name == 'Bosco di Policoro')
								lmarker.getIcon().image = "images/images_oasi09/segnaposto_blu.png";
							else if( name == 'Monte Arcosu')
								lmarker.getIcon().image = "images/images_oasi09/segnaposto_blu.png";
							else
								lmarker.getIcon().image = "images/images_oasi09/" + objRef[j] + ".png";
							
							lmarker.getIcon().iconSize = new GSize(32, 32);
							
							map.addOverlay(lmarker);
							
							setUpMarker( lmarker);
				
						}    											
					}
				}																			
			});
		}
		
		function setUpMarker( mkr) {
			
			GEvent.addListener( mkr, "mouseover", function() {
											openInfoWin( mkr);
				});	
													
			GEvent.addListener( mkr, "click", function() {
								gotoArea( mkr);
								//showList( mkr.property2);					
			});		
		}
		
		function gotoArea( marker) {
		
			//alert( marker.getPoint().lat());
			map.setCenter( marker.getPoint(), 11);
		}
		
		function openInfoWin( marker) {
			
			idx = marker.property1;
			var datas = markerData [ idx];
			
			//var html = "<table><tr><td>" + datas[3] + "</td></tr><tr><td>&nbsp;</tr></tr><tr><td>" + datas[5] + "</td></tr></table>";			
			//marker.openInfoWindowHtml( html);
			imgPath = (datas[6].indexOf("\\") > 0 ? datas[6].substring( datas[6].lastIndexOf("\\") + 1) : datas[6]);
			
			html1 = "<table><tr><td><img src='images/images_oasi09/uploads/" +  imgPath + "' border='0' width='100' height='100' /></td><td valign='top'><table><tr><td><strong class='titolo_brown'>";
			html1 += datas[1]
			html1 += "</strong></td></tr><tr><td>" + datas[3] + "</td></tr><tr><td>Pagina Oasi : <a href='http://";
			html1 += datas[5] + "' target='_blank'><strong>" + datas[5] + "</strong></a>";
			html1 += "</td></tr></table></td></tr></table>";
				
				//marker.openInfoWindowHtml(strInfo);
			marker.openInfoWindowTabsHtml([new GInfoWindowTab("L'Oasi", html1), new GInfoWindowTab("Aiutaci", datas[4])]);
				
		}		
		
		function view( idx, type) {
			
			ptr = eval('pnt_' + type + '[' + idx + ']');
				
			if( ptr != -1) {
				
				resData = markerData[ ptr];
				map.panTo( resData[0].getPoint()); 
				openInfoWin( resData[0]);
			}
		}		
		
		function loadIndex() {
			
			// most current browsers support document.implementation
			if (document.implementation && document.implementation.createDocument) {
				xmlDoc = document.implementation.createDocument("", "", null);
				xmlDoc.load("/client/data.xml");
			}
			// MSIE uses ActiveX
			else if (window.ActiveXObject) {
				xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
				xmlDoc.async = "false";
				xmlDoc.load("/client/data.xml");
			}
		}
		
		function pause(millis) {
		
			var date = new Date();
			var curDate = null;

			do { curDate = new Date(); } 
			while(curDate-date < millis)
		} 
		
		function search() {
			
			document.getElementById("results").innerHTML = "";	
			
			if( !xmlDoc) {			
				loadIndex();				
			}
			
			var searchterm = document.getElementById("searchterm").value;

			results = [];
			indexResults = [];
			var allitems = [];

			for( j = 0; j < objRef.length; j++) {
				
				//if( document.getElementById(objRef[ j]).checked ) {
				
					obj = xmlDoc.getElementsByTagName( objRef[j]);
					var errIdx = 0;
					for( ii = 0; ii < obj.length; ii++ ) {
					
						allitems = obj[ii].getElementsByTagName("nome");					
						//alert('elementi : ' + allitems.length);
						for (var ix = 0; ix < allitems.length; ix++) {
							
							// see if the XML entry matches the search term,
							// and (if so) store it in an array
					
							var name = allitems[ix].lastChild.nodeValue;
							//alert( name);
							var exp = new RegExp( searchterm, "i");
					
							if ( name.match(exp) != null) {
								results.push( allitems[ix]);
								indexResults.push( ii );
							}
							errIdx = errIdx + 1 ;
						}	
					}
				//}
			}
						
			showResults(results, indexResults, searchterm);			
		}
		
		function showResults(results, indexResults, searchterm) {

			var resultshere = "";
			
			if (results.length > 0) {
				// if there are any results, put them in a list inside the "resultshere" div
				resultshere = document.getElementById("results");
				var header = document.createElement("h5");
				var list = document.createElement("ul");
				var p = document.createElement("p");
				
				var searchedfor = document.createTextNode("Hai cercato : " + searchterm);
				p.appendChild(searchedfor) 
				resultshere.appendChild(header);
				header.appendChild( p);
				resultshere.appendChild(list);
				
				for (var i=0;i<results.length;i++) {
					var listitem = document.createElement("li");
					var item = document.createTextNode(results[i].lastChild.nodeValue);
					var aSel = document.createElement("a");
					//aSel.href="#";
					aSel.href = "javascript:showRes('" + results[i].parentNode.nodeName  + "', " + indexResults[i] + ")";
					aSel.appendChild( item);
					//listitem.appendChild(item);	
					listitem.appendChild( aSel);
					list.appendChild(listitem);
					
				}
			} else {
				// else tell the user no matches were found
				resultshere = document.getElementById("results");
				var para = document.createElement("p");
				var notfound = document.createTextNode("Nessun risultato trovato per : "+searchterm +"!");
				para.appendChild(notfound);
				resultshere.appendChild(para);
				
				if( objDiv != undefined) objDiv.innerHTML = '';
			}
			
			$('results').setStyle( { display: '' } );
			
			if( is_ie) {
				
				var htmlstring = resultshere.innerHTML; 
				resultshere.innerHTML = htmlstring;	
			}
			
			ndim = $('res').getHeight();
			$('3d').setStyle( { top: ndim + 'px' } );
			xdim = ndim + 28;
			$('demo').setStyle( { height: xdim + 'px' } );			
		}
		
		function showRes( type, idx) {
						
			ptr = eval('pnt_' + type + '[' + idx + ']');
				
			if( ptr != -1) {
				
				resData = markerData[ ptr];
				map.panTo( resData[0].getPoint()); 
				openInfoWin( resData[0]);
				
				oe24TabMenu.toggleMenu($('3d'));
				//stat = 0;
				//$('demo').setStyle( { height: '40px' } );
			}
			
			//showList( type); Non c'e' Spazio nn viene mostrata la lista
		}
		
		var stat = 0;

		function testxxxss() {
			
			if( stat == 0) {
				alert('menu chiuso, adesso apro');
				stat = 1;
				ndim = $('res').getHeight();
				xdim = ndim + 28;
				$('demo').setStyle( { height: xdim + 'px' } );

			} else {
				alert('menu aperto, adesso chiudo');
				stat = 0;
				$('demo').setStyle( { height: '40px' } );
			}
			
		}

	