jQuery(function(a){if("undefined"==typeof kco_params)return!1;var t={bodyEl:a("body"),checkoutFormSelector:a("form.checkout"),paymentMethodEl:a('input[name="payment_method"]'),paymentMethod:"",selectAnotherSelector:"#klarna-checkout-select-other",shippingUpdated:!1,validation:!1,preventPaymentMethodChange:!1,timeout:null,interval:null,klarnaUpdateNeeded:!1,shippingEmailExists:!1,shippingPhoneExists:!1,documentReady:function(){t.log(kco_params),0<t.paymentMethodEl.length?t.paymentMethod=t.paymentMethodEl.filter(":checked").val():t.paymentMethod="kco","kco"===t.paymentMethod&&a("#ship-to-different-address-checkbox").prop("checked",!0),kco_params.pay_for_order||(t.moveExtraCheckoutFields(),t.updateShipping(!1));let o=!1;new MutationObserver(function(e){e.forEach(function(e){"attributes"===e.type&&"class"===e.attributeName&&(a("html").hasClass("klarna-checkout-fso-open")?o=!0:o&&(e=kco_params.pay_for_order?"div.woocommerce-notices-wrapper":"form.checkout",(e=a(e)).length&&e.find(".woocommerce-error").length&&a("html, body").animate({scrollTop:e.offset().top-100},1e3),t.unblock(),o=!1))})}).observe(document.querySelector("html"),{attributes:!0,attributeFilter:["class"]})},unblock:function(){t.checkoutFormSelector.removeClass("processing"),a(".woocommerce-checkout-review-order-table").unblock(),a(t.checkoutFormSelector).unblock()},kcoSuspend:function(o){window._klarnaCheckout&&!t.validation&&window._klarnaCheckout(function(e){e.suspend({autoResume:{enabled:o}})})},kcoResume:function(){window._klarnaCheckout&&!t.validation&&window._klarnaCheckout(function(e){e.resume()})},changeFromKco:function(e){e.preventDefault(),a(t.checkoutFormSelector).block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.ajax({type:"POST",dataType:"json",data:{kco:!1,nonce:kco_params.change_payment_method_nonce},url:kco_params.change_payment_method_url,success:function(e){},error:function(e){},complete:function(e){t.log(e.responseJSON),window.location.href=e.responseJSON.data.redirect}})},maybeChangeToKco:function(){t.preventPaymentMethodChange||(t.log(a(this).val()),"kco"===a(this).val()&&(a(".woocommerce-info").remove(),a(t.checkoutFormSelector).block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.ajax({type:"POST",data:{kco:!0,nonce:kco_params.change_payment_method_nonce},dataType:"json",url:kco_params.change_payment_method_url,success:function(e){},error:function(e){},complete:function(e){t.log(e.responseJSON),window.location.href=e.responseJSON.data.redirect}})))},moveExtraCheckoutFields:function(){a(".woocommerce-additional-fields").appendTo("#kco-extra-checkout-fields");var e=a('form[name="checkout"] input, form[name="checkout"] select, textarea'),o=!1;for(i=0;i<e.length;i++){var n=e[i].name.replace("[]","\\[\\]");a("table.woocommerce-checkout-review-order-table").find(e[i]).length||-1===a.inArray(n,kco_params.standard_woo_checkout_fields)&&("wc_checkout_add_ons"===a("p#"+n+"_field").parent().attr("id")?o||(o=!0,a("div#wc_checkout_add_ons").appendTo("#kco-extra-checkout-fields")):(0<a("p#"+n+"_field").length?("shipping_phone"===n&&(t.shippingPhoneExists=!0),"shipping_email"===n&&(t.shippingEmailExists=!0),a("p#"+n+"_field")):a('input[name="'+n+'"]').closest("p")).appendTo("#kco-extra-checkout-fields"))}},maybeDisplayShippingPrice:function(){var e;a(".kco-shipping").length||"kco"===t.paymentMethod&&"yes"===kco_params.shipping_methods_in_iframe&&"no"===kco_params.is_confirmation_page&&(1<a('#shipping_method input[type="radio"]').length?a('#shipping_method input[type="radio"]:checked').each(function(){var e=a(this).attr("id"),e=a('label[for="'+e+'"]').text();a(".woocommerce-shipping-totals td").html(e),a(".woocommerce-shipping-totals td").addClass("kco-shipping")}):1===a('#shipping_method input[type="hidden"]').length?(e=a('#shipping_method input[name="shipping_method[0]"]').attr("id"),e=a('label[for="'+e+'"]').text(),a(".woocommerce-shipping-totals td").html(e),a(".woocommerce-shipping-totals td").addClass("kco-shipping")):a(".woocommerce-shipping-totals td").html(kco_params.no_shipping_message))},updateCart:function(){t.kcoSuspend(!0),a.ajax({type:"POST",url:kco_params.update_cart_url,data:{checkout:a("form.checkout").serialize(),nonce:kco_params.update_cart_nonce},dataType:"json",success:function(e){},error:function(e){},complete:function(e){a("body").trigger("update_checkout"),t.kcoResume()}})},getKlarnaOrder:function(){return console.log("getKlarnaOrder"),t.preventPaymentMethodChange=!0,a(".woocommerce-checkout-review-order-table").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.ajax({type:"POST",url:kco_params.get_klarna_order_url,data:{nonce:kco_params.get_klarna_order_nonce},dataType:"json",success:function(e){t.setCustomerData(e.data),0<a("form.checkout #terms").length&&a("form.checkout #terms").prop("checked",!0),console.log("success")},error:function(e){console.log("error"),window.location.reload()},complete:function(e){}})},setCustomerData:function(e){t.log("setCustomerData",e),"object"==typeof e&&null!==e&&("billing_address"in e&&null!==e.billing_address&&(a("#billing_first_name").val("given_name"in e.billing_address?e.billing_address.given_name:""),a("#billing_last_name").val("family_name"in e.billing_address?e.billing_address.family_name:""),a("#billing_company").val("organization_name"in e.billing_address?e.billing_address.organization_name:""),a("#billing_address_1").val("street_address"in e.billing_address?e.billing_address.street_address:""),a("#billing_address_2").val("street_address2"in e.billing_address?e.billing_address.street_address2:""),a("#billing_city").val("city"in e.billing_address?e.billing_address.city:""),a("#billing_postcode").val("postal_code"in e.billing_address?e.billing_address.postal_code:""),a("#billing_phone").val("phone"in e.billing_address?e.billing_address.phone:""),a("#billing_email").val("email"in e.billing_address?e.billing_address.email:""),a("#billing_country").val("country"in e.billing_address?e.billing_address.country.toUpperCase():""),a("#billing_state").val("region"in e.billing_address?e.billing_address.region:""),a("#billing_email").change(),a("#billing_email").blur()),"shipping_address"in e)&&null!==e.shipping_address&&(a("#ship-to-different-address-checkbox").prop("checked",!0),a("#shipping_first_name").val("given_name"in e.shipping_address?e.shipping_address.given_name:""),a("#shipping_last_name").val("family_name"in e.shipping_address?e.shipping_address.family_name:""),a("#shipping_company").val("organization_name"in e.shipping_address?e.shipping_address.organization_name:""),a("#shipping_address_1").val("street_address"in e.shipping_address?e.shipping_address.street_address:""),a("#shipping_address_2").val("street_address2"in e.shipping_address?e.shipping_address.street_address2:""),a("#shipping_city").val("city"in e.shipping_address?e.shipping_address.city:""),a("#shipping_postcode").val("postal_code"in e.shipping_address?e.shipping_address.postal_code:""),a("#shipping_country").val("country"in e.shipping_address?e.shipping_address.country.toUpperCase():""),a("#shipping_state").val("region"in e.shipping_address?e.shipping_address.region:""),!0===t.shippingEmailExists&&a("#shipping_email")&&a("#shipping_email").val("email"in e.shipping_address?e.shipping_address.email:""),!0===t.shippingPhoneExists)&&a("#shipping_phone")&&a("#shipping_phone").val("phone"in e.shipping_address?e.shipping_address.phone:"")},checkUrl:function(e){window.location.hash&&-1<window.location.hash.indexOf("#klarna-success")&&(t.logToFile("klarna-success hashtag detected in URL."),e({should_proceed:!0}),clearInterval(t.interval),clearTimeout(t.timeout),t.unblock())},failOrder:function(e,o,i){i({should_proceed:!1,message:a(o).text().trim()}),t.validation=!1;i=kco_params.pay_for_order?"div.woocommerce-notices-wrapper":"form.checkout";a("body").trigger("update_checkout"),a(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove(),a(i).prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">'+o+"</div>"),a(i).removeClass("processing").unblock(),a(i).find(".input-text, select, input:checkbox").trigger("validate").blur(),a(document.body).trigger("checkout_error",[o])},logToFile:function(e){a.ajax({url:kco_params.log_to_file_url,type:"POST",dataType:"json",data:{message:e,nonce:kco_params.log_to_file_nonce}})},log:function(...e){kco_params.logging&&console.log(e)},updateShipping:function(e){t.kcoSuspend(!0),a("#kco_shipping_data").val(JSON.stringify(e)),a("body").trigger("kco_shipping_option_changed",[e]),a("body").trigger("update_checkout")},convertCountry:function(o){return Object.keys(kco_params.countries).find(e=>kco_params.countries[e]===o)},placeKlarnaOrder:function(n){t.getKlarnaOrder().done(function(i){i.success?(a(".woocommerce-checkout-review-order-table").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.ajax({type:"POST",url:kco_params.submit_order,data:a("form.checkout").serialize(),dataType:"json",success:function(o){try{if("success"!==o.result)throw"Result failed";{let e="N/A";("billing_address"in i.data&&"email"in i.data.billing_address||"shipping_address"in i.data&&"email"in i.data.shipping_address)&&(e=i.data.shipping_address.email),t.logToFile("Successfully placed order ["+e+']. Sending "should_proceed: true" to Klarna'),n({should_proceed:!0})}}catch(e){o.messages?(t.logToFile("Checkout error | "+o.messages),t.failOrder("submission",o.messages,n)):(t.logToFile("Checkout error | No message"),t.failOrder("submission",'<div class="woocommerce-error">Checkout error</div>',n))}},error:function(e){try{t.logToFile("AJAX error | "+JSON.stringify(e))}catch(e){t.logToFile("AJAX error | Failed to parse error message.")}t.failOrder("ajax-error",'<div class="woocommerce-error">Internal Server Error</div>',n)}})):t.failOrder("get_order",'<div class="woocommerce-error">Failed to get the order from Klarna.</div>',n),t.validation=!1})},update_checkout:a.Callbacks("unique stopOnFalse"),init:function(){"yes"!==kco_params.is_order_received_page&&(a(document).ready(t.documentReady),t.bodyEl.on("update_checkout",function(){t.kcoSuspend(!0)}),t.bodyEl.on("updated_checkout",t.kcoResume),t.bodyEl.on("updated_checkout",t.maybeDisplayShippingPrice),t.bodyEl.on("change","input.qty",t.updateCart),t.bodyEl.on("change",'input[name="payment_method"]',t.maybeChangeToKco),t.bodyEl.on("click",t.selectAnotherSelector,t.changeFromKco),t.update_checkout.add(function(){return t.log("fire update_checkout"),a("form.checkout").trigger("update_checkout"),!1}),"function"==typeof window._klarnaCheckout)&&window._klarnaCheckout(function(e){e.on({shipping_address_change:function(e){t.log("shipping_address_change",e);var o=t.convertCountry(e.country.toUpperCase());"billing_only"===kco_params.woocommerce_ship_to_destination?("given_name"in e&&a("#billing_first_name").val(e.given_name),"family_name"in e&&a("#billing_last_name").val(e.family_name),"postal_code"in e&&a("#billing_postcode").val(e.postal_code),"country"in e&&a("#billing_country").val(o),"email"in e&&a("#billing_email").val(e.email),a("#billing_country").change(),a("#billing_email").change(),a("#billing_email").blur(),t.update_checkout.fire()):(a("#ship-to-different-address-checkbox").prop("checked",!0),a("#ship-to-different-address-checkbox").change(),a("#ship-to-different-address-checkbox").blur(),"given_name"in e&&a("#shipping_first_name").val(e.given_name),"family_name"in e&&a("#shipping_last_name").val(e.family_name),"postal_code"in e&&a("#shipping_postcode").val(e.postal_code),"country"in e&&a("#shipping_country").val(o),a("#shipping_country").change(),a("form.checkout").trigger("update_checkout"))},billing_address_change:function(e){t.log("billing_address_change",e);var o=t.convertCountry(e.country.toUpperCase());"given_name"in e&&a("#billing_first_name").val(e.given_name),"family_name"in e&&a("#billing_last_name").val(e.family_name),"postal_code"in e&&a("#billing_postcode").val(e.postal_code),"country"in e&&a("#billing_country").val(o),"email"in e&&a("#billing_email").val(e.email),a("#billing_country").change(),a("#billing_email").change(),a("#billing_email").blur(),t.update_checkout.fire()},change:function(e){t.log("change",e)},order_total_change:function(e){t.log("order_total_change",e)},shipping_option_change:function(e){t.log("shipping_option_change",e),t.log(e),t.updateShipping(e)},can_not_complete_order:function(e){t.log("can_not_complete_order",e)},validation_callback:function(e,o){t.validation=!0,t.logToFile("validation_callback from Klarna triggered"),kco_params.pay_for_order?o({should_proceed:!0}):t.placeKlarnaOrder(o)},customer:function(e){e="person"===e.type?"b2c":"b2b";a.ajax({url:kco_params.customer_type_changed_url,type:"POST",data:{customer_type:e}})}})})}};t.init()});