// JavaScript Document

// VARIABILI GLOBALI:
var varNome = false; //Variabile che dice se il nome utente è valido
var varCognome = false; //Variabile che dice se il cognome utente è valido
var varCodiceFiscale = false; //Variabile che dice se il codice fiscale è inserito corretto sintatticamente
var varDataNascita = false;
var varProvincia = false;
var varComune = false;
var varCap = false;
var varIndirizzo = false;
var varCivico = false;
var varTelefono = false;
var varInformativa = false;
var varTermini = false;
var varPosteElettronica = false;
var varConfermaPostaElettronica = false;
var varPassword = false;
var varConfermaPassword = false;

function visualizzaSubmit(){
	if (varNome == true && varCognome == true && varCodiceFiscale == true && varDataNascita == true &&
			varProvincia == true && varComune == true && varCivico == true && varTelefono == true && 
			varInformativa == true && varPosteElettronica== true && varConfermaPostaElettronica==true &&
			varPassword == true && varConfermaPassword == true && varTermini == true){
		//alert("CAMPI CORRETTI");
		document.getElementById('REGISTRA').innerHTML = "<input name=\"Submit\" type=\"submit\" class=\"textProdottoTitle\" value=\"Registrati al Sito\" />";
	}
else document.getElementById('REGISTRA').innerHTML = "<input name=\"Submit\" type=\"submit\" class=\"textProdottoTitle\" value=\"Registrati al Sito\" />";
	//else document.getElementById('REGISTRA').innerHTML = "Se tutti i campi sono corretti al posto di questo testo comparirà il pulsante di registrazione ";
		
	}

function userPostaElettronica(){document.registrazione.username.value = document.registrazione.email.value;}


// FUNZIONI DI CONTROLLO ERRORI

// Validazione della informativa del nostro sito
function checkInformativa(){
	if(document.registrazione.informativa.value == "SI"){
		document.getElementById('alertInformativa').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" id=\"valInfo\" align=\"middle\"/> Accetti le Condizioni";
		varInformativa = true;
	}
	else{
		document.getElementById('alertInformativa').innerHTML="<img src=\"jpg/nonValidato.jpg\" alt=\"Dato nonValidato\" width=\"16\" height=\"16\" id=\"valInfo\" align=\"middle\"/> NON Accetti le Condizioni";
		varInformativa = false;
		}
	visualizzaSubmit();
}

// Validazione dei termini di utilizzo del nostro sito
function checkTermini(){
	if(document.registrazione.termini.value == "SI"){
		document.getElementById('alertTermini').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" id=\"valInfo\" align=\"middle\"/> Accetti le Condizioni";
		varTermini = true;
	}
	else{
		document.getElementById('alertTermini').innerHTML="<img src=\"jpg/nonValidato.jpg\" alt=\"Dato nonValidato\" width=\"16\" height=\"16\" id=\"valInfo\" align=\"middle\"/> NON Accetti le Condizioni";
		varTermini = false;
		}
	visualizzaSubmit();

}

