// JavaScript Document




//controllo nome
function controllo_nome(campo) {
	/* 
	Spiegazione della Regular Expression Nome
	^[a-zA-Z]{1} -> primo carattere una lettera
	[a-zA-Z\é\è\ò\à\ù\ì\' ]{2,29} -> da 2 a 29 lettere + à è é ò ù ì ' e lo spazio
	*/
	var RegExpNome = /^[a-zA-Z]{1}[a-zA-Z\u00C0-\u00F6\u00F8-\u00FF\'\s]{2,29}$/;
	var strNome = document.form[campo].value;
	//controllo che il Nome sia nel corretto formato
	if(!RegExpNome.test(strNome)) {
		return(false); 
	} else {
		return(true); 
	  }
}

//controllo cognome
function controllo_cognome(campo) {
	/* 
	Spiegazione della Regular Expression Cognome
	^[a-zA-Z]{1} -> primo carattere una lettera
	[a-zA-Z\u00C0-\u00F6\u00F8-\u00FF\'\s]{2,29} -> da 2 a 29 lettere + à è é ò ù ì ' e lo spazio
	per i caratterei accentati ho dovuto usare delle sequenze unicode
	*/
	var RegExpCognome = /^[a-zA-Z]{1}[a-zA-Z\u00C0-\u00F6\u00F8-\u00FF\'\s]{2,29}$/;
	var strCognome = document.form[campo].value;
  	//controllo che il Cognome sia nel corretto formato
	if(!RegExpCognome.test(strCognome)) {
    	return(false); 
	} else {
		return(true); 
	  }
}

//controllo ragione sociale
function controllo_ragione_sociale(campo) {
	/* 
	Spiegazione della Regular Expression RagSoc
	^[a-zA-Z]{1} -> primo carattere una lettera
	[a-zA-Z0-9 \.\-\']{2,49} -> da 2 a 49 lettere/cifre o spazio . - '
	*/
	var RegExpRagSoc = /^[a-zA-Z]{1}[a-zA-Z0-9 \.\-\']{2,49}$/;
	var strRagSoc = document.form[campo].value;
	if(!RegExpRagSoc.test(strRagSoc)) {
		return(false);
	} else {
		return(true); 
	}
}

//controllo email
function controllo_email(campo) {
	/* 
	Spiegazione della Regular Expression Email
	^([a-z0-9]{1} -> il primo carattere deve essere un numero tra [0-9] o una lettera tra [a-z]
	[a-z0-9\_\-\.]{1,25} -> la seconda parte può essere da 1 a 25 lettere, numeri e  _ - .
	\@{1} -> 1 simbolo chiocciola
	[a-z0-9]{2,25} -> da 2 a 25 lettere e numeri
	\.{1} -> 1 punto
	[a-z]{2,4}$ -> da 2 a 4 lettere, con lettera alla fine
	*/
	var RegExpEmail = /^([a-z0-9]{1}[a-z0-9\_\-\.]{1,38})\@{1}([a-z0-9]{2,35})\.{1}([a-z]{2,4}$)/;
	var strEmail = document.form[campo].value;
  	//controllo che l'email sia nel corretto formato
	if(!RegExpEmail.test(strEmail)) {
    	return(false);
	} else {
		return(true); 
	  }
}

//vengono confrontati 2 campi
function controllo_confrontocampi(campo1,campo2) {
	
	if (document.form[campo1].value!=document.form[campo2].value) {
		return (false);
	} else {
		return (true);
	  }
}

//controlla che nel menu a tendina non sia selezionato il primo valore (solitamente "scegli...")
function controllo_campiselect(campo) {

	if ((document.form[campo].selectedIndex>0)) {
		return (true);
	} else {
		return (false); 
	  }
}

//controllo sito
function controllo_sito(campo) {
	/* 
	Spiegazione della Regular Expression Sito
	w{3} -> i primi 3 caratteri saranno w
	\.{1} -> punto
	[a-z0-9\-]{3,60} -> da 3 a 60 lettere, numeri e  - 
	\.{1} -> 1 punto
	[a-z]{2,4}$ -> da 2 a 4 lettere, con lettera alla fine
	*/
	var RegExpSito = /^[w]{3}\.{1}[a-z0-9\-]{3,60}\.{1}[a-z]{2,4}$/;
	var strSito = document.form[campo].value;
  	//controllo che il sito sia nel corretto formato
	if(!RegExpSito.test(strSito)) {
    	return(false);
	} else {
		return(true); 
	  }
}


//controllo indirizzo
function controllo_indirizzo(campo) {
	/* 
	Spiegazione della Regular Expression Indirizzo
	^[a-zA-Z]{1} -> inizia con lettere
	[a-zA-Z0-9\,\\\/\- ]{5,118} -> da 5 a 118 lettere/cifre o , \ / - spazio
	[a-zA-Z0-9]{1}$ -> finisce con lettere/cifre
	*/
	var RegExpIndirizzo = /^[a-zA-Z]{1}[a-zA-Z0-9\,\\\/\- ]{4,118}[a-zA-Z0-9]{1}$/;
	var strIndirizzo = document.form[campo].value;
  	//controllo che l'Indirizzo sia nel corretto formato
	if(!RegExpIndirizzo.test(strIndirizzo)) {
    	return(false); 
	} else {
		return(true); 
	  }
}


//controllo città o nazione
function controllo_citta_nazione(campo) {
	/* 
	Spiegazione della Regular Expression Città
	[a-zA-Z \-]{3,50} -> da 3 a 50 lettere e spazio -
	*/
	var RegExpCitta = /^[a-zA-Z \-]{3,50}$/;
	var strCitta = document.form[campo].value;
  	//controllo che la Città sia nel corretto formato
	if(!RegExpCitta.test(strCitta)) {
    	return(false); 
	} else {
		return(true); 
	  }
}

//controllo provincia
function controllo_provincia(campo) {
	/* 
	Spiegazione della Regular Expression Provincia
	[a-zA-Z]{2} -> da 2 lettere
	*/
	var RegExpProvincia = /^[a-zA-Z]{2}$/;
	var strProvincia = document.form[campo].value;
  	//controllo che la Password sia nel corretto formato
	if(!RegExpProvincia.test(strProvincia)) {
    	return(false); 
	} else {
		return(true); 
	  }
}



//controllo cap
function controllo_cap(campo) {
	/* 
	Spiegazione della Regular Expression CAP
	^[0-9]{5}$ -> il primo e l'ultimo carattere deve essere un numero tra [0-9] 
				  e il numero è composto da 5 cifre	
	*/
	var RegExpCAP = /^[0-9]{5}$/;
	var strCAP = document.form[campo].value;
  	//controllo che il Cap sia nel corretto formato
	if(!RegExpCAP.test(strCAP)) {
    	return(false); 
	} else {
		return(true); 
	  }
}


//controllo telefono/fax/cell
function controllo_telfaxcel(campo) {
	/* 
	Spiegazione della Regular Expression Telefono/Fax/Cell
	^[0-9]{1,25}$ -> formato da 25 cifre
	*/
	var RegExpTelFax = /^[0-9]{5,25}$/;
	var strTelFax = document.form[campo].value;
  	//controllo che il Telefono sia nel corretto formato
	if(!RegExpTelFax.test(strTelFax)) {
    	return(false); 
	} else {
		return(true); 
	  }
}

//controllo testo generico
function controllo_testo_generico(campo,lungh) {
	/* 
	controllo solo la lunghezza minima del testo
	*/
	var strCampo = document.form[campo].value;
	//controllo che il Testo Generico sia abbastanza lungo
	//alert(strCampo.length);
	if(strCampo.length<lungh) {
		return(false); 
	} else {
		return(true); 
	  }
}	

//--------------------------------------------------------------------------------------------------------

//controlla che non sia selezionato il radio button del "non accetto"
function controllocampiradio(id) {
	
	if (document.getElementById(id).checked) {
		return (false);
	} else {
		return (true); 
	  }
}

//controllo partita iva
function controllo_piva(campo) {
	
	var pi=document.form[campo].value;
	if( pi == '' ) {
		return (false);
		//return("non presente");
	} else if( pi.length != 11 ) {
		return (false);
		//return("lunghezza sbagliata");
      } else {       	
   			validi = "0123456789";
			pi_controllo_caratteri = 0;
    		for( i = 0; i < 11; i++ ) {
        		if( validi.indexOf( pi.charAt(i) ) == -1 ) {
            		return (false);
					// return "La partita IVA contiene un carattere non valido `" +
               		//pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
				} else {
				  	pi_controllo_caratteri++;
				  }
   			}
			if(pi_controllo_caratteri==11) {
				s = 0;
				for( i = 0; i <= 9; i += 2 ) {
					s += pi.charCodeAt(i) - '0'.charCodeAt(0);
				}
				for( i = 1; i <= 9; i += 2 ) {
					c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
					if( c > 9 ) {
						c = c - 9;
					}
					s += c;
				}
				if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) ) {
					return (false);
					//return("non valida");
				} else {
					return (true);
				  }
			}
		}
}

//controllo codice fiscale
function controllo_codfisc(campo) {
   
	var cf=document.form[campo].value;
	var validi, i, s, set1, set2, setpari, setdisp;
    if( cf == '' ) {
		return (false);
		//return ("non presente");
	}
	cf = cf.toUpperCase();
    if( cf.length != 16 ) {
		return (false);
        //return ("lunghezza sbagliata");
    }
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for( i = 0; i < 16; i++ ) {
        if( validi.indexOf( cf.charAt(i) ) == -1 ) {
            return (false);
			//return "Il codice fiscale contiene un carattere non valido `" +
            //cf.charAt(i) + "'.\nI caratteri validi sono le lettere e le cifre.\n";
		}
    }
    set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
    s = 0;
    for( i = 1; i <= 13; i += 2 ) {
        s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	}
    for( i = 0; i <= 14; i += 2 ) {
        s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	}
    if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) ) {
        return (false);
		//return ("non valido");
	} else {
		return(true);
	  }
}


