function ControllaCODFIS(codfis)
{
    var validi, i, s, set1, set2, setpari, setdisp;
    if( codfis == '' )  return 'Il campo CODICE FISCALE è obbligatorio';
    codfis = codfis.toUpperCase();
    if( codfis.length != 16 )
        return "La lunghezza del codice fiscale non è\n"
        +"corretta: il codice fiscale dovrebbe essere lungo\n"
        +"esattamente 16 caratteri.\n";
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for( i = 0; i < 16; i++ ){
        if( validi.indexOf( codfis.charAt(i) ) == -1 )
            return "Il codice fiscale contiene un carattere non valido `" +
                codfis.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( codfis.charAt(i) )));
    for( i = 0; i <= 14; i += 2 )
        s += setdisp.indexOf( set2.charAt( set1.indexOf( codfis.charAt(i) )));
    if( s%26 != codfis.charCodeAt(15)-'A'.charCodeAt(0) )
        return "Il codice fiscale non è corretto:\n"+
            "il codice di controllo non corrisponde.\n";
    return "";
}

function ControllaPIVA(iva)
{
	if( iva == '' )  return 'Il campo PARTITA IVA è obbligatorio';
	if( iva.length != 11 )
		return "La lunghezza della partita IVA non è\n" +
			"corretta: la partita IVA dovrebbe essere lunga\n" +
			"esattamente 11 caratteri.\n";
	validi = "0123456789";
	for( i = 0; i < 11; i++ ){
		if( validi.indexOf( iva.charAt(i) ) == -1 )
			return "La partita IVA contiene un carattere non valido `" +
				iva.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
	}
	s = 0;
	for( i = 0; i <= 9; i += 2 )
		s += iva.charCodeAt(i) - '0'.charCodeAt(0);
	for( i = 1; i <= 9; i += 2 ){
		c = 2*( iva.charCodeAt(i) - '0'.charCodeAt(0) );
		if( c > 9 )  c = c - 9;
		s += c;
	}
	if( ( 10 - s%10 )%10 != iva.charCodeAt(10) - '0'.charCodeAt(0) )
		return "La partita IVA non è valida:\n" +
			"il codice di controllo non corrisponde.\n";
	return '';
}

function ricambio() {
		 var tipo=document.form1.tipot[0];
		 if(tipo.checked==true) {
			document.form1.ragsoc.value="";
			document.form1.ragsoc.disabled=true;
			document.form1.ragsoc.className="seln";
			document.form1.iva.value="";
			document.form1.iva.disabled=true;
			document.form1.iva.className="seln";
		 } else {
			document.form1.ragsoc.disabled=false;
			document.form1.iva.disabled=false;			
			document.form1.ragsoc.className="sel";
			document.form1.iva.className="sel";
		 }
}

function cambio() {
	var stato=document.getElementById("paese").value;
	if(stato=="2") {
		document.getElementById("reg").innerHTML="<select name=\"regione\" onChange=\"caricaprovincia('provin',this.value);\" class=\"sel\"><option value=\"\">Seleziona la regione</option><option value=\"2\">Abruzzo</option><option value=\"3\">Basilicata</option><option value=\"4\">Calabria</option><option value=\"5\">Campania</option><option value=\"6\">Emilia Romagna</option><option value=\"7\">Friuli Venezia Giulia</option><option value=\"8\">Lazio</option><option value=\"9\">Liguria</option><option value=\"10\">Lombardia</option><option value=\"11\">Marche</option><option value=\"12\">Molise</option><option value=\"13\">Piemonte</option><option value=\"14\">Puglia</option><option value=\"15\">Sardegna</option><option value=\"16\">Sicilia</option><option value=\"17\">Toscana</option><option value=\"18\">Trentino Alto Adige</option><option value=\"19\">Umbria</option><option value=\"20\">Valle d'Aosta</option><option value=\"21\">Veneto</option><option value=\"22\">San Marino</option></select><font class=\"testogrigio\">*</font>";
		document.getElementById("provin").innerHTML="<select name=\"provincia\" id=\"provincia\" class=\"sel\"><option value=\"\">Seleziona la provincia</option></select><font class=\"testogrigio\">*</font>";
		document.getElementById("comin").innerHTML="<select name=\"comune\" id=\"comune\" class=\"sel\"><option value=\"\">Seleziona il comune</option></select><font class=\"testogrigio\">*</font>";
} else {
		document.getElementById("reg").innerHTML="<select name=\"regione\" onChange=\"caricaprovincia('provin',this.value);\" class=\"sel\" disabled><option value=\"\">Seleziona la regione</option></select>";
		document.getElementById("provin").innerHTML="<select name=\"provincia\" id=\"provincia\" class=\"sel\" disabled><option value=\"\">Seleziona la provincia</option></select>";
		document.getElementById("comin").innerHTML="<input type=\"text\" name=\"luogo\" class=\"fieldcc\"><font class=\"testogrigio\">*</font>";	
	}
}

