var Validator=Class.create();Validator.prototype={initialize:function(a,b,c,d){typeof c=="function"?(this.options=$H(d),this._test=c):(this.options=$H(c),this._test=function(){return!0});this.error=b||"Validation failed.";this.className=a},test:function(a,b){return this._test(a,b)&&this.options.all(function(c){return Validator.methods[c.key]?Validator.methods[c.key](a,b,c.value):!0})}};
Validator.methods={pattern:function(a,b,c){return Validation.get("IsEmpty").test(a)||c.test(a)},minLength:function(a,b,c){return a.length>=c},maxLength:function(a,b,c){return a.length<=c},min:function(a,b,c){return a>=parseFloat(c)},max:function(a,b,c){return a<=parseFloat(c)},notOneOf:function(a,b,c){return $A(c).all(function(b){return a!=b})},oneOf:function(a,b,c){return $A(c).any(function(b){return a==b})},is:function(a,b,c){return a==c},isNot:function(a,b,c){return a!=c},equalToField:function(a,
b,c){return a==$F(c)},notEqualToField:function(a,b,c){return a!=$F(c)},include:function(a,b,c){return $A(c).all(function(c){return Validation.get(c).test(a,b)})}};var Validation=Class.create();Validation.defaultOptions={onSubmit:!0,stopOnFirst:!1,immediate:!1,focusOnError:!0,useTitles:!1,addClassNameToContainer:!1,containerClassName:".input-box",onFormValidate:function(){},onElementValidate:function(){}};
Validation.prototype={initialize:function(a,b){if(this.form=$(a))this.options=Object.extend({onSubmit:Validation.defaultOptions.onSubmit,stopOnFirst:Validation.defaultOptions.stopOnFirst,immediate:Validation.defaultOptions.immediate,focusOnError:Validation.defaultOptions.focusOnError,useTitles:Validation.defaultOptions.useTitles,onFormValidate:Validation.defaultOptions.onFormValidate,onElementValidate:Validation.defaultOptions.onElementValidate},b||{}),this.options.onSubmit&&Event.observe(this.form,
"submit",this.onSubmit.bind(this),!1),this.options.immediate&&Form.getElements(this.form).each(function(a){a.tagName.toLowerCase()=="select"&&Event.observe(a,"blur",this.onChange.bindAsEventListener(this));a.type.toLowerCase()=="radio"||a.type.toLowerCase()=="checkbox"?Event.observe(a,"click",this.onChange.bindAsEventListener(this)):Event.observe(a,"change",this.onChange.bindAsEventListener(this))},this)},onChange:function(a){Validation.isOnChange=!0;Validation.validate(Event.element(a),{useTitle:this.options.useTitles,
onElementValidate:this.options.onElementValidate});Validation.isOnChange=!1},onSubmit:function(a){this.validate()||Event.stop(a)},validate:function(){var a=!1,b=this.options.useTitles,c=this.options.onElementValidate;try{a=this.options.stopOnFirst?Form.getElements(this.form).all(function(a){if(a.hasClassName("local-validation")&&!this.isElementInForm(a,this.form))return!0;return Validation.validate(a,{useTitle:b,onElementValidate:c})},this):Form.getElements(this.form).collect(function(a){if(a.hasClassName("local-validation")&&
!this.isElementInForm(a,this.form))return!0;return Validation.validate(a,{useTitle:b,onElementValidate:c})},this).all()}catch(d){}if(!a&&this.options.focusOnError)try{Form.getElements(this.form).findAll(function(a){return $(a).hasClassName("validation-failed")}).first().focus()}catch(e){}this.options.onFormValidate(a,this.form);return a},reset:function(){Form.getElements(this.form).each(Validation.reset)},isElementInForm:function(a,b){if(a.up("form")==b)return!0;return!1}};
Object.extend(Validation,{validate:function(a,b){b=Object.extend({useTitle:!1,onElementValidate:function(){}},b||{});a=$(a);return result=$w(a.className).all(function(c){c=Validation.test(c,a,b.useTitle);b.onElementValidate(c,a);return c})},insertAdvice:function(a,b){var c=$(a).up(".field-row");if(c)Element.insert(c,{after:b});else if(a.up("td.value"))a.up("td.value").insert({bottom:b});else if(a.advaiceContainer&&$(a.advaiceContainer))$(a.advaiceContainer).update(b);else switch(a.type.toLowerCase()){case "checkbox":case "radio":(c=
a.parentNode)?Element.insert(c,{bottom:b}):Element.insert(a,{after:b});break;default:Element.insert(a,{after:b})}},showAdvice:function(a,b,c){a.advices?a.advices.each(function(c){(!b||c.value.id!=b.id)&&this.hideAdvice(a,c.value)}.bind(this)):a.advices=new Hash;a.advices.set(c,b);typeof Effect=="undefined"?b.style.display="block":b._adviceAbsolutize?(Position.absolutize(b),b.show(),b.setStyle({top:b._adviceTop,left:b._adviceLeft,width:b._adviceWidth,"z-index":1E3}),b.addClassName("advice-absolute")):
new Effect.Appear(b,{duration:1})},hideAdvice:function(a,b){b!=null&&new Effect.Fade(b,{duration:1,afterFinishInternal:function(){b.hide()}})},updateCallback:function(a,b){typeof a.callbackFunction!="undefined"&&eval(a.callbackFunction+"('"+a.id+"','"+b+"')")},ajaxError:function(a,b){var c=Validation.getAdvice("validate-ajax",a);c==null&&(c=this.createAdvice("validate-ajax",a,!1,b));this.showAdvice(a,c,"validate-ajax");this.updateCallback(a,"failed");a.addClassName("validation-failed");a.addClassName("validate-ajax");
if(Validation.defaultOptions.addClassNameToContainer&&Validation.defaultOptions.containerClassName!=""&&(c=a.up(Validation.defaultOptions.containerClassName))&&this.allowContainerClassName(a))c.removeClassName("validation-passed"),c.addClassName("validation-error")},allowContainerClassName:function(a){if(a.type=="radio"||a.type=="checkbox")return a.hasClassName("change-container-classname");return!0},test:function(a,b,c){var d=Validation.get(a),e="__advice"+a.camelize();try{if(Validation.isVisible(b)&&
!d.test($F(b),b)){var g=Validation.getAdvice(a,b);g==null&&(g=this.createAdvice(a,b,c));this.showAdvice(b,g,a);this.updateCallback(b,"failed");b[e]=1;b.advaiceContainer||(b.removeClassName("validation-passed"),b.addClassName("validation-failed"));if(Validation.defaultOptions.addClassNameToContainer&&Validation.defaultOptions.containerClassName!=""){var f=b.up(Validation.defaultOptions.containerClassName);f&&this.allowContainerClassName(b)&&(f.removeClassName("validation-passed"),f.addClassName("validation-error"))}return!1}else{g=
Validation.getAdvice(a,b);this.hideAdvice(b,g);this.updateCallback(b,"passed");b[e]="";b.removeClassName("validation-failed");b.addClassName("validation-passed");if(Validation.defaultOptions.addClassNameToContainer&&Validation.defaultOptions.containerClassName!=""&&(f=b.up(Validation.defaultOptions.containerClassName))&&!f.down(".validation-failed")&&this.allowContainerClassName(b))!Validation.get("IsEmpty").test(b.value)||!this.isVisible(b)?f.addClassName("validation-passed"):f.removeClassName("validation-passed"),
f.removeClassName("validation-error");return!0}}catch(h){throw h;}},isVisible:function(a){for(;a.tagName!="BODY";){if(!$(a).visible())return!1;a=a.parentNode}return!0},getAdvice:function(a,b){return $("advice-"+a+"-"+Validation.getElmID(b))||$("advice-"+Validation.getElmID(b))},createAdvice:function(a,b,c,d){var e=Validation.get(a),c=c?b&&b.title?b.title:e.error:e.error;d&&(c=d);try{Translator&&(c=Translator.translate(c))}catch(g){}advice='<div class="validation-advice" id="advice-'+a+"-"+Validation.getElmID(b)+
'" style="display:none">'+c+"</div>";Validation.insertAdvice(b,advice);advice=Validation.getAdvice(a,b);if($(b).hasClassName("absolute-advice"))a=$(b).getDimensions(),b=Position.cumulativeOffset(b),advice._adviceTop=b[1]+a.height+"px",advice._adviceLeft=b[0]+"px",advice._adviceWidth=a.width+"px",advice._adviceAbsolutize=!0;return advice},getElmID:function(a){return a.id?a.id:a.name},reset:function(a){a=$(a);$w(a.className).each(function(b){var c="__advice"+b.camelize();a[c]&&((b=Validation.getAdvice(b,
a))&&b.hide(),a[c]="");a.removeClassName("validation-failed");a.removeClassName("validation-passed");if(Validation.defaultOptions.addClassNameToContainer&&Validation.defaultOptions.containerClassName!=""&&(c=a.up(Validation.defaultOptions.containerClassName)))c.removeClassName("validation-passed"),c.removeClassName("validation-error")})},add:function(a,b,c,d){var e={};e[a]=new Validator(a,b,c,d);Object.extend(Validation.methods,e)},addAllThese:function(a){var b={};$A(a).each(function(a){b[a[0]]=new Validator(a[0],
a[1],a[2],a.length>3?a[3]:{})});Object.extend(Validation.methods,b)},get:function(a){return Validation.methods[a]?Validation.methods[a]:Validation.methods._LikeNoIDIEverSaw_},methods:{_LikeNoIDIEverSaw_:new Validator("_LikeNoIDIEverSaw_","",{})}});Validation.add("IsEmpty","",function(a){return a==""||a==null||a.length==0||/^\s+$/.test(a)});
Validation.addAllThese([["validate-select","Please select an option.",function(a){return a!="none"&&a!=null&&a.length!=0}],["required-entry","This is a required field.",function(a){return!Validation.get("IsEmpty").test(a)}],["validate-number","Please enter a valid number in this field.",function(a){return Validation.get("IsEmpty").test(a)||!isNaN(parseNumber(a))&&!/^\s+$/.test(parseNumber(a))}],["validate-digits","Please use numbers only in this field. Please avoid spaces or other characters such as dots or commas.",
function(a){return Validation.get("IsEmpty").test(a)||!/[^\d]/.test(a)}],["validate-digits-range","The value is not within the specified range.",function(a,b){var c=Validation.get("IsEmpty").test(a)||!/[^\d]/.test(a),d=RegExp(/^digits-range-[0-9]+-[0-9]+$/);$w(b.className).each(function(b){if(b.match(d)&&c){var g=parseInt(b.split("-")[2],10),b=parseInt(b.split("-")[3],10);parseInt(a,10);c=a>=g&&a<=b}});return c}],["validate-alpha","Please use letters only (a-z or A-Z) in this field.",function(a){return Validation.get("IsEmpty").test(a)||
/^[a-zA-Z]+$/.test(a)}],["validate-code","Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.",function(a){return Validation.get("IsEmpty").test(a)||/^[a-z]+[a-z0-9_]+$/.test(a)}],["validate-alphanum","Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.",function(a){return Validation.get("IsEmpty").test(a)||/^[a-zA-Z0-9]+$/.test(a)}],["validate-street","Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field.",
function(a){return Validation.get("IsEmpty").test(a)||/^[ \w]{3,}([A-Za-z]\.)?([ \w]*\#\d+)?(\r\n| )[ \w]{3,}/.test(a)}],["validate-phoneStrict","Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.",function(a){return Validation.get("IsEmpty").test(a)||/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/.test(a)}],["validate-phoneLax","Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.",function(a){return Validation.get("IsEmpty").test(a)||/^((\d[-. ]?)?((\(\d{3}\))|\d{3}))?[-. ]?\d{3}[-. ]?\d{4}$/.test(a)}],
["validate-fax","Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890.",function(a){return Validation.get("IsEmpty").test(a)||/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/.test(a)}],["validate-date","Please enter a valid date.",function(a){var b=new Date(a);return Validation.get("IsEmpty").test(a)||!isNaN(b)}],["validate-email","Please enter a valid email address. For example johndoe@domain.com.",function(a){return Validation.get("IsEmpty").test(a)||/^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i.test(a)}],
["validate-emailSender","Please use only visible characters and spaces.",function(a){return Validation.get("IsEmpty").test(a)||/^[\S ]+$/.test(a)}],["validate-password","Please enter 6 or more characters. Leading or trailing spaces will be ignored.",function(a){a=a.strip();return!(a.length>0&&a.length<6)}],["validate-admin-password","Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.",function(a){var b=a.strip();if(0==b.length)return!0;if(!/[a-z]/i.test(a)||
!/[0-9]/.test(a))return!1;return!(b.length<7)}],["validate-cpassword","Please make sure your passwords match.",function(){var a=$("confirmation")?$("confirmation"):$$(".validate-cpassword")[0],b=!1;$("password")&&(b=$("password"));for(var c=$$(".validate-password"),d=0;d<c.size();d++){var e=c[d];e.up("form").id==a.up("form").id&&(b=e)}$$(".validate-admin-password").size()&&(b=$$(".validate-admin-password")[0]);return b.value==a.value}],["validate-url","Please enter a valid URL. Protocol is required (http://, https:// or ftp://)",
function(a){return Validation.get("IsEmpty").test(a)||/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(a)}],["validate-clean-url","Please enter a valid URL. For example http://www.example.com or www.example.com",function(a){return Validation.get("IsEmpty").test(a)||/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+.(com|org|net|dk|at|us|tv|info|uk|co.uk|biz|se)$)(:(\d+))?\/?/i.test(a)||/^(www)((\.[A-Z0-9][A-Z0-9_-]*)+.(com|org|net|dk|at|us|tv|info|uk|co.uk|biz|se)$)(:(\d+))?\/?/i.test(a)}],
["validate-identifier",'Please enter a valid URL Key. For example "example-page", "example-page.html" or "anotherlevel/example-page".',function(a){return Validation.get("IsEmpty").test(a)||/^[a-z0-9][a-z0-9_\/-]+(\.[a-z0-9_-]+)?$/.test(a)}],["validate-xml-identifier","Please enter a valid XML-identifier. For example something_1, block5, id-4.",function(a){return Validation.get("IsEmpty").test(a)||/^[A-Z][A-Z0-9_\/-]*$/i.test(a)}],["validate-ssn","Please enter a valid social security number. For example 123-45-6789.",
function(a){return Validation.get("IsEmpty").test(a)||/^\d{3}-?\d{2}-?\d{4}$/.test(a)}],["validate-zip","Please enter a valid zip code. For example 90602 or 90602-1234.",function(a){return Validation.get("IsEmpty").test(a)||/(^\d{5}$)|(^\d{5}-\d{4}$)/.test(a)}],["validate-zip-international","Please enter a valid zip code.",function(){return!0}],["validate-date-au","Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.",function(a){if(Validation.get("IsEmpty").test(a))return!0;
var b=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!b.test(a))return!1;a=new Date(a.replace(b,"$2/$1/$3"));return parseInt(RegExp.$2,10)==1+a.getMonth()&&parseInt(RegExp.$1,10)==a.getDate()&&parseInt(RegExp.$3,10)==a.getFullYear()}],["validate-currency-dollar","Please enter a valid $ amount. For example $100.00.",function(a){return Validation.get("IsEmpty").test(a)||/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(a)}],["validate-one-required",
"Please select one of the above options.",function(a,b){var c=b.parentNode.getElementsByTagName("INPUT");return $A(c).any(function(a){return $F(a)})}],["validate-one-required-by-name","Please select one of the options.",function(a,b){for(var c=$$('input[name="'+b.name.replace(/([\\"])/g,"\\$1")+'"]'),d=1,e=0;e<c.length;e++){if((c[e].type=="checkbox"||c[e].type=="radio")&&c[e].checked==!0)d=0;Validation.isOnChange&&(c[e].type=="checkbox"||c[e].type=="radio")&&Validation.reset(c[e])}return d==0?!0:
!1}],["validate-not-negative-number","Please enter a valid number in this field.",function(a){a=parseNumber(a);return!isNaN(a)&&a>=0}],["validate-state","Please select State/Province.",function(a){return a!=0||a==""}],["validate-new-password","Please enter 6 or more characters. Leading or trailing spaces will be ignored.",function(a){if(!Validation.get("validate-password").test(a))return!1;if(Validation.get("IsEmpty").test(a)&&a!="")return!1;return!0}],["validate-greater-than-zero","Please enter a number greater than 0 in this field.",
function(a){return a.length?parseFloat(a)>0:!0}],["validate-zero-or-greater","Please enter a number 0 or greater in this field.",function(a){return a.length?parseFloat(a)>=0:!0}],["validate-cc-number","Please enter a valid credit card number.",function(a,b){var c=$(b.id.substr(0,b.id.indexOf("_cc_number"))+"_cc_type");if(c&&typeof Validation.creditCartTypes.get(c.value)!="undefined"&&Validation.creditCartTypes.get(c.value)[2]==!1)return!Validation.get("IsEmpty").test(a)&&Validation.get("validate-digits").test(a)?
!0:!1;return validateCreditCard(a)}],["validate-cc-type","Credit card number does not match credit card type.",function(a,b){b.value=removeDelimiters(b.value);var a=removeDelimiters(a),c=$(b.id.substr(0,b.id.indexOf("_cc_number"))+"_cc_type");if(!c)return!0;var d=c.value;if(typeof Validation.creditCartTypes.get(d)=="undefined")return!1;if(Validation.creditCartTypes.get(d)[0]==!1)return!0;var e="";Validation.creditCartTypes.each(function(b){if(b.value[0]&&a.match(b.value[0]))throw e=b.key,$break;});
if(e!=d)return!1;c.hasClassName("validation-failed")&&Validation.isOnChange&&Validation.validate(c);return!0}],["validate-cc-type-select","Card type does not match credit card number.",function(a,b){var c=$(b.id.substr(0,b.id.indexOf("_cc_type"))+"_cc_number");if(Validation.isOnChange&&Validation.get("IsEmpty").test(c.value))return!0;Validation.get("validate-cc-type").test(c.value,c)&&Validation.validate(c);return Validation.get("validate-cc-type").test(c.value,c)}],["validate-cc-exp","Incorrect credit card expiration date.",
function(a,b){var c=$(b.id.substr(0,b.id.indexOf("_expiration"))+"_expiration_yr").value,d=new Date,e=d.getMonth()+1,d=d.getFullYear();if(a<e&&c==d)return!1;return!0}],["validate-cc-cvn","Please enter a valid credit card verification number.",function(a,b){var c=$(b.id.substr(0,b.id.indexOf("_cc_cid"))+"_cc_type");if(!c)return!0;c=c.value;if(typeof Validation.creditCartTypes.get(c)=="undefined")return!1;c=Validation.creditCartTypes.get(c)[1];if(a.match(c))return!0;return!1}],["validate-ajax","",function(){return!0}],
["validate-data","Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.",function(a){if(a!=""&&a)return/^[A-Za-z]+[A-Za-z0-9_]+$/.test(a);return!0}],["validate-css-length","Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%.",function(a){if(a!=""&&a)return/^[0-9\.]+(px|pt|em|ex|%)?$/.test(a)&&!/\..*\./.test(a)&&!/\.$/.test(a);return!0}],["validate-length","Text length does not satisfy specified text range.",
function(a,b){var c=RegExp(/^maximum-length-[0-9]+$/),d=RegExp(/^minimum-length-[0-9]+$/),e=!0;$w(b.className).each(function(b){if(b.match(c)&&e){var f=b.split("-")[2];e=a.length<=f}b.match(d)&&e&&!Validation.get("IsEmpty").test(a)&&(f=b.split("-")[2],e=a.length>=f)});return e}],["validate-percents","Please enter a number lower than 100.",{max:100}],["required-file","Please select a file",function(a,b){var c=!Validation.get("IsEmpty").test(a);c===!1&&(ovId=b.id+"_value",$(ovId)&&(c=!Validation.get("IsEmpty").test($(ovId).value)));
return c}],["validate-cc-ukss","Please enter issue number or start date for switch/solo card type.",function(a,b){var c;c=b.id.match(/(.)+_cc_issue$/)?b.id.indexOf("_cc_issue"):b.id.match(/(.)+_start_month$/)?b.id.indexOf("_start_month"):b.id.indexOf("_start_year");c=b.id.substr(0,c);var d=$(c+"_cc_type");if(!d)return!0;if(["SS","SM","SO"].indexOf(d.value)==-1)return!0;$(c+"_cc_issue").advaiceContainer=$(c+"_start_month").advaiceContainer=$(c+"_start_year").advaiceContainer=$(c+"_cc_type_ss_div").down("ul li.adv-container");
var d=$(c+"_cc_issue").value,e=$(c+"_start_month").value;c=$(c+"_start_year").value;if((!e||!c)&&!d)return!1;return!0}]]);function removeDelimiters(a){a=a.replace(/\s/g,"");return a=a.replace(/\-/g,"")}function parseNumber(a){if(typeof a!="string")return parseFloat(a);var b=a.indexOf("."),c=a.indexOf(",");b!=-1&&c!=-1?a=c>b?a.replace(".","").replace(",","."):a.replace(",",""):c!=-1&&(a=a.replace(",","."));return parseFloat(a)}
Validation.creditCartTypes=$H({SO:[/^(6334[5-9]([0-9]{11}|[0-9]{13,14}))|(6767([0-9]{12}|[0-9]{14,15}))$/,/^([0-9]{3}|[0-9]{4})?$/,!0],SM:[RegExp("(^(5[0678])[0-9]{11,18}$)|(^(6[^05])[0-9]{11,18}$)|(^(601)[^1][0-9]{9,16}$)|(^(6011)[0-9]{9,11}$)|(^(6011)[0-9]{13,16}$)|(^(65)[0-9]{11,13}$)|(^(65)[0-9]{15,18}$)|(^(49030)[2-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49033)[5-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49110)[1-2]([0-9]{10}$|[0-9]{12,13}$))|(^(49117)[4-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49118)[0-2]([0-9]{10}$|[0-9]{12,13}$))|(^(4936)([0-9]{12}$|[0-9]{14,15}$))"),
/^([0-9]{3}|[0-9]{4})?$/,!0],VI:[/^4[0-9]{12}([0-9]{3})?$/,/^[0-9]{3}$/,!0],MC:[/^5[1-5][0-9]{14}$/,/^[0-9]{3}$/,!0],AE:[/^3[47][0-9]{13}$/,/^[0-9]{4}$/,!0],DI:[/^6011[0-9]{12}$/,/^[0-9]{3}$/,!0],JCB:[/^(3[0-9]{15}|(2131|1800)[0-9]{11})$/,/^[0-9]{4}$/,!0],OT:[!1,/^([0-9]{3}|[0-9]{4})?$/,!1]});
