layui.define(['laypage', 'fly', 'element'], function(exports) { ! function(e, t) { "use strict"; "object" == typeof module && "object" == typeof module.exports ? module.exports = t(e, document) : "function" == typeof define && define.amd ? define([], function() { return t(e, document) }) : e.plyr = t(e, document) } ("undefined" != typeof window ? window: this, function(e, t) { "use strict"; function n() { var e, n, r, a = navigator.userAgent, s = navigator.appName, o = "" + parseFloat(navigator.appVersion), i = parseInt(navigator.appVersion, 10), l = !1, u = !1, c = !1, d = !1; return navigator.appVersion.indexOf("Windows NT") !== -1 && navigator.appVersion.indexOf("rv:11") !== -1 ? (l = !0, s = "IE", o = "11") : (n = a.indexOf("MSIE")) !== -1 ? (l = !0, s = "IE", o = a.substring(n + 5)) : (n = a.indexOf("Chrome")) !== -1 ? (c = !0, s = "Chrome", o = a.substring(n + 7)) : (n = a.indexOf("Safari")) !== -1 ? (d = !0, s = "Safari", o = a.substring(n + 7), (n = a.indexOf("Version")) !== -1 && (o = a.substring(n + 8))) : (n = a.indexOf("Firefox")) !== -1 ? (u = !0, s = "Firefox", o = a.substring(n + 8)) : (e = a.lastIndexOf(" ") + 1) < (n = a.lastIndexOf("/")) && (s = a.substring(e, n), o = a.substring(n + 1), s.toLowerCase() === s.toUpperCase() && (s = navigator.appName)), (r = o.indexOf(";")) !== -1 && (o = o.substring(0, r)), (r = o.indexOf(" ")) !== -1 && (o = o.substring(0, r)), i = parseInt("" + o, 10), isNaN(i) && (o = "" + parseFloat(navigator.appVersion), i = parseInt(navigator.appVersion, 10)), { name: s, version: i, isIE: l, isFirefox: u, isChrome: c, isSafari: d, isIos: /(iPad|iPhone|iPod)/g.test(navigator.platform), isIphone: /(iPhone|iPod)/g.test(navigator.userAgent), isTouch: "ontouchstart" in t.documentElement } } function r(e, t) { var n = e.media; if ("video" === e.type) switch (t) { case "video/webm": return ! (!n.canPlayType || !n.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/, "")); case "video/mp4": return ! (!n.canPlayType || !n.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, "")); case "video/ogg": return ! (!n.canPlayType || !n.canPlayType('video/ogg; codecs="theora"').replace(/no/, "")) } else if ("audio" === e.type) switch (t) { case "audio/mpeg": return ! (!n.canPlayType || !n.canPlayType("audio/mpeg;").replace(/no/, "")); case "audio/ogg": return ! (!n.canPlayType || !n.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/, "")); case "audio/wav": return ! (!n.canPlayType || !n.canPlayType('audio/wav; codecs="1"').replace(/no/, "")) } return ! 1 } function a(e) { if (!t.querySelectorAll('script[src="' + e + '"]').length) { var n = t.createElement("script"); n.src = e; var r = t.getElementsByTagName("script")[0]; r.parentNode.insertBefore(n, r) } } function s(e, t) { return Array.prototype.indexOf && e.indexOf(t) !== -1 } function o(e, t, n) { return e.replace(new RegExp(t.replace(/([.*+?\^=!:${}()|\[\]\/\\])/g, "\\$1"), "g"), n) } function i(e, t) { e.length || (e = [e]); for (var n = e.length - 1; n >= 0; n--) { var r = n > 0 ? t.cloneNode(!0) : t, a = e[n], s = a.parentNode, o = a.nextSibling; return r.appendChild(a), o ? s.insertBefore(r, o) : s.appendChild(r), r } } function l(e) { e && e.parentNode.removeChild(e) } function u(e, t) { e.insertBefore(t, e.firstChild) } function c(e, t) { for (var n in t) e.setAttribute(n, O.boolean(t[n]) && t[n] ? "": t[n]) } function d(e, n, r) { var a = t.createElement(e); c(a, r), u(n, a) } function p(e) { return e.replace(".", "") } function m(e, t, n) { if (e) if (e.classList) e.classList[n ? "add": "remove"](t); else { var r = (" " + e.className + " ").replace(/\s+/g, " ").replace(" " + t + " ", ""); e.className = r + (n ? " " + t: "") } } function f(e, t) { return !! e && (e.classList ? e.classList.contains(t) : new RegExp("(\\s|^)" + t + "(\\s|$)").test(e.className)) } function y(e, n) { var r = Element.prototype, a = r.matches || r.webkitMatchesSelector || r.mozMatchesSelector || r.msMatchesSelector || function(e) { return [].indexOf.call(t.querySelectorAll(e), this) !== -1 }; return a.call(e, n) } function b(e, t, n, r, a) { g(e, t, function(t) { n && n.apply(e, [t]), r.apply(e, [t]) }, a) } function v(e, t, n, r, a) { var s = t.split(" "); if (O.boolean(a) || (a = !1), e instanceof NodeList) for (var o = 0; o < e.length; o++) e[o] instanceof Node && v(e[o], arguments[1], arguments[2], arguments[3]); else for (var i = 0; i < s.length; i++) e[r ? "addEventListener": "removeEventListener"](s[i], n, a) } function g(e, t, n, r) { e && v(e, t, n, !0, r) } function h(e, t, n, r) { if (e && t) { O.boolean(n) || (n = !1); var a = new CustomEvent(t, { bubbles: n, detail: r }); e.dispatchEvent(a) } } function k(e, t) { if (e) return t = O.boolean(t) ? t: !e.getAttribute("aria-pressed"), e.setAttribute("aria-pressed", t), t } function w(e, t) { return 0 === e || 0 === t || isNaN(e) || isNaN(t) ? 0 : (e / t * 100).toFixed(2) } function x() { var e = arguments; if (e.length) { if (1 === e.length) return e[0]; for (var t = Array.prototype.shift.call(e), n = e.length, r = 0; r < n; r++) { var a = e[r]; for (var s in a) a[s] && a[s].constructor && a[s].constructor === Object ? (t[s] = t[s] || {}, x(t[s], a[s])) : t[s] = a[s] } return t } } function T(e) { var t = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/; return e.match(t) ? RegExp.$2: e } function S(e) { var t = /^.*(vimeo.com\/|video\/)(\d+).*/; return e.match(t) ? RegExp.$2: e } function _() { var e = { supportsFullScreen: !1, isFullScreen: function() { return ! 1 }, requestFullScreen: function() {}, cancelFullScreen: function() {}, fullScreenEventName: "", element: null, prefix: "" }, n = "webkit o moz ms khtml".split(" "); if (O.undefined(t.cancelFullScreen)) for (var r = 0, a = n.length; r < a; r++) { if (e.prefix = n[r], !O.undefined(t[e.prefix + "CancelFullScreen"])) { e.supportsFullScreen = !0; break } if (!O.undefined(t.msExitFullscreen) && t.msFullscreenEnabled) { e.prefix = "ms", e.supportsFullScreen = !0; break } } else e.supportsFullScreen = !0; return e.supportsFullScreen && (e.fullScreenEventName = "ms" === e.prefix ? "MSFullscreenChange": e.prefix + "fullscreenchange", e.isFullScreen = function(e) { switch (O.undefined(e) && (e = t.body), this.prefix) { case "": return t.fullscreenElement === e; case "moz": return t.mozFullScreenElement === e; default: return t[this.prefix + "FullscreenElement"] === e } }, e.requestFullScreen = function(e) { return O.undefined(e) && (e = t.body), "" === this.prefix ? e.requestFullScreen() : e[this.prefix + ("ms" === this.prefix ? "RequestFullscreen": "RequestFullScreen")]() }, e.cancelFullScreen = function() { return "" === this.prefix ? t.cancelFullScreen() : t[this.prefix + ("ms" === this.prefix ? "ExitFullscreen": "CancelFullScreen")]() }, e.element = function() { return "" === this.prefix ? t.fullscreenElement: t[this.prefix + "FullscreenElement"] }), e } function E(v, E) { function A(e, t, n, r) { h(e, t, n, x({}, r, { plyr: Be })) } function j(t, n) { E.debug && e.console && (n = Array.prototype.slice.call(n), O.string(E.logPrefix) && E.logPrefix.length && n.unshift(E.logPrefix), console[t].apply(console, n)) } function V() { return { url: E.iconUrl, absolute: 0 === E.iconUrl.indexOf("http") || Ue.browser.isIE } } function R() { var e = [], t = V(), n = (t.absolute ? "": t.url) + "#" + E.iconPrefix; return s(E.controls, "play-large") && e.push('"), e.push('
'), s(E.controls, "restart") && e.push('"), s(E.controls, "rewind") && e.push('"), s(E.controls, "play") && e.push('", '"), s(E.controls, "fast-forward") && e.push('"), s(E.controls, "progress") && (e.push('', '', '', '', '', "0% " + E.i18n.buffered, ""), E.tooltips.seek && e.push('00:00'), e.push("")), s(E.controls, "current-time") && e.push('', '' + E.i18n.currentTime + "", '00:00', ""), s(E.controls, "duration") && e.push('', '' + E.i18n.duration + "", '00:00', ""), s(E.controls, "mute") && e.push('"), s(E.controls, "volume") && e.push('', '", '', '', ""), s(E.controls, "captions") && e.push('"), s(E.controls, "fullscreen") && e.push('"), e.push("
"), e.join("") } function q() { if (Ue.supported.full && ("audio" !== Ue.type || E.fullscreen.allowAudio) && E.fullscreen.enabled) { var e = N.supportsFullScreen; e || E.fullscreen.fallback && !X() ? (Je((e ? "Native": "Fallback") + " fullscreen enabled"), m(Ue.container, E.classes.fullscreen.enabled, !0)) : Je("Fullscreen not supported and fallback disabled"), Ue.buttons && Ue.buttons.fullscreen && k(Ue.buttons.fullscreen, !1), $() } } function D() { if ("video" === Ue.type) { U(E.selectors.captions) || Ue.videoContainer.insertAdjacentHTML("afterbegin", '
'), Ue.usingTextTracks = !1, Ue.media.textTracks && (Ue.usingTextTracks = !0); for (var e, t = "", n = Ue.media.childNodes, r = 0; r < n.length; r++)"track" === n[r].nodeName.toLowerCase() && (e = n[r].kind, "captions" !== e && "subtitles" !== e || (t = n[r].getAttribute("src"))); if (Ue.captionExists = !0, "" === t ? (Ue.captionExists = !1, Je("No caption track found")) : Je("Caption track found; URI: " + t), Ue.captionExists) { for (var a = Ue.media.textTracks, s = 0; s < a.length; s++) a[s].mode = "hidden"; if (Y(Ue), (Ue.browser.isIE && Ue.browser.version >= 10 || Ue.browser.isFirefox && Ue.browser.version >= 31) && (Je("Detected browser with known TextTrack issues - using manual fallback"), Ue.usingTextTracks = !1), Ue.usingTextTracks) { Je("TextTracks supported"); for (var o = 0; o < a.length; o++) { var i = a[o]; "captions" !== i.kind && "subtitles" !== i.kind || g(i, "cuechange", function() { this.activeCues[0] && "text" in this.activeCues[0] ? H(this.activeCues[0].getCueAsHTML()) : H() }) } } else if (Je("TextTracks not supported so rendering captions manually"), Ue.currentCaption = "", Ue.captions = [], "" !== t) { var l = new XMLHttpRequest; l.onreadystatechange = function() { if (4 === l.readyState) if (200 === l.status) { var e, t = [], n = l.responseText, r = "\r\n"; n.indexOf(r + r) === -1 && (r = n.indexOf("\r\r") !== -1 ? "\r": "\n"), t = n.split(r + r); for (var a = 0; a < t.length; a++) { e = t[a], Ue.captions[a] = []; var s = e.split(r), o = 0; s[o].indexOf(":") === -1 && (o = 1), Ue.captions[a] = [s[o], s[o + 1]] } Ue.captions.shift(), Je("Successfully loaded the caption file via AJAX") } else ze(E.logPrefix + "There was a problem loading the caption file via AJAX") }, l.open("get", t, !0), l.send() } } else m(Ue.container, E.classes.captions.enabled) } } function H(e) { var n = U(E.selectors.captions), r = t.createElement("span"); n.innerHTML = "", O.undefined(e) && (e = ""), O.string(e) ? r.innerHTML = e.trim() : r.appendChild(e), n.appendChild(r); n.offsetHeight } function W(e) { function t(e, t) { var n = []; n = e.split(" --> "); for (var r = 0; r < n.length; r++) n[r] = n[r].replace(/(\d+:\d+:\d+\.\d+).*/, "$1"); return a(n[t]) } function n(e) { return t(e, 0) } function r(e) { return t(e, 1) } function a(e) { if (null === e || void 0 === e) return 0; var t, n = [], r = []; return n = e.split(","), r = n[0].split(":"), t = Math.floor(60 * r[0] * 60) + Math.floor(60 * r[1]) + Math.floor(r[2]) } if (!Ue.usingTextTracks && "video" === Ue.type && Ue.supported.full && (Ue.subcount = 0, e = O.number(e) ? e: Ue.media.currentTime, Ue.captions[Ue.subcount])) { for (; r(Ue.captions[Ue.subcount][0]) < e.toFixed(1);) if (Ue.subcount++, Ue.subcount > Ue.captions.length - 1) { Ue.subcount = Ue.captions.length - 1; break } Ue.media.currentTime.toFixed(1) >= n(Ue.captions[Ue.subcount][0]) && Ue.media.currentTime.toFixed(1) <= r(Ue.captions[Ue.subcount][0]) ? (Ue.currentCaption = Ue.captions[Ue.subcount][1], H(Ue.currentCaption)) : H() } } function Y() { if (Ue.buttons.captions) { m(Ue.container, E.classes.captions.enabled, !0); var e = Ue.storage.captionsEnabled; O.boolean(e) || (e = E.captions.defaultActive), e && (m(Ue.container, E.classes.captions.active, !0), k(Ue.buttons.captions, !0)) } } function B(e) { return Ue.container.querySelectorAll(e) } function U(e) { return B(e)[0] } function X() { try { return e.self !== e.top } catch(e) { return ! 0 } } function $() { function e(e) { 9 === e.which && Ue.isFullscreen && (e.target !== r || e.shiftKey ? e.target === n && e.shiftKey && (e.preventDefault(), r.focus()) : (e.preventDefault(), n.focus())) } var t = B("input:not([disabled]), button:not([disabled])"), n = t[0], r = t[t.length - 1]; g(Ue.container, "keydown", e) } function J(e, t) { if (O.string(t)) d(e, Ue.media, { src: t }); else if (t.constructor === Array) for (var n = t.length - 1; n >= 0; n--) d(e, Ue.media, t[n]) } function z() { if (E.loadSprite) { var e = V(); e.absolute ? (Je("AJAX loading absolute SVG sprite" + (Ue.browser.isIE ? " (due to IE)": "")), C(e.url, "sprite-plyr")) : Je("Sprite will be used as external resource directly") } var n = E.html; Je("Injecting custom controls"), n || (n = R()), n = o(n, "{seektime}", E.seekTime), n = o(n, "{id}", Math.floor(1e4 * Math.random())); var r; if (O.string(E.selectors.controls.container) && (r = t.querySelector(E.selectors.controls.container)), O.htmlElement(r) || (r = Ue.container), r.insertAdjacentHTML("beforeend", n), E.tooltips.controls) for (var a = B([E.selectors.controls.wrapper, " ", E.selectors.labels, " .", E.classes.hidden].join("")), s = a.length - 1; s >= 0; s--) { var i = a[s]; m(i, E.classes.hidden, !1), m(i, E.classes.tooltip, !0) } } function G() { try { return Ue.controls = U(E.selectors.controls.wrapper), Ue.buttons = {}, Ue.buttons.seek = U(E.selectors.buttons.seek), Ue.buttons.play = B(E.selectors.buttons.play), Ue.buttons.pause = U(E.selectors.buttons.pause), Ue.buttons.restart = U(E.selectors.buttons.restart), Ue.buttons.rewind = U(E.selectors.buttons.rewind), Ue.buttons.forward = U(E.selectors.buttons.forward), Ue.buttons.fullscreen = U(E.selectors.buttons.fullscreen), Ue.buttons.mute = U(E.selectors.buttons.mute), Ue.buttons.captions = U(E.selectors.buttons.captions), Ue.progress = {}, Ue.progress.container = U(E.selectors.progress.container), Ue.progress.buffer = {}, Ue.progress.buffer.bar = U(E.selectors.progress.buffer), Ue.progress.buffer.text = Ue.progress.buffer.bar && Ue.progress.buffer.bar.getElementsByTagName("span")[0], Ue.progress.played = U(E.selectors.progress.played), Ue.progress.tooltip = Ue.progress.container && Ue.progress.container.querySelector("." + E.classes.tooltip), Ue.volume = {}, Ue.volume.input = U(E.selectors.volume.input), Ue.volume.display = U(E.selectors.volume.display), Ue.duration = U(E.selectors.duration), Ue.currentTime = U(E.selectors.currentTime), Ue.seekTime = B(E.selectors.seekTime), !0 } catch(e) { return ze("It looks like there is a problem with your controls HTML"), Q(!0), !1 } } function K() { m(Ue.container, E.selectors.container.replace(".", ""), Ue.supported.full) } function Q(e) { e && s(E.types.html5, Ue.type) ? Ue.media.setAttribute("controls", "") : Ue.media.removeAttribute("controls") } function Z(e) { var t = E.i18n.play; if (O.string(E.title) && E.title.length && (t += ", " + E.title, Ue.container.setAttribute("aria-label", E.title)), Ue.supported.full && Ue.buttons.play) for (var n = Ue.buttons.play.length - 1; n >= 0; n--) Ue.buttons.play[n].setAttribute("aria-label", t); O.htmlElement(e) && e.setAttribute("title", E.i18n.frameTitle.replace("{title}", E.title)) } function ee() { var t = null; Ue.storage = {}, L.supported && E.storage.enabled && (e.localStorage.removeItem("plyr-volume"), t = e.localStorage.getItem(E.storage.key), t && (/^\d+(\.\d+)?$/.test(t) ? te({ volume: parseFloat(t) }) : Ue.storage = JSON.parse(t))) } function te(t) { L.supported && E.storage.enabled && (x(Ue.storage, t), e.localStorage.setItem(E.storage.key, JSON.stringify(Ue.storage))) } function ne() { if (!Ue.media) return void ze("No media element found!"); if (Ue.supported.full && (m(Ue.container, E.classes.type.replace("{0}", Ue.type), !0), s(E.types.embed, Ue.type) && m(Ue.container, E.classes.type.replace("{0}", "video"), !0), m(Ue.container, E.classes.stopped, E.autoplay), m(Ue.ontainer, E.classes.isIos, Ue.browser.isIos), m(Ue.container, E.classes.isTouch, Ue.browser.isTouch), "video" === Ue.type)) { var e = t.createElement("div"); e.setAttribute("class", E.classes.videoWrapper), i(Ue.media, e), Ue.videoContainer = e } s(E.types.embed, Ue.type) && re() } function re() { var n, r = t.createElement("div"), s = Ue.type + "-" + Math.floor(1e4 * Math.random()); switch (Ue.type) { case "youtube": n = T(Ue.embedId); break; case "vimeo": n = S(Ue.embedId); break; default: n = Ue.embedId } for (var o = B('[id^="' + Ue.type + '-"]'), i = o.length - 1; i >= 0; i--) l(o[i]); if (m(Ue.media, E.classes.videoWrapper, !0), m(Ue.media, E.classes.embedWrapper, !0), "youtube" === Ue.type) Ue.media.appendChild(r), r.setAttribute("id", s), O.object(e.YT) ? se(n, r) : (a(E.urls.youtube.api), e.onYouTubeReadyCallbacks = e.onYouTubeReadyCallbacks || [], e.onYouTubeReadyCallbacks.push(function() { se(n, r) }), e.onYouTubeIframeAPIReady = function() { e.onYouTubeReadyCallbacks.forEach(function(e) { e() }) }); else if ("vimeo" === Ue.type) if (Ue.supported.full ? Ue.media.appendChild(r) : r = Ue.media, r.setAttribute("id", s), O.object(e.Vimeo)) oe(n, r); else { a(E.urls.vimeo.api); var u = e.setInterval(function() { O.object(e.Vimeo) && (e.clearInterval(u), oe(n, r)) }, 50) } else if ("soundcloud" === Ue.type) { var d = t.createElement("iframe"); d.loaded = !1, g(d, "load", function() { d.loaded = !0 }), c(d, { src: "https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/" + n, id: s }), r.appendChild(d), Ue.media.appendChild(r), e.SC || a(E.urls.soundcloud.api); var p = e.setInterval(function() { e.SC && d.loaded && (e.clearInterval(p), ie.call(d)) }, 50) } } function ae() { Ue.supported.full && (We(), Ye()), Z(U("iframe")) } function se(t, n) { Ue.embed = new e.YT.Player(n.id, { videoId: t, playerVars: { autoplay: E.autoplay ? 1 : 0, controls: Ue.supported.full ? 0 : 1, rel: 0, showinfo: 0, iv_load_policy: 3, cc_load_policy: E.captions.defaultActive ? 1 : 0, cc_lang_pref: "en", wmode: "transparent", modestbranding: 1, disablekb: 1, origin: "*" }, events: { onError: function(e) { A(Ue.container, "error", !0, { code: e.data, embed: e.target }) }, onReady: function(t) { var n = t.target; Ue.media.play = function() { n.playVideo(), Ue.media.paused = !1 }, Ue.media.pause = function() { n.pauseVideo(), Ue.media.paused = !0 }, Ue.media.stop = function() { n.stopVideo(), Ue.media.paused = !0 }, Ue.media.duration = n.getDuration(), Ue.media.paused = !0, Ue.media.currentTime = 0, Ue.media.muted = n.isMuted(), E.title = n.getVideoData().title, Ue.supported.full && Ue.media.querySelector("iframe").setAttribute("tabindex", "-1"), ae(), A(Ue.media, "timeupdate"), A(Ue.media, "durationchange"), e.clearInterval(Xe.buffering), Xe.buffering = e.setInterval(function() { Ue.media.buffered = n.getVideoLoadedFraction(), (null === Ue.media.lastBuffered || Ue.media.lastBuffered < Ue.media.buffered) && A(Ue.media, "progress"), Ue.media.lastBuffered = Ue.media.buffered, 1 === Ue.media.buffered && (e.clearInterval(Xe.buffering), A(Ue.media, "canplaythrough")) }, 200) }, onStateChange: function(t) { var n = t.target; switch (e.clearInterval(Xe.playing), t.data) { case 0: Ue.media.paused = !0, A(Ue.media, "ended"); break; case 1: Ue.media.paused = !1, Ue.media.seeking && A(Ue.media, "seeked"), Ue.media.seeking = !1, A(Ue.media, "play"), A(Ue.media, "playing"), Xe.playing = e.setInterval(function() { Ue.media.currentTime = n.getCurrentTime(), A(Ue.media, "timeupdate") }, 100), Ue.media.duration !== n.getDuration() && (Ue.media.duration = n.getDuration(), A(Ue.media, "durationchange")); break; case 2: Ue.media.paused = !0, A(Ue.media, "pause") } A(Ue.container, "statechange", !1, { code: t.data }) } } }) } function oe(t, n) { Ue.embed = new e.Vimeo.Player(n, { id: parseInt(t), loop: E.loop, autoplay: E.autoplay, byline: !1, portrait: !1, title: !1 }), Ue.media.play = function() { Ue.embed.play(), Ue.media.paused = !1 }, Ue.media.pause = function() { Ue.embed.pause(), Ue.media.paused = !0 }, Ue.media.stop = function() { Ue.embed.stop(), Ue.media.paused = !0 }, Ue.media.paused = !0, Ue.media.currentTime = 0, ae(), Ue.embed.getCurrentTime().then(function(e) { Ue.media.currentTime = e, A(Ue.media, "timeupdate") }), Ue.embed.getDuration().then(function(e) { Ue.media.duration = e, A(Ue.media, "durationchange") }), Ue.embed.on("loaded", function() { O.htmlElement(Ue.embed.element) && Ue.supported.full && Ue.embed.element.setAttribute("tabindex", "-1") }), Ue.embed.on("play", function() { Ue.media.paused = !1, A(Ue.media, "play"), A(Ue.media, "playing") }), Ue.embed.on("pause", function() { Ue.media.paused = !0, A(Ue.media, "pause") }), Ue.embed.on("timeupdate", function(e) { Ue.media.seeking = !1, Ue.media.currentTime = e.seconds, A(Ue.media, "timeupdate") }), Ue.embed.on("progress", function(e) { Ue.media.buffered = e.percent, A(Ue.media, "progress"), 1 === parseInt(e.percent) && A(Ue.media, "canplaythrough") }), Ue.embed.on("seeked", function() { Ue.media.seeking = !1, A(Ue.media, "seeked"), A(Ue.media, "play") }), Ue.embed.on("ended", function() { Ue.media.paused = !0, A(Ue.media, "ended") }) } function ie() { Ue.embed = e.SC.Widget(this), Ue.embed.bind(e.SC.Widget.Events.READY, function() { Ue.media.play = function() { Ue.embed.play(), Ue.media.paused = !1 }, Ue.media.pause = function() { Ue.embed.pause(), Ue.media.paused = !0 }, Ue.media.stop = function() { Ue.embed.seekTo(0), Ue.embed.pause(), Ue.media.paused = !0 }, Ue.media.paused = !0, Ue.media.currentTime = 0, Ue.embed.getDuration(function(e) { Ue.media.duration = e / 1e3, ae() }), Ue.embed.getPosition(function(e) { Ue.media.currentTime = e, A(Ue.media, "timeupdate") }), Ue.embed.bind(e.SC.Widget.Events.PLAY, function() { Ue.media.paused = !1, A(Ue.media, "play"), A(Ue.media, "playing") }), Ue.embed.bind(e.SC.Widget.Events.PAUSE, function() { Ue.media.paused = !0, A(Ue.media, "pause") }), Ue.embed.bind(e.SC.Widget.Events.PLAY_PROGRESS, function(e) { Ue.media.seeking = !1, Ue.media.currentTime = e.currentPosition / 1e3, A(Ue.media, "timeupdate") }), Ue.embed.bind(e.SC.Widget.Events.LOAD_PROGRESS, function(e) { Ue.media.buffered = e.loadProgress, A(Ue.media, "progress"), 1 === parseInt(e.loadProgress) && A(Ue.media, "canplaythrough") }), Ue.embed.bind(e.SC.Widget.Events.FINISH, function() { Ue.media.paused = !0, A(Ue.media, "ended") }) }) } function le() { "play" in Ue.media && Ue.media.play() } function ue() { "pause" in Ue.media && Ue.media.pause() } function ce(e) { return O.boolean(e) || (e = Ue.media.paused), e ? le() : ue(), e } function de(e) { O.number(e) || (e = E.seekTime), me(Ue.media.currentTime - e) } function pe(e) { O.number(e) || (e = E.seekTime), me(Ue.media.currentTime + e) } function me(e) { var t = 0, n = Ue.media.paused, r = fe(); O.number(e) ? t = e: O.object(e) && s(["input", "change"], e.type) && (t = e.target.value / e.target.max * r), t < 0 ? t = 0 : t > r && (t = r), Ne(t); try { Ue.media.currentTime = t.toFixed(4) } catch(e) {} if (s(E.types.embed, Ue.type)) { switch (Ue.type) { case "youtube": Ue.embed.seekTo(t); break; case "vimeo": Ue.embed.setCurrentTime(t.toFixed(0)); break; case "soundcloud": Ue.embed.seekTo(1e3 * t) } n && ue(), A(Ue.media, "timeupdate"), Ue.media.seeking = !0, A(Ue.media, "seeking") } Je("Seeking to " + Ue.media.currentTime + " seconds"), W(t) } function fe() { var e = parseInt(E.duration), t = 0; return null === Ue.media.duration || isNaN(Ue.media.duration) || (t = Ue.media.duration), isNaN(e) ? t: e } function ye() { m(Ue.container, E.classes.playing, !Ue.media.paused), m(Ue.container, E.classes.stopped, Ue.media.paused), Me(Ue.media.paused) } function be() { P = { x: e.pageXOffset || 0, y: e.pageYOffset || 0 } } function ve() { e.scrollTo(P.x, P.y) } function ge(e) { var n = N.supportsFullScreen; if (n) { if (!e || e.type !== N.fullScreenEventName) return N.isFullScreen(Ue.container) ? N.cancelFullScreen() : (be(), N.requestFullScreen(Ue.container)), void(Ue.isFullscreen = N.isFullScreen(Ue.container)); Ue.isFullscreen = N.isFullScreen(Ue.container) } else Ue.isFullscreen = !Ue.isFullscreen, t.body.style.overflow = Ue.isFullscreen ? "hidden": ""; m(Ue.container, E.classes.fullscreen.active, Ue.isFullscreen), $(Ue.isFullscreen), Ue.buttons && Ue.buttons.fullscreen && k(Ue.buttons.fullscreen, Ue.isFullscreen), A(Ue.container, Ue.isFullscreen ? "enterfullscreen": "exitfullscreen", !0), !Ue.isFullscreen && n && ve() } function he(e) { if (O.boolean(e) || (e = !Ue.media.muted), k(Ue.buttons.mute, e), Ue.media.muted = e, 0 === Ue.media.volume && ke(E.volume), s(E.types.embed, Ue.type)) { switch (Ue.type) { case "youtube": Ue.embed[Ue.media.muted ? "mute": "unMute"](); break; case "vimeo": case "soundcloud": Ue.embed.setVolume(Ue.media.muted ? 0 : parseFloat(E.volume / E.volumeMax)) } A(Ue.media, "volumechange") } } function ke(e) { var t = E.volumeMax, n = E.volumeMin; if (O.undefined(e) && (e = Ue.storage.volume), (null === e || isNaN(e)) && (e = E.volume), e > t && (e = t), e < n && (e = n), Ue.media.volume = parseFloat(e / t), Ue.volume.display && (Ue.volume.display.value = e), s(E.types.embed, Ue.type)) { switch (Ue.type) { case "youtube": Ue.embed.setVolume(100 * Ue.media.volume); break; case "vimeo": case "soundcloud": Ue.embed.setVolume(Ue.media.volume) } A(Ue.media, "volumechange") } 0 === e ? Ue.media.muted = !0 : Ue.media.muted && e > 0 && he() } function we(e) { var t = Ue.media.muted ? 0 : Ue.media.volume * E.volumeMax; O.number(e) || (e = E.volumeStep), ke(t + e) } function xe(e) { var t = Ue.media.muted ? 0 : Ue.media.volume * E.volumeMax; O.number(e) || (e = E.volumeStep), ke(t - e) } function Te() { var e = Ue.media.muted ? 0 : Ue.media.volume * E.volumeMax; Ue.supported.full && (Ue.volume.input && (Ue.volume.input.value = e), Ue.volume.display && (Ue.volume.display.value = e)), te({ volume: e }), m(Ue.container, E.classes.muted, 0 === e), Ue.supported.full && Ue.buttons.mute && k(Ue.buttons.mute, 0 === e) } function Se(e) { Ue.supported.full && Ue.buttons.captions && (O.boolean(e) || (e = Ue.container.className.indexOf(E.classes.captions.active) === -1), Ue.captionsEnabled = e, k(Ue.buttons.captions, Ue.captionsEnabled), m(Ue.container, E.classes.captions.active, Ue.captionsEnabled), A(Ue.container, Ue.captionsEnabled ? "captionsenabled": "captionsdisabled", !0), te({ captionsEnabled: Ue.captionsEnabled })) } function _e(e) { var t = "waiting" === e.type; clearTimeout(Xe.loading), Xe.loading = setTimeout(function() { m(Ue.container, E.classes.loading, t), Me(t) }, t ? 250 : 0) } function Ee(e) { if (Ue.supported.full) { var t = Ue.progress.played, n = 0, r = fe(); if (e) switch (e.type) { case "timeupdate": case "seeking": if (Ue.controls.pressed) return; n = w(Ue.media.currentTime, r), "timeupdate" === e.type && Ue.buttons.seek && (Ue.buttons.seek.value = n); break; case "playing": case "progress": t = Ue.progress.buffer, n = function() { var e = Ue.media.buffered; return e && e.length ? w(e.end(0), r) : O.number(e) ? 100 * e: 0 } () } Ce(t, n) } } function Ce(e, t) { if (Ue.supported.full) { if (O.undefined(t) && (t = 0), O.undefined(e)) { if (!Ue.progress || !Ue.progress.buffer) return; e = Ue.progress.buffer } O.htmlElement(e) ? e.value = t: e && (e.bar && (e.bar.value = t), e.text && (e.text.innerHTML = t)) } } function Fe(e, t) { if (t) { isNaN(e) && (e = 0), Ue.secs = parseInt(e % 60), Ue.mins = parseInt(e / 60 % 60), Ue.hours = parseInt(e / 60 / 60 % 60); var n = parseInt(fe() / 60 / 60 % 60) > 0; Ue.secs = ("0" + Ue.secs).slice( - 2), Ue.mins = ("0" + Ue.mins).slice( - 2), t.innerHTML = (n ? Ue.hours + ":": "") + Ue.mins + ":" + Ue.secs } } function Ae() { if (Ue.supported.full) { var e = fe() || 0; ! Ue.duration && E.displayDuration && Ue.media.paused && Fe(e, Ue.currentTime), Ue.duration && Fe(e, Ue.duration), Pe() } } function Ie(e) { Fe(Ue.media.currentTime, Ue.currentTime), e && "timeupdate" === e.type && Ue.media.seeking || Ee(e) } function Ne(e) { O.number(e) || (e = 0); var t = fe(), n = w(e, t); Ue.progress && Ue.progress.played && (Ue.progress.played.value = n), Ue.buttons && Ue.buttons.seek && (Ue.buttons.seek.value = n) } function Pe(e) { var t = fe(); if (E.tooltips.seek && Ue.progress.container && 0 !== t) { var n = Ue.progress.container.getBoundingClientRect(), r = 0, a = E.classes.tooltip + "--visible"; if (e) r = 100 / n.width * (e.pageX - n.left); else { if (!f(Ue.progress.tooltip, a)) return; r = Ue.progress.tooltip.style.left.replace("%", "") } r < 0 ? r = 0 : r > 100 && (r = 100), Fe(t / 100 * r, Ue.progress.tooltip), Ue.progress.tooltip.style.left = r + "%", e && s(["mouseenter", "mouseleave"], e.type) && m(Ue.progress.tooltip, a, "mouseenter" === e.type) } } function Me(t) { if (E.hideControls && "audio" !== Ue.type) { var n = 0, r = !1, a = t, o = f(Ue.container, E.classes.loading); if (O.boolean(t) || (t && t.type ? (r = "enterfullscreen" === t.type, a = s(["mousemove", "touchstart", "mouseenter", "focus"], t.type), s(["mousemove", "touchmove"], t.type) && (n = 2e3), "focus" === t.type && (n = 3e3)) : a = f(Ue.container, E.classes.hideControls)), e.clearTimeout(Xe.hover), a || Ue.media.paused || o) { if (m(Ue.container, E.classes.hideControls, !1), Ue.media.paused || o) return; Ue.browser.isTouch && (n = 3e3) } a && Ue.media.paused || (Xe.hover = e.setTimeout(function() { (!Ue.controls.pressed && !Ue.controls.hover || r) && m(Ue.container, E.classes.hideControls, !0) }, n)) } } function Oe(e) { if (!O.undefined(e)) return void Le(e); var t; switch (Ue.type) { case "youtube": t = Ue.embed.getVideoUrl(); break; case "vimeo": Ue.embed.getVideoUrl.then(function(e) { t = e }); break; case "soundcloud": Ue.embed.getCurrentSound(function(e) { t = e.permalink_url }); break; default: t = Ue.media.currentSrc } return t || "" } function Le(e) { function n() { if (Ue.embed = null, l(Ue.media), "video" === Ue.type && Ue.videoContainer && l(Ue.videoContainer), Ue.container && Ue.container.removeAttribute("class"), "type" in e && (Ue.type = e.type, "video" === Ue.type)) { var n = e.sources[0]; "type" in n && s(E.types.embed, n.type) && (Ue.type = n.type) } switch (Ue.supported = F(Ue.type), Ue.type) { case "video": Ue.media = t.createElement("video"); break; case "audio": Ue.media = t.createElement("audio"); break; case "youtube": case "vimeo": case "soundcloud": Ue.media = t.createElement("div"), Ue.embedId = e.sources[0].src } u(Ue.container, Ue.media), O.boolean(e.autoplay) && (E.autoplay = e.autoplay), s(E.types.html5, Ue.type) && (E.crossorigin && Ue.media.setAttribute("crossorigin", ""), E.autoplay && Ue.media.setAttribute("autoplay", ""), "poster" in e && Ue.media.setAttribute("poster", e.poster), E.loop && Ue.media.setAttribute("loop", "")), m(Ue.container, E.classes.fullscreen.active, Ue.isFullscreen), m(Ue.container, E.classes.captions.active, Ue.captionsEnabled), K(), s(E.types.html5, Ue.type) && J("source", e.sources), ne(), s(E.types.html5, Ue.type) && ("tracks" in e && J("track", e.tracks), Ue.media.load()), (s(E.types.html5, Ue.type) || s(E.types.embed, Ue.type) && !Ue.supported.full) && (We(), Ye()), E.title = e.title, Z() } return O.object(e) && "sources" in e && e.sources.length ? (m(Ue.container, E.classes.ready, !1), ue(), Ne(), Ce(), qe(), void De(n, !1)) : void ze("Invalid source format") } function je(e) { "video" === Ue.type && Ue.media.setAttribute("poster", e) } function Ve() { function n() { var e = ce(), t = Ue.buttons[e ? "play": "pause"], n = Ue.buttons[e ? "pause": "play"]; if (n = n && n.length > 1 ? n[n.length - 1] : n[0]) { var r = f(t, E.classes.tabFocus); setTimeout(function() { n.focus(), r && (m(t, E.classes.tabFocus, !1), m(n, E.classes.tabFocus, !0)) }, 100) } } function r() { var e = t.activeElement; return e = e && e !== t.body ? t.querySelector(":focus") : null } function a(e) { return e.keyCode ? e.keyCode: e.which } function o(e) { for (var t in Ue.buttons) { var n = Ue.buttons[t]; if (O.nodeList(n)) for (var r = 0; r < n.length; r++) m(n[r], E.classes.tabFocus, n[r] === e); else m(n, E.classes.tabFocus, n === e) } } function i(e) { function t() { var e = Ue.media.duration; O.number(e) && me(e / 10 * (n - 48)) } var n = a(e), r = "keydown" === e.type, o = r && n === u; if (O.number(n)) if (r) { var i = [48, 49, 50, 51, 52, 53, 54, 56, 57, 32, 75, 38, 40, 77, 39, 37, 70, 67]; switch (s(i, n) && (e.preventDefault(), e.stopPropagation()), n) { case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: o || t(); break; case 32: case 75: o || ce(); break; case 38: we(); break; case 40: xe(); break; case 77: o || he(); break; case 39: pe(); break; case 37: de(); break; case 70: ge(); break; case 67: o || Se() } ! N.supportsFullScreen && Ue.isFullscreen && 27 === n && ge(), u = n } else u = null } var l = Ue.browser.isIE ? "change": "input"; if (E.keyboardShorcuts.focused) { var u = null; E.keyboardShorcuts.global && g(e, "keydown keyup", function(e) { var t = a(e), n = r(), o = [48, 49, 50, 51, 52, 53, 54, 56, 57, 75, 77, 70, 67], l = I().length; 1 !== l || !s(o, t) || O.htmlElement(n) && y(n, E.selectors.editable) || i(e) }), g(Ue.container, "keydown keyup", i) } g(e, "keyup", function(e) { var t = a(e), n = r(); 9 === t && o(n) }), g(t.body, "click", function() { m(U("." + E.classes.tabFocus), E.classes.tabFocus, !1) }); for (var c in Ue.buttons) { var d = Ue.buttons[c]; g(d, "blur", function() { m(d, "tab-focus", !1); }) } b(Ue.buttons.play, "click", E.listeners.play, n), b(Ue.buttons.pause, "click", E.listeners.pause, n), b(Ue.buttons.restart, "click", E.listeners.restart, me), b(Ue.buttons.rewind, "click", E.listeners.rewind, de), b(Ue.buttons.forward, "click", E.listeners.forward, pe), b(Ue.buttons.seek, l, E.listeners.seek, me), b(Ue.volume.input, l, E.listeners.volume, function() { ke(Ue.volume.input.value) }), b(Ue.buttons.mute, "click", E.listeners.mute, he), b(Ue.buttons.fullscreen, "click", E.listeners.fullscreen, ge), N.supportsFullScreen && g(t, N.fullScreenEventName, ge), g(Ue.buttons.captions, "click", Se), g(Ue.progress.container, "mouseenter mouseleave mousemove", Pe), E.hideControls && (g(Ue.container, "mouseenter mouseleave mousemove touchstart touchend touchcancel touchmove enterfullscreen", Me), g(Ue.controls, "mouseenter mouseleave", function(e) { Ue.controls.hover = "mouseenter" === e.type }), g(Ue.controls, "mousedown mouseup touchstart touchend touchcancel", function(e) { Ue.controls.pressed = s(["mousedown", "touchstart"], e.type) }), g(Ue.controls, "focus blur", Me, !0)), g(Ue.volume.input, "wheel", function(e) { e.preventDefault(); var t = e.webkitDirectionInvertedFromDevice, n = E.volumeStep / 5; (e.deltaY < 0 || e.deltaX > 0) && (t ? xe(n) : we(n)), (e.deltaY > 0 || e.deltaX < 0) && (t ? we(n) : xe(n)) }) } function Re() { if (g(Ue.media, "timeupdate seeking", Ie), g(Ue.media, "timeupdate", W), g(Ue.media, "durationchange loadedmetadata", Ae), g(Ue.media, "ended", function() { "video" === Ue.type && E.showPosterOnEnd && ("video" === Ue.type && H(), me(), Ue.media.load()) }), g(Ue.media, "progress playing", Ee), g(Ue.media, "volumechange", Te), g(Ue.media, "play pause ended", ye), g(Ue.media, "waiting canplay seeked", _e), E.clickToPlay && "audio" !== Ue.type) { var e = U("." + E.classes.videoWrapper); if (!e) return; e.style.cursor = "pointer", g(e, "click", function() { E.hideControls && Ue.browser.isTouch && !Ue.media.paused || (Ue.media.paused ? le() : Ue.media.ended ? (me(), le()) : ue()) }) } E.disableContextMenu && g(Ue.media, "contextmenu", function(e) { e.preventDefault() }), g(Ue.media, E.events.concat(["keyup", "keydown"]).join(" "), function(e) { A(Ue.container, e.type, !0) }) } function qe() { if (s(E.types.html5, Ue.type)) { for (var e = Ue.media.querySelectorAll("source"), t = 0; t < e.length; t++) l(e[t]); Ue.media.setAttribute("src", "https://cdn.selz.com/plyr/blank.mp4"), Ue.media.load(), Je("Cancelled network requests") } } function De(n, r) { function a() { clearTimeout(Xe.cleanUp), O.boolean(r) || (r = !0), O. function(n) && n.call($e), r && (Ue.init = !1, Ue.container.parentNode.replaceChild($e, Ue.container), t.body.style.overflow = "", A($e, "destroyed", !0)) } if (!Ue.init) return null; switch (Ue.type) { case "youtube": e.clearInterval(Xe.buffering), e.clearInterval(Xe.playing), Ue.embed.destroy(), a(); break; case "vimeo": Ue.embed.unload().then(a), Xe.cleanUp = e.setTimeout(a, 200); break; case "video": case "audio": Q(!0), a() } } function He() { if (Ue.init) return null; if (N = _(), Ue.browser = n(), O.htmlElement(Ue.media)) { ee(); var e = v.tagName.toLowerCase(); "div" === e ? (Ue.type = v.getAttribute("data-type"), Ue.embedId = v.getAttribute("data-video-id"), v.removeAttribute("data-type"), v.removeAttribute("data-video-id")) : (Ue.type = e, E.crossorigin = null !== v.getAttribute("crossorigin"), E.autoplay = E.autoplay || null !== v.getAttribute("autoplay"), E.loop = E.loop || null !== v.getAttribute("loop")), Ue.supported = F(Ue.type), Ue.supported.basic && (Ue.container = i(v, t.createElement("div")), Ue.container.setAttribute("tabindex", 0), K(), Je("" + Ue.browser.name + " " + Ue.browser.version), ne(), (s(E.types.html5, Ue.type) || s(E.types.embed, Ue.type) && !Ue.supported.full) && (We(), Ye(), Z()), Ue.init = !0) } } function We() { if (!Ue.supported.full) return ze("Basic support only", Ue.type), l(U(E.selectors.controls.wrapper)), l(U(E.selectors.buttons.play)), void Q(!0); var e = !B(E.selectors.controls.wrapper).length; e && z(), G() && (e && Ve(), Re(), Q(), q(), D(), ke(), Te(), Ie(), ye()) } function Ye() { e.setTimeout(function() { A(Ue.media, "ready") }, 0), m(Ue.media, M.classes.setup, !0), m(Ue.container, E.classes.ready, !0), Ue.media.plyr = Be, E.autoplay && le() } var Be, Ue = this, Xe = {}; Ue.media = v; var $e = v.cloneNode(!0), Je = function() { j("log", arguments) }, ze = function() { j("warn", arguments) }; return Je("Config", E), Be = { getOriginal: function() { return $e }, getContainer: function() { return Ue.container }, getEmbed: function() { return Ue.embed }, getMedia: function() { return Ue.media }, getType: function() { return Ue.type }, getDuration: fe, getCurrentTime: function() { return Ue.media.currentTime }, getVolume: function() { return Ue.media.volume }, isMuted: function() { return Ue.media.muted }, isReady: function() { return f(Ue.container, E.classes.ready) }, isLoading: function() { return f(Ue.container, E.classes.loading) }, isPaused: function() { return Ue.media.paused }, on: function(e, t) { return g(Ue.container, e, t), this }, play: le, pause: ue, stop: function() { ue(), me() }, restart: me, rewind: de, forward: pe, seek: me, source: Oe, poster: je, setVolume: ke, togglePlay: ce, toggleMute: he, toggleCaptions: Se, toggleFullscreen: ge, toggleControls: Me, isFullscreen: function() { return Ue.isFullscreen || !1 }, support: function(e) { return r(Ue, e) }, destroy: De }, He(), Ue.init ? Be: null } function C(e, n) { var r = new XMLHttpRequest; if (!O.string(n) || !O.htmlElement(t.querySelector("#" + n))) { var a = t.createElement("div"); a.setAttribute("hidden", ""), O.string(n) && a.setAttribute("id", n), t.body.insertBefore(a, t.body.childNodes[0]), "withCredentials" in r && (r.open("GET", e, !0), r.onload = function() { a.innerHTML = r.responseText }, r.send()) } } function F(e) { var r = n(), a = r.isIE && r.version <= 9, s = r.isIos, o = r.isIphone, i = !!t.createElement("audio").canPlayType, l = !!t.createElement("video").canPlayType, u = !1, c = !1; switch (e) { case "video": u = l, c = u && !a && !o; break; case "audio": u = i, c = u && !a; break; case "vimeo": u = !0, c = !a && !s; break; case "youtube": u = !0, c = !a && !s, s && !o && r.version >= 10 && (c = !0); break; case "soundcloud": u = !0, c = !a && !o; break; default: u = i && l, c = u && !a } return { basic: u, full: c } } function A(e, n) { function r(e, t) { f(t, M.classes.hook) || a.push({ target: e, media: t }) } var a = [], s = [], o = [M.selectors.html5, M.selectors.embed].join(","); if (O.string(e) ? e = t.querySelectorAll(e) : O.htmlElement(e) ? e = [e] : O.nodeList(e) || O.array(e) || O.string(e) || (O.undefined(n) && O.object(e) && (n = e), e = t.querySelectorAll(o)), O.nodeList(e) && (e = Array.prototype.slice.call(e)), !F().basic || !e.length) return ! 1; for (var i = 0; i < e.length; i++) { var l = e[i], u = l.querySelectorAll(o); if (u.length) for (var c = 0; c < u.length; c++) r(l, u[c]); else y(l, o) && r(l, l) } return a.forEach(function(e) { var t = e.target, r = e.media, a = !1; r === t && (a = !0); var o = {}; try { o = JSON.parse(t.getAttribute("data-plyr")) } catch(e) {} var i = x({}, M, n, o); if (!i.enabled) return null; var l = new E(r, i); if (O.object(l)) { if (i.debug) { var u = i.events.concat(["setup", "statechange", "enterfullscreen", "exitfullscreen", "captionsenabled", "captionsdisabled"]); g(l.getContainer(), u.join(" "), function(e) { console.log([i.logPrefix, "event:", e.type].join(" "), e.detail.plyr) }) } h(l.getContainer(), "setup", !0, { plyr: l }), s.push(l) } }), s } function I(e) { if (O.string(e) ? e = t.querySelector(e) : O.undefined(e) && (e = t.body), O.htmlElement(e)) { var n = e.querySelectorAll("." + M.classes.setup), r = []; return Array.prototype.slice.call(n).forEach(function(e) { O.object(e.plyr) && r.push(e.plyr) }), r } return [] } var N, P = { x: 0, y: 0 }, M = { enabled: !0, debug: !1, autoplay: !1, loop: !1, seekTime: 10, volume: 10, volumeMin: 0, volumeMax: 10, volumeStep: 1, duration: null, displayDuration: !0, loadSprite: !0, iconPrefix: "plyr", iconUrl: "https://cdn.plyr.io/2.0.10/plyr.svg", clickToPlay: !0, hideControls: !0, showPosterOnEnd: !1, disableContextMenu: !0, keyboardShorcuts: { focused: !0, global: !1 }, tooltips: { controls: !1, seek: !0 }, selectors: { html5: "video, audio", embed: "[data-type]", editable: "input, textarea, select, [contenteditable]", container: ".plyr", controls: { container: null, wrapper: ".plyr__controls" }, labels: "[data-plyr]", buttons: { seek: '[data-plyr="seek"]', play: '[data-plyr="play"]', pause: '[data-plyr="pause"]', restart: '[data-plyr="restart"]', rewind: '[data-plyr="rewind"]', forward: '[data-plyr="fast-forward"]', mute: '[data-plyr="mute"]', captions: '[data-plyr="captions"]', fullscreen: '[data-plyr="fullscreen"]' }, volume: { input: '[data-plyr="volume"]', display: ".plyr__volume--display" }, progress: { container: ".plyr__progress", buffer: ".plyr__progress--buffer", played: ".plyr__progress--played" }, captions: ".plyr__captions", currentTime: ".plyr__time--current", duration: ".plyr__time--duration" }, classes: { setup: "plyr--setup", ready: "plyr--ready", videoWrapper: "plyr__video-wrapper", embedWrapper: "plyr__video-embed", type: "plyr--{0}", stopped: "plyr--stopped", playing: "plyr--playing", muted: "plyr--muted", loading: "plyr--loading", hover: "plyr--hover", tooltip: "plyr__tooltip", hidden: "plyr__sr-only", hideControls: "plyr--hide-controls", isIos: "plyr--is-ios", isTouch: "plyr--is-touch", captions: { enabled: "plyr--captions-enabled", active: "plyr--captions-active" }, fullscreen: { enabled: "plyr--fullscreen-enabled", active: "plyr--fullscreen-active" }, tabFocus: "tab-focus" }, captions: { defaultActive: !1 }, fullscreen: { enabled: !0, fallback: !0, allowAudio: !1 }, storage: { enabled: !0, key: "plyr" }, controls: ["play-large", "play", "progress", "current-time", "mute", "volume", "captions", "fullscreen"], i18n: { restart: "Restart", rewind: "Rewind {seektime} secs", play: "Play", pause: "Pause", forward: "Forward {seektime} secs", played: "played", buffered: "buffered", currentTime: "Current time", duration: "Duration", volume: "Volume", toggleMute: "Toggle Mute", toggleCaptions: "Toggle Captions", toggleFullscreen: "Toggle Fullscreen", frameTitle: "Player for {title}" }, types: { embed: ["youtube", "vimeo", "soundcloud"], html5: ["video", "audio"] }, urls: { vimeo: { api: "https://player.vimeo.com/api/player.js" }, youtube: { api: "https://www.youtube.com/iframe_api" }, soundcloud: { api: "https://w.soundcloud.com/player/api.js" } }, listeners: { seek: null, play: null, pause: null, restart: null, rewind: null, forward: null, mute: null, volume: null, captions: null, fullscreen: null }, events: ["ready", "ended", "progress", "stalled", "playing", "waiting", "canplay", "canplaythrough", "loadstart", "loadeddata", "loadedmetadata", "timeupdate", "volumechange", "play", "pause", "error", "seeking", "seeked", "emptied"], logPrefix: "[Plyr]" }, O = { object: function(e) { return null !== e && "object" == typeof e }, array: function(e) { return null !== e && "object" == typeof e && e.constructor === Array }, number: function(e) { return null !== e && ("number" == typeof e && !isNaN(e - 0) || "object" == typeof e && e.constructor === Number) }, string: function(e) { return null !== e && ("string" == typeof e || "object" == typeof e && e.constructor === String) }, boolean: function(e) { return null !== e && "boolean" == typeof e }, nodeList: function(e) { return null !== e && e instanceof NodeList }, htmlElement: function(e) { return null !== e && e instanceof HTMLElement }, function: function(e) { return null !== e && "function" == typeof e }, undefined: function(e) { return null !== e && "undefined" == typeof e } }, L = { supported: function() { if (! ("localStorage" in e)) return ! 1; try { e.localStorage.setItem("___test", "OK"); var t = e.localStorage.getItem("___test"); return e.localStorage.removeItem("___test"), "OK" === t } catch(e) { return ! 1 } return ! 1 } () }; return { setup: A, supported: F, loadSprite: C, get: I } }), function() { function e(e, t) { t = t || { bubbles: !1, cancelable: !1, detail: void 0 }; var n = document.createEvent("CustomEvent"); return n.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), n } "function" != typeof window.CustomEvent && (e.prototype = window.Event.prototype, window.CustomEvent = e) } (); exports('plyr', plyr); });