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