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_arrivo2" ).value.substr( 0, 4 ),
      document.getElementById( "data_arrivo2" ).value.substr( 5, 2 ) - 1,
      document.getElementById( "data_arrivo2" ).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 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 checkFormBooking()
{
  var name=document.getElementById("name");
  var surname=document.getElementById("surname");
  var email=document.getElementById("email");
  var repeat_email=document.getElementById("repeat_email");
  var card_type=document.getElementById("card_type");
  var card_number=document.getElementById("card_number");
  var card_holder=document.getElementById("card_holder");
  var cvc=document.getElementById("cvc");
  
  if (trim(name.value)=="")
  {
    alert("First Name required");
    name.focus();
    return false;
  }
  else if (trim(surname.value)=="")
  {
    alert("Last Name required");
    surname.focus();
    return false;
  }
  else if (trim(email.value)=="")
  {
    alert("Email address required");
    email.focus();
    return false;
  }
  else if (!check_mail(email.value))
  {
    alert("Incorrect Email address format");
    email.focus();
    return false;
  }
  else if (trim(repeat_email.value)!=trim(email.value))
  {
    alert("Email and Confirm Email address do not match");
    repeat_email.focus();
    return false;
  }
  else if (trim(card_number.value)=="")
  {
    alert("Credit card number required");
    card_number.focus();
    return false;
  }
  else if (trim(card_holder.value)=="")
  {
    alert("Card holder's name");
    card_holder.focus();
    return false;
  }
  else if (card_type.value!="diners_club" && trim(cvc.value)=="")
  {
    alert("CVC-code required");
    cvc.focus();
    return false;
  }
  else if (document.getElementById('accept').checked==false)
  {
    alert("Accept terms and conditions by ticking the box to continue");
    document.getElementById('accept').focus();
    return false;
  }
  else return true;
}
function checkFormBookingIT()
{
  var name=document.getElementById("name");
  var surname=document.getElementById("surname");
  var email=document.getElementById("email");
  var repeat_email=document.getElementById("repeat_email");
  var card_type=document.getElementById("card_type");
  var card_number=document.getElementById("card_number");
  var card_holder=document.getElementById("card_holder");
  var cvc=document.getElementById("cvc");
  
  if (trim(name.value)=="")
  {
    alert("Nome richiesto");
    name.focus();
    return false;
  }
  else if (trim(surname.value)=="")
  {
    alert("Cognome richiesto");
    surname.focus();
    return false;
  }
  else if (trim(email.value)=="")
  {
    alert("Indirizzo email richiesto");
    email.focus();
    return false;
  }
  else if (!check_mail(email.value))
  {
    alert("Formato indirizzo email errato");
    email.focus();
    return false;
  }
  else if (trim(repeat_email.value)!=trim(email.value))
  {
    alert("I campi Indirizzo email e Conferma indirizzo email non corrispondono");
    repeat_email.focus();
    return false;
  }
  else if (trim(card_number.value)=="")
  {
    alert("Numero carta richiesto");
    card_number.focus();
    return false;
  }
  else if (trim(card_holder.value)=="")
  {
    alert("Nome proprietario carta richiesto");
    card_holder.focus();
    return false;
  }
  else if (card_type.value!="diners_club" && trim(cvc.value)=="")
  {
    alert("Codice CVC richiesto");
    cvc.focus();
    return false;
  }
  else if (document.getElementById('accept').checked==false)
  {
    alert("Per continuare devi accettare i termini e le condizioni di utilizzo spuntando la casella di controllo");
    document.getElementById('accept').focus();
    return false;
  }
  else return true;
}
function checkFormEnquiry()
{
  var name=document.getElementById("name");
  var email=document.getElementById("email");
  var code=document.getElementById("code");
  
  if (trim(name.value)=="")
  {
    alert("Name required");
    name.focus();
    return false;
  }
  else if (trim(email.value)=="")
  {
    alert("Email address required");
    email.focus();
    return false;
  }
  else if (!check_mail(email.value))
  {
    alert("Incorrect Email address format");
    email.focus();
    return false;
  }
  else if (trim(code.value)=="")
  {
    alert("Field Anti-spam required");
    code.focus();
    return false;
  }
  else return true;
}
function caricaFoto(id, path, description)
{
  url = "photo.php?path="+path+"&description="+description;
  
  document.getElementById("tooltip_"+id).style.display="block";
  
  var http_request = false;
  
  if (window.XMLHttpRequest) 
  { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
  } 
  else if (window.ActiveXObject) 
  { // IE.
    try 
    {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (e)
    {
      try 
      {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch (e) {}
    }
  }
  if (!http_request) 
  {
    return false;
  }
  http_request.onreadystatechange = function() { foto(http_request, id); };
  http_request.open('GET', url, true);
  http_request.send(null);

}

function foto(http_request, id) 
{
  if (http_request.readyState == 4) 
  {
    if (http_request.status == 200) 
    {
      document.getElementById("tooltip_"+id).innerHTML=http_request.responseText;
    } 
    else 
    {
    }
  }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function showDiv(div)
{
	document.getElementById(div).style.display="block";
        
	document.getElementById(div.substr(0,3)).style.background="#FFFFFF";
	document.getElementById(div.substr(0,3)).style.borderBottom="1px solid #FFFFFF";
        
	if (div=="desc")
	{
		document.getElementById("reviews").style.display="none";
		
		document.getElementById("rev").style.background="#DDDDDD";
		
		document.getElementById("rev").style.borderBottom="1px solid #BBBBBB";
	}
	else if (div=="reviews")
	{
		document.getElementById("desc").style.display="none";
		
		document.getElementById("des").style.background="#DDDDDD";
		
		document.getElementById("des").style.borderBottom="1px solid #BBBBBB";
	}
	return false;
}
function checkBook()
{
  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)
  {
    alert("Please select one or more rooms");
    return false;
  }
  else return true;
}
function checkBookIT()
{
  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)
  {
    alert("Per favore seleziona una o piu' camere");
    return false;
  }
  else return true;
}
function checkDates()
{
  if (document.getElementById('data_arrivo').value=='' || document.getElementById('data_partenza').value=='')
  { 
    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))
  {
    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)
  {
    alert('Check-out date must be greater than check-in date');
    document.getElementById('data_arrivo').value=''; 
    document.getElementById('data_partenza').value='';
    return false;
  }
  else
  { document.getElementById('loading').style.display='block'; document.getElementById('imgLoader').style.display='block'; document.getElementById('container').style.opacity='0.0'; document.getElementById('container').style.filter = 'alpha(opacity=0)'; return true;}
}
function checkDates2()
{
  if (document.getElementById('data_arrivo2').value=='' || document.getElementById('data_partenza2').value=='')
  { 
    alert('Check-in date and check-out date required');
    document.getElementById('data_arrivo2').value='';
    document.getElementById('data_partenza2').value='';
    return false;
  } 
  else if (!check_data(document.getElementById('data_arrivo2').value) || !check_data(document.getElementById('data_partenza2').value))
  {
    alert('Wrong date format\nCorrect format is yyyy-mm-dd');
    document.getElementById('data_arrivo2').value=''; 
    document.getElementById('data_partenza2').value='';
    return false;
  }
  else if (document.getElementById('data_arrivo2').value==document.getElementById('data_partenza2').value)
  {
    alert('Check-out date must be greater than check-in date');
    document.getElementById('data_arrivo2').value=''; 
    document.getElementById('data_partenza2').value='';
    return false;
  }
  else return true;
}
function showSearchForm()
{
  document.getElementById('formSearch').style.display='block';
  document.getElementById('roomsAvailable1').style.display='none';
}
