function checkRequiredFields(modifica) {

	var message = new Array();
	var errorLevel;
	errorLevel = 0;
	
	message[0]  = "";
   	message[1] = "Inserire il nome";
	message[2] = "Inserire il cognome";
	message[3] = "Inserire l'indirizzo e-mail";
	message[4] = "Inserire l'indirizzo";
	message[5] = "Inserire il comune";
	message[6] = "Inserire il cap";
	message[7] = "Inserire la nazione";
	message[8] = "Inserire il codice fiscale";
	message[9] = "Selezionare la provincia";
	message[10] = "Inserire un nome utente. Non deve contenere nè spazi nè caratteri particolari, come accenti, ecc..";
	message[11] = "Inserire la password. Non deve contenere nè spazi nè caratteri particolari, come accenti, ecc..";
	message[12] = "Inserire la conferma password. Non deve contenere nè spazi nè caratteri particolari, come accenti, ecc..";
	message[13] = "Le due password non coincidono";
	message[14] = "Accettare il trattamento dei dati personali";
	message[15] = "Il codice fiscale non è corretto";
	message[16] = "Selezionare l'occupazione";

	if ((errorLevel == 0) && ((document.FormN.nome.value.length == 0) || isSpace(document.FormN.nome.value))) {
		errorLevel = 1;	
		document.FormN.nome.focus();
	}
	if ((errorLevel == 0) && ((document.FormN.cognome.value.length == 0) || isSpace(document.FormN.cognome.value))) {
		errorLevel = 2;	
		document.FormN.cognome.focus();
	}
	if ((errorLevel == 0) && ((document.FormN.email.value.length == 0) || isSpace(document.FormN.email.value))) {
		errorLevel = 3;	
		document.FormN.email.focus();
	}
	if ((errorLevel == 0) && ((document.FormN.indirizzo.value.length == 0) || isSpace(document.FormN.indirizzo.value))) {
		errorLevel = 4;	
		document.FormN.indirizzo.focus();
	}
	if ((errorLevel == 0) && ((document.FormN.comune.value.length == 0) || isSpace(document.FormN.comune.value))) {
		errorLevel = 5;	
		document.FormN.comune.focus();
	}
	if ((errorLevel == 0) && ((document.FormN.cap.value.length == 0) || isSpace(document.FormN.cap.value))) {
		errorLevel = 6;	
		document.FormN.cap.focus();
	}
	if ((errorLevel == 0) && ((document.FormN.nazione.value.length == 0) || isSpace(document.FormN.nazione.value))) {
		errorLevel = 7;	
		document.FormN.nazione.focus();
	}
	if ((errorLevel == 0) && ((document.FormN.codice_fiscale.value.length == 0) || isSpace(document.FormN.codice_fiscale.value))) {
		errorLevel = 8;	
		document.FormN.codice_fiscale.focus();
	}
	if ( (errorLevel == 0) && (document.FormN.idprovincia.value == -2) ) {
		errorLevel = 9;	
	}
	if ( (errorLevel == 0) && (document.FormN.idoccupazione.value == -1) ) {
		errorLevel = 16;	
	}
	if ( (errorLevel == 0) && ((document.FormN.username.value.length == 0) || isSpace(document.FormN.username.value) || !check_caretteri(document.FormN.username.value)) ) {
		errorLevel = 10;	
		document.FormN.username.focus();
	}
	
	if ((!(modifica)) || ( modifica && ((document.FormN.password.value.length !=0) || (document.FormN.conferma_password.value.length !=0)))) {
	
		if ( (errorLevel == 0) && ((document.FormN.password.value.length == 0) || isSpace(document.FormN.password.value) || !check_caretteri(document.FormN.password.value)) ) {
			errorLevel = 11;	
			document.FormN.password.focus();
		}
		if ( (errorLevel == 0) && ((document.FormN.conferma_password.value.length == 0) || isSpace(document.FormN.conferma_password.value) || !check_caretteri(document.FormN.conferma_password.value)) ) {
			errorLevel = 12;	
			document.FormN.conferma_password.focus();
		}
	}
	
	if ( (errorLevel == 0) && ((document.FormN.password.value) != (document.FormN.conferma_password.value)) ) {
		errorLevel = 13;	
		document.FormN.conferma_password.focus();
	}
	
	if ( (errorLevel == 0) && (document.FormN.privacy.checked == false) ) {
		errorLevel = 14;	
	}
	if ( (errorLevel == 0) && !(codiceFISCALE(document.FormN.codice_fiscale.value)) ) {
		errorLevel = 15;
		document.FormN.codice_fiscale.focus();
	}

	if (errorLevel > 0 ) { 
		alert(message[errorLevel]); 
		return false;
	}
	
	if (!(modifica))	{
		// AJAX per controllo username
		valore_campo_controllare = "username"; // nome del campo da controllare (l'id o il name del campo input type)
		nome_form = "FormN";	// nome della form
		nome_campo_messaggio = "msg_errore_username";	// nome del campo che contiene il messaggio di errore
		pagina_check = "check_username.php?parametro=";	// la pagina che si occupa di effettuare il controllo
		messaggio_di_errore = "lo username esiste";	// messaggio di errore restituito dal server
		ckeck_campo(valore_campo_controllare, nome_form, nome_campo_messaggio, pagina_check, messaggio_di_errore);
		
		return false;
	}

}