!function(e){"use strict";e.WS_Form.prototype.form_ecommerce=function(){var t=this;if(this.has_ecommerce=e("[data-ecommerce-price],[data-ecommerce-cart-price],[data-ecommerce-cart-total],[data-ecommerce-payment]",this.form_canvas_obj).length,this.has_ecommerce){for(var r in e.WS_Form.ecommerce.cart_price_types)e.WS_Form.ecommerce.cart_price_types.hasOwnProperty(r)&&this.form_add_hidden_input("wsf_ecommerce_cart["+r+"]","",t.form_id_prefix+"ecommerce-cart-"+r);this.form_add_hidden_input("wsf_ecommerce_cart[total]","",t.form_id_prefix+"ecommerce-cart-total"),this.form_add_hidden_input("wsf_ecommerce_transaction","",t.form_id_prefix+"ecommerce-transaction"),this.form_add_hidden_input("wsf_ecommerce_transaction_id","",t.form_id_prefix+"ecommerce-transaction-id"),this.form_add_hidden_input("wsf_ecommerce_status","",t.form_id_prefix+"ecommerce-status"),this.form_add_hidden_input("wsf_ecommerce_payment_method","",t.form_id_prefix+"ecommerce-payment-method"),this.form_ecommerce_set_status("new"),this.ecommerce_cart_price_type=[],this.form_ecommerce_input_mask_currency(),e("input[data-ecommerce-price]:not([data-init-ecommerce-event]),input[data-ecommerce-cart-price]:not([data-init-ecommerce-event]),select[data-ecommerce-price]:not([data-init-ecommerce-event])",this.form_canvas_obj).on("change input",function(r){if(e(this).attr("data-init-ecommerce-event",""),void 0!==e(this).attr("min")){var c=parseInt(e(this).attr("min"),10);"input"==r.type&&parseInt(e(this).val(),10)<c&&e(this).val(c)}if(void 0!==e(this).attr("max")){var a=parseInt(e(this).attr("max"),10);"input"==r.type&&parseInt(e(this).val(),10)>a&&e(this).val(a)}t.form_ecommerce_calculate()}),e("input[data-ecommerce-quantity]:not([data-init-ecommerce-event])",this.form_canvas_obj).each(function(){e(this).attr("data-init-ecommerce-event",""),e(this).on("change input",function(){t.form_ecommerce_calculate()}),e(this).on("change",function(r){t.form_ecommerce_quantity_bounds(e(this))})}),this.form_ecommerce_calculate()}},e.WS_Form.prototype.form_ecommerce_quantity_bounds=function(e){var t=!1;if(""==e.val()&&(e.val(0),t=!0),void 0!==e.attr("min")){var r=parseInt(e.attr("min"),10);parseInt(e.val(),10)<r&&(e.val(r),t=!0)}if(void 0!==e.attr("max")){var c=parseInt(e.attr("max"),10);parseInt(e.val(),10)>c&&(e.val(c),t=!0)}t&&this.form_ecommerce_calculate()},e.WS_Form.prototype.form_ecommerce_input_mask_currency=function(t){var r=this;void 0===t&&(t=e('input[type="text"][data-ecommerce-price],input[data-ecommerce-cart-price],input[data-ecommerce-cart-total]',this.form_canvas_obj)),t.each(function(){var t=r.get_currency(),c={digits:t.decimals,allowMinus:e(this)[0].hasAttribute("data-ecommerce-negative"),suffix:t.suffix,groupSeparator:t.thousand_separator,prefix:t.prefix,rightAlign:!1,radixPoint:t.decimal_separator,removeMaskOnSubmit:!0,clearMaskOnLostFocus:!1};e(this)[0].hasAttribute("data-ecommerce-min")&&(c.min=e(this).attr("data-ecommerce-min")),e(this)[0].hasAttribute("data-ecommerce-max")&&(c.max=e(this).attr("data-ecommerce-max")),void 0!==e(this).inputmask&&(e(this).inputmask("currency",c).off("invalid"),void 0!==e(this).attr("required")&&(e(this).on("change input",function(){r.form_ecommerce_input_mask_currency_validate(e(this))}),r.form_ecommerce_input_mask_currency_validate(e(this))))})},e.WS_Form.prototype.form_ecommerce_input_mask_currency_validate=function(e){this.get_number(e.val(),0,!0)>0?this.set_invalid_feedback(e,""):this.set_invalid_feedback(e)},e.WS_Form.prototype.form_ecommerce_calculate=function(){if(this.form_ecommerce_calculate_enabled){var t=[],r=0,c=this.get_currency(),a=[],o=this;e("input[data-ecommerce-price],select[data-ecommerce-price]",this.form_canvas_obj).not("[data-ecommerce-price-bypass],[data-ecommerce-price-bypass-section]").each(function(){var t=o.get_field_id(e(this)),r=o.get_section_repeatable_index(e(this)),c=t+o.get_section_repeatable_suffix(e(this)),i=e(this).closest("[data-ecommerce-cart-price-type]");switch(i=i.length?i.attr("data-ecommerce-cart-price-type"):"subtotal",void 0===a[c]&&(a[c]={subtotal:0,type:i,field_id:t,section_repeatable_index:r,exclude_price_cart:void 0!==e(this).attr("data-wsf-exclude-cart-total")}),e(this).attr("type")){case"checkbox":case"radio":a[c].subtotal+=e(this).is(":checked")?o.get_number(e(this).attr("data-price"),0,!0):0;break;default:e(this).is("select")?e(this).find("option:selected").each(function(){a[c].subtotal+=o.get_number(e(this).attr("data-price"),0,!0)}):a[c].subtotal+=o.get_number(e(this).val())}});var i=parseInt(e.WS_Form.settings_plugin.price_decimals,10);for(var m in a)if(a.hasOwnProperty(m)){var _=a[m].field_id,s=a[m].section_repeatable_index,n=a[m].subtotal;n=this.get_number(n,0,!1,i);var p=a[m].type,d=a[m].exclude_price_cart;if(0===s)var h=e('input[data-ecommerce-quantity][data-ecommerce-field-id="'+this.esc_selector(_)+'"]',this.form_canvas_obj);else h=e('[data-repeatable-index="'+this.esc_selector(s)+'"] input[data-ecommerce-quantity][data-ecommerce-field-id="'+this.esc_selector(_)+'"]',this.form_canvas_obj);if(h.length)n*=this.get_number(h.first().val(),0,!1),n=this.get_number(n,0,!1,i);if(0===s)var f=e('input[data-ecommerce-price-subtotal][data-ecommerce-field-id="'+this.esc_selector(_)+'"]',this.form_canvas_obj);else f=e('[data-repeatable-index="'+this.esc_selector(s)+'"] input[data-ecommerce-price-subtotal][data-ecommerce-field-id="'+this.esc_selector(_)+'"]',this.form_canvas_obj);if(f.length){var u=this.get_number(f.val(),0,!0)!==this.get_number(n,0,!1);f.val(this.get_price(n,c)),u&&f.trigger("change")}d||(void 0===t[p]&&(t[p]=0),t[p]+=n)}for(var p in e.WS_Form.ecommerce.cart_price_types)if(e.WS_Form.ecommerce.cart_price_types.hasOwnProperty(p)){var l=e.WS_Form.ecommerce.cart_price_types[p],v=void 0===l.sum||l.sum,y=void 0!==l.render&&l.render;if("subtotal"==p){t[p]=this.get_number(t[p],0,!1,i);var g=void 0!==t[p]?t[p]:0}else{g=0;e("input[data-ecommerce-cart-price][data-ecommerce-cart-price-"+p+"]",this.form_canvas_obj).each(function(){g+=o.get_number(e(this).val())}),g=this.get_number(g,0,!1,i)}if(v&&(r+=g),y&&v){var b=this.get_price(g,c,!1),x=this.get_price(g,c),S="[data-ecommerce-cart-price-"+p+"]",F="#"+this.form_id_prefix+"ecommerce-cart-"+p;this.form_ecommerce_price_type_set(p,S,F,g,b,x)}}r=this.get_number(r,0,!1,i);b=this.get_price(r,c,!1),x=this.get_price(r,c);this.ecommerce_cart_price_type.total={float:r,string:b,currency:x};S="[data-ecommerce-cart-total]",F="#"+this.form_id_prefix+"ecommerce-cart-total";this.form_ecommerce_price_type_set(!1,S,F,r,b,x)}},e.WS_Form.prototype.form_ecommerce_price_type_set=function(t,r,c,a,o,i){var m=this;(_=e(r,this.form_canvas_obj)).each(function(){if(e(this).is("input")){var t=m.get_number(i,0),r=e(this)[0].hasAttribute("data-ecommerce-negative");t<0&&!r&&m.error("error_ecommerce_negative_value",m.get_field_id(e(this)),"error-ecommerce");var c=m.get_number(e(this).val(),0,!0)!=t;e(this).val(o),c&&e(this).trigger("change")}if(e(this).is("span")){var a=void 0!==e(this).attr("data-ecommerce-price-currency")?i:o;e(this).html(a)}});var _=e(c,this.form_canvas_obj),s=m.get_number(_.val(),0,!1)!=m.get_number(a,0,!1);_.val(a),s&&_.trigger("change"),!1!==t&&(this.ecommerce_cart_price_type[t]={float:a,string:o,currency:i})},e.WS_Form.prototype.form_ecommerce_payment_error=function(e){this.error("error_payment",e,"payment")},e.WS_Form.prototype.form_ecommerce_payment_process=function(e,t,r){this.form_ecommerce_set_status("completed"),this.form_ecommerce_set_transaction_id(e),this.form_ecommerce_set_payment_method(r),this.form_ecommerce_set_payment_amount(t),this.form_obj.trigger("submit")},e.WS_Form.prototype.form_ecommerce_set_status=function(t){e("#"+this.form_id_prefix+"ecommerce-status",this.form_canvas_obj).val(t),this.log("log_ecommerce_status",t,"ecommerce")},e.WS_Form.prototype.form_ecommerce_set_transaction_id=function(t){e("#"+this.form_id_prefix+"ecommerce-transaction-id",this.form_canvas_obj).val(t),this.log("log_ecommerce_transaction_id",t,"ecommerce")},e.WS_Form.prototype.form_ecommerce_set_transaction=function(t){e("#"+this.form_id_prefix+"ecommerce-transaction",this.form_canvas_obj).val(t)},e.WS_Form.prototype.form_ecommerce_set_payment_method=function(t){e("#"+this.form_id_prefix+"ecommerce-payment-method",this.form_canvas_obj).val(t),this.log("log_ecommerce_payment_method",t,"ecommerce")},e.WS_Form.prototype.form_ecommerce_set_payment_amount=function(t){this.form_ecommerce_calculate_enabled=!1,e("#"+this.form_id_prefix+"ecommerce-cart-total",this.form_canvas_obj).val(t).trigger("change"),this.log("log_ecommerce_payment_amount",t,"ecommerce")},e.WS_Form.prototype.form_ecommerce_lock=function(){e("input[data-ecommerce-price]:not([readonly]),input[data-ecommerce-cart-price]:not([readonly]),select[data-ecommerce-price]:not([readonly])",this.form_canvas_obj).attr("data-wsf-ecommerce-locked","").attr("readonly","")},e.WS_Form.prototype.form_ecommerce_unlock=function(){e("[data-wsf-ecommerce-locked]",this.form_canvas_obj).removeAttr("data-wsf-ecommerce-locked").removeAttr("readonly")}}(jQuery);