// JavaScript Document



// Questa funzione verifica se l'indirizzo di posta elettronica passato come
// parametro è valido
function isEmail (s)
{
	if (s == "")	return false;
	
	// controlla se è uno spazio
	if (s == " ") return false;
	
	// ci deve essere almeno 1 carattere prima del carattere "@"
	// così la ricerca parte dalla posizione 1 della stringa (cioè il secondo carattere)
	var i = 1;
	var sLength = s.length;
	
	// cerca il carattere "@"
	while ((i < sLength) && (s.charAt(i) != "@"))
	{ i++
	}
	
	if ((i >= sLength) || (s.charAt(i) != "@")) return false;
	else i += 2;

	// cerca il carattere "."
	while ((i < sLength) && (s.charAt(i) != "."))
	{ i++
	}
	
	// ci devono essere almeno due caratteri dopo il "." per indicare il dominio di primo livello
	if ((i >= sLength - 2) || (s.charAt(i) != ".")) return false;
	else return true;
}
// fine isEmail


// Questa funzione controlla i dati inseriti dall'utente nel modulo prima di spedirlo
function controllaContatti()
{
	if (!isEmail(document.forms["contatti"].email.value))
	{
		alert("Non avete inserito il vostro indirizzo di posta elettronica!");
		document.forms["contatti"].email.focus();
		return (false);
	}
	if (document.forms["contatti"].nome.value == "")
	{
		alert("Non avete inserito il vostro nome!");
		document.forms["contatti"].nome.focus();
		return (false);
	}
	if (document.forms["contatti"].cognome.value == "")
	{
		alert("Non avete inserito il vostro cognome!");
		document.forms["contatti"].cognome.focus();
		return (false);
	}
	if (document.forms["contatti"].corpo.value == "")
	{
		alert("Non avete inserito il testo del messaggio!");
		document.forms["contatti"].corpo.focus();
		return (false);
	}
	
	// Se ha passato tutti i controlli allora convalida la form
	return (true);
}
// fine controllaContatti


// Questa funzione tronca il valore in euro alla seconda cifra decimale
function troncaEuro (theEuro)
{
	var myNumCifreDecimali = 2;	// Numero di cifre decimali che si desidera compaiano dopo la virgola
	
	theEuro = Math.round(theEuro * Math.pow(10, myNumCifreDecimali)) / Math.pow(10, myNumCifreDecimali);
	
	return(theEuro);
}
// fine troncaEuro


// Questa funzione aggiunge in fondo al valore in euro gli necessari zeri
function aggiungiDecimali (theEuro)
{
	var myEuro = troncaEuro(theEuro);
	
	var myStr = new String(myEuro);
	var myLength = 0;
	
	myLength = myStr.length;
	
	if (myStr.lastIndexOf(".") == -1)
	{
		myStr = (myStr + ".00");
	}
	else
	{
		if ((myLength - myStr.lastIndexOf(".")) == 2)
		{
			myStr = (myStr + "0");
		}
		else if ((myLength - myStr.lastIndexOf(".")) > 3)
		{
			myLength = (myStr.lastIndexOf(".") + 3);
			myStr = myStr.substring(0, myLength);
		}
	}
	
	if (myStr.charAt(0) == ".")
	{
		myStr = ("0" + myStr);
	}
	
	return myStr;
}
// fine aggiungiDecimali


