
// funzione che stampa la data (Giorno / Giorno Numerico / Mese) attuale

function ScriviData(lingua) // lingua identifica la lingua nella quale stampare la data (1= italiano, 2= inglese)
{
	var data=new Date();
	var giorno=data.getDay(); 						// giorno (Lunedi, Martedi, ...)
	var giornoNumerico=data.getDate();		// data (1, 2, 3, ...)
	var mese=data.getMonth();
	var giornoSettimana;
	var giornoMese=giornoNumerico.toString();
	var meseAnno;
	var dataAttuale; 											// variabile che costituirà la data attuale (Giorno / Giorno Numerico / Mese)
	
	if(lingua=="ita")	// in lingua italiana
	{
		switch(giorno)	// trova il giorno della settimana in maniera letterale
		{
			case 0: giornoSettimana="Domenica"; break;
			case 1: giornoSettimana="Lunedi"; break;
			case 2: giornoSettimana="Martedi"; break;
			case 3: giornoSettimana="Mercoledi"; break;
			case 4: giornoSettimana="Giovedi"; break;
			case 5: giornoSettimana="Venerdi"; break;
			case 6: giornoSettimana="Sabato"; break;
		}
	
		switch(mese)		// trova il mese dell'anno in maniera letterale
		{
			case 0: meseAnno="Gennaio"; break;
			case 1: meseAnno="Febbraio"; break;
			case 2: meseAnno="Marzo"; break;
			case 3: meseAnno="Aprile"; break;
			case 4: meseAnno="Maggio"; break;
			case 5: meseAnno="Giugno"; break;
			case 6: meseAnno="Luglio"; break;
			case 7: meseAnno="Agosto"; break;
			case 8: meseAnno="Settembre"; break;
			case 9: meseAnno="Ottobre"; break;
			case 10: meseAnno="Novembre"; break;
			case 11: meseAnno="Dicembre"; break;
		}
	}
		
	if(lingua=="eng")	// in lingua inglese
	{
		switch(giorno)	// trova il giorno della settimana in maniera letterale
		{
			case 0: giornoSettimana="Sunday"; break;
			case 1: giornoSettimana="Monday"; break;
			case 2: giornoSettimana="Tuestday"; break;
			case 3: giornoSettimana="Wednesday"; break;
			case 4: giornoSettimana="Thurstday"; break;
			case 5: giornoSettimana="Friday"; break;
			case 6: giornoSettimana="Saturday"; break;
		}
	
		switch(mese)		// trova il mese dell'anno in maniera letterale
		{
			case 0: meseAnno="January"; break;
			case 1: meseAnno="February"; break;
			case 2: meseAnno="March"; break;
			case 3: meseAnno="April"; break;
			case 4: meseAnno="May"; break;
			case 5: meseAnno="June"; break;
			case 6: meseAnno="July"; break;
			case 7: meseAnno="August"; break;
			case 8: meseAnno="September"; break;
			case 9: meseAnno="October"; break;
			case 10: meseAnno="November"; break;
			case 11: meseAnno="December"; break;
		}
		switch(giornoNumerico)
		{
			case 1: giornoMese="the "+(giornoNumerico.toString())+"st of"; break;
			case 2: giornoMese="the "+(giornoNumerico.toString())+"nd of"; break;
			case 3: giornoMese="the "+(giornoNumerico.toString())+"rd of"; break;
			default: giornoMese="the "+(giornoNumerico.toString())+"th of"; break;
		}
	}
		
		
	dataAttuale=giornoSettimana+" "+giornoMese+" "+meseAnno;
	return dataAttuale;
}

function ScriviOrario() // funzione che stampa l'ora attuale
{
	var orario=new Date();
	var ore=orario.getHours();
	var minuti=orario.getMinutes();
	var oraAttuale
	if(minuti<10)
		oraAttuale=ore+":0"+minuti;
	else
		oraAttuale=ore+":"+minuti;
	
	return oraAttuale;
}


// funzione che controlla la corretta compilazione dei campi dei form
function fieldControl(fieldName, feedback)
{
	var	i=0;
	var ok=true;
	if(fieldName.length==0) // controlla la lunghezza del campo nome(se vuoto)
		ok=false;
	
	while((fieldName.charAt(i)==" ")&&(i<fieldName.length)) // controlla se sono stati inseriti solo spazi vuoti (considerati nulli)
		i++;
	if(i==fieldName.length)
		ok=false;
		
	if(!ok)
		alert(feedback);
	
	return ok;
}


// funzione che controlla la corretta compilazione dei campi relativi al guestbook
function guestbookControl(autore, fbAutore, messaggio, fbMessaggio)
{
	return(fieldControl(autore,fbAutore)&&fieldControl(messaggio,fbMessaggio));
}



