// Imposto il numero minimo di notti
var numero_giorno_minimo = 4 ;
    
    
function init()
{    
  //alert('sono in Init');
  $.datePicker.setDateFormat('ymd', '-');
	
	$('input#datadal').datePicker();
	$('input#dataal').datePicker();
	
  ImpostaData();
    
  //alert('imposto i bind per il data dal');
	// Imposto l'azione da fare sull'evendo onChange per la data dal
	$('input#datadal').bind('change',function(){ changeDateDataPicker($("input#datadal"),"DAl"); });
	$('select#DDAnnoDAl').bind('change',function(){ changeDateSelect($("input#datadal"),"DAl"); });
	$('select#DDMeseDAl').bind('change',function(){ changeDateSelect($("input#datadal"),"DAl"); });
	$('select#DDGiornoDAl').bind('change',function(){ changeDateSelect($("input#datadal"),"DAl"); });
	
  //alert('imposto i bind per il data al');
	// Imposto l'azione da fare sull'evendo onChange per la data al
	$('input#dataal').bind('change',function(){ changeDateDataPicker($("input#dataal"),"Al"); });
	$('select#DDAnnoAl').bind('change',function(){ changeDateSelect($("input#dataal"),"Al"); });
	$('select#DDMeseAl').bind('change',function(){ changeDateSelect($("input#dataal"),"Al"); });
	$('select#DDGiornoAl').bind('change',function(){ changeDateSelect($("input#dataal"),"Al"); });

}


function Normalizza(stringa)
{
  if(stringa.toString().length < 2)
    return "0" + stringa;
  else
    return stringa;
}
    
    
    
function ImpostaData()
{
  
  //alert('Sono in Imposta Data');
  // Imposto la data di arrivo come data odierna
	var data_oggi = new Date();
	var data_oggi_format = data_oggi.getFullYear() + "-" + Normalizza(data_oggi.getMonth()+1) + "-" + Normalizza(data_oggi.getDate());
  
  $("input#datadal").val(data_oggi_format);
  changeDateDataPicker($("input#datadal"),"DAl");
  
  // Imposto la data di arrivo a distanza di "numero_giorno_minimo" dalla data odierna
  var data_domani = new Date(data_oggi.getFullYear(),data_oggi.getMonth(),data_oggi.getDate()+ numero_giorno_minimo );
	var data_domani_format = data_domani.getFullYear() + "-" + Normalizza(data_domani.getMonth()+1) + "-" + Normalizza(data_domani.getDate());
  $("input#dataal").val(data_domani_format);
  changeDateDataPicker($("input#dataal"),"Al");
}
		
		

function ImpostaDataArrivo()
{ 		  
  //alert('Sono in Imposta Data Arrivo');
  // Leggo i valori dei select per la data di arrivo
  anno = $("select#DDAnnoDAl").val();
  mese = $("select#DDMeseDAl").val()-1;
  giorno = $("select#DDGiornoDAl").val();
  
  // Calcolo il giorno di arrivo e creo una data valida per la data di arrivo
  giorno_successivo = Number( Number(giorno) + numero_giorno_minimo );
  var nuovaData = new Date(anno,mese,giorno_successivo);
  
  // Formatto la data di arrivo per inserirla nel campo text
  var data_domani_format = nuovaData.getFullYear() + "-" + Normalizza(nuovaData.getMonth()+1) + "-" + Normalizza(nuovaData.getDate());
	
	// Inserisco la data nel campo text e aggiorno i select
	$("input#dataal").val(data_domani_format);
  changeDateDataPicker($("input#dataal"),"Al");
}
			
			
			
function controlladate(datai,dataf)
{
  //alert('Sono in controlla date');
	var dd1=datai.split('/');
	var dd2=dataf.split('/');
	var data1= new Date(dd1[2],dd1[1]-1,dd1[0]);
	var dd1=data1.getTime();
	var data2= new Date(dd2[2],dd2[1]-1,dd2[0]);
	var dd2=data2.getTime();
	if (dd1>dd2)
		return false;
	else
		return true;
}
			
function controllaMinimoGiorni(datai,dataf)
{
  //alert('Sono in controlla minimo giorni');
	// Leggo i valori dei select per la data di arrivo
  anno = $("select#DDAnnoDAl").val();
  mese = $("select#DDMeseDAl").val()-1;
  giorno = $("select#DDGiornoDAl").val();
  
  anno_al = $("select#DDAnnoAl").val();
  mese_al = $("select#DDMeseAl").val()-1;
  giorno_al = $("select#DDGiornoAl").val();
  
  var data_al = new Date(anno_al,mese_al,giorno_al);
  
  // Calcolo il giorno minimo di arrivo senza che ci sia bisogno
  // di stampare il messaggio di alert
  giorno_minimo = Number( Number(giorno) + numero_giorno_minimo );
  var data_minima = new Date(anno,mese,giorno_successivo);
  
  if ( data_al < data_minima )
    return false;
  else
    return true;
}