// Questa funzione calcola il totale della domanda di partecipazione ogni volta che viene modificato
// un checkbox del form
function calcolaDomandaPartecipazione ()
{
	// Inserisce la data di compilazione del form
	var myDate = new Date();
	document.forms["DomandaPartecipazione"].DomandaData.value = myDate.getDate() + "-" + (eval(myDate.getMonth())+1) + "-" + myDate.getFullYear();
	
	// Calcola il totale della linea ADSL se è specificato il numero di giorni
	if (document.forms["DomandaPartecipazione"].GiorniADSL.value != "")
	{
		document.forms["DomandaPartecipazione"].TotaleADSL.value = aggiungiDecimali(eval(document.forms["DomandaPartecipazione"].GiorniADSL.value) * 50.00);
	}
	else
	{
		document.forms["DomandaPartecipazione"].TotaleADSL.value = aggiungiDecimali(0.00);
	}
	
	// Imposta l'anno dell'edizione
	document.forms["DomandaPartecipazione"].EdizioneExpo.value = myDate.getFullYear();
	
	
	// Calcola il totale dell'area espositiva
	var myTotaleAreaEspositiva = 0.00;
	
	// Nuovo espositore
	if (document.forms["DomandaPartecipazione"].TipoEspositore[0].checked == true)
	{
		if (document.forms["DomandaPartecipazione"].QuotaStandEsterno.checked == true)
		{
			myTotaleAreaEspositiva = 400.00;
			
			// Se l'utente ha inserito un numero nel campo degli altri stand esterni allora li somma al totale dell'area espositiva
			if (document.forms["DomandaPartecipazione"].AltriStandEsterni.value > 0)
			{
				myTotaleAreaEspositiva = (myTotaleAreaEspositiva + (400.00 * document.forms["DomandaPartecipazione"].AltriStandEsterni.value));
			}
		}
		if (document.forms["DomandaPartecipazione"].QuotaStandInterno.checked == true)
		{
			myTotaleAreaEspositiva = (eval(myTotaleAreaEspositiva) + 650.00);
			
			// Se l'utente ha inserito un numero nel campo degli altri stand interni allora li somma al totale dell'area espositiva
			if (document.forms["DomandaPartecipazione"].AltriStandInterni.value > 0)
			{
				myTotaleAreaEspositiva = (myTotaleAreaEspositiva + (650.00 * document.forms["DomandaPartecipazione"].AltriStandInterni.value));
			}
		}
	}
	
	// Espositore abituale
	else if (document.forms["DomandaPartecipazione"].TipoEspositore[1].checked == true)
	{
		if (document.forms["DomandaPartecipazione"].QuotaStandEsterno.checked == true)
		{
			myTotaleAreaEspositiva = 350.00;
			
			// Se l'utente ha inserito un numero nel campo degli altri stand esterni allora li somma al totale dell'area espositiva
			if (document.forms["DomandaPartecipazione"].AltriStandEsterni.value > 0)
			{
				myTotaleAreaEspositiva = (myTotaleAreaEspositiva + (350.00 * document.forms["DomandaPartecipazione"].AltriStandEsterni.value));
			}
		}
		if (document.forms["DomandaPartecipazione"].QuotaStandInterno.checked == true)
		{
			myTotaleAreaEspositiva = (eval(myTotaleAreaEspositiva) + 600.00);
			
			// Se l'utente ha inserito un numero nel campo degli altri stand interni allora li somma al totale dell'area espositiva
			if (document.forms["DomandaPartecipazione"].AltriStandInterni.value > 0)
			{
				myTotaleAreaEspositiva = (myTotaleAreaEspositiva + (600.00 * document.forms["DomandaPartecipazione"].AltriStandInterni.value));
			}
		}
	}
	
	// Socio espositore
	else if (document.forms["DomandaPartecipazione"].TipoEspositore[2].checked == true)
	{
		if (document.forms["DomandaPartecipazione"].QuotaStandEsterno.checked == true)
		{
			myTotaleAreaEspositiva = 300.00;
			
			// Se l'utente ha inserito un numero nel campo degli altri stand esterni allora li somma al totale dell'area espositiva
			if (document.forms["DomandaPartecipazione"].AltriStandEsterni.value > 0)
			{
				myTotaleAreaEspositiva = (myTotaleAreaEspositiva + (300.00 * document.forms["DomandaPartecipazione"].AltriStandEsterni.value));
			}
		}
		if (document.forms["DomandaPartecipazione"].QuotaStandInterno.checked == true)
		{
			myTotaleAreaEspositiva = (eval(myTotaleAreaEspositiva) + 600.00);
			
			// Se l'utente ha inserito un numero nel campo degli altri stand interni allora li somma al totale dell'area espositiva
			if (document.forms["DomandaPartecipazione"].AltriStandInterni.value > 0)
			{
				myTotaleAreaEspositiva = (myTotaleAreaEspositiva + (600.00 * document.forms["DomandaPartecipazione"].AltriStandInterni.value));
			}
		}
	}
	
	// Calcola il totale dei servizi aggiuntivi
	var myTotaleServiziAggiuntivi = 0.00;
	
	// Calcola il totale dei servizi aggiuntivi
	document.forms["DomandaPartecipazione"].TotaleCostiServiziAggiuntivi.value = aggiungiDecimali(eval(document.forms["DomandaPartecipazione"].TotaleADSL.value) + eval(myTotaleServiziAggiuntivi));
	
	document.forms["DomandaPartecipazione"].TotaleCostoAreaEspositiva.value = aggiungiDecimali(eval(myTotaleAreaEspositiva) + eval(document.forms["DomandaPartecipazione"].TotaleCostiServiziAggiuntivi.value));
	
	// Calcola l'iva
	document.forms["DomandaPartecipazione"].Imposta.value = aggiungiDecimali(eval(document.forms["DomandaPartecipazione"].TotaleCostoAreaEspositiva.value) * 0.20);
	
	// Calcola il totale del costo della partecipazione
	document.forms["DomandaPartecipazione"].CostoTotalePartecipazione.value = aggiungiDecimali(eval(document.forms["DomandaPartecipazione"].TotaleCostoAreaEspositiva.value) + eval(document.forms["DomandaPartecipazione"].Imposta.value));
	
	// Calcola l'acconto da versare
	document.forms["DomandaPartecipazione"].TotaleAcconto.value = aggiungiDecimali(eval(document.forms["DomandaPartecipazione"].CostoTotalePartecipazione.value) * 0.50);
}
// fine calcolaDomandaPartecipazione


