var fromDate = new Date();
var now = new Date();

function disallowDatesFrom(date) 
{
  if( date.getYear() < now.getYear() ||
      date.getYear() == now.getYear() && date.getMonth() < now.getMonth() ||
      date.getYear() == now.getYear() && date.getMonth() == now.getMonth() && date.getDate() < now.getDate())
  
        return true;
      return false;
}
function disallowDatesTo(date)
{
  fromDate = new Date( 
      document.getElementById( "data_arrivo" ).value.substr( 0, 4 ),
      document.getElementById( "data_arrivo" ).value.substr( 5, 2 ) - 1,
      document.getElementById( "data_arrivo" ).value.substr( 8, 2 ) 
  );
  
  fromDate.setDate(fromDate.getDate()+1);
  
  if( date.getYear() < fromDate.getYear() ||
      date.getYear() == fromDate.getYear() && date.getMonth() < fromDate.getMonth() ||
      date.getYear() == fromDate.getYear() && date.getMonth() == fromDate.getMonth() && date.getDate() < fromDate.getDate()
    )
        
      return true;
    return false;
}
function disallowDatesTo2(date)
{
  fromDate = new Date( 
      document.getElementById( "data_inizio" ).value.substr( 6 ),
      document.getElementById( "data_inizio" ).value.substr( 3, 2 ) - 1,
      document.getElementById( "data_inizio" ).value.substr( 0, 2 ) 
  );
  
  if( date.getYear() < fromDate.getYear() ||
      date.getYear() == fromDate.getYear() && date.getMonth() < fromDate.getMonth() ||
      date.getYear() == fromDate.getYear() && date.getMonth() == fromDate.getMonth() && date.getDate() < fromDate.getDate() )
  
      return true;
    return false;
}