function search(path,idlingua)
{
			
  //alert('Sono in search');
	IdNazione=document.Form1.DDNazione.value
	
	IdRegione=document.Form1.DDRegione.value
	
	IdLocalita=document.Form1.DDLocalita.value
	
	IdZona="0"
	
	IdOrdine="1"
	
	ggAl=document.Form1.DDGiornoAl.value
	mmAl=document.Form1.DDMeseAl.value
	aaAl=document.Form1.DDAnnoAl.value
	
	ggDal=document.Form1.DDGiornoDAl.value
	mmDal=document.Form1.DDMeseDAl.value
	aaDal=document.Form1.DDAnnoDAl.value
	
	DataDal=ggDal+"/"+mmDal+"/"+aaDal
	
	DataAl=ggAl+"/"+mmAl+"/"+aaAl
	
	NumeroPersone=document.Form1.DDPersona.value
	
	TipoRicerca="S"
	
	if(controlladate(DataDal,DataAl))
	{
		document.Form1.action= path + "default_new.aspx?&idLingua="+ idlingua +"&qstring="+IdNazione+"|"+IdRegione+"|"+IdLocalita+"|"+IdZona+"|"+IdOrdine+"|"+DataDal+"|"+DataAl+"|"+NumeroPersone+"|"+TipoRicerca+"|&CenterPage=frmCenter.aspx&qFunction=Ricerca";
		document.Form1.submit();
	}
	else
		alert("Departure date MUST be greater than Arrival date!");

}
			
			
	  
function CaricaSelect(annoFrom,annoTo)
{
  //alert('Sono in carica select');
  
  var data_oggi = new Date();
	var annoFrom = data_oggi.getFullYear();
	var annoTo = Number(Number(data_oggi.getFullYear())+1);
  
  // Riempio il combo degli anni
  for (i = annoFrom ;i<= annoTo ;i++)
  {
    $("#DDAnnoDAl").addOption(i, i);
  }

  // Riempio il combo dei mesi
  for (i=1;i<10;i++)
  {
    $("#DDMeseDAl").addOption("0"+i,"0"+i);
  }
  for (i=10;i<=12;i++)
  {
    $("#DDMeseDAl").addOption(i,i);
  }
 
  // Riempio il combo dei giorni
  for (i=1;i<10;i++)
  {
    $("#DDGiornoDAl").addOption("0"+i,"0"+i);
  }
  for (i=10;i<=31;i++)
  {
    $("#DDGiornoDAl").addOption(i,i);
  }

  // Copio i valori nel select per la data di arrivo
  
  $("#DDAnnoDAl").copyOptions("#DDAnnoAl", "all");
  $("#DDMeseDAl").copyOptions("#DDMeseAl", "all");
  $("#DDGiornoDAl").copyOptions("#DDGiornoAl", "all");
  
} 
	  


function changeDateDataPicker(obj,suffisso)
{ 
  //alert('Sono in changeDateDataPicker');
  // Aggiorno i select con i valori inseriti nel campo text
  $("#DDAnno"+suffisso).selectOptions(obj.val().substring(0,4), true);
  $("#DDMese"+suffisso).selectOptions(obj.val().substring(5,7), true);
  $("#DDGiorno"+suffisso).selectOptions(obj.val().substring(8,10), true);
  
  // Se sto manipolando la dataDAl aggiorno anche il campo DataAl 
  if (suffisso == "DAl")
    ImpostaDataArrivo();
}
		
		

function changeDateSelect(obj,suffisso)
{ 
  //alert('Sono in changeDateSelect');
  // Leggo i valori dei select 
  anno = $("select#DDAnno"+suffisso).val();
  mese = $("select#DDMese"+suffisso).val()-1;
  mmese = $("select#DDMese"+suffisso).val();
  giorno = $("select#DDGiorno"+suffisso).val();
  
  // Creo una variabile con la data odierna
  var dataOdierna = new Date();
  dataOdierna.setHours(0);
  dataOdierna.setMinutes(0);
  dataOdierna.setSeconds(0);
  dataOdierna.setMilliseconds(0);
  
  // Creo una variabile con la data letta nei select
  var nuovaData = new Date(anno,mese,giorno);
  
  // Verifico se la data inserita è successiva a quella odierna
  validate = (nuovaData >= dataOdierna);
  
  
  if (!validate)
  {
    // Se la data inserita è precedente segnalo l'errore
    alert("La data " + suffisso + " deve essere successiva a quella odierna");
    
    // Non aggiorno il campo text ma risistemo solamente i select
    changeDateDataPicker(obj,suffisso);
  }
  else
  {
    // Verifico se la data è formalmente corretta
    validate = ( (nuovaData.getFullYear() == anno) && (nuovaData.getMonth() == mese)  && (nuovaData.getDate() == giorno) );
    
    // Formatto la data per il campo di testo
    var data_format = anno + "-" + mmese + "-" + giorno;
    
    if (!validate)
    {
      // Se la data era sbagliata avviso l'utente
      alert("La data " + suffisso + " non è corretta");
      
      // Creo una data valida successiva a quella immessa dall'utente
      data_format = nuovaData.getFullYear() + "-" + Normalizza(nuovaData.getMonth()+1) + "-" + Normalizza(nuovaData.getDate())
      
      // Imposto il campo text ed aggiorno i select
      obj.val(data_format);
      changeDateDataPicker(obj,suffisso);
    }
    else
    {
      // Memorizzo nel campo text la data immessa nell'utente
      obj.val(data_format);
    }
  }
  
  // Se sto manipolando la dataDAl aggiorno anche il campo DataAl 
  if (suffisso == "DAl")
    ImpostaDataArrivo();
}




function RicaricaDate(data_dal_format,data_al_format)
{ 		  
  //alert('RicaricaDate '+ data_dal_format +'   ----->    '+data_al_format);  
	// Inserisco la data nel campo text e aggiorno i select
	$("input#datadal").val(data_dal_format);
  changeDateDataPicker($("input#datadal"),"DAl");
  
	$("input#dataal").val(data_al_format);
  changeDateDataPicker($("input#dataal"),"Al");
}