// Questa funzione riporta true se la form riempita dall'utente  valida
function controllaFormDomandaPartecipazione(theForm)
{
	// Controlla i dati della domanda di partecipazione
	if (theForm.DomandaRagioneSociale.value == "")
	{
		alert("Non avete inserito la ragione sociale!");
		theForm.DomandaRagioneSociale.focus();
		return (false);
	}
	if (theForm.DomandaVia.value == "")
	{
		alert("Non avete inserito l'indirizzo!");
		theForm.DomandaVia.focus();
		return (false);
	}
	if (theForm.DomandaLocalita.value == "")
	{
		alert("Non avete inserito la localita'!");
		theForm.DomandaLocalita.focus();
		return (false);
	}
	if (theForm.DomandaProvincia.value == "")
	{
		alert("Non avete inserito la provincia!");
		theForm.DomandaProvincia.focus();
		return (false);
	}
	if (theForm.DomandaCap.value == "")
	{
		alert("Non avete inserito il CAP!");
		theForm.DomandaCap.focus();
		return (false);
	}
	if (theForm.DomandaTelefono.value == "")
	{
		alert("Non avete inserito il telefono!");
		theForm.DomandaTelefono.focus();
		return (false);
	}
	if (theForm.DomandaFax.value == "")
	{
		alert("Non avete inserito il fax!");
		theForm.DomandaFax.focus();
		return (false);
	}
	if (!isEmail(theForm.email.value))
	{
		alert("Non avete inserito il vostro indirizzo di posta elettronica!");
		theForm.email.focus();
		return (false);
	}
	
	// Controlla i dati della fatturazione
	if (theForm.DomandaFatturareA.value == "")
	{
		alert("Non avete inserito l'indirizzo per la fatturazione!");
		theForm.DomandaFatturareA.focus();
		return (false);
	}
	if (theForm.DomandaPartitaIva.value == "")
	{
		alert("Non avete inserito la Partita IVA!");
		theForm.DomandaPartitaIva.focus();
		return (false);
	}
	
	// Controlla se è un espositore nuovo oppure uno abituale o un socio
	if ((theForm.TipoEspositore[0].checked == false) && (theForm.TipoEspositore[1].checked == false) && (theForm.TipoEspositore[2].checked == false))
	{
		alert("Non avete specificato se siete un nuovo espositore, uno abituale o un socio!");
		theForm.TipoEspositore[0].focus();
		return (false);
	}
	
	if ((theForm.QuotaStandEsterno.checked == false) && (theForm.QuotaStandInterno.checked == false))
	{
		alert("Non avete specificato il tipo di stand che desiderate prenotare!");
		theForm.QuotaStandEsterno.focus();
		return (false);
	}
	if ((theForm.AltriStandEsterni.value > 0) && (theForm.QuotaStandEsterno.checked == false))
	{
		alert("Non potete aggiungere uno stand in più senza selezionare prima lo stand esterno!");
		theForm.QuotaStandEsterno.focus();
		return (false);
	}
	if ((theForm.AltriStandInterni.value > 0) && (theForm.QuotaStandInterno.checked == false))
	{
		alert("Non potete aggiungere uno stand in più senza selezionare prima lo stand interno!");
		theForm.QuotaStandInterno.focus();
		return (false);
	}
	
	// Richiama la funzione che ricalcola il totale della domanda di partecipazione
	calcolaDomandaPartecipazione();
	
	
	// Controlla se è stato scelto il metodo di pagamento
	if (theForm.MetodoPagamento.value == "Scegli un metodo di pagamento")
	{
		alert("Non avete scelto il metodo di pagamento!");
		theForm.MetodoPagamento.focus();
		return (false);
	}
	
	
	// Controlla i dati dell'azienda/ente
	if (theForm.DatiAzienda.value == "")
	{
		alert("Non avete inserito il nome dell'azienda!");
		theForm.DatiAzienda.focus();
		return (false);
	}
	if (theForm.DatiVia.value == "")
	{
		alert("Non avete inserito l'indirizzo!");
		theForm.DatiVia.focus();
		return (false);
	}
	if (theForm.DatiCAP.value == "")
	{
		alert("Non avete inserito il CAP'!");
		theForm.DatiCAP.focus();
		return (false);
	}
	if (theForm.DatiCitta.value == "")
	{
		alert("Non avete inserito la citta'!");
		theForm.DatiCitta.focus();
		return (false);
	}
	if (theForm.DatiProvincia.value == "")
	{
		alert("Non avete inserito la provincia!");
		theForm.DatiProvincia.focus();
		return (false);
	}
	if (theForm.DatiTelefono.value == "")
	{
		alert("Non avete inserito il telefono!");
		theForm.DatiTelefono.focus();
		return (false);
	}
	if (theForm.DatiFax.value == "")
	{
		alert("Non avete inserito il fax!");
		theForm.DatiFax.focus();
		return (false);
	}
	
	// Copia l'indirizzo email nel campo nascosto che indica chi invia il form
	theForm.DomandaEmail.value = theForm.email.value;
	
	// Controlla la descrizione dell'attività
	if (theForm.DatiDescrizioneAttivita.value == "")
	{
		alert("Non avete inserito la descrizione dell'attivita'!");
		theForm.DatiDescrizioneAttivita.focus();
		return (false);
	}
	var myDescrizioneAttivita = theForm.DatiDescrizioneAttivita.value;
	theForm.LunghezzaDescrizione.value = myDescrizioneAttivita.length;
	if (myDescrizioneAttivita.length > 360)
	{
		alert("La descrizione dell'attivita' e' di " + myDescrizioneAttivita.length + " caratteri e non deve superare i 360 caratteri compresi gli spazi!");
		theForm.DatiDescrizioneAttivita.focus();
		return (false);
	}
	
	// Se ha passato tutti i controlli allora convalida la form
	return (true);
}
// end controllaFormDomandaPartecipazione


