//**********************************************************************
//                           emailOK
// Controlla la validità sintattica di un indirizzo di e-mail passato
// come parametro.
//
// IN:  e-mail: indirizzo da controllare
//      str   : label del campo corrispondente all'email da controllare
//***********************************************************************
function emailOK(campo)
{
   //legge il valuro della email
   email = campo.value;

   //controlla che la e-mail non sia vuota
   if (email == "")
   {
      return true;
   }

   // controllo della presenza del carattere '\@'
   var index     = email.indexOf('\@', 0);
   var address   = "";
   var ok = true;

   if (index == -1)
   {
      ok = false;
   }
   else
   {
      var size = email.length;
      address = email.substring(size + 1, index + 1);
      userid =  email.substring(1, index);

      // controlla: l'unicità del carattere "\@";
      // - la presenza del "." nella parte DX dell'indirizzo;
      // - l'assenza di spazi e
      // - che la stringa non sia del tipo userid\@.address o userid.\@address
      if ((address.indexOf('\@') != -1) || (userid.indexOf('\@') != -1) ||
          (address.indexOf('.') == -1) || (!nospace(email)) ||
          (email.charAt(index - 1) == '.') || (email.charAt(index + 1) == '.'))
      {
         ok = false;
      }
   }

   if (ok == false)
   {     
      return false;
   }
   else
   {
      return true;
   }
}


//********************************************************
//                 nospace(str)
//
// Controlla che non ci siano spazi all'interno
// della stringa passata come parametro.
//
//********************************************************
function nospace(str)
{
   if (str != "")
   {
      var index = str.indexOf(" ", 0);
      if (index != -1)
      {
         return false;
      }
   }

   return true;
}