function checkOnSubmit(formAssistenza)
{
	var missingHeader = "Completare i campi:\n";
	var errorHeader = "\nControllare i dati:\n";
	var missingList = "";
	var errorTelefono = "";
	var errorMail = "";	
	var errorList = "";
	var errorOrario = "";
	var errorBNA4 = "";
	var errorColoriA4 = "";
	var errorBNA3 = "";
	var errorColoriA3 = "";
	var message = "";
	var selected = 0;
	var erroraltro = "";
	var errorcodice = "";	

// Ragione sociale
	if (formAssistenza.rag_sociale.value==""){
		missingList += ".  Ragione sociale\n";
	}

// Indirizzo d'installazione
	if (formAssistenza.indirizzo.value==""){
		missingList += ".  Indirizzo d'installazione\n";
	}

// Referente
	if (formAssistenza.referente.value==""){
		missingList += ".  Referente\n";
	}

// Email
    if (formAssistenza.email.value==""){
		missingList += ".  E mail\n";
	}
	if (formAssistenza.email.value!="") {
		email = formAssistenza.email.value
        invalidChars = " /:,;"
        
        for(i=0; i<invalidChars.length;i++){
            badChar = invalidChars.charAt(i)        
            if(email.indexOf(badChar,0)>-1){
                errorMail += "1";
            }
        }
        atPos = email.indexOf("@",1)        
        if(atPos == -1){
            errorMail += "2";
        }
        if(email.indexOf("@",atPos+1)>-1){
            errorMail += "3";
        }
        periodPos = email.indexOf(".",atPos)
        if(periodPos == -1){
            errorMail += "4";
        }
        if(periodPos+3 > email.lenght){
            errorMail += "5";
        }        
        if (errorMail!= ""){
            //Debug
            //alert ("e "+errorMail); 
            errorList += ". Errore campo email\n";
        }
    }

// Telefono
	if (formAssistenza.telefono.value==""){
		missingList += ".  Recapito telefonico\n";
	}
	else{
	    var digits = "0123456789";
        for (var i = 0; i < formAssistenza.telefono.value.length; i++){
            temp = formAssistenza.telefono.value.substring(i, i+1)
            if (digits.indexOf(temp) == -1 && formAssistenza.telefono.value != ""){
                errorTelefono += "1";
            }
        } 
        if (errorTelefono!= ""){
            //Debug
            //alert ("t "+errorTelefono);               
            errorList += ". Errore campo telefono\n";
        }
    }
	
// Orari
	if ((formAssistenza.mattino1.value=="" ^ formAssistenza.mattino2.value=="") || (formAssistenza.pomeriggio1.value=="" ^ formAssistenza.pomeriggio2.value=="") || (formAssistenza.mattino1.value=="" && formAssistenza.mattino2.value=="" && formAssistenza.pomeriggio1.value=="" && formAssistenza.pomeriggio2.value=="")){
		missingList += ".  Orario\n";
		
		var maxlength=2
		var digits="0123456789";
		
        if (formAssistenza.mattino1.value!="" && formAssistenza.mattino2.value==""){
            if (formAssistenza.mattino1.value >= formAssistenza.mattino2.value){
                errorOrario += "1";
            }
            if (formAssistenza.mattino1.value.length>maxlength){
                errorOrario += "2";
            }
            for (var i = 0; i < formAssistenza.mattino1.value.length; i++){
                temp = formAssistenza.mattino1.value.substring(i, i+1)
                if (digits.indexOf(temp) == -1 && formAssistenza.mattino1.value != ""){
                    errorOrario += "3";
                }
            }
            if (formAssistenza.mattino2.value.length>maxlength){
                errorOrario += "4";
            }
            for (var i = 0; i < formAssistenza.mattino2.value.length; i++){
                temp = formAssistenza.mattino2.value.substring(i, i+1)
                if (digits.indexOf(temp) == -1 && formAssistenza.mattino2.value != ""){
                    errorOrario += "5";
                }
            }
        }
        if (formAssistenza.pomeriggio1.value!="" && formAssistenza.pomeriggio2.value==""){
            if (formAssistenza.pomeriggio1.value >= formAssistenza.pomeriggio2.value){
                errorOrario += "6";
            }
            if (formAssistenza.pomeriggio1.value.length>maxlength){
                errorOrario += "7";
            }
            for (var i = 0; i < formAssistenza.pomeriggio1.value.length; i++){
                temp = formAssistenza.pomeriggio1.value.substring(i, i+1)
                if (digits.indexOf(temp) == -1 && formAssistenza.pomeriggio1.value != ""){
                    errorOrario += "8";
                }
            }
            if (formAssistenza.pomeriggio2.value.length>maxlength){
                errorOrario += "9";
            }
            for (var i = 0; i < formAssistenza.pomeriggio2.value.length; i++){
                temp = formAssistenza.pomeriggio2.value.substring(i, i+1)
                if (digits.indexOf(temp) == -1 && formAssistenza.pomeriggio2.value != ""){
                    errorOrario += "0";
                }
            }
        }  
        if (errorOrario!= ""){
                //Debug 
                //alert ("o "+errorOrario);
                errorList += ". Errore campi orario\n";
        }
    }
	
// Modello
	if (formAssistenza.gamma.selectedIndex=="0" || formAssistenza.model.selectedIndex=="0"){
		missingList += ".  Modello macchina\n";
	}
	
// Numero serie
	if (formAssistenza.num_serie.value==""){
		missingList += ".  Numero di serie\n";
	}
	
// Descrizione errore
 if (formAssistenza.errore.value=="scegli"){
		missingList += ".  Descrizione problema\n";
	}
if (document.formAssistenza.errore.options[document.formAssistenza.errore.selectedIndex].value == 'Codice')
	{
		if (formAssistenza.errorcode.value == ''){
			missingList += ".  Specificare codice di errore\n";
		}
	}
	else
	{
		formAssistenza.errorcode.value = '';
	}
	
// Descrizione altro
	if (document.formAssistenza.errore.options[document.formAssistenza.errore.selectedIndex].value == 'Altro')
	{
		if (formAssistenza.altro.value == ''){
			missingList += ".  Specificare altro\n";
		}
	}
	else
	{
		formAssistenza.altro.value = '';
	}
		
// Status
	if (formAssistenza.work[0].checked==false && formAssistenza.work[1].checked==false){
		missingList += ".  Stato macchina\n";
	}

// Pagine bn_a4
    if (formAssistenza.bn_a4.value!="") {
        var digits = "0123456789";
        for (var i = 0; i < formAssistenza.bn_a4.value.length; i++){
            temp = formAssistenza.bn_a4.value.substring(i, i+1)
            if (digits.indexOf(temp) == -1 && formAssistenza.bn_a4.value != ""){
                errorBNA4 += "1";
            }
        }  
        if (errorBNA4!= ""){
            //Debug
            //alert ("bn_a4 "+errorBNA4); 
            errorList += ". Errore campo BN-A4\n";
        }
    }

// Pagine colori_a4
    if (formAssistenza.colori_a4.value!="") {
        var digits = "0123456789";
        for (var i = 0; i < formAssistenza.colori_a4.value.length; i++){
            temp = formAssistenza.colori_a4.value.substring(i, i+1)
            if (digits.indexOf(temp) == -1 && formAssistenza.colori_a4.value != ""){
                errorColoriA4 += "1";
            }
        }
        if (errorColoriA4!= ""){
            //Debug
            //alert ("colori_a4 "+errorColoriA4);        
            errorList += ". Errore campo Colori-A4\n";
        }
    }

// Pagine bn_a3
    if (formAssistenza.bn_a3.value!="") {
        var digits = "0123456789";
        for (var i = 0; i < formAssistenza.bn_a3.value.length; i++){
            temp = formAssistenza.bn_a3.value.substring(i, i+1)
            if (digits.indexOf(temp) == -1 && formAssistenza.bn_a3.value != ""){
                errorBNA3 += "1";
            }
        }
        if (errorBNA3!= ""){
            //Debug
            //alert ("bn_a3 "+errorBNA3);
            errorList += ". Errore campo BN-A3\n";
        }
    }

// Pagine colori_a3
    if (formAssistenza.colori_a3.value!="") {
        var digits = "0123456789";
        for (var i = 0; i < formAssistenza.colori_a3.value.length; i++){
            temp = formAssistenza.colori_a3.value.substring(i, i+1)
            if (digits.indexOf(temp) == -1 && formAssistenza.colori_a3.value != ""){
                errorColoriA3 += "1";
            }
        }
        if (errorColoriA3!= ""){
            //Debug
            //alert ("colori_a3 "+errorColoriA3);
            errorList += ". Errore campo Colori-A3\n";
        }
    }
// Result
 	if (missingList!= ""){
		message = missingHeader + missingList;
	}
 	if (errorList!= ""){
		message += errorHeader + errorList;
	}
 	if (message==""){       
            return true;
	}
	else {
		alert (message);
		return false;
	}
}

