﻿(function ($) {
    $.supportsSmoothAnimations = function () {
        var support = false;
        if ($.browser.msie && $.browser.version >= 6)
            support = true;
        if ($.browser.webkit || $.browser.safari || $.browser.opera || $.browser.mozilla)
            support = true;
        return support;
    };
})(jQuery);

(function ($) {
    $.fn.animateIf = function (options, speed, easing, callback) {
        
        var opt = $.speed(speed, easing, callback);
        
        if($.supportsSmoothAnimations()) {
            $(this).animate(options, opt.duration, opt.easing, opt.complete);
        
        }
        else {
            $(this).css(options);
            if(opt.complete != null)
                opt.complete();
        }
    };
})(jQuery);

String.prototype.trim = function() {
    return this.replace( /^\s+|\s+$/g , "");
};

function fnOnUpdateValidators() {
    /*
    var str = "";
    var val = Page_Validators[2];
    var i = 0;
    for (var v in val) {
        str += v + ": " + val[v]+"\n";
        if(i > 20) {
            alert(str);
            str = "";
            i = 0;
        }
        i++;
    }
    alert(str);
    */
    for (var i = 0; i < Page_Validators.length; i++) {
        var val = Page_Validators[i];
        var controlsToUpdate = Array();

        if (document.getElementById(val.controltovalidate) == null) {
            controlsToUpdate = $(val).data("ControlsToValidate").split(";");
        }
        else {
            controlsToUpdate.push(val.controltovalidate);
        }

        for (var v in controlsToUpdate) {
            var ctrl = document.getElementById(controlsToUpdate[v]);

            
            var failedValidators = $(ctrl).data("failedValidators") || "";

            if (!val.isvalid) {
                if (failedValidators.indexOf(val.id) < 0)
                    failedValidators += val.id;
                
            }
            else {
                failedValidators = failedValidators.replace(val.id, "");
            }
            $(ctrl).data("failedValidators", failedValidators);
        }
    }

    $('.bg-form input[type="text"],.bg-form textarea').each(function () {
        var data = $(this).data("failedValidators");
        if (data != null && data.length > 0) {
            $(this).addClass("invalid");
            $(this).data("failedValidators", null);
        }
        else {
            $(this).removeClass("invalid");
        }
    });
}

function SetupMultibleControlsToValidate(val, ctrl1, ctrl2, ctrl3) {
    var validator = $(val).get(0);
    var controlsString = "";
    for (var i = 1; i < arguments.length; i++) {
        var id = $(arguments[i]).attr("id");
        ValidatorHookupControlID(id, validator);
        if (controlsString.length > 0)
            controlsString += ";";
        controlsString += id;
    }
    $(val).data("ControlsToValidate", controlsString);
}
