﻿function GadzooCustomValidation()
{
    for (i = 0; i < Page_Validators.length; i++)
    {
        GadzooSetValidationMarkup(Page_Validators[i], true);
    }
    for (i = 0; i < Page_Validators.length; i++)
    {
        GadzooSetValidationMarkup(Page_Validators[i],false);               
    }    
}

function GadzooSetValidationMarkup(validator,valid)
{
    // Let's clear custom validation markup
    if (validator.isvalid == valid && $(validator).parent("[class='EntryFormLayoutField']").length > 0)
    {
        if ($('#' + validator.controltovalidate).length > 0)
        {
            ControlToValidate = $('#' + validator.controltovalidate)[0];
            if ((ControlToValidate.tagName == 'INPUT' && ControlToValidate.type == 'text') ||
                    (ControlToValidate.tagName == 'INPUT' && ControlToValidate.type == 'password') ||
                    ControlToValidate.tagName == 'TEXTAREA')
            {
                if (valid)
                {                 
                    ControlToValidate.style.borderWidth = "";
                }
                else
                {                    
                    ControlToValidate.style.borderWidth = "0px";                    
                }
            }
        }
        if (valid)
        {
            $(validator).parent().css("border", "none");            
        }
        else
        {
            $(validator).css("display", "block"); // ASP.NET makes display = inline, let's override it for better control
            $(validator).parent().css("border", "solid 2px #CB0100");
        }
    }
}
function InitGadzooValidation()
{
    if (typeof(GadzooValidationActive) == 'undefined')
    {
        if (typeof (Page_ClientValidate) == "function") // Submit replacement
        {
            Page_ClientValidateGadzooBackup = Page_ClientValidate;
            Page_ClientValidate = function(ValidationGroup)
            {
                var isValid;
                isValid = Page_ClientValidateGadzooBackup(ValidationGroup);
                GadzooCustomValidation();
                return isValid;
            }
        }
        if (typeof (ValidatorOnChange) == "function") // Onchange replacement
        {
            ValidatorOnChangeGadzooBackup = ValidatorOnChange;
            ValidatorOnChange = function(event)
            {
                ValidatorOnChangeGadzooBackup(event);
                GadzooCustomValidation();
            }
        }
        GadzooValidationActive = true;
        GadzooCustomValidation();
    }  
}