// JavaScript Document

// definizione delle icone dei marcatori
var markers_green = new GIcon();
markers_green.image = "http://eventi.mercurius.it/images/markers_green.png";
markers_green.iconSize = new GSize(21, 31);
markers_green.iconAnchor = new GPoint(6, 20);
markers_green.infoWindowAnchor = new GPoint(5, 1);
markers_green.shadow = "http://eventi.mercurius.it/images/shadow.png";
markers_green.shadowSize = new GSize(52, 29);

var markers_orange = new GIcon();
markers_orange.image = "http://eventi.mercurius.it/images/markers_orange.png";
markers_orange.iconSize = new GSize(21, 31);
markers_orange.iconAnchor = new GPoint(6, 20);
markers_orange.infoWindowAnchor = new GPoint(5, 1);
markers_orange.shadow = "http://eventi.mercurius.it/images/shadow.png";
markers_orange.shadowSize = new GSize(52, 29);

var markers_blue = new GIcon();
markers_blue.image = "http://eventi.mercurius.it/images/markers_blue.png";
markers_blue.iconSize = new GSize(21, 31);
markers_blue.iconAnchor = new GPoint(6, 20);
markers_blue.infoWindowAnchor = new GPoint(5, 1);
markers_blue.shadow = "http://eventi.mercurius.it/images/shadow.png";
markers_blue.shadowSize = new GSize(52, 29);

var InfoWindowOpts = { 
	     "maxWidth": 400
		};	

var map = null;
var mgr = null;
var geocoder = null;
var oPoint = [];
var gmm = null;
var ovcontrol = null; 

var batch_location = [];

function setupMap() {
  if (GBrowserIsCompatible()) {
  
	
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl());	
	//map.setCenter(new GLatLng(48.25, 11.00), 4);
	map.setCenter(new GLatLng(43.67,12.65), 5);
	
	map.enableDoubleClickZoom();

	GEvent.addListener(map, "click", Listener_Click );	
	
	//geocoder = new GClientGeocoder();
	mgr = new MarkerManager(map);
	
	//window.setTimeout(setupMarkers, 0);
	setupMarkers()
	mgr.refresh()
	
  }
}


function Listener_Click(marker, point) {
	// funzione richiamata al click sul markert
	if (marker) {

	try {
  
		if ( map.getZoom() >= 10 ) {
			marker.openInfoWindowHtml( marker.winhtml , InfoWindowOpts );
			//gmm.refresh();
		} else {
			nZoom = map.getZoom()
			map.setCenter( marker.point, nZoom + 2 ); 
			gmm.refresh();
			marker.openInfoWindowHtml( marker.winhtml , InfoWindowOpts );
		}
	
	} catch(e) {
		//alert("Click su marker" + e.message);
	}
 
	
  } else {
    // map.addOverlay(new GMarker(point));
  }
}

function ListItemClick () {
	
	//alert( this.id); 
	//alert(oPoint[this.id].location)
	//alert( oPoint[this.id].winhtml )
	
	try {
			var nIdMarker = this.id
	
			map.setCenter(oPoint[nIdMarker].point, 12); // 15 vicino
			//gmm.refresh();
			
			//mgr.refresh();

			window.setTimeout( function() {
				oPoint[nIdMarker].openInfoWindowHtml( oPoint[nIdMarker].winhtml , InfoWindowOpts );
				}, 1200 );
			
			//alert( oPoint[this.id].point.toString() );
			//alert( "post-click" )
			//alert( map.fromLatLngToDivPixel( oPoint[this.id].point ) )
	
	} catch(e) {
		 alert(e.message);
	}

	return false;

}

function setLanLng( lanlng , marker_icon) {

	lanlng = lanlng.replace("(","[")
	lanlng = lanlng.replace(")","]")
	lanlng = eval(lanlng)

	var p = new GLatLng(lanlng[0],lanlng[1])

	var m = new GMarker( p , marker_icon )
	batch_location.push(m);
	
	mgr = new MarkerManager(map);
	mgr.addMarkers( batch_location, 3);
	mgr.refresh();

}

function setInfoWindowHtml( marker ){

	marker.ahtml = []
	marker.ahtml.push("<h4>" + marker.organizer + "</" + "h4>")
	marker.ahtml.push("<h5>" + marker.summary + "</" + "h5>")
	marker.ahtml.push("<div class='txt_data'>" + marker.dtstart + "</" + "div>")
	
	if ( marker.x_image.length > 0 ) {
		marker.ahtml.push("<img height='30' src='" + marker.x_image + "'>")
		}

	marker.ahtml.push("<br/><address>Indirizzo: " + marker.location + "</" + "address>")		
	if ( marker.x_detail.length > 0 ) {		
		marker.ahtml.push("<address>" + marker.x_detail + "</" + "address>")		
		} 
	
	marker.ahtml.push("<p>" + marker.description + "</" + "p>") 
	
	if ( marker.url.length > 0 ) {
		marker.ahtml.push("<a target='_blank' href='" + marker.url + "'>+ info su questo Evento</a> | ")
		}
		
	if ( marker.x_link.length > 0 ) {
		marker.ahtml.push("<a target='_blank' href='" + marker.x_link + "'>+ info su questo <strong>ENTE</strong></a><br/>")
		}
		
	marker.ahtml.push("<a href=\"javascript:ajax_evt_filter(oPoint['uid_" + marker.uid + "']);\"><b>TUTTI gli EVENTI</b> di questo Ente</a>")
	marker.ahtml.push("<br/><br/><br/><br/>") 

	return marker.ahtml.join("")

}


function showAddress( oEvt ) {
  
	lanlng = oEvt.x_lanlng

	lanlng = lanlng.replace("(","[")
	lanlng = lanlng.replace(")","]")
	lanlng = eval(lanlng)

	var point = new GLatLng(lanlng[0],lanlng[1])

	
	switch( oEvt.categories ) {

	  case "Fiere":
		marker_icon = markers_orange;
	  break; 

	  case "Aziende":
		marker_icon = markers_blue;
	  break; 
	  
	  case "Scuole":
		marker_icon = markers_green;
	  break; 

	  default:
		marker_icon = "";
	}

	
	var marker = new GMarker( point , marker_icon )
	batch_location.push(marker);
	
	marker.point = point
	marker.location = oEvt.location
	marker.summary = oEvt.summary
	marker.uid = oEvt.uid
	marker.title = oEvt.summary
	marker.description = oEvt.description
	marker.categories = oEvt.categories	
	marker.organizer = oEvt.organizer	
	marker.dtstart = oEvt.dtstart	
	marker.url = oEvt.url	
		
	marker.x_image = oEvt.x_image
	marker.x_link = oEvt.x_link
	marker.x_idscuola = oEvt.x_idscuola
	marker.x_detail = oEvt.x_detail
		
	marker.winhtml = setInfoWindowHtml( marker )
		
	oPoint['uid_' + marker.uid] = marker;

	
	mgr.addMarkers( batch_location, 3);
	//mgr.refresh();
	
		
	$("#uid_" + marker.uid).click( ListItemClick );
		

}	


function ajax_evt_filter( marker ) {
	$("#evt_listing").html("loading ...")
	var ajax_url = "http://eventi.mercurius.it/get_events.asp?id=" + marker.x_idscuola + "&o=" + marker.organizer;
	$("#evt_listing").load(  ajax_url , function() {
		//alert("ok"); 
		//$("#evt_listing li").click( ListItemClick );
		})
	
	$("#sidebar  h4").html( marker.organizer )
	
}