﻿
var DDXValidator = {
    defaultErrorCSS: 'err_msg',
    IsRequired: function(value, msgPanel, errorCSS) {
        errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
        if (value.isEmpty()) {
            msgPanel.addClass(errorCSS);
            return false;
        }
        msgPanel.removeClass(errorCSS);
        return true;
    },
    Limited: function(value, msgPanel, minLen, maxLen, errorCSS) {
        errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
        if (!value.limitByte(minLen, maxLen)) {
            msgPanel.addClass(errorCSS);
            return false;
        }
        msgPanel.removeClass(errorCSS);
        return true;
    },
    IsPositiveNumber: function(value, msgPanel, errorCSS) {
        errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
        if (!value.isPositiveNumber()) {
            msgPanel.addClass(errorCSS);
            return false;
        }
        msgPanel.removeClass(errorCSS);
        return true;
    },
    IsLimitNumber: function(value, msgPanel, minValue, maxValue, errorCSS) {
        errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
        if (!value.isLimitNumeric(minValue, maxValue)) {
            msgPanel.addClass(errorCSS);
            return false;
        }
        msgPanel.removeClass(errorCSS);
        return true;
    },
    IsZIP: function(value, msgPanel, errorCSS) {
        errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
        if (!value.isZIP()) {
            msgPanel.addClass(errorCSS);
            return false;
        }
        msgPanel.removeClass(errorCSS);
        return true;
    },
    IsEmail: function(value, msgPanel, errorCSS) {
        errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
        if (!value.isEmail()) {
            msgPanel.addClass(errorCSS);
            return false;
        }
        msgPanel.removeClass(errorCSS);
        return true;
    },
    Register: {
        userNameMinLen: 1,
        userNameMaxLen: 32,
        passwordMinLen: 4,
        passwordMaxLen: 16,
        userNameReg: /[^a-zA-Z0-9_]/g,
        UserName: function(value, msgPanel, minLen, maxLen, errorCSS) {
            errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
            if (!this.userNameReg.test(value)) {
                minLen = minLen || 1;
                maxLen = maxLen || this.userNameLength;
                var len = value.byteLength();
                if (len >= minLen && len <= maxLen) {
                    msgPanel.removeClass(errorCSS);
                    return true;
                }
            }
            msgPanel.addClass(errorCSS);
            return false;
        },
        Password: function(value, msgPanel, minLen, maxLen, errorCSS) {
            errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
            var len = value.byteLength();
            if (len < this.passwordMinLen || len > this.passwordMaxLen) {
                msgPanel.addClass(errorCSS);
                return false;
            }
            msgPanel.removeClass(errorCSS);
            return true;
        },
        PasswordConfirm: function(value, confirmValue, msgPanel, errorCSS) {
            errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
            if (confirmValue != value) {
                msgPanel.addClass(errorCSS);
                return false;
            }
            msgPanel.removeClass(errorCSS);
            return true;
        },
        ValidCode: function(value, msgPanel, len, errorCSS) {
            errorCSS = errorCSS || DDXValidator.defaultErrorCSS;
            if (value.length != len || value.trim().isEmpty()) {
                msgPanel.addClass(errorCSS);
                return false;
            }
            msgPanel.removeClass(errorCSS);
            return true;
        }
    }
};
