﻿function ValidatorUpdateIsValid() {
    Page_IsValid = AllValidatorsValid(Page_Validators);
    ClearValidatorCallouts();
    SetValidatorCallouts();
}

function ValidatorValidate(val, validationGroup, event) {

    val.isvalid = true;
    if ((typeof (val.enabled) == "undefined" || val.enabled != false) && IsValidationGroupMatch(val, validationGroup)) {
        if (typeof (val.evaluationfunction) == "function") {
            val.isvalid = val.evaluationfunction(val);
            if (!val.isvalid && Page_InvalidControlToBeFocused == null &&
                typeof (val.focusOnError) == "string" && val.focusOnError == "t") {
                //ValidatorSetFocus(val, event);
                $(val).focus();
            }
        }
    }

    ClearValidatorCallouts();
    SetValidatorCallouts();
    ValidatorUpdateDisplay(val);
}



SetValidatorCallouts = function() {
    var i;
    var pageValid = true;
    var errorList;
    var controlErrorCollection = [];


    for (i = 0; i < Page_Validators.length; i++) {



        var inputControl = $('#' + Page_Validators[i].controltovalidate);

        if (!Page_Validators[i].isvalid) {

            if ($.inArray(inputControl.attr('id'), controlErrorCollection) == -1) {

                controlErrorCollection.push(inputControl.attr('id'));

                inputControl.addClass("error");

                if (i == 0) {
                    $(inputControl).focus();
                }

                showAlert(inputControl, Page_Validators[i].errormessage);

                //                if (inputControl.attr('class') == "1Validator error") {
                //                    $('.container').addClass("error");
                //                }

                errorList += '<li>' + Page_Validators[i].errormessage + '</li>';
            }

            pageValid = false;
           
        }
    }




    if (!pageValid) {
        
       // jNotify('There are errors with your information. Please correct them and try again.', 'error');
            $('.png').ifixpng();
    }
    return pageValid;
}


function showAlert(control, message) {
    
    var ctrl = $(control);
    
    var top = ctrl.offset().top;  
    var left = ctrl.offset().left + Math.max(ctrl.width() + 10, 0); 
    ctrl.parents().each(function() {
        if ($(this).css("position") != "static" && (!$.browser.mozilla || $(this).css("display") != "table")) {
            var offset = $(this).offset();
            top -= offset.top - 1;
            left -= offset.left;
            return false;
        }
    });
    ctrl.parent().children(".alertbox").remove();
    ctrl.parent().append("<div class='alertbox png' style='top:" + top + "px; left:" + left + "px;'><div class='alertboxarrow png'></div><div class='alertboxtext png'>" + message + "</div><div class='alertboxrounded png'></div></div>");
}




ClearValidatorCallouts = function() {
    $('.error').removeClass("error");
    $('.jquery-notify-bar').remove();
    $(".alertbox").remove();
}







