jQuery(function(o){if(typeof wcboost_wishlist_fragments_params==="undefined"){return false}var n=true,d=wcboost_wishlist_fragments_params.hash_name;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);o(document.body).on("wishlist_fragments_refresh wishlist_updated",{wishlistFragmentsHandler:this},this.refreshFragments).on("wishlist_fragments_refreshed wishlist_item_added wishlist_item_removed",{wishlistFragmentsHandler:this},this.updateStorage).on("added_to_wishlist removed_from_wishlist",{wishlistFragmentsHandler:this},this.updateFragmentsOnChanges).on("wishlist_storage_updated",{wishlistFragmentsHandler:this},this.updateButtons);o(window).on("storage onstorage",function(t){if(d===t.originalEvent.key&&localStorage.getItem(d)!==sessionStorage.getItem(d)){o(document.body).trigger("wishlist_fragments_refresh")}});if("yes"===wcboost_wishlist_fragments_params.refresh_on_load){o(document.body).trigger("wishlist_fragments_refresh")}else{o(window).on("pageshow",function(t){if(t.originalEvent.persisted){o(document.body).trigger("wishlist_fragments_refresh",[true])}});try{var s=sessionStorage.getItem(d),e=Cookies.get("wcboost_wishlist_hash");if(s!==null&&s!==""&&s===e){this.updateFragmentsFromStorage();this.updateButtons()}else{throw"No wishlist fragment"}}catch(t){this.refreshFragments()}}var i="undefined"!==typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&wp.customize.widgetsPreview&&wp.customize.widgetsPreview.WidgetPartial;if(i){wp.customize.selectiveRefresh.bind("partial-content-rendered",function(){t.refreshFragments()})}};t.prototype.refreshFragments=function(t,s,e){var i=t?t.data.wishlistFragmentsHandler:this;var r={time:(new Date).getTime()};if("yes"===wcboost_wishlist_fragments_params.refresh_on_load||s){r.product_ids=i.getProductIds()}o.post({url:woocommerce_params.wc_ajax_url.toString().replace("%%endpoint%%","get_wishlist_fragments"),data:r,dataType:"json",timeout:wcboost_wishlist_fragments_params.request_timeout,success:function(t){if(!t.success){o(document.body).trigger("wishlist_fragments_failed");return}i.updateFragments(t.data.fragments);o(document.body).trigger("wishlist_fragments_refreshed",[t.data,e])},error:function(){o(document.body).trigger("wishlish_fragments_ajax_error")}})};t.prototype.getProductIds=function(){var e=[];o(".wcboost-wishlist-button").each(function(t,s){e.push(s.dataset.product_id)});return e};t.prototype.updateFragmentsOnChanges=function(t,s,e){var i=t.data.wishlistFragmentsHandler;i.updateFragments(e);if(!s&&!n){i.refreshFragments(t,true)}};t.prototype.updateFragmentsFromStorage=function(){if(!n){return}var t=sessionStorage.getItem(d);if(!t){return}var s=t.split("::"),e=s[0];if(e){var i=JSON.parse(sessionStorage.getItem("wcboost_wishlist_fragments_"+e));if(i!==null){this.updateFragments(i)}}else{this.refreshFragments()}};t.prototype.updateStorage=function(t,s,e){if(!n){return}var i=s.wishlist_hash?s.wishlist_hash:"";sessionStorage.setItem(d,i);localStorage.setItem(d,i);if(i){var r=i.split("::"),a=r[0];if(s.wishlist_items){sessionStorage.setItem("wcboost_wishlist_"+a,JSON.stringify(s.wishlist_items))}if(s.fragments){sessionStorage.setItem("wcboost_wishlist_fragments_"+a,JSON.stringify(s.fragments))}o(document.body).trigger("wishlist_storage_updated")}};t.prototype.updateFragments=function(t){o.each(t,function(t,s){o(t).replaceWith(s)});o(document.body).trigger("wishlist_fragments_loaded")};t.prototype.updateButtons=function(t){if(!n){return}var s=sessionStorage.getItem(d);if(!s){return}var e=s.split("::"),i=e[0];if(!i){return}var r=JSON.parse(sessionStorage.getItem("wcboost_wishlist_"+i));if(r===null){return}var a=t?t.data.wishlistFragmentsHandler:this;o(".wcboost-wishlist-button").each(function(){var t=this.dataset.product_id,s=r[t]?r[t]:null;a.updateButtonStatus(this,s);if(this.dataset.variations){a.updateButtonVariations(this,r)}})};t.prototype.updateButtonStatus=function(t,s){var e=o(t);if(!e.length){return}if(s){if(e.hasClass("added")){return}e.removeClass("loading").addClass("added");switch(wcboost_wishlist_params.exists_item_behavior){case"view_wishlist":e.attr("href",s.wishlist_url?s.wishlist_url:wcboost_wishlist_params.wishlist_url);e.find(".wcboost-wishlist-button__text").text(wcboost_wishlist_params.i18n_view_wishlist);e.find(".wcboost-wishlist-button__icon").html(wcboost_wishlist_params.icon_filled);break;case"remove":e.attr("href",s.remove_url);e.find(".wcboost-wishlist-button__text").text(wcboost_wishlist_params.i18n_remove_from_wishlist);e.find(".wcboost-wishlist-button__icon").html(wcboost_wishlist_params.icon_filled);break;case"hide":e.hide();break}}else{if(!e.hasClass("added")&&!e.hasClass("loading")){return}e.removeClass("added loading");e.attr("href","?add-to-wishlist="+e.data("product_id"));e.find(".wcboost-wishlist-button__text").text(wcboost_wishlist_params.i18n_add_to_wishlist);e.find(".wcboost-wishlist-button__icon").html(wcboost_wishlist_params.icon_normal)}};t.prototype.updateButtonVariations=function(t,s){var e=o(t);if(!e.length||!e.data("variations")){return}var i=e.data("variations");for(var r in i){i[r]=o.extend({},i[r],{added:s[i[r].variation_id]===undefined?"no":"yes"})}e.data("variations",i)};new t});