		$(function(){
			eventi_croazia();

			$('#traghetti').submit(function(){

				if ($('#partenza_select').val() == 'null')
				{
					alert('Selezionare un porto di partenza');
					return false;
				}
				if ($('#arrivo_select').val() == 'null')
				{
					alert('Selezionare un porto di arrivo');
					return false;
				}

				$("tratta:has(PORT_FROM:contains('" + $('#partenza_select').val() + "')) PORT_TO:contains('" + $('#arrivo_select').val() + "')", XML_ports_to_croazia).each( function () {

					// setto i valori nei campi nascosti
					compagnia = $(this).parent().children('compagnia').text();

					pp = $("FIELD:has(PORT_NAME:contains('" + $('#partenza_select').val() + "')) PORT_CODE",XML_ports_croazia).text();
					pa = $("FIELD:has(PORT_NAME:contains('" + $('#arrivo_select').val() + "')) PORT_CODE",XML_ports_croazia).text();

					$('#partenza').attr('value',pp);
					$('#arrivo').attr('value',pa);
					$('#compagnia').attr('value',compagnia);
				});
			});
		});

		var XML_ports_to_croazia;
		var XML_ports_croazia;

		function request(req_url, GET_data)
		{
			var XMLResponse;

			//mettiamo un random all'url
			req_url += '?rnd=' + Math.random();

			//tipo di richiesta
			REQ_type = "GET";

			//dati
			REQ_data = GET_data;

			//?xml? is an XML document object holding the returned XML
			$.ajax({async: false
					, type: REQ_type
				    , url: req_url
				    , data: REQ_data
				    , dataType: 'xml'
				    , success: function(xml){
				    	XMLResponse = xml; //mal che vada passare $(xml) che dovrebbe essere un oggetto jQuery con gli stessi nodi
				    	}
				    , timeout: 2000
				    , error: function(XMLHttpRequest, textStatus, errorThrown) {
					    //$('#debug').append('<div>errore ajax' + textStatus + errorThrown + '</div>');
					    XMLResponse = false;
				    }
					});
			return XMLResponse;
		}

		function eventi_croazia()
		{
			// ho dovuto aggirare il fatto che ci sono due porti con lo stesso codice

			//recupera dati in XML per i porti
			XML_ports_croazia = request('/files/getPorts.asp', '');

			$('#partenza_select').empty();

			$('FIELD',XML_ports_croazia).each(function () {

				port_name = $('PORT_NAME',this).text();

				option = $('<option value="' + port_name + '">' + port_name + '</option>');

				$('#partenza_select').append(option);
			});

			option = $('<option value="null">Seleziona...</option>');
			$('#partenza_select').append(option);

			// hack per IE6
			try
			{
				$('#partenza_select').val('null');
			}
			catch(e)
			{
				//niente
			}

			// carica le combinazioni possibili di viaggi
			XML_ports_to_croazia = request('/files/getPortsToAll.asp', '');

			//controlla la modifica del campo porto di partenza
			$('#partenza_select').change(function(){

				//togliamo tutte le option presenti
				$('#arrivo_select').empty();

				if ($(this).val() != '') //solo se ? stato scelto un porto di partenza
				{
					// prende tutti i PORT_TO che sono sibling di un PORT FROM che contiene il valore specificato
					$("PORT_FROM:contains('" + $(this).val() + "')",XML_ports_to_croazia).each( function () {

						// prendo il porto di destinazione (tag fratello di quello attuale) (modo brutto ma IE non capisce diversamente)
						port_code = $(this).parent().children("PORT_TO").text();
						port_name = $(this).parent().children("PORT_TO").text();

						//costruisco l'opzione
						option = $('<option value="' + port_code + '">' + port_name + '</option>');

						//e la inserisco nella selezione
						$('#arrivo_select').append(option);
					});
				}

				option = $('<option value="null">Seleziona...</option>');
				$('#arrivo_select').append(option);
			});

			$('#partenza_select').change();
		}