// Controllo errori Nome
function checkName(){
	nomeUtente = document.registrazione.nome.value;
	//alert("-"+nomeUtente+"-");
	flagNumber = false;
	len = document.registrazione.nome.value.length;
	//regExprNome = "^[a-zA-Z]{1,24}$";
	regExprNome = /^[a-zA-Z]+([\s]{1})?[a-zA-Z]*$/;
	//regExprNome = /[-+]?[0-9]*\,?[0-9]+/;
	var result = nomeUtente.search(regExprNome);
	
		if( !result ) { 
			varNome=true; 
			document.getElementById('alertNome').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" id=\"valNome\" align=\"middle\"/> Testo Valido";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varNome=false; 
				document.getElementById('alertNome').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" id=\"valNome\" align=\"middle\" /> Testo Non Valido";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
				
		// CONVERSIONE TESTO IN MAIUSCOLO
		document.registrazione.nome.value = document.registrazione.nome.value.toUpperCase();
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero
		visualizzaSubmit();
	}
	
// Controllo errori Cognome
function checkCognome(){
	cognomeUtente = document.registrazione.cognome.value;
	flagNumber = false;
	len = document.registrazione.cognome.value.length;
	regExprNome = /^[a-zA-Z]+[']?([\s]{1})?[a-zA-Z]*$/;
	var result = cognomeUtente.search(regExprNome);
	
		if( !result ) { 
			varCognome=true; 
			document.getElementById('alertCognome').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Testo Valido";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varCognome=false; 
				document.getElementById('alertCognome').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Testo Non Valido";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		
		document.registrazione.cognome.value = document.registrazione.cognome.value.toUpperCase();
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero

		visualizzaSubmit();
	}
	
	
// Controllo errori Codice Fisciale
function checkCodiceFiscale(){
	codiceFiscale = document.registrazione.codiceFiscale.value;
	flagNumber = false;
	len = document.registrazione.codiceFiscale.value.length;
	regExprNome = /^(([a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$)|(^[0-9]{11}$))|([0-9]{11}$)/;
	var result = codiceFiscale.search(regExprNome);
	
		if( !result ) { 
			varCodiceFiscale=true; 
			document.getElementById('alertCodiceFiscale').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Codice Fiscale Valido";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varCognome=false; 
				document.getElementById('alertCodiceFiscale').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Codice Fiscale Non Valido";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		
		document.registrazione.codiceFiscale.value = document.registrazione.codiceFiscale.value.toUpperCase();
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero

		visualizzaSubmit();
	}
	
// Controllo errori Data di Nascita
function checkDataNascita(){
	giorno = document.registrazione.giorno.value;
	mese = document.registrazione.mese.value;
	anno = document.registrazione.anno.value;
	flagNumber = false;

	regExprGiorno = "^[0-9]{2}$";
	regExprMese   = "^[0-9]{2}$";
	regExprAnno	  = "^[0-9]{4}$";
	
	var resultG = giorno.search(regExprGiorno);
	var resultM = mese.search(regExprMese);
	var resultA = anno.search(regExprAnno);
	
		if( !resultG && !resultM && !resultA) { 
			varDataNascita = true; 
			document.getElementById('alertDataNascita').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Data di Nascita Valida";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varDataNascita=false; 
				document.getElementById('alertDataNascita').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Data di Nascita Non Valida";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 

		visualizzaSubmit();
}

// controllo inserimento comune avvenuto
function checkComune(){
	comuneUtente = document.registrazione.comune.value;
	flagNumber = false;
	len = document.registrazione.comune.value.length;
	//regExprComune = "^[a-zA-Z]{1,24}$";
	//var result = cognomeUtente.search(regExprNome);
	
		if( len > 0 ) { 
			varComune=true; 
			document.getElementById('alertComune').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Comune Selezionato";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varComune=false; 
				document.getElementById('alertComune').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Selezionare il Comune";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero
		visualizzaSubmit();
	}


// controllo inserimento provincia avvenuto
function checkProvincia(){
	provinciaUtente = document.registrazione.provincia.value;
	flagNumber = false;
	len = document.registrazione.provincia.value.length;
	//regExprComune = "^[a-zA-Z]{1,24}$";
	//var result = cognomeUtente.search(regExprNome);
	
		if( len > 0 ) { 
			varProvincia=true; 
			document.getElementById('alertProvincia').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Provincia Selezionata";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varProvincia=false; 
				document.getElementById('alertProvincia').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Selezionare La Provincia";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero
		visualizzaSubmit();
	}
	
// Controllo errori CAP
function checkCap(){
	capUtente = document.registrazione.cap.value;
	flagNumber = false;
	len = document.registrazione.cap.value.length;
	regExprNome = /\d{5}/;
	var result = capUtente.search(regExprNome);
	
		if( !result ) { 
			varCap=true; 
			document.getElementById('alertCap').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Cap Valido";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varCap=false; 
				document.getElementById('alertCap').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Cap Non Valido";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		
		//document.registrazione.cognome.value = document.registrazione.cognome.value.toUpperCase();
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero

		visualizzaSubmit();
	}
	
// Controllo errori Indirizzo
function checkIndirizzo(){
	indirizzoUtente = document.registrazione.indirizzo.value;
	flagNumber = false;
	len = document.registrazione.indirizzo.value.length;
	regExprNome = /^[a-zA-Z]+[a-zA-Z0-9]*[\s]*/;
	var result = indirizzoUtente.search(regExprNome);
	
		if( !result ) { 
			varIndirizzo=true; 
			document.getElementById('alertIndirizzo').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Indirizzo Valido";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varIndirizzo=false; 
				document.getElementById('alertIndirizzo').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Indirizzo Non Valido";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		
		document.registrazione.indirizzo.value = document.registrazione.indirizzo.value.toUpperCase();
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero

		visualizzaSubmit();
	}
	
// Controllo errori Numero Civico
function checkNumeroCivico(){
	civicoUtente = document.registrazione.civico.value;
	flagNumber = false;
	len = document.registrazione.civico.value.length;
	regExprNome = /^[a-zA-Z0-9]+$/;
	var result = civicoUtente.search(regExprNome);
	
		if( !result ) { 
			varCivico=true; 
			document.getElementById('alertNumeroCivico').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Numero Civico Valido";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varCivico=false; 
				document.getElementById('alertNumeroCivico').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Numero Civico Non Valido";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		
		document.registrazione.civico.value = document.registrazione.civico.value.toUpperCase();
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero

		visualizzaSubmit();
	}
	

// Controllo errori Numero di Telefono
function checkTelefono(){
	telefonoUtente = document.registrazione.telefono.value;
	flagNumber = false;
	len = document.registrazione.telefono.value.length;
	regExprNome = /^[+]?[0-9]*$/;
	//regExprNome = /(\(?\+?[0-9]*\)?)?[0-9_\- \(\)\/]*/;
	var result = telefonoUtente.search(regExprNome);
	
		if( !result && len >= 7) { 
			varTelefono=true; 
			document.getElementById('alertTelefono').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Numero Valido";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varTelefono=false; 
				document.getElementById('alertTelefono').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Numero Non Valido";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		
		//document.registrazione.telefono.value = document.registrazione.telefono.value.toUpperCase();
		//document.registrazione.cognome.value = varNome;
		//isNaN valuta un argomento per determinare se non è un numero

		visualizzaSubmit();
	}
	

function checkPostaElettronica(){
	regExprNome = /[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/;
	postaElettronica = document.registrazione.email.value;
	var result = postaElettronica.search(regExprNome);
	
		if( !result ) { 
			varPosteElettronica=true; 
			document.getElementById('alertPostaElettronica').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Posta Elettronica Valida";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varPosteElettronica=false; 
				document.getElementById('alertPostaElettronica').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Posta Elettronica Non Valido";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
	}
	
function checkConfermaEmail(){
	postaElettronica = document.registrazione.email.value;
	confermaPostaElettronica = document.registrazione.confermaEmail.value;
	if(confermaPostaElettronica && confermaPostaElettronica == postaElettronica){
		varConfermaPostaElettronica=true; 
		document.getElementById('alertConfermaPostaElettronica').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Conferma Posta Elettronica Valida";
		}
	else{
		varConfermaPostaElettronica=false; 
		document.getElementById('alertConfermaPostaElettronica').innerHTML="<img src=\"jpg/nonValidato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Corrispondeza NON Valida";
		}
	visualizzaSubmit();
	}
	
function checkPassword(){
	regExprNome = /^[0-9a-zA-Z]*$/;
	passwordUtente = document.registrazione.password.value;
	var result = passwordUtente.search(regExprNome);
	
		if( !result &&  passwordUtente.length >= 8 ) { 
			varPassword=true; 
			document.getElementById('alertPasswd').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Password Valida";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varPassword=false; 
				document.getElementById('alertPasswd').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Password Non Valida";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		visualizzaSubmit();
	}

function checkConfermaPassword(){
	regExprNome = /^[0-9a-zA-Z]*$/;
	passwordUtente = document.registrazione.password.value;
	passwordConfermaUtente = document.registrazione.confermaPassword.value;
	var result = passwordUtente.search(regExprNome);
	
		if( !result &&  passwordConfermaUtente.length >= 8 && passwordUtente == passwordConfermaUtente) { 
			varConfermaPassword=true; 
			document.getElementById('alertConfermaPasswd').innerHTML="<img src=\"jpg/Validato.jpg\" alt=\"Dato Validato\" width=\"16\" height=\"16\" align=\"middle\"/> Password di Conferma Valida";
			//document.getElementById('valNome').src='jpg/Validato.jpg'; 
			} 
			else { 
				varConfermaPassword=false; 
				document.getElementById('alertConfermaPasswd').innerHTML=" <img src=\"jpg/nonValidato.jpg\" alt=\"Dato Non Validato\" width=\"16\" height=\"16\" align=\"middle\" /> Password di Conferma Non Valida";
				//document.getElementById('valNome').src='jpg/nonValidato.jpg';
				} 
		visualizzaSubmit();
	}

function verificaSicurezza(){
	passwordUtente = document.registrazione.password.value;
	checkAlphaMaiuscolo = "QWERTYUIOPASDFGHJKLZXCVBNM";
	checkAlphaMinuscolo = "aqwertyuiopasdfghjklzxcvbnm";
	checkNumber= "0123456789";
	
	if( doesContain(passwordUtente, checkAlphaMaiuscolo) > 0 && passwordUtente.length >= 10 &&
			doesContain(passwordUtente, checkAlphaMinuscolo) > 0 && 
				doesContain(passwordUtente, checkNumber) > 0){ document.getElementById('sicurezzaPassword').innerHTML="ABBASTANZA SICURA";}
	else if( doesContain(passwordUtente, checkAlphaMaiuscolo) > 0 ||
				doesContain(passwordUtente, checkAlphaMinuscolo) > 0 && 
					doesContain(passwordUtente, checkNumber) > 0) {document.getElementById('sicurezzaPassword').innerHTML="POCO SICURA";}
	else {	document.getElementById('sicurezzaPassword').innerHTML="NON SICURA";}
	
	}

function doesContain(strPassword, strCheck)
 {
    	nCount = 0; 
 
	for (i = 0; i < strPassword.length; i++) 
	{
		if (strCheck.indexOf(strPassword.charAt(i)) > -1) 
		{ 
	        	nCount++; 
		} 
	} 
 
	return nCount; 
} 
