﻿
//When ready
$(document).ready(function(){
    
    $("form").each(
        function()
        {
            if(this.validators)
            {
                attachValidator(this.validators);
                attachValidatorEffects(this.validators);
            }
            
           $(this).submit(function()
                {  
                     if(this.validators)
                    {
                        var isValid = this.validators.validate();
                        var errorList = $('#error_list');
                        errorList.hide();
                        
                        for(var i=0; i < this.validators.array.length; i++)
                        {
                            UpdateValidatorDisplay(this.validators.array[i]);
                        }
                        
                        if(!isValid)
                            errorList.fadeIn();
                        else
                            $(this).css("visibility","hidden");
                            
                        return isValid;
                    }
                }); 
        });
});

function attachValidatorEffects(validators)
{
    //loop through each validotor
    for(var i=0; i < validators.array.length; i++)
    {
        var input = $(validators.array[i].targetDom);
        
        input.blur(function()
            {
                for(var j=0; j< this.validators.array.length; j++)
                    if(!UpdateValidatorDisplay(this.validators.array[j])) break;
            });
    }
}

function UpdateValidatorDisplay(val)
{
    var item = $('.' + val.clientId);
    item.hide();
    if(val.validate())
        return true;
        
    item.fadeIn();
    return false;
}