//controllo username
function controllo_username(campo) {
	/* 
	Spiegazione della Regular Expression Username
	^[a-zA-Z]{1} -> primo carattere una lettera
	[a-zA-Z0-9]{6,19} -> da 6 a 19 lettere o cifre
	*/
	var RegExpUsername = /^[a-zA-Z]{1}[a-zA-Z0-9]{3,19}$/;
	var strUsername = document.form[campo].value;
	//controllo che lo Username sia nel corretto formato
	if(!RegExpUsername.test(strUsername)) {
		return(false); 
	} else {
		return(true); 
	  }
}

//controllo password
function controllo_password(campo) {
	/* 
	Spiegazione della Regular Expression Password
	[a-zA-Z0-9]{8,20} -> da 8 a 20 lettere o cifre
	*/
	var RegExpPassword = /^[a-zA-Z0-9]{8,20}$/;
	var strPassword = document.form[campo].value;
  	//controllo che la Password sia nel corretto formato
	if(!RegExpPassword.test(strPassword)) {
		return(false); 
	} else {
		return(true); 
	  }
}

//controllo domanda di controllo
function controllo_domanda_controllo(campo) {
	/* 
	Spiegazione della Regular Expression Domanda di controllo
	^[a-zA-Z]{1} -> primo carattere una lettera
	[a-zA-Z0-9 \,\-\(\)\.]{2,49} -> da 2 a 49 lettere, cifre o spazio , - ( ) .
	*/
	var RegExpDomanda = /^[a-zA-Z]{1}[a-zA-Z0-9 \,\-\(\)\.]{2,50}$/;
	var strDomanda = document.form[campo].value;
  	//controllo che la Domanda sia nel corretto formato
	if(!RegExpDomanda.test(strDomanda)) {
		return(false);   
	} else {
		return(true); 
	  }
}

