jQuery(function(c){if(typeof wcboost_products_compare_fragments_params==="undefined"){return false}var n=true,p=wcboost_products_compare_fragments_params.hash_key;try{n="sessionStorage"in window&&window.sessionStorage!==null;window.sessionStorage.setItem("wcboost","test");window.sessionStorage.removeItem("wcboost");window.localStorage.setItem("wcboost","test");window.localStorage.removeItem("wcboost")}catch(t){n=false}var t=function(){var t=this;this.updateFragments=this.updateFragments.bind(this);this.getProductIds=this.getProductIds.bind(this);c(document.body).on("products_compare_fragments_refresh products_compare_list_updated",{productsCompareFragments:t},t.refreshFragments).on("products_compare_fragments_refreshed wcboost_compare_item_added wcboost_compare_item_removed",{productsCompareFragments:this},this.updateStorage).on("added_to_compare removed_from_compare",{productsCompareFragments:t},t.updateFragmentsOnChanges).on("wcboost_compare_storage_updated",{productsCompareFragments:t},t.updateButtons);if("yes"===wcboost_products_compare_fragments_params.refresh_on_load){c(document.body).trigger("products_compare_fragments_refresh")}else{c(window).on("pageshow",function(t){if(t.originalEvent.persisted){c(document.body).trigger("products_compare_fragments_refresh",[true])}});if(n){c(window).on("storage onstorage",function(t){if(p===t.originalEvent.key&&localStorage.getItem(p)!==sessionStorage.getItem(p)){c(document.body).trigger("products_compare_fragments_refresh")}});try{var e=JSON.parse(sessionStorage.getItem(wcboost_products_compare_fragments_params.fragment_name)),o=sessionStorage.getItem(p),r=Cookies.get("wcboost_compare_hash"),s=localStorage.getItem(p);if(e!==null&&o===s&&o===r){this.updateFragments(e);this.updateButtons()}else{throw"No compare fragment"}}catch(t){this.refreshFragments()}}else{this.refreshFragments()}}var a="undefined"!==typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&wp.customize.widgetsPreview&&wp.customize.widgetsPreview.WidgetPartial;if(a){wp.customize.selectiveRefresh.bind("partial-content-rendered",function(){t.refreshFragments()})}};t.prototype.refreshFragments=function(t,e){var o=t?t.data.productsCompareFragments:this;var r={time:(new Date).getTime()};if("yes"===wcboost_products_compare_fragments_params.refresh_on_load||e){r.product_button_ids=o.getProductIds()}c.post({url:woocommerce_params.wc_ajax_url.toString().replace("%%endpoint%%","get_compare_fragments"),data:r,dataType:"json",timeout:wcboost_products_compare_fragments_params.request_timeout,success:function(t){if(!t.success){c(document.body).trigger("products_compare_fragments_failed");return}o.updateFragments(t.data.fragments);c(document.body).trigger("products_compare_fragments_refreshed",[t.data])},error:function(){c(document.body).trigger("products_compare_fragments_ajax_error")}})};t.prototype.getProductIds=function(){var o=[];c(".wcboost-products-compare-button").each(function(t,e){o.push(e.dataset.product_id)});return o};t.prototype.updateFragmentsOnChanges=function(t,e,o){var r=t.data.productsCompareFragments;r.updateFragments(o)};t.prototype.updateStorage=function(t,e){if(!n){return}var o=e.compare_hash?e.compare_hash:"";localStorage.setItem(p,o);sessionStorage.setItem(p,o);if(e.compare_items){sessionStorage.setItem(wcboost_products_compare_fragments_params.list_name,JSON.stringify(e.compare_items))}if(e.fragments){sessionStorage.setItem(wcboost_products_compare_fragments_params.fragment_name,JSON.stringify(e.fragments))}c(document.body).trigger("wcboost_compare_storage_updated")};t.prototype.updateButtons=function(t){if(!n){return}var o=t?t.data.productsCompareFragments:this,r=JSON.parse(sessionStorage.getItem(wcboost_products_compare_fragments_params.list_name));if(!r){return}c(".wcboost-products-compare-button").each(function(){var t=this.dataset.product_id,e=r[t]?r[t]:null;o.updateButtonStatus(this,e)})};t.prototype.updateButtonStatus=function(t,e){var o=c(t);if(!o.length){return}if(e){if(o.hasClass("added")){return}o.removeClass("loading").addClass("added");switch(wcboost_products_compare_params.exists_item_behavior){case"view":o.attr("href",wcboost_products_compare_params.page_url);o.find(".wcboost-products-compare-button__text").text(wcboost_products_compare_params.i18n_button_view);o.find(".wcboost-products-compare-button__icon").html(wcboost_products_compare_params.icon_checked);break;case"remove":o.attr("href",e.remove_url);o.find(".wcboost-products-compare-button__text").text(wcboost_products_compare_params.i18n_button_remove);o.find(".wcboost-products-compare-button__icon").html(wcboost_products_compare_params.icon_checked);break;case"popup":o.attr("href",wcboost_products_compare_params.page_url);o.find(".wcboost-products-compare-button__text").text(wcboost_products_compare_params.i18n_button_view);o.find(".wcboost-products-compare-button__icon").html(wcboost_products_compare_params.icon_checked);o.addClass("wcboost-products-compare-button--popup");break;case"hide":o.hide();break}}else{if(!o.hasClass("added")&&!o.hasClass("loading")){return}o.removeClass("added loading");o.attr("href","?add_to_compare="+o.data("product_id"));o.find(".wcboost-products-compare-button__text").text(wcboost_products_compare_params.i18n_button_add);o.find(".wcboost-products-compare-button__icon").html(wcboost_products_compare_params.icon_normal)}};t.prototype.updateFragments=function(t){c.each(t,function(t,e){c(t).replaceWith(e)});c(document.body).trigger("products_compare_fragments_loaded")};new t});