// funzione che effettua il preloading delle immagini rollover
function Preload()
{
	var chiaveOn= new Image(); chiaveOn.src="img/chiave-on.gif";
	var contattiOn= new Image(); contattiOn.src="img/contatti-on.jpg";
	var contattiOnEng= new Image(); contattiOnEng.src="img/eng/contatti-on.jpg";
	var ingFlag= new Image(); ingFlag.src="img/inglese.gif";
	var ingFlagNA= new Image(); ingFlagNA.src="img/ingleseNotActive.gif";
	var itaFlag= new Image(); itaFlag.src="img/italiano.gif";
	var itaFlagNA= new Image(); itaFlagNA.src="img/italianoNotActive.gif";
}


// funzione che parserizza la data numerica (g/gn/m/a) contenuta nel database, resituendone la versione letterale (es.: Lunedi 20 Dicembre 2004)
function ParserData(lingua,data)
{
	var oggi=data.split("/"); // ricava le varie parti della data
	var giornoSettimana;
	var meseAnno;
	
	var g=parseInt(oggi[0]);
	var giornoNumerico=oggi[1];
	var giornoMese=giornoNumerico.toString();;
	var m=parseInt(oggi[2]);
	var anno=oggi[3];
	
	
	if(lingua=="ita")	// in lingua italiana
	{
		switch(g)	// trova il giorno della settimana in maniera letterale
		{
			case 0: giornoSettimana="Domenica"; break;
			case 1: giornoSettimana="Lunedi"; break;
			case 2: giornoSettimana="Martedi"; break;
			case 3: giornoSettimana="Mercoledi"; break;
			case 4: giornoSettimana="Giovedi"; break;
			case 5: giornoSettimana="Venerdi"; break;
			case 6: giornoSettimana="Sabato"; break;
		}
	
		switch(m)		// trova il mese dell'anno in maniera letterale
		{
			case 0: meseAnno="Gennaio"; break;
			case 1: meseAnno="Febbraio"; break;
			case 2: meseAnno="Marzo"; break;
			case 3: meseAnno="Aprile"; break;
			case 4: meseAnno="Maggio"; break;
			case 5: meseAnno="Giugno"; break;
			case 6: meseAnno="Luglio"; break;
			case 7: meseAnno="Agosto"; break;
			case 8: meseAnno="Settembre"; break;
			case 9: meseAnno="Ottobre"; break;
			case 10: meseAnno="Novembre"; break;
			case 11: meseAnno="Dicembre"; break;
		}
	}
		
	if(lingua=="eng")	// in lingua inglese
	{
		switch(g)	// trova il giorno della settimana in maniera letterale
		{
			case 0: giornoSettimana="Sunday"; break;
			case 1: giornoSettimana="Monday"; break;
			case 2: giornoSettimana="Tuestday"; break;
			case 3: giornoSettimana="Wednesday"; break;
			case 4: giornoSettimana="Thurstday"; break;
			case 5: giornoSettimana="Friday"; break;
			case 6: giornoSettimana="Saturday"; break;
		}
	
		switch(m)		// trova il mese dell'anno in maniera letterale
		{
			case 0: meseAnno="January"; break;
			case 1: meseAnno="February"; break;
			case 2: meseAnno="March"; break;
			case 3: meseAnno="April"; break;
			case 4: meseAnno="May"; break;
			case 5: meseAnno="June"; break;
			case 6: meseAnno="July"; break;
			case 7: meseAnno="August"; break;
			case 8: meseAnno="September"; break;
			case 9: meseAnno="October"; break;
			case 10: meseAnno="November"; break;
			case 11: meseAnno="December"; break;
		}
		switch(giornoNumerico)
		{
			case 1: giornoMese="the "+(giornoNumerico.toString())+"st of"; break;
			case 2: giornoMese="the "+(giornoNumerico.toString())+"nd of"; break;
			case 3: giornoMese="the "+(giornoNumerico.toString())+"rd of"; break;
			default: giornoMese="the "+(giornoNumerico.toString())+"th of"; break;
		}
	}
		
	dataAttuale=giornoSettimana+" "+giornoMese+" "+meseAnno+" "+anno; // costruisce la data in versione letterale
	return dataAttuale;
}



var lunghezzaSoggiorno=0; // variabile che conterrà la lunghezza del soggiorno scelto, valore che non può essere negativo

