	//============================================================================
	//-                      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;
		}
		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 submitFormFixedPax() {
		return (checkAirports() && checkDates(1));
	}

	function submitFormPaxCC() {
		return (checkAirports());
	}



//cruscotto openvoucher
function SetDataFine(cal) 
{			if (typeof cal == "object") { cal.hide(); }
			var Andata = getObject('data_inizioVF');
			var Ritorno = getObject('OpenVoucher_data_fineVF');
			var giorni = getObject('OpenVoucher:n_giorniVF');
			if (Andata.value != '') { 
			dt1 = (Andata.value.replace("-", "/")).split("/");
			d1 = new Date(dt1[1] + "/" + dt1[0] + "/" + dt1[2]);
			var d2 =  AddDays(d1,giorni.value); 
		   Ritorno.innerHTML = " "+d2.getDate()+"/"+(d2.getMonth()+1)+"/"+ d2.getFullYear()+" ";
		  
		}
				}

 function expand()

  {
	var camere =  getObject('OpenVoucher:n_camereVF');
	camere= camere.value;
  if(camere==0){
		
		getObject('ncam1').innerHTML ='';
		getObject('ncam2').innerHTML ='';
		getObject('ncam3').innerHTML ='';
		getObject('titolo').innerHTML ='';
  }
  else
  {
		
	getObject('titolo').innerHTML ='<strong>Seleziona il tipo di camera da prenotare</strong><br>';
  }

  if(camere==1){

	getObject('ncam1').innerHTML ='<table cellspacing=1 cellpadding=1>'
								+'	<tr class="open_camere"><td><label for="camera1">Camera 1</label></td>'
								+'	<td><select name="camera1" id="camera1">'
								+'	<option value="">[scegliere il tipo di camera]</option>'
								+'	<option value="dps">Doppia uso singola (per 1 adulto)</option>'
								+'	<option value="dp">Doppia (per 2 adulti)</option>'
								+'	<option value="dpb">Doppia (per 1 adulto + 1 bambino 2-12 anni)</option>'
								+'	<option value="tp">Tripla (per 3 adulti)</option>'
								+'	<option value="tpb">Tripla (per 2 adulti + 1 bambino 2-12 anni)</option>'
								+'	<option value="tpbb">Tripla (per 1 adulto + 2 bambini 2-12 anni)</option></select></td></tr>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="letto1">Letto</label></tr></td>'
								+'	<td><select name="letti1" id="letti1">'
								+'	<option value="">[scegliere il tipo di letti]</option>'
								+'	<option value="m">Matrimoniale</option><option value="s">Letti separati</option></select></tr></td>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="infant1">Infant</label></td>'
								+'	<td><select name="infant1"><option value="">--</option>'
								+'	<option value="1">1</option><option value="2">2</option></select></td></tr>'
								+'	</table>';
	getObject('ncam2').innerHTML ='';
	getObject('ncam3').innerHTML ='';
  }

  if(camere==2){
  
	getObject('ncam1').innerHTML ='<table cellspacing=1 cellpadding=1>'
								+'	<tr class="open_camere"><td><label for="camera1">Camera 1</label></td>'
								+'	<td><select name="camera1" id="camera1">'
								+'	<option value="">[scegliere il tipo di camera]</option>'
								+'	<option value="dps">Doppia uso singola (per 1 adulto)</option>'
								+'	<option value="dp">Doppia (per 2 adulti)</option>'
								+'	<option value="dpb">Doppia (per 1 adulto + 1 bambino 2-12 anni)</option>'
								+'	<option value="tp">Tripla (per 3 adulti)</option>'
								+'	<option value="tpb">Tripla (per 2 adulti + 1 bambino 2-12 anni)</option>'
								+'	<option value="tpbb">Tripla (per 1 adulto + 2 bambini 2-12 anni)</option></select></td></tr>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="letto1">Letto</label></tr></td>'
								+'	<td><select name="letti1" id="letti1">'
								+'	<option value="">[scegliere il tipo di letti]</option>'
								+'	<option value="m">Matrimoniale</option><option value="s">Letti separati</option></select></tr></td>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="infant1">Infant</label></td>'
								+'	<td><select name="infant1"><option value="">--</option>'
								+'	<option value="1">1</option><option value="2">2</option></select></td></tr>'
								+'	</table><br/>';
getObject('ncam2').innerHTML =		'<table cellspacing=1 cellpadding=1>'
								+'	<tr class="open_camere"><td><label for="camera1">Camera 2</label></td>'
								+'	<td><select name="camera2" id="camera2">'
								+'	<option value="">[scegliere il tipo di camera]</option>'
								+'	<option value="dps">Doppia uso singola (per 1 adulto)</option>'
								+'	<option value="dp">Doppia (per 2 adulti)</option>'
								+'	<option value="dpb">Doppia (per 1 adulto + 1 bambino 2-12 anni)</option>'
								+'	<option value="tp">Tripla (per 3 adulti)</option>'
								+'	<option value="tpb">Tripla (per 2 adulti + 1 bambino 2-12 anni)</option>'
								+'	<option value="tpbb">Tripla (per 1 adulto + 2 bambini 2-12 anni)</option></select></td></tr>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="letto2">Letto</label></tr></td>'
								+'	<td><select name="letti2" id="letti2">'
								+'	<option value="">[scegliere il tipo di letti]</option>'
								+'	<option value="m">Matrimoniale</option><option value="s">Letti separati</option></select></tr></td>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="infant2">Infant</label></td>'
								+'	<td><select name="infant2"><option value="">--</option>'
								+'	<option value="1">1</option><option value="2">2</option></select></td></tr>'
								+'	</table><br/>';
	getObject('ncam3').innerHTML ='';
  }

  if(camere==3){
 
  	getObject('ncam1').innerHTML ='<table bgcolor="" cellspacing=1 cellpadding=1>'
								+'	<tr class="open_camere"><td><label for="camera1">Camera 1</label></td>'
								+'	<td><select name="camera1" id="camera1">'
								+'	<option value="">[scegliere il tipo di camera]</option>'
								+'	<option value="dps">Doppia uso singola (per 1 adulto)</option>'
								+'	<option value="dp">Doppia (per 2 adulti)</option>'
								+'	<option value="dpb">Doppia (per 1 adulto + 1 bambino 2-12 anni)</option>'
								+'	<option value="tp">Tripla (per 3 adulti)</option>'
								+'	<option value="tpb">Tripla (per 2 adulti + 1 bambino 2-12 anni)</option>'
								+'	<option value="tpbb">Tripla (per 1 adulto + 2 bambini 2-12 anni)</option></select></td></tr>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="letto1">Letto</label></tr></td>'
								+'	<td><select name="letti1" id="letti1">'
								+'	<option value="">[scegliere il tipo di letti]</option>'
								+'	<option value="m">Matrimoniale</option><option value="s">Letti separati</option></select></tr></td>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="infant2">Infant</label></td>'
								+'	<td><select name="infant2"><option value="">--</option>'
								+'	<option value="1">1</option><option value="2">2</option></select></td></tr>'
								+'	</table><br/>';
getObject('ncam2').innerHTML =	'<table cellspacing=1 cellpadding=1>'
								+'	<tr class="open_camere"><td><label for="camera1">Camera 2</label></td>'
								+'	<td><select name="camera2" id="camera2">'
								+'	<option value="">[scegliere il tipo di camera]</option>'
								+'	<option value="dps">Doppia uso singola (per 1 adulto)</option>'
								+'	<option value="dp">Doppia (per 2 adulti)</option>'
								+'	<option value="dpb">Doppia (per 1 adulto + 1 bambino 2-12 anni)</option>'
								+'	<option value="tp">Tripla (per 3 adulti)</option>'
								+'	<option value="tpb">Tripla (per 2 adulti + 1 bambino 2-12 anni)</option>'
								+'	<option value="tpbb">Tripla (per 1 adulto + 2 bambini 2-12 anni)</option></select></td></tr>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="letto2">Letto</label></tr></td>'
								+'	<td><select name="letti2" id="letti2">'
								+'	<option value="">[scegliere il tipo di letti]</option>'
								+'	<option value="m">Matrimoniale</option><option value="s">Letti separati</option></select></tr></td>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="infant2">Infant</label></td>'
								+'	<td><select name="infant2"><option value="">--</option>'
								+'	<option value="1">1</option><option value="2">2</option></select></td></tr>'
								+'	</table><br/>';
							getObject('ncam3').innerHTML ='<table cellspacing=1 cellpadding=1>'
								+'	<tr class="open_camere"><td><label for="camera1">Camera 3</label></td>'
								+'	<td><select name="camera3" id="camera3">'
								+'	<option value="">[scegliere il tipo di camera]</option>'
								+'	<option value="dps">Doppia uso singola (per 1 adulto)</option>'
								+'	<option value="dp">Doppia (per 2 adulti)</option>'
								+'	<option value="dpb">Doppia (per 1 adulto + 1 bambino 2-12 anni)</option>'
								+'	<option value="tp">Tripla (per 3 adulti)</option>'
								+'	<option value="tpb">Tripla (per 2 adulti + 1 bambino 2-12 anni)</option>'
								+'	<option value="tpbb">Tripla (per 1 adulto + 2 bambini 2-12 anni)</option></select></td></tr>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="letto3">Letto</label></tr></td>'
								+'	<td><select name="letti3" id="letti3">'
								+'	<option value="">[scegliere il tipo di letti]</option>'
								+'	<option value="m">Matrimoniale</option><option value="s">Letti separati</option></select></tr></td>'
								+'	<tr class="open_camere"><td>'
								+'	<label for="infant3">Infant</label></td>'
								+'	<td><select name="infant3"><option value="">--</option>'
								+'	<option value="1">1</option><option value="2">2</option></select></td></tr>'
								+'	</table><br/>';
							
    }

  }
  
