﻿add_afterload(function () {
    $("INPUT,SELECT,TEXTAREA").each(function () {
        var ctrl = this;

        var pNode = ctrl.parentNode;
        var is_container_found = false;
        while (pNode) {
            if (pNode.tagName == "FORM" || pNode.tagName == "BODY") {
                break;
            }
            if (typeof (pNode.mark) == 'function' && typeof (pNode.validate) == 'function') {
                is_container_found = true;
                break;
            }
            pNode = pNode.parentNode;
        }
        if (is_container_found) ctrl = pNode;

        if (typeof (ctrl.mark) == 'function' && typeof (ctrl.validate) == 'function') { }
        else {
            if (ctrl.tagName == 'INPUT') {
                if (ctrl.type == 'radio') {
                    ctrl = this.parentNode;
                }
            }
        }
        if (typeof (ctrl.mark) == 'function' && typeof (ctrl.validate) == 'function') {
            //for valid changes
            ctrl.valid_change = (function (oldvalid_change) {
                return function () {
                    if (oldvalid_change) {
                        if (typeof (oldvalid_change) == 'function') {
                            oldvalid_change.call(this);
                        }
                    }
                    //
                    validation_mark(this, true);
                    //
                }
            })(ctrl.valid_change);

            //for invalid changes
            ctrl.invalid_change = (function (oldinvalid_change) {
                return function () {
                    if (oldinvalid_change) {
                        if (typeof (oldinvalid_change) == 'function') {
                            oldinvalid_change.call(this);
                        }
                    }
                    //

                    validation_mark(this, false);
                    //
                    //
                }
            })(ctrl.invalid_change);
        }


        $("SPAN.required.chevron").each(function () {
            this.style.display = 'none';
        });
    });
});
function validation_mark(ctrl, valid) {
    if (!ctrl) return;
    //
    var pNode = ctrl.parentNode;
    if (pNode) {
        pNode = pNode.parentNode;
        if (!pNode) return;
        //
//        $(pNode).find("SPAN.required.chevron").each(function () {
//            this.style.display = 'none';
//        });
        if (valid === false) {
            $(pNode).addClass("clearfix error errorfix");
        }
        if (valid === true || testUnrequired(ctrl)) {
            $(pNode).removeClass("error errorfix");
        }
    }
}
