!function(t){"use strict";t.fn.rtWpVGallery=function(){return this._item=t(this),this._target=this._item.parent(),this._product=this._item.closest(".product"),this._default_gallery_images=[],this._variation_form=this._product.find(".variations_form"),this._product_id=this._variation_form.data("product_id"),this._is_variation_product=!!this._variation_form.length,this._slider=t(".rtwpvg-slider",this._item),this._thumbnail=t(".rtwpvg-thumbnail-slider",this._item),this.initial_load=!0,this.removeLoading=function(){this._item.removeClass("loading-rtwpvg")},this.addLoading=function(){this._item.addClass("loading-rtwpvg")},this.loadDefaultGalleryImages=function(){if(this._is_variation_product){var t=this;wp.ajax.send("rtwpvg_get_default_gallery_images",{data:{product_id:this._product_id},success:function(i){t._default_gallery_images=i,t._item.trigger("rtwpvg_default_gallery_image_loaded")},error:function(i){t._default_gallery_images=[],t._item.trigger("rtwpvg_default_gallery_image_loaded")}})}},this.loadSlider=function(){var i=this;try{this._slider.hasClass("slick-initialized")&&this._slider.slick("unslick")}catch(t){}this._slider.off("init"),this._slider.off("beforeChange"),this._slider.off("afterChange"),this._item.trigger("rtwpvg_before_init"),this._slider.on("init",function(t){i.initial_load&&(i.initial_load=!1)}).on("beforeChange",function(t,e,a,r){i._thumbnail.find(".rtwpvg-thumbnail-image").not(".slick-slide").removeClass("current-thumbnail").eq(r).addClass("current-thumbnail")}).on("afterChange",function(t,e,a){i.loadZoom(a)}).slick(),this._thumbnail.find(".rtwpvg-thumbnail-image").not(".slick-slide").first().addClass("current-thumbnail"),this._thumbnail.find(".rtwpvg-thumbnail-image").not(".slick-slide").each(function(e,a){t(a).find("div, img").on("click touchstart",function(t){t.preventDefault(),t.stopPropagation(),i._slider.slick("slickGoTo",e)})}),setTimeout(function(){i._item.trigger("rtwpvg_slider_init")},1),setTimeout(function(){i.removeLoading()},1)},this.callZoom=function(){var t=this._slider.slick("slickCurrentSlide");this.loadZoom(t)},this.loadZoom=function(i){if(rtwpvg.enable_zoom){var e=parseInt(this._target.width()),a=!1,r=this._slider.slick("getSlick").$slides.eq(i);if(t(r).each(function(i,r){var o=t(r).find("img");if(parseInt(o.data("large_image_width"))>e)return a=!0,!1}),t.fn.zoom&&a){var o=t.extend({touch:!1},wc_single_product_params.zoom_options);"ontouchstart"in document.documentElement&&(o.on="click"),r.trigger("zoom.destroy"),r.zoom(o)}}},this.loadPhotoSwipe=function(){var t=this;rtwpvg.enable_lightbox&&(this._item.off("click",".rtwpvg-trigger"),this._item.on("click",".rtwpvg-trigger",function(i){t.openPhotoSwipe(i)}))},this.openPhotoSwipe=function(i){if(i.preventDefault(),"undefined"==typeof PhotoSwipe)return!1;var e=t(".pswp")[0],a=this.getGalleryItems(),r=t.extend({index:this._slider.slick("slickCurrentSlide")},wc_single_product_params.photoswipe_options);new PhotoSwipe(e,PhotoSwipeUI_Default,a,r).init()},this.getGalleryItems=function(){var i=this._slider.slick("getSlick").$slides,e=[];return i.length>0&&i.each(function(i,a){var r=t(a).find("img, iframe, video"),o=void 0;switch(t(r).prop("tagName").toLowerCase()){case"img":o={src:r.attr("data-large_image"),w:r.attr("data-large_image_width"),h:r.attr("data-large_image_height"),title:r.attr("data-caption")?r.attr("data-caption"):r.attr("title")};break;case"iframe":o={html:''};break;case"video":o={html:''}}e.push(o)}),e},this.destroySlider=function(){this._slider.html(""),this._thumbnail.html("");try{this._slider.hasClass("slick-initialized")&&this._slider.slick("unslick")}catch(t){}this._item.trigger("rtwpvg_slider_destroy")},this.loadGallery=function(t){var i=this,e=t.length>1;this._item.trigger("before_rtwpvg_load",[t]),this.destroySlider();var a=t.map(function(t){return wp.template("rtwpvg-slider-template")(t)}).join(""),r=t.map(function(t){return wp.template("rtwpvg-thumbnail-template")(t)}).join("");this._slider.html(a),e?(this._target.addClass("rtwpvg-has-product-thumbnail"),this._thumbnail.html(r)):(this._target.removeClass("rtwpvg-has-product-thumbnail"),this._thumbnail.html("")),setTimeout(function(){i.imagesLoaded()},1)},this.resetGallery=function(){var t=this;this._default_gallery_images.length>0?this.loadGallery(this._default_gallery_images):setTimeout(function(){t.removeLoading()},1)},this.imagesLoaded=function(){var i=this;if(t.fn.imagesLoaded.done)return this._item.trigger("rtwpvg_image_loading",[i]),void this._item.trigger("rtwpvg_image_loaded",[i]);this._item.imagesLoaded().progress(function(t,e){i._item.trigger("rtwpvg_image_loading",[i])}).done(function(t){i._item.trigger("rtwpvg_image_loaded",[i])})},this.loadVariationGallery=function(){var t=this;this._variation_form.off("reset_image.rtwpvg"),this._variation_form.off("click.rtwpvg"),this._variation_form.off("show_variation.rtwpvg"),rtwpvg.reset_on_variation_change?this._variation_form.on("reset_image.rtwpvg",function(i){t.addLoading(),t.resetGallery()}):this._variation_form.on("click.rtwpvg",".show_variation",function(i){t.addLoading(),t.resetGallery()}),this._variation_form.on("show_variation.rtwpvg",function(i,e){t.addLoading(),t.loadGallery(e.variation_gallery_images)})},this.loadEvents=function(){this._item.on("rtwpvg_image_loaded",this.init.bind(this))},this.init=function(t){var i=this;setTimeout(function(){i.loadSlider(),i.callZoom(),i.loadPhotoSwipe()},1)},this.start=function(){this.loadDefaultGalleryImages(),this.loadEvents(),this.is_variation_product&&(this.loadSlider(),this.callZoom(),this.loadPhotoSwipe()),this.is_variation_product||this.imagesLoaded(),this.loadVariationGallery(),this._variation_form.trigger("reload_product_variations"),t(document).trigger("rtwpvg_loaded")},this.start(),this},t(".rtwpvg-wrapper:not(.rtwpvg-product-type-variable)").rtWpVGallery(),t(document).on("wc_variation_form",".variations_form",function(){t(".rtwpvg-wrapper").rtWpVGallery()}),t(document.body).on("jckqv_open",function(){t(".rtwpvg-wrapper").rtWpVGallery()}),t(document.body).on("post-load",function(){t(".woo-variation-gallery-wrapper").rtWpVGallery()}),t(document).on("qv_loader_stop",function(){t(".rtwpvg-wrapper:not(.rtwpvg-product-type-variable)").rtWpVGallery()})}(jQuery);