function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}
function Modulo() {
	var totale_camere = 0;
	var nome = document.info.nome.value;
	var cognome = document.info.cognome.value;
	var email = document.info.email.value;
	var oggi = new Date();
	var giorno = oggi.getDate();
	var gsettimana = oggi.getDay();
	var mese = oggi.getMonth();
	var anno = oggi.getFullYear();
	var numoggi = parseInt(
		oggi.getFullYear()
		+ ((parseInt(oggi.getMonth()) + 1)<10?"0" + (parseInt(oggi.getMonth()) + 1):(parseInt(oggi.getMonth()) + 1)) 
		+ (oggi.getDate() <10?"0" + oggi.getDate():oggi.getDate())
		 );
	var stroggi = 
		(oggi.getDate() <10?"0" + oggi.getDate():oggi.getDate())
		+ "/" + ((parseInt(oggi.getMonth()) + 1)<10?"0" + (parseInt(oggi.getMonth()) + 1):(parseInt(oggi.getMonth()) + 1)) 
		+ "/" + oggi.getFullYear()
		 ;
	var domani =
		((parseInt(oggi.getDate())) + 1) <10?"0" + ((parseInt(oggi.getDate())) + 1):((parseInt(oggi.getDate())) + 1)
		+ "/" + ((parseInt(oggi.getMonth()) + 1)<10?"0" + (parseInt(oggi.getMonth()) + 1):(parseInt(oggi.getMonth()) + 1)) 
		+ "/" + oggi.getFullYear()
		 ;
	var arrivo = document.info.arrivo.value;
	var g_arrivo = arrivo.substring(0,2); 
	var m_arrivo = arrivo.substring(3,5);
	var a_arrivo = arrivo.substring(6,10); 
		if (a_arrivo.length == 0){a_arrivo = anno;}
		if (a_arrivo.length < 4){a_arrivo = parseInt(a_arrivo)+2000;}
	var data_arrivo_str = new Date(a_arrivo,m_arrivo-1,g_arrivo);
	var strarrivo = 
		(data_arrivo_str.getDate() <10?"0" + data_arrivo_str.getDate():data_arrivo_str.getDate())
		+ "/" + ((parseInt(data_arrivo_str.getMonth()) + 1)<10?"0" + (parseInt(data_arrivo_str.getMonth()) + 1):(parseInt(data_arrivo_str.getMonth()) + 1)) 
		+ "/" + data_arrivo_str.getFullYear();
	var partenza = document.info.partenza.value;
	var g_partenza = partenza.substring(0,2);
	var m_partenza = partenza.substring(3,5);
	var a_partenza = partenza.substring(6,10);
		if (a_partenza.length == 0){a_partenza = anno;}
		if (a_partenza.length < 4){a_partenza = parseInt(a_partenza)+2000;}
	var data_partenza = new Date(a_partenza,m_partenza-1,g_partenza);
	var strpartenza = 
		(data_partenza.getDate() <10?"0" + data_partenza.getDate():data_partenza.getDate())
		+ "/" + ((parseInt(data_partenza.getMonth()) + 1)<10?"0" + (parseInt(data_partenza.getMonth()) + 1):(parseInt(data_partenza.getMonth()) + 1)) 
		+ "/" + data_partenza.getFullYear();
	var separatore1 = document.info.arrivo.value.substring(2,3);
	var separatore2 = document.info.arrivo.value.substring(5,6);
	var separatore3 = document.info.partenza.value.substring(2,3);
	var separatore4 = document.info.partenza.value.substring(5,6);
	var singole_comfort = document.info.singole_comfort.value; if (singole_comfort == "") {singole_comfort = 0}
	var doppie_comfort = document.info.doppie_comfort.value; if (doppie_comfort == "") {doppie_comfort = 0}
	var doppie_superior = document.info.doppie_superior.value; if (doppie_superior == "") {doppie_superior = 0}
	var doppie_suite = document.info.doppie_suite.value; if (doppie_suite == "") {doppie_suite = 0}
	var triple_comfort = document.info.triple_comfort.value; if (triple_comfort == "") {triple_comfort = 0}
	var triple_superior = document.info.triple_superior.value; if (triple_superior == "") {triple_superior = 0}
	var quadruple_comfort = document.info.quadruple_comfort.value; if (quadruple_comfort == "") {quadruple_comfort = 0}
	var bimbi_0_4_anni = document.info.bimbi_0_4_anni.value; if (bimbi_0_4_anni == ""){bimbi_0_4_anni = 0}
	var bimbi_5_10_anni = document.info.bimbi_5_10_anni.value; if (bimbi_5_10_anni == ""){bimbi_5_10_anni = 0}
	var bimbi_11_13_anni = document.info.bimbi_11_13_anni.value; if (bimbi_11_13_anni == ""){bimbi_11_13_anni = 0}
	var cap = document.info.cap.value;
	var telefono = document.info.telefono.value;
	var pr = document.info.pr.value;
	var citta = document.info.citta.value;
	var stato = document.info.stato.value;
// Espressione regolare dell'email
	var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;

	//Effettua il controllo sul campo NOME
	if ((nome == "") || (nome == "undefined")) {
	  alert("Insert your name, please!");
	  document.info.nome.focus();
	  return false;
	}
	//Effettua il controllo sul campo COGNOME
	else if ((cognome == "") || (nome == "undefined")) {
		alert("Insert your family name, please!");
		document.info.cognome.focus();
		return false;
	}
	//Effettua il controllo sul campo EMAIL
	else if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) {
		alert("Insert a correct e-mail address, please!");
		document.info.email.select();
	return false;
	}
	//Effettua il controllo sul campo CAP
	else if (cap != "ZIP" && (isNaN(cap) || cap.length != 5)){
		alert("Insert a correct ZIP code, please!")
		document.info.cap.value = "ZIP";
		document.info.cap.focus();
		return false;
	}
  //Effettua il controllo sul campo CITTA
    var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ- \t\r\n\f";
  var checkStr = citta;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Insert only letters in field \"Town\", please!.");
    document.info.citta.focus();
    return (false);
  }
	//Effettua il controllo sul campo PROVINCIA
  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  var checkStr = pr;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Insert only letters in field \"Province\", please!");
    document.info.pr.focus();
    return (false);
  }
    if (pr.length == 1)
  {
    alert("Insert 2 letters in field \"Province\", please!");
	 document.info.pr.value = "PR";
    document.info.pr.focus();
    return (false);
  }
  //Effettua il controllo sul campo STATO
    var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ- \t\r\n\f";
  var checkStr = stato;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Insert only letters in field \"State\", please!");
    document.info.stato.focus();
    return (false);
  }
	//Effettua il controllo sul campo telefono
  var checkOK = "0123456789./ ";
  var checkStr = telefono;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }  
	}
  if (!allValid)
  {
    alert("Insert only numbers in field \"telephone:\", please!");
    document.info.telefono.focus();
    return (false);
  }
  	//Effettua il controllo sul campo DATA DI ARRRIVO
	if (
	isNaN(g_arrivo) ||
	isNaN(m_arrivo) ||
	arrivo.substring(2,3) != "/" && arrivo.substring(2,3) != "-" ||
	arrivo.substring(5,6) != "/" && arrivo.substring(5,6) != "-" && arrivo.substring(5,6) != "" ||
	m_arrivo > 12
	)
	{
		alert("The date has to be in format: \"DD/MM/YYYY\", please!");
		document.info.arrivo.select();
		return false;
	}
	if (arrivo != ""){document.info.arrivo.value = strarrivo;
	g_arrivo = strarrivo.substring(0,2); 
	m_arrivo = strarrivo.substring(3,5);
	a_arrivo = strarrivo.substring(6,10); 
	}
	data_arrivo = new Date(a_arrivo,m_arrivo-1,g_arrivo);
	var numarrivo = parseInt(
		 data_arrivo.getFullYear()
		 + "" + ((parseInt(data_arrivo.getMonth()) + 1)<10?"0" + (parseInt(data_arrivo.getMonth()) + 1):(parseInt(data_arrivo.getMonth()) + 1)) + 
		"" + (data_arrivo.getDate() <10?"0" + data_arrivo.getDate():data_arrivo.getDate())
		);
	var settimana =
		((parseInt(data_arrivo.getDate())) + 7) <10?"0" + ((parseInt(data_arrivo.getDate())) + 7):((parseInt(data_arrivo.getDate())) + 7)
		+ "/" + ((parseInt(data_arrivo.getMonth()) + 1)<10?"0" + (parseInt(data_arrivo.getMonth()) + 1):(parseInt(data_arrivo.getMonth()) + 1)) 
		+ "/" + data_arrivo.getFullYear()
		 ;
	if (numarrivo < numoggi){
		alert ("Arrival has to be after today (" + stroggi + ").")
		document.info.arrivo.select();
		return false;
	}
