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

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

	// 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;

			map.clearOverlays();
			var newmarker = new GMarker(point);
			map.addOverlay(newmarker);
			map.setCenter(point);

		}
	});

}

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 + "|";

		}
	});

}
