(function($){'use strict';const isAjaxLoad=$('.thegem-te-product-add-to-cart[data-ajax-load="1"]').length>0;const isExternalProduct=$('.product-page__wrapper.product-type-external').length>0;const isGroupedProduct=$('.product-page__wrapper.product-type-grouped').length>0;const isSubscriptionProduct=$('.product-page__wrapper.has-subscription-plans').length>0;const stickyHeaderTemplate=(state)=>{const $stickyTemplate=$('.header-sticky-template')
const isIos=window.gemBrowser.platform.name==='ios'
if(isIos&&state==='show'){$stickyTemplate.css({'visibility':'visible','opacity':'1'})}
if(isIos&&state==='hide'){$stickyTemplate.css({'visibility':'hidden','opacity':'0'})}}
const productScripts={init:function(){productScripts.descriptionTabs();productScripts.productVariables();productScripts.productRating();if(isAjaxLoad){productScripts.ajaxAddToCart();}
productScripts.ajaxAddToWishlist();productScripts.ajaxRemoveFromWishlist();productScripts.prepareWishlistIcons();productScripts.scrollToReviews();productScripts.onResize();},descriptionTabs:()=>{$('.thegem-te-product-tabs').each((i,tab)=>{const $wrapper=$('.product-tabs, .product-accordion, .product-one-by-one',tab);const $tabsNavItems=$('.product-tabs__nav-item',$wrapper);const $accordionNavItems=$('.product-accordion__item-title',$wrapper);const isVerticalTabs=$wrapper.data("type")==='vertical';const activeClassTab='product-tabs__nav-item--active';const activeClassAcc='product-accordion__item--active';const animationLine=($items,$lines)=>{$items.each((i,item)=>{$lines.each((i,line)=>{if(isVerticalTabs){line.style.top=item.offsetTop+'px';line.style.height=item.offsetHeight+'px';}else{line.style.left=item.offsetLeft+'px';line.style.width=item.offsetWidth+'px';}})});};$tabsNavItems.each((i,item)=>{let $activeItems,$activeLines;if($(item).is('.product-tabs__nav-item--active')){$activeItems=$(item);$activeLines=$(item).parents('.product-tabs__nav').find('.product-tabs__nav-slide');setTimeout(()=>{animationLine($activeItems,$activeLines);},50)
setTimeout(()=>{$('.product-tabs__nav-slide').css('opacity','1');},300)}
$(item).on('click',(e)=>{const $self=$(e.currentTarget);const currentAttrValue='[data-id="'+$self.data('id')+'"]';$self.parents('.thegem-te-product-tabs').find('.product-accordion__item-title').removeClass(activeClassAcc).next().hide();$self.parents('.thegem-te-product-tabs').find('.product-accordion__item-title').filter(currentAttrValue).addClass(activeClassAcc).next().show();$self.parents('.thegem-te-product-tabs').find('.product-tabs__nav-item').removeClass(activeClassTab);$self.addClass(activeClassTab);$activeItems=$self;$activeLines=$self.parents('.product-tabs__nav').find('.product-tabs__nav-slide');animationLine($activeItems,$activeLines);if(window.tgpLazyItems!==undefined){window.tgpLazyItems.scrollHandle();}});});$accordionNavItems.each((i,item)=>{$(item).on('click',(e)=>{const $self=$(e.currentTarget);const currentAttrValue='[data-id="'+$self.data('id')+'"]';if($(window).width()<768){setTimeout(()=>{const topPosition=$self.offset().top;$('html, body').animate({scrollTop:topPosition-100},400);},250);}
if($self.is('.product-accordion__item--active')){$self.removeClass(activeClassAcc).next().slideUp(300);return;}
$self.parents('.thegem-te-product-tabs').find('.product-accordion__item-title').removeClass(activeClassAcc).next().slideUp(300);$self.parents('.thegem-te-product-tabs').find('.product-accordion__item-title').filter(currentAttrValue).addClass(activeClassAcc).next().slideDown(300);if(window.tgpLazyItems!==undefined){window.tgpLazyItems.scrollHandle();}});});});},productVariables:()=>{const $formCart=$('form.cart');const $variationForm=$(".variations_form");const $combobox=$(".thegem-combobox");const $reset=$('.reset_variations');let isComboboxInit=false;const combobox=(form)=>{$(".thegem-select",form).each(function(){let template='<div class="thegem-combobox">';template+='<div class="thegem-combobox__trigger">'+$('option:selected',this).text()+'</div>';template+='<div class="thegem-combobox__options">';$(this).find("option").each(function(){template+='<div class="thegem-combobox__options-item" data-value="'+$(this).attr("value")+'">'+$(this).html()+'</div>';});template+='</div></div>';if($(this).parents(".thegem-combobox-wrap").length===0){$(this).wrap('<div class="thegem-combobox-wrap"></div>');}
$(this).after(template);});$(".thegem-combobox__options-item:first-of-type").hover(function(){$(this).parents(".thegem-combobox__options").addClass("hover");},function(){$(this).parents(".thegem-combobox__options").removeClass("hover");});$(".thegem-combobox__trigger",form).on("click",function(e){e.stopPropagation();let $count=$('table.variations tr').length,$table=$('table.variations'),hideIndex=()=>{setTimeout(function(){$('tr, td.value',$table).css('z-index',0);},200);};$('tr, td.value',$table).css('z-index',0);$(this).parents('tr, td.value').css('z-index',$count);if($(this).parents(".thegem-combobox.opened").length!=0){$(".thegem-combobox").removeClass("opened");hideIndex();return;}
$('html').one('click',function(){$(".thegem-combobox").removeClass("opened");hideIndex();return;});$(".thegem-combobox").removeClass("opened");$(this).parents(".thegem-combobox").toggleClass("opened");});$(".thegem-combobox__options-item",form).on("click",function(){$(this).parents(".thegem-combobox-wrap").find("select").val($(this).data("value")).change();$(this).parents(".thegem-combobox__options").find(".thegem-combobox__options-item").removeClass("selection");$(this).addClass("selection");$(this).parents(".thegem-combobox").removeClass("opened");$(this).parents(".thegem-combobox").find(".thegem-combobox__trigger").text($(this).text());});};const comboboxInit=(form)=>{var $form=$(form);if(!isComboboxInit){setTimeout(function(){combobox($form);isComboboxInit=true;},250);}};const comboboxRefresh=(form)=>{if(isComboboxInit){combobox($(form));$(".thegem-combobox-wrap",$(form)).find(".thegem-combobox:last-of-type").remove();}};const updateProductDataFromVariations=(form)=>{const $skuWrap=$(".thegem-te-product-sku .product-sku__list")
const defaultSku=$(".thegem-te-product-sku .product-sku").data('sku')
const $weightWrap=$(".thegem-te-product-tabs .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value")
const defaultWeight=$weightWrap.html()
const $dimensionsWrap=$(".thegem-te-product-tabs .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value")
const defaultDimensions=$dimensionsWrap.html()
$(form).on('change',function(){const $self=$(this);const variationID=$('input[name=variation_id]',$self).val()
const variations=JSON.parse($self.attr("data-product_variations"));if(variations&&(variationID&&variationID!==undefined)){for(const i in variations){if(variations[i].variation_id==variationID){const sku=variations[i].sku;const weight=variations[i].weight_html;const dimensions=variations[i].dimensions_html;$skuWrap.html(sku);$weightWrap.html(weight);$dimensionsWrap.html(dimensions);}}}else{$skuWrap.html(defaultSku);$weightWrap.html(defaultWeight);$dimensionsWrap.html(defaultDimensions);}})}
$variationForm.each(function(i,form){let $clearSelection=$('.product-page__reset-variations');setTimeout(()=>{$clearSelection.removeClass('hidden');},1000);comboboxInit(this);updateProductDataFromVariations(form);});$('div.quantity:not(.buttons_added)',$formCart).addClass('buttons_added').append('<button type="button" class="plus" >+</button>').prepend('<button type="button" class="minus" >-</button>');$reset.on('click',function(){$variationForm.each(function(i,form){$(this).on('change','.variations select',function(){comboboxRefresh(this);let text=$('.thegem-combobox__options-item').eq(0).text();$combobox.find('.thegem-combobox__trigger').text(text);});});});$variationForm.on('woocommerce_update_variation_values',function(){comboboxRefresh(this);let text=$('.thegem-combobox__options-item').eq(0).text();$combobox.find('.thegem-combobox__trigger').text(text);});if(window.history.replaceState){window.history.replaceState(null,null,window.location.href);}},productRating:()=>{$(document).on('click mouseenter','.woocommerce-Reviews .stars a',function(e){$(this).prevAll().andSelf().addClass('rating-on');$(this).nextAll().removeClass('rating-on');}).on('mouseleave','.woocommerce-Reviews .stars',function(e){$(this).find('a').removeClass('rating-on');if($(this).hasClass('selected')){$(this).find('a.active').prevAll().andSelf().addClass('rating-on');}});},ajaxAddToCart:()=>{const $wrapper=$('.thegem-te-product-add-to-cart');$wrapper.on('click','.single_add_to_cart_button',function(e,fragments,cart_hash){e.preventDefault();$('.thegem-popup-notification').removeClass('show');const $thisButton=$(this);const $form=$thisButton.closest('form');const data={};$form.serializeArray().forEach(el=>{data[el.name]=el.value});data['action']='thegem_ajax_add_to_cart';data['product_id']=data.product_id?data.product_id:$thisButton.val();data['add-to-cart']=data['add-to-cart']?data['add-to-cart']:data.product_id;let variation_check=true
const variationId=$form.find('input[name=variation_id]').val()||0
if($form.find('input[name=variation_id]').length>0&&$form.data('product_variations')){$form.data('product_variations').forEach(variation=>{if(variationId==0||(variation.variation_id==variationId&&!variation.is_in_stock)){variation_check=false}})}
if(!variation_check)return false;$(document.body).trigger('adding_to_cart',[$thisButton,data]);$.ajax({type:'post',url:wc_add_to_cart_params.ajax_url,data:data,success:function(response){if(response.error&&response.product_url){window.location=response.product_url;return;}else{if(response.success){const $addToCartTarget=$('.thegem-popup-notification-wrap',$wrapper);if($addToCartTarget){$('.thegem-popup-notification',$addToCartTarget).removeClass('show');const $cartPopupAdd=$addToCartTarget.find('.thegem-popup-notification.cart');$cartPopupAdd.addClass('show');stickyHeaderTemplate('hide')
setTimeout(function(){$cartPopupAdd.removeClass('show');stickyHeaderTemplate('show')},$cartPopupAdd.data('timing'));}
$(document.body).trigger('added_to_cart',[response.fragments,response.cart_hash,$thisButton]);$('.added_to_cart').hide();}else{if(response.notices&&$('.woocommerce-notices-wrapper').length){$('.woocommerce-notices-wrapper').eq(0).html(response.notices);var noticesPosition=$('.woocommerce-notices-wrapper').eq(0).offset().top;$('html, body').stop().animate({scrollTop:noticesPosition-100},500,'swing');}}}},});return false;});},ajaxAddToWishlist:()=>{const $wrapperCart=$('.thegem-te-product-add-to-cart');const $wrapperWishlist=$('.thegem-te-product-add-to-wishlist');const initNotificationPopup=(wrapper)=>{const $wishlistTarget=$('.thegem-popup-notification-wrap',wrapper);$('.thegem-popup-notification').removeClass('show');if($wishlistTarget){$('.thegem-popup-notification',$wishlistTarget).removeClass('show');const $wishlistPopupAdd=$wishlistTarget.find('.thegem-popup-notification.wishlist-add');$wishlistPopupAdd.addClass('show');stickyHeaderTemplate('hide')
setTimeout(function(){$wishlistPopupAdd.removeClass('show');stickyHeaderTemplate('show')},$wishlistPopupAdd.data('timing'));}}
$wrapperCart.on('click','.add_to_wishlist',function(){initNotificationPopup($wrapperCart)});$wrapperWishlist.on('click','.add_to_wishlist',function(){initNotificationPopup($wrapperWishlist)});},ajaxRemoveFromWishlist:()=>{const $wrapperCart=$('.thegem-te-product-add-to-cart');const $wrapperWishlist=$('.thegem-te-product-add-to-wishlist');const initNotificationPopup=(wrapper)=>{const $wishlistTarget=$('.thegem-popup-notification-wrap',wrapper);$('.thegem-popup-notification').removeClass('show');if($wishlistTarget){$('.thegem-popup-notification',$wishlistTarget).removeClass('show');const $wishlistPopupRemove=$wishlistTarget.find('.thegem-popup-notification.wishlist-remove');$wishlistPopupRemove.addClass('show');stickyHeaderTemplate('hide')
setTimeout(function(){$wishlistPopupRemove.removeClass('show');stickyHeaderTemplate('show')},$wishlistPopupRemove.data('timing'));}}
$wrapperCart.on('click','.remove_from_wishlist',function(e,fragments,cart_hash){initNotificationPopup($wrapperCart)});$wrapperWishlist.on('click','.remove_from_wishlist',function(e,fragments,cart_hash){initNotificationPopup($wrapperWishlist)});},prepareWishlistIcons:()=>{$('body').on('added_to_wishlist',function(t,el_wrap){$('.thegem-te-product-add-to-wishlist').each(function(){productScripts.replaceWishlistIcons(this);});});$('body').on('removed_from_wishlist',function(t,el_wrap){$('.thegem-te-product-add-to-wishlist').each(function(){productScripts.replaceWishlistIcons(this);});});},replaceWishlistIcons:(elem)=>{var wishlistAddIcon=elem.querySelector('.yith-wcwl-add-button a i');if(wishlistAddIcon){var addIcon=elem.querySelector('.product-add-to-wishlist-custom-icons .gem-icon-add-to-wishlist');if(addIcon){wishlistAddIcon.outerHTML=addIcon.outerHTML;}
var wlText=elem.querySelector('.product-add-to-wishlist-text span');if(wlText){wlText.innerHTML=wlText.dataset.addText;}}
var wishlistRemoveIcon=elem.querySelector('.yith-wcwl-wishlistexistsremove a i');if(wishlistRemoveIcon){var removeIcon=elem.querySelector('.product-add-to-wishlist-custom-icons .gem-icon-remove-to-wishlist');if(removeIcon){wishlistRemoveIcon.outerHTML=removeIcon.outerHTML;}
var wlText=elem.querySelector('.product-add-to-wishlist-text span');if(wlText){wlText.innerHTML=wlText.dataset.removeText;}}},scrollToReviews:function(){const $trigger=$('.thegem-te-product-rating')
const $wrapper=$('.thegem-te-product-tabs, .thegem-te-product-reviews')
const $sticky=$('.header-sticky-template')[0]
$trigger.on('click','.scroll-to-reviews',function(e){e.preventDefault();try{const offset=$sticky?$sticky.offsetHeight+10:0;const target=$wrapper.offset().top-offset;$(`.product-tabs__nav-item[data-id="reviews"]`,$wrapper).click()
$(`.product-accordion__item-body[data-id="reviews"]`,$wrapper).show()
$('html, body').animate({scrollTop:target},400);}catch(e){}});},onResize:()=>{let resizeTimer;$(window).on('resize',function(e){clearTimeout(resizeTimer);resizeTimer=setTimeout(function(){},250);});},};$(function(){productScripts.init();});})(jQuery);