//Effettua il controllo sul campo Data di Arrivo
	if (arrivo == "")
	{
		alert("The date has to be in format: \"DD/MM/YYYY\", please!");
		document.info.arrivo.select();
		return false;
	}
	//Effettua il controllo sul campo DATA DI PARTENZA
	if (
	isNaN(g_partenza) ||
	isNaN(m_partenza) ||
	partenza.substring(2,3) != "/" && partenza.substring(2,3) != "-" ||
	partenza.substring(5,6) != "/" && partenza.substring(5,6) != "-" && partenza.substring(5,6) != "" ||
	m_partenza > 12
	)
	{
		alert("The date has to be in format: \"DD/MM/YYYY\", please!");
		document.info.partenza.select();
		return false;
	}
	if (partenza != ""){document.info.partenza.value = strpartenza;
	g_partenza = strpartenza.substring(0,2); 
	m_partenza = strpartenza.substring(3,5);
	a_partenza = strpartenza.substring(6,10); 
	}
	data_partenza = new Date(a_partenza,m_partenza-1,g_partenza);
	var numpartenza = parseInt(
	 data_partenza.getFullYear()
	 + "" + ((parseInt(data_partenza.getMonth()) + 1)<10?"0" + (parseInt(data_partenza.getMonth()) + 1):(parseInt(data_partenza.getMonth()) + 1)) + 
	"" + (data_partenza.getDate() <10?"0" + data_partenza.getDate():data_partenza.getDate())
	);
  //Effettua il controllo sul campo Data di partenza
	if (partenza == "")
	{
		alert("The date has to be in format: \"DD/MM/YYYY\", please!");
		document.info.partenza.select();
		return false;
	}
	else if (a_arrivo > (anno + 2)){
		alert("Sorry, it is not possible to book for a date so distant")
		document.info.arrivo.focus();
		return false;
	}
	else if (a_partenza > (parseInt(a_arrivo) + 2)){
		alert("Sorry!, it is not possible to book for a period so long.\n Check the departure year, please!")
		document.info.partenza.focus();
		return false;
	}	
	//CONFRONTA LA DATA DI ARRIVO CON LA DATA DI PARTENZA
	else if (numpartenza <= numarrivo){
		alert("Departure cannot be before or the same of arrival!")
		document.info.partenza.select();
		return false;
	}
	else if (
		isNaN(singole_comfort) || 
		isNaN(doppie_comfort) ||
		isNaN(doppie_superior) ||
		isNaN(doppie_suite) ||
		isNaN(triple_comfort) ||
		isNaN(triple_superior) ||
		isNaN(quadruple_comfort)
		){
			alert("Insert only numbers for the quantity of rooms, please!");
			document.info.singole_comfort.focus();
			return false;
		}
	else if (
		eval(singole_comfort) + 
		eval(doppie_comfort) +
		eval(doppie_superior) +
		eval(doppie_suite) +
		eval(triple_comfort) +
		eval(triple_superior) +
		eval(quadruple_comfort) <= 0
		)
		{alert("Insert the quantity of rooms, please!");
		document.info.singole_comfort.focus();
		return false;}
	else if (
		isNaN(bimbi_0_4_anni) || 
		isNaN(bimbi_5_10_anni) ||
		isNaN(bimbi_11_13_anni)
		){
			alert("Insert only numbers for the quantity of children, please!");
			return false;
		}
	else if (
		eval(bimbi_0_4_anni) + 
		eval(bimbi_5_10_anni) +
		eval(bimbi_11_13_anni) >
		((eval(singole_comfort) * 1) +
		(eval(doppie_comfort) * 2) + 
		(eval(doppie_superior) * 2) + 
		(eval(doppie_suite) * 2) + 
		(eval(triple_comfort) * 3) +
		(eval(triple_superior) * 3) +
		(eval(quadruple_comfort) * 4)) - 1
		)
		{alert("Children are too many!"); return false;}
  
  var allValid = true;
	if(getCheckedValue(document.info.privacy) != 'Acconsento'){
		allValid = false;
	}
  if (!allValid)
  {
    alert("If you want to send the form you have to accept the privacy agreement.");
    return (false);
  }
	//INVIA IL modulo	
	else {
	   document.info.action = "conferma.php";
	   document.info.submit();
	}
}
function privacy(str,winName,larg,alt){
	finestra=window.open(str,winName,"width=" + larg + ", height="+alt+", left=" + ((screen.width-larg)/2) + ",top="+((screen.height-alt)/2)+", scrollbars, resizable" );
	finestra.focus();
}