﻿

function attachValidator(validators)
{
    //loop through each validotor
    for(var i=0; i < validators.array.length; i++)
    {
        var input = document.getElementById(validators.array[i].target);
        
        if(!input.validators)
            input.validators = new Validators();
        
        input.validators.array.push(validators.array[i]);
        
    }
}

function validate_RequiredField(fieldValue)
{
    return fieldValue.length > 0; 
}


function Validator(pMessage, pValidationFn, pClientId)
{
    this.message=pMessage;
    this.validationFn = pValidationFn;
    this.clientId = pClientId;
    
    
    this.validate = function() 
            { 
                return eval(this.validationFn + "();")
            } ;
}


function Validator(pMessage, pValidationFn, pClientId, pTarget, pInitialvalue)
{
    this.message=pMessage;
    this.validationFn = pValidationFn;
    this.clientId = pClientId;
    this.clientIdDom =  document.getElementById(this.clientId);
    this.target=pTarget;
    this.initialvalue = pInitialvalue;
    this.targetDom = document.getElementById(this.target);
    this.validate = function()
                    { 
                        if(!this.validationFn) 
                            return true;
                            
                        if(this.validationFn == '') 
                            return true; 
                            
                        return eval(this.validationFn + "('" + this.targetDom.value + "');")
                    } ;
}

function RegexValidator(pMessage, pClientId, pTarget, pInitialvalue, pRegex)
{
    this.message=pMessage;
    this.clientId = pClientId;
    this.clientIdDom =  document.getElementById(this.clientId);
    this.target=pTarget;
    this.initialvalue = pInitialvalue;
    this.regex = pRegex;
    this.targetDom = document.getElementById(this.target);
    this.validate = function()
                    { 
                    
                        var valueToTest = this.targetDom.value;
                            
                        if(valueToTest.length <= 0)
                            return true;
                            
                        return valueToTest.match(this.regex);
                    } ;
}




function Validators()
{
    this.array = new Array();
    this.validate= function()
        {
            for(var i=0; i < this.array.length; i++)
            {
                if(!this.array[i].validate())
                return false;
            }
            return true;
        }
    
    this.getValidator = function(targetId)
        {
            for(var i=0; i < this.array.length; i++)
            {
                if(this.array[i].target == targetId)
                    return this.array[i];
            }
            return null;
        }
}


