function checkVuoto(stringa)
{
  for( var i = 0; i < stringa.length; i++ )
  {
      var c = stringa.charAt(i);
      if((c != ' ') && (c != '\n') && (c != '\t')) return false;
  }
  return true;
}

function checkIfEmail(formEl){

        var validEmailExt = new Array("info","aero","museum","name");

	this.formEl = formEl;
	formElV=formEl.value

	var pat = new RegExp("^(\\w|-|\\.)+@(\\w|-|\\.)+\\.\\w{2,3}$") ;
	patmatch = pat.test(formElV);
	if(patmatch)
		{return true;}
	else
		{
		for(a=0;a<validEmailExt.length;a++)
			{
			pat.compile("^(\\w|-|\\.)+@(\\w|-|\\.)+\\."+ validEmailExt[a] +"$");
			patmatch = pat.test(formElV);
			if(patmatch)
				{return true;}
			else
				{continue;}
			}
		}
	return false;
}

// Questa e' la funzione che esegue la verifica del modulo.
// Viene richiamata dal gestore di eventi omSubmin()
// Il gestore restituisce qualunque valore restituito da
// questa funzione.

function checkForm(f)
{
  var messaggio;
  var empty_fields = "";
  var errore = "";
  var lang = "";


  if( f.form_lang.value == "it" )  lang="it";

  // Ciclo attraverso gli elementi del modulo, alla ricerca di tutti gli
  // elementi text e textarea che non hanno una proprieta' optional
  // definita. Quindi controlla i campi vuoti e li segnala in un elenco.
  // Inoltre, se uno qualsiasi di questi elementi ha una proprieta'
  // "min" o "max" definita, allora verifica che si tratti di numer e che
  // rientrino nell'intervallo specificato.
  // Riunisce i messagge d'errore per i campi che risultino errati.

  for( var i = 0; i < f.length; i++ )
  {
     var e = f.elements[i];
     if (((e.type == "text" ) || ( e.type == "textarea" )) && !e.optional )
     {
        // Controlla se il campo e' vuoto
	if (( e.value == null ) || (e.value=="") || checkVuoto(e.value))
	{
	   empty_fields += "\n - " + e.name_string;
	   continue;
	}

	// Controlla la validita' dell'indirizzo e-mail

	if (e.email)
	{  // Se e' una email allora manda in esecution
	   // sto codice
	   if(checkIfEmail(e) == false)
	   {
	       errore += "\n.....[" + e.name_string + "] E-Mail non valida ! ";
         }
	}
     }
  }

  // Se sono stati rilevati errori di compilazione nella form, questi vengono visualizzati

  if(lang == "it")
  {  if (!empty_fields && !errore)  return true;  }
      messaggio = "Sono stati rilevati errori nella compilazione del modulo d'ordine, \n";
      messaggio += "siete pregati di correggerli per poter continuare.             \n\n\n";

  if(lang == "it")
  {
    if(empty_fields)
    {
      messaggio += "» I seguenti campi richiesti risultano vuoti «\n"
             + empty_fields + "\n";
      if( errore )
            messaggio += "\n";
    }
  }

  messaggio += errore;

  if(lang == "it") alert(messaggio);

  return false;
}