var _wapf=function(o){var e,t,u="wapf-",n="."+u,a=null,i=[],l={varsViaAjax:function(){return 0==o("[data-product_variations]").data("product_variations")},getFieldType:function(e){if(e.is("input"))return e.attr("type");for(var t=["select","textarea","option"],a=0;a<t.length;a++)if(e.is(t[a]))return t[a];return""},setFieldValue:function(e,a){switch(l.getFieldType(e)){case"radio":o('input[name="'+e.attr("name")+'"]').removeAttr("checked").filter('[value="'+a+'"]').prop("checked",!0);break;case"checkbox":var t=e.attr("name");"[]"==t.substring(t.length-2,t.length)?o('input[name="'+e.attr("name")+'"]').removeAttr("checked").each(function(e,t){t=o(t);-1<o.inArray(t.val(),a)&&t.prop("checked",!0)}):a?e.prop("checked",!0):e.prop("checked",!1);break;default:e.val(a)}},getFieldValue:function(e){switch(l.getFieldType(e)){case"radio":var t=o('input[name="'+e.attr("name")+'"]:checked').val();return t||"";case"checkbox":t=e.attr("name");if("[]"!=t.substring(t.length-2,t.length))return e.is(":checked");var a=[];return o('input[name="'+t+'"]:checked').each(function(e,t){a.push(o(t).val())}),a;default:return e.val()}},selectedQuantity:function(){var e=parseInt(o("form :input.qty").val().toString());return isNaN(e)?1:e},currentProductType:function(){return o(n+"product-totals").data("product-type")},currentProductPrice:function(){var e=l.selectedVariation();return"variable"==l.currentProductType()&&e?e.display_price:o(n+"product-totals").data("product-price")},currentVariationId:function(){var e=o('input[name="variation_id"]').val();return e?parseInt(e.toString()):0},selectedVariation:function(){var e=o("[data-product_variations]").data("product_variations");if(!e)return a;var t=l.currentVariationId();return t?l.qFirst(e,"variation_id",t):null},qFirst:function(e,t,a){for(var r=0;r<e.length;r++)if(e[r][t]===a)return e[r];return null},unformat:function(e,t=","){if("number"==typeof e)return e;var a=new RegExp("[^0-9-"+t+"]","g"),t=parseFloat(e.replace(/\((.*)\)/,"-$1").replace(a,"").replace(t,"."));return isNaN(t)?0:t},formatNumber:function(e,t,a,r,n){var i=(e=l.unformat(e,r))<0?"-":"",c=parseInt(Math.abs(e).toFixed(t),10)+"",o=3<c.length?c.length%3:0,t=t?Math.abs(e).toFixed(t).split(".")[1]:"",t=n?t.replace(/0+$/,""):t;return i+(o?c.substr(0,o)+a:"")+c.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+a)+(t?r+t:"")},formatMoney:function(e,t){return e<0&&t.format.replace("%2$s","-%2$s"),t.format.replace("%1$s",t.symbol).replace("%2$s",l.formatNumber(Math.abs(e),t.decimals||0,t.thousand,t.decimal,t.trimzero))}},c={init:function(e){o("[data-dependencies]").each((e,t)=>{t=o(t);i[t.data("field-id")]=l.getFieldValue(t)}),e.on("keyup change",n+"input",()=>{c.doLogic(!1)}),c.doLogic(!0)},doLogic(r){o("[data-dependencies]").each((e,t)=>{var a=o(t),t=a.closest(n+"field-container");c.canShow(a)?(t.removeClass(u+"hide"),a.prop("required",a.data("is-required")).prop("disabled",!1)):(t.addClass(u+"hide"),r||l.setFieldValue(a,i[a.data("field-id")]),a.prop("required",!1).prop("disabled",!0))})},canShow:function(e){var t=e.data("dependencies");if(!t||!Array.isArray(t))return!0;for(var a=0;a<t.length;a++)if(c.validateGroup(t[a].rules))return!0;return!1},validateGroup:function(e=[]){for(var t=0;t<e.length;t++)if(!c.validRule(e[t].field,e[t].condition,e[t].value||""))return!1;return!0},validRule:function(e,t,a){e=o('[data-field-id="'+e+'"]').first();if(!e.length)return!1;if(e.closest(n+"field-container").hasClass(u+"hide"))return!1;var r=l.getFieldValue(e);switch("number"==typeof r&&(r=r.toString()),t){case"check":return!0===r;case"!check":return!1===r;case"==":return Array.isArray(r)?-1<o.inArray(a,r):r==a;case"!=":return Array.isArray(r)?-1==o.inArray(a,r):r!=a;case"empty":return r==[]||""==r;case"!empty":return r!=[]&&""!=r;case"lt":return parseFloat(r)<parseFloat(a);case"gt":return parseFloat(r)>parseFloat(a)}return!1}},d={init:function(){(e=o("[data-wapf-variation-rules]")).length&&(t=o('input[name="variation_id"]')).on("change",()=>{d.doLogic()})},doLogic:function(){var c=t.val();e.each((e,t)=>{for(var a=o(t),r=o(t).data(u+"variation-rules"),n=!1,i=0;i<r.length;i++)if(d.rulesValid(r[i],c)){n=!0;break}n?a.addClass(u+"show"):a.removeClass(u+"show")})},rulesValid:function(e,t){if(!e.length)return!0;for(var a=0;a<e.length;a++)if(!d.ruleValid(e[a],t))return!1;return!0},ruleValid:function(e,t){switch(t=parseInt(t),e.condition){case"product_var":return-1<o.inArray(t,e.values);case"!product_var":return-1==o.inArray(t,e.values)}return!1}},r={init:function(e){"product"===wapf_config.page_type&&o("[data-wapf-price]").length&&(e.on("keyup change",n+"input",()=>{r.calculate()}),o("[data-qty-based]").length||o(".woocommerce").on("keyup change","input.qty",()=>{r.calculate()}),o('input[name="variation_id"]').on("change",()=>{r.calculate()}),r.calculate())},calculate:function(){var e=o(".variation_id");if(e.length){var t=parseInt(e.val());if(isNaN(t)||0===t)return}var a=window.wapf_config.display_options,r=l.currentProductPrice()*l.selectedQuantity(),e=this.calculateOptions(),t="-total";o(n+"product"+t).html(l.formatMoney(r,a)),o(n+"options"+t).html(l.formatMoney(e,a)),o(n+"grand"+t).html(l.formatMoney(r+e,a)),o(n+"product"+t+"s").show()},calculateOptions:function(){var r=0;return o("[data-wapf-price]").each((e,t)=>{var a=o(t),t=l.getFieldType(a);!0!==a.prop("disabled")&&(-1<o.inArray(t,["checkbox","radio"])&&!a.is(":checked")||("option"!=t||a.is(":selected")&&!0!==a.closest("select").prop("disabled"))&&a.val()&&(r+=parseFloat(a.data(u+"price")||0)))}),r}},s=o(n+"wrapper");c.init(s),d.init(),r.init(s),l.varsViaAjax()&&o("[data-wapf-price]").length&&jQuery(document).on("found_variation",function(e,t){jQuery(document).trigger("wapf-ajax-variation",[t]),a=t,r.calculate()}),o(n+"checkboxes[data-is-required=1]").each(function(e,t){var a=o(t).find('input[type="checkbox"]'),t=function(){a.filter(":checked").length&&a.not(":checked").prop("required",!1)};a.on("change",t),t()}),o(n+"checkable input").on("change",function(){var e=o(this);e.is(":radio")&&e.closest(n+"field-input").find(n+"checkable").removeClass(u+"checked"),o(this).closest(n+"checkable").toggleClass(u+"checked")})};!function(e){_wapf(e)}(jQuery);