// JavaScript Document
var map;
var targetPoint;
var insertTarget;
	window.onunload=function() {GUnload()}
	window.onload= function() {
	    if (GBrowserIsCompatible()) { 
		  map = new GMap2($("map"));
		  map.enableContinuousZoom();
		  map.enableDoubleClickZoom();
		  map.addControl(new GLargeMapControl(), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,10)));
		  map.addControl(new GOverviewMapControl());
		  map.setCenter(new GLatLng(44.4069294200622, 8.953514099121094), 13);
		  map.setMapType(G_HYBRID_MAP)
		if ($('simple')) {
			GEvent.addListener(map, "click", function(marker,point) {			
				 if (marker) {
					map.removeOverlay(marker);
				  } else {
					setMapPoint(point);
					
					setTimeout(function(){new Effect.ScrollTo('titlediv',{afterFinish:function() { if (!$('geopost_info')) {new Insertion.Before('titlediv', '<div id="geopost_info" style="background:#990000; margin:5px auto; color:#fff; padding:3px" onclick="Element.remove(this);">Completa l\'inserimento</div>'); new Effect.Highlight('contentarea')}}});},1200);
					if ($('simple')) Form.enable('simple');
					
				  }
				});
		}
		GEvent.addListener(map, "moveend", function() {
		  /*if ($('message')) {
			var center = map.getCenter();
		  	$("message").innerHTML = center.toString();
		  }*/
		});
		Event.observe('collapseButton','click',changeSize)
			if ($('simple')) Form.disable('simple');
			
		if (area=='home') xml2map();
		else if (area=='tag')	xml2map({tag:tagName});
		
		} else {	// display a warning if the browser was not compatible
		  alert("Spiacenti. Il tuo browser sembra non essere compatibile con le Google Maps ");
		}
	
	}   
		function xml2map(opt) {
		resetMap();	//clear Overlays
					//funzione che recupera dati da un xml e li printa a video
		limit = ((opt)&&(opt.limit)) ? 'limit='+opt.limit+'&' : '';
		tag = ((opt)&&(opt.tag)) ? 'tag='+opt.tag+'&' : '';
		
		rand = ((opt)&&(opt.rand)) ? 'rand=1&limit=1' : '';
		
		query= tag+rand+limit;
		//alert(query);
		
		
		GDownloadUrl("/wp-content/plugins/mappress/dataxml.php?"+query, function(data, responseCode) {
		//alert('loading');
		var xml = GXml.parse(data);
		  var markers = xml.documentElement.getElementsByTagName("marker");
		  for (var i = 0; i < markers.length; i++) {
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
									parseFloat(markers[i].getAttribute("lng")));
			var id = markers[i].getAttribute("id");
			var title = markers[i].getElementsByTagName("title");
			var href = markers[i].getElementsByTagName("href");
			var text = markers[i].getElementsByTagName("text");
			var content =  {
							title: title[0].firstChild.nodeValue,
							href: href[0].firstChild.nodeValue,
							text: text[0].firstChild.nodeValue
							};
			map.addOverlay(createMarker(point,content));
		  }
		});
		//alert('clicked');
	}
	function addPerimeter() {
		var perimetro = new GPolyline([
		new GLatLng(44.39598341535813, 8.943450450897217),	//P.zzle Kennedy
		new GLatLng(44.391996966619764, 8.95484447479248),	//Corso Italia
		new GLatLng(44.3959680833832, 8.952805995941162),	// Via Cesare Battisti
		new GLatLng(44.40383669143812, 8.954501152038574), // Piazza Alimonda
		new GLatLng(44.40668798616527, 8.946985602378845), // Stazione Brignole
		new GLatLng(44.40088944101547, 8.950145244598389),	// Corso Torino
		new GLatLng(44.39598341535813, 8.943450450897217)	// start again
		], "#FF0000", 10);
		map.addOverlay(perimetro);	
	}
	function addPointToMap(point) {
		marker = new GMarker(point);
		//map.setCenter(point, 16);
		map.addOverlay(marker);
	}
	function setMapPoint(point) {
		//document.forms[0].addr.value = "[" + point + "]";
		//_point=point.toString();
		$('addr').value= point.toString().replace('(','[').replace(')',']');
		map.clearOverlays();
		addPointToMap(point);
	}

	function changeSize() {
		$('map').style.height = ($('map').style.height == '450px') ? '300px' : '450px';
		$('collapseButton').firstChild.innerHTML = ($('collapseButton').firstChild.innerHTML == '+') ? '-' : '+';
		return false;
	}
	function generateRandomMarkers() {
		// Add 10 markers to the map at random locations
		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var lngSpan = northEast.lng() - southWest.lng();
		var latSpan = northEast.lat() - southWest.lat();
		
		temporaryOutput ='';
		
		for (var i = 0; i < 10; i++) {
		  var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
								  southWest.lng() + lngSpan * Math.random());
		  temporaryOutput +=point;
		  map.addOverlay(new GMarker(point));  
		}
		//$('navBar').innerHTML=temporaryOutput;
	}
  
	function resetMap() {
	  map.clearOverlays();
	}
 
	function createMarker(point,content) {
		var marker = new GMarker(point);
			marker.outputContent = '<div class="mapBaloon">';
				marker.outputContent += '<h1>'+content.title+'</h1>';
				content.text = (content.text.length<50) ? content.text : content.text.substring(0,49)+'...[continua]';
				marker.outputContent +='<p>'+content.text+'</p>';
				marker.outputContent +='<a href="'+content.href+'">Permanent Link</a>';
			marker.outputContent +='</div>';
			
			GEvent.addListener(marker, "click", function() {
			  marker.openInfoWindowHtml(marker.outputContent);
			});
		return marker;
	}
	
	function point2Array(xy) {
				c = new String(map.fromLatLngToDivPixel(xy));
				for(i=0;i<c.length;i++) {c = c.replace("(","");c = c.replace(")","");}
				c=c.split(", ");
		return [c[0], c[1]];
	}


