Source of: /ADI/validation/javascript_validation.js

// a general-purpose javascript validation form

function isblank(e)
{
if (e.value == null || e.value == "")
   return true;

for (var i=0; i < e.value.length; i++)
{
var c = e.value.charAt(i) ;
if ( (c !=' ') &&
   (c !='\n') &&
   (c !='\t') )
   return false;
}
return true;
}

function checkblank(e)
{
if (isblank(e))
{
alert("O campo " + e.description + " tem que ser preenchido.");
return false;
}
return true;
}

function checknumber(e)
{
var v = parseFloat(e.value);

if (isNaN(v))
{
alert("O campo " + e.description + " tem que ser um número");
return false;
}

if ((e.minNumber != null) && (v < e.minNumber))
{
alert("O campo " + e.description + " tem que ser maior ou igual a " + e.minNumber);
return false;
}

if ((e.minNumber != null) && (v > e.maxNumber))
{
alert("O campo " + e.description + " tem que ser menor ou igual a " + e.maxNumber);
return false;
}
return true;
}

function checkdate(e)
{

var ValidDate = new RegExp("^([0-9]{2}/[0-9]{2}/[0-9]{4})$");
if (!ValidDate.test(e.value))
{
alert("O campo " + e.description + " tem que ter o formato 99/99/9999");
return false
}
return true;
}

function checkwhitespace(e)
{
for (var j=0; j < e.value.length; j++)
{
var c = e.value.charAt(j);
if ((c==' ') || (c=='\n') || (c=='\t'))
{
alert("O campo " + e.description + " não pode conter espaços");
return false;
}
}
return true;
}


function checkemail(e)
{

var ValidEmail = new RegExp("^[0-9a-z]([.]?[0-9a-z])*@[0-9a-z]([.]?[0-9a-z])+$");
if (!ValidEmail.test(e.value))
{
alert("O campo " + e.description + " não tem um endereço de email válido");
return false
}
return true;
}

//perform form validation
function verify(f)
{
   //loop trough the elements of the form and validate text and textarea elements
   for (var i=0; i < f.length; i++)
   {
       var e = f.elements[i];
       if ( (e.type == "text") || (e.type == "textarea") )
       {
           if (!e.isOptional && !checkblank(e)) return false;
           if (!isblank(e) && e.isnumeric && !checknumber(e)) return false;
           if (!isblank(e) && e.isDate && !checkdate(e)) return false;
           if (!isblank(e) && e.isEmail && !checkemail(e)) return false;
           if (!isblank(e) && e.hasNospaces && !checkwhitespace(e)) return false;
       }
   }
   return true;
}