function SubmitOpen()
 {


 datainizioVF= getObject('data_inizioVF').value;
 n_giorniVF= getObject('OpenVoucher:n_giorniVF').value;
 datafineVF= getObject('OpenVoucher_data_fineVF').value;
 n_camereVF= getObject('OpenVoucher:n_camereVF').value;
 stazione_arrivoVF = getObject('stazione_arrivoVF').value;
 stazione_partenzaVF= getObject('stazione_partenzaVF').value;
if (datainizioVF =='')
 { 	alert ("\nOccorre specificare la data di inizio del soggiorno!\n");
	return false;
 }
 if (n_giorniVF =='')
 {
 	alert ("\nOccorre specificare il numero di giorni  del soggiorno!\n");
	return false;
 }
 
 if (n_camereVF =='')
 {
 alert ("\nOccorre specificare il numero di camere da prenotare!\n");
	return false;
 }
// if (stazione_arrivoVF =='')
 //{
 //alert ("\nOccorre specificare il posto di ritiro dell'auto!\n");
//	return false;
 //}
 if (stazione_partenzaVF =='') 
 {
 if (stazione_arrivoVF !='')
  {
  alert ("\nOccorre specificare il posto di riconsegna dell'auto!\n");
	return false;
	}
 }
 
for (i=1; i<=n_camereVF; i++) {   
camera = getObject('camera' + i);
	if (camera == null)
	{
		  alert ("\nOccorre specificare il tipo di camera " + i +" da prenotare!\n");
		  return false;
	}
	else{
		if (camera.value =='' )
		{
		 alert ("\nOccorre specificare il tipo di camera " + i +" da prenotare!\n");
		return false;
		}
	 }
	letto = getObject('letti' + i);
	if (letto == null)
	{
		alert ("\nOccorre specificare il tipo di letto " + i +" da prenotare!\n");
		return false;
	 }
	else{
		if (letto.value =='' )
		{
		 alert ("\nOccorre specificare il tipo di letto " + i +" da prenotare!\n");
		return false;
		}
	}
} 

 datainizio= getObject('data_inizio'); 
 datainizio.value=datainizioVF;
   
  n_giorni= getObject('n_giorni'); 
  n_giorni.value=n_giorniVF;
  
  
  datafine= getObject('data_fine'); 
  datafine.value=datafineVF;
 
 
 n_camere= getObject('n_camere'); 
 n_camere.value=n_camereVF;
 
  stazione_arrivo= getObject('stazione_arrivo'); 
  stazione_arrivo.value=stazione_arrivoVF;
  
  stazione_partenza= getObject('stazione_partenza'); 
  stazione_partenza.value=stazione_partenzaVF;
  return true;


 
 }

 
 //Definizione Calendario
 $(document).ready(function() {
 
  
  
   $.datepicker.setDefaults($.extend({showMonthAfterYear: false}, $.datepicker.regional['it']));
				
					$("#data_inizioVF").datepicker({
						showOn: 'button', 
						buttonImage: 'images/icon_calender.gif', 
						buttonImageOnly: true,
	                    minDate: -0,
	                    onSelect: function() {			
                        		var Andata = $("#data_inizioVF");
								var Ritorno = getObject('OpenVoucher_data_fineVF');
								var giorni = getObject('OpenVoucher:n_giorniVF');
								//dt1 = (day.replace("-", "/")).split("/");
									//d1 = new Date(dt1[1] + "/" + dt1[0] + "/" + dt1[2]);
									var dtAndata =Andata.datepicker("getDate");
									var dtTemp=$.datepicker.formatDate('dd/mm/yy', dtAndata);
									var dt1 = dtTemp.split("/");
									d1 = new Date(dt1[1] + "/" + dt1[0] + "/" + dt1[2]);
									
									var d2 =  AddDays(d1,giorni.value); 
									Ritorno.innerHTML = " "+d2.getDate()+"/"+(d2.getMonth()+1)+"/"+ d2.getFullYear()+" ";
		  						}
		 
            });
            
   $.datepicker.setDefaults($.extend({showMonthAfterYear: false}, $.datepicker.regional['it']));
					$("#FL_Datapartenza").datepicker({
						showOn: 'button', 
						buttonImage: 'images/icon_calender.gif', 
						buttonImageOnly: true,
	                    minDate: -0,
	                    onSelect: function(dateText, inst){   
								var ObjDatapartenza= $("#FL_Datapartenza");
								var ObjDataritorno= $("#FL_Dataritorno");
								
                                var day =$("#FL_Datapartenza").datepicker("getDate");
                                 var dayRet="";
                                  	if (ObjDataritorno != null)
										{	
										  dayRet =$("#FL_Dataritorno").datepicker("getDate");
										}
                              
                                
                                var roundTripRT = $("#FL_Travelmode")[0];
                                //var roundTripOW = $("#FL_Travelmode")[1];
                               //alert(roundTripRT.checked);//var theNode = $('#myid')[0]; 
                              	if (roundTripRT != null)
										{	
											if (roundTripRT.checked)
											{	
												if (dayRet < day) 
													{	day.setDate(day.getDate());
														$("#FL_Dataritorno").datepicker('setDate' ,day);
													}
											}
										}
									else
										{	
											if (dayRet < day) 
											{	day.setDate(day.getDate());
												$("#FL_Dataritorno").datepicker('setDate' ,day);
											}
									}
									
                                
                                //if (dayRet < day) 
                                //{	day.setDate(day.getDate());
								//	$("#FL_Dataritorno").datepicker('setDate' ,day);
                                 //}
                                
								
                        }
            });
               
           $("#FL_Dataritorno").datepicker({
                        minDate: -0,
                        showOn: 'button', 
						buttonImage: 'images/icon_calender.gif',  
						buttonImageOnly: true
                });
					var Ritorno = getObject("FL_Dataritorno");
					if (Ritorno != null)
					{	
					 if (Ritorno.disabled)
					{	
					 $("#FL_Dataritorno").datepicker("disable");
					} 
         
					} 
					
	
  	}
); 