function attiva()
{
  document.getElementById('pwd').disabled=false;
}
function checkFile(file)
{  
  // controllo il tipo di file  
  ext = file.substr(file.lastIndexOf("."))+".";  
  perm = ".gif.jpg.jpeg.png.doc.pdf.ps.xls.ppt.tar.zip.bmp.txt.rtf.";			  
  
  if(perm.indexOf(ext.toLowerCase())<0)  
  {		
    alert("Estensione file non consentita\n\nEstensioni consentite: gif jpg jpeg bmp png doc pdf ps xls ppt tar zip txt rtf");		
    
    document.getElementById('allegato').value='';  
  }   
  else  {}
}
function checkIfIsImage(file)
{
  // controllo il tipo di file  
  ext = file.substr(file.lastIndexOf("."))+".";  
  perm = ".gif.jpg.jpeg.png";			  
  
  if(perm.indexOf(ext.toLowerCase())<0)  
  {		
    alert("Estensioni consentite: gif jpg jpeg png");		
    
    document.getElementById('immagine').value='';  
  }   
  else  {}
}
function checkForm(file)
{
  if (document.getElementById(file).value!="")
  {
    document.getElementById("load").style.display="block";
    return true;
  }
}
function trim(stringa)
{
  while (stringa.substring(0,1) == ' ')
  {
    stringa = stringa.substring(1, stringa.length);
  }
  while (stringa.substring(stringa.length-1, stringa.length) == ' ')
  {
    stringa = stringa.substring(0,stringa.length-1);
  }
  return stringa;
}
function is_integer(arg)
{
  var len = arg.length;
  var count=0;
  var Number=true;
        
  /* ciclo su tutti i caratteri e verifico */
  for( count=0; count<len; count++ )
  {
    /* leggo il carattere */
    if( arg.charAt( count ) < '0' || arg.charAt( count ) > '9' )
    {
      /* non e' un numero */
      Number=false;
      break;
    }
  }
  return Number
}
function check_mail(indirizzo) 
{
  if (window.RegExp) 
  {
    var nonvalido = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var valido = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
    var regnv = new RegExp(nonvalido);
    var regv = new RegExp(valido);
    
    if (!regnv.test(indirizzo) && regv.test(indirizzo))
      return true;
    return false;
  }
  else 
  {
    if(indirizzo.indexOf("@") >= 0 && indirizzo.indexOf(".") > indirizzo.indexOf("@"))
      return true;
    return false;
  }
}
function check_username(user)
{
  var pattern = /\W/i;
  var result = user.search(pattern);
        
  return result;
}
function check_data(data)
{
  var myRegex = /^\d{4}-\d{2}-\d{2}/;
 
  var result = myRegex.test(data);
  return result;
}
function checkModuloContatti(lang)
{
	var nome=document.getElementById("nome");
  var cognome=document.getElementById("cognome");
	var email=document.getElementById("email");
  var antispam=document.getElementById("code");
  
	if (trim(nome.value)=="")
  {
    if (lang=="it")
      alert("Nome richiesto");
    else alert("Name required");
    
    nome.focus();
    return false;
  }
  else if (trim(cognome.value)=="")
  {
    if (lang=="it")
      alert("Cognome richiesto");
    else alert("Surname required");
    
    cognome.focus();
    return false;
  }
  else if (trim(email.value)=="")
  {
    if (lang=="it")
      alert("Indirizzo email richiesto");
    else alert("Email address required");
    
    email.focus();
    return false;
  }
  else if (!check_mail(email.value))
  {
    if (lang=="it")
      alert("Formato indirizzo email errato");
    else alert("Wrong email address format");
    
    email.focus();
    return false;
  }
  else if (trim(antispam.value)=="")
	{
    if (lang=="it")
      alert("Devi inserire l'antispam");
    else alert("Antispam required");
		
    antispam.focus();
		return false;
	}
	else return true;
}
function checkFormPromozioni()
{
	var nome_it=document.getElementById("nome_it");
  var nome_en=document.getElementById("nome_en");
	var prezzo=document.getElementById("prezzo");
  
  if (trim(nome_it.value)=="")
  {
    alert("Devi inserire il nome della promozione in italiano");
    nome_it.focus();
    return false;
  }
  else if (trim(nome_en.value)=="")
  {
    alert("Devi inserire il nome della promozione in inglese");
    nome_en.focus();
    return false;
  }
  else if (trim(prezzo.value)=="")
  {
    alert("Devi inserire un prezzo");
    prezzo.focus();
    return false;
  }
  else if (!is_integer(prezzo.value))
  {
    alert("Il prezzo deve essere un numero intero positivo");
    prezzo.focus();
    return false;
  }
  else return true;
}
function checkFormSupplementiRiduzioni()
{
  var tipologia=document.getElementById("tipologia");
	var nome_it=document.getElementById("nome_it");
  var nome_en=document.getElementById("nome_en");
	var prezzo=document.getElementById("prezzo");
  
  if (trim(tipologia.value)=="")
  {
    alert("Devi selezionare la tipologia");
    tipologia.focus();
    return false;
  }
  else if (trim(nome_it.value)=="")
  {
    alert("Devi inserire il nome del supplemento/riduzione in italiano");
    nome_it.focus();
    return false;
  }
  else if (trim(nome_en.value)=="")
  {
    alert("Devi inserire il nome del supplemento/riduzione in inglese");
    nome_en.focus();
    return false;
  }
  else if (trim(prezzo.value)=="")
  {
    alert("Devi inserire un prezzo per notte");
    prezzo.focus();
    return false;
  }
  else if (!is_integer(prezzo.value))
  {
    alert("Il prezzo deve essere un numero intero positivo");
    prezzo.focus();
    return false;
  }
  else return true;
}
function checkFormRoom()
{
	var nome_it=document.getElementById("nome_it");
  
	if (trim(nome_it.value)=="")
  {
    alert("Campo Nome (italiano) obbligatorio");
    nome_it.focus();
    return false;
  }
  else 
  {
    if (document.getElementById('immagine').value!="")
      document.getElementById("load").style.display="block";
    return true;
  }
}
function codifica()
{
  if (document.getElementById('pwd').value!='')
    document.getElementById('pwd').value=SHA1(document.getElementById('pwd').value);
}
function checkDates(lang)
{
  if (document.getElementById('data_arrivo').value=='' || document.getElementById('data_partenza').value=='')
  { 
    if (lang=="it")
      alert('Inserisci check-in e check-out');
    else alert('Check-in date and check-out date required');
    
    document.getElementById('data_arrivo').value='';
    document.getElementById('data_partenza').value='';
    return false;
  } 
  else if (!check_data(document.getElementById('data_arrivo').value) || !check_data(document.getElementById('data_partenza').value))
  {
    if (lang=="it")
      alert('Formato data errato.\nFormato corretto yyyy-mm-dd');
    else alert('Wrong date format\nCorrect format is yyyy-mm-dd');
    
    document.getElementById('data_arrivo').value=''; 
    document.getElementById('data_partenza').value='';
    return false;
  }
  else if (document.getElementById('data_arrivo').value==document.getElementById('data_partenza').value)
  {
    if (lang=="it")
      alert('La data di arrivo deve essere antecedente a quella di partenza');
    else alert('Check-out date must be greater than check-in date');
    
    document.getElementById('data_arrivo').value=''; 
    document.getElementById('data_partenza').value='';
    return false;
  }
  else return true;
}
function checkIfSelectedRoom(lang)
{
  var select = document.modulo.getElementsByTagName("select"); 
  ok = false;
  
  for (var i = 0; i < select.length; i++) 
  {
    if (select[i].value!="0")
    {
      ok=true;
      break;
    }
  }
  
  if (!ok)
  {
    if (lang=="it")
      alert("Per favore seleziona una o piu' camere");
    else alert("Please select one or more rooms");
    
    return false;
  }
  else return true;
}
function checkFormBooking(lang)
{
  var name=document.getElementById("name");
  var surname=document.getElementById("surname");
  var email=document.getElementById("email");
  var repeat_email=document.getElementById("repeat_email");
  
  if (trim(name.value)=="")
  {
    if (lang=="it")
      alert("Nome richiesto");
    else alert("Name required");
    
    name.focus();
    return false;
  }
  else if (trim(surname.value)=="")
  {
    if (lang=="it")
      alert("Cognome richiesto");
    else alert("Surname required");
    
    surname.focus();
    return false;
  }
  else if (trim(email.value)=="")
  {
    if (lang=="it")
      alert("Indirizzo email richiesto");
    else alert("Email address required");
    
    email.focus();
    return false;
  }
  else if (!check_mail(email.value))
  {
    if (lang=="it")
      alert("Formato indirizzo email errato");
    else alert("Wrong email address format");
    
    email.focus();
    return false;
  }
  else if (trim(repeat_email.value)!=trim(email.value))
  {
    if (lang=="it")
      alert("I campi Indirizzo email e Conferma indirizzo email non corrispondono");
    else alert("Fields Email address and Confirm email address are must same");
    
    repeat_email.focus();
    return false;
  }
  else if (!document.formPrenotazione.pagamento[0].checked && !document.formPrenotazione.pagamento[1].checked)
  {
    if (lang=="it")
      alert("Seleziona un metodo di pagamento");
    else alert("Select a payment method");
    
    return false;
  }
  else if (document.getElementById('accept').checked==false)
  {
    if (lang=="it")
      alert("Per continuare devi accettare i termini e le condizioni di utilizzo spuntando la casella di controllo");
    alert("Please confirm you have read and accepted Privacy and Cancellation policies by ticking the box");
    
    document.getElementById('accept').focus();
    return false;
  }
  else return true;
}
function checkFormBooking2(lang)
{
  var data_arrivo=document.getElementById("data_arrivo2");
  var data_partenza=document.getElementById("data_partenza2");
  var rooms=document.getElementById("rooms");
  
  var name=document.getElementById("name");
  var surname=document.getElementById("surname");
  var email=document.getElementById("email");
  var repeat_email=document.getElementById("repeat_email");
  
  if (trim(data_arrivo.value)=="")
  {
    if (lang=="it")
      alert("Data di arrivo richiesta");
    else alert("Check-in required");
    
    data_arrivo.focus();
    return false;
  }
  else if (trim(data_partenza.value)=="")
  {
    if (lang=="it")
      alert("Data di partenza richiesta");
    else alert("Check-out required");
    
    data_partenza.focus();
    return false;
  }
  else if (trim(rooms.value)=="")
  {
    if (lang=="it")
      alert("Campo tipologia/e di camera/e richiesto");
    else alert("Type room/s required");
    
    rooms.focus();
    return false;
  }
  else if (trim(name.value)=="")
  {
    if (lang=="it")
      alert("Nome richiesto");
    else alert("Name required");
    
    name.focus();
    return false;
  }
  else if (trim(surname.value)=="")
  {
    if (lang=="it")
      alert("Cognome richiesto");
    else alert("Surname required");
    
    surname.focus();
    return false;
  }
  else if (trim(email.value)=="")
  {
    if (lang=="it")
      alert("Indirizzo email richiesto");
    else alert("Email address required");
    
    email.focus();
    return false;
  }
  else if (!check_mail(email.value))
  {
    if (lang=="it")
      alert("Formato indirizzo email errato");
    else alert("Wrong email address format");
    
    email.focus();
    return false;
  }
  else if (trim(repeat_email.value)!=trim(email.value))
  {
    if (lang=="it")
      alert("I campi Indirizzo email e Conferma indirizzo email non corrispondono");
    else alert("Fields Email address and Confirm email address are must same");
    
    repeat_email.focus();
    return false;
  }
  else if (!document.formPrenotazione.pagamento[0].checked && !document.formPrenotazione.pagamento[1].checked)
  {
    if (lang=="it")
      alert("Seleziona un metodo di pagamento");
    else alert("Select a payment method");
    
    return false;
  }
  else if (document.getElementById('accept').checked==false)
  {
    if (lang=="it")
      alert("Per continuare devi accettare i termini e le condizioni di utilizzo spuntando la casella di controllo");
    alert("Please confirm you have read and accepted Privacy and Cancellation policies by ticking the box");
    
    document.getElementById('accept').focus();
    return false;
  }
  else return true;
}
