File: dist/jquery.annex.validation-plugin.js.map

Recommend this page to a friend!
  Classes of Sebastian Schlapkohl   jQuery Annex   dist/jquery.annex.validation-plugin.js.map   Download  
File: dist/jquery.annex.validation-plugin.js.map
Role: Example script
Content type: text/plain
Description: Example script
Class: jQuery Annex
General purpose functions missing in jQuery
Author: By
Last change: // changed engine version strings to allow yarn dependency installation without error in newer envs
Version Bumps for jQuery, Node and Dev Dependencies
// upped jQuery 3 version to 3.6.1
// upped node version to 12
// upped dev dependencies to latest minors (especially ava, moving it out of the beta version)
// switched gulpfile syntax to ES6 (but no modules yet)
// added engines to package.json
// removed bower.json and bowser description from readme
Date: 1 year ago
Size: 68,667 bytes
 

Contents

Class file image Download
{"version":3,"file":"jquery.annex.validation-plugin.js","sources":["jquery.annex.validation-plugin.js"],"sourcesContent":["/**\n * jQueryAnnex - Validation Plugin\n * Provides the means to validate (form-)values on the fly in the client.\n * This is especially useful if you develop JS-driven apps without classical forms and reloads.\n *\n * All methods in this plugin are derived from my PHP5-framework \"HtmlForm\", which also includes\n * JS-validation (coupled with server-side validation) for forms. The validation capabilities aim to\n * as convenient and complete as possible.\n *\n * There are generally two methods of defining validation: either use jQuery to select value-bearing tags and\n * objects and register a/several validator(s) on it, or write the registration(s) directly into the markup via\n * data attributes.\n *\n * Have a look at the plugin-validation-example.html in the repository for example usage and test it locally in\n * your browser.\n *\n * @author Sebastian Schlapkohl <jqueryannex@ifschleife.de>\n * @version Revision 46 developed and tested with jQuery 3.6.1, 2.2.4 and 1.12.4\n **/\n\n\n\n// automatically determine if annex should be loaded traditionally, as an AMD-module or via commonjs, if included before anything that\n// exposes \"define\" (require.js e.g.), it will load normally, extending jQuery directly and globally\n// if loaded as AMD-module it expects Annex to be available as \"jqueryannex\"\n(function(global, factory){\n\tvar jQuery = global.jQuery || global.$;\n\n\tif( (typeof define === 'function') && define.amd ){\n\t\tdefine(['jqueryannex'], factory);\n\t} else if( (typeof module === 'object') && module.exports ){\n\t\tif( !global.__AVA_ENV__ ){\n\t\t\ttry {\n\t\t\t\tif( !jQuery ){\n\t\t\t\t\tjQuery = require('jquery');\n\t\t\t\t}\n\n\t\t\t\tif( !jQuery.jqueryAnnexData ){\n\t\t\t\t\tjQuery = require('jqueryannex');\n\t\t\t\t}\n\t\t\t} catch(ex){}\n\t\t}\n\n\t\tmodule.exports = jQuery\n\t\t\t? factory(jQuery)\n\t\t\t: function(jQuery){\n\t\t\t\treturn factory(jQuery);\n\t\t\t}\n\t\t;\n\t} else {\n\t\tfactory(jQuery);\n\t}\n}((typeof window !== 'undefined') ? window : this, function($){\n\n\t//--|CHECK-AND-PREPARE-JQUERY----------\n\n\t(function(){\n\t\tif( !$ || !$.fn || !$().jquery ){\n\t\t\tthrow 'jQueryAnnex Validation Plugin | cannot extend jQuery, since it does not seem to be available as \"jQuery\" or is missing basic functionality';\n\t\t}\n\n\t\tif( !$.jqueryAnnexData ){\n\t\t\tthrow 'jQueryAnnex Validation Plugin | cannot extend jQuery Annex, since it does not seem to be available yet';\n\t\t}\n\t}());\n\n\n\n\t//--|JQUERYANNEXDATA----------\n\n\t$.extend($.jqueryAnnexData, {\n\n\t\t// plugin is stored as part of jqueryAnnexData-dictionary\n\t\tvalidation : {\n\n\t\t\t// general state of page wide validation and basic validation data structure for elements\n\t\t\tconfig : {\n\t\t\t\tisValid : true,\n\t\t\t\tmessages : [],\n\n\t\t\t\tregisteredTargets : {\n\t\t\t\t\tall : []\n\t\t\t\t},\n\n\t\t\t\tglobalCallback : $.noop,\n\n\t\t\t\tadditionalWidgetEvents : '',\n\t\t\t\tvalidateOnWidgetEvents : true,\n\n\t\t\t\tdefaultValidationData : {\n\t\t\t\t\tisValid : true,\n\t\t\t\t\tisDirty : false,\n\n\t\t\t\t\tisOptional : false,\n\t\t\t\t\thasNonOptionalValue : false,\n\t\t\t\t\toptionalValues : [''],\n\n\t\t\t\t\tasyncError : false,\n\t\t\t\t\tasyncCount : 0,\n\t\t\t\t\tasyncLeft : 0,\n\n\t\t\t\t\tmessages : [],\n\n\t\t\t\t\tvalues : []\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// helper functions for internal plugin use\n\t\t\tfunctions : {\n\t\t\t\tvalidate : function(targets, isTriggeredByWidget){\n\n\t\t\t\t\tif( !$.isSet(isTriggeredByWidget) ){\n\t\t\t\t\t\tisTriggeredByWidget = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !isTriggeredByWidget || (isTriggeredByWidget && $.jqueryAnnexData.validation.config.validateOnWidgetEvents) ){\n\t\t\t\t\t\tvar validationRest = targets.length;\n\n\t\t\t\t\t\t$.jqueryAnnexData.validation.config.isValid = true;\n\t\t\t\t\t\t$.jqueryAnnexData.validation.config.messages = [];\n\n\t\t\t\t\t\t$.each(targets, function(index, $target){\n\t\t\t\t\t\t\tif( $.isSet($target) ){\n\t\t\t\t\t\t\t\tvar validationData = $target.data('validationdata');\n\n\t\t\t\t\t\t\t\t// catch trailing elements, not cleaned properly\n\t\t\t\t\t\t\t\tif( $.isSet(validationData) ){\n\t\t\t\t\t\t\t\t\tif( !isTriggeredByWidget || validationData.status.isDirty ){\n\t\t\t\t\t\t\t\t\t\t$target.first().one('finished.validation', function(e, isValid){\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\t\t\t\t\t\t\t$.jqueryAnnexData.validation.config.isValid = $.jqueryAnnexData.validation.config.isValid && isValid;\n\n\t\t\t\t\t\t\t\t\t\t\tif( !isValid ){\n\t\t\t\t\t\t\t\t\t\t\t\t$.merge($.jqueryAnnexData.validation.config.messages, $(e.target).data('validationdata').status.messages);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tvalidationRest--;\n\t\t\t\t\t\t\t\t\t\t\tif( validationRest <= 0 ){\n\t\t\t\t\t\t\t\t\t\t\t\t$.jqueryAnnexData.validation.config.globalCallback($.jqueryAnnexData.validation.config.isValid, $.jqueryAnnexData.validation.config.messages);\n\t\t\t\t\t\t\t\t\t\t\t\t$(document).trigger('finished.validation', $.jqueryAnnexData.validation.config.isValid);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\tvar isOptional = validationData.status.isOptional;\n\t\t\t\t\t\t\t\t\t\tvar asyncCount = validationData.status.asyncCount;\n\t\t\t\t\t\t\t\t\t\tvalidationData.status = $.extend(true, {}, $.jqueryAnnexData.validation.config.defaultValidationData);\n\t\t\t\t\t\t\t\t\t\tvalidationData.status.isDirty = true;\n\t\t\t\t\t\t\t\t\t\tvalidationData.status.isOptional = isOptional;\n\t\t\t\t\t\t\t\t\t\tvalidationData.status.asyncCount = asyncCount;\n\t\t\t\t\t\t\t\t\t\tvalidationData.status.asyncLeft = asyncCount;\n\n\t\t\t\t\t\t\t\t\t\tvalidationData.status.values = validationData.container.formDataToObject()[$target.attr('name').replace(/\\[\\]/, '')];\n\n\t\t\t\t\t\t\t\t\t\tif( $.isSet(validationData.status.values) ){\n\t\t\t\t\t\t\t\t\t\t\tif( !$.isArray(validationData.status.values) ){\n\t\t\t\t\t\t\t\t\t\t\t\tvalidationData.status.values = [validationData.status.values];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvalidationData.status.values = [];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif( validationData.status.isOptional ){\n\t\t\t\t\t\t\t\t\t\t\t$.each(validationData.status.values, function(index, value){\n\t\t\t\t\t\t\t\t\t\t\t\tif( $.inArray(value, validationData.status.optionalValues) === -1 ){\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalidationData.status.hasNonOptionalValue = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t$target.data('validationdata', validationData);\n\n\t\t\t\t\t\t\t\t\t\t$.jqueryAnnexData.validation.functions.unmarkValidationError($target);\n\n\t\t\t\t\t\t\t\t\t\tif(\n\t\t\t\t\t\t\t\t\t\t\t(!validationData.status.isOptional\n\t\t\t\t\t\t\t\t\t\t\t|| validationData.status.hasNonOptionalValue)\n\t\t\t\t\t\t\t\t\t\t\t&& !$.isSet($target.attr('disabled'))\n\t\t\t\t\t\t\t\t\t\t){\n\t\t\t\t\t\t\t\t\t\t\t$.each(validationData.rules, function(key, value){\n\t\t\t\t\t\t\t\t\t\t\t\tvalidationData.status.isValid = value() && validationData.status.isValid;\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tif( !validationData.status.isValid ){\n\t\t\t\t\t\t\t\t\t\t\t\t$.jqueryAnnexData.validation.functions.markValidationError($target);\n\n\t\t\t\t\t\t\t\t\t\t\t\tif( validationData.status.asyncLeft <= 0 ){\n\t\t\t\t\t\t\t\t\t\t\t\t\tif( $.isSet(validationData.callback) && $.isFunction(validationData.callback) ){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalidationData.callback(false, validationData.status.messages, $target);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t$target.trigger('error.validation', validationData.status.messages);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvalidationData.status.asyncLeft = 0;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif( validationData.status.asyncLeft <= 0 ){\n\t\t\t\t\t\t\t\t\t\t\tif( validationData.status.isValid ){\n\t\t\t\t\t\t\t\t\t\t\t\tif( $.isSet(validationData.callback) && $.isFunction(validationData.callback) ){\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalidationData.callback(true, [], $target);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$target.trigger('success.validation');\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t$target.trigger('finished.validation', validationData.status.isValid);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// manually kill validation for elements with lost validation data\n\t\t\t\t\t\t\t\t\t$target.unsetValidation(true);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\n\n\n\t\t\t\tmarkValidationError : function($target){\n\t\t\t\t\tvar $errorContainer = $target.data('validationdata').errorContainer;\n\n\t\t\t\t\tif( $.isSet($errorContainer) ){\n\t\t\t\t\t\t$errorContainer.addClass('validationerror');\n\t\t\t\t\t}\n\n\t\t\t\t\t$target.addClass('validationerror');\n\t\t\t\t},\n\n\n\n\t\t\t\tunmarkValidationError : function($target){\n\t\t\t\t\tvar $errorContainer = $target.data('validationdata').errorContainer;\n\n\t\t\t\t\tif( $.isSet($errorContainer) ){\n\t\t\t\t\t\t$errorContainer.removeClass('validationerror');\n\t\t\t\t\t}\n\n\t\t\t\t\t$target.removeClass('validationerror');\n\t\t\t\t},\n\n\n\n\t\t\t\tasyncCallbackFactory : function($target, msg){\n\t\t\t\t\tvar context = $target.data('validationdata').status;\n\t\t\t\t\tvar callback = $target.data('validationdata').callback;\n\n\t\t\t\t\tvar asyncCallBack = function(asyncRes){\n\t\t\t\t\t\tvar res =\n\t\t\t\t\t\t\t$.isA(asyncRes, 'boolean')\n\t\t\t\t\t\t\t? asyncRes\n\t\t\t\t\t\t\t: ($.trim(''+asyncRes) === '')\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\tcontext.asyncError = context.asyncError && !res;\n\t\t\t\t\t\tcontext.isValid = context.isValid && res;\n\t\t\t\t\t\tcontext.asyncLeft--;\n\n\t\t\t\t\t\tif( !context.isValid ){\n\t\t\t\t\t\t\t$.jqueryAnnexData.validation.functions.markValidationError($target);\n\n\t\t\t\t\t\t\tif( !res ){\n\t\t\t\t\t\t\t\tif( $.isA(asyncRes, 'string') && ($.trim(''+asyncRes) !== '') ){\n\t\t\t\t\t\t\t\t\tcontext.messages.push($.trim(''+asyncRes));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( context.asyncLeft <= 0 ){\n\t\t\t\t\t\t\t\tif( $.isSet(callback) && $.isFunction(callback) ){\n\t\t\t\t\t\t\t\t\tcallback(false, context.messages, $target);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$target.trigger('error.validation', context.messages);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if( context.asyncLeft <= 0 ){\n\t\t\t\t\t\t\tif( $.isSet(callback) && $.isFunction(callback) ){\n\t\t\t\t\t\t\t\tcallback(true, [], $target);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t$target.trigger('success.validation');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( context.asyncLeft <= 0 ){\n\t\t\t\t\t\t\t$target.trigger('finished.validation', context.isValid);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\treturn asyncCallBack;\n\t\t\t\t},\n\n\n\n\t\t\t\tasyncErrorCallbackFactory : function($target){\n\t\t\t\t\tvar context = $target.data('validationdata').status;\n\t\t\t\t\tvar callback = $target.data('validationdata').callback;\n\n\t\t\t\t\tvar asyncErrorCallBack = function(){\n\t\t\t\t\t\tcontext.asyncLeft--;\n\t\t\t\t\t\tcontext.asyncError = true;\n\n\t\t\t\t\t\tcontext.isValid = context.isValid && !context.asyncError;\n\n\t\t\t\t\t\t$.jqueryAnnexData.validation.functions.markValidationError($target);\n\t\t\t\t\t\tcontext.messages.push('communication error, could not retrieve data from server');\n\t\t\t\t\t\t$.log('communication error, could not retrieve data from server');\n\n\t\t\t\t\t\tif( context.asyncLeft <= 0 ){\n\t\t\t\t\t\t\tif( $.isSet(callback) && $.isFunction(callback) ){\n\t\t\t\t\t\t\t\tcallback(false, context.messages, $target);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t$target.trigger('error.validation', context.messages);\n\t\t\t\t\t\t\t$target.trigger('finished.validation', false);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\treturn asyncErrorCallBack;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// rule methods to apply validation to values\n\t\t\tvalidators : {\n\t\t\t\tcustomcase : function(msg, customRes){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\t\t\t\t\tvar dynamicMessage = null;\n\n\t\t\t\t\tif( $.isArray(customRes) && (customRes.length < 2) ){\n\t\t\t\t\t\tcustomRes = customRes[0];\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !$.isFunction(customRes) ){\n\t\t\t\t\t\tif( $.isA(customRes, 'boolean') ){\n\t\t\t\t\t\t\tres = customRes;\n\t\t\t\t\t\t} else if( $.trim(''+customRes) !== '' ){\n\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\tdynamicMessage = $.trim(''+customRes);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar tmpRes = customRes(\n\t\t\t\t\t\t\t$(this),\n\t\t\t\t\t\t\t$.jqueryAnnexData.validation.functions.asyncCallbackFactory($(this), msg),\n\t\t\t\t\t\t\t$.jqueryAnnexData.validation.functions.asyncErrorCallbackFactory($(this))\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif( $.isSet(tmpRes) ){\n\t\t\t\t\t\t\tif( $.isA(tmpRes, 'boolean') ){\n\t\t\t\t\t\t\t\tres = tmpRes;\n\t\t\t\t\t\t\t} else if( $.trim(''+tmpRes) !== '' ){\n\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\tdynamicMessage = $.trim(''+tmpRes);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !$.isSet(dynamicMessage) ){\n\t\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\trequired : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tif( context.values.length === 1 ){\n\t\t\t\t\t\tres = context.values[0] !== '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tres = context.values.length > 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !res && $.isSet(msg) && (msg !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tnotempty : function(msg){\n\t\t\t\t\tvar additionalEmptyValues = Array.prototype.slice.call(arguments, 1);\n\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tvar emptyValues = [''];\n\t\t\t\t\t$.merge(emptyValues, additionalEmptyValues);\n\n\t\t\t\t\tif( context.values.length === 1 ){\n\t\t\t\t\t\tres = ($.inArray($.trim(context.values[0]), emptyValues) === -1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tres = context.values.length !== 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\toptional : function(){\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\n\n\n\t\t\t\tminlength : function(msg, minlength){\n\t\t\t\t\tminlength = parseInt(minlength, 10);\n\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tif( context.values.length === 1 ){\n\t\t\t\t\t\tres = context.values[0].length >= minlength;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tres = (context.values.length >= minlength);\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tmaxlength : function(msg, maxlength){\n\t\t\t\t\tmaxlength = parseInt(maxlength, 10);\n\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tif( context.values.length === 1 ){\n\t\t\t\t\t\tres = context.values[0].length <= maxlength;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tres = (context.values.length <= maxlength);\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\trangelength : function(msg, rangemin, rangemax){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tif( $.isSet(rangemin, rangemax) ){\n\t\t\t\t\t\tres =\n\t\t\t\t\t\t\t$.proxy($.jqueryAnnexData.validation.validators.minlength, $(this), null, rangemin)()\n\t\t\t\t\t\t\t&& $.proxy($.jqueryAnnexData.validation.validators.maxlength, $(this), null, rangemax)()\n\t\t\t\t\t\t;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tmin : function(msg, min){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tres = res && ($.isNumeric(value) && (parseInt(value, 10) >= min));\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tmax : function(msg, max){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tres = res && ($.isNumeric(value) && (parseInt(value, 10) <= max));\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\trange : function(msg, min, max){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tif( $.isSet(min, max) ){\n\t\t\t\t\t\tres =\n\t\t\t\t\t\t\t$.proxy($.jqueryAnnexData.validation.validators.min, $(this), null, min)()\n\t\t\t\t\t\t\t&& $.proxy($.jqueryAnnexData.validation.validators.max, $(this), null, max)()\n\t\t\t\t\t\t;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\temail : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tvar ruleRes = /^[^@]{1,64}@[^@]{1,255}$/.test(value);\n\n\t\t\t\t\t\tif( ruleRes ){\n\t\t\t\t\t\t\tvar email_array = value.split('@');\n\t\t\t\t\t\t\tvar local_array = email_array[0].split('.');\n\n\t\t\t\t\t\t\tfor ( var i = 0; i < local_array.length; i++) {\n\t\t\t\t\t\t\t\tif( !(/^(([A-Za-z0-9!#$%&'*+\\/=?^_`{|}~-][A-Za-z0-9!#$%&'*+\\/=?^_`{|}~\\.-]{0,63})|(\\\\\\\"[^(\\\\|\\\\\\\")]{0,62}\\\\\\\"))$/.test(local_array[i])) ){\n\t\t\t\t\t\t\t\t\truleRes = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar domain_array = '';\n\t\t\t\t\t\t\tif( !(/^\\[?[0-9\\.]+\\]?$/.test(email_array[1])) ){\n\t\t\t\t\t\t\t\tdomain_array = email_array[1].split('.');\n\n\t\t\t\t\t\t\t\tif( domain_array.length < 2 ){\n\t\t\t\t\t\t\t\t\truleRes = false;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfor( i = 0; i < domain_array.length; i++ ){\n\t\t\t\t\t\t\t\t\tif( !(/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]{2,5}))$/.test(domain_array[i])) ){\n\t\t\t\t\t\t\t\t\t\truleRes = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tres = res && ruleRes;\n\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\turl : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tres = res && /^(https?|ftp)\\:\\/\\/([a-z0-9+!*(),;?&=$_.-]+(\\:[a-z0-9+!*(),;?&=$_.-]+)?@)?([a-z0-9+$_-]+\\.)*[a-z0-9+$_-]{2,3}(\\:[0-9]{2,5})?(\\/([a-z0-9+$_-]\\.?)+)*\\/?(\\?[a-z+&$_.-][a-z0-9;:@\\/&%=+$_.-]*)?(#[a-z_.-][a-z0-9+$_.-]*)?$/.test(value);\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tdate : function(msg, __internal__){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tif( $.isSet(__internal__) && (__internal__ === '__internal__') ){\n\t\t\t\t\t\t\tvar datetimeParts = value.split(' ');\n\t\t\t\t\t\t\tif( datetimeParts.length >= 2 ){\n\t\t\t\t\t\t\t\tvalue = $.trim(datetimeParts[0]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar formatValid = /^(0?[1-9]|1[0-2])\\/(0?[1-9]|[1-2][0-9]|3[0-1])\\/([1-2][0-9]{3})$/.test(value);\n\t\t\t\t\t\tvar splitValue = formatValid ? value.split('/') : null;\n\n\t\t\t\t\t\tif( formatValid ){\n\t\t\t\t\t\t\tfor( var i = 0; i < 2; i++ ){\n\t\t\t\t\t\t\t\tif( splitValue[i].length < 2 ){\n\t\t\t\t\t\t\t\t\tsplitValue[i] = '0'+splitValue[i];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar date = formatValid ? new Date(splitValue[2]+'-'+splitValue[0]+'-'+splitValue[1]) : null;\n\t\t\t\t\t\tvar ruleRes =\n\t\t\t\t\t\t\t((date !== null) && (splitValue !== null))\n\t\t\t\t\t\t\t? (\n\t\t\t\t\t\t\t\t!/Invalid|NaN/.test(date)\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[0], 10) === (date.getMonth() + 1))\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[1], 10) === (date.getDate()))\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[2], 10) === (date.getFullYear()))\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: false\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\tres = res && ruleRes;\n\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\ttime : function(msg, __internal__){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tif( $.isSet(__internal__) && (__internal__ === '__internal__') ){\n\t\t\t\t\t\t\tvar datetimeParts = value.split(' ');\n\t\t\t\t\t\t\tif( datetimeParts.length >= 2 ){\n\t\t\t\t\t\t\t\tvalue = $.trim(datetimeParts[1]);\n\t\t\t\t\t\t\t\tif( datetimeParts.length >= 3 ){\n\t\t\t\t\t\t\t\t\tvalue += ' '+$.trim(datetimeParts[2]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar ruleRes = /^((0?[0-9]|1[0-1])\\:[0-5][0-9](\\:[0-5][0-9])? ?(am|AM|pm|PM)|12\\:[0-5][0-9](\\:[0-5][0-9])? ?(pm|PM))$/.test(value);\n\t\t\t\t\t\tres = res && ruleRes;\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tdatetime : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tres =\n\t\t\t\t\t\t$.proxy($.jqueryAnnexData.validation.validators.date, $(this), null, '__internal__')()\n\t\t\t\t\t\t&& $.proxy($.jqueryAnnexData.validation.validators.time, $(this), null, '__internal__')()\n\t\t\t\t\t;\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tdateISO : function(msg, __internal__){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tif( $.isSet(__internal__) && (__internal__ === '__internal__') ){\n\t\t\t\t\t\t\tvar datetimeParts = value.replace(/T/, ' ').split(' ');\n\t\t\t\t\t\t\tif( datetimeParts.length >= 2 ){\n\t\t\t\t\t\t\t\tvalue = $.trim(datetimeParts[0]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar formatValid = /^([1-2][0-9]{3})\\-(0?[1-9]|1[0-2])\\-(0?[1-9]|[1-2][0-9]|3[0-1])$/.test(value);\n\t\t\t\t\t\tvar splitValue = formatValid ? value.split('-') : null;\n\n\t\t\t\t\t\tif( formatValid ){\n\t\t\t\t\t\t\tfor( var i = 1; i < 3; i++ ){\n\t\t\t\t\t\t\t\tif( splitValue[i].length < 2 ){\n\t\t\t\t\t\t\t\t\tsplitValue[i] = '0'+splitValue[i];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar date = formatValid ? new Date(parseInt(splitValue[0], 10), parseInt(splitValue[1], 10) - 1, parseInt(splitValue[2], 10)) : null;\n\t\t\t\t\t\tvar ruleRes =\n\t\t\t\t\t\t\t((date !== null) && (splitValue !== null))\n\t\t\t\t\t\t\t? (\n\t\t\t\t\t\t\t\t!/Invalid|NaN/.test(date)\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[0], 10) === (date.getFullYear()))\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[1], 10) === (date.getMonth() + 1))\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[2], 10) === (date.getDate()))\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: false\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\tres = res && ruleRes;\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\ttimeISO : function(msg, __internal__){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tif( $.isSet(__internal__) && (__internal__ === '__internal__') ){\n\t\t\t\t\t\t\tvar datetimeParts = value.replace(/T/, ' ').split(' ');\n\t\t\t\t\t\t\tif( datetimeParts.length >= 2 ){\n\t\t\t\t\t\t\t\tvalue = $.trim(datetimeParts[1]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar ruleRes = /^([0-1][0-9]|2[0-3])\\:[0-5][0-9]\\:[0-5][0-9]$/.test(value);\n\t\t\t\t\t\tres = res && ruleRes;\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tdatetimeISO : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tres =\n\t\t\t\t\t\t$.proxy($.jqueryAnnexData.validation.validators.dateISO, $(this), null, '__internal__')()\n\t\t\t\t\t\t&& $.proxy($.jqueryAnnexData.validation.validators.timeISO, $(this), null, '__internal__')()\n\t\t\t\t\t;\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tdateDE : function(msg, __internal__){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tif( $.isSet(__internal__) && (__internal__ === '__internal__') ){\n\t\t\t\t\t\t\tvar datetimeParts = value.split(' ');\n\t\t\t\t\t\t\tif( datetimeParts.length >= 2 ){\n\t\t\t\t\t\t\t\tvalue = $.trim(datetimeParts[0]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar formatValid = /^(0?[1-9]|[1-2][0-9]|3[0-1])\\.(0?[1-9]|1[0-2])\\.([1-2][0-9]{3})$/.test(value);\n\t\t\t\t\t\tvar splitValue = formatValid ? value.split('.') : null;\n\n\t\t\t\t\t\tif( formatValid ){\n\t\t\t\t\t\t\tfor( var i = 0; i < 2; i++ ){\n\t\t\t\t\t\t\t\tif( splitValue[i].length < 2 ){\n\t\t\t\t\t\t\t\t\tsplitValue[i] = '0'+splitValue[i];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar date = formatValid ? new Date(parseInt(splitValue[2], 10), parseInt(splitValue[1], 10) - 1, parseInt(splitValue[0], 10)) : null;\n\t\t\t\t\t\tvar ruleRes =\n\t\t\t\t\t\t\t((date !== null) && (splitValue !== null))\n\t\t\t\t\t\t\t? (\n\t\t\t\t\t\t\t\t!/Invalid|NaN/.test(date)\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[0], 10) === (date.getDate()))\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[1], 10) === (date.getMonth() + 1))\n\t\t\t\t\t\t\t\t&& (parseInt(splitValue[2], 10) === (date.getFullYear()))\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: false\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\tres = res && ruleRes;\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\ttimeDE : function(msg, __internal__){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tif( $.isSet(__internal__) && (__internal__ === '__internal__') ){\n\t\t\t\t\t\t\tvar datetimeParts = value.split(' ');\n\t\t\t\t\t\t\tif( datetimeParts.length >= 2 ){\n\t\t\t\t\t\t\t\tvalue = $.trim(datetimeParts[1]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar ruleRes = /^([0-1][0-9]|2[0-3])\\:[0-5][0-9](\\:[0-5][0-9])?h?$/.test(value);\n\t\t\t\t\t\tres = res && ruleRes;\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tdatetimeDE : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tres =\n\t\t\t\t\t\t$.proxy($.jqueryAnnexData.validation.validators.dateDE, $(this), null, '__internal__')()\n\t\t\t\t\t\t&& $.proxy($.jqueryAnnexData.validation.validators.timeDE, $(this), null, '__internal__')()\n\t\t\t\t\t;\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tnumber : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tres = res && ((value === ''+parseInt(value, 10)) || (value === ''+parseFloat(value)));\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tnumberDE : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tvar ruleRes = /^[0-9]+(\\,[0-9]+)?$/.test(value);\n\n\t\t\t\t\t\tif( ruleRes ){\n\t\t\t\t\t\t\tvalue = value.replace(/\\,/g, '.');\n\t\t\t\t\t\t\truleRes = ((value === ''+parseInt(value, 10)) || (value === ''+parseFloat(value)));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tres = res && ruleRes;\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tdigits : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tres = res && /^[0-9]+$/.test(value);\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tcreditcard : function(msg){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tres = res && /^[0-9]{3,4}\\-[0-9]{4}\\-[0-9]{4}\\-[0-9]{4}$/.test(value);\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\n\n\n\t\t\t\tcharacterclass : function(msg, characterclass){\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tvar context = $(this).data('validationdata').status;\n\n\t\t\t\t\tvar characterClassRegEx = new RegExp('^['+characterclass+']*$');\n\n\t\t\t\t\t$.each(context.values, function(index, value){\n\t\t\t\t\t\tres = res && characterClassRegEx.test(value);\n\t\t\t\t\t\tif( !res ) return false;\n\t\t\t\t\t});\n\n\t\t\t\t\tif( !res && $.isSet(msg) && ($.trim(msg) !== '') ){\n\t\t\t\t\t\tcontext.messages.push(msg);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t});\n\n\n\n\t//--|JQUERY-$-GENERAL-FUNCTIONS----------\n\n\t$.extend({\n\n\t\ttriggerValidation : function(targetGroup){\n\t\t\ttargetGroup = $.orDefault(targetGroup, 'all', 'string');\n\t\t\t$.jqueryAnnexData.validation.functions.validate($.jqueryAnnexData.validation.config.registeredTargets[targetGroup]);\n\t\t},\n\n\n\n\t\texecuteOnValidation : function(callback){\n\t\t\t$.assert($.isFunction(callback), 'executeOnValidation | callback is no function');\n\n\t\t\t$.jqueryAnnexData.validation.config.globalCallback = callback;\n\t\t},\n\n\n\n\t\tvalidationIsTriggeredByWidgetEvents : function(doValidate){\n\t\t\tdoValidate = !!doValidate;\n\t\t\t$.jqueryAnnexData.validation.config.validateOnWidgetEvents = doValidate;\n\t\t},\n\n\n\n\t\tsetAdditionalValidationWidgetEvents : function(events){\n\t\t\t$.assert($.isArray(events), 'events need to be an array');\n\n\t\t\tvar eventString = '';\n\t\t\t$.each(events, function(index, value){\n\t\t\t\teventString += value+'.validation ';\n\t\t\t});\n\t\t\teventString = ' '+$.trim(eventString);\n\n\t\t\t$.jqueryAnnexData.validation.config.additionalWidgetEvents = eventString;\n\t\t},\n\n\n\n\t\tsetValidationFromTags : function(){\n\t\t\t$(':input[data-validation]').each(function(){\n\t\t\t\tif( $.isPlainObject($(this).data('validation')) || $.isArray($(this).data('validation')) ){\n\t\t\t\t\tvar callback = ($.isSet($(this).data('validation-callback')) && $.isFunction($(this).data('validation-callback'))) ? $(this).data('validation-callback') : null;\n\t\t\t\t\tvar errorContainer = ($.isSet($(this).data('validation-errorcontainer')) && $.exists($(this).data('validation-errorcontainer'))) ? $(this).data('validation-errorcontainer') : null;\n\t\t\t\t\tvar container = ($.isSet($(this).data('validation-container')) && $.exists($(this).data('validation-container'))) ? $(this).data('validation-container') : null;\n\t\t\t\t\tvar targetGroup = ($.isSet($(this).data('validation-targetgroup'))) ? $(this).data('validation-targetgroup') : null;\n\t\t\t\t\tvar suppressSubmit = ($.isSet($(this).data('validation-suppresssubmit'))) ? ($(this).data('validation-suppresssubmit') === 'true') : false;\n\t\t\t\t\t$(this).setValidation($(this).data('validation'), callback, errorContainer, container, targetGroup, suppressSubmit);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t});\n\n\n\n\t//--|JQUERY-OBJECT-GENERAL-FUNCTIONS----------\n\n\t$.fn.extend({\n\n\t\tsetValidation : function(validators, callback, $errorContainer, $container, targetGroup, suppressSubmit){\n\t\t\tvalidators = $.orDefault(validators, [], 'array');\n\t\t\ttargetGroup = $.orDefault(targetGroup, 'all', 'string');\n\t\t\tsuppressSubmit = $.orDefault(suppressSubmit, false, 'bool');\n\n\t\t\tif( !$.isSet($container) ){\n\t\t\t\t$container = $(this).closest('form');\n\n\t\t\t\tif( !$.exists($container) ){\n\t\t\t\t\t$container = $(this);\n\t\t\t\t} else {\n\t\t\t\t\t$container.off('submit.validation');\n\t\t\t\t\t$container.on('submit.validation', function(e, validated){\n\t\t\t\t\t\tif( !$.isSet(validated) ){\n\t\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\t\t$(document).one('finished.validation', function(e, isValid){\n\t\t\t\t\t\t\t\t$container.trigger('submit.validation', isValid);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t$.jqueryAnnexData.validation.functions.validate($.jqueryAnnexData.validation.config.registeredTargets[targetGroup]);\n\t\t\t\t\t\t} else if( !validated || suppressSubmit ){\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$container = $container.find(':input');\n\t\t\t}\n\n\t\t\t// apply to each set member individually to avoid setting data for whole set\n\t\t\t$(this).each(function(){\n\t\t\t\t$.assert($(this).is(':input'), 'setValidation | element is no value-bearing form element');\n\t\t\t\t$.assert($.isSet($(this).attr('name')), 'setValidation | element has no attribute \"name\"');\n\n\t\t\t\tvar that = this;\n\n\t\t\t\t$(this).removeData('validationdata');\n\t\t\t\tvar validationData = {\n\t\t\t\t\tstatus : $.extend({}, $.jqueryAnnexData.validation.config.defaultValidationData),\n\t\t\t\t\trules : {},\n\t\t\t\t\tcallback : callback,\n\t\t\t\t\tcontainer : $container,\n\t\t\t\t\terrorContainer : $errorContainer\n\t\t\t\t};\n\n\t\t\t\tvar asyncRulesCount = 0;\n\t\t\t\t$.each(validators, function(index, rule){\n\t\t\t\t\tvar ruleLength = $.objectLength(rule);\n\t\t\t\t\tif( $.isPlainObject(rule) && (ruleLength >= 1) && (ruleLength <= 2) ){\n\t\t\t\t\t\tif( ruleLength === 2 ){\n\t\t\t\t\t\t\t$.assert($.exists('args', rule));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar ruleName = null;\n\t\t\t\t\t\tvar ruleMessage = null;\n\t\t\t\t\t\tvar ruleArgs = $.exists('args', rule) ? ($.isArray(rule.args) ? rule.args : [rule.args]) : [];\n\t\t\t\t\t\t$.each(rule, function(rulePartKey, rulePartValue){\n\t\t\t\t\t\t\tif( rulePartKey !== 'args' ){\n\t\t\t\t\t\t\t\truleName = rulePartKey;\n\t\t\t\t\t\t\t\truleMessage = rulePartValue;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif( $.isSet(ruleName) ){\n\t\t\t\t\t\t\truleName = ruleName.split('_async');\n\t\t\t\t\t\t\tvar hasAsyncMarker = (ruleName.length > 1);\n\t\t\t\t\t\t\truleName = ruleName[0];\n\n\t\t\t\t\t\t\tif( ruleName === 'optional' ){\n\t\t\t\t\t\t\t\tvalidationData.status.isOptional = true;\n\t\t\t\t\t\t\t\t$.merge(validationData.status.optionalValues, ruleArgs);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( $.isFunction($.jqueryAnnexData.validation.validators[ruleName]) ){\n\t\t\t\t\t\t\t\tif( hasAsyncMarker ){\n\t\t\t\t\t\t\t\t\tasyncRulesCount++;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvalidationData.rules[ruleName+'_'+$.randomUuid(true)] = $.proxy.apply($, $.merge([], $.merge([$.jqueryAnnexData.validation.validators[ruleName], $(that), ''+$.trim(ruleMessage)], ruleArgs)));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvalidationData.status.asyncCount = asyncRulesCount;\n\n\t\t\t\t$.jqueryAnnexData.validation.config.registeredTargets.all.push($(this));\n\t\t\t\tif( targetGroup !== 'all' ){\n\t\t\t\t\tif( !$.isSet($.jqueryAnnexData.validation.config.registeredTargets[targetGroup]) ){\n\t\t\t\t\t\t$.jqueryAnnexData.validation.config.registeredTargets[targetGroup] = [];\n\t\t\t\t\t}\n\t\t\t\t\t$.jqueryAnnexData.validation.config.registeredTargets[targetGroup].push($(this));\n\t\t\t\t}\n\n\t\t\t\tvar blurChangeTimeout = null,\n\t\t\t\t\tfocusTimeout = null,\n\t\t\t\t\t$elements = $container.find('[name=\"'+$(this).attr('name')+'\"]');\n\n\t\t\t\tif( $elements.length === 0 ){\n\t\t\t\t\t$elements = $container.filter('[name=\"'+$(this).attr('name')+'\"]');\n\t\t\t\t}\n\n\t\t\t\t$elements.each(function(){\n\t\t\t\t\t$(this)\n\t\t\t\t\t\t.data('validationdata', validationData)\n\t\t\t\t\t\t.off('change.validation blur.validation focus.validation'+$.jqueryAnnexData.validation.config.additionalWidgetEvents)\n\t\t\t\t\t\t.on('change.validation blur.validation'+$.jqueryAnnexData.validation.config.additionalWidgetEvents, function(){\n\t\t\t\t\t\t\tvar _this_ = this;\n\n\t\t\t\t\t\t\t$.countermand(blurChangeTimeout);\n\t\t\t\t\t\t\tblurChangeTimeout = $.schedule(10, function(){\n\t\t\t\t\t\t\t\t$(_this_).data('validationdata').status.isDirty = true;\n\t\t\t\t\t\t\t\t$.jqueryAnnexData.validation.functions.validate($.jqueryAnnexData.validation.config.registeredTargets[targetGroup], true);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.on('focus.validation', function(){\n\t\t\t\t\t\t\tvar _this_ = this;\n\n\t\t\t\t\t\t\t$.countermand(focusTimeout);\n\t\t\t\t\t\t\tfocusTimeout = $.schedule(10, function(){\n\t\t\t\t\t\t\t\t$(_this_).data('validationdata').status.isDirty = true;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})\n\t\t\t\t\t;\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn this;\n\t\t},\n\n\n\t\tunsetValidation : function(ignoreMissingValidationData, targetGroup){\n\t\t\tignoreMissingValidationData = $.orDefault(ignoreMissingValidationData, false, 'bool');\n\t\t\ttargetGroup = ($.isSet(targetGroup) && $.jqueryAnnexData.validation.config.registeredTargets[targetGroup]) ? ''+targetGroup : null;\n\n\t\t\t// handle all set members individually to clearly identify them in registeredTarget-array\n\t\t\t$(this).each(function(){\n\t\t\t\t$.assert($(this).is(':input'), 'unsetValidation | element is no value-bearing form element');\n\t\t\t\t$.assert($.isSet($(this).attr('name')), 'unsetValidation | element has no attribute \"name\"');\n\n\t\t\t\tvar _this_ = this;\n\n\t\t\t\tif( $.isSet($(this).data('validationdata')) || ignoreMissingValidationData ){\n\t\t\t\t\t$(this).removeData('validationdata');\n\n\t\t\t\t\tvar groupsToSearch = {};\n\n\t\t\t\t\tif( $.isSet(targetGroup) ){\n\t\t\t\t\t\tgroupsToSearch.all = $.jqueryAnnexData.validation.config.registeredTargets.all;\n\t\t\t\t\t\tgroupsToSearch[targetGroup] = $.jqueryAnnexData.validation.config.registeredTargets[targetGroup];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgroupsToSearch = $.jqueryAnnexData.validation.config.registeredTargets;\n\t\t\t\t\t}\n\n\t\t\t\t\t$.each(groupsToSearch, function(key, targetGroup){\n\t\t\t\t\t\tif( $.isSet(targetGroup) ){\n\t\t\t\t\t\t\tvar elementIndex = -1;\n\t\t\t\t\t\t\tfor( var i = 0; i < targetGroup.length; i++ ){\n\t\t\t\t\t\t\t\tif( $(_this_).attr('name') === targetGroup[i].attr('name') ){\n\t\t\t\t\t\t\t\t\telementIndex = i;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( elementIndex >= 0 ){\n\t\t\t\t\t\t\t\t$.jqueryAnnexData.validation.config.registeredTargets[key] = $.removeFromArray($.jqueryAnnexData.validation.config.registeredTargets[key], elementIndex);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( $.jqueryAnnexData.validation.config.registeredTargets[key].length === 0 ){\n\t\t\t\t\t\t\t\t$(this).closest('form').off('submit.validation');\n\n\t\t\t\t\t\t\t\tif( key !== 'all' ){\n\t\t\t\t\t\t\t\t\tdelete $.jqueryAnnexData.validation.config.registeredTargets[key];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t$(this).off('change.validation blur.validation'+$.jqueryAnnexData.validation.config.additionalWidgetEvents);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn this;\n\t\t}\n\n\t});\n\n\treturn $;\n\n}));\n"],"names":["global","factory","jQuery","$","define","amd","module","exports","__AVA_ENV__","require","jqueryAnnexData","ex","window","this","fn","jquery","extend","validation","config","isValid","messages","registeredTargets","all","globalCallback","noop","additionalWidgetEvents","validateOnWidgetEvents","defaultValidationData","isDirty","isOptional","hasNonOptionalValue","optionalValues","asyncError","asyncCount","asyncLeft","values","functions","validate","targets","isTriggeredByWidget","validationRest","isSet","length","each","index","$target","validationData","data","status","first","one","e","stopPropagation","merge","target","document","trigger","container","formDataToObject","attr","replace","isArray","value","inArray","unmarkValidationError","rules","key","markValidationError","callback","isFunction","unsetValidation","$errorContainer","errorContainer","addClass","removeClass","asyncCallbackFactory","msg","context","asyncRes","res","isA","trim","push","asyncErrorCallbackFactory","log","validators","customcase","customRes","tmpRes","dynamicMessage","required","notempty","additionalEmptyValues","Array","prototype","slice","call","arguments","emptyValues","optional","minlength","parseInt","maxlength","rangelength","rangemin","rangemax","proxy","min","isNumeric","max","range","email","ruleRes","test","email_array","split","local_array","i","domain_array","url","date","__internal__","datetimeParts","formatValid","splitValue","Date","getMonth","getDate","getFullYear","time","datetime","dateISO","timeISO","datetimeISO","dateDE","timeDE","datetimeDE","number","parseFloat","numberDE","digits","creditcard","characterclass","characterClassRegEx","RegExp","triggerValidation","targetGroup","orDefault","executeOnValidation","assert","validationIsTriggeredByWidgetEvents","doValidate","setAdditionalValidationWidgetEvents","events","eventString","setValidationFromTags","suppressSubmit","isPlainObject","exists","setValidation","$container","find","closest","off","on","validated","preventDefault","is","that","removeData","asyncRulesCount","blurChangeTimeout","rule","ruleMessage","ruleName","ruleLength","objectLength","ruleArgs","args","rulePartKey","rulePartValue","hasAsyncMarker","randomUuid","apply","focusTimeout","$elements","filter","_this_","countermand","schedule","ignoreMissingValidationData","groupsToSearch","elementIndex","removeFromArray"],"mappings":"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"}