function conf_invio() {
		
     var user  	   = document.form1.username.value;
     var nome      = document.form1.nome.value;
     var ragsoc      = document.form1.ragsoc.value;	 
     var cognome   = document.form1.cognome.value;	 
	 var tipo=document.form1.tipot[1]; 
     var indirizzo = document.form1.indirizzo.value;
     var telefono		= document.form1.telefono.value;	 
     var cap		= document.form1.cap.value;	 	 	 
     var email     = document.form1.email.value;
	 var autorizzazione  = document.form1.autorizzazione.value;	 
     var mail_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
	 var codfis 	   = document.form1.codfis.value;
	 var iva 	   = document.form1.iva.value;
	 err = ControllaCODFIS(codfis);
	 errs = ControllaPIVA(iva);
	 var stato=document.getElementById("paese").value;
	
		if ((user == "") || (user == "undefined") || (user.length<"6")) {
           alert("Il campo USER deve essere almeno di 6 caratteri.");
           document.form1.username.focus();
           return false;        }	
		else if ((nome == "") || (nome == "undefined")) {
           alert("Il campo NOME è obbligatorio.");
           document.form1.nome.focus();           
           return false;
        }		  
		else if ((cognome == "") || (cognome == "undefined")) {
           alert("Il campo COGNOME è obbligatorio.");
           document.form1.cognome.focus();           
           return false;
        }		
		else if ((tipo.checked == true) && (ragsoc == "")) {
           alert("Il campo RAGIONE SOCIALE è obbligatorio.");
           document.form1.ragsoc.focus();           
           return false;
        }				
        else if (!mail_reg_exp.test(email) || (email == "") || (email == "undefined")) {
           alert("Inserire un indirizzo E-mail corretto.");
           document.form1.email.focus();           
           return false;
        }		   
		else if (stato=="2" && (err > '' && tipo.checked == false)) {
	   alert(err);
	   document.form1.codfis.focus();
	   return false;
		}
		else if (stato=="2" && ((tipo.checked == true) && (codfis == ""))) {
           alert("Il campo CODICE FISCALE è obbligatorio.");
           document.form1.codfis.focus();           
           return false;
        }		
		else if (stato=="2" && ((errs > '')  && (tipo.checked == true))) {
	    alert(errs);
	   document.form1.iva.focus();
	   return false;
		}		
        else if ((indirizzo == "") || (indirizzo == "undefined")) {
           alert("Il campo INDIRIZZO è obbligatorio.");
           document.form1.indirizzo.focus();           
           return false;
        }	
        else if (stato=="2" && ((isNaN(cap)) || (cap.length != 5))) {
           alert("Il campo CAP deve essere composto da 5 numeri.");
           document.form1.cap.focus();           
           return false;
		}
        else if (stato=="2" && ((document.form1.comune.value == "") || (document.form1.comune.value == "undefined"))) {
           alert("Il campo COMUNE è obbligatorio.");
           document.form1.comune.focus();           
           return false;
		}
        else if (stato!="2" && ((document.form1.luogo.value == "") || (document.form1.luogo.value == "undefined"))) {
           alert("Il campo COMUNE è obbligatorio.");
           document.form1.luogo.focus();           
           return false;
        }	
        else if ((telefono == "") || (telefono == "undefined")) {
           alert("Il campo TELEFONO è obbligatorio.");
           document.form1.telefono.focus();           
           return false;
        }		
        else if (!document.form1.autorizzazione.checked) {
           alert("Selezionare l'autorizzazione dei dati personali."); 	   
           return false;
        } 		
        //INVIA IL form1
        else {
           document.form1.submit();
        }
     
  }
