﻿/// <reference path="jquery-1.3.2.js"/>
//Auto-Highlights any error fields using the ASP.NET Validators
$(document).ready(function (e) {
    //Checking if ValidatorValidate exists
    if (typeof (ValidatorValidate) != "undefined") {
        //Copy ValidatorValidate to BaseValidatorValidate
        BaseValidatorValidate = ValidatorValidate;

        //Used to remeber the current activated validationGroup
        _lastValidationGroup = null;

        //Replacing ValidatorValidate
        ValidatorValidate = function (val, validationGroup, event) {
            //Calling original ValidatorValidate function saved in BaseValidatorValidate
            BaseValidatorValidate(val, validationGroup, event);

            //Remembering the current validationGroup
            if (validationGroup != null) _lastValidationGroup = validationGroup;

            //Seting valid all the validations not in the current validationGroup
            if ((typeof (val.validationGroup) == "undefined" && _lastValidationGroup != "") || (typeof (val.validationGroup) != "undefined" && val.validationGroup != _lastValidationGroup)) val.isvalid = true;

            //Checking if all validators on the same controltovalidate with the same validationGroup are valid
            var flag1 = val.isvalid;
            for (var num1 = 0; num1 < Page_Validators.length; num1++) {
                var val2 = Page_Validators[num1];
                if (val2.controltovalidate == val.controltovalidate && (validationGroup == null || typeof (val2.validationGroup) == "undefined" || val2.validationGroup == validationGroup)) flag1 &= val2.isvalid;
            }
            var control = $(val.controltovalidate);
            if (!flag1) {
                control.attr("class", "input-error");
                control.addClass("frog");
            }
            else
                control.removeClass("input-error");

            //Adding or removing validationErrorCssClass from controltovalidate
            //                        if (typeof ($get) != "undefined") {
            //                            //Do it with ASP.NET ajax functions
            //                            if (val.ControlToValidate != null)
            //                                Sys.UI.DomElement[flag1 ? 'removeCssClass' : 'addCssClass']($get(val.controltovalidate), "input-error");
            //                        }
            //                        else {
            //Do it with standard javascript without ajax functions
            var el = document.getElementById(val.controltovalidate);
            if (el != null) {
                var flag2 = el.className.indexOf("input-error") != -1;
                if (flag1 && flag2) {
                    el.className = el.className.replace(new RegExp("\\b" + "input-error" + "\\b", "i"), "").replace(/^\s+|\s(?=\s+)|\s+$/m, "");
                }
                else if (!flag1 && !flag2) {
                    el.className += (el.className.length != 0 ? " " : "") + "input-error";
                }
            }
            //                        }


            //            //Refreshing ValidationSummary
            //            if (typeof (Page_ValidationSummaries) != "undefined" && _lastValidationGroup != null) {
            //                for (var num2 = 0; num2 < Page_ValidationSummaries.length; num2++) {
            //                    var pageVal = Page_ValidationSummaries[num2];
            //                    //If the ValidationSummary validationGroup is equal the last validationGroup updating it.
            //                    if ((typeof (pageVal.validationGroup) == "undefined" && _lastValidationGroup == "") || (typeof (pageVal.validationGroup) != "undefined" && pageVal.validationGroup == _lastValidationGroup)) {
            //                        setTimeout(function () { ValidationSummaryOnSubmit(_lastValidationGroup); }, 0);
            //                        break;
            //                    }
            //                }
            //            }
        }
    }
});
