[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [12155] update to jqueryValidator
From: |
Alejandro |
Subject: |
[Fmsystem-commits] [12155] update to jqueryValidator |
Date: |
Fri, 10 Oct 2014 22:54:23 +0000 |
Revision: 12155
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=12155
Author: nudrick
Date: 2014-10-10 22:54:22 +0000 (Fri, 10 Oct 2014)
Log Message:
-----------
update to jqueryValidator
Added Paths:
-----------
branches/dev-syncromind/phpgwapi/js/jquery/validator/date.js
branches/dev-syncromind/phpgwapi/js/jquery/validator/file.js
branches/dev-syncromind/phpgwapi/js/jquery/validator/html5.js
branches/dev-syncromind/phpgwapi/js/jquery/validator/img/
branches/dev-syncromind/phpgwapi/js/jquery/validator/img/Thumbs.db
branches/dev-syncromind/phpgwapi/js/jquery/validator/img/icon-fail.png
branches/dev-syncromind/phpgwapi/js/jquery/validator/img/icon-ok.png
branches/dev-syncromind/phpgwapi/js/jquery/validator/jquery.form-validator.min.js
branches/dev-syncromind/phpgwapi/js/jquery/validator/location.js
branches/dev-syncromind/phpgwapi/js/jquery/validator/security.js
branches/dev-syncromind/phpgwapi/js/jquery/validator/sweden.js
branches/dev-syncromind/phpgwapi/js/jquery/validator/uk.js
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/date.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/validator/date.js
(rev 0)
+++ branches/dev-syncromind/phpgwapi/js/jquery/validator/date.js
2014-10-10 22:54:22 UTC (rev 12155)
@@ -0,0 +1 @@
+(function($){$.formUtils.addValidator({name:"time",validatorFunction:function(time){if(time.match(/^(\d{2}):(\d{2})$/)===null){return
false}else{var hours=parseInt(time.split(":")[0],10);var
minutes=parseInt(time.split(":")[1],10);if(hours>23||minutes>59){return
false}}return
true},errorMessage:"",errorMessageKey:"badTime"});$.formUtils.addValidator({name:"birthdate",validatorFunction:function(val,$el,conf){var
dateFormat="yyyy-mm-dd";if($el.valAttr("format")){dateFormat=$el.valAttr("format")}else
if(typeof conf.dateFormat!="undefined"){dateFormat=conf.dateFormat}var
inputDate=$.formUtils.parseDate(val,dateFormat);if(!inputDate){return false}var
d=new Date;var currentYear=d.getFullYear();var year=inputDate[0];var
month=inputDate[1];var day=inputDate[2];if(year===currentYear){var
currentMonth=d.getMonth()+1;if(month===currentMonth){var
currentDay=d.getDate();return day<=currentDay}else{return
month<currentMonth}}else{return
year<currentYear&&year>currentYear-124}},errorMessage:"",errorMessageKey:"badDate"})})(jQuery);
\ No newline at end of file
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/file.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/validator/file.js
(rev 0)
+++ branches/dev-syncromind/phpgwapi/js/jquery/validator/file.js
2014-10-10 22:54:22 UTC (rev 12155)
@@ -0,0 +1 @@
+(function($,window){var SUPPORTS_FILE_READER=typeof
window.FileReader!="undefined",_getTypes=function($input){var
allowedTypes=$.split(($input.valAttr("allowing")||"").toLowerCase());if($.inArray("jpg",allowedTypes)>-1&&$.inArray("jpeg",allowedTypes)==-1)allowedTypes.push("jpeg");else
if($.inArray("jpeg",allowedTypes)>-1&&$.inArray("jpg",allowedTypes)==-1)allowedTypes.push("jpg");return
allowedTypes},_log=function(msg){if(window.console&&window.console.log){window.console.log(msg)}};$.formUtils.addValidator({name:"mime",validatorFunction:function(str,$input){var
files=$input.get(0).files||[];if(SUPPORTS_FILE_READER){var
valid=true,mime="",allowedTypes=_getTypes($input);$.each(files,function(i,file){valid=false;mime=file.type||"";$.each(allowedTypes,function(j,type){valid=mime.indexOf(type)>-1;if(valid){return
false}});return valid});if(!valid){_log("Trying to upload a file with mime
type "+mime+" which is not allowed")}return valid}else{_log("FileReader not
supported by browser, will check file extension");return
$.formUtils.validators.validate_extension.validatorFunction(str,$input)}},errorMessage:"The
file you are trying to upload is of wrong
type",errorMessageKey:"wrongFileType"});$.formUtils.addValidator({name:"extension",validatorFunction:function(value,$input){var
valid=true,types=_getTypes($input);$.each($input.get(0).files||[],function(i,file){var
val=file.value,ext=val.substr(val.lastIndexOf(".")+1);if($.inArray(ext.toLowerCase(),types)==-1){valid=false;return
false}});return valid},errorMessage:"The file you are trying to upload is of
wrong
type",errorMessageKey:"wrongFileType"});$.formUtils.addValidator({name:"size",validatorFunction:function(val,$input){var
maxSize=$input.valAttr("max-size");if(!maxSize){_log('Input
"'+$input.attr("name")+'" is missing data-validation-max-size
attribute');return true}else if(!SUPPORTS_FILE_READER){return true}var
maxBytes=$.formUtils.convertSizeNameToBytes(maxSize),valid=true;$.each($input.get(0).files||[],function(i,file){valid=file.size<=maxBytes;return
valid});return valid},errorMessage:"The file you are trying to upload is too
large",errorMessageKey:"wrongFileSize"});$.formUtils.convertSizeNameToBytes=function(sizeName){sizeName=sizeName.toUpperCase();if(sizeName.substr(sizeName.length-1,1)=="M"){return
parseInt(sizeName.substr(0,sizeName.length-1),10)*1024*1024}else
if(sizeName.substr(sizeName.length-2,2)=="MB"){return
parseInt(sizeName.substr(0,sizeName.length-2),10)*1024*1024}else
if(sizeName.substr(sizeName.length-2,2)=="KB"){return
parseInt(sizeName.substr(0,sizeName.length-2),10)*1024}else
if(sizeName.substr(sizeName.length-1,1)=="B"){return
parseInt(sizeName.substr(0,sizeName.length-1),10)}else{return
parseInt(sizeName,10)}};$(window).one("validatorsLoaded
formValidationSetup",function(evt,$form){var
$inputs;if($form){$inputs=$form.find('input[type="file"]')}else{$inputs=$('input[type="file"]')}$inputs.filter("*[data-validation]").bind("change",function(){$(this).removeClass("error").parent().find(".form-error").remove()})})})(jQuery,window);
\ No newline at end of file
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/html5.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/validator/html5.js
(rev 0)
+++ branches/dev-syncromind/phpgwapi/js/jquery/validator/html5.js
2014-10-10 22:54:22 UTC (rev 12155)
@@ -0,0 +1 @@
+(function($,window){"use strict";var SUPPORTS_PLACEHOLDER="placeholder"in
document.createElement("INPUT"),SUPPORTS_DATALIST="options"in
document.createElement("DATALIST");$(window).bind("validatorsLoaded
formValidationSetup",function(evt,$form){if(!$form){$form=$("form")}var
hasLoadedDateModule=false;$form.each(function(){var
$f=$(this),$formInputs=$f.find("input,textarea,select"),foundHtml5Rule=false;$formInputs.each(function(){var
validation=[],$input=$(this),isRequired=$input.attr("required"),attrs={};switch(($input.attr("type")||"").toLowerCase()){case"time":validation.push("time");if(!$.formUtils.validators.validate_date&&!hasLoadedDateModule){hasLoadedDateModule=true;$.formUtils.loadModules("date")}break;case"url":validation.push("url");break;case"email":validation.push("email");break;case"date":validation.push("date");break;case"number":validation.push("number");var
max=$input.attr("max"),min=$input.attr("min");if(min||max){if(!min)min=0;if(!max)max=9007199254740992;attrs["data-validation-allowing"]="range["+min+";"+max+"]";if(min.indexOf("-")===0||max.indexOf("-")===0){attrs["data-validation-allowing"]+=",negative"}if(min.indexOf(".")>-1||max.indexOf(".")>-1){attrs["data-validation-allowing"]+=",float"}}break}if($input.attr("pattern")){validation.push("custom");attrs["data-validation-regexp"]=$input.attr("pattern")}if($input.attr("maxlength")){validation.push("length");attrs["data-validation-length"]="max"+$input.attr("maxlength")}if(!SUPPORTS_DATALIST&&$input.attr("list")){var
suggestions=[];$("#"+$input.attr("list")+" option").each(function(){var
$opt=$(this);suggestions.push($opt.attr("value")||$opt.text())});$.formUtils.suggest($input,suggestions)}if(validation.length){if(!isRequired){attrs["data-validation-optional"]="true"}foundHtml5Rule=true;$input.attr("data-validation",validation.join("
"));$.each(attrs,function(attrName,attrVal){$input.attr(attrName,attrVal)})}});if(foundHtml5Rule){$f.trigger("html5ValidationAttrsFound")}if(!SUPPORTS_PLACEHOLDER){$formInputs.filter("input[placeholder]").each(function(){this.defaultValue=this.getAttribute("placeholder");$(this).bind("focus",function(){if(this.value==this.defaultValue){this.value="";$(this).removeClass("showing-placeholder")}}).bind("blur",function(){if($.trim(this.value)==""){this.value=this.defaultValue;$(this).addClass("showing-placeholder")}})})}})})})(jQuery,window);
\ No newline at end of file
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/img/Thumbs.db
===================================================================
(Binary files differ)
Property changes on:
branches/dev-syncromind/phpgwapi/js/jquery/validator/img/Thumbs.db
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/img/icon-fail.png
===================================================================
(Binary files differ)
Property changes on:
branches/dev-syncromind/phpgwapi/js/jquery/validator/img/icon-fail.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/img/icon-ok.png
===================================================================
(Binary files differ)
Property changes on:
branches/dev-syncromind/phpgwapi/js/jquery/validator/img/icon-ok.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
branches/dev-syncromind/phpgwapi/js/jquery/validator/jquery.form-validator.min.js
===================================================================
---
branches/dev-syncromind/phpgwapi/js/jquery/validator/jquery.form-validator.min.js
(rev 0)
+++
branches/dev-syncromind/phpgwapi/js/jquery/validator/jquery.form-validator.min.js
2014-10-10 22:54:22 UTC (rev 12155)
@@ -0,0 +1,11 @@
+/**
+* jQuery Form Validator
+* ------------------------------------------
+* Created by Victor Jonsson <http://www.victorjonsson.se>
+*
+* @website http://formvalidator.net/
+* @license Dual licensed under the MIT or GPL Version 2 licenses
+* @version 2.2.beta.13
+*/
+(function($){"use strict";var
$window=$(window),_applyErrorStyle=function($elem,conf){var
$parent=$elem.parent();$elem.addClass(conf.errorElementClass).removeClass("valid");if($parent.hasClass("input-group"))$parent=$parent.parent();$parent.addClass("has-error").removeClass("has-success");if(conf.borderColorOnError!==""){$elem.css("border-color",conf.borderColorOnError)}},_removeErrorStyle=function($elem,conf){$elem.each(function(){_setInlineErrorMessage($(this),"",conf,conf.errorMessagePosition);var
$parent=$(this).parent();if($parent.hasClass("input-group"))$parent=$parent.parent();$(this).removeClass("valid").removeClass(conf.errorElementClass).css("border-color","");$parent.removeClass("has-error").removeClass("has-success").find("."+conf.errorMessageClass).remove()})},_setInlineErrorMessage=function($input,mess,conf,$messageContainer){var
custom=_getInlineErrorElement($input);var
$parent=$input.parent();if($parent.hasClass("input-group"))$parent=$parent.parent();if(custom){custom.innerHTML=mess}else
if(typeof $messageContainer=="object"){var
$found=false;$messageContainer.find("."+conf.errorMessageClass).each(function(){if(this.inputReferer==$input[0]){$found=$(this);return
false}});if($found){if(!mess){$found.remove()}else{$found.html(mess)}}else{var
$mess=$('<div
class="'+conf.errorMessageClass+'">'+mess+"</div>");$mess[0].inputReferer=$input[0];$messageContainer.prepend($mess)}}else{var
$mess=$parent.find("."+conf.errorMessageClass+".help-block");if($mess.length==0){$mess=$("<span></span>").addClass("help-block").addClass(conf.errorMessageClass);$mess.appendTo($parent)}$mess.html(mess)}},_getInlineErrorElement=function($input,conf){return
document.getElementById($input.attr("name")+"_err_msg")},_templateMessage=function($form,title,errorMessages,conf){var
messages=conf.errorMessageTemplate.messages.replace(/\{errorTitle\}/g,title);var
fields=[];$.each(errorMessages,function(i,msg){fields.push(conf.errorMessageTemplate.field.replace(/\{msg\}/g,msg))});messages=messages.replace(/\{fields\}/g,fields.join(""));var
container=conf.errorMessageTemplate.container.replace(/\{errorMessageClass\}/g,conf.errorMessageClass);container=container.replace(/\{messages\}/g,messages);$form.children().eq(0).before(container)};$.fn.validateOnBlur=function(language,settings){this.find("input[data-validation],textarea[data-validation],select[data-validation]").bind("blur.validation",function(){$(this).validateInputOnBlur(language,settings,true,"blur")});return
this};$.fn.validateOnEvent=function(language,settings){this.find("input[data-validation][data-validation-event],textarea[data-validation][data-validation-event],select[data-validation][data-validation-event]").each(function(){var
$el=$(this),etype=$el.attr("data-validation-event");if(etype){$el.bind(etype+".validation",function(){$(this).validateInputOnBlur(language,settings,true,etype)})}});return
this};$.fn.showHelpOnFocus=function(attrName){if(!attrName){attrName="data-validation-help"}this.find(".has-help-txt").valAttr("has-keyup-event",false).removeClass("has-help-txt");this.find("textarea,input").each(function(){var
$elem=$(this),className="jquery_form_help_"+($elem.attr("name")||"").replace(/(:|\.|\[|\])/g,""),help=$elem.attr(attrName);if(help){$elem.addClass("has-help-txt").unbind("focus.help").bind("focus.help",function(){var
$help=$elem.parent().find("."+className);if($help.length==0){$help=$("<span
/>").addClass(className).addClass("help").addClass("help-block").text(help).hide();$elem.after($help)}$help.fadeIn()}).unbind("blur.help").bind("blur.help",function(){$(this).parent().find("."+className).fadeOut("slow")})}});return
this};$.fn.validateInputOnBlur=function(language,conf,attachKeyupEvent,eventType){$.formUtils.eventType=eventType;if((this.valAttr("suggestion-nr")||this.valAttr("postpone")||this.hasClass("hasDatepicker"))&&!window.postponedValidation){var
_self=this,postponeTime=this.valAttr("postpone")||200;window.postponedValidation=function(){_self.validateInputOnBlur(language,conf,attachKeyupEvent,eventType);window.postponedValidation=false};setTimeout(function(){if(window.postponedValidation){window.postponedValidation()}},postponeTime);return
this}language=$.extend({},$.formUtils.LANG,language||{});_removeErrorStyle(this,conf);var
$elem=this,$form=$elem.closest("form"),validationRule=$elem.attr(conf.validationRuleAttribute),validation=$.formUtils.validateInput($elem,language,$.extend({},conf,{errorMessagePosition:"element"}),$form,eventType);if(validation===true){$elem.addClass("valid").parent().addClass("has-success")}else
if(validation!==null){_applyErrorStyle($elem,conf);_setInlineErrorMessage($elem,validation,conf,conf.errorMessagePosition);if(attachKeyupEvent){$elem.unbind("keyup.validation").bind("keyup.validation",function(){$(this).validateInputOnBlur(language,conf,false,"keyup")})}}return
this};$.fn.valAttr=function(name,val){if(val===undefined){return
this.attr("data-validation-"+name)}else if(val===false||val===null){return
this.removeAttr("data-validation-"+name)}else{if(name.length>0)name="-"+name;return
this.attr("data-validation"+name,val)}};$.fn.isValid=function(language,conf,displayError){if($.formUtils.isLoadingModules){var
$self=this;setTimeout(function(){$self.isValid(language,conf,displayError)},200);return
null}conf=$.extend({},$.formUtils.defaultConfig(),conf||{});language=$.extend({},$.formUtils.LANG,language||{});displayError=displayError!==false;$.formUtils.isValidatingEntireForm=true;$.formUtils.haltValidation=false;var
addErrorMessage=function(mess,$elem){if(mess!==null){if($.inArray(mess,errorMessages)<0){errorMessages.push(mess)}errorInputs.push($elem);$elem.attr("current-error",mess);if(displayError)_applyErrorStyle($elem,conf)}},errorMessages=[],errorInputs=[],$form=this,ignoreInput=function(name,type){if(type==="submit"||type==="button"||type=="reset"){return
true}return
$.inArray(name,conf.ignore||[])>-1};if(displayError){$form.find("."+conf.errorMessageClass+".alert").remove();_removeErrorStyle($form.find("."+conf.errorElementClass+",.valid"),conf)}$form.find("input,textarea,select").filter(':not([type="submit"],[type="button"])').each(function(){var
$elem=$(this);var
elementType=$elem.attr("type");if(!ignoreInput($elem.attr("name"),elementType)){var
validation=$.formUtils.validateInput($elem,language,conf,$form,"submit");if(typeof
conf.onElementValidate=="function"){conf.onElementValidate(validation===true,$elem,$form,validation)}if(validation!==true){addErrorMessage(validation,$elem)}else{$elem.valAttr("current-error",false).addClass("valid").parent().addClass("has-success")}}});if(typeof
conf.onValidate=="function"){var
errors=conf.onValidate($form);if($.isArray(errors)){$.each(errors,function(i,err){addErrorMessage(err.message,err.element)})}else
if(errors&&errors.element&&errors.message){addErrorMessage(errors.message,errors.element)}}$.formUtils.isValidatingEntireForm=false;if(!$.formUtils.haltValidation&&errorInputs.length>0){if(displayError){if(conf.errorMessagePosition==="top"){_templateMessage($form,language.errorTitle,errorMessages,conf)}else
if(conf.errorMessagePosition==="custom"){if(typeof
conf.errorMessageCustom==="function"){conf.errorMessageCustom($form,language.errorTitle,errorMessages,conf)}}else{$.each(errorInputs,function(i,$input){_setInlineErrorMessage($input,$input.attr("current-error"),conf,conf.errorMessagePosition)})}if(conf.scrollToTopOnError){$window.scrollTop($form.offset().top-20)}}return
false}return!$.formUtils.haltValidation};$.fn.validateForm=function(language,conf){if(window.console&&typeof
window.console.warn=="function"){window.console.warn("Use of deprecated
function $.validateForm, use $.isValid instead")}return
this.isValid(language,conf,true)};$.fn.restrictLength=function(maxLengthElement){new
$.formUtils.lengthRestriction(this,maxLengthElement);return
this};$.fn.addSuggestions=function(settings){var
sugs=false;this.find("input").each(function(){var
$field=$(this);sugs=$.split($field.attr("data-suggestions"));if(sugs.length>0&&!$field.hasClass("has-suggestions")){$.formUtils.suggest($field,sugs,settings);$field.addClass("has-suggestions")}});return
this};$.split=function(val,func,delim){if(typeof
func!="function"){if(!val)return[];var
values=[];$.each(val.split(func?func:","),function(i,str){str=$.trim(str);if(str.length)values.push(str)});return
values}else
if(val){if(!delim)delim=",";$.each(val.split(delim),function(i,str){str=$.trim(str);if(str.length)return
func(str,i)})}};$.validate=function(conf){var
defaultConf=$.extend($.formUtils.defaultConfig(),{form:"form",validateOnEvent:true,validateOnBlur:true,showHelpOnFocus:true,addSuggestions:true,modules:"",onModulesLoaded:null,language:false,onSuccess:false,onError:false,onElementValidate:false});conf=$.extend(defaultConf,conf||{});$(conf.form).each(function(i,form){var
$form=$(form);$window.trigger("formValidationSetup",[$form]);$form.find(".has-help-txt").unbind("focus.validation").unbind("blur.validation");$form.removeClass("has-validation-callback").unbind("submit.validation").unbind("reset.validation").find("input[data-validation],textarea[data-validation]").unbind("blur.validation");$form.bind("submit.validation",function(){var
$form=$(this);if($.formUtils.isLoadingModules){setTimeout(function(){$form.trigger("submit.validation")},200);return
false}var valid=$form.isValid(conf.language,conf);if(valid&&typeof
conf.onSuccess=="function"){var
callbackResponse=conf.onSuccess($form);if(callbackResponse===false)return
false}else if(!valid&&typeof
conf.onError=="function"){conf.onError($form);return false}else{return
valid}}).bind("reset.validation",function(){$(this).find("."+conf.errorMessageClass+".alert").remove();_removeErrorStyle($(this).find("."+conf.errorElementClass+",.valid"),conf)}).addClass("has-validation-callback");if(conf.showHelpOnFocus){$form.showHelpOnFocus()}if(conf.addSuggestions){$form.addSuggestions()}if(conf.validateOnBlur){$form.validateOnBlur(conf.language,conf);$form.bind("html5ValidationAttrsFound",function(){$form.validateOnBlur(conf.language,conf)})}if(conf.validateOnEvent){$form.validateOnEvent(conf.language,conf)}});if(conf.modules!=""){if(typeof
conf.onModulesLoaded=="function"){$window.one("validatorsLoaded",conf.onModulesLoaded)}$.formUtils.loadModules(conf.modules)}};$.formUtils={defaultConfig:function(){return{ignore:[],errorElementClass:"error",borderColorOnError:"red",errorMessageClass:"form-error",validationRuleAttribute:"data-validation",validationErrorMsgAttribute:"data-validation-error-msg",errorMessagePosition:"element",errorMessageTemplate:{container:'<div
class="{errorMessageClass} alert
alert-danger">{messages}</div>',messages:"<strong>{errorTitle}</strong><ul>{fields}</ul>",field:"<li>{msg}</li>"},errorMessageCustom:_templateMessage,scrollToTopOnError:true,dateFormat:"yyyy-mm-dd",addValidClassOnAll:false,decimalSeparator:"."}},validators:{},_events:{load:[],valid:[],invalid:[]},haltValidation:false,isValidatingEntireForm:false,addValidator:function(validator){var
name=validator.name.indexOf("validate_")===0?validator.name:"validate_"+validator.name;if(validator.validateOnKeyUp===undefined)validator.validateOnKeyUp=true;this.validators[name]=validator},isLoadingModules:false,loadedModules:{},loadModules:function(modules,path,fireEvent){if(fireEvent===undefined)fireEvent=true;if($.formUtils.isLoadingModules){setTimeout(function(){$.formUtils.loadModules(modules,path,fireEvent)});return}var
hasLoadedAnyModule=false,loadModuleScripts=function(modules,path){var
moduleList=$.split(modules),numModules=moduleList.length,moduleLoadedCallback=function(){numModules--;if(numModules==0){$.formUtils.isLoadingModules=false;if(fireEvent&&hasLoadedAnyModule){$window.trigger("validatorsLoaded")}}};if(numModules>0){$.formUtils.isLoadingModules=true}var
cacheSuffix="?__="+(new
Date).getTime(),appendToElement=document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0];$.each(moduleList,function(i,modName){modName=$.trim(modName);if(modName.length==0){moduleLoadedCallback()}else{var
scriptUrl=path+modName+(modName.substr(-3)==".js"?"":".js"),script=document.createElement("SCRIPT");if(scriptUrl
in
$.formUtils.loadedModules){moduleLoadedCallback()}else{$.formUtils.loadedModules[scriptUrl]=1;hasLoadedAnyModule=true;script.type="text/javascript";script.onload=moduleLoadedCallback;script.src=scriptUrl+(scriptUrl.substr(-7)==".dev.js"?cacheSuffix:"");script.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState=="loaded"){moduleLoadedCallback();this.onload=null;this.onreadystatechange=null}};appendToElement.appendChild(script)}}})};if(path){loadModuleScripts(modules,path)}else{var
findScriptPathAndLoadModules=function(){var
foundPath=false;$("script").each(function(){if(this.src){var
scriptName=this.src.substr(this.src.lastIndexOf("/")+1,this.src.length);if(scriptName.indexOf("jquery.form-validator.js")>-1||scriptName.indexOf("jquery.form-validator.min.js")>-1){foundPath=this.src.substr(0,this.src.lastIndexOf("/"))+"/";if(foundPath=="/")foundPath="";return
false}}});if(foundPath!==false){loadModuleScripts(modules,foundPath);return
true}return
false};if(!findScriptPathAndLoadModules()){$(findScriptPathAndLoadModules)}}},validateInput:function($elem,language,conf,$form,eventContext){if($elem.attr("disabled"))return
null;$elem.trigger("beforeValidation");var
value=$elem.val()||"",optional=$elem.valAttr("optional"),validationDependsOnCheckedInput=false,validationDependentInputIsChecked=false,validateIfCheckedElement=false,validateIfCheckedElementName=$elem.valAttr("if-checked");if(validateIfCheckedElementName!=null){validationDependsOnCheckedInput=true;validateIfCheckedElement=$form.find('input[name="'+validateIfCheckedElementName+'"]');if(validateIfCheckedElement.prop("checked")){validationDependentInputIsChecked=true}}if(!value&&optional==="true"||validationDependsOnCheckedInput&&!validationDependentInputIsChecked){return
conf.addValidClassOnAll?true:null}var
validationRules=$elem.attr(conf.validationRuleAttribute),validationErrorMsg=true;if(!validationRules){return
conf.addValidClassOnAll?true:null}$.split(validationRules,function(rule){if(rule.indexOf("validate_")!==0){rule="validate_"+rule}var
validator=$.formUtils.validators[rule];if(validator&&typeof
validator["validatorFunction"]=="function"){if(rule=="validate_checkbox_group"){$elem=$("[name='"+$elem.attr("name")+"']:eq(0)")}var
isValid=null;if(eventContext!="keyup"||validator.validateOnKeyUp){isValid=validator.validatorFunction(value,$elem,conf,language,$form)}if(!isValid){validationErrorMsg=null;if(isValid!==null){validationErrorMsg=$elem.attr(conf.validationErrorMsgAttribute+"-"+rule.replace("validate_",""));if(!validationErrorMsg){validationErrorMsg=$elem.attr(conf.validationErrorMsgAttribute);if(!validationErrorMsg){validationErrorMsg=language[validator.errorMessageKey];if(!validationErrorMsg)validationErrorMsg=validator.errorMessage}}}return
false}}else{throw new Error('Using undefined validator "'+rule+'"')}},"
");if(typeof
validationErrorMsg=="string"){$elem.trigger("validation",false);return
validationErrorMsg}else
if(validationErrorMsg===null&&!conf.addValidClassOnAll){return
null}else{$elem.trigger("validation",true);return
true}},parseDate:function(val,dateFormat){var
divider=dateFormat.replace(/[a-zA-Z]/gi,"").substring(0,1),regexp="^",formatParts=dateFormat.split(divider),matches,day,month,year;$.each(formatParts,function(i,part){regexp+=(i>0?"\\"+divider:"")+"(\\d{"+part.length+"})"});regexp+="$";matches=val.match(new
RegExp(regexp));if(matches===null){return false}var
findDateUnit=function(unit,formatParts,matches){for(var
i=0;i<formatParts.length;i++){if(formatParts[i].substring(0,1)===unit){return
$.formUtils.parseDateInt(matches[i+1])}}return-1};month=findDateUnit("m",formatParts,matches);day=findDateUnit("d",formatParts,matches);year=findDateUnit("y",formatParts,matches);if(month===2&&day>28&&(year%4!==0||year%100===0&&year%400!==0)||month===2&&day>29&&(year%4===0||year%100!==0&&year%400===0)||month>12||month===0){return
false}if(this.isShortMonth(month)&&day>30||!this.isShortMonth(month)&&day>31||day===0){return
false}return[year,month,day]},parseDateInt:function(val){if(val.indexOf("0")===0){val=val.replace("0","")}return
parseInt(val,10)},isShortMonth:function(m){return
m%2===0&&m<7||m%2!==0&&m>7},lengthRestriction:function($inputElement,$maxLengthElement){var
maxChars=parseInt($maxLengthElement.text(),10),charsLeft=0,countCharacters=function(){var
numChars=$inputElement.val().length;if(numChars>maxChars){var
currScrollTopPos=$inputElement.scrollTop();$inputElement.val($inputElement.val().substring(0,maxChars));$inputElement.scrollTop(currScrollTopPos)}charsLeft=maxChars-numChars;if(charsLeft<0)charsLeft=0;$maxLengthElement.text(charsLeft)};$($inputElement).bind("keydown
keyup keypress focus blur",countCharacters).bind("cut
paste",function(){setTimeout(countCharacters,100)});$(document).bind("ready",countCharacters)},numericRangeCheck:function(value,rangeAllowed){var
range=$.split(rangeAllowed,"-");var
minmax=parseInt(rangeAllowed.substr(3),10);if(range.length==2&&(value<parseInt(range[0],10)||value>parseInt(range[1],10))){return["out",range[0],range[1]]}else
if(rangeAllowed.indexOf("min")===0&&value<minmax){return["min",minmax]}else
if(rangeAllowed.indexOf("max")===0&&value>minmax){return["max",minmax]}return["ok"]},_numSuggestionElements:0,_selectedSuggestion:null,_previousTypedVal:null,suggest:function($elem,suggestions,settings){var
conf={css:{maxHeight:"150px",background:"#FFF",lineHeight:"150%",textDecoration:"underline",overflowX:"hidden",overflowY:"auto",border:"#CCC
solid
1px",borderTop:"none",cursor:"pointer"},activeSuggestionCSS:{background:"#E9E9E9"}},setSuggsetionPosition=function($suggestionContainer,$input){var
offset=$input.offset();$suggestionContainer.css({width:$input.outerWidth(),left:offset.left+"px",top:offset.top+$input.outerHeight()+"px"})};if(settings)$.extend(conf,settings);conf.css["position"]="absolute";conf.css["z-index"]=9999;$elem.attr("autocomplete","off");if(this._numSuggestionElements===0){$window.bind("resize",function(){$(".jquery-form-suggestions").each(function(){var
$container=$(this),suggestID=$container.attr("data-suggest-container");setSuggsetionPosition($container,$(".suggestions-"+suggestID).eq(0))})})}this._numSuggestionElements++;var
onSelectSuggestion=function($el){var
suggestionId=$el.valAttr("suggestion-nr");$.formUtils._selectedSuggestion=null;$.formUtils._previousTypedVal=null;$(".jquery-form-suggestion-"+suggestionId).fadeOut("fast")};$elem.data("suggestions",suggestions).valAttr("suggestion-nr",this._numSuggestionElements).unbind("focus.suggest").bind("focus.suggest",function(){$(this).trigger("keyup");$.formUtils._selectedSuggestion=null}).unbind("keyup.suggest").bind("keyup.suggest",function(){var
$input=$(this),foundSuggestions=[],val=$.trim($input.val()).toLocaleLowerCase();if(val==$.formUtils._previousTypedVal){return}else{$.formUtils._previousTypedVal=val}var
hasTypedSuggestion=false,suggestionId=$input.valAttr("suggestion-nr"),$suggestionContainer=$(".jquery-form-suggestion-"+suggestionId);$suggestionContainer.scrollTop(0);if(val!=""){var
findPartial=val.length>2;$.each($input.data("suggestions"),function(i,suggestion){var
lowerCaseVal=suggestion.toLocaleLowerCase();if(lowerCaseVal==val){foundSuggestions.push("<strong>"+suggestion+"</strong>");hasTypedSuggestion=true;return
false}else
if(lowerCaseVal.indexOf(val)===0||findPartial&&lowerCaseVal.indexOf(val)>-1){foundSuggestions.push(suggestion.replace(new
RegExp(val,"gi"),"<strong>$&</strong>"))}})}if(hasTypedSuggestion||foundSuggestions.length==0&&$suggestionContainer.length>0){$suggestionContainer.hide()}else
if(foundSuggestions.length>0&&$suggestionContainer.length==0){$suggestionContainer=$("<div></div>").css(conf.css).appendTo("body");$elem.addClass("suggestions-"+suggestionId);$suggestionContainer.attr("data-suggest-container",suggestionId).addClass("jquery-form-suggestions").addClass("jquery-form-suggestion-"+suggestionId)}else
if(foundSuggestions.length>0&&!$suggestionContainer.is(":visible")){$suggestionContainer.show()}if(foundSuggestions.length>0&&val.length!=foundSuggestions[0].length){setSuggsetionPosition($suggestionContainer,$input);$suggestionContainer.html("");$.each(foundSuggestions,function(i,text){$("<div></div>").append(text).css({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",padding:"5px"}).addClass("form-suggest-element").appendTo($suggestionContainer).click(function(){$input.focus();$input.val($(this).text());onSelectSuggestion($input)})})}}).unbind("keydown.validation").bind("keydown.validation",function(e){var
code=e.keyCode?e.keyCode:e.which,suggestionId,$suggestionContainer,$input=$(this);if(code==13&&$.formUtils._selectedSuggestion!==null){suggestionId=$input.valAttr("suggestion-nr");$suggestionContainer=$(".jquery-form-suggestion-"+suggestionId);if($suggestionContainer.length>0){var
newText=$suggestionContainer.find("div").eq($.formUtils._selectedSuggestion).text();$input.val(newText);onSelectSuggestion($input);e.preventDefault()}}else{suggestionId=$input.valAttr("suggestion-nr");$suggestionContainer=$(".jquery-form-suggestion-"+suggestionId);var
$suggestions=$suggestionContainer.children();if($suggestions.length>0&&$.inArray(code,[38,40])>-1){if(code==38){if($.formUtils._selectedSuggestion===null)$.formUtils._selectedSuggestion=$suggestions.length-1;else
$.formUtils._selectedSuggestion--;if($.formUtils._selectedSuggestion<0)$.formUtils._selectedSuggestion=$suggestions.length-1}else
if(code==40){if($.formUtils._selectedSuggestion===null)$.formUtils._selectedSuggestion=0;else
$.formUtils._selectedSuggestion++;if($.formUtils._selectedSuggestion>$suggestions.length-1)$.formUtils._selectedSuggestion=0}var
containerInnerHeight=$suggestionContainer.innerHeight(),containerScrollTop=$suggestionContainer.scrollTop(),suggestionHeight=$suggestionContainer.children().eq(0).outerHeight(),activeSuggestionPosY=suggestionHeight*$.formUtils._selectedSuggestion;if(activeSuggestionPosY<containerScrollTop||activeSuggestionPosY>containerScrollTop+containerInnerHeight){$suggestionContainer.scrollTop(activeSuggestionPosY)}$suggestions.removeClass("active-suggestion").css("background","none").eq($.formUtils._selectedSuggestion).addClass("active-suggestion").css(conf.activeSuggestionCSS);e.preventDefault();return
false}}}).unbind("blur.suggest").bind("blur.suggest",function(){onSelectSuggestion($(this))});return
$elem},LANG:{errorTitle:"Form submission failed!",requiredFields:"You have not
answered all required fields",badTime:"You have not given a correct
time",badEmail:"You have not given a correct e-mail address",badTelephone:"You
have not given a correct phone number",badSecurityAnswer:"You have not given a
correct answer to the security question",badDate:"You have not given a correct
date",lengthBadStart:"The input value must be between ",lengthBadEnd:"
characters",lengthTooLongStart:"The input value is longer than
",lengthTooShortStart:"The input value is shorter than ",notConfirmed:"Input
values could not be confirmed",badDomain:"Incorrect domain value",badUrl:"The
input value is not a correct URL",badCustomVal:"The input value is
incorrect",badInt:"The input value was not a correct
number",badSecurityNumber:"Your social security number was
incorrect",badUKVatAnswer:"Incorrect UK VAT Number",badStrength:"The password
isn't strong enough",badNumberOfSelectedOptionsStart:"You have to choose at
least ",badNumberOfSelectedOptionsEnd:" answers",badAlphaNumeric:"The input
value can only contain alphanumeric characters ",badAlphaNumericExtra:" and
",wrongFileSize:"The file you are trying to upload is too
large",wrongFileType:"The file you are trying to upload is of wrong
type",groupCheckedRangeStart:"Please choose between
",groupCheckedTooFewStart:"Please choose at least
",groupCheckedTooManyStart:"Please choose a maximum of ",groupCheckedEnd:"
item(s)",badCreditCard:"The credit card number is not correct",badCVV:"The CVV
number was not
correct"}};$.formUtils.addValidator({name:"email",validatorFunction:function(email){var
emailParts=email.toLowerCase().split("@");if(emailParts.length==2){return
$.formUtils.validators.validate_domain.validatorFunction(emailParts[1])&&!/[^\w\+\.\-]/.test(emailParts[0])}return
false},errorMessage:"",errorMessageKey:"badEmail"});$.formUtils.addValidator({name:"domain",validatorFunction:function(val,$input){var
topDomains=[".ac",".ad",".ae",".aero",".af",".ag",".ai",".al",".am",".an",".ao",".aq",".ar",".arpa",".as",".asia",".at",".au",".aw",".ax",".az",".ba",".bb",".bd",".be",".bf",".bg",".bh",".bi",".bike",".biz",".bj",".bm",".bn",".bo",".br",".bs",".bt",".bv",".bw",".by",".bz",".ca",".camera",".cat",".cc",".cd",".cf",".cg",".ch",".ci",".ck",".cl",".clothing",".cm",".cn",".co",".com",".construction",".contractors",".coop",".cr",".cu",".cv",".cw",".cx",".cy",".cz",".de",".diamonds",".directory",".dj",".dk",".dm",".do",".dz",".ec",".edu",".ee",".eg",".enterprises",".equipment",".er",".es",".estate",".et",".eu",".fi",".fj",".fk",".fm",".fo",".fr",".ga",".gallery",".gb",".gd",".ge",".gf",".gg",".gh",".gi",".gl",".gm",".gn",".gov",".gp",".gq",".gr",".graphics",".gs",".gt",".gu",".guru",".gw",".gy",".hk",".hm",".hn",".holdings",".hr",".ht",".hu",".id",".ie",".il",".im",".in",".info",".int",".io",".iq",".ir",".is",".it",".je",".jm",".jo",".jobs",".jp",".ke",".kg",".kh",".ki",".kitchen",".km",".kn",".kp",".kr",".kw",".ky",".kz",".la",".land",".lb",".lc",".li",".lighting",".lk",".lr",".ls",".lt",".lu",".lv",".ly",".ma",".mc",".md",".me",".menu",".mg",".mh",".mil",".mk",".ml",".mm",".mn",".mo",".mobi",".mp",".mq",".mr",".ms",".mt",".mu",".museum",".mv",".mw",".mx",".my",".mz",".na",".name",".nc",".ne",".net",".nf",".ng",".ni",".nl",".no",".np",".nr",".nu",".nz",".om",".org",".pa",".pe",".pf",".pg",".ph",".photography",".pk",".pl",".plumbing",".pm",".pn",".post",".pr",".pro",".ps",".pt",".pw",".py",".qa",".re",".ro",".rs",".ru",".rw",".sa",".sb",".sc",".sd",".se",".sexy",".sg",".sh",".si",".singles",".sj",".sk",".sl",".sm",".sn",".so",".sr",".st",".su",".sv",".sx",".sy",".sz",".tattoo",".tc",".td",".technology",".tel",".tf",".tg",".th",".tips",".tj",".tk",".tl",".tm",".tn",".to",".today",".tp",".tr",".travel",".tt",".tv",".tw",".tz",".ua",".ug",".uk",".uno",".us",".uy",".uz",".va",".vc",".ve",".ventures",".vg",".vi",".vn",".voyage",".vu",".wf",".ws",".xn--3e0b707e",".xn--45brj9c",".xn--80ao21a",".xn--80asehdb",".xn--80aswg",".xn--90a3ac",".xn--clchc0ea0b2g2a9gcd",".xn--fiqs8s",".xn--fiqz9s",".xn--fpcrj9c3d",".xn--fzc2c9e2c",".xn--gecrj9c",".xn--h2brj9c",".xn--j1amh",".xn--j6w193g",".xn--kprw13d",".xn--kpry57d",".xn--l1acc",".xn--lgbbat1ad8j",".xn--mgb9awbf",".xn--mgba3a4f16a",".xn--mgbaam7a8h",".xn--mgbayh7gpa",".xn--mgbbh1a71e",".xn--mgbc0a9azcg",".xn--mgberp4a5d4ar",".xn--mgbx4cd0ab",".xn--ngbc5azd",".xn--o3cw4h",".xn--ogbpf8fl",".xn--p1ai",".xn--pgbs0dh",".xn--q9jyb4c",".xn--s9brj9c",".xn--unup4y",".xn--wgbh1c",".xn--wgbl6a",".xn--xkc2al3hye2a",".xn--xkc2dl3a5ee0h",".xn--yfro4i67o",".xn--ygbi2ammx",".xxx",".ye",".yt",".za",".zm",".zw"],ukTopDomains=["co","me","ac","gov","judiciary","ltd","mod","net","nhs","nic","org","parliament","plc","police","sch","bl","british-library","jet","nls"],dot=val.lastIndexOf("."),domain=val.substring(0,dot),ext=val.substring(dot,val.length),hasTopDomain=false;for(var
i=0;i<topDomains.length;i++){if(topDomains[i]===ext){if(ext===".uk"){var
domainParts=val.split(".");var tld2=domainParts[domainParts.length-2];for(var
j=0;j<ukTopDomains.length;j++){if(ukTopDomains[j]===tld2){hasTopDomain=true;break}}if(hasTopDomain)break}else{hasTopDomain=true;break}}}if(!hasTopDomain){return
false}else if(dot<2||dot>57){return
$.inArray(val,["i.net","q.com","q.net","x.com","x.org","z.com","w.org"])>-1}else{var
firstChar=domain.substring(0,1),lastChar=domain.substring(domain.length-1,domain.length);if(firstChar==="-"||firstChar==="."||lastChar==="-"||lastChar==="."){return
false}if(domain.split("..").length>1){return
false}if(domain.replace(/[-\da-z\.]/g,"")!==""){return false}}if(typeof
$input!=="undefined"){$input.val(val)}return
true},errorMessage:"",errorMessageKey:"badDomain"});$.formUtils.addValidator({name:"required",validatorFunction:function(val,$el,config,language,$form){switch($el.attr("type")){case"checkbox":return
$el.is(":checked");case"radio":return
$form.find('input[name="'+$el.attr("name")+'"]').filter(":checked").length>0;default:return
$.trim(val)!==""}},errorMessage:"",errorMessageKey:"requiredFields"});$.formUtils.addValidator({name:"length",validatorFunction:function(val,$el,conf,lang){var
lengthAllowed=$el.valAttr("length"),type=$el.attr("type");if(lengthAllowed==undefined){var
elementType=$el.get(0).nodeName;alert('Please add attribute
"data-validation-length" to '+elementType+" named "+$el.attr("name"));return
true}var
len=type=="file"&&$el.get(0).files!==undefined?$el.get(0).files.length:val.length,lengthCheckResults=$.formUtils.numericRangeCheck(len,lengthAllowed),checkResult;switch(lengthCheckResults[0]){case"out":this.errorMessage=lang.lengthBadStart+lengthAllowed+lang.lengthBadEnd;checkResult=false;break;case"min":this.errorMessage=lang.lengthTooShortStart+lengthCheckResults[1]+lang.lengthBadEnd;checkResult=false;break;case"max":this.errorMessage=lang.lengthTooLongStart+lengthCheckResults[1]+lang.lengthBadEnd;checkResult=false;break;default:checkResult=true}return
checkResult},errorMessage:"",errorMessageKey:""});$.formUtils.addValidator({name:"url",validatorFunction:function(url){var
urlFilter=/^(https?|ftp):\/\/((((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])(\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])(\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/(((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|\[|\]|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#(((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i;if(urlFilter.test(url)){var
domain=url.split("://")[1];var
domainSlashPos=domain.indexOf("/");if(domainSlashPos>-1)domain=domain.substr(0,domainSlashPos);return
$.formUtils.validators.validate_domain.validatorFunction(domain)}return
false},errorMessage:"",errorMessageKey:"badUrl"});$.formUtils.addValidator({name:"number",validatorFunction:function(val,$el,conf){if(val!==""){var
allowing=$el.valAttr("allowing")||"",decimalSeparator=$el.valAttr("decimal-separator")||conf.decimalSeparator,allowsRange=false,begin,end,steps=$el.valAttr("step")||"",allowsSteps=false;if(allowing.indexOf("number")==-1)allowing+=",number";if(allowing.indexOf("negative")>-1&&val.indexOf("-")===0){val=val.substr(1)}if(allowing.indexOf("range")>-1){begin=parseFloat(allowing.substring(allowing.indexOf("[")+1,allowing.indexOf(";")));end=parseFloat(allowing.substring(allowing.indexOf(";")+1,allowing.indexOf("]")));allowsRange=true}if(steps!=""){allowsSteps=true}if(decimalSeparator==","){if(val.indexOf(".")>-1){return
false}val=val.replace(",",".")}if(allowing.indexOf("number")>-1&&val.replace(/[0-9]/g,"")===""&&(!allowsRange||val>=begin&&val<=end)&&(!allowsSteps||val%steps==0)){return
true}if(allowing.indexOf("float")>-1&&val.match(new
RegExp("^([0-9]+)\\.([0-9]+)$"))!==null&&(!allowsRange||val>=begin&&val<=end)&&(!allowsSteps||val%steps==0)){return
true
+}}return
false},errorMessage:"",errorMessageKey:"badInt"});$.formUtils.addValidator({name:"alphanumeric",validatorFunction:function(val,$el,conf,language){var
patternStart="^([a-zA-Z0-9",patternEnd="]+)$",additionalChars=$el.attr("data-validation-allowing"),pattern="";if(additionalChars){pattern=patternStart+additionalChars+patternEnd;var
extra=additionalChars.replace(/\\/g,"");if(extra.indexOf("
")>-1){extra=extra.replace(" ","");extra+=" and spaces
"}this.errorMessage=language.badAlphaNumeric+language.badAlphaNumericExtra+extra}else{pattern=patternStart+patternEnd;this.errorMessage=language.badAlphaNumeric}return
new
RegExp(pattern).test(val)},errorMessage:"",errorMessageKey:""});$.formUtils.addValidator({name:"custom",validatorFunction:function(val,$el,conf){var
regexp=new RegExp($el.valAttr("regexp"));return
regexp.test(val)},errorMessage:"",errorMessageKey:"badCustomVal"});$.formUtils.addValidator({name:"date",validatorFunction:function(date,$el,conf){var
dateFormat="yyyy-mm-dd";if($el.valAttr("format")){dateFormat=$el.valAttr("format")}else
if(conf.dateFormat){dateFormat=conf.dateFormat}return
$.formUtils.parseDate(date,dateFormat)!==false},errorMessage:"",errorMessageKey:"badDate"});$.formUtils.addValidator({name:"checkbox_group",validatorFunction:function(val,$el,conf,lang,$form){var
checkResult=true;var elname=$el.attr("name");var
checkedCount=$("input[type=checkbox][name^='"+elname+"']:checked",$form).length;var
qtyAllowed=$el.valAttr("qty");if(qtyAllowed==undefined){var
elementType=$el.get(0).nodeName;alert('Attribute "data-validation-qty" is
missing from '+elementType+" named "+$el.attr("name"))}var
qtyCheckResults=$.formUtils.numericRangeCheck(checkedCount,qtyAllowed);switch(qtyCheckResults[0]){case"out":this.errorMessage=lang.groupCheckedRangeStart+qtyAllowed+lang.groupCheckedEnd;checkResult=false;break;case"min":this.errorMessage=lang.groupCheckedTooFewStart+qtyCheckResults[1]+lang.groupCheckedEnd;checkResult=false;break;case"max":this.errorMessage=lang.groupCheckedTooManyStart+qtyCheckResults[1]+lang.groupCheckedEnd;checkResult=false;break;default:checkResult=true}return
checkResult}})})(jQuery);
\ No newline at end of file
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/location.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/validator/location.js
(rev 0)
+++ branches/dev-syncromind/phpgwapi/js/jquery/validator/location.js
2014-10-10 22:54:22 UTC (rev 12155)
@@ -0,0 +1 @@
+(function($){$.formUtils.addValidator({name:"country",validatorFunction:function(str){return
$.inArray(str.toLowerCase(),this.countries)>-1},countries:["afghanistan","albania","algeria","american
samoa","andorra","angola","anguilla","antarctica","antigua and
barbuda","arctic ocean","argentina","armenia","aruba","ashmore and cartier
islands","atlantic
ocean","australia","austria","azerbaijan","bahamas","bahrain","baltic
sea","baker island","bangladesh","barbados","bassas da
india","belarus","belgium","belize","benin","bermuda","bhutan","bolivia","borneo","bosnia
and herzegovina","botswana","bouvet island","brazil","british virgin
islands","brunei","bulgaria","burkina
faso","burundi","cambodia","cameroon","canada","cape verde","cayman
islands","central african republic","chad","chile","china","christmas
island","clipperton island","cocos islands","colombia","comoros","cook
islands","coral sea islands","costa rica","croatia","cuba","cyprus","czech
republic","democratic republic of the
congo","denmark","djibouti","dominica","dominican republic","east
timor","ecuador","egypt","el salvador","equatorial
guinea","eritrea","estonia","ethiopia","europa island","falkland
islands","faroe islands","fiji","finland","france","french guiana","french
polynesia","french southern and antarctic lands","gabon","gambia","gaza
strip","georgia","germany","ghana","gibraltar","glorioso
islands","greece","greenland","grenada","guadeloupe","guam","guatemala","guernsey","guinea","guinea-bissau","guyana","haiti","heard
island and mcdonald islands","honduras","hong kong","howland
island","hungary","iceland","india","indian
ocean","indonesia","iran","iraq","ireland","isle of
man","israel","italy","jamaica","jan mayen","japan","jarvis
island","jersey","johnston atoll","jordan","juan de nova
island","kazakhstan","kenya","kerguelen archipelago","kingman
reef","kiribati","kosovo","kuwait","kyrgyzstan","laos","latvia","lebanon","lesotho","liberia","libya","liechtenstein","lithuania","luxembourg","macau","macedonia","madagascar","malawi","malaysia","maldives","mali","malta","marshall
islands","martinique","mauritania","mauritius","mayotte","mediterranean
sea","mexico","micronesia","midway
islands","moldova","monaco","mongolia","montenegro","montserrat","morocco","mozambique","myanmar","namibia","nauru","navassa
island","nepal","netherlands","netherlands antilles","new caledonia","new
zealand","nicaragua","niger","nigeria","niue","norfolk island","north
korea","north sea","northern mariana islands","norway","oman","pacific
ocean","pakistan","palau","palmyra atoll","panama","papua new guinea","paracel
islands","paraguay","peru","philippines","pitcairn
islands","poland","portugal","puerto rico","qatar","republic of the
congo","reunion","romania","ross sea","russia","rwanda","saint helena","saint
kitts and nevis","saint lucia","saint pierre and miquelon","saint vincent and
the grenadines","samoa","san marino","sao tome and principe","saudi
arabia","senegal","serbia","seychelles","sierra
leone","singapore","slovakia","slovenia","solomon islands","somalia","south
africa","south georgia and the south sandwich islands","south korea","southern
ocean","spain","spratly islands","sri
lanka","sudan","suriname","svalbard","swaziland","sweden","switzerland","syria","taiwan","tajikistan","tanzania","tasman
sea","thailand","togo","tokelau","tonga","trinidad and tobago","tromelin
island","tunisia","turkey","turkmenistan","turks and caicos
islands","tuvalu","uganda","ukraine","united arab emirates","united
kingdom","uruguay","usa","uzbekistan","vanuatu","venezuela","viet nam","virgin
islands","wake island","wallis and futuna","west bank","western
sahara","yemen","zambia","zimbabwe"],errorMessage:"",errorMessageKey:"badCustomVal"});$.formUtils.addValidator({name:"federatestate",validatorFunction:function(str){return
$.inArray(str.toLowerCase(),this.states)>-1},states:["alabama","alaska","arizona","arkansas","california","colorado","connecticut","delaware","florida","georgia","hawaii","idaho","illinois","indiana","iowa","kansas","kentucky","louisiana","maine","maryland","district
of
columbia","massachusetts","michigan","minnesota","mississippi","missouri","montana","nebraska","nevada","new
hampshire","new jersey","new mexico","new york","north carolina","north
dakota","ohio","oklahoma","oregon","pennsylvania","rhode island","south
carolina","south
dakota","tennessee","texas","utah","vermont","virginia","washington","west
virginia","wisconsin","wyoming"],errorMessage:"",errorMessageKey:"badCustomVal"});$.formUtils.addValidator({name:"longlat",validatorFunction:function(str){var
regexp=/^[+-]?\d+\.\d+, ?[+-]?\d+\.\d+$/;return
regexp.test(str)},errorMessage:"",errorMessageKey:"badCustomVal"});var
_makeSortedList=function(listItems){var
newList=[];$.each(listItems,function(i,v){newList.push(v.substr(0,1).toUpperCase()+v.substr(1,v.length))});newList.sort();return
newList};$.fn.suggestCountry=function(settings){var
country=_makeSortedList($.formUtils.validators.validate_country.countries);return
$.formUtils.suggest(this,country,settings)};$.fn.suggestState=function(settings){var
states=_makeSortedList($.formUtils.validators.validate_federatestate.states);return
$.formUtils.suggest(this,states,settings)}})(jQuery);
\ No newline at end of file
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/security.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/validator/security.js
(rev 0)
+++ branches/dev-syncromind/phpgwapi/js/jquery/validator/security.js
2014-10-10 22:54:22 UTC (rev 12155)
@@ -0,0 +1 @@
+(function($,window){"use
strict";$.formUtils.addValidator({name:"spamcheck",validatorFunction:function(val,$el,config){var
attr=$el.valAttr("captcha");return
attr===val},errorMessage:"",errorMessageKey:"badSecurityAnswer"});$.formUtils.addValidator({name:"confirmation",validatorFunction:function(value,$el,config,language,$form){var
conf="",confInputName=$el.valAttr("confirm")||$el.attr("name")+"_confirmation",confInput=$form.find('input[name="'+confInputName+'"]').eq(0);if(confInput){conf=confInput.val()}else{console.warn('Could
not find an input with name "'+confInputName+'"')}return
value===conf},errorMessage:"",errorMessageKey:"notConfirmed"});$.formUtils.addValidator({name:"creditcard",validatorFunction:function(value,$el,config,language,$form){var
cards={amex:[15,15],diners_club:[14,14],cjb:[16,16],laser:[16,19],visa:[16,16],mastercard:[16,16],maestro:[12,19],discover:[16,16]},allowing=$.split($el.valAttr("allowing")||"");if(allowing.length>0){var
hasValidLength=false;$.each(allowing,function(i,cardName){if(cardName in
cards){if(value.length>=cards[cardName][0]&&value.length<=cards[cardName][1]){hasValidLength=true;return
false}}else{console.warn('Use of unknown credit card
"'+cardName+'"')}});if(!hasValidLength)return false}if(value.replace(new
RegExp("[0-9]","g"),"")!==""){return false}var
checkSum=0;$.each(value.split("").reverse(),function(i,digit){digit=parseInt(digit,10);if(i%2===0){checkSum+=digit}else{digit*=2;if(digit<10){checkSum+=digit}else{checkSum+=digit-9}}});return
checkSum%10===0},errorMessage:"",errorMessageKey:"badCreditCard"});$.formUtils.addValidator({name:"cvv",validatorFunction:function(val){return
val.replace(/[0-9]/g,"")===""&&(val+"").length==3},errorMessage:"",errorMessageKey:"badCVV"});$.formUtils.addValidator({name:"strength",validatorFunction:function(val,$el,conf){var
requiredStrength=$el.valAttr("strength");if(requiredStrength&&requiredStrength>3)requiredStrength=3;return
$.formUtils.validators.validate_strength.calculatePasswordStrength(val)>=requiredStrength},errorMessage:"",errorMessageKey:"badStrength",calculatePasswordStrength:function(password){if(password.length<4){return
0}var score=0;var checkRepetition=function(pLen,str){var res="";for(var
i=0;i<str.length;i++){var repeated=true;for(var
j=0;j<pLen&&j+i+pLen<str.length;j++){repeated=repeated&&str.charAt(j+i)==str.charAt(j+i+pLen)}if(j<pLen){repeated=false}if(repeated){i+=pLen-1;repeated=false}else{res+=str.charAt(i)}}return
res};score+=password.length*4;score+=(checkRepetition(1,password).length-password.length)*1;score+=(checkRepetition(2,password).length-password.length)*1;score+=(checkRepetition(3,password).length-password.length)*1;score+=(checkRepetition(4,password).length-password.length)*1;if(password.match(/(.*[0-9].*[0-9].*[0-9])/)){score+=5}if(password.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)){score+=5}if(password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)){score+=10}if(password.match(/([a-zA-Z])/)&&password.match(/([0-9])/)){score+=15}if(password.match(/([!,@,#,$,%,^,&,*,?,_,~])/)&&password.match(/([0-9])/)){score+=15}if(password.match(/([!,@,#,$,%,^,&,*,?,_,~])/)&&password.match(/([a-zA-Z])/)){score+=15}if(password.match(/^\w+$/)||password.match(/^\d+$/)){score-=10}if(score<0){score=0}if(score>100){score=100}if(score<20){return
0}else if(score<40){return 1}else if(score<=60){return 2}else{return
3}},strengthDisplay:function($el,options){var
config={fontSize:"12pt",padding:"4px",bad:"Very
bad",weak:"Weak",good:"Good",strong:"Strong"};if(options){$.extend(config,options)}$el.bind("keyup",function(){var
val=$(this).val();var $parent=typeof
config.parent=="undefined"?$(this).parent():$(config.parent);var
$displayContainer=$parent.find(".strength-meter");if($displayContainer.length==0){$displayContainer=$("<span></span>");$displayContainer.addClass("strength-meter").appendTo($parent)}if(!val){$displayContainer.hide()}else{$displayContainer.show()}var
strength=$.formUtils.validators.validate_strength.calculatePasswordStrength(val);var
css={background:"pink",color:"#FF0000",fontWeight:"bold",border:"red solid
1px",borderWidth:"0px 0px
4px",display:"inline-block",fontSize:config.fontSize,padding:config.padding};var
text=config.bad;if(strength==1){text=config.weak}else
if(strength==2){css.background="lightyellow";css.borderColor="yellow";css.color="goldenrod";text=config.good}else
if(strength>=3){css.background="lightgreen";css.borderColor="darkgreen";css.color="darkgreen";text=config.strong}$displayContainer.css(css).text(text)})}});var
requestServer=function(serverURL,$element,val,conf,callback){$.ajax({url:serverURL,type:"POST",cache:false,data:$element.attr("name")+"="+val,dataType:"json",error:function(error){alert("Server
validation failed due to:
"+error.statusText);if(window.JSON&&window.JSON.stringify){alert(window.JSON.stringify(error))}},success:function(response){if(response.valid){$element.valAttr("backend-valid","true")}else{$element.valAttr("backend-invalid","true");if(response.message)$element.attr(conf.validationErrorMsgAttribute,response.message);else
$element.removeAttr(conf.validationErrorMsgAttribute)}if(!$element.valAttr("has-keyup-event")){$element.valAttr("has-keyup-event","1").bind("keyup",function(evt){if(evt.keyCode!=9&&evt.keyCode!=16){$(this).valAttr("backend-valid",false).valAttr("backend-invalid",false).removeAttr(conf.validationErrorMsgAttribute)}})}callback()}})},disableFormSubmit=function(){return
false};$.formUtils.addValidator({name:"server",validatorFunction:function(val,$el,conf,lang,$form){var
backendValid=$el.valAttr("backend-valid"),backendInvalid=$el.valAttr("backend-invalid"),serverURL=document.location.href;if($el.valAttr("url")){serverURL=$el.valAttr("url")}else
if("serverURL"in conf){serverURL=conf.backendUrl}if(backendValid)return
true;else if(backendInvalid)return false;else
if($.formUtils.eventType=="keyup")return
null;if($.formUtils.isValidatingEntireForm){$form.bind("submit",disableFormSubmit).addClass("validating-server-side").addClass("on-blur");$el.addClass("validating-server-side");requestServer(serverURL,$el,val,conf,function(){$form.removeClass("validating-server-side").removeClass("on-blur").get(0).onsubmit=function(){};$form.unbind("submit",disableFormSubmit);$el.removeClass("validating-server-side");$el.valAttr("value-length",val.length);$form.trigger("submit")});$.formUtils.haltValidation=true;return
null}else{$form.addClass("validating-server-side");$el.addClass("validating-server-side");requestServer(serverURL,$el,val,conf,function(){$form.removeClass("validating-server-side");$el.removeClass("validating-server-side");$el.trigger("blur")});return
null}},errorMessage:"",errorMessageKey:"badBackend",validateOnKeyUp:false});$.fn.displayPasswordStrength=function(conf){new
$.formUtils.validators.validate_strength.strengthDisplay(this,conf);return
this}})(jQuery,window);
\ No newline at end of file
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/sweden.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/validator/sweden.js
(rev 0)
+++ branches/dev-syncromind/phpgwapi/js/jquery/validator/sweden.js
2014-10-10 22:54:22 UTC (rev 12155)
@@ -0,0 +1 @@
+(function($,window){$.formUtils.addValidator({name:"swesec",validatorFunction:function(securityNumber,$input){var
year,month,day,ssnParts;if($input.valAttr("use-hyphen")){ssnParts=securityNumber.split("-");if(ssnParts.length!=2){return
false}securityNumber=ssnParts.join("")}if(!securityNumber.match(/^(\d{4})(\d{2})(\d{2})(\d{4})$/)){return
false}year=RegExp.$1;month=$.formUtils.parseDateInt(RegExp.$2);day=$.formUtils.parseDateInt(RegExp.$3);window.ssnGender=parseInt(RegExp.$4.substring(2,3))%2===0?"female":"male";var
months=new
Array(31,28,31,30,31,30,31,31,30,31,30,31);if(year%400===0||year%4===0&&year%100!==0){months[1]=29}if(month<1||month>12||day<1||day>months[month-1]){return
false}securityNumber=securityNumber.substring(2,securityNumber.length);var
check="";for(var
i=0;i<securityNumber.length;i++){check+=((i+1)%2+1)*securityNumber.substring(i,i+1)}var
checksum=0;for(i=0;i<check.length;i++){checksum+=parseInt(check.substring(i,i+1),10)}return
checksum%10===0},errorMessage:"",errorMessageKey:"badSecurityNumber"});$.formUtils.addValidator({name:"swecounty",validatorFunction:function(str){str=str.toLowerCase();if($.inArray(str,this.counties)==-1){if(str.substr(-3).toLocaleLowerCase()!="län"){return
$.inArray(str+"s län",this.counties)>-1}return false}else return
true},errorMessage:"",errorMessageKey:"badCustomVal",counties:["stockholms
län","uppsala län","södermanlands län","östergötlands län","jönköpings
län","kronobergs län","kalmar län","gotlands län","blekinge län","skåne
län","hallands län","västra götalands län","värmlands län","örebro
län","västmanlands län","dalarnas län","gävleborgs län","västernorrlands
län","jämtlands län","västerbottens län","norrbottens
län"]});$.formUtils.addValidator({name:"swemunicipality",validatorFunction:function(str){str=str.toLowerCase();if($.inArray(str,this.municipalities)==-1){if(str.substr(-8)=="s
kommun"){if($.inArray(str.substr(0,str.length-8),this.municipalities)>-1)return
true}if(str.substr(-7)==" kommun"){return
$.inArray(str.substr(0,str.length-7),this.municipalities)>-1}return false}else
return
true},errorMessage:"",errorMessageKey:"badCustomVal",municipalities:["ale","alingsås","alvesta","aneby","arboga","arjeplog","arvidsjaur","arvika","askersund","avesta","bengtsfors","berg","bjurholm","bjuv","boden","bollebygd","bollnäs","borgholm","borlänge","borås","botkyrka","boxholm","bromölla","bräcke","burlöv","båstad","dals-ed","danderyd","degerfors","dorotea","eda","ekerö","eksjö","emmaboda","enköpings","eskilstuna","eslövs","essunga","fagersta","falkenberg","falköping","falu","filipstad","finspång","flen","forshaga","färgelanda","gagnef","gislaved","gnesta","gnosjö","gotland","grum","grästorp","gullspång","gällivare","gävle","göteborg","götene","habo","hagfor","hallsberg","hallstahammar","halmstad","hammarö","haninge","haparanda","heby","hedemora","helsingborg","herrljunga","hjo","hofor","huddinge","hudiksvall","hultsfred","hylte","håbo","hällefor","härjedalen","härnösand","härryda","hässleholm","höganäs","högsby","hörby","höör","jokkmokk","järfälla","jönköping","kalix","kalmar","karlsborg","karlshamn","karlskoga","karlskrona","karlstad","katrineholm","kil","kinda","kiruna","klippan","knivsta","kramfors","kristianstad","kristinehamn","krokoms","kumla","kungsbacka","kungsör","kungälv","kävlinge","köping","laholm","landskrona","laxå","lekeberg","leksand","lerum","lessebo","lidingö","lidköping","lilla
edets","lindesbergs","linköpings","ljungby","ljusdals","ljusnarsbergs","lomma","ludvika","luleå","lunds","lycksele","lysekil","malmö","malung-sälen","malå","mariestad","marks","markaryd","mellerud","mjölby","mora","motala","mullsjö","munkedal","munkfors","mölndal","mönsterås","mörbylånga","nacka","nora","norberg","nordanstig","nordmaling","norrköping","norrtälje","norsjö","nybro","nykvarn","nyköping","nynäshamn","nässjö","ockelbo","olofström","orsa","orust","osby","oskarshamn","ovanåker","oxelösund","pajala","partille","perstorp","piteå","ragunda","robertsfors","ronneby","rättvik","sala","salem","sandviken","sigtuna","simrishamn","sjöbo","skara","skellefteå","skinnskatteberg","skurup","skövde","smedjebacken","sollefteå","sollentuna","solna","sorsele","sotenäs","staffanstorp","stenungsund","stockholm","storfors","storuman","strängnäs","strömstad","strömsund","sundbyberg","sundsvall","sunne","surahammar","svalöv","svedala","svenljunga","säffle","säter","sävsjö","söderhamns","söderköping","södertälje","sölvesborg","tanum","tibro","tidaholm","tierp","timrå","tingsryd","tjörn","tomelilla","torsby","torså","tranemo","tranå","trelleborg","trollhättan","trosa","tyresö","täby","töreboda","uddevalla","ulricehamns","umeå","upplands
väsby","upplands-bro","uppsala","uppvidinge","vadstena","vaggeryd","valdemarsvik","vallentuna","vansbro","vara","varberg","vaxholm","vellinge","vetlanda","vilhelmina","vimmerby","vindeln","vingåker","vårgårda","vänersborg","vännäs","värmdö","värnamo","västervik","västerås","växjö","ydre","ystad","åmål","ånge","åre","årjäng","åsele","åstorp","åtvidaberg","älmhult","älvdalen","älvkarleby","älvsbyn","ängelholm","öckerö","ödeshög","örebro","örkelljunga","örnsköldsvik","östersund","österåker","östhammar","östra
göinge","överkalix","övertorneå"]});$.formUtils.addValidator({name:"swephone",validatorFunction:function(tele){var
numPlus=tele.match(/\+/g);var
numHifen=tele.match(/-/g);if(numPlus!==null&&numPlus.length>1||numHifen!==null&&numHifen.length>1){return
false}if(numPlus!==null&&tele.indexOf("+")!==0){return
false}tele=tele.replace(/([-|\+])/g,"");return
tele.length>8&&tele.match(/[^0-9]/g)===null},errorMessage:"",errorMessageKey:"badTelephone"});$.formUtils.addValidator({name:"swemobile",validatorFunction:function(number){if(!$.formUtils.validators.validate_swephone.validatorFunction(number)){return
false}number=number.replace(/[^0-9]/g,"");var
begin=number.substring(0,3);if(number.length!=10&&begin!=="467"){return
false}else if(number.length!=11&&begin==="467"){return
false}return/07[0-9{1}]/.test(begin)||begin==="467"},errorMessage:"",errorMessageKey:"badTelephone"});var
_makeSortedList=function(listItems){var
newList=[];$.each(listItems,function(i,v){newList.push(v.substr(0,1).toUpperCase()+v.substr(1,v.length))});newList.sort();return
newList};$.fn.suggestSwedishCounty=function(settings){var
counties=_makeSortedList($.formUtils.validators.validate_swecounty.counties);return
$.formUtils.suggest(this,counties,settings)};$.fn.suggestSwedishMunicipality=function(settings){var
municipalities=_makeSortedList($.formUtils.validators.validate_swemunicipality.municipalities);return
$.formUtils.suggest(this,municipalities,settings)}})(jQuery,window);
\ No newline at end of file
Added: branches/dev-syncromind/phpgwapi/js/jquery/validator/uk.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/validator/uk.js
(rev 0)
+++ branches/dev-syncromind/phpgwapi/js/jquery/validator/uk.js 2014-10-10
22:54:22 UTC (rev 12155)
@@ -0,0 +1 @@
+$.formUtils.addValidator({name:"ukvatnumber",validatorFunction:function(number){number=number.replace(/[^0-9]/g,"");if(number.length<9){return
false}var valid=false;var VATsplit=[];VATsplit=number.split("");var
checkDigits=Number(VATsplit[7]+VATsplit[8]);var firstDigit=VATsplit[0];var
secondDigit=VATsplit[1];if(firstDigit==0&&secondDigit>0){return false}var
total=0;for(var i=0;i<7;i++){total+=VATsplit[i]*(8-i)}var c=0;var i=0;for(var
m=8;m>=2;m--){c+=VATsplit[i]*m;i++}while(total>0){total-=97}total=Math.abs(total);if(checkDigits==total){valid=true}if(!valid){total=total%97;if(total>=55){total=total-55}else{total=total+42}if(total==checkDigits){valid=true}}return
valid},errorMessage:"",errorMessageKey:"badUKVatAnswer"});
\ No newline at end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [12155] update to jqueryValidator,
Alejandro <=