// Funzione per il caricamento di una foto
function loadPhoto (thePhotoName, theGallery)
{
	var myImage = new Image(650,433);
	myImage.src = "Foto/" + theGallery + "/" + thePhotoName + ".jpg";
	
	document.images[theGallery].src = myImage.src;
}
// fine loadPhoto


// Questa funzione apre una finestra popup con la foto passata come parametro
function PopIt (titolopagina, urlfoto, windowwidth, windowheight)
{  
	var myHtml = "";
	
	myHtml = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" +
	"<html xmlns=\"http://www.w3.org/1999/xhtml\">\n" +
	"<head>\n" +
	"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n" +
	"<meta http-equiv=\"imagetoolbar\" content=\"no\" />" +
	"<title>" + titolopagina + "</title>\n" +
	"<style type=\"text/css\">\n" +
	"<!--\n" +
	"body {\n" +
	"	margin-left: 0px;\n" +
	"	margin-top: 0px;\n" +
	"	margin-right: 0px;\n" +
	"	margin-bottom: 0px;\n" +
	"}\n" +
	"div.divFoto {\n" +
	"	background-image: url(Foto/" + urlfoto + ");\n" +
	"	background-repeat: no-repeat;\n" +
	"	background-position: 0px 0px;\n" +
	"	margin: 0px;\n" +
	"	padding: 0px;\n" +
	"	height: 1200px;\n" +
	"	width: 1200px;\n" +
	"}\n" +
	"-->\n" +
	"</style>\n" +
	"</head>\n" +
	"<body>\n" +
	"<a href=\"javascript:window.close();\"><div class=\"divFoto\"><img src=\"Immagini/vuoto8x8.gif\" alt=\"" + titolopagina + "\" width=\"" + windowwidth + "\" height=\"" + windowheight + "\" hspace=\"0\" vspace=\"0\" border=\"0\" /></a></div>\n" +
	"</body>\n" +
	"</html>\n"; 
	
	popup = window.open("","popDialog","height="+windowheight+",width="+windowwidth+",scrollbars=no");
	popup.document.write(myHtml)  ;
	popup.document.close();
}
// fine PopIt


