function CheckGenericForm() {
 var NE, NE6, IE = false;
 var ref;
  if (navigator.appName == "Netscape") {
    if ( parseInt(navigator.appVersion) == 4) {
		//alert ("NE");
        NE = true;
    }else if(parseInt(navigator.appVersion) >= 5) {
		//alert ("NE6");
        NE6 = true;
    }
  }else if(navigator.appName == "Microsoft Internet Explorer") {
     //alert ("IE");
    IE = true;
}

var errors = "";
var reply   = "";
var i = 0;
if ( NE ) { 
    ref = document.formlayer;
}else if ( IE ) {
          ref = this; 
        }else{
          ref = this; 
     }
// ----- user language

var language = ref.document.genericform.lang.value;
//alert (userlanguage);
if ( language == 'i' ) {
	var errorilabel  = "Errori nel formulario:\n\n";
	var confirm_msg  = "Conferma invio messaggio ?";	 
	var username_err_msg = "Nome non valido - min. 2 chars, max. 80 chars\n";
	var usercity_err_msg = "Cittą non valida - min. 2 chars, max. 80 chars\n";	
	var useremail_err_msg = "E-mail non valido  - min. 5 chars, max. 40 chars\n";
	var nosnake_err_msg = "Formato e-mail non valido  - manca il carattere \"\@\"\n";
	var nodot_err_msg = "Formato e-mail non valido - manca il carattere  \".\" \n";	
	var usermessage_err_msg = "Messaggio non valido - min. 4 chars, max. 5000 chars\n";		
	} else {}	
if ( language == 'e' ) {
	var errorilabel  = "Errors in Form:\n\n";
	var confirm_msg  = "Confirm message ?";	 
	var username_err_msg = "Name not valid - min. 2 chars, max. 80 chars\n";
	var usercity_err_msg = "City not valid - min. 2 chars, max. 80 chars\n";		
	var useremail_err_msg = "E-mail not valid - min. 5 chars, max. 50 chars\n";
	var nosnake_err_msg = "E-mail format not valid - missing \"\@\"\n";
	var nodot_err_msg = "E-mail format not valid - missing \".\" \n";
	var usermessage_err_msg = "Message not valid - min. 4 chars, max. 5000 chars\n";	
	} else {}	
	
 // ----- user name
 var usernameval = ref.document.genericform.name.value;
  strre = usernameval.replace(/ /gi, "_");
  usernameval = strre;
  if ( usernameval.length <= 1 || usernameval.length > 80 ) {
	 errors += username_err_msg;
    }else{    
   }		
 // ----- user city
 var usercityval = ref.document.genericform.city.value;
  strre = usercityval.replace(/ /gi, "_");
  usernameval = strre;
  if ( usercityval.length <= 1 || usercityval.length > 80 ) {
	 errors += usercity_err_msg;
    }else{    
   }   	       
 // ----- user email address  
  var emailval = ref.document.genericform.email.value;  
  strre = emailval.replace(/ /gi, "_");
  emailval = strre;
  emailsplitted = emailval.split("@");	
  if ( emailval.length <= 0 || emailval.length > 50 ) {
     errors += useremail_err_msg;
  }else if ( emailval.length <= 5 ) {
     errors += useremail_err_msg;
  	}else{
     emailsplitted = emailval.split("@");
     if ( emailsplitted.length < 2 || emailsplitted.length > 2 ) {
       errors += nosnake_err_msg;
     }
     if ( emailsplitted.length == 2 ) {
       if ( emailsplitted[0].length == 0 || emailsplitted[1].length == 0 ) {
         errors += useremail_err_msg;
       }
     }
     emailsplitted = emailval.split(".");
     if ( emailsplitted.length <= 1 ) {
       errors += nodot_err_msg;
     }
   }
 // ----- user message
  var usermessageval = ref.document.genericform.message.value;
  strre = usermessageval.replace(/ /gi, "_");
  usermessageval = strre;
  if ( usermessageval.length <= 1 || usermessageval.length > 5000 ) {
	 errors += usermessage_err_msg;
    }else{    
   }	
  
  // Ready to continue:
  // alert ("Parameters: "  + userfirstval + userlastval + emailval);
  // ----- final confirmation required
  if ( errors.length > 1 ) {
    alert(errorilabel + errors);
    return false;  // FORM NOT submitted
  }else{  
      res = window.confirm(confirm_msg);
      if (res == true) {
	  	return true;
	  } else {
	    return false;
	  }	
  }
}

