// FUNZIONI GENERALI
// Controllo validitā della data
function isValidDate(dateStr){
	// Checks for the following valid date formats:
	// YYYY-MM-DD
	// Also separates date into year, month, and day variables
	var datePat = /^(\d{4})(-)(\d{1,2})\2(\d{1,2})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null){
		alert("La data inserita non č nel formato richiesto!")
		return false;
	}
	year = matchArray[1]; // parse date into variables
	month = matchArray[3];
	day = matchArray[4];	
	if (month < 1 || month > 12){ // check month range
		alert("I mesi devono essere compresi tra 1 e 12!");
		return false;
	}
	if (day < 1 || day > 31){
		alert("I giorni devono essere compresi tra 1 e 31!");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31){
		alert("Il mese di "+month+" non ha 31 giorni!")
		return false
	}
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)){
			alert("Febbraio " + year + " non ha " + day + " giorni!");
			return false;
   		}
	}
	return true;  // date is valid
}
// Controllo validitā indirizzo e-mail
function check_email(indirizzo){
    if (!(indirizzo.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/))){
		alert("ATTENZIONE: hai inserito un indirizzo E-Mail in un formato non valido!");
		return false;
    } else {
		return true;
	}
}
// Controllo visibilitā informazioni
function view_info(tagid){
	var el=document.getElementById(tagid);
	el.style.visibility="visible";
}
function no_info(tagid){
	var el=document.getElementById(tagid);
	el.style.visibility="hidden";
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// HOME PAGE
function checkdati_disponibilita(lastday){
	var doc=document.getElementById("disponibilita");
	var errore="";
	var rispondo=false;
	if (doc.data_arrivo.value == ""){
		errore=errore+"- Data Arrivo\n";
	}
	if (doc.data_partenza.value == ""){
		errore=errore+"- Data Partenza\n";	
	}
	if (doc.persone.value == ""){
		errore=errore+"- N° Persone\n";	
	}
	/*if (doc.appartamenti.value == ""){
		errore=errore+"- N° Appartamenti\n";	
	}*/
	if (errore){
		alert("ATTENZIONE: ci sono dei dati richiesti non inseriti! \n\n"+errore);
		rispondo=false;
	} else {
		if ((!isValidDate(doc.data_arrivo.value)) || (!isValidDate(doc.data_partenza.value))){
			rispondo=false;
		} else if ((doc.data_arrivo.value)>=(doc.data_partenza.value)){
			alert("ATTENZIONE: la data di partenza deve essere successiva a quella di arrivo!");
			rispondo=false;
		} else if (((doc.data_arrivo.value)>lastday) || ((doc.data_partenza.value)>lastday)){
			alert("ATTENZIONE: controlla nella sezione prezzi che per il periodo di soggiorno indicato siano state stabilite le tariffe degli appartamenti!");
			rispondo=false;
		} else if (((doc.persone.value)<=0) || ((doc.persone.value)>6)){
			alert("ATTENZIONE: non disponiamo di alcun appartamento adeguato per il numero di persone specificato!\nSiete pregati di leggere la nota informativa a lato prima di ripetere la ricerca.");
			rispondo=false;
		} else {
			rispondo=true;
		}
	}
	return rispondo;
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// SEZIONE PRENOTAZIONI
function checkdati_sel_appartamenti(form,box){
	var Ckbox = false;
	for (j= 0; j < form.elements.length; j++) { 
		if (form.elements[j].name == box) {                 
			if(form.elements[j].checked) {
				Ckbox = true;
			}
		}
	}		
	if (Ckbox){
		return true;			
	} else{
		alert("Attenzione: per inviare la richiesta di prenotazione dovete selezionare almeno un appartamento!");
		return false;
	}
}
function checkdati_prenotazioni(){
	var doc=document.getElementById('modulo_prenotazioni');
	var errore="";
	var rispondo=false;
	if (doc.cod.value == ""){
		// Non č stato inserito un codice cliente
		if (doc.nome.value == ""){
			errore=errore+"- Nome\n";
		}
		if (doc.cognome.value == ""){
			errore=errore+"- Cognome\n";	
		}
		if (doc.email.value == ""){
			errore=errore+"- E-Mail\n";	
		}
		if (doc.indirizzo.value == ""){
			errore=errore+"- Indirizzo\n";	
		}
		if (doc.cap.value == ""){
			errore=errore+"- CAP\n";	
		}
		if (doc.citta.value == ""){
			errore=errore+"- Cittā\n";	
		}
		if (doc.nazione.value == ""){
			errore=errore+"- Nazione\n";	
		}
		if (doc.tel.value == ""){
			errore=errore+"- Telefono\n";	
		}
		if ((doc.persone_tot.value == "") || (document.getElementById("id_persone_tot").value<1)){
			errore=errore+"- Persone Totali\n";	
		}
		if (errore){
			// Mancano dei dati
			alert("ATTENZIONE: ci sono dei dati richiesti non inseriti o errati!\n\n"+errore);
			rispondo=false;
		} else {
			// Controllo l'e-mail inserita
			rispondo=check_email(doc.email.value);
			if (rispondo){
				// Verifico l'accettazione della privacy
				if (doc.privacy.checked){
					rispondo=true;
				} else {
					alert("ATTENZIONE: per completare la richiesta dovete sottoscrivere l'informativa per la privacy ed accettare il trattamento dei dati personali.\n");
					rispondo=false;
				}
			}
		}
	} else {
		// Codice cliente inserito
		if ((doc.persone_tot.value == "") || (document.getElementById("id_persone_tot").value<1)){
			errore=errore+"- Persone Totali\n";	
		}
		if (errore){
			// Mancano dei dati
			alert("ATTENZIONE: ci sono dei dati richiesti non inseriti o errati!\n\n"+errore);
			rispondo=false;
		} else {
			rispondo=true;
		}
	}
	return rispondo;
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// SEZIONE NEWSLETTER
// Controllo iscrizione Newsletter
function checkdatins_newsletter(){
	var doc=document.getElementById('modulons');
	var errore="";
	var rispondo=false;
	if (doc.email.value == ""){
		errore=errore+"- E-Mail\n";	
	}
	if (doc.nome.value == ""){
		errore=errore+"- Nome\n";
	}
	if (doc.cognome.value == ""){
		errore=errore+"- Cognome\n";	
	}
	if (doc.lingua.value == ""){
		errore=errore+"- Lingua\n";	
	}
	if (doc.privacy.checked){
		if (errore){
			alert("Per completare la richiesta devono essere inseriti i seguenti dati:\n\n"+errore);
			rispondo=false;
		} else {
			rispondo=check_email(document.getElementById('modulons').email.value);
		}
	} else {
		alert("Per completare la richiesta devi accettare l'informativa privacy ed il trattamento dei dati personali.\n");
		rispondo=false;
	}
	return rispondo;
}
// Controllo cancellazione Newsletter
function checkdatinsdel_newsletter(){
	var doc=document.getElementById('modulodel');
	var errore="";
	var rispondo=false;
	if (doc.e_mail.value == ""){
		errore=errore+"- E-Mail\n";	
	}
	if (errore){
		alert("Per inoltrare la richiesta dovete inserire un indirizzo E-Mail.");
		rispondo=false;
	} else {
		rispondo=check_email(document.getElementById('modulodel').e_mail.value);
	}
	return rispondo;
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// SEZIONE CONTATTI
function checkdati_contatti(){
	var doc=document.getElementById('modulo_contatti');
	var errore="";
	var rispondo=false;
	if (doc.nome.value == ""){
		errore=errore+"- Nome\n";
	}
	if (doc.cognome.value == ""){
		errore=errore+"- Cognome\n";	
	}
	if (doc.email.value == ""){
		errore=errore+"- E-Mail\n";	
	}
	if (doc.contenuto.value == ""){
		errore=errore+"- Messaggio\n";	
	}
	if (doc.cod_antispam.value == ""){
		errore=errore+"- Codice Antispam\n";	
	}
	if (errore){
		alert("ATTENZIONE: ci sono dei dati richiesti non inseriti! \n\n"+errore);
		rispondo=false;
	} else {
		rispondo=check_email(doc.email.value);
	}
	return rispondo;
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// SEZIONE OFFERTE
function checkdati_offerta(){
	var doc=document.getElementById('modulo_contatti');
	var errore="";
	var rispondo=false;
	if (doc.nome.value == ""){
		errore=errore+"- Nome\n";
	}
	if (doc.cognome.value == ""){
		errore=errore+"- Cognome\n";	
	}
	if (doc.email.value == ""){
		errore=errore+"- E-Mail\n";	
	}
	if (doc.arrivo.value == ""){
		errore=errore+"- Data di arrivo\n";	
	}
	if (doc.persone.value == ""){
		errore=errore+"- Persone Totali\n";	
	}
	if (doc.contenuto.value == ""){
		errore=errore+"- Richiesta\n";	
	}
	if (doc.cod_antispam.value == ""){
		errore=errore+"- Codice Antispam\n";	
	}
	if (errore){
		alert("ATTENZIONE: ci sono dei dati richiesti non inseriti! \n\n"+errore);
		rispondo=false;
	} else {
		rispondo=check_email(doc.email.value);
	}
	return rispondo;
}


function checkdati_mailing(){
	var doc=document.getElementById('mail_offerte');
	var errore="";
	var rispondo=false;
	if (doc.nome_cognome.value == ""){
		errore=errore+"- Nome\n";
	}
	if (doc.email.value == ""){
		errore=errore+"- E-Mail\n";	
	}
	if (errore){
		alert("ATTENZIONE: ci sono dei dati richiesti non inseriti! \n\n"+errore);
		rispondo=false;
	} else {
		rispondo=check_email(doc.email.value);
	}
	return rispondo;
}