//controllo risposta di controllo
function controllo_risposta_controllo(campo) {
	/* 
	Spiegazione della Regular Expression Risposta di controllo
	[a-zA-Z0-9\40]{1,25} -> da 1 a 25 lettere, cifre o spazio ?
	*/
	var RegExpRisposta = /^[a-zA-Z0-9 ]{1,25}$/;
	var strRisposta = document.form[campo].value;
  	//controllo che la Risposta sia nel corretto formato
	if(!RegExpRisposta.test(strRisposta)) {
		return(false); 
	} else {
		return(true); 
	  }
}








//controllo colore in html
function controllo_colore_html(campo) {
	/* 
	Spiegazione della Regular Expression Colore Html di controllo
	\#{1} -> il primo carattere sarà #
	[a-zA-Z0-9]{6} -> ci saranno 6 lettere, cifre
	*/
	var RegExpColorHtml = /^\#{1}[a-zA-Z0-9]{6}$/;
	var strColorHtml = document.form[campo].value;
  	if(!RegExpColorHtml.test(strColorHtml)) {
    	return(false); 
	} else {
		return(true); 
	  }
}	

//controllo campo ricerca email
function controllo_campo_ricerca_email(campo) {
	/* 
	Spiegazione della Regular Expression Campo Ricerca Email di controllo
	[a-zA-Z]{1} -> il primo carattere sarà una lettera
	[a-zA-Z0-9]{1,} -> da 1 a n caratteri possono essere lettere, cifre o
	 _ . - @
	*/
	var RegExpSearchEmail = /^[a-zA-Z]{1}[a-zA-Z0-9\_\.\-\@]{1,}$/;
	var strSearchEmail = document.form[campo].value;
  	if(!RegExpSearchEmail.test(strSearchEmail)) {
    	return(false); 
	} else {
		return(true); 
	  }
}	

	

