
jQuery.validator.addMethod("maxWords",function(value,element,params){return this.optional(element)||value.match(/\b\w+\b/g).length<params;},"Please enter {0} words or less.");jQuery.validator.addMethod("minWords",function(value,element,params){return this.optional(element)||value.match(/\b\w+\b/g).length>=params;},"Please enter at least {0} words.");jQuery.validator.addMethod("rangeWords",function(value,element,params){return this.optional(element)||value.match(/\b\w+\b/g).length>=params[0]&&value.match(/bw+b/g).length<params[1];},"Please enter between {0} and {1} words.");jQuery.validator.addMethod("letterswithbasicpunc",function(value,element){return this.optional(element)||/^[a-z-.,()'\"\s]+$/i.test(value);},"Letters or punctuation only please");jQuery.validator.addMethod("alphanumeric",function(value,element){return this.optional(element)||/^\w+$/i.test(value);},"Letters, numbers, spaces or underscores only please");jQuery.validator.addMethod("lettersonly",function(value,element){return this.optional(element)||/^[a-z]+$/i.test(value);},"Letters only please");jQuery.validator.addMethod("nowhitespace",function(value,element){return this.optional(element)||/^\S+$/i.test(value);},"No white space please");jQuery.validator.addMethod("ziprange",function(value,element){return this.optional(element)||/^90[2-5]\d\{2}-\d{4}$/.test(value);},"Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx");jQuery.validator.addMethod('notequalTo',function(value,element,param){var notEqual=param.split(',');var check=true;for(i=0;i<notEqual.length;i++){if(value.length>0){if($(notEqual[i]).val()===value){check=false;}}}return check;});jQuery.validator.addMethod('urlUI',function(value,element){if(value=='http://'){return false;}if(value.search(/http/)<0){value='http://'+value;}return this.optional(element)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\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])([a-z]|\d|-|\.|_|~|[\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])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);});jQuery.validator.addMethod("useName",function(value,element,params){return this.optional(element)||/^[A-za-z-\.,\\\p{L}]+$/i.test(value);},"Invalid name");jQuery.validator.addMethod("restrictEmail",function(value,element){return this.optional(element)||/^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/.test(value);},"Invalid E-mail");jQuery.validator.addMethod('radioCheckRegional',function(value,element){$.sevenRule=false;var radioName=element.name;var radioClass=$(element).parent().parent().attr('class');var id=$("."+radioClass+" input[@type=radio][@checked]").attr('id');var radioButton=document.getElementsByName(radioName);var i;for(i=0;i<radioButton.length;i++){if(radioButton[i].checked){var checked=i;}}switch(checked){case 0:if($("#"+id).parent().find('dd').length){if(element.id==='radio-multinational'){if($("#"+id).parent().find('dd').length>1){$('#'+id).parent().find("input[name*='[id]']").each(function(e){if(this.value<9){$.sevenRule=true;}});if(!$.sevenRule){$.sevenRule=false;}}else{return false;}}return true;}else{return false;}break;case 1:var selectCountry=$("#"+id).parent().find('select').attr('id');try{var valueSelected=document.getElementById(selectCountry).value;}catch(e){$.sevenRule=true;return true;}if(valueSelected.length){$.sevenRule=true;return true;}else{return false;}break;case 2:if($("#"+id).parent().find('dd').length>1){$.sevenRule=false;$('#'+id).parent().find("input[name*='[id]']").each(function(e){if(this.value<9){$.sevenRule=true;}});if(!$.sevenRule){$.sevenRule=false;}return true;}else{return false;}break;case 3:$.sevenRule=true;return true;break;}return false;});jQuery.validator.addMethod('radioCheckScope',function(value,element){if($(element).parent().parent().is(':hidden')){return true;}var radioName=element.name;var $radioClass=$(element).parent().parent();var idChecked=$radioClass.find('input[@type=radio][@checked]').attr('id');var radioButton=document.getElementsByName(radioName);var i;for(i=0;i<radioButton.length;i++){if(radioButton[i].checked){var checked=i;}}if(typeof checked=='undefined'){idChecked=element.id;checked=4;}if(element.id==='radio-multinational'){if(!$.sevenRule){return false;}}switch(checked){case 0:if(element.id==='multinational-other-multinationally'||element.id==='multinational-other-same-countries'){if($.sevenRule){return true;}else{return false;}}else if(element.id==='regional-other-regional'){if($("#"+idChecked).parent().next().find('dd').length){return true;}else{return false;}}else{return true;}break;case 1:if(element.id==='radio-multinational'||element.id==='radio-regional'){return true;}if(element.id==='multinational-other-multinationally'||element.id==='multinational-other-same-countries'){if($.sevenRule){return true;}else{return false;}}if($("#"+idChecked).parent().next().find('dd').length>1){return true;}else{return false;}break;case 2:if(element.id==='multinational-other-same-countries'||element.id==='radio-regional'){if($.sevenRule){return true;}else{return false;}}if(radioButton.length==3){return true;}else if(radioButton.length==4){if($("#"+idChecked).parent().next().find('dd').length>1){return true;}else{return false;}}break;case 3:return true;break;case 4:if($("#"+idChecked).parent().parent().parent().parent().find('dd').length){return true;}else{return false;}break;}return false;});jQuery.validator.addMethod('requiredUpload',function(value,element){if($(element).attr('checked')){return true;}else{if($.validateCrop){return true;}else{return false;}}});jQuery.validator.addMethod('requiredAssociation',function(value,element){if($(element).attr('checked')){return true;}else{if($('#associated-organisation').find('dd:visible').length){return true;}else{return false;}}});jQuery.validator.addMethod("vinUS",function(v){if(v.length!=17)return false;var i,n,d,f,cd,cdv;var LL=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"];var VL=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9];var FL=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2];var rs=0;for(i=0;i<17;i++){f=FL[i];d=v.slice(i,i+1);if(i==8){cdv=d;}if(!isNaN(d)){d*=f;}else{for(n=0;n<LL.length;n++){if(d.toUpperCase()===LL[n]){d=VL[n];d*=f;if(isNaN(cdv)&&n==8){cdv=LL[n];}break;}}}rs+=d;}cd=rs%11;if(cd==10){cd="X";}if(cd==cdv){return true;}return false;},"The specified vehicle identification number (VIN) is invalid.");jQuery.validator.addMethod("phone",function(phone_number,element){phone_number=phone_number.replace(/\s+/g,"");return this.optional(element)||phone_number.length>9&&phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);},"Please specify a valid phone number");jQuery.validator.addMethod("strippedminlength",function(value,element,param){return jQuery(value).text().length>=param;},jQuery.format("Please enter at least {0} characters"));jQuery.validator.addMethod("email2",function(value,element,param){return this.optional(element)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\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])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);},jQuery.validator.messages.email);jQuery.validator.addMethod("url2",function(value,element,param){return this.optional(element)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\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])([a-z]|\d|-|\.|_|~|[\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])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);},jQuery.validator.messages.url);
