fmsystem-commits
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]