var mapPercorso;
var bounds;
var arrayMarkersPercorso = new Array(); 
var selectedMarkerPercorso;

function showPercorsoEnteFiera(map)		
{
	//precaricamento immagini
	pic1 = new Image(49, 55); 
	pic1.src = pathHttp + "immagini/icona_ente_fiera_percorso.png";

	//elementi di uso generale
	var divMappa = $(map);

	var arraySediFiera = $$('#linkMappaPercorso .sedeFiera');
	for(var i = 0; i < arraySediFiera.size(); i++)
	{
		var arrayDataSedeFiera = arraySediFiera[i].select('span.hiddenData');
		
		var latitudine = parseFloat(arrayDataSedeFiera[0].innerHTML);
		var longitudine = parseFloat(arrayDataSedeFiera[1].innerHTML);
		var testo = arrayDataSedeFiera[2].innerHTML;
		
		var point = new GLatLng(latitudine, longitudine);		
		
		//se l'icona è la prima disegno la mappa e la centro sulla sede fiera
		if(i == 0)
		{
			var dimensions = divMappa.getDimensions();
			mapPercorso = new GMap2(divMappa, { size: new GSize(dimensions.width, dimensions.height) } );
			mapPercorso.setMapType(G_NORMAL_MAP);
			mapPercorso.addControl(new GLargeMapControl3D());
			mapPercorso.setCenter(point, 15);
		}
		
		var label = '';
		if(arraySediFiera.size() > 1)
		{
			label = '' + (i + 1) + '';
		}
		
		showPointPercorso(point, testo, label);
	}
}

function showPointPercorso(point, text, label)
{
	//definizione icone
	var baseIconLarge = new GIcon();
	baseIconLarge.shadow = pathHttp + "immagini/shadow_large.png";
	baseIconLarge.iconSize = new GSize(49, 55);
	baseIconLarge.shadowSize = new GSize(60, 57);
	baseIconLarge.iconAnchor = new GPoint(24, 55);
	baseIconLarge.infoWindowAnchor = new GPoint(23, 0);
	baseIconLarge.infoShadowAnchor = new GPoint(23, 0);
	var iconaEnteFiera = new GIcon(baseIconLarge, pathHttp + "immagini/icona_ente_fiera_percorso.png", null, pathHttp + "immagini/shadow_large.png");	
	
	var markerOptions = { 
						  'icon': iconaEnteFiera,
						  'clickable': true,
						  'title': label, 
						  'labelText': label,
						  'labelClass': 'googleMapNumerazione',
						  'labelOffset': new GSize(-2, -26)
						};
	
	var marker = new LabeledMarker(point, markerOptions);
	mapPercorso.addOverlay(marker);

	arrayMarkersPercorso.push(marker);
	
	bounds = mapPercorso.getBounds();
	if(bounds)
	{
		bounds.extend(point);
		var zoom = mapPercorso.getBoundsZoomLevel(bounds); 
		var center = bounds.getCenter(); 
		mapPercorso.setCenter(center); 
		mapPercorso.setZoom(zoom);
	}
	
	GEvent.addListener(marker, "click", function() 
	{		
		marker.openInfoWindowHtml(text);
	});		
}

function apriFormPercorso(number)
{
	if($('indicazioniPercorso').visible())
	{
		$('indicazioniPercorso').hide();	
	}
	
	$$('.inputPercorso').each(function(div) { div.hide(); });
	$('inputPercorso' + number).show();
}

var flagShowPercorso = false;
var gdir;

function showPercorso(element)
{
	if(flagShowPercorso)	
	{
		return;
	}
	
	if(element.tagName.toLowerCase() == 'form')
	{
		var numeroSede = element.id.match(/formPercorso([0-9])/)[1];	
	}
	else
	{
		var parentEl = element.ancestors()[0];
		var numeroSede = parentEl.id.match(/formPercorso([0-9])/)[1];
	}
	
	selectedMarkerPercorso = numeroSede - 1;
	
	var from = $F('luogoPartenza' + numeroSede);
	var latitudine = parseFloat($F('latitudine' + numeroSede));
	var longitudine = parseFloat($F('longitudine' + numeroSede));
	
	flagShowPercorso = true;
	
	if('undefined' === typeof(gdir))
	{
		gdir = new GDirections(mapPercorso, $('indicazioniPercorso'));
		GEvent.addListener(gdir, "addoverlay", loadedPercorsoSedeFiera);
	}
	
	$$('.inputPercorso').each(function(div) { div.hide(); });
	$('indicazioniPercorso').show();
	
	gdir.clear();
	arrayMarkersPercorso[selectedMarkerPercorso].show();
	gdir.load("from: " + from + ' to: ' + latitudine + ',' + longitudine, { getPolyline: true});
}

function loadedPercorsoSedeFiera(direction)
{
	arrayMarkersPercorso[selectedMarkerPercorso].hide();
				
	var oldMarker = direction.getMarker(1);	
	
	var icon = arrayMarkersPercorso[selectedMarkerPercorso].getIcon();
	
	var label = '';
	if(arrayMarkersPercorso.size() > 1)
	{
		label = '' + (selectedMarkerPercorso + 1) + '';
	}
	
	var markerOptions = { 
						  'icon': icon,
						  "clickable": true,
						  'title': label,
						  'labelText': label,
						  'labelClass': 'googleMapNumerazione',
						  'labelOffset': new GSize(-2, -26)
						};	
	var newMarker = new LabeledMarker(oldMarker.getLatLng(), markerOptions);	
	mapPercorso.addOverlay(newMarker);
	
	var testo = $$('#linkMappaPercorso .sedeFiera')[selectedMarkerPercorso].select('span.hiddenData')[2];
	GEvent.addListener(newMarker, "click", function() 
	{
		newMarker.openInfoWindowHtml(testo);
	});	
	
	flagShowPercorso = false;
}