﻿// copyright MAJENKA - http://majenka.net

// form validation functions       

//================================================================================================    
   
function Validation() {}

Validation.Empty = function(element)
{
    var errorMessage = "";
    
    if (element.value.length == 0) 
    {            
        errorMessage = "required"
    } 
    
    return errorMessage; 
}

Validation.Password = function(element)
{
    var errorMessage = "";
        
    var illegalChars = /[\W_]/; // allow only letters and numbers 
        
    if (element.value == "") 
    {
        errorMessage = "required";
    } 
    else if (element.value.length < 6) 
    {
        errorMessage = "The password is too short.";
    } 
    else if (element.value.length > 16) 
    {
        errorMessage = "The password is too long.";
    } 
    else if (illegalChars.test(element.value)) 
    {
        errorMessage = "The password contains illegal characters.";
    } 
    else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) 
    {
        errorMessage = "password must contain at least one numeral.";
    } 
   
    return errorMessage; 
}

Validation.EmailAddress = function(element)
{
    var errorMessage = "";
    var trimElement = Validation._Trim(element.value); // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
                
    if (element.value == "") 
    {
        errorMessage = "required";
    } 
    else if (!emailFilter.test(trimElement)) 
    {
        //test email for illegal characters
        errorMessage = "invalid";
    } 
    else if (element.value.match(illegalChars)) 
    {
        errorMessage = "invalid";
    } 
    
    return errorMessage; 
}

// private function
Validation._Trim = function(s)
{
    return s.replace(/^\s+|\s+$/, ''); 
}