var checkings = new Array();
var checkings1 = new Array();
var checkings2 = new Array();
var checkings3 = new Array();
var checkings4 = new Array();
var checkings5 = new Array();

//Checking Class definition
function Checking(evalFunc, msg)
{
  this.evalFunc = evalFunc
  this.msg = msg
}

function Checking1(evalFunc, msg)
{
  this.evalFunc = evalFunc
  this.msg = msg
}

function Checking2(evalFunc, msg)
{
  this.evalFunc = evalFunc
  this.msg = msg
}

function Checking3(evalFunc, msg)
{
  this.evalFunc = evalFunc
  this.msg = msg
}

function Checking4(evalFunc, msg)
{
  this.evalFunc = evalFunc
  this.msg = msg
}

function Checking5(evalFunc, msg)
{
  this.evalFunc = evalFunc
  this.msg = msg
}

function check()
{
  var i
  var retVal = true
  var alertMsg = ""

  if(checkings==null || checkings.length<0)
    return false
  else
  {
    for(i=0;i<checkings.length;++i)
      if(!eval(checkings[i].evalFunc))
        alertMsg += "\n - " + checkings[i].msg
    if(alertMsg.length>0) {
      alert("Por favor, revise a palavra digitada:" + alertMsg)
      return false
    }
    else
      return true
  }
}

function check1()
{
  var i
  var retVal = true
  var alertMsg = ""

  if(checkings1==null || checkings1.length<0)
    return false
  else
  {
    for(i=0;i<checkings1.length;++i)
      if(!eval(checkings1[i].evalFunc))
        alertMsg += "\n - " + checkings1[i].msg
    if(alertMsg.length>0) {
      alert("Por favor, revise a palavra digitada:" + alertMsg)
      return false
    }
    else
      return true
  }
}

function check2()
{
  var i
  var retVal = true
  var alertMsg = ""

  if(checkings2==null || checkings2.length<0)
    return false
  else
  {
    for(i=0;i<checkings2.length;++i)
      if(!eval(checkings2[i].evalFunc))
        alertMsg += "\n - " + checkings2[i].msg
    if(alertMsg.length>0) {
      alert("Por favor, revise a palavra digitada:" + alertMsg)
      return false
    }
    else
      return true
  }
}

function check3()
{
  var i
  var retVal = true
  var alertMsg = ""

  if(checkings3==null || checkings3.length<0)
    return false
  else
  {
    for(i=0;i<checkings3.length;++i)
      if(!eval(checkings3[i].evalFunc))
        alertMsg += "\n - " + checkings3[i].msg
    if(alertMsg.length>0) {
      alert("Por favor, revise a palavra digitada:" + alertMsg)
      return false
    }
    else
      return true
  }
}

function check4()
{
  var i
  var retVal = true
  var alertMsg = ""

  if(checkings4==null || checkings4.length<0)
    return false
  else
  {
    for(i=0;i<checkings4.length;++i)
      if(!eval(checkings4[i].evalFunc))
        alertMsg += "\n - " + checkings4[i].msg
    if(alertMsg.length>0) {
      alert("Por favor, revise a palavra digitada:" + alertMsg)
      return false
    }
    else
      return true
  }
}

function check5()
{
  var i
  var retVal = true
  var alertMsg = ""

  if(checkings5==null || checkings5.length<0)
    return false
  else
  {
    for(i=0;i<checkings5.length;++i)
      if(!eval(checkings5[i].evalFunc))
        alertMsg += "\n - " + checkings5[i].msg
    if(alertMsg.length>0) {
      alert("Por favor, revise a palavra digitada:" + alertMsg)
      return false
    }
    else
      return true
  }
}

function checkMinLength(thing, minLength)
{
  return thing.length!=null && thing.length>=minLength
}

var failingReasons;
var failingField;

function checkNotBlank(formField, fieldName)
{
  if (formField.value == "")
  {
    failingReasons += "\nO campo " + fieldName + " é obrigatório para acessar ao site.";
    if (!failingField) failingField = formField;
    return false;
  }
  else
    return true;
}


function checkDisclaimer(formField)
{
  if (!formField.checked)
  {
    failingReasons += "\nDeve aceitar as condições para registrar-se ao site.";
    if (!failingField) failingField = formField;
    return false;
  }
  else
    return true;
}

function checkMailIsValid(mailField,name)
{
  var leftSide, rightSide, indexOfDot
  var indexOfArroba = mailField.value.indexOf("@")
  if(indexOfArroba > 0)
  {
    rightSide = mailField.value.substr(indexOfArroba+1,
      mailField.value.length-indexOfArroba);
    indexOfDot = rightSide.indexOf(".");
    if(indexOfDot < 1)
    {
      failingReasons += "\nO campo "+name+" está incompleto";
      if (!failingField) failingField = mailField;
      return false;
    }
    else
      if(mailField.value.indexOf(",") >= 0)
      {
        failingReasons += "\nO campo "+name+" não pode conter vírgulas.";
        if (!failingField) failingField = mailField;
        return false;
      }
  }
  else
  {
    failingReasons += "\nO campo "+name+" deve ter um \"@\".";
    if (!failingField) failingField = mailField;
      return false;
  }
}

function CheckLoginForm(theForm)
{
  failingReasons = "";
  failingField = null;
  checkNotBlank(theForm.email, "E-mail");
  checkMailIsValid(theForm.email, "E-mail");
  checkNotBlank(theForm.crm, "CRM ou CRF");
  
  if (failingReasons != "")
  {
    alert(failingReasons);
    failingField.focus();
    return false;
  }
  else
    return true;
}

function CheckForm(theForm)
{
  failingReasons = "";
  failingField = null;
  checkNotBlank(theForm.nome, "Nome");
  checkNotBlank(theForm.sobrenome, "Sobrenome");
  checkNotBlank(theForm.email, "E-mail");
  checkMailIsValid(theForm.email, "E-mail");
  checkNotBlank(theForm.crm, "CRM ou CRF");
  checkDisclaimer(theForm.disclaimer);

  if (failingReasons != "")
  {
    alert(failingReasons);
    failingField.focus();
    return false;
  }
  else
    return true;

}
