function seleziona_coordinate(form_passato, div, nome_lat, nome_long,nome_alt) {

	// creo la mappa
	var map = new GMap(document.getElementById(div));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl());
	map.enableScrollWheelZoom();
	
	// se latitudine e longitudine sono impostati centro la mappa
	if (form_passato[nome_lat].value > 0 && form_passato[nome_long].value > 0) {

		var point = new GPoint(form_passato[nome_long].value,
		form_passato[nome_lat].value); // Brescia
		map.centerAndZoom(point, 8);

		html = "";

		// creo il marker
		var newmarker = new GMarker(point);
		map.addOverlay(newmarker);

	} else {

		// imposto il default
		var point = new GPoint(10.224838, 45.539541); // Brescia
		map.centerAndZoom(point, 10);

	}

	//ALTRI PUNTI
	GEvent.addListener(map, 'click', function(overlay, point) {
		if (overlay) {

		} else if (point) {
			form_passato[nome_lat].value = point.y;
			form_passato[nome_long].value = point.x;

			var altitudine=get_altitudine(point.y,point.x);
			
			if(isNaN(altitudine))
			{
				altitudine="";
			}
			
			if(nome_alt!=null)
			{
				form_passato[nome_alt].value =altitudine;
			}
			
			map.clearOverlays();
			var newmarker = new GMarker(point);
			map.addOverlay(newmarker);
			map.setCenter(point);

		}
	});

}

function get_altitudine(lat,long)
{
	
	//faccio una richiesta al webservice google per caricare l'altitudine
	var altitudine="";
	var url='http://'+document.domain+'/altitudine/'+lat+'/'+long;


	new Ajax.Request(url, {
		asynchronous:false, 
		evalScripts:true,
		method: 'get',
		onSuccess: function(transport)
		{
			altitudine=transport.responseText;
		}
	});

	return  altitudine;
}


function cancella_ultimo_punto_traccia(form_passato, nome_campo_traccia) {
	var punti = form_passato[nome_campo_traccia].value;
	punti = punti.substring(0,punti.lastIndexOf("|"));
	punti = punti.substring(0,punti.lastIndexOf("|"));
	form_passato[nome_campo_traccia].value=punti;
}

function seleziona_traccia(form_passato, div, nome_campo_traccia) {

	// creo la mappa
	var map = new GMap(document.getElementById(div));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl());

	// imposto il default
	var point = new GPoint(10.224838, 45.539541); // Brescia
	map.centerAndZoom(point, 10);

	var punti = form_passato[nome_campo_traccia].value.split("|");
	var ultimo_punto = null;
	for ( var i = 0; i < punti.length; i++) {
		if (punti[i].length > 0) {
			if (ultimo_punto != null) {
				var punto_corrente = punti[i].split(";");
				map.addOverlay(new GPolyline( [
						new GLatLng(ultimo_punto[0], ultimo_punto[1]),
						new GLatLng(punto_corrente[0], punto_corrente[1]) ],
						"#ff0000", 2));
				map.panTo(new GLatLng(punto_corrente[0], punto_corrente[1]));
			}
		}
		ultimo_punto = punti[i].split(";");

	}
	

	// ALTRI PUNTI
	GEvent.addListener(map, 'click', function(overlay, point) {
		if (overlay) {

		} else if (point) {
			var nuovo_punto = point.y + ";" + point.x;

			// alert(form_passato[nome_campo_traccia].value);
			var punti = new Array();
			punti = form_passato[nome_campo_traccia].value.split("|");
			var ultimo_punto = new Array();
			for ( var i = 0; i < punti.length; i++) {
				if (punti[i].length > 0) {
					ultimo_punto = punti[i].split(";");
				}
			}
			if (ultimo_punto.length > 0) {
				if (ultimo_punto[0] != point.y && ultimo_punto[1] != point.x) {

					map.addOverlay(new GPolyline( [
							new GLatLng(ultimo_punto[0], ultimo_punto[1]),
							new GLatLng(point.y, point.x) ], "#ff0000", 2));
					
					map.panTo(new GLatLng(point.y,point.x));

				}

			}

			form_passato[nome_campo_traccia].value += nuovo_punto + "|";

		}
	});

}

