// Definición de variables
var digitos = "0123456789";
var minusculas = "abcdefghijklmnopqrstuvwxyz";
var mayusculas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var caracteresEmail = "@.+_-";
var caracteresLoginPassword = "._-";
var espacio = " ";
var guion = "-";

function validar(fsign){
if ( fsign.login.value=="" ) { alert ("No Username entered. Please Enter your Username."); fsign.login.focus(); return false; }
if ( fsign.pass.value=="" ) { alert ("No Password entered. Please Enter your Password."); fsign.pass.focus(); return false; }
if ( fsign.email.value=="" ) { alert ("No Email entered. Please Enter your Email."); fsign.email.focus(); return false; }
if ( fsign.firstname.value=="" ) { alert ("No First Name Entered. Please Enter your First Name."); fsign.firstname.focus(); return false; }
if ( fsign.lastname.value=="" ) { alert ("No Last Name Entered. Please Enter your Last Name."); fsign.lastname.focus(); return false; }
if ( fsign.gender.value=="" ) { alert ("No Gender Entered. Please Enter your Gender."); fsign.gender.focus(); return false; }
if ( fsign.center.value=="" ) { alert ("No Working Place Entered. Please Enter your Working Place."); fsign.center.focus(); return false; }


if ( fsign.pass.value!=fsign.cpass.value ) { alert ("Passwords doesn't match!"); fsign.pass.focus(); return false; }
if ( fsign.email.value!=fsign.cemail.value ) { alert ("Emails doesn't match!"); fsign.email.focus(); return false; }
if ( fsign.login.value==fsign.pass.value ) { alert ("Username and Password shouldn't be the same."); fsign.login.focus(); return false; }
if ( !validaLogin(fsign.login.value) ) { fsign.login.focus(); return false; }
if ( !validaPass(fsign.pass.value) ) { fsign.pass.focus(); return false; }
if ( !validaMail(fsign.email.value) ) { fsign.email.focus(); return false; }

return true;
}

function validaLogin(valogin)
{
if ( valogin.length<6 || valogin.length>10 ) { alert ("Username length must be between 6 and 10 characters."); return false;}
if ( !valV03(valogin) ) { alert ("\Username must contain only alphanumeric characters."); return false; }
return true;
}

function validaPass(vapass)
{
if ( vapass.length<6 || vapass.length>10 ) { alert ("Password length must be between 6 and 10 characters."); return false;}
if ( !valV03(vapass) ) { alert ("\Password must contain only alphanumeric characters."); return false; }
return true;
}

// Validación V03
// Determina si los caracteres de un campo de entrada son sólo alfanuméricos (excluyendo espacios en blanco)
function valV03(s)
{
        var c;
        var result = true;
        
        for (var i = 0; i < s.length; i++)
        {
                c = s.charAt(i);
                                
                if (!(perteneceA(c,minusculas) || perteneceA(c,mayusculas) || perteneceA(c,digitos)))
                {
                        result = false;
                        break;
                }
        }
        return result;
} 

// Determina si un carácter c pertenece a una cadena s
function perteneceA(c,s)
{
        var result = false;
        
        for (var i = 0; i < s.length; i++)
        {
                if (c == s.charAt(i))
                {
                        result = true;
                        break;
                }
        }
        
        return result;
}

function validaMail (Email)
{
  var Reason = ""
  var checkStr = Email
  var ix = (checkStr.length - 4)
  var RC = true;
  var x = AtSignValid = DoublePeriod = PeriodValid = SpaceValid = ExtValid = RL = 0;
  for (i = 0;  i < checkStr.length;  i++)
  {
    if (checkStr.charAt(i) == '@')
      AtSignValid++;
    else if (checkStr.charAt(i) == '.')
    {
      if (x == (i-1))
        DoublePeriod++;
      else
      {
        x = i;
        PeriodValid++;
      }
    }
    else if (checkStr.charAt(i) == ' ')
      SpaceValid ++;
  }
  RL = Reason.length;
  if (AtSignValid != 1)
    Reason += "E-mail address must contain the @ character. \n"
  if (PeriodValid == 0)
    Reason += "Field E-mail must contain a point character at least. \n"
  if (SpaceValid > 0)
    Reason += "Space characters must'n be included in E-Mail field. \n"
  if (DoublePeriod > 0)
    Reason += " E-Mail contains more than once point character. \n";
  if (RL != Reason.length)
  {
    RC= false
    alert ( Reason );
  }
  else
  {
    RC= true
  }

  return RC
}