"use strict";var affiniForm={isValidCard:function(e){for(var a=e.replace(/\s/g,""),r=a?a.length:0,t=[0,2,4,6,8,1,3,5,7,9],n=1,i=0;r--;)i+=(n^=1)?t[a[r]]:parseInt(a[r],10);return i%10==0&&i>0},formatAmount:function(e){var a=parseFloat(e.val().trim().replace("$",""));if(isNaN(a))return e.val("");e.val(a.toFixed(2))}};!function(e){e.fn.AffiniPayPaymentForm=function(){function a(){var a=e(".affinipay-exp_year label"),r=e(".affinipay-exp_year span"),t=new Date(C.val()+"/1/"+k.val()),n=t>new Date;a.toggleClass("affinipay_error",!n),r.toggleClass("affinipay_error",!n).html(n?"":"Card is expired"),v("exp_year",!n)}function r(e){e.preventDefault()}function t(a){var r=e(a.currentTarget);"number"==r.attr("id")&&l(a),r.hasClass("affinipay_error")&&i(a)}function n(a){if(!(a.key.length>1)){var r=e(a.currentTarget),t=e(".affinipay-"+r.attr("id")+" span");if(r.attr("maxlength")!=r.val().length)return void t.removeClass("warning");t.addClass("warning").html("Length may not exceed "+r.attr("maxlength")+" characters.")}}function i(a){var r=e(a.currentTarget).val(),t=e(a.currentTarget).data("validate"),n=null,i=!0,s=".affinipay-"+e(a.currentTarget).attr("id"),l={field:a.currentTarget,error_label:s+" span",rule_type:t,required:e(a.currentTarget).attr("required"),value:r};if("cc"===t?(o(a),i=affiniForm.isValidCard(r)):void 0!==t&&(n=_[t],i=u(r.trim(),n)),l.required||""!==r.trim()||(i=!0),!0===i){var c=l.error_label.replace("span","label");e(a.currentTarget).removeClass("affinipay_error"),e(l.error_label).removeClass("affinipay_error").html(""),e(c).removeClass("affinipay_error");v(e(a.currentTarget).attr("id"),!1)}else f(l)}function s(e){e.preventDefault()}function l(e){var a=o(e);return null!=a?a.patterns:new RegExp(/\*/)}function o(e){var a=null,r=g.val();return""!==r&&(h.visa.patterns.test(r)&&(a="visa"),h.mastercard.patterns.test(r)&&(a="mastercard"),h.discover.patterns.test(r)&&(a="discover"),h.amex.patterns.test(r)&&(a="amex"),h.jcb.patterns.test(r)&&(a="jcb")),c(a,e)}function c(e,a){return b=h[e],g.removeClass("visa mastercard amex discover"),g.addClass(e),d(a),b}function d(e){if(8!==e.keyCode&&null!=b){var a="",r=g.val(),t=r.replace(/\D/g,"").match(b.format);if(t){for(var n=1;n<5;n++)a+=void 0!==t[n]?t[n].replace(/$/," "):"";g.val(a)}}}function u(e,a){var r=!1;return null!=a&&null!=e&&(r=a.test(e)),null==a&&(r=!0),r}function f(a){if(""===a.value.trim())return void m(a,"Cannot be blank");var r;switch(a.rule_type){case"email":r="Please enter a valid Email Address";break;case"numeric":r="Must contain only numbers";break;case"alpha":r="Must contain only letters";break;case"alphanumeric":r="Must contain only letters and numbers";break;case"month":r=2!==a.value.length?"Must be in MM format":"Must be a number";break;case"year":r=4!==a.value.length?"Must be in YYYY format":"Must be a number";break;case"postal_code":r=a.value.length<3?"Length must be at least 3 characters":"Please enter a valid Postal Code";break;case"cvv":r=a.value.length<3?"Length must be at least 3 characters":"Please enter a valid CVV.";break;case"phone":r="Must be a number";break;case"cc":r="Please enter a valid Card Number.";break;default:return void e(a.error_label).removeClass("affinipay_error").html("")}m(a,r)}function m(a,r){a.txt=a.error_label.replace("span","label"),e(a.field).addClass("affinipay_error"),e(a.error_label).addClass("affinipay_error").html(r),e(a.txt).addClass("affinipay_error"),v(e(a.field).attr("id"),!0)}function v(e,a){var r=x.indexOf(e);a?r<0&&x.push(e):r>-1&&x.splice(r,1),y.prop("disabled",x.length>0)}var p=this;const h={visa:{brand:"visa",patterns:/^4/,format:/^(\d{4})(\d{4})?(\d{4})?(\d{4})?$/,length:[13,16],cvcLength:[3],luhn:!0},mastercard:{brand:"mastercard",patterns:/^(51|52|53|54|55|22|23|24|25|26|27)/,format:/^(\d{4})(\d{4})?(\d{4})?(\d{4})?$/,length:[16],cvcLength:[3],luhn:!0},amex:{brand:"amex",patterns:/^(34|37)/,format:/^(\d{4})(\d{6})?(\d{5,6})?$/,length:[15],cvcLength:[3,4],luhn:!0},diners:{brand:"diners",patterns:/^(30|36|38|39)/,format:/^(\d{4})(\d{4})?(\d{4})?(\d{4})?$/,length:[14],cvcLength:[3],luhn:!0},discover:{brand:"discover",patterns:/^(60|64|65)/g,format:/^(\d{4})(\d{4})?(\d{4})?(\d{4})?$/,length:[16],cvcLength:[3],luhn:!0},jcb:{brand:"jcb",patterns:/^35/,format:/^(\d{4})(\d{4})?(\d{4})?(\d{4})?$/,length:[16],cvcLength:[3],luhn:!0}},_={numeric:/[0-9]/,alpha:/[A-Z]/i,any:/.+/,alphanumeric:/^[a-z\d\-_\s]+$/i,state:/^[A-Z]{2}$/,postal_code:/^[\w\d\s-]{3,9}$/,email:/^[^@\s]+@[^@\s]+\.[^@\s]+$/,month:/^\d{2}$/,year:/^\d{4}$/,cvv:/^\d{3,4}$/};var b=null,g=e("#number"),y=e("#btn_payment_submit"),x=[];y.prop("disabled","disabled"),e("#amount").on("blur",function(){affiniForm.formatAmount(e(this))});var C=e("#exp_month"),k=e("#exp_year");C.on("change",a),k.on("change",a),this.find("input").each(function(){e(this).on("change",s).on("keyup",t).on("keydown",n).on("focus",r).on("blur",i)}),affiniForm.validateAllFields=function(){return a(),p.find("input").each(function(){i({currentTarget:this})}),0===x.length}}}(jQuery),function(e){function a(){number.removeAttribute("name"),exp_month.removeAttribute("name"),exp_year.removeAttribute("name"),cvv.removeAttribute("name")}function r(){number.name="number",exp_month.name="exp_month",exp_year.name="exp_year",cvv.name="cvv"}function t(e){"card_number_invalid"==e.code&&n(number,e.message),"invalid_data"==e.code&&("method.number"==e.context&&n(number,e.message),"method.exp_month"==e.context&&n(exp_month,e.message),"method.exp_year"==e.context&&n(exp_year,e.message),"method.cvv"==e.context&&n(cvv,e.message))}function n(a,r){var t="#"+e(a).attr("id")+" label span",n="#"+e(a).attr("id")+" label";e(a).addClass("affinipay_error"),e(n).addClass("affinipay_error"),e(t).addClass("affinipay_error").css("display","block").html(r)}ChargeIO.init({public_key:affinipay.public_key}),ChargeIO.ready(function(){function n(a){r();var n=e(".affinipay_payment_form"),i=(e("#frm_affinipay_payment"),e("#affinipay_error_message"));i.length&&i.html("").css("display","none");var s="";a.messages.forEach(function(e){s+=e.message+"
",t(e)});var l='