	//============================================================================
	//-                      Copyright © 2006 Maxxcom Sas                        -
	//-                           All rights reserved.                           -
	//-                                                                          -
	//-    Questo codice sorgente è protetto da copyright in base alle leggi e   -
	//-    ai trattati internazionali. L'uso non autorizzato, la riproduzione    -
	//-    parziale o totale, l'alterazione, la distribuzione di questo codice   -
	//-    sorgente saranno perseguite in sede penale e civile in ottemperanza   -
	//-    alle leggi esistenti. Sono soggette alle rispettive licenze freeware, -
	//-    GPL, LGPL o di altro tipo, le parti di codice sorgente acquisite da   -
	//-    terze parte anche senza il consenso scritto. In tal caso i nomi degli -
	//-    autori sono riportati a monte delle procedure utilizzate e/o incluse. -
	//-    Eventuali omissioni o errori potranno essere comunicati all'indirizzo -
	//-    email info@maxxcom.it per una pronta correzione e/o integrazione.     -
	//-                                                                          -
	//-    www.maxxcom.it                                                        -
	//============================================================================

	function ClearRoundTripFields() {
		var Ritorno = getObject("FL_Dataritorno");
		Ritorno.value = '';
	}

	function TravelType() {
		var Travelmode = getObject('FL_Travelmode');
		if (Travelmode.type == "hidden")
			return Travelmode.value;
		if (getObject('FL_Travelmode').checked)
			return "RT";
		else
			return "OW";
	}

	function FixReturnDate(cal) {
		if (typeof cal == "object") { cal.hide(); }
		var travel = TravelType();
		if (TravelType() == "RT") {
			var Andata = getObject('FL_Datapartenza');
			var Ritorno = getObject('FL_Dataritorno');
			if (Ritorno.value == '') { 
				Ritorno.value = Andata.value;
			} else {
		        var ret = isValidDate(Andata.value);
		        if (ret != 0) { 
                    Ritorno.value = Andata.value; 
                } else {
                    dt1 = (Andata.value.replace("-", "/")).split("/");
		            d1 = new Date(dt1[1] + "/" + dt1[0] + "/" + dt1[2]);
			        var ret = isValidDate(Ritorno.value);
		            if (ret != 0) { 
                        Ritorno.value = Andata.value; 
                    } else {
			            dt2 = (Ritorno.value.replace("-", "/")).split("/");
			            d2 = new Date(dt2[1] + "/" + dt2[0] + "/" + dt2[2]);
			            if (d2 < d1) { Ritorno.value = Andata.value; }
                    }
                }
            }
		}
	}

	function checkAirports() {
		var Departure  = getObject('FL_Departure').value;
		var Arrival    = getObject('FL_Arrival').value;
		if (Departure == '') {
			alert ("\nOccorre specificare la partenza!\n");
			return false;
		}
		else if (Arrival == '') {
			alert ("\nOccorre specificare la destinazione!\n");
			return false;
		}
		else if (Departure == Arrival) {
			alert ("\nPartenza e destinazione non possono coincidere!\n");
			return false;
		}
		return true;
	}

	function checkPassengers() {
		var adults  = getObject("FL_Adults").selectedIndex;
		var children  = getObject("FL_Children").selectedIndex;
		var passengers = adults + children;
		var infants = getObject("FL_Infants").selectedIndex;
		if (infants  > 0) {
			if (adults  <= 0) {
				alert("\nI bambini da 0 a 2 anni non compiuti non possono viaggiare da soli!\n");
				return false;
			}
			if (adults < infants){
				alert("\nIl numero dei bambini da 0 a 2 anni non deve eccedere quello dei passeggeri adulti!\n");
				return false;
			}
		}
		if (children > 0) {
			if (adults <= 0) {
				alert("\nI passeggeri con et\u00E1 inferiore a 12 anni devono essere accompagnati da un adulto!\n");
				return false;
			}
		}
		if (adults + children == 0) {
			alert("\nOccorre prenotare almeno un passeggero adulto o un ragazzo.\n");
			return false;
		}
		if (adults + children + infants > 50) {
			alert("\nSi possono specificare al massimo 50 passeggeri contemporaneamente.\n");
			return false;
		}
		return true;
	}

    //ritorna -1 se date1>date2, ritorna 1 se date1<date, ritorna 0 se date1=date2
	function compareDates(date1, date2) {
		var year1 = date1.getYear();
		var year2 = date2.getYear();
		var month1 = date1.getMonth();
		var month2 = date2.getMonth();
		var day1 = date1.getDate();
		var day2 = date2.getDate();
		if (year1 > year2) { return -1; }
		if (year2 > year1) { return 1; }
		if (month1 > month2) { return -1; }
		if (month2 > month1) { return 1; }
		if (day1 > day2) { return -1; }
		if (day2 > day1) { return 1; }
		return 0;
	}

	function HidePastDates(date) {
		var now = new Date();
		if (compareDates(now, date) < 0) {
			return (true);
		}
		return false;
	}

	// é = \u00E9	ì = \u00ED   ù = \u00F9   à = \u00E1  ò = \u00F3
	function checkDates(DaysToAdd){
		var Partenza = getObject("FL_Datapartenza");
   		var Ritorno = getObject("FL_Dataritorno");
        Partenza.value = AdjustDate(Partenza.value);
		if (Partenza.value == "") {
			alert('Occorre specificare una data valida per la partenza!\n');
			return false;
		}
		var ret = isValidDate(Partenza.value);
		if (ret != 0) {
			switch (ret) {
				case -1:
					alert("Il formato della data di partenza non \u00E9 valido!");
					break;
				case -2:
					alert("Il mese specificato per la data di partenza non \u00E9 valido!");
					break;
				case -3:
					alert("Il giorno specificato per la data di partenza non \u00E9 valido!");
					break;
				case -4:
					alert("Il giorno del mese specificato per la data di partenza non \u00E9 valido!");
					break;
				case -5:
					alert("L'anno specificato per la data di partenza non \u00E9 valido!");
					break;
				default:
					alert('Occorre specificare una data valida!');
			}
			Partenza.select();
			Partenza.focus();
			return false;
		}
		dt1 = (Partenza.value.replace("-", "/")).split("/");
		d1 = new Date(dt1[1] + "/" + dt1[0] + "/" + dt1[2]);
		ds = new Date;
        if (DaysToAdd != 0) { ds = AddDays(ds, DaysToAdd); }
		ds.setHours(0, 0, 0, 0);
		if (d1 < ds) {
            //if (DaysToAdd != 0)
    		//	alert('Le prenotazioni possono essere modificate solo fino al giorno prima della partenza!\n\n Negli altri casi occorre contattare il call-center.');
            //else
            if (DaysToAdd == 0)
			    alert('La data di partenza non pu\u00F3 essere antecedente alla data odierna!');
			//return false;
		}
		if (TravelType() == "RT") {
            Ritorno.value = AdjustDate(Ritorno.value);
			if (Ritorno.value == "") {
				alert('Occorre specificare una data valida per il ritorno!\n');
				return false;
			}
			var ret = isValidDate(Ritorno.value);
			if (ret != 0) {
				switch (ret) {
					case -1:
						alert("Il formato della data di ritorno non \u00E9 valido!");
						break;
					case -2:
						alert("Il mese specificato per la data di ritorno non \u00E9 valido!");
						break;
					case -3:
						alert("Il giorno specificato per la data di ritorno non \u00E9 valido!");
						break;
					case -4:
						alert("Il giorno del mese specificato per la data di ritorno non \u00E9 valido!");
						break;
					case -5:
						alert("L'anno specificato per la data di ritorno non \u00E9 valido!");
						break;
					default:
						alert('Occorre specificare una data valida per il ritorno!');
				}
				Ritorno.select();
				Ritorno.focus();
				return false;
			}
			dt2 = (Ritorno.value.replace("-", "/")).split("/");
			d2 = new Date(dt2[1] + "/" + dt2[0] + "/" + dt2[2]);
			if (d2 < d1) {
				alert('La data di ritorno non pu\u00F3 anticipare quella di partenza!');
				return false;
			}
		}
		else {
    		if (TravelType() != "RT" && Ritorno != null) Ritorno.value = '';
		}
		
		conferma = getObject("Cerca_voli");
		if (conferma != null) conferma.disabled = true;

		return true;
	}

  

	function submitForm() {
		return (checkAirports() && checkPassengers() && checkDates(0));
	}

	function submitFormUmnr() {
		return (checkAirports()  && checkDates(0));
	}

	function submitFormFixedPax() {
		return (checkAirports() && checkDates(1));
	}

	function submitFormPaxCC() {
		return (checkAirports());
	}