//funzione che calcola la lunghezza del periodo del soggiorno (utile nell'attivazione dell'opzione della mezza pensione del modulo di prenotazione delle camere)
function lgtSoggiorno(gA,mA,aA,gP,mP,aP) // giornoArrivo,meseArrivo,annoArrivo,giornoPartenza,mesePartenza,annoPartenza
{
	var meseArr;
	var mesePar;
	var lgtSogg; // la lunghezza del soggiorno
	var giornoArr=parseInt(gA);
	var annoArr=parseInt(aA);
	var giornoPar=parseInt(gP);
	var annoPar=parseInt(aP);
	
	switch(mA)		// trova il mese d'arrivo in maniera numerica
		{
			case "Gennaio": meseArr=0; break;
			case "Febbraio": meseArr=1; break;
			case "Marzo": meseArr=2; break;
			case "Aprile": meseArr=3; break;
			case "Maggio": meseArr=4; break;
			case "Giugno": meseArr=5; break;
			case "Luglio": meseArr=6; break;
			case "Agosto": meseArr=7; break;
			case "Settembre": meseArr=8; break;
			case "Ottobre": meseArr=9; break;
			case "Novembre": meseArr=10; break;
			case "Dicembre": meseArr=11; break;
		}
		
		switch(mP)		// trova il mese di partenza in maniera numerica
		{
			case "Gennaio": mesePar=0; break;
			case "Febbraio": mesePar=1; break;
			case "Marzo": mesePar=2; break;
			case "Aprile": mesePar=3; break;
			case "Maggio": mesePar=4; break;
			case "Giugno": mesePar=5; break;
			case "Luglio": mesePar=6; break;
			case "Agosto": mesePar=7; break;
			case "Settembre": mesePar=8; break;
			case "Ottobre": mesePar=9; break;
			case "Novembre": mesePar=10; break;
			case "Dicembre": mesePar=11; break;
		}
		
		lgtSogg=(((annoPar-annoArr)*365)+((mesePar-meseArr)*30)+(giornoPar-giornoArr));
		lunghezzaSoggiorno=lgtSogg;
		
		if(lgtSogg>=3)
		{
			document.all.MP.disabled=false;
			document.all.MP2.disabled=false;
		}
		else
		{	
			document.all.MP.disabled=true;
			document.all.MP2.disabled=true;
			document.all.BF.checked=true;
			document.all.BF2.checked=true;
		}
}

// funzione che controlla che una stringa sia formata esclusivamente da numeri
function soloNumeri(testo)
{
	for(i=0;i<testo.length;i++)
	{	
		var car=testo.charAt(i);
		if((car!=1)&&(car!=2)&&(car!=3)&&(car!=4)&&(car!=5)&&(car!=6)&&(car!=7)&&(car!=8)&&(car!=9)&&(car!=0))
		 return false;
	}
	return true;
}


// funzione che controlla la corretta compilazione dei campi obbligatori ed alcuni non obbligatori del modulo per la prenotazione delle camere
function fieldsControl(lang,nome,cognome,email,camere1,camere2,tipoCamera1,tipoCamera2,privacy)
{
	// assegna i valori dei messaggi di ritorno in base alla lingua passata
	if(lang=="ita") // ITALIANO
	{
		FBnome="Il campo \"Nome\" è obbligatorio!";
		FBcognome="Il campo \"Cognome\" è obbligatorio!";
		FBemail="Il campo \"E-Mail\" è obbligatorio!";
		FBsoggiorno="Lunghezza del soggiorno non corretta";
		FBnumerocamere="Inserire il numero di camere da prenotare";
		FBvaloricamere="Inserire un numero corretto di camere da prenotare (sono consentite solo le cifreda 0 a 9)";
		FBtipocamere="Scegli il tipo di camera da prenotare";
		FBprivacy="Devi accettare il trattamento dei dati personali";
	}
	
	if(lang=="eng") // INGLESE
	{
		FBnome="Field \"First Name\" is required!";
		FBcognome="Field \"Last Name\" is required!";
		FBemail="Field \"E-Mail\" is required!";
		FBsoggiorno="Stay's length is not correct";
		FBnumerocamere="Type a rooms # to reserve";
		FBvaloricamere="Type a correct value in the rooms #'s field (only digits from 0 to 9 are allowed)";
		FBtipocamere="Choose the room's type to reserve";
		FBprivacy="You must agree to the treatment of the personal data";
	}

		
	// NOME, COGNOME, E-MAIL
	if(!fieldControl(nome,FBnome))
		return false;
	if(!fieldControl(cognome,FBcognome))
		return false;
	if(!fieldControl(email,FBemail))
		return false;
		
	// LUNGHEZZA SOGGIORNO
	if(lunghezzaSoggiorno<1)
	{
		alert(FBsoggiorno);
		return false;
	}
	
	// NUMERO DI CAMERE
	if((camere1.length==0)&&(camere2.length==0))
	{
		alert(FBnumerocamere);
		return false;
	}
	
	// CORRETTEZZA VALORI NUMERO DI CAMERE
	if(camere1.length!=0)
		if(!soloNumeri(camere1))
		{
			alert(FBvaloricamere);
			return false;
		}
	
	if(camere2.length!=0)
		if(!soloNumeri(camere2))
		{
			alert(FBvaloricamere);
			return false;
		}
			
	// TIPO DI CAMERE
	if(camere1.length!=0)
		if(tipoCamera1=="default")
		{
			alert(FBtipocamere);
			return false;
		}
	
	if(camere2.length!=0)
		if(tipoCamera2=="default")
		{
			alert(FBtipocamere);
			return false;
		}
	if(!privacy.checked)
	{
			alert(FBprivacy);
			return false;
	}
	
}
	