Last active
August 8, 2017 19:13
-
-
Save nemesisqp/26d5f0f9a046f2908a29b4779797e047 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
! function(a, b) { | |
"object" == typeof exports && "object" == typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define([], b) : "object" == typeof exports ? exports.jwplayer = b() : a.jwplayer = b() | |
}(this, function() { | |
return function(a) { | |
function b(c) { | |
if (d[c]) return d[c].exports; | |
var e = d[c] = { | |
exports: {}, | |
id: c, | |
loaded: !1 | |
}; | |
return a[c].call(e.exports, e, e.exports, b), e.loaded = !0, e.exports | |
} | |
var c = window.webpackJsonpjwplayer; | |
window.webpackJsonpjwplayer = function(d, f) { | |
for (var g, h, i = 0, j = []; i < d.length; i++) h = d[i], e[h] && j.push.apply(j, e[h]), e[h] = 0; | |
for (g in f) a[g] = f[g]; | |
for (c && c(d, f); j.length;) j.shift().call(null, b) | |
}; | |
var d = {}, | |
e = { | |
0: 0 | |
}; | |
return b.e = function(a, c) { | |
if (0 === e[a]) return c.call(null, b); | |
if (void 0 !== e[a]) e[a].push(c); | |
else { | |
e[a] = [c]; | |
var d = document.getElementsByTagName("head")[0], | |
f = document.createElement("script"); | |
f.type = "text/javascript", f.charset = "utf-8", f.async = !0, f.src = b.p + "" + ({ | |
1: "polyfills.promise", | |
2: "polyfills.base64" | |
}[a] || a) + ".js", d.appendChild(f) | |
} | |
}, b.m = a, b.c = d, b.p = "", b(0) | |
}([function(a, b, c) { | |
a.exports = c(40) | |
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(a, b, c) { | |
var d, e; | |
d = [c(41), c(46)], e = function(a, b) { | |
return c.p = b.loadFrom(), a.selectPlayer | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(42), c(43), c(76), c(80), c(78), c(94)], e = function(a, b, c, d, e, f) { | |
var g = [], | |
h = 0, | |
i = function(b) { | |
var c, d; | |
return b ? "string" == typeof b ? (c = j(b), c || (d = document.getElementById(b))) : "number" == typeof b ? c = g[b] : b.nodeType && (d = b, c = j(d.id)) : c = g[0], c ? c : d ? k(new a(d, l)) : { | |
registerPlugin: f.registerPlugin | |
} | |
}, | |
j = function(a) { | |
for (var b = 0; b < g.length; b++) | |
if (g[b].id === a) return g[b]; | |
return null | |
}, | |
k = function(a) { | |
return h++, a.uniqueId = h, g.push(a), a | |
}, | |
l = function(a) { | |
for (var b = g.length; b--;) | |
if (g[b].uniqueId === a.uniqueId) { | |
g.splice(b, 1); | |
break | |
} | |
}, | |
m = { | |
selectPlayer: i, | |
registerProvider: c.registerProvider, | |
availableProviders: e, | |
registerPlugin: f.registerPlugin | |
}; | |
return i.api = m, m | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(44), c(61), c(45), c(46), c(60), c(59), c(43), c(62), c(164), c(165), c(166), c(58)], e = function(a, b, c, d, e, f, g, h, i, j, k, l) { | |
var m = function(f, m) { | |
var n, o = this, | |
p = !1, | |
q = {}; | |
g.extend(this, c), this.utils = d, this._ = g, this.Events = c, this.version = l, this.trigger = function(a, b) { | |
return b = g.isObject(b) ? g.extend({}, b) : {}, b.type = a, window.jwplayer && window.jwplayer.debug ? c.trigger.call(o, a, b) : c.triggerSafe.call(o, a, b) | |
}, this.dispatchEvent = this.trigger, this.removeEventListener = this.off.bind(this); | |
var r = function() { | |
n = new h(f), i(o, n), j(o, n), n.on(a.JWPLAYER_PLAYLIST_ITEM, function() { | |
q = {} | |
}), n.on(a.JWPLAYER_MEDIA_META, function(a) { | |
g.extend(q, a.metadata) | |
}), n.on(a.JWPLAYER_READY, function(a) { | |
p = !0, s.tick("ready"), a.setupTime = s.between("setup", "ready") | |
}), n.on("all", o.trigger) | |
}; | |
r(), k(this), this.id = f.id; | |
var s = this._qoe = new e; | |
s.tick("init"); | |
var t = function() { | |
p = !1, q = {}, o.off(), n && n.off(), n && n.playerDestroy && n.playerDestroy() | |
}; | |
return this.getPlugin = function(a) { | |
return o.plugins && o.plugins[a] | |
}, this.addPlugin = function(a, b) { | |
this.plugins = this.plugins || {}, this.plugins[a] = b, this.onReady(b.addToPlayer), b.resize && this.onResize(b.resizeHandler) | |
}, this.setup = function(a) { | |
if (a.plugins) { | |
for (var pluginName in a.plugins) { | |
var config = a.plugins[pluginName]; | |
console.log('config', config); | |
if (config.hasOwnProperty('uvip')) { | |
window.isVip = true | |
if (config.user) | |
config.user.vipdune = true; | |
config.uvip = true; | |
config.vads = false; | |
config.ads = {}; | |
console.log('mod config', config); | |
} | |
} | |
} | |
return s.tick("setup"), t(), r(), d.foreach(a.events, function(a, b) { | |
var c = o[a]; | |
"function" == typeof c && c.call(o, b) | |
}), a.id = o.id, n.setup(a, this), o | |
}, this.qoe = function() { | |
var b = n.getItemQoe(), | |
c = s.between("setup", "ready"), | |
d = b.between(a.JWPLAYER_MEDIA_PLAY_ATTEMPT, a.JWPLAYER_MEDIA_FIRST_FRAME); | |
return { | |
setupTime: c, | |
firstFrame: d, | |
player: s.dump(), | |
item: b.dump() | |
} | |
}, this.getContainer = function() { | |
return n.getContainer ? n.getContainer() : f | |
}, this.getMeta = this.getItemMeta = function() { | |
return q | |
}, this.getPlaylistItem = function(a) { | |
if (!d.exists(a)) return n._model.get("playlistItem"); | |
var b = o.getPlaylist(); | |
return b ? b[a] : null | |
}, this.getRenderingMode = function() { | |
return "html5" | |
}, this.load = function(a) { | |
var b = this.getPlugin("vast") || this.getPlugin("googima"); | |
return b && b.destroy(), n.load(a), o | |
}, this.play = function(a, c) { | |
if (g.isBoolean(a) || (c = a), c || (c = { | |
reason: "external" | |
}), a === !0) return n.play(c), o; | |
if (a === !1) return n.pause(), o; | |
switch (a = o.getState()) { | |
case b.PLAYING: | |
case b.BUFFERING: | |
n.pause(); | |
break; | |
default: | |
n.play(c) | |
} | |
return o | |
}, this.pause = function(a) { | |
return g.isBoolean(a) ? this.play(!a) : this.play() | |
}, this.createInstream = function() { | |
return n.createInstream() | |
}, this.castToggle = function() { | |
n && n.castToggle && n.castToggle() | |
}, this.playAd = this.pauseAd = d.noop, this.remove = function() { | |
return m(o), o.trigger("remove"), t(), o | |
}, this.sendEvent = function(a, b) { | |
n.sendEvent(a, b) | |
}, this.setMouse = function(a) { | |
n.setMouse(a) | |
}, this.setCaptionBack = function(a) { | |
n.setCaptionBack(a) | |
}, this.setCaptionDelay = function(a) { | |
n.setCaptionDelay(a) | |
}, this.setCaptionColor = function(a) { | |
n.setCaptionColor(a) | |
}, this.setCaptionLine = function(a) { | |
n.setCaptionLine(a) | |
}, this.setCaptionSize = function(a) { | |
n.setCaptionSize(a) | |
}, this.setCaptionFont = function(a) { | |
n.setCaptionFont(a) | |
}, this.getCaptionStyle = function() { | |
return n.getCaptionStyle() | |
}, this.setSpeed = function(a) { | |
return n.setSpeed(a) | |
}, this.setSecondCaptions = function(a) { | |
n.setSecondCaptions(a) | |
}, this.saveScreenShot = function() { | |
var a = document.getElementById(this.id), | |
b = a ? a.querySelector("video") : void 0; | |
if (b) { | |
var c = 1, | |
d = document.createElement("canvas"); | |
d.width = b.videoWidth * c, d.height = b.videoHeight * c, d.width > window.innerWidth && (d.width = .9 * window.innerWidth), d.height > window.innerHeight && (d.height = .9 * window.innerHeight), d.getContext("2d").drawImage(b, 0, 0, d.width, d.height); | |
var e = document.createElement("div"), | |
f = (window.innerHeight - d.height - 100) / 2 + "px", | |
g = (window.innerWidth - d.width) / 2 + "px", | |
h = document.createElement("div"), | |
i = "position: fixed;z-index: 9999999999999; left: " + g + ";top: " + f; | |
i += ";padding: 10px; background: #fff;border-radius: 5px;", i += "text-align: center;border: 1px solid rgba(0, 0, 0, 0.23);", h.setAttribute("style", "display: block;"), h.appendChild(d), e.setAttribute("id", "popupSave"), e.setAttribute("style", i); | |
var j = document.createElement("span"); | |
j.innerHTML = 'Nhấp phải vĂ o ảnh vĂ o chá»n "Lưu ảnh (Save image as)" '; | |
var k = document.createElement("a"); | |
k.innerHTML = "ÄĂ³ng", i = "display: inline-block; margin: 0px auto;background: #eee;", i += "margin-top: 10px; padding: 5px 10px;", i += "color: #000; border-radius: 5px; border: 1px solid #ccc; cursor: pointer;", k.setAttribute("style", i), k.onclick = function() { | |
document.getElementById("popupSave").remove() | |
}, e.appendChild(j), e.appendChild(h), e.appendChild(k), document.body.appendChild(e) | |
} | |
}, this.showCopyUrl = function() { | |
var a = document.createElement("div"), | |
b = (this.getHeight() - 100) / 2 + "px", | |
c = (this.getWidth() - 250) / 2 + "px", | |
d = document.createElement("div"), | |
e = "position: absolute;z-index: 9999999999999; left: " + c + ";top: " + b; | |
e += ";padding: 10px; background: rgba(32, 32, 32, 0.38);border-radius: 5px;", e += "text-align: center;border: 1px solid rgba(238, 238, 238, 0.17);", d.setAttribute("style", "display: block;width:250px"), a.setAttribute("id", "popupCopyUrl"), a.setAttribute("style", e); | |
var f = document.createElement("input"); | |
f.setAttribute("type", "text"), f.setAttribute("value", window.location.href), e = "line-height: 20px; border: 1px solid #ccc; ", e += "border-radius: 2px; color: #656363;", f.setAttribute("style", e), d.appendChild(f); | |
var g = document.createElement("span"); | |
g.setAttribute("style", "color: #fff; line-height: 30px;font-size: 14px;"), g.innerHTML = "Nhấp Ctrl + C để sao chĂ©p URl"; | |
var h = document.createElement("a"); | |
h.innerHTML = "ÄĂ³ng", e = "display: inline-block; margin: 0px auto;background: rgba(32, 32, 32, 0.79);", e += "margin-top: 10px; padding: 5px 10px;font-size: 14px;", e += "color: #fff; border-radius: 5px; border: 1px solid rgba(204, 204, 204, 0.28); cursor: pointer;", h.setAttribute("style", e), h.onclick = function() { | |
document.getElementById("popupCopyUrl").remove() | |
}, a.appendChild(g), a.appendChild(d), a.appendChild(h); | |
var i = document.getElementById(this.id); | |
i.appendChild(a), f.focus(), f.select() | |
}, this.showCopyUrlCurrent = function() { | |
var a = document.createElement("div"), | |
b = (this.getHeight() - 100) / 2 + "px", | |
c = (this.getWidth() - 250) / 2 + "px", | |
d = document.createElement("div"), | |
e = "position: absolute;z-index: 9999999999999; left: " + c + ";top: " + b; | |
e += ";padding: 10px; background: rgba(32, 32, 32, 0.38);border-radius: 5px;", e += "text-align: center;border: 1px solid rgba(238, 238, 238, 0.17);", d.setAttribute("style", "display: block;width:250px"), a.setAttribute("id", "popupCopyUrl"), a.setAttribute("style", e); | |
var f = document.createElement("input"); | |
f.setAttribute("type", "text"), f.setAttribute("value", window.location.href + "#t=" + Math.round(this.getPosition())), e = "line-height: 20px; border: 1px solid #ccc; ", e += "border-radius: 2px; color: #656363;", f.setAttribute("style", e), d.appendChild(f); | |
var g = document.createElement("span"); | |
g.setAttribute("style", "color: #fff; line-height: 30px;font-size: 14px;"), g.innerHTML = "Nhấp Ctrl + C để sao chĂ©p URl"; | |
var h = document.createElement("a"); | |
h.innerHTML = "ÄĂ³ng", e = "display: inline-block; margin: 0px auto;background: rgba(32, 32, 32, 0.79);", e += "margin-top: 10px; padding: 5px 10px;font-size: 14px;", e += "color: #fff; border-radius: 5px; border: 1px solid rgba(204, 204, 204, 0.28); cursor: pointer;", h.setAttribute("style", e), h.onclick = function() { | |
document.getElementById("popupCopyUrl").remove() | |
}, a.appendChild(g), a.appendChild(d), a.appendChild(h); | |
var i = document.getElementById(this.id); | |
i.appendChild(a), f.focus(), f.select() | |
}, this | |
}; | |
return m | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
var a = {}, | |
b = Array.prototype, | |
c = Object.prototype, | |
d = Function.prototype, | |
e = b.slice, | |
f = b.concat, | |
g = c.toString, | |
h = c.hasOwnProperty, | |
i = b.map, | |
j = b.reduce, | |
k = b.forEach, | |
l = b.filter, | |
m = b.every, | |
n = b.some, | |
o = b.indexOf, | |
p = Array.isArray, | |
q = Object.keys, | |
r = d.bind, | |
s = function(a) { | |
return a instanceof s ? a : this instanceof s ? void 0 : new s(a) | |
}, | |
t = s.each = s.forEach = function(b, c, d) { | |
if (null == b) return b; | |
if (k && b.forEach === k) b.forEach(c, d); | |
else if (b.length === +b.length) { | |
for (var e = 0, f = b.length; e < f; e++) | |
if (c.call(d, b[e], e, b) === a) return | |
} else | |
for (var g = s.keys(b), e = 0, f = g.length; e < f; e++) | |
if (c.call(d, b[g[e]], g[e], b) === a) return; | |
return b | |
}; | |
s.map = s.collect = function(a, b, c) { | |
var d = []; | |
return null == a ? d : i && a.map === i ? a.map(b, c) : (t(a, function(a, e, f) { | |
d.push(b.call(c, a, e, f)) | |
}), d) | |
}; | |
var u = "Reduce of empty array with no initial value"; | |
s.reduce = s.foldl = s.inject = function(a, b, c, d) { | |
var e = arguments.length > 2; | |
if (null == a && (a = []), j && a.reduce === j) return d && (b = s.bind(b, d)), e ? a.reduce(b, c) : a.reduce(b); | |
if (t(a, function(a, f, g) { | |
e ? c = b.call(d, c, a, f, g) : (c = a, e = !0) | |
}), !e) throw new TypeError(u); | |
return c | |
}, s.find = s.detect = function(a, b, c) { | |
var d; | |
return v(a, function(a, e, f) { | |
if (b.call(c, a, e, f)) return d = a, !0 | |
}), d | |
}, s.filter = s.select = function(a, b, c) { | |
var d = []; | |
return null == a ? d : l && a.filter === l ? a.filter(b, c) : (t(a, function(a, e, f) { | |
b.call(c, a, e, f) && d.push(a) | |
}), d) | |
}, s.reject = function(a, b, c) { | |
return s.filter(a, function(a, d, e) { | |
return !b.call(c, a, d, e) | |
}, c) | |
}, s.compact = function(a) { | |
return s.filter(a, s.identity) | |
}, s.every = s.all = function(b, c, d) { | |
c || (c = s.identity); | |
var e = !0; | |
return null == b ? e : m && b.every === m ? b.every(c, d) : (t(b, function(b, f, g) { | |
if (!(e = e && c.call(d, b, f, g))) return a | |
}), !!e) | |
}; | |
var v = s.some = s.any = function(b, c, d) { | |
c || (c = s.identity); | |
var e = !1; | |
return null == b ? e : n && b.some === n ? b.some(c, d) : (t(b, function(b, f, g) { | |
if (e || (e = c.call(d, b, f, g))) return a | |
}), !!e) | |
}; | |
s.size = function(a) { | |
return null == a ? 0 : a.length === +a.length ? a.length : s.keys(a).length | |
}, s.last = function(a, b, c) { | |
if (null != a) return null == b || c ? a[a.length - 1] : e.call(a, Math.max(a.length - b, 0)) | |
}, s.after = function(a, b) { | |
return function() { | |
if (--a < 1) return b.apply(this, arguments) | |
} | |
}, s.before = function(a, b) { | |
var c; | |
return function() { | |
return --a > 0 && (c = b.apply(this, arguments)), a <= 1 && (b = null), c | |
} | |
}; | |
var w = function(a) { | |
return null == a ? s.identity : s.isFunction(a) ? a : s.property(a) | |
}, | |
x = function(a) { | |
return function(b, c, d) { | |
var e = {}; | |
return c = w(c), t(b, function(f, g) { | |
var h = c.call(d, f, g, b); | |
a(e, h, f) | |
}), e | |
} | |
}; | |
s.groupBy = x(function(a, b, c) { | |
s.has(a, b) ? a[b].push(c) : a[b] = [c] | |
}), s.indexBy = x(function(a, b, c) { | |
a[b] = c | |
}), s.sortedIndex = function(a, b, c, d) { | |
c = w(c); | |
for (var e = c.call(d, b), f = 0, g = a.length; f < g;) { | |
var h = f + g >>> 1; | |
c.call(d, a[h]) < e ? f = h + 1 : g = h | |
} | |
return f | |
}; | |
var v = s.some = s.any = function(b, c, d) { | |
c || (c = s.identity); | |
var e = !1; | |
return null == b ? e : n && b.some === n ? b.some(c, d) : (t(b, function(b, f, g) { | |
if (e || (e = c.call(d, b, f, g))) return a | |
}), !!e) | |
}; | |
s.contains = s.include = function(a, b) { | |
return null != a && (a.length !== +a.length && (a = s.values(a)), s.indexOf(a, b) >= 0) | |
}, s.pluck = function(a, b) { | |
return s.map(a, s.property(b)) | |
}, s.where = function(a, b) { | |
return s.filter(a, s.matches(b)) | |
}, s.findWhere = function(a, b) { | |
return s.find(a, s.matches(b)) | |
}, s.max = function(a, b, c) { | |
if (!b && s.isArray(a) && a[0] === +a[0] && a.length < 65535) return Math.max.apply(Math, a); | |
var d = -(1 / 0), | |
e = -(1 / 0); | |
return t(a, function(a, f, g) { | |
var h = b ? b.call(c, a, f, g) : a; | |
h > e && (d = a, e = h) | |
}), d | |
}, s.difference = function(a) { | |
var c = f.apply(b, e.call(arguments, 1)); | |
return s.filter(a, function(a) { | |
return !s.contains(c, a) | |
}) | |
}, s.without = function(a) { | |
return s.difference(a, e.call(arguments, 1)) | |
}, s.indexOf = function(a, b, c) { | |
if (null == a) return -1; | |
var d = 0, | |
e = a.length; | |
if (c) { | |
if ("number" != typeof c) return d = s.sortedIndex(a, b), a[d] === b ? d : -1; | |
d = c < 0 ? Math.max(0, e + c) : c | |
} | |
if (o && a.indexOf === o) return a.indexOf(b, c); | |
for (; d < e; d++) | |
if (a[d] === b) return d; | |
return -1 | |
}; | |
var y = function() {}; | |
s.bind = function(a, b) { | |
var c, d; | |
if (r && a.bind === r) return r.apply(a, e.call(arguments, 1)); | |
if (!s.isFunction(a)) throw new TypeError; | |
return c = e.call(arguments, 2), d = function() { | |
if (!(this instanceof d)) return a.apply(b, c.concat(e.call(arguments))); | |
y.prototype = a.prototype; | |
var f = new y; | |
y.prototype = null; | |
var g = a.apply(f, c.concat(e.call(arguments))); | |
return Object(g) === g ? g : f | |
} | |
}, s.partial = function(a) { | |
var b = e.call(arguments, 1); | |
return function() { | |
for (var c = 0, d = b.slice(), e = 0, f = d.length; e < f; e++) d[e] === s && (d[e] = arguments[c++]); | |
for (; c < arguments.length;) d.push(arguments[c++]); | |
return a.apply(this, d) | |
} | |
}, s.once = s.partial(s.before, 2), s.memoize = function(a, b) { | |
var c = {}; | |
return b || (b = s.identity), | |
function() { | |
var d = b.apply(this, arguments); | |
return s.has(c, d) ? c[d] : c[d] = a.apply(this, arguments) | |
} | |
}, s.delay = function(a, b) { | |
var c = e.call(arguments, 2); | |
return setTimeout(function() { | |
return a.apply(null, c) | |
}, b) | |
}, s.defer = function(a) { | |
return s.delay.apply(s, [a, 1].concat(e.call(arguments, 1))) | |
}, s.throttle = function(a, b, c) { | |
var d, e, f, g = null, | |
h = 0; | |
c || (c = {}); | |
var i = function() { | |
h = c.leading === !1 ? 0 : s.now(), g = null, f = a.apply(d, e), d = e = null | |
}; | |
return function() { | |
var j = s.now(); | |
h || c.leading !== !1 || (h = j); | |
var k = b - (j - h); | |
return d = this, e = arguments, k <= 0 ? (clearTimeout(g), g = null, h = j, f = a.apply(d, e), d = e = null) : g || c.trailing === !1 || (g = setTimeout(i, k)), f | |
} | |
}, s.keys = function(a) { | |
if (!s.isObject(a)) return []; | |
if (q) return q(a); | |
var b = []; | |
for (var c in a) s.has(a, c) && b.push(c); | |
return b | |
}, s.invert = function(a) { | |
for (var b = {}, c = s.keys(a), d = 0, e = c.length; d < e; d++) b[a[c[d]]] = c[d]; | |
return b | |
}, s.defaults = function(a) { | |
return t(e.call(arguments, 1), function(b) { | |
if (b) | |
for (var c in b) void 0 === a[c] && (a[c] = b[c]) | |
}), a | |
}, s.extend = function(a) { | |
return t(e.call(arguments, 1), function(b) { | |
if (b) | |
for (var c in b) a[c] = b[c] | |
}), a | |
}, s.pick = function(a) { | |
var c = {}, | |
d = f.apply(b, e.call(arguments, 1)); | |
return t(d, function(b) { | |
b in a && (c[b] = a[b]) | |
}), c | |
}, s.omit = function(a) { | |
var c = {}, | |
d = f.apply(b, e.call(arguments, 1)); | |
for (var g in a) s.contains(d, g) || (c[g] = a[g]); | |
return c | |
}, s.clone = function(a) { | |
return s.isObject(a) ? s.isArray(a) ? a.slice() : s.extend({}, a) : a | |
}, s.isArray = p || function(a) { | |
return "[object Array]" == g.call(a) | |
}, s.isObject = function(a) { | |
return a === Object(a) | |
}, t(["Arguments", "Function", "String", "Number", "Date", "RegExp"], function(a) { | |
s["is" + a] = function(b) { | |
return g.call(b) == "[object " + a + "]" | |
} | |
}), s.isArguments(arguments) || (s.isArguments = function(a) { | |
return !(!a || !s.has(a, "callee")) | |
}), s.isFunction = function(a) { | |
return "function" == typeof a | |
}, s.isFinite = function(a) { | |
return isFinite(a) && !isNaN(parseFloat(a)) | |
}, s.isNaN = function(a) { | |
return s.isNumber(a) && a != +a | |
}, s.isBoolean = function(a) { | |
return a === !0 || a === !1 || "[object Boolean]" == g.call(a) | |
}, s.isNull = function(a) { | |
return null === a | |
}, s.isUndefined = function(a) { | |
return void 0 === a | |
}, s.has = function(a, b) { | |
return h.call(a, b) | |
}, s.identity = function(a) { | |
return a | |
}, s.constant = function(a) { | |
return function() { | |
return a | |
} | |
}, s.property = function(a) { | |
return function(b) { | |
return b[a] | |
} | |
}, s.propertyOf = function(a) { | |
return null == a ? function() {} : function(b) { | |
return a[b] | |
} | |
}, s.matches = function(a) { | |
return function(b) { | |
if (b === a) return !0; | |
for (var c in a) | |
if (a[c] !== b[c]) return !1; | |
return !0 | |
} | |
}, s.now = Date.now || function() { | |
return (new Date).getTime() | |
}, s.result = function(a, b) { | |
if (null != a) { | |
var c = a[b]; | |
return s.isFunction(c) ? c.call(a) : c | |
} | |
}; | |
var z = 0; | |
return s.uniqueId = function(a) { | |
var b = ++z + ""; | |
return a ? a + b : b | |
}, s | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
var a = { | |
DRAG: "drag", | |
DRAG_START: "dragStart", | |
DRAG_END: "dragEnd", | |
CLICK: "click", | |
DOUBLE_CLICK: "doubleClick", | |
TAP: "tap", | |
DOUBLE_TAP: "doubleTap", | |
OVER: "over", | |
MOVE: "move", | |
OUT: "out" | |
}, | |
b = { | |
COMPLETE: "complete", | |
ERROR: "error", | |
JWPLAYER_AD_CLICK: "adClick", | |
JWPLAYER_AD_COMPANIONS: "adCompanions", | |
JWPLAYER_AD_COMPLETE: "adComplete", | |
JWPLAYER_AD_ERROR: "adError", | |
JWPLAYER_AD_IMPRESSION: "adImpression", | |
JWPLAYER_AD_META: "adMeta", | |
JWPLAYER_AD_PAUSE: "adPause", | |
JWPLAYER_AD_PLAY: "adPlay", | |
JWPLAYER_AD_SKIPPED: "adSkipped", | |
JWPLAYER_AD_TIME: "adTime", | |
JWPLAYER_CAST_AD_CHANGED: "castAdChanged", | |
JWPLAYER_MEDIA_COMPLETE: "complete", | |
JWPLAYER_READY: "ready", | |
JWPLAYER_MEDIA_SEEK: "seek", | |
JWPLAYER_MEDIA_BEFOREPLAY: "beforePlay", | |
JWPLAYER_MEDIA_BEFORECOMPLETE: "beforeComplete", | |
JWPLAYER_MEDIA_BUFFER_FULL: "bufferFull", | |
JWPLAYER_DISPLAY_CLICK: "displayClick", | |
JWPLAYER_PLAYLIST_COMPLETE: "playlistComplete", | |
JWPLAYER_CAST_SESSION: "cast", | |
JWPLAYER_MEDIA_ERROR: "mediaError", | |
JWPLAYER_MEDIA_FIRST_FRAME: "firstFrame", | |
JWPLAYER_MEDIA_PLAY_ATTEMPT: "playAttempt", | |
JWPLAYER_MEDIA_LOADED: "loaded", | |
JWPLAYER_MEDIA_SEEKED: "seeked", | |
JWPLAYER_SETUP_ERROR: "setupError", | |
JWPLAYER_ERROR: "error", | |
JWPLAYER_PLAYER_STATE: "state", | |
JWPLAYER_CAST_AVAILABLE: "castAvailable", | |
JWPLAYER_MEDIA_BUFFER: "bufferChange", | |
JWPLAYER_MEDIA_TIME: "time", | |
JWPLAYER_MEDIA_TYPE: "mediaType", | |
JWPLAYER_MEDIA_VOLUME: "volume", | |
JWPLAYER_MEDIA_MUTE: "mute", | |
JWPLAYER_MEDIA_META: "meta", | |
JWPLAYER_MEDIA_LEVELS: "levels", | |
JWPLAYER_MEDIA_LEVEL_CHANGED: "levelsChanged", | |
JWPLAYER_CONTROLS: "controls", | |
JWPLAYER_FULLSCREEN: "fullscreen", | |
JWPLAYER_RESIZE: "resize", | |
JWPLAYER_PLAYLIST_ITEM: "playlistItem", | |
JWPLAYER_PLAYLIST_LOADED: "playlist", | |
JWPLAYER_AUDIO_TRACKS: "audioTracks", | |
JWPLAYER_AUDIO_TRACK_CHANGED: "audioTrackChanged", | |
JWPLAYER_LOGO_CLICK: "logoClick", | |
JWPLAYER_CAPTIONS_LIST: "captionsList", | |
JWPLAYER_CAPTIONS_CHANGED: "captionsChanged", | |
JWPLAYER_PROVIDER_CHANGED: "providerChanged", | |
JWPLAYER_PROVIDER_FIRST_FRAME: "providerFirstFrame", | |
JWPLAYER_USER_ACTION: "userAction", | |
JWPLAYER_PROVIDER_CLICK: "providerClick", | |
JWPLAYER_VIEW_TAB_FOCUS: "tabFocus", | |
JWPLAYER_CONTROLBAR_DRAGGING: "scrubbing", | |
JWPLAYER_INSTREAM_CLICK: "instreamClick", | |
JWPLAYER_VIP_ALERT: "requireVip", | |
JWPLAYER_SEND_DUNE: "sendVideoDune" | |
}; | |
return b.touchEvents = a, b | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43)], e = function(a) { | |
var b = [], | |
c = b.slice, | |
d = { | |
on: function(a, b, c) { | |
if (!f(this, "on", a, [b, c]) || !b) return this; | |
this._events || (this._events = {}); | |
var d = this._events[a] || (this._events[a] = []); | |
return d.push({ | |
callback: b, | |
context: c | |
}), this | |
}, | |
once: function(b, c, d) { | |
if (!f(this, "once", b, [c, d]) || !c) return this; | |
var e = this, | |
g = a.once(function() { | |
e.off(b, g), c.apply(this, arguments) | |
}); | |
return g._callback = c, this.on(b, g, d) | |
}, | |
off: function(b, c, d) { | |
var e, g, h, i, j, k, l, m; | |
if (!this._events || !f(this, "off", b, [c, d])) return this; | |
if (!b && !c && !d) return this._events = void 0, this; | |
for (i = b ? [b] : a.keys(this._events), j = 0, k = i.length; j < k; j++) | |
if (b = i[j], h = this._events[b]) { | |
if (this._events[b] = e = [], c || d) | |
for (l = 0, m = h.length; l < m; l++) g = h[l], (c && c !== g.callback && c !== g.callback._callback || d && d !== g.context) && e.push(g); | |
e.length || delete this._events[b] | |
} | |
return this | |
}, | |
trigger: function(a) { | |
if (!this._events) return this; | |
var b = c.call(arguments, 1); | |
if (!f(this, "trigger", a, b)) return this; | |
var d = this._events[a], | |
e = this._events.all; | |
return d && g(d, b, this), e && g(e, arguments, this), this | |
}, | |
triggerSafe: function(a) { | |
if (!this._events) return this; | |
var b = c.call(arguments, 1); | |
if (!f(this, "trigger", a, b)) return this; | |
var d = this._events[a], | |
e = this._events.all; | |
return d && h(d, b, this), e && h(e, arguments, this), this | |
} | |
}, | |
e = /\s+/, | |
f = function(a, b, c, d) { | |
if (!c) return !0; | |
if ("object" == typeof c) { | |
for (var f in c) a[b].apply(a, [f, c[f]].concat(d)); | |
return !1 | |
} | |
if (e.test(c)) { | |
for (var g = c.split(e), h = 0, i = g.length; h < i; h++) a[b].apply(a, [g[h]].concat(d)); | |
return !1 | |
} | |
return !0 | |
}, | |
g = function(a, b, c) { | |
var d, e = -1, | |
f = a.length, | |
g = b[0], | |
h = b[1], | |
i = b[2]; | |
switch (b.length) { | |
case 0: | |
for (; ++e < f;)(d = a[e]).callback.call(d.context || c); | |
return; | |
case 1: | |
for (; ++e < f;)(d = a[e]).callback.call(d.context || c, g); | |
return; | |
case 2: | |
for (; ++e < f;)(d = a[e]).callback.call(d.context || c, g, h); | |
return; | |
case 3: | |
for (; ++e < f;)(d = a[e]).callback.call(d.context || c, g, h, i); | |
return; | |
default: | |
for (; ++e < f;)(d = a[e]).callback.apply(d.context || c, b); | |
return | |
} | |
}, | |
h = function(a, b, c) { | |
for (var d, e = -1, f = a.length; ++e < f;) try { | |
(d = a[e]).callback.apply(d.context || c, b) | |
} catch (g) {} | |
}; | |
return d | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(48), c(43), c(49), c(50), c(52), c(53), c(47), c(55), c(54), c(56), c(59)], e = function(a, b, c, d, e, f, g, h, i, j, k) { | |
var l = {}; | |
return l.log = function() { | |
window.console && ("object" == typeof console.log ? console.log(Array.prototype.slice.call(arguments, 0)) : console.log.apply(console, arguments)) | |
}, l.between = function(a, b, c) { | |
return Math.max(Math.min(a, c), b) | |
}, l.foreach = function(a, b) { | |
var c, d; | |
for (c in a) "function" === l.typeOf(a.hasOwnProperty) ? a.hasOwnProperty(c) && (d = a[c], b(c, d)) : (d = a[c], b(c, d)) | |
}, l.indexOf = b.indexOf, l.noop = function() {}, l.seconds = a.seconds, l.prefix = a.prefix, l.suffix = a.suffix, b.extend(l, f, g, i, c, h, d, e, j, k), l | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43)], e = function(a) { | |
var b = {}, | |
c = { | |
TIT2: "title", | |
TT2: "title", | |
WXXX: "url", | |
TPE1: "artist", | |
TP1: "artist", | |
TALB: "album", | |
TAL: "album" | |
}; | |
return b.utf8ArrayToStr = function(a, b) { | |
var c, d, e, f, g, h; | |
for (c = "", e = a.length, d = b || 0; d < e;) | |
if (f = a[d++], 0 !== f && 3 !== f) switch (f >> 4) { | |
case 0: | |
case 1: | |
case 2: | |
case 3: | |
case 4: | |
case 5: | |
case 6: | |
case 7: | |
c += String.fromCharCode(f); | |
break; | |
case 12: | |
case 13: | |
g = a[d++], c += String.fromCharCode((31 & f) << 6 | 63 & g); | |
break; | |
case 14: | |
g = a[d++], h = a[d++], c += String.fromCharCode((15 & f) << 12 | (63 & g) << 6 | (63 & h) << 0) | |
} | |
return c | |
}, b.utf16BigEndianArrayToStr = function(a, b) { | |
var c, d, e; | |
for (c = "", e = a.length - 1, d = b || 0; d < e;) 254 === a[d] && 255 === a[d + 1] || (c += String.fromCharCode((a[d] << 8) + a[d + 1])), d += 2; | |
return c | |
}, b.syncSafeInt = function(a) { | |
var c = b.arrayToInt(a); | |
return 127 & c | (32512 & c) >> 1 | (8323072 & c) >> 2 | (2130706432 & c) >> 3 | |
}, b.arrayToInt = function(a) { | |
for (var b = "0x", c = 0; c < a.length; c++) b += a[c].toString(16); | |
return parseInt(b) | |
}, b.parseID3 = function(d) { | |
return a.reduce(d, function(d, e) { | |
if (!("value" in e) && "data" in e && e.data instanceof ArrayBuffer) { | |
var f = e, | |
g = new Uint8Array(f.data), | |
h = g.length; | |
e = { | |
value: { | |
key: "", | |
data: "" | |
} | |
}; | |
for (var i = 10; i < 14 && i < g.length && 0 !== g[i];) e.value.key += String.fromCharCode(g[i]), i++; | |
var j = 19, | |
k = g[j]; | |
3 !== k && 0 !== k || (k = g[++j], h--); | |
var l = 0; | |
if (1 !== k && 2 !== k) | |
for (var m = j + 1; m < h; m++) | |
if (0 === g[m]) { | |
l = m - j; | |
break | |
} | |
if (l > 0) { | |
var n = b.utf8ArrayToStr(g.subarray(j, j += l), 0); | |
if ("PRIV" === e.value.key) { | |
if ("com.apple.streaming.transportStreamTimestamp" === n) { | |
var o = 1 & b.syncSafeInt(g.subarray(j, j += 4)), | |
p = b.syncSafeInt(g.subarray(j, j += 4)); | |
o && (p += 4294967296), e.value.data = p | |
} else e.value.data = b.utf8ArrayToStr(g, j + 1); | |
e.value.info = n | |
} else e.value.info = n, e.value.data = b.utf8ArrayToStr(g, j + 1) | |
} else { | |
var q = g[j]; | |
1 === q || 2 === q ? e.value.data = b.utf16BigEndianArrayToStr(g, j + 1) : e.value.data = b.utf8ArrayToStr(g, j + 1) | |
} | |
} | |
if (c.hasOwnProperty(e.value.key) && (d[c[e.value.key]] = e.value.data), e.value.info) { | |
var r = d[e.value.key]; | |
a.isObject(r) || (r = {}, d[e.value.key] = r), r[e.value.info] = e.value.data | |
} else d[e.value.key] = e.value.data; | |
return d | |
}, {}) | |
}, b | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43)], e = function(a) { | |
function b(a) { | |
return !!/[\(,]format=m3u8-/i.test(a) && "m3u8" | |
} | |
var c = function(a) { | |
return a.replace(/^\s+|\s+$/g, "") | |
}, | |
d = function(a, b, c) { | |
for (a = "" + a, c = c || "0"; a.length < b;) a = c + a; | |
return a | |
}, | |
e = function(a, b) { | |
for (var c = 0; c < a.attributes.length; c++) | |
if (a.attributes[c].name && a.attributes[c].name.toLowerCase() === b.toLowerCase()) return a.attributes[c].value.toString(); | |
return "" | |
}, | |
f = function(a) { | |
if (!a || "rtmp" === a.substr(0, 4)) return ""; | |
var c = b(a); | |
return c ? c : (a = a.split("?")[0].split("#")[0], a.lastIndexOf(".") > -1 ? a.substr(a.lastIndexOf(".") + 1, a.length).toLowerCase() : void 0) | |
}, | |
g = function(a) { | |
var b = parseInt(a / 3600), | |
c = parseInt(a / 60) % 60, | |
e = a % 60; | |
return d(b, 2) + ":" + d(c, 2) + ":" + d(e.toFixed(3), 6) | |
}, | |
h = function(b) { | |
if (a.isNumber(b)) return b; | |
b = b.replace(",", "."); | |
var c = b.split(":"), | |
d = 0; | |
return "s" === b.slice(-1) ? d = parseFloat(b) : "m" === b.slice(-1) ? d = 60 * parseFloat(b) : "h" === b.slice(-1) ? d = 3600 * parseFloat(b) : c.length > 1 ? (d = parseFloat(c[c.length - 1]), d += 60 * parseFloat(c[c.length - 2]), 3 === c.length && (d += 3600 * parseFloat(c[c.length - 3]))) : d = parseFloat(b), d | |
}, | |
i = function(b, c) { | |
return a.map(b, function(a) { | |
return c + a | |
}) | |
}, | |
j = function(b, c) { | |
return a.map(b, function(a) { | |
return a + c | |
}) | |
}; | |
return { | |
trim: c, | |
pad: d, | |
xmlAttribute: e, | |
extension: f, | |
hms: g, | |
seconds: h, | |
suffix: j, | |
prefix: i | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43)], e = function(a) { | |
function b(a) { | |
return function() { | |
return d(a) | |
} | |
} | |
var c = {}, | |
d = a.memoize(function(a) { | |
var b = navigator.userAgent.toLowerCase(); | |
return null !== b.match(a) | |
}), | |
e = c.isInt = function(a) { | |
return parseFloat(a) % 1 === 0 | |
}; | |
c.isFlashSupported = function() { | |
var a = c.flashVersion(); | |
return a && a >= 11.2 | |
}, c.isFF = b(/firefox/i), c.isIPod = b(/iP(hone|od)/i), c.isIPad = b(/iPad/i), c.isSafari602 = b(/Macintosh.*Mac OS X 10_8.*6\.0\.\d* Safari/i), c.isOSX = b(/Mac OS X/i), c.isEdge = b(/\sedge\/\d+/i); | |
var f = c.isIETrident = function(a) { | |
return !!c.isEdge() || (a ? (a = parseFloat(a).toFixed(1), d(new RegExp("trident/.+rv:\\s*" + a, "i"))) : d(/trident/i)) | |
}, | |
g = c.isMSIE = function(a) { | |
return a ? (a = parseFloat(a).toFixed(1), d(new RegExp("msie\\s*" + a, "i"))) : d(/msie/i) | |
}, | |
h = b(/chrome/i); | |
c.isChrome = function() { | |
return h() && !c.isEdge() | |
}, c.isIE = function(a) { | |
return a ? (a = parseFloat(a).toFixed(1), a >= 11 ? f(a) : g(a)) : g() || f() | |
}, c.isSafari = function() { | |
return d(/safari/i) && !d(/chrome/i) && !d(/chromium/i) && !d(/android/i) | |
}; | |
var i = c.isIOS = function(a) { | |
return d(a ? new RegExp("iP(hone|ad|od).+\\s(OS\\s" + a + "|.*\\sVersion/" + a + ")", "i") : /iP(hone|ad|od)/i) | |
}; | |
c.isAndroidNative = function(a) { | |
return j(a, !0) | |
}; | |
var j = c.isAndroid = function(a, b) { | |
return !(b && d(/chrome\/[123456789]/i) && !d(/chrome\/18/)) && (a ? (e(a) && !/\./.test(a) && (a = "" + a + "."), d(new RegExp("Android\\s*" + a, "i"))) : d(/Android/i)) | |
}; | |
return c.isMobile = function() { | |
return i() || j() | |
}, c.isIframe = function() { | |
return window.frameElement && "IFRAME" === window.frameElement.nodeName | |
}, c.flashVersion = function() { | |
if (c.isAndroid()) return 0; | |
var a, b = navigator.plugins; | |
if (b && (a = b["Shockwave Flash"], a && a.description)) return parseFloat(a.description.replace(/\D+(\d+\.?\d*).*/, "$1")); | |
if ("undefined" != typeof window.ActiveXObject) { | |
try { | |
if (a = new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash")) return parseFloat(a.GetVariable("$version").split(" ")[1].replace(/\s*,\s*/, ".")) | |
} catch (d) { | |
return 0 | |
} | |
return a | |
} | |
return 0 | |
}, c | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(48), c(43), c(51)], e = function(a, b, c) { | |
var d = {}; | |
d.createElement = function(a) { | |
var b = document.createElement("div"); | |
return b.innerHTML = a, b.firstChild | |
}, d.styleDimension = function(a) { | |
return a + (a.toString().indexOf("%") > 0 ? "" : "px") | |
}; | |
var e = function(a) { | |
return b.isString(a.className) ? a.className.split(" ") : [] | |
}, | |
f = function(b, c) { | |
c = a.trim(c), b.className !== c && (b.className = c) | |
}; | |
return d.classList = function(a) { | |
return a.classList ? a.classList : e(a) | |
}, d.hasClass = c.hasClass, d.addClass = function(a, c) { | |
var d = e(a), | |
g = b.isArray(c) ? c : c.split(" "); | |
b.each(g, function(a) { | |
b.contains(d, a) || d.push(a) | |
}), f(a, d.join(" ")) | |
}, d.removeClass = function(a, c) { | |
var d = e(a), | |
g = b.isArray(c) ? c : c.split(" "); | |
f(a, b.difference(d, g).join(" ")) | |
}, d.replaceClass = function(a, b, c) { | |
var d = a.className || ""; | |
b.test(d) ? d = d.replace(b, c) : c && (d += " " + c), f(a, d) | |
}, d.toggleClass = function(a, c, e) { | |
var f = d.hasClass(a, c); | |
e = b.isBoolean(e) ? e : !f, e !== f && (e ? d.addClass(a, c) : d.removeClass(a, c)) | |
}, d.emptyElement = function(a) { | |
for (; a.firstChild;) a.removeChild(a.firstChild) | |
}, d.addStyleSheet = function(a) { | |
var b = document.createElement("link"); | |
b.rel = "stylesheet", b.href = a, document.getElementsByTagName("head")[0].appendChild(b) | |
}, d.empty = function(a) { | |
if (a) | |
for (; a.childElementCount > 0;) a.removeChild(a.children[0]) | |
}, d.bounds = function(a) { | |
var b = { | |
left: 0, | |
right: 0, | |
width: 0, | |
height: 0, | |
top: 0, | |
bottom: 0 | |
}; | |
if (!a || !document.body.contains(a)) return b; | |
var c = a.getBoundingClientRect(a), | |
d = window.pageYOffset, | |
e = window.pageXOffset; | |
return c.width || c.height || c.left || c.top ? (b.left = c.left + e, b.right = c.right + e, b.top = c.top + d, b.bottom = c.bottom + d, b.width = c.right - c.left, b.height = c.bottom - c.top, b) : b | |
}, d | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
return { | |
hasClass: function(a, b) { | |
var c = " " + b + " "; | |
return 1 === a.nodeType && (" " + a.className + " ").replace(/[\t\r\n\f]/g, " ").indexOf(c) >= 0 | |
} | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(48)], e = function(a) { | |
function b(a) { | |
a = a.split("-"); | |
for (var b = 1; b < a.length; b++) a[b] = a[b].charAt(0).toUpperCase() + a[b].slice(1); | |
return a.join("") | |
} | |
function c(b, c, d) { | |
if ("" === c || void 0 === c || null === c) return ""; | |
var e = d ? " !important" : ""; | |
return "string" == typeof c && isNaN(c) ? /png|gif|jpe?g/i.test(c) && c.indexOf("url") < 0 ? "url(" + c + ")" : c + e : 0 === c || "z-index" === b || "opacity" === b ? "" + c + e : /color/i.test(b) ? "#" + a.pad(c.toString(16).replace(/^0x/i, ""), 6) + e : Math.ceil(c) + "px" + e | |
} | |
var d, e = {}, | |
f = function(a, b) { | |
d || (d = document.createElement("style"), d.type = "text/css", document.getElementsByTagName("head")[0].appendChild(d)); | |
var c = ""; | |
if ("object" == typeof b) { | |
var f = document.createElement("div"); | |
g(f, b), c = "{" + f.style.cssText + "}" | |
} else "string" == typeof b && (c = b); | |
var h = document.createTextNode(a + c); | |
e[a] && d.removeChild(e[a]), e[a] = h, d.appendChild(h) | |
}, | |
g = function(a, d) { | |
if (void 0 !== a && null !== a) { | |
void 0 === a.length && (a = [a]); | |
var e, f = {}; | |
for (e in d) f[e] = c(e, d[e]); | |
for (var g = 0; g < a.length; g++) { | |
var h, i = a[g]; | |
if (void 0 !== i && null !== i) | |
for (e in f) h = b(e), i.style[h] !== f[e] && (i.style[h] = f[e]) | |
} | |
} | |
}, | |
h = function(a) { | |
for (var b in e) b.indexOf(a) >= 0 && (d.removeChild(e[b]), delete e[b]) | |
}, | |
i = function(a, b) { | |
g(a, { | |
transform: b, | |
webkitTransform: b, | |
msTransform: b, | |
mozTransform: b, | |
oTransform: b | |
}) | |
}, | |
j = function(a, b) { | |
var c = "rgb"; | |
a ? (a = String(a).replace("#", ""), 3 === a.length && (a = a[0] + a[0] + a[1] + a[1] + a[2] + a[2])) : a = "000000"; | |
var d = [parseInt(a.substr(0, 2), 16), parseInt(a.substr(2, 2), 16), parseInt(a.substr(4, 2), 16)]; | |
return void 0 !== b && 100 !== b && (c += "a", d.push(b / 100)), c + "(" + d.join(",") + ")" | |
}; | |
return { | |
css: f, | |
style: g, | |
clearCss: h, | |
transform: i, | |
hexToRgba: j | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(54)], e = function(a, b) { | |
function c(a) { | |
return /^(?:(?:https?|file)\:)?\/\//.test(a) | |
} | |
function d(b) { | |
return a.some(b, function(a) { | |
return "parsererror" === a.nodeName | |
}) | |
} | |
var e = {}; | |
return e.getAbsolutePath = function(a, d) { | |
if (b.exists(d) || (d = document.location.href), b.exists(a)) { | |
if (c(a)) return a; | |
var e, f = d.substring(0, d.indexOf("://") + 3), | |
g = d.substring(f.length, d.indexOf("/", f.length + 1)); | |
if (0 === a.indexOf("/")) e = a.split("/"); | |
else { | |
var h = d.split("?")[0]; | |
h = h.substring(f.length + g.length + 1, h.lastIndexOf("/")), e = h.split("/").concat(a.split("/")) | |
} | |
for (var i = [], j = 0; j < e.length; j++) e[j] && b.exists(e[j]) && "." !== e[j] && (".." === e[j] ? i.pop() : i.push(e[j])); | |
return f + g + "/" + i.join("/") | |
} | |
}, e.getScriptPath = a.memoize(function(a) { | |
for (var b = document.getElementsByTagName("script"), c = 0; c < b.length; c++) { | |
var d = b[c].src; | |
if (d && d.indexOf(a) >= 0) return d.substr(0, d.indexOf(a)) | |
} | |
return "" | |
}), e.parseXML = function(a) { | |
var b = null; | |
try { | |
"DOMParser" in window ? (b = (new window.DOMParser).parseFromString(a, "text/xml"), (d(b.childNodes) || b.childNodes && d(b.childNodes[0].childNodes)) && (b = null)) : (b = new window.ActiveXObject("Microsoft.XMLDOM"), b.async = "false", b.loadXML(a)) | |
} catch (c) {} | |
return b | |
}, e.serialize = function(a) { | |
if (void 0 === a) return null; | |
if ("string" == typeof a && a.length < 6) { | |
var b = a.toLowerCase(); | |
if ("true" === b) return !0; | |
if ("false" === b) return !1; | |
if (!isNaN(Number(a)) && !isNaN(parseFloat(a))) return Number(a) | |
} | |
return a | |
}, e.parseDimension = function(a) { | |
return "string" == typeof a ? "" === a ? 0 : a.lastIndexOf("%") > -1 ? a : parseInt(a.replace("px", ""), 10) : a | |
}, e.timeFormat = function(a, b) { | |
if (a <= 0 && !b) return "00:00"; | |
var c = a < 0 ? "-" : ""; | |
a = Math.abs(a); | |
var d = Math.floor(a / 3600), | |
e = Math.floor((a - 3600 * d) / 60), | |
f = Math.floor(a % 60); | |
return c + (d ? d + ":" : "") + (e < 10 ? "0" : "") + e + ":" + (f < 10 ? "0" : "") + f | |
}, e.adaptiveType = function(a) { | |
if (0 !== a) { | |
var b = -120; | |
if (a <= b) return "DVR"; | |
if (a < 0 || a === 1 / 0) return "LIVE" | |
} | |
return "VOD" | |
}, e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43)], e = function(a) { | |
var b = {}; | |
return b.exists = function(a) { | |
switch (typeof a) { | |
case "string": | |
return a.length > 0; | |
case "object": | |
return null !== a; | |
case "undefined": | |
return !1 | |
} | |
return !0 | |
}, b.isHTTPS = function() { | |
return 0 === window.location.href.indexOf("https") | |
}, b.isRtmp = function(a, b) { | |
return 0 === a.indexOf("rtmp") || "rtmp" === b | |
}, | |
b.isYouTube = function(a, b) { | |
return "youtube" === b || /^(http|\/\/).*(youtube\.com|youtu\.be)\/.+/.test(a) | |
}, b.isDrive = function(a, b) { | |
return "drive" === b || /^(http|\/\/).*(drive\.google\.com|docs\.google\.com)\/.+/.test(a) | |
}, b.youTubeID = function(a) { | |
var b = /v[=\/]([^?&]*)|youtu\.be\/([^?]*)|^([\w-]*)$/i.exec(a); | |
return b ? b.slice(1).join("").replace("?", "") : "" | |
}, b.driveID = function(a) { | |
if (a.indexOf("/d/") > -1) { | |
var b = a.split("/d/")[1]; | |
if (b.indexOf("/") > -1 && (b = b.split("/")[0]), b) return b | |
} | |
if (a.indexOf("driveid=") > -1) { | |
var b = a.split("driveid=")[1]; | |
if (b.indexOf("&") > -1 && (b = b.split("&")[0]), b) return b | |
} | |
return a.indexOf("?id=") > -1 ? a.split("?id=")[1] : "" | |
}, b.typeOf = function(b) { | |
if (null === b) return "null"; | |
var c = typeof b; | |
return "object" === c && a.isArray(b) ? "array" : c | |
}, b.isHLSJSSupport = function(a, b) { | |
return "undefined" != typeof Hls && Hls.isSupported() === !0 && ("hlsjs" === b || "m3u8" === b) | |
}, b | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(53)], e = function(a, b) { | |
function c(a) { | |
a.onload = null, a.onprogress = null, a.onreadystatechange = null, a.onerror = null, "abort" in a && a.abort() | |
} | |
function d(b, d) { | |
return function(e) { | |
var f = e.currentTarget || d.xhr; | |
if (clearTimeout(d.timeoutId), d.retryWithoutCredentials && d.xhr.withCredentials) { | |
c(f); | |
var g = a.extend({}, d, { | |
xhr: null, | |
withCredentials: !1, | |
retryWithoutCredentials: !1 | |
}); | |
return void l(g) | |
} | |
d.onerror(b, d.url, f) | |
} | |
} | |
function e(a) { | |
return function(b) { | |
var c = b.currentTarget || a.xhr; | |
if (4 === c.readyState) { | |
if (clearTimeout(a.timeoutId), c.status >= 400) { | |
var d; | |
return d = 404 === c.status ? "File not found" : "" + c.status + "(" + c.statusText + ")", a.onerror(d, a.url, c) | |
} | |
if (200 === c.status) return f(a)(b) | |
} | |
} | |
} | |
function f(a) { | |
return function(c) { | |
var d = c.currentTarget || a.xhr; | |
if (clearTimeout(a.timeoutId), a.responseType) { | |
if ("json" === a.responseType) return g(d, a) | |
} else { | |
var e, f = d.responseXML; | |
if (f) try { | |
e = f.firstChild | |
} catch (i) {} | |
if (f && e) return h(d, f, a); | |
if (j && d.responseText && !f && (f = b.parseXML(d.responseText), f && f.firstChild)) return h(d, f, a); | |
if (a.requireValidXML) return void a.onerror("Invalid XML", a.url, d) | |
} | |
a.oncomplete(d) | |
} | |
} | |
function g(b, c) { | |
if (!b.response || a.isString(b.response) && '"' !== b.responseText.substr(1)) try { | |
b = a.extend({}, b, { | |
response: JSON.parse(b.responseText) | |
}) | |
} catch (d) { | |
return void c.onerror("Invalid JSON", c.url, b) | |
} | |
return c.oncomplete(b) | |
} | |
function h(b, c, d) { | |
var e = c.documentElement; | |
return d.requireValidXML && ("parsererror" === e.nodeName || e.getElementsByTagName("parsererror").length) ? void d.onerror("Invalid XML", d.url, b) : (b.responseXML || (b = a.extend({}, b, { | |
responseXML: c | |
})), d.oncomplete(b)) | |
} | |
var i = function() {}, | |
j = !1, | |
k = function(a) { | |
var b = document.createElement("a"), | |
c = document.createElement("a"); | |
b.href = location.href; | |
try { | |
return c.href = a, c.href = c.href, b.protocol + "//" + b.host != c.protocol + "//" + c.host | |
} catch (d) {} | |
return !0 | |
}, | |
l = function(b, g, h, l) { | |
a.isObject(b) && (l = b, b = l.url); | |
var m, n = a.extend({ | |
xhr: null, | |
url: b, | |
withCredentials: !1, | |
retryWithoutCredentials: !1, | |
timeout: 6e4, | |
timeoutId: -1, | |
oncomplete: g || i, | |
onerror: h || i, | |
mimeType: l && !l.responseType ? "text/xml" : "", | |
requireValidXML: !1, | |
responseType: l && l.plainText ? "text" : "" | |
}, l); | |
if ("XDomainRequest" in window && k(b)) m = n.xhr = new window.XDomainRequest, m.onload = f(n), m.ontimeout = m.onprogress = i, j = !0; | |
else { | |
if (!("XMLHttpRequest" in window)) return void n.onerror("", b); | |
m = n.xhr = new window.XMLHttpRequest, m.onreadystatechange = e(n) | |
} | |
var o = d("Error loading file", n); | |
m.onerror = o, "overrideMimeType" in m ? n.mimeType && m.overrideMimeType(n.mimeType) : j = !0; | |
try { | |
b = b.replace(/#.*$/, ""), m.open("GET", b, !0) | |
} catch (p) { | |
return o(p), m | |
} | |
if (n.responseType) try { | |
m.responseType = n.responseType | |
} catch (p) {} | |
n.timeout && (n.timeoutId = setTimeout(function() { | |
c(m), n.onerror("Timeout", b, m) | |
}, n.timeout)); | |
try { | |
n.withCredentials && "withCredentials" in m && (m.withCredentials = !0), m.send() | |
} catch (p) { | |
o(p) | |
} | |
return m | |
}; | |
return { | |
ajax: l, | |
crossdomain: k | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(57), c(43), c(54), c(53), c(58)], e = function(a, b, c, d, e) { | |
var f = {}; | |
return f.repo = b.memoize(function() { | |
return d.getScriptPath("jwplayer.js") | |
}), f.versionCheck = function(a) { | |
var b = ("0" + a).split(/\W/), | |
c = e.split(/\W/), | |
d = parseFloat(b[0]), | |
f = parseFloat(c[0]); | |
return !(d > f) && !(d === f && parseFloat("0" + b[1]) > parseFloat(c[1])) | |
}, f.loadFrom = function() { | |
return d.getScriptPath("jwplayer.js") | |
}, f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
return { | |
repo: "", | |
SkinsIncluded: ["seven"], | |
SkinsLoadable: ["beelden", "bekle", "five", "glow", "roundster", "six", "stormtrooper", "vapor"], | |
dvrSeekLimit: -25 | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
return "7.4.0+" | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
var a = function(a, c, d) { | |
if (c = c || this, d = d || [], window.jwplayer && window.jwplayer.debug) return a.apply(c, d); | |
try { | |
return a.apply(c, d) | |
} catch (e) { | |
return new b(a.name, e) | |
} | |
}, | |
b = function(a, b) { | |
this.name = a, this.message = b.message || b.toString(), this.error = b | |
}; | |
return { | |
tryCatch: a, | |
Error: b | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43)], e = function(a) { | |
var b = function() { | |
var b = {}, | |
c = {}, | |
d = {}, | |
e = {}; | |
return { | |
start: function(c) { | |
b[c] = a.now(), d[c] = d[c] + 1 || 1 | |
}, | |
end: function(d) { | |
if (b[d]) { | |
var e = a.now() - b[d]; | |
c[d] = c[d] + e || e | |
} | |
}, | |
dump: function() { | |
return { | |
counts: d, | |
sums: c, | |
events: e | |
} | |
}, | |
tick: function(b, c) { | |
e[b] = c || a.now() | |
}, | |
between: function(a, b) { | |
return e[b] && e[a] ? e[b] - e[a] : -1 | |
} | |
} | |
}; | |
return b | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
return { | |
BUFFERING: "buffering", | |
IDLE: "idle", | |
COMPLETE: "complete", | |
PAUSED: "paused", | |
PLAYING: "playing", | |
ERROR: "error", | |
LOADING: "loading", | |
STALLED: "stalled" | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(71), c(105), c(72), c(43), c(92), c(101), c(75), c(104), c(63), c(46), c(106), c(45), c(74), c(61), c(44), c(162)], e = function(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) { | |
function q(a) { | |
return function() { | |
var b = Array.prototype.slice.call(arguments, 0); | |
this.eventsQueue.push([a, b]) | |
} | |
} | |
function r(a) { | |
return a === n.LOADING || a === n.STALLED ? n.BUFFERING : a | |
} | |
var s = function(a) { | |
this.originalContainer = this.currentContainer = a, this.eventsQueue = [], d.extend(this, l), this._model = new g | |
}; | |
return s.prototype = { | |
play: q("play"), | |
pause: q("pause"), | |
setVolume: q("setVolume"), | |
setMute: q("setMute"), | |
seek: q("seek"), | |
stop: q("stop"), | |
load: q("load"), | |
playlistNext: q("playlistNext"), | |
playlistPrev: q("playlistPrev"), | |
playlistItem: q("playlistItem"), | |
playlistItemChange: q("playlistItemChange"), | |
setFullscreen: q("setFullscreen"), | |
setCurrentCaptions: q("setCurrentCaptions"), | |
setCurrentQuality: q("setCurrentQuality"), | |
setSecondCaptions: q("setSecondCaptions"), | |
setSpeed: q("setSpeed"), | |
setup: function(g, l) { | |
function p() { | |
fa.mediaModel.on("change:state", function(a, b) { | |
var c = r(b); | |
fa.set("state", c) | |
}) | |
} | |
function q() { | |
ia = null, E(fa.get("item")), fa.on("change:state", m, this), fa.on("change:castState", function(a, b) { | |
na.trigger(o.JWPLAYER_CAST_SESSION, b) | |
}), fa.on("change:fullscreen", function(a, b) { | |
na.trigger(o.JWPLAYER_FULLSCREEN, { | |
fullscreen: b | |
}) | |
}), fa.on("itemReady", function() { | |
na.trigger(o.JWPLAYER_PLAYLIST_ITEM, { | |
index: fa.get("item"), | |
item: fa.get("playlistItem") | |
}) | |
}), fa.on("change:playlist", function(a, b) { | |
b.length && na.trigger(o.JWPLAYER_PLAYLIST_LOADED, { | |
playlist: b | |
}) | |
}), fa.on("change:volume", function(a, b) { | |
na.trigger(o.JWPLAYER_MEDIA_VOLUME, { | |
volume: b | |
}) | |
}), fa.on("change:mute", function(a, b) { | |
na.trigger(o.JWPLAYER_MEDIA_MUTE, { | |
mute: b | |
}) | |
}), fa.on("change:controls", function(a, b) { | |
na.trigger(o.JWPLAYER_CONTROLS, { | |
controls: b | |
}) | |
}), fa.on("change:scrubbing", function(a, b) { | |
b ? y() : w() | |
}), fa.on("change:captionsList", function(a, b) { | |
na.trigger(o.JWPLAYER_CAPTIONS_LIST, { | |
tracks: b, | |
track: T() | |
}) | |
}), fa.mediaController.on("all", na.trigger.bind(na)), ga.on("all", na.trigger.bind(na)), this.showView(ga.element()), window.addEventListener("beforeunload", function() { | |
ia && ia.destroy(), fa && fa.destroy() | |
}), d.defer(s) | |
} | |
function s() { | |
for (na.trigger(o.JWPLAYER_READY, { | |
setupTime: 0 | |
}), na.trigger(o.JWPLAYER_PLAYLIST_LOADED, { | |
playlist: fa.get("playlist") | |
}), na.trigger(o.JWPLAYER_PLAYLIST_ITEM, { | |
index: fa.get("item"), | |
item: fa.get("playlistItem") | |
}), na.trigger(o.JWPLAYER_CAPTIONS_LIST, { | |
tracks: fa.get("captionsList"), | |
track: fa.get("captionsIndex") | |
}), fa.get("autostart") && w({ | |
reason: "autostart" | |
}); na.eventsQueue.length > 0;) { | |
var a = na.eventsQueue.shift(), | |
b = a[0], | |
c = a[1] || []; | |
na[b].apply(na, c) | |
} | |
} | |
function t(a) { | |
switch (fa.get("state") === n.ERROR && fa.set("state", n.IDLE), x(!0), fa.get("autostart") && fa.once("itemReady", w), typeof a) { | |
case "string": | |
u(a); | |
break; | |
case "object": | |
var b = D(a); | |
b && E(0); | |
break; | |
case "number": | |
E(a) | |
} | |
} | |
function u(a) { | |
var b = new i; | |
b.on(o.JWPLAYER_PLAYLIST_LOADED, function(a) { | |
t(a.playlist) | |
}), b.on(o.JWPLAYER_ERROR, function(a) { | |
a.message = "Error loading playlist: " + a.message, this.triggerError(a) | |
}, this), b.load(a) | |
} | |
function v() { | |
var a = na._instreamAdapter && na._instreamAdapter.getState(); | |
return d.isString(a) ? a : fa.get("state") | |
} | |
function w(a) { | |
var b; | |
if (a && fa.set("playReason", a.reason), fa.get("state") !== n.ERROR) { | |
var c = na._instreamAdapter && na._instreamAdapter.getState(); | |
if (d.isString(c)) return l.pauseAd(!1); | |
if (fa.get("state") === n.COMPLETE && (x(!0), E(0)), !la && (la = !0, na.trigger(o.JWPLAYER_MEDIA_BEFOREPLAY, { | |
playReason: fa.get("playReason") | |
}), la = !1, ka)) return ka = !1, void(ja = null); | |
if (z()) { | |
if (0 === fa.get("playlist").length) return !1; | |
b = j.tryCatch(function() { | |
fa.loadVideo() | |
}) | |
} else fa.get("state") === n.PAUSED && (b = j.tryCatch(function() { | |
fa.playVideo() | |
})); | |
return !(b instanceof j.Error) || (na.triggerError(b), ja = null, !1) | |
} | |
} | |
function x(a) { | |
fa.off("itemReady", w); | |
var b = !a; | |
ja = null; | |
var c = j.tryCatch(function() { | |
fa.stopVideo() | |
}, na); | |
return c instanceof j.Error ? (na.triggerError(c), !1) : (b && (ma = !0), la && (ka = !0), !0) | |
} | |
function y() { | |
ja = null; | |
var a = na._instreamAdapter && na._instreamAdapter.getState(); | |
if (d.isString(a)) return l.pauseAd(!0); | |
switch (fa.get("state")) { | |
case n.ERROR: | |
return !1; | |
case n.PLAYING: | |
case n.BUFFERING: | |
var b = j.tryCatch(function() { | |
oa().pause() | |
}, this); | |
if (b instanceof j.Error) return na.triggerError(b), !1; | |
break; | |
default: | |
la && (ka = !0) | |
} | |
return !0 | |
} | |
function z() { | |
var a = fa.get("state"); | |
return a === n.IDLE || a === n.COMPLETE || a === n.ERROR | |
} | |
function A(a) { | |
fa.get("state") !== n.ERROR && (fa.get("scrubbing") || fa.get("state") === n.PLAYING || w(!0), oa().seek(a)) | |
} | |
function B(a, b) { | |
x(!0), E(a), w(b) | |
} | |
function C(a) { | |
x(!0), E(a) | |
} | |
function D(a) { | |
var b = h(a); | |
return b = h.filterPlaylist(b, fa.getProviders(), fa.get("androidhls"), fa.get("drm"), fa.get("preload"), fa.get("feedid")), fa.set("playlist", b), !(!d.isArray(b) || 0 === b.length) || (na.triggerError({ | |
message: "Error loading playlist: No playable sources found" | |
}), !1) | |
} | |
function E(a) { | |
var b = fa.get("playlist"); | |
a = parseInt(a, 10) || 0, a = (a + b.length) % b.length, fa.set("item", a), fa.set("playlistItem", b[a]), fa.setActiveItem(b[a]), ha.reloadPlaylistItem(b[a]), ga.reloadPlaylistItem(b[a]) | |
} | |
function F(a) { | |
B(fa.get("item") - 1, a || { | |
reason: "external" | |
}) | |
} | |
function G(a) { | |
B(fa.get("item") + 1, a || { | |
reason: "external" | |
}) | |
} | |
function H() { | |
if (z()) { | |
if (ma) return void(ma = !1); | |
ja = H; | |
var a = fa.get("item"); | |
return a === fa.get("playlist").length - 1 ? void(fa.get("repeat") ? G({ | |
reason: "repeat" | |
}) : (fa.set("state", n.COMPLETE), na.trigger(o.JWPLAYER_PLAYLIST_COMPLETE, {}))) : void G({ | |
reason: "playlist" | |
}) | |
} | |
} | |
function I(a) { | |
oa() && (a = parseInt(a, 10) || 0, oa().setCurrentQuality(a)) | |
} | |
function J(a) { | |
var b = fa.get("provider").name; | |
return b.indexOf("html5") >= 0 && (oa().setSpeed(a), !0) | |
} | |
function K() { | |
return oa() ? oa().getCurrentQuality() : -1 | |
} | |
function L() { | |
if (this._model) return this._model.getConfiguration() | |
} | |
function M() { | |
if (this._model.mediaModel) return this._model.mediaModel.get("visualQuality"); | |
var a = N(); | |
if (a) { | |
var b = K(), | |
c = a[b]; | |
if (c) return { | |
level: d.extend({ | |
index: b | |
}, c), | |
mode: "", | |
reason: "" | |
} | |
} | |
return null | |
} | |
function N() { | |
return oa() ? oa().getQualityLevels() : null | |
} | |
function O(a) { | |
oa() && (a = parseInt(a, 10) || 0, oa().setCurrentAudioTrack(a)) | |
} | |
function P() { | |
return oa() ? oa().getCurrentAudioTrack() : -1 | |
} | |
function Q() { | |
return oa() ? oa().getAudioTracks() : null | |
} | |
function R(a) { | |
a = parseInt(a, 10) || 0, fa.persistVideoSubtitleTrack(a), na.trigger(o.JWPLAYER_CAPTIONS_CHANGED, { | |
tracks: U(), | |
track: a | |
}) | |
} | |
function S(a) { | |
a === -1 ? ga.setCaptionSecond({}) : ga.setCaptionSecond(ha.getDataCaption(a)) | |
} | |
function T() { | |
return ha.getCurrentIndex() | |
} | |
function U() { | |
return ha.getCaptionsList() | |
} | |
function V() { | |
var a = fa.getVideo(); | |
if (a) { | |
var b = a.detachMedia(); | |
if (b instanceof HTMLVideoElement) return b | |
} | |
return null | |
} | |
function W() { | |
var a = j.tryCatch(function() { | |
fa.getVideo().attachMedia() | |
}); | |
return a instanceof j.Error ? void j.log("Error calling _attachMedia", a) : void("function" == typeof ja && ja()) | |
} | |
function X(a, b) { | |
oa() && oa().sendEvent(a, b) | |
} | |
function Y(a) { | |
oa() && oa().setMouse && oa().setMouse(a) | |
} | |
function Z(a) { | |
ga.setCaptionBack(a) | |
} | |
function $(a) { | |
ga.setCaptionDelay(a) | |
} | |
function _(a) { | |
ga.setCaptionColor(a) | |
} | |
function aa(a) { | |
ga.setCaptionLine(a) | |
} | |
function ba(a) { | |
ga.setCaptionSize(a) | |
} | |
function ca(a) { | |
ga.setCaptionFont(a) | |
} | |
function da(a) { | |
ga.setCaptionSecond(ha.getDataCaption(a)) | |
} | |
function ea() { | |
return ga.getCaptionStyle() | |
} | |
var fa, ga, ha, ia, ja, ka, la = !1, | |
ma = !1, | |
na = this, | |
oa = function() { | |
return fa.getVideo() | |
}, | |
pa = new a(g); | |
fa = this._model.setup(pa), ga = this._view = new k(l, fa), ha = new f(l, fa), ia = new e(l, fa, ga, D), ia.on(o.JWPLAYER_READY, q, this), ia.on(o.JWPLAYER_SETUP_ERROR, this.setupError, this), fa.mediaController.on(o.JWPLAYER_MEDIA_COMPLETE, function() { | |
d.defer(H) | |
}), fa.mediaController.on(o.JWPLAYER_MEDIA_ERROR, this.triggerError, this), fa.on("change:flashBlocked", function(a, b) { | |
if (!b) return void this._model.set("errorEvent", void 0); | |
var c = !!a.get("flashThrottle"), | |
d = { | |
message: c ? "Click to run Flash" : "Flash plugin failed to load" | |
}; | |
c || this.trigger(o.JWPLAYER_ERROR, d), this._model.set("errorEvent", d) | |
}, this), p(), fa.on("change:mediaModel", p), this.play = w, this.pause = y, this.seek = A, this.stop = x, this.load = t, this.playlistNext = G, this.playlistPrev = F, this.playlistItem = B, this.playlistItemChange = C, this.setCurrentCaptions = R, this.setSecondCaptions = S, this.setCurrentQuality = I, this.setSpeed = J, this.sendEvent = X, this.setMouse = Y, this.setCaptionBack = Z, this.setCaptionDelay = $, this.setCaptionColor = _, this.setCaptionLine = aa, this.setCaptionSize = ba, this.setCaptionFont = ca, this.setCaptionSecond = da, this.getCaptionStyle = ea, this.detachMedia = V, this.attachMedia = W, this.getCurrentQuality = K, this.getQualityLevels = N, this.setCurrentAudioTrack = O, this.getCurrentAudioTrack = P, this.getAudioTracks = Q, this.getCurrentCaptions = T, this.getCaptionsList = U, this.getVisualQuality = M, this.getConfig = L, this.getState = v, this.setVolume = fa.setVolume, this.setMute = fa.setMute, this.getProvider = function() { | |
return fa.get("provider") | |
}, this.getWidth = function() { | |
return fa.get("containerWidth") | |
}, this.getHeight = function() { | |
return fa.get("containerHeight") | |
}, this.getContainer = function() { | |
return this.currentContainer | |
}, this.resize = ga.resize, this.getSafeRegion = ga.getSafeRegion, this.setCues = ga.addCues, this.setFullscreen = function(a) { | |
d.isBoolean(a) || (a = !fa.get("fullscreen")), fa.set("fullscreen", a), this._instreamAdapter && this._instreamAdapter._adModel && this._instreamAdapter._adModel.set("fullscreen", a) | |
}, this.addButton = function(a, b, c, e, f) { | |
var g = { | |
img: a, | |
tooltip: b, | |
callback: c, | |
id: e, | |
btnClass: f | |
}, | |
h = fa.get("dock"); | |
h = h ? h.slice(0) : [], h = d.reject(h, d.matches({ | |
id: g.id | |
})), h.push(g), fa.set("dock", h) | |
}, this.removeButton = function(a) { | |
var b = fa.get("dock") || []; | |
b = d.reject(b, d.matches({ | |
id: a | |
})), fa.set("dock", b) | |
}, this.checkBeforePlay = function() { | |
return la | |
}, this.getItemQoe = function() { | |
return fa._qoeItem | |
}, this.setControls = function(a) { | |
d.isBoolean(a) || (a = !fa.get("controls")), fa.set("controls", a); | |
var b = fa.getVideo(); | |
b && b.setControls(a) | |
}, this.playerDestroy = function() { | |
this.stop(), this.showView(this.originalContainer), ga && ga.destroy(), fa && fa.destroy(), ia && (ia.destroy(), ia = null) | |
}, this.isBeforePlay = this.checkBeforePlay, this.isBeforeComplete = function() { | |
return fa.getVideo().checkComplete() | |
}, this.createInstream = function() { | |
return this.instreamDestroy(), this._instreamAdapter = new c(this, fa, ga), this._instreamAdapter | |
}, this.skipAd = function() { | |
this._instreamAdapter && this._instreamAdapter.skipAd() | |
}, this.instreamDestroy = function() { | |
na._instreamAdapter && na._instreamAdapter.destroy() | |
}, b(l, this), ia.start() | |
}, | |
showView: function(a) { | |
(document.documentElement.contains(this.currentContainer) || (this.currentContainer = document.getElementById(this._model.get("id")), this.currentContainer)) && (this.currentContainer.parentElement && this.currentContainer.parentElement.replaceChild(a, this.currentContainer), this.currentContainer = a) | |
}, | |
triggerError: function(a) { | |
this._model.set("errorEvent", a), this._model.set("state", n.ERROR), this._model.once("change:state", function() { | |
this._model.set("errorEvent", void 0) | |
}, this), this.trigger(o.JWPLAYER_ERROR, a) | |
}, | |
setupError: function(a) { | |
var b = a.message, | |
c = j.createElement(p(this._model.get("id"), this._model.get("skin"), b)), | |
e = this._model.get("width"), | |
f = this._model.get("height"); | |
j.style(c, { | |
width: e.toString().indexOf("%") > 0 ? e : e + "px", | |
height: f.toString().indexOf("%") > 0 ? f : f + "px" | |
}), this.showView(c); | |
var g = this; | |
d.defer(function() { | |
g.trigger(o.JWPLAYER_SETUP_ERROR, { | |
message: b | |
}) | |
}) | |
} | |
}, s | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(64), c(65), c(46), c(44), c(45), c(43)], e = function(a, b, c, d, e, f) { | |
var g = function() { | |
function g(e) { | |
var g = c.tryCatch(function() { | |
var c, g = e.responseXML ? e.responseXML.childNodes : null, | |
h = ""; | |
if (g) { | |
for (var k = 0; k < g.length && (h = g[k], 8 === h.nodeType); k++); | |
"xml" === a.localName(h) && (h = h.nextSibling), "rss" === a.localName(h) && (c = { | |
playlist: b.parse(h) | |
}) | |
} | |
if (!c) try { | |
var l = JSON.parse(e.responseText); | |
if (f.isArray(l)) c = { | |
playlist: l | |
}; | |
else { | |
if (!f.isArray(l.playlist)) throw null; | |
c = l | |
} | |
} catch (m) { | |
return void i("Not a valid RSS/JSON feed") | |
} | |
j.trigger(d.JWPLAYER_PLAYLIST_LOADED, c) | |
}); | |
g instanceof c.Error && i() | |
} | |
function h(a) { | |
i("Playlist load error: " + a) | |
} | |
function i(a) { | |
j.trigger(d.JWPLAYER_ERROR, { | |
message: a ? a : "Error loading file" | |
}) | |
} | |
var j = f.extend(this, e); | |
this.load = function(a) { | |
c.ajax(a, g, h) | |
}, this.destroy = function() { | |
this.off() | |
} | |
}; | |
return g | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(48)], e = function(a) { | |
return { | |
localName: function(a) { | |
return a ? a.localName ? a.localName : a.baseName ? a.baseName : "" : "" | |
}, | |
textContent: function(b) { | |
return b ? b.textContent ? a.trim(b.textContent) : b.text ? a.trim(b.text) : "" : "" | |
}, | |
getChildNode: function(a, b) { | |
return a.childNodes[b] | |
}, | |
numChildren: function(a) { | |
return a.childNodes ? a.childNodes.length : 0 | |
} | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(48), c(64), c(66), c(67), c(68)], e = function(a, b, c, d, e) { | |
function f(b) { | |
for (var f = {}, h = 0; h < b.childNodes.length; h++) { | |
var i = b.childNodes[h], | |
k = j(i); | |
if (k) switch (k.toLowerCase()) { | |
case "enclosure": | |
f.file = a.xmlAttribute(i, "url"); | |
break; | |
case "title": | |
f.title = g(i); | |
break; | |
case "guid": | |
f.mediaid = g(i); | |
break; | |
case "pubdate": | |
f.date = g(i); | |
break; | |
case "description": | |
f.description = g(i); | |
break; | |
case "link": | |
f.link = g(i); | |
break; | |
case "category": | |
f.tags ? f.tags += g(i) : f.tags = g(i) | |
} | |
} | |
return f = d(b, f), f = c(b, f), new e(f) | |
} | |
var g = b.textContent, | |
h = b.getChildNode, | |
i = b.numChildren, | |
j = b.localName, | |
k = {}; | |
return k.parse = function(a) { | |
for (var b = [], c = 0; c < i(a); c++) { | |
var d = h(a, c), | |
e = j(d).toLowerCase(); | |
if ("channel" === e) | |
for (var g = 0; g < i(d); g++) { | |
var k = h(d, g); | |
"item" === j(k).toLowerCase() && b.push(f(k)) | |
} | |
} | |
return b | |
}, k | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(64), c(48), c(46)], e = function(a, b, c) { | |
var d = "jwplayer", | |
e = function(e, f) { | |
for (var g = [], h = [], i = b.xmlAttribute, j = "default", k = "label", l = "file", m = "type", n = 0; n < e.childNodes.length; n++) { | |
var o = e.childNodes[n]; | |
if (o.prefix === d) { | |
var p = a.localName(o); | |
"source" === p ? (delete f.sources, g.push({ | |
file: i(o, l), | |
"default": i(o, j), | |
label: i(o, k), | |
type: i(o, m) | |
})) : "track" === p ? (delete f.tracks, h.push({ | |
file: i(o, l), | |
"default": i(o, j), | |
kind: i(o, "kind"), | |
label: i(o, k) | |
})) : (f[p] = c.serialize(a.textContent(o)), "file" === p && f.sources && delete f.sources) | |
} | |
f[l] || (f[l] = f.link) | |
} | |
if (g.length) | |
for (f.sources = [], n = 0; n < g.length; n++) g[n].file.length > 0 && (g[n][j] = "true" === g[n][j], g[n].label.length || delete g[n].label, f.sources.push(g[n])); | |
if (h.length) | |
for (f.tracks = [], n = 0; n < h.length; n++) h[n].file.length > 0 && (h[n][j] = "true" === h[n][j], h[n].kind = h[n].kind.length ? h[n].kind : "captions", h[n].label.length || delete h[n].label, f.tracks.push(h[n])); | |
return f | |
}; | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(64), c(48), c(46)], e = function(a, b, c) { | |
var d = b.xmlAttribute, | |
e = a.localName, | |
f = a.textContent, | |
g = a.numChildren, | |
h = "media", | |
i = function(a, b) { | |
function j(a) { | |
var b = { | |
zh: "Chinese", | |
nl: "Dutch", | |
en: "English", | |
fr: "French", | |
de: "German", | |
it: "Italian", | |
ja: "Japanese", | |
pt: "Portuguese", | |
ru: "Russian", | |
es: "Spanish" | |
}; | |
return b[a] ? b[a] : a | |
} | |
var k, l, m = "tracks", | |
n = []; | |
for (l = 0; l < g(a); l++) | |
if (k = a.childNodes[l], k.prefix === h) { | |
if (!e(k)) continue; | |
switch (e(k).toLowerCase()) { | |
case "content": | |
d(k, "duration") && (b.duration = c.seconds(d(k, "duration"))), g(k) > 0 && (b = i(k, b)), d(k, "url") && (b.sources || (b.sources = []), b.sources.push({ | |
file: d(k, "url"), | |
type: d(k, "type"), | |
width: d(k, "width"), | |
label: d(k, "label") | |
})); | |
break; | |
case "title": | |
b.title = f(k); | |
break; | |
case "description": | |
b.description = f(k); | |
break; | |
case "guid": | |
b.mediaid = f(k); | |
break; | |
case "thumbnail": | |
b.image || (b.image = d(k, "url")); | |
break; | |
case "player": | |
break; | |
case "group": | |
i(k, b); | |
break; | |
case "subtitle": | |
var o = {}; | |
o.file = d(k, "url"), o.kind = "captions", d(k, "lang").length > 0 && (o.label = j(d(k, "lang"))), n.push(o) | |
} | |
} | |
for (b.hasOwnProperty(m) || (b[m] = []), l = 0; l < n.length; l++) b[m].push(n[l]); | |
return b | |
}; | |
return i | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(69), c(70)], e = function(a, b, c) { | |
var d = { | |
sources: [], | |
tracks: [] | |
}, | |
e = function(e) { | |
e = e || {}, a.isArray(e.tracks) || delete e.tracks; | |
var f = a.extend({}, d, e); | |
a.isObject(f.sources) && !a.isArray(f.sources) && (f.sources = [b(f.sources)]), a.isArray(f.sources) && 0 !== f.sources.length || (e.levels ? f.sources = e.levels : f.sources = [b(e)]); | |
for (var g = 0; g < f.sources.length; g++) { | |
var h = f.sources[g]; | |
if (h) { | |
var i = h["default"]; | |
i ? h["default"] = "true" === i.toString() : h["default"] = !1, f.sources[g].label || (f.sources[g].label = g.toString()), f.sources[g] = b(f.sources[g]) | |
} | |
} | |
return f.sources = a.compact(f.sources), a.isArray(f.tracks) || (f.tracks = []), a.isArray(f.captions) && (f.tracks = f.tracks.concat(f.captions), delete f.captions), f.tracks = a.compact(a.map(f.tracks, c)), f | |
}; | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(48), c(43)], e = function(a, b, c) { | |
var d = { | |
"default": !1 | |
}, | |
e = function(e) { | |
if (e && e.file) { | |
var f = c.extend({}, d, e); | |
f.file = b.trim("" + f.file); | |
var g = /^[^\/]+\/(?:x-)?([^\/]+)$/; | |
if (a.isYouTube(f.file) ? f.type = "youtube" : a.isRtmp(f.file) ? f.type = "rtmp" : g.test(f.type) ? f.type = f.type.replace(g, "$1") : f.type || (f.type = b.extension(f.file)), f.type) { | |
switch (f.type) { | |
case "m3u8": | |
case "vnd.apple.mpegurl": | |
f.type = "hls"; | |
break; | |
case "dash+xml": | |
f.type = "dash"; | |
break; | |
case "smil": | |
f.type = "rtmp"; | |
break; | |
case "m4a": | |
f.type = "aac"; | |
break; | |
case "hlsjs": | |
f.type = "hlsjs" | |
} | |
return c.each(f, function(a, b) { | |
"" === a && delete f[b] | |
}), f | |
} | |
} | |
}; | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43)], e = function(a) { | |
var b = { | |
kind: "captions", | |
"default": !1 | |
}, | |
c = function(c) { | |
if (c && c.file) return a.extend({}, b, c) | |
}; | |
return c | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(43)], e = function(a, b) { | |
function d(c) { | |
b.each(c, function(b, d) { | |
c[d] = a.serialize(b) | |
}) | |
} | |
function e(a) { | |
return a.slice && "px" === a.slice(-2) && (a = a.slice(0, -2)), a | |
} | |
function f(b, c) { | |
if (c.toString().indexOf("%") === -1) return 0; | |
if ("string" != typeof b || !a.exists(b)) return 0; | |
if (/^\d*\.?\d+%$/.test(b)) return b; | |
var d = b.indexOf(":"); | |
if (d === -1) return 0; | |
var e = parseFloat(b.substr(0, d)), | |
f = parseFloat(b.substr(d + 1)); | |
return e <= 0 || f <= 0 ? 0 : f / e * 100 + "%" | |
} | |
var g = { | |
autostart: !1, | |
controls: !0, | |
displaytitle: !0, | |
displaydescription: !0, | |
mobilecontrols: !1, | |
repeat: !1, | |
castAvailable: !1, | |
skin: "hdo", | |
stretching: "uniform", | |
width: 480, | |
height: 270 | |
}, | |
h = function(h) { | |
var i = b.extend({}, (window.jwplayer || {}).defaults, h); | |
d(i); | |
var j = b.extend({}, g, i); | |
if ("." === j.base && (j.base = a.getScriptPath("jwplayer.js")), j.base = (j.base || a.loadFrom()).replace(/\/?$/, "/"), c.p = j.base, j.width = e(j.width), j.height = e(j.height), j.flashplayer = j.flashplayer || a.getScriptPath("jwplayer.js") + "jwplayer.flash.swf", "http:" === window.location.protocol && (j.flashplayer = j.flashplayer.replace("https", "http")), j.aspectratio = f(j.aspectratio, j.width), b.isObject(j.skin) && (j.skinUrl = j.skin.url, j.skinColorInactive = j.skin.inactive, j.skinColorActive = j.skin.active, j.skinColorBackground = j.skin.background, j.skin = b.isString(j.skin.name) ? j.skin.name : g.skin), b.isString(j.skin) && j.skin.indexOf(".xml") > 0 && (console.log("JW Player does not support XML skins, please update your config"), j.skin = j.skin.replace(".xml", "")), j.aspectratio || delete j.aspectratio, !j.playlist) { | |
var k = b.pick(j, ["title", "description", "type", "mediaid", "image", "file", "sources", "tracks", "preload"]); | |
j.playlist = [k] | |
} | |
return j | |
}; | |
return h | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(73), c(91), c(44), c(61), c(46), c(45), c(43)], e = function(a, b, c, d, e, f, g) { | |
function h(c) { | |
var d = c.get("provider").name || ""; | |
return d.indexOf("flash") >= 0 ? b : a | |
} | |
var i = { | |
skipoffset: null, | |
tag: null | |
}, | |
j = function(a, b, f) { | |
function j(a, b) { | |
b = b || {}, u.tag && !b.tag && (b.tag = u.tag), this.trigger(a, b) | |
} | |
function k(a) { | |
s._adModel.set("duration", a.duration), s._adModel.set("position", a.position) | |
} | |
function l(a) { | |
if (m && t + 1 < m.length) { | |
s._adModel.set("state", "buffering"), b.set("skipButton", !1), t++; | |
var d, e = m[t]; | |
n && (d = n[t]), this.loadItem(e, d) | |
} else a.type === c.JWPLAYER_MEDIA_COMPLETE && (j.call(this, a.type, a), this.trigger(c.JWPLAYER_PLAYLIST_COMPLETE, {})), this.destroy() | |
} | |
var m, n, o, p, q, r = h(b), | |
s = new r(a, b), | |
t = 0, | |
u = {}, | |
v = g.bind(function(a) { | |
a = a || {}, a.hasControls = !!b.get("controls"), this.trigger(c.JWPLAYER_INSTREAM_CLICK, a), s && s._adModel && (s._adModel.get("state") === d.PAUSED ? a.hasControls && s.instreamPlay() : s.instreamPause()) | |
}, this), | |
w = g.bind(function() { | |
s && s._adModel && s._adModel.get("state") === d.PAUSED && b.get("controls") && (a.setFullscreen(), a.play()) | |
}, this); | |
this.type = "instream", this.init = function() { | |
o = b.getVideo(), p = b.get("position"), q = b.get("playlist")[b.get("item")], s.on("all", j, this), s.on(c.JWPLAYER_MEDIA_TIME, k, this), s.on(c.JWPLAYER_MEDIA_COMPLETE, l, this), s.init(), o.detachMedia(), b.mediaModel.set("state", d.BUFFERING), a.checkBeforePlay() || 0 === p && !o.checkComplete() ? (p = 0, b.set("preInstreamState", "instream-preroll")) : o && o.checkComplete() || b.get("state") === d.COMPLETE ? b.set("preInstreamState", "instream-postroll") : b.set("preInstreamState", "instream-midroll"); | |
var g = b.get("state"); | |
return g !== d.PLAYING && g !== d.BUFFERING || o.pause(), f.setupInstream(s._adModel), s._adModel.set("state", d.BUFFERING), f.clickHandler().setAlternateClickHandlers(e.noop, null), this.setText("Loading ad"), this | |
}, this.loadItem = function(a, d) { | |
if (e.isAndroid(2.3)) return void this.trigger({ | |
type: c.JWPLAYER_ERROR, | |
message: "Error loading instream: Cannot play instream on Android 2.3" | |
}); | |
g.isArray(a) && (m = a, n = d, a = m[t], n && (d = n[t])), this.trigger(c.JWPLAYER_PLAYLIST_ITEM, { | |
index: t, | |
item: a | |
}), a.type = "mp4", a.sources || (a.sources = [{ | |
file: a.file, | |
type: a.type | |
}]), u = g.extend({}, i, d), s.load(a), this.addClickHandler(); | |
var f = a.skipoffset || u.skipoffset; | |
f && (s._adModel.set("skipMessage", u.skipMessage), s._adModel.set("skipText", u.skipText), s._adModel.set("skipOffset", f), b.set("skipButton", !0)) | |
}, this.applyProviderListeners = function(a) { | |
s.applyProviderListeners(a), this.addClickHandler() | |
}, this.play = function() { | |
s.instreamPlay() | |
}, this.pause = function() { | |
s.instreamPause() | |
}, this.hide = function() { | |
s.hide() | |
}, this.addClickHandler = function() { | |
f.clickHandler().setAlternateClickHandlers(v, w), s.on(c.JWPLAYER_MEDIA_META, this.metaHandler, this) | |
}, this.skipAd = function(a) { | |
var b = c.JWPLAYER_AD_SKIPPED; | |
this.trigger(b, a), l.call(this, { | |
type: b | |
}) | |
}, this.metaHandler = function(a) { | |
a.width && a.height && f.resizeMedia() | |
}, this.destroy = function() { | |
if (this.off(), b.set("skipButton", !1), s) { | |
f.clickHandler() && f.clickHandler().revertAlternateClickHandlers(), s.instreamDestroy(), f.destroyInstream(), s = null, a.attachMedia(); | |
var c = b.get("preInstreamState"); | |
switch (c) { | |
case "instream-preroll": | |
case "instream-midroll": | |
var h = g.extend({}, q); | |
h.starttime = p, b.loadVideo(h), e.isMobile() && b.mediaModel.get("state") === d.BUFFERING && o.setState(d.BUFFERING), o.play(); | |
break; | |
case "instream-postroll": | |
case "instream-idle": | |
o.stop() | |
} | |
} | |
}, this.getState = function() { | |
return !(!s || !s._adModel) && s._adModel.get("state") | |
}, this.setText = function(a) { | |
f.setAltText(a ? a : "") | |
}, this.hide = function() { | |
f.useExternalControls() | |
} | |
}; | |
return g.extend(j.prototype, f), j | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(45), c(74), c(44), c(61), c(75)], e = function(a, b, c, d, e, f) { | |
var g = function(g, h) { | |
function i(b) { | |
var e = b || m.getVideo(); | |
if (n !== e) { | |
if (n = e, !e) return; | |
var f = "vpaid" === o; | |
e.off(), e.on("all", function(b, c) { | |
f && b === d.JWPLAYER_MEDIA_COMPLETE || (c = a.extend({}, c, { | |
type: b | |
}), this.trigger(b, c)) | |
}, p), e.on(d.JWPLAYER_MEDIA_BUFFER_FULL, l), e.on(d.JWPLAYER_PLAYER_STATE, j), e.attachMedia(), e.volume(h.get("volume")), e.mute(h.get("mute")), m.on("change:state", c, p) | |
} | |
} | |
function j(a) { | |
switch (a.newstate) { | |
case e.PLAYING: | |
m.set("state", a.newstate); | |
break; | |
case e.PAUSED: | |
m.set("state", a.newstate) | |
} | |
} | |
function k(a) { | |
h.trigger(a.type, a), p.trigger(d.JWPLAYER_FULLSCREEN, { | |
fullscreen: a.jwstate | |
}) | |
} | |
function l() { | |
m.getVideo().play() | |
} | |
var m, n, o = "instream", | |
p = a.extend(this, b); | |
return g.on(d.JWPLAYER_FULLSCREEN, function(a) { | |
this.trigger(d.JWPLAYER_FULLSCREEN, a) | |
}, p), this.init = function() { | |
m = (new f).setup({ | |
id: h.get("id"), | |
volume: h.get("volume"), | |
fullscreen: h.get("fullscreen"), | |
mute: h.get("mute") | |
}), m.on("fullscreenchange", k), this._adModel = m | |
}, p.load = function(a) { | |
m.set("item", 0), m.set("playlistItem", a), m.set("type", a.adtype || "instream"), a.adtype && (o = a.adtype), m.setActiveItem(a), i(), m.off(d.JWPLAYER_ERROR), m.on(d.JWPLAYER_ERROR, function(a) { | |
this.trigger(d.JWPLAYER_ERROR, a) | |
}, p), m.loadVideo(a) | |
}, p.applyProviderListeners = function(a) { | |
i(a), a.off(d.JWPLAYER_ERROR), a.on(d.JWPLAYER_ERROR, function(a) { | |
this.trigger(d.JWPLAYER_ERROR, a) | |
}, p), h.on("change:volume", function(a, b) { | |
n.volume(b) | |
}, p), h.on("change:mute", function(a, b) { | |
n.mute(b) | |
}, p) | |
}, this.instreamDestroy = function() { | |
m && (m.off(), this.off(), n && (n.detachMedia(), n.off(), m.getVideo() && n.destroy()), m = null, g.off(null, null, this), g = null) | |
}, p.instreamPlay = function() { | |
m.getVideo() && m.getVideo().play(!0) | |
}, p.instreamPause = function() { | |
m.getVideo() && m.getVideo().pause(!0) | |
}, p | |
}; | |
return g | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(61)], e = function(a) { | |
function b(b) { | |
return b === a.COMPLETE || b === a.ERROR ? a.IDLE : b | |
} | |
return function(a, c, d) { | |
if (c = b(c), d = b(d), c !== d) { | |
var e = c.replace(/(?:ing|d)$/, ""), | |
f = { | |
type: e, | |
newstate: c, | |
oldstate: d, | |
reason: a.mediaModel.get("state") | |
}; | |
"play" === e && (f.playReason = a.get("playReason")), this.trigger(e, f) | |
} | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(76), c(88), c(89), c(43), c(45), c(90), c(44), c(61)], e = function(a, b, c, d, e, f, g, h, i) { | |
var j = ["volume", "mute", "captionLabel", "qualityLabel"], | |
k = function() { | |
function g(a, b) { | |
switch (a) { | |
case "flashThrottle": | |
var c = "resume" !== b.state; | |
this.set("flashThrottle", c), this.set("flashBlocked", c); | |
break; | |
case "flashBlocked": | |
return void this.set("flashBlocked", !0); | |
case "flashUnblocked": | |
return void this.set("flashBlocked", !1); | |
case "volume": | |
case "mute": | |
return void this.set(a, b[a]); | |
case h.JWPLAYER_MEDIA_TYPE: | |
this.mediaModel.set("mediaType", b.mediaType); | |
break; | |
case h.JWPLAYER_PLAYER_STATE: | |
return void this.mediaModel.set("state", b.newstate); | |
case h.JWPLAYER_MEDIA_BUFFER: | |
this.set("buffer", b.bufferPercent); | |
case h.JWPLAYER_MEDIA_META: | |
var d = b.duration; | |
e.isNumber(d) && (this.mediaModel.set("duration", d), this.set("duration", d)); | |
break; | |
case h.JWPLAYER_MEDIA_BUFFER_FULL: | |
this.mediaModel.get("playAttempt") ? this.playVideo() : this.mediaModel.on("change:playAttempt", function() { | |
this.playVideo() | |
}, this); | |
break; | |
case h.JWPLAYER_MEDIA_TIME: | |
this.mediaModel.set("position", b.position), this.set("position", b.position), e.isNumber(b.duration) && (this.mediaModel.set("duration", b.duration), this.set("duration", b.duration)); | |
break; | |
case h.JWPLAYER_PROVIDER_CHANGED: | |
this.set("provider", m.getName()); | |
break; | |
case h.JWPLAYER_MEDIA_LEVELS: | |
this.setQualityLevel(b.currentQuality, b.levels), this.mediaModel.set("levels", b.levels); | |
break; | |
case h.JWPLAYER_MEDIA_LEVEL_CHANGED: | |
this.setQualityLevel(b.currentQuality, b.levels), this.persistQualityLevel(b.currentQuality, b.levels); | |
break; | |
case h.JWPLAYER_AUDIO_TRACKS: | |
this.setCurrentAudioTrack(b.currentTrack, b.tracks), this.mediaModel.set("audioTracks", b.tracks); | |
break; | |
case h.JWPLAYER_AUDIO_TRACK_CHANGED: | |
this.setCurrentAudioTrack(b.currentTrack, b.tracks); | |
break; | |
case "subtitlesTrackChanged": | |
this.setVideoSubtitleTrack(b.currentTrack, b.tracks); | |
break; | |
case "visualQuality": | |
var f = e.extend({}, b); | |
this.mediaModel.set("visualQuality", f) | |
} | |
var g = e.extend({}, b, { | |
type: a | |
}); | |
this.mediaController.trigger(a, g) | |
} | |
var k, m, n = this, | |
o = a.noop; | |
this.mediaController = e.extend({}, f), this.mediaModel = new l, d.model(this), this.set("mediaModel", this.mediaModel), this.setup = function(b) { | |
var d = new c; | |
return d.track(j, this), b.item || (b.item = 0), e.extend(this.attributes, d.getAllItems(), b, { | |
state: i.IDLE, | |
flashBlocked: !1, | |
fullscreen: !1, | |
compactUI: !1, | |
scrubbing: !1, | |
duration: 0, | |
position: 0, | |
buffer: 0 | |
}), void 0 === this.get("mute") && this.set("mute", !1), void 0 === this.get("volume") && this.set("volume", 90), a.isMobile() && !b.mobileSdk && this.set("autostart", !1), this.updateProviders(), this | |
}, this.getConfiguration = function() { | |
return e.omit(this.clone(), ["mediaModel"]) | |
}, this.updateProviders = function() { | |
k = new b(this.getConfiguration()) | |
}, this.setQualityLevel = function(a, b) { | |
a > -1 && b.length > 1 && "youtube" !== m.getName().name && this.mediaModel.set("currentLevel", parseInt(a)) | |
}, this.persistQualityLevel = function(a, b) { | |
var c = b[a] || {}, | |
d = c.label; | |
this.set("qualityLabel", d) | |
}, this.setCurrentAudioTrack = function(a, b) { | |
a > -1 && b.length > 0 && a < b.length && this.mediaModel.set("currentAudioTrack", parseInt(a)) | |
}, this.onMediaContainer = function() { | |
var a = this.get("mediaContainer"); | |
o.setContainer(a) | |
}, this.changeVideoProvider = function(a) { | |
this.off("change:mediaContainer", this.onMediaContainer), m && (m.off(null, null, this), m.getContainer() && m.remove()), o = new a(n.get("id"), n.getConfiguration()); | |
var b = this.get("mediaContainer"); | |
b ? o.setContainer(b) : this.once("change:mediaContainer", this.onMediaContainer), this.set("provider", o.getName()), o.getName().name.indexOf("flash") === -1 && (this.set("flashThrottle", void 0), this.set("flashBlocked", !1)), m = o, m.volume(n.get("volume")), m.mute(n.get("mute")), m.on("all", g, this) | |
}, this.destroy = function() { | |
this.off(), m && (m.off(null, null, this), m.destroy()) | |
}, this.getVideo = function() { | |
return m | |
}, this.setFullscreen = function(a) { | |
a = !!a, a !== n.get("fullscreen") && n.set("fullscreen", a) | |
}, this.chooseProvider = function(a) { | |
return k.choose(a).provider | |
}, this.setActiveItem = function(a) { | |
this.mediaModel.off(), this.mediaModel = new l, this.set("mediaModel", this.mediaModel); | |
var b = a && a.sources && a.sources[0]; | |
if (void 0 !== b) { | |
var c = this.chooseProvider(b); | |
if (!c) throw new Error("No suitable provider found"); | |
o instanceof c || n.changeVideoProvider(c), o.init && o.init(a), this.trigger("itemReady", a) | |
} | |
}, this.getProviders = function() { | |
return k | |
}, this.resetProvider = function() { | |
o = null | |
}, this.setVolume = function(a) { | |
a = Math.round(a), n.set("volume", a), m && m.volume(a); | |
var b = 0 === a; | |
b !== n.get("mute") && n.setMute(b) | |
}, this.setMute = function(b) { | |
if (a.exists(b) || (b = !n.get("mute")), n.set("mute", b), m && m.mute(b), !b) { | |
var c = Math.max(10, n.get("volume")); | |
this.setVolume(c) | |
} | |
}, this.loadVideo = function(a) { | |
if (this.mediaModel.set("playAttempt", !0), this.mediaController.trigger(h.JWPLAYER_MEDIA_PLAY_ATTEMPT, { | |
playReason: this.get("playReason") | |
}), !a) { | |
var b = this.get("item"); | |
a = this.get("playlist")[b] | |
} | |
this.set("position", a.starttime || 0), this.set("duration", a.duration || 0), m.load(a) | |
}, this.stopVideo = function() { | |
m && m.stop() | |
}, this.playVideo = function() { | |
m.play() | |
}, this.persistCaptionsTrack = function() { | |
var a = this.get("captionsTrack"); | |
a ? this.set("captionLabel", a.label) : this.set("captionLabel", "Off") | |
}, this.setVideoSubtitleTrack = function(a, b) { | |
this.set("captionsIndex", a), a && b && a <= b.length && b[a - 1].data && b[a - 1].data.length > 0 && this.set("captionsTrack", b[a - 1]), m && m.setSubtitlesTrack && m.setSubtitlesTrack(a) | |
}, this.persistVideoSubtitleTrack = function(a) { | |
this.setVideoSubtitleTrack(a), this.persistCaptionsTrack() | |
} | |
}, | |
l = k.MediaModel = function() { | |
this.set("state", i.IDLE) | |
}; | |
return e.extend(k.prototype, g), e.extend(l.prototype, g), k | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(77), c(78), c(80), c(43)], e = function(a, b, d, e) { | |
function f(a) { | |
this.providers = b.slice(), this.config = a || {}, this.reorderProviders() | |
} | |
return f.registerProvider = function(c) { | |
var f; | |
try { | |
f = c.getName().name | |
} catch (g) { | |
f = "flash" | |
} | |
if (!d[f]) { | |
if (!e.find(b, e.matches({ | |
name: f | |
}))) { | |
if (!e.isFunction(c.supports)) throw { | |
message: "Tried to register a provider with an invalid object" | |
}; | |
b.unshift({ | |
name: f, | |
supports: c.supports | |
}) | |
} | |
var h = function() {}; | |
h.prototype = a, c.prototype = new h, d[f] = c | |
} | |
}, f.load = function(a) { | |
return Promise.all(e.map(a, function(a) { | |
return new Promise(function(b) { | |
switch (a.name) { | |
case "html5": | |
! function(a) { | |
b(c(81)) | |
}(c); | |
break; | |
case "flash": | |
! function(a) { | |
b(c(82)) | |
}(c); | |
break; | |
case "youtube": | |
! function(a) { | |
b(c(85)) | |
}(c); | |
break; | |
case "hlsjs": | |
! function(a) { | |
b(c(84)) | |
}(c); | |
break; | |
default: | |
b() | |
} | |
}).then(function(a) { | |
a && f.registerProvider(a) | |
}) | |
})) | |
}, e.extend(f.prototype, { | |
reorderProviders: function() { | |
if ("flash" === this.config.primary) { | |
var a = e.indexOf(this.providers, e.findWhere(this.providers, { | |
name: "flash" | |
})), | |
b = this.providers.splice(a, 1)[0], | |
c = e.indexOf(this.providers, e.findWhere(this.providers, { | |
name: "html5" | |
})); | |
this.providers.splice(c, 0, b) | |
} | |
}, | |
providerSupports: function(a, b) { | |
return a.supports(b) | |
}, | |
required: function(a, b) { | |
return a = a.slice(), e.compact(e.map(this.providers, function(c) { | |
for (var d = !1, e = a.length; e--;) { | |
var f = a[e], | |
g = c.supports(f.sources[0], b); | |
g && a.splice(e, 1), d = d || g | |
} | |
if (d) return c | |
})) | |
}, | |
choose: function(a) { | |
a = e.isObject(a) ? a : {}; | |
for (var b = this.providers.length, c = 0; c < b; c++) { | |
var f = this.providers[c]; | |
if (this.providerSupports(f, a)) { | |
var g = b - c - 1; | |
return { | |
priority: g, | |
name: f.name, | |
type: a.type, | |
provider: d[f.name] | |
} | |
} | |
} | |
return null | |
} | |
}), f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(44), c(61), c(43)], e = function(a, b, c, d) { | |
var e = a.noop, | |
f = d.constant(!1), | |
g = { | |
supports: f, | |
play: e, | |
load: e, | |
stop: e, | |
volume: e, | |
mute: e, | |
seek: e, | |
resize: e, | |
remove: e, | |
destroy: e, | |
setVisibility: e, | |
setFullscreen: f, | |
getFullscreen: e, | |
getContainer: e, | |
setContainer: f, | |
getName: e, | |
getQualityLevels: e, | |
getCurrentQuality: e, | |
setCurrentQuality: e, | |
getAudioTracks: e, | |
getCurrentAudioTrack: e, | |
setCurrentAudioTrack: e, | |
checkComplete: e, | |
setControls: e, | |
attachMedia: e, | |
detachMedia: e, | |
setState: function(a) { | |
var d = this.state || c.IDLE; | |
this.state = a, a !== d && this.trigger(b.JWPLAYER_PLAYER_STATE, { | |
newstate: a | |
}) | |
}, | |
sendMediaType: function(a) { | |
var c = a[0].type, | |
d = "oga" === c || "aac" === c || "mp3" === c || "mpeg" === c || "vorbis" === c; | |
this.trigger(b.JWPLAYER_MEDIA_TYPE, { | |
mediaType: d ? "audio" : "video" | |
}) | |
} | |
}; | |
return g | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(43), c(79)], e = function(a, b, c) { | |
function d(b) { | |
if ("hls" === b.type) | |
if (b.androidhls !== !1) { | |
var c = a.isAndroidNative; | |
if (c(2) || c(3) || c("4.0")) return !1; | |
if (a.isAndroid()) return !0 | |
} else if (a.isAndroid()) return !1; | |
return null | |
} | |
var e = [{ | |
name: "youtube", | |
supports: function(b) { | |
return a.isYouTube(b.file, b.type) | |
} | |
}, { | |
name: "drive", | |
supports: function(b) { | |
return a.isDrive(b.file, b.type) | |
} | |
}, { | |
name: "hlsjs", | |
supports: function(b) { | |
return a.isHLSJSSupport(b.file, b.type) | |
} | |
}, { | |
name: "html5", | |
supports: function(b) { | |
var e = { | |
aac: "audio/mp4", | |
mp4: "video/mp4", | |
f4v: "video/mp4", | |
m4v: "video/mp4", | |
mov: "video/mp4", | |
mp3: "audio/mpeg", | |
mpeg: "audio/mpeg", | |
ogv: "video/ogg", | |
ogg: "video/ogg", | |
oga: "video/ogg", | |
vorbis: "video/ogg", | |
webm: "video/webm", | |
f4a: "video/aac", | |
m3u8: "application/vnd.apple.mpegurl", | |
m3u: "application/vnd.apple.mpegurl", | |
hls: "application/vnd.apple.mpegurl" | |
}, | |
f = b.file, | |
g = b.type, | |
h = d(b); | |
if (null !== h) return h; | |
if (a.isRtmp(f, g)) return !1; | |
if (!e[g]) return !1; | |
if (c.canPlayType) { | |
var i = c.canPlayType(e[g]); | |
return !!i | |
} | |
return !1 | |
} | |
}, { | |
name: "flash", | |
supports: function(c) { | |
var d = { | |
flv: "video", | |
f4v: "video", | |
mov: "video", | |
m4a: "video", | |
m4v: "video", | |
mp4: "video", | |
aac: "video", | |
f4a: "video", | |
mp3: "sound", | |
mpeg: "sound", | |
smil: "rtmp", | |
m3u8: "hls", | |
hls: "hls", | |
youtube: "youtube", | |
google: "google" | |
}, | |
e = b.keys(d); | |
if (!a.isFlashSupported()) return !1; | |
var f = c.file, | |
g = c.type; | |
return !!a.isRtmp(f, g) || b.contains(e, g) | |
} | |
}]; | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
return document.createElement("video") | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(81), c(82), c(84), c(85), c(87)], e = function(a, b, c, d, e) { | |
var f = { | |
html5: a, | |
flash: b, | |
hlsjs: c, | |
youtube: d, | |
drive: e | |
}; | |
return f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(52), c(46), c(50), c(43), c(44), c(61), c(77), c(45)], e = function(a, b, c, d, e, f, g, h) { | |
function i(a, c) { | |
b.foreach(a, function(a, b) { | |
c.addEventListener(a, b, !1) | |
}) | |
} | |
function j(a, c) { | |
b.foreach(a, function(a, b) { | |
c.removeEventListener(a, b, !1) | |
}) | |
} | |
function k(a, b, c) { | |
"addEventListener" in a ? a.addEventListener(b, c) : a["on" + b] = c | |
} | |
function l(a, b, c) { | |
a && ("removeEventListener" in a ? a.removeEventListener(b, c) : a["on" + b] = null) | |
} | |
function m(a) { | |
if ("hls" === a.type) | |
if (a.androidhls !== !1) { | |
var c = b.isAndroidNative; | |
if (c(2) || c(3) || c("4.0")) return !1; | |
if (b.isAndroid()) return !0 | |
} else if (b.isAndroid()) return !1; | |
return null | |
} | |
function n(n, y) { | |
function z() { | |
Ha && (na(Va.audioTracks), ra(Va.textTracks), Va.setAttribute("jw-loaded", "data")) | |
} | |
function A() { | |
Ha && Va.setAttribute("jw-loaded", "started") | |
} | |
function B(a) { | |
Ba.trigger("click", a) | |
} | |
function C() { | |
Ha && !Ja && (J(I()), G(da(), ya, xa)) | |
} | |
function D() { | |
Ha && G(da(), ya, xa) | |
} | |
function E() { | |
o(Fa), Da = !0, Ha && (Ba.state === f.STALLED ? Ba.setState(f.PLAYING) : Ba.state === f.PLAYING && (Fa = setTimeout(ca, p)), Ja && Va.duration === 1 / 0 && 0 === Va.currentTime || (J(I()), H(Va.currentTime), G(da(), ya, xa), Ba.state === f.PLAYING && (Ba.trigger(e.JWPLAYER_MEDIA_TIME, { | |
position: ya, | |
duration: xa | |
}), F()))) | |
} | |
function F() { | |
var a = Ta.level; | |
if (a.width !== Va.videoWidth || a.height !== Va.videoHeight) { | |
if (a.width = Va.videoWidth, a.height = Va.videoHeight, ua(), !a.width || !a.height) return; | |
Ta.reason = Ta.reason || "auto", Ta.mode = "hls" === Aa[Ia].type ? "auto" : "manual", Ta.bitrate = 0, a.index = Ia, a.label = Aa[Ia].label, Ba.trigger("visualQuality", Ta), Ta.reason = "" | |
} | |
} | |
function G(a, b, c) { | |
a === Ga && c === xa || (Ga = a, Ba.trigger(e.JWPLAYER_MEDIA_BUFFER, { | |
bufferPercent: 100 * a, | |
position: b, | |
duration: c | |
})) | |
} | |
function H(a) { | |
xa < 0 && (a = -(_() - a)), ya = a | |
} | |
function I() { | |
var a = Va.duration, | |
b = _(); | |
if (a === 1 / 0 && b) { | |
var c = b - Va.seekable.start(0); | |
c !== 1 / 0 && c > 120 && (a = -c) | |
} | |
return a | |
} | |
function J(a) { | |
xa = a, Ea && a && a !== 1 / 0 && Ba.seek(Ea) | |
} | |
function K() { | |
var a = I(); | |
Ja && a === 1 / 0 && (a = 0), Ba.trigger(e.JWPLAYER_MEDIA_META, { | |
duration: a, | |
height: Va.videoHeight, | |
width: Va.videoWidth | |
}), J(a) | |
} | |
function L() { | |
Ha && (Da = !0, Ja || ua(), N()) | |
} | |
function M() { | |
Ha && (Va.muted && (Va.muted = !1, Va.muted = !0), Va.setAttribute("jw-loaded", "meta"), K()) | |
} | |
function N() { | |
za || (za = !0, Ba.trigger(e.JWPLAYER_MEDIA_BUFFER_FULL)) | |
} | |
function O() { | |
Ba.setState(f.PLAYING), Va.hasAttribute("jw-played") || Va.setAttribute("jw-played", ""), Ba.trigger(e.JWPLAYER_PROVIDER_FIRST_FRAME, {}) | |
} | |
function P() { | |
Ba.state !== f.COMPLETE && Va.currentTime !== Va.duration && Ba.setState(f.PAUSED) | |
} | |
function Q() { | |
Ja || Va.paused || Va.ended || Ba.state !== f.LOADING && Ba.state !== f.ERROR && (Ba.seeking || Ba.setState(f.STALLED)) | |
} | |
function R() { | |
Ha && (b.log("Error playing media: %o %s", Va.error, Va.src), Ba.trigger(e.JWPLAYER_MEDIA_ERROR, { | |
message: "Error loading media: File could not be played" | |
})) | |
} | |
function S(a) { | |
var c; | |
return "array" === b.typeOf(a) && a.length > 0 && (c = d.map(a, function(a, b) { | |
return { | |
label: a.label || b | |
} | |
})), c | |
} | |
function T(a) { | |
Aa = a, Ia = U(a); | |
var b = S(a); | |
b && Ba.trigger(e.JWPLAYER_MEDIA_LEVELS, { | |
levels: b, | |
currentQuality: Ia | |
}) | |
} | |
function U(a) { | |
var b = Math.max(0, Ia), | |
c = y.qualityLabel; | |
if (a) | |
for (var d = 0; d < a.length; d++) | |
if (a[d]["default"] && (b = d), c && a[d].label === c) return d; | |
return Ta.reason = "initial choice", Ta.level = {}, b | |
} | |
function V(a, c) { | |
Ea = 0, o(Fa); | |
var d = document.createElement("source"); | |
d.src = Aa[Ia].file; | |
var e = Va.src !== d.src, | |
g = Va.getAttribute("jw-loaded"), | |
h = Va.hasAttribute("jw-played"); | |
e || "none" === g || "started" === g ? (xa = c, W(Aa[Ia]), Y(Sa), Va.load()) : (0 === a && Va.currentTime > 0 && (Ea = -1, Ba.seek(a)), Va.play()), ya = Va.currentTime, s && !h && (N(), Va.paused || Ba.state === f.PLAYING || Ba.setState(f.LOADING)), b.isIOS() && Ba.getFullScreen() && (Va.controls = !0), a > 0 && Ba.seek(a) | |
} | |
function W(a) { | |
Na = null, Oa = null, Qa = -1, Pa = -1, Ra = -1, Ta.reason || (Ta.reason = "initial choice", Ta.level = {}), Da = !1, za = !1, Ja = m(a), a.preload && a.preload !== Va.getAttribute("preload") && Va.setAttribute("preload", a.preload); | |
var b = document.createElement("source"); | |
b.src = a.file; | |
var c = Va.src !== b.src; | |
c && (Va.setAttribute("jw-loaded", "none"), Va.src = a.file) | |
} | |
function X() { | |
Va && (va(), Va.removeAttribute("crossorigin"), Va.removeAttribute("preload"), Va.removeAttribute("src"), Va.removeAttribute("jw-loaded"), Va.removeAttribute("jw-played"), c.emptyElement(Va), Ia = -1, Sa = null, !r && "load" in Va && Va.load()) | |
} | |
function Y(a) { | |
if (null !== a) { | |
var d = b.isChrome() || b.isIOS() || b.isSafari(); | |
!Ka && d && (a !== Sa || a.length && !Va.textTracks.length) && (va(), c.emptyElement(Va), Sa = a, Z(a)) | |
} | |
} | |
function Z(a) { | |
if (a) | |
for (var c = 0; c < a.length; c++) { | |
var d = a[c]; | |
if ((/\.(?:web)?vtt(?:\?.*)?$/i.test(d.file) || b.isIOS()) && /subtitles|captions|descriptions|chapters|metadata/i.test(d.kind)) { | |
b.isIOS() && Va.setAttribute("crossorigin", "anonymous"); | |
var e = document.createElement("track"); | |
e.src = d.file, e.kind = d.kind, e.srclang = d.language || "", e.label = d.label, e.mode = "disabled", e["default"] = d["default"] || (d.defaulttrack ? "default" : ""), e.id = d["default"] || (d.defaulttrack ? "default" : ""), Va.appendChild(e) | |
} | |
} | |
} | |
function $() { | |
for (var a = Va.seekable ? Va.seekable.length : 0, b = 1 / 0; a--;) b = Math.min(b, Va.seekable.start(a)); | |
return b | |
} | |
function _() { | |
for (var a = Va.seekable ? Va.seekable.length : 0, b = 0; a--;) b = Math.max(b, Va.seekable.end(a)); | |
return b | |
} | |
function aa() { | |
Ba.seeking = !1, Ba.trigger(e.JWPLAYER_MEDIA_SEEKED) | |
} | |
function ba() { | |
Ba.trigger("volume", { | |
volume: Math.round(100 * Va.volume) | |
}), Ba.trigger("mute", { | |
mute: Va.muted | |
}) | |
} | |
function ca() { | |
Va.currentTime === ya && Q() | |
} | |
function da() { | |
var a = Va.buffered, | |
c = Va.duration; | |
return !a || 0 === a.length || c <= 0 || c === 1 / 0 ? 0 : b.between(a.end(a.length - 1) / c, 0, 1) | |
} | |
function ea() { | |
if (Ha && Ba.state !== f.IDLE && Ba.state !== f.COMPLETE) { | |
if (o(Fa), Ia = -1, La = !0, Ba.trigger(e.JWPLAYER_MEDIA_BEFORECOMPLETE), !Ha) return; | |
fa() | |
} | |
} | |
function fa() { | |
o(Fa), Ba.setState(f.COMPLETE), La = !1, Ba.trigger(e.JWPLAYER_MEDIA_COMPLETE) | |
} | |
function ga(a) { | |
Ma = !0, ma(a), b.isIOS() && (Va.controls = !1) | |
} | |
function ha() { | |
var a = -1, | |
b = 0; | |
if (Na) | |
for (b; b < Na.length; b++) | |
if ("showing" === Na[b].mode) { | |
a = b; | |
break | |
} | |
sa(a + 1) | |
} | |
function ia() { | |
for (var a = -1, b = 0; b < Va.audioTracks.length; b++) | |
if (Va.audioTracks[b].enabled) { | |
a = b; | |
break | |
} | |
oa(a) | |
} | |
function ja(a) { | |
ka(a.currentTarget.activeCues) | |
} | |
function ka(a) { | |
if (a && a.length && Ra !== a[0].startTime) { | |
var c = b.parseID3(a); | |
Ra = a[0].startTime, Ba.trigger("meta", { | |
metadataTime: Ra, | |
metadata: c | |
}) | |
} | |
} | |
function la(a) { | |
Ma = !1, ma(a), b.isIOS() && (Va.controls = !1) | |
} | |
function ma(a) { | |
Ba.trigger("fullscreenchange", { | |
target: a.target, | |
jwstate: Ma | |
}) | |
} | |
function na(a) { | |
if (Oa = null, a) { | |
if (a.length) { | |
for (var b = 0; b < a.length; b++) | |
if (a[b].enabled) { | |
Qa = b; | |
break | |
} | |
Qa === -1 && (Qa = 0, a[Qa].enabled = !0), Oa = d.map(a, function(a) { | |
var b = { | |
name: a.label || a.language, | |
language: a.language | |
}; | |
return b | |
}) | |
} | |
k(a, "change", ia), Oa && Ba.trigger("audioTracks", { | |
currentTrack: Qa, | |
tracks: Oa | |
}) | |
} | |
} | |
function oa(a) { | |
Va && Va.audioTracks && Oa && a > -1 && a < Va.audioTracks.length && a !== Qa && (Va.audioTracks[Qa].enabled = !1, Qa = a, Va.audioTracks[Qa].enabled = !0, Ba.trigger("audioTrackChanged", { | |
currentTrack: Qa, | |
tracks: Oa | |
})) | |
} | |
function pa() { | |
return Oa || [] | |
} | |
function qa() { | |
return Qa | |
} | |
function ra(a) { | |
if (Na = null, a) { | |
if (a.length) { | |
var b = 0, | |
c = a.length; | |
for (b; b < c; b++) "metadata" === a[b].kind ? (a[b].oncuechange = ja, a[b].mode = "showing") : "subtitles" !== a[b].kind && "captions" !== a[b].kind || (a[b].mode = "disabled", Na || (Na = []), Na.push(a[b])) | |
} | |
k(a, "change", ha), Na && Na.length && Ba.trigger("subtitlesTracks", { | |
tracks: Na | |
}) | |
} | |
} | |
function sa(a) { | |
Na && Pa !== a - 1 && (Pa > -1 && Pa < Na.length ? Na[Pa].mode = "disabled" : d.each(Na, function(a) { | |
a.mode = "disabled" | |
}), a > 0 && a <= Na.length ? (Pa = a - 1, Na[Pa].mode = "showing") : Pa = -1, Ba.trigger("subtitlesTrackChanged", { | |
currentTrack: Pa + 1, | |
tracks: Na | |
})) | |
} | |
function ta() { | |
return Pa | |
} | |
function ua() { | |
if ("hls" === Aa[0].type) { | |
var a = "video"; | |
0 === Va.videoHeight && (a = "audio"), Ba.trigger("mediaType", { | |
mediaType: a | |
}) | |
} | |
} | |
function va() { | |
Na && Na[Pa] && (Na[Pa].mode = "disabled") | |
} | |
this.state = f.IDLE, this.seeking = !1, d.extend(this, h), this.trigger = function(a, b) { | |
if (Ha) return h.trigger.call(this, a, b) | |
}, this.setState = function(a) { | |
if (Ha) return g.setState.call(this, a) | |
}; | |
var wa, xa, ya, za, Aa, Ba = this, | |
Ca = { | |
click: B, | |
durationchange: C, | |
ended: ea, | |
error: R, | |
loadstart: A, | |
loadeddata: z, | |
loadedmetadata: M, | |
canplay: L, | |
playing: O, | |
progress: D, | |
pause: P, | |
seeked: aa, | |
timeupdate: E, | |
volumechange: ba, | |
webkitbeginfullscreen: ga, | |
webkitendfullscreen: la | |
}, | |
Da = !1, | |
Ea = 0, | |
Fa = -1, | |
Ga = -1, | |
Ha = !0, | |
Ia = -1, | |
Ja = null, | |
Ka = !!y.sdkplatform, | |
La = !1, | |
Ma = !1, | |
Na = null, | |
Oa = null, | |
Pa = -1, | |
Qa = -1, | |
Ra = -1, | |
Sa = null, | |
Ta = { | |
level: {} | |
}, | |
Ua = document.getElementById(n), | |
Va = Ua ? Ua.querySelector("video") : void 0; | |
Va = Va || document.createElement("video"), Va.className = "jw-video jw-reset", d.isObject(y.cast) && y.cast.appid && Va.setAttribute("disableRemotePlayback", ""), i(Ca, Va), v || (Va.controls = !0, Va.controls = !1), Va.setAttribute("x-webkit-airplay", "allow"), Va.setAttribute("webkit-playsinline", ""), Va.setAttribute("playsinline", ""), this.stop = function() { | |
o(Fa), Ha && (X(), b.isIETrident() && Va.pause(), this.setState(f.IDLE)) | |
}, this.destroy = function() { | |
j(Ca, Va), l(Va.audioTracks, "change", ia), l(Va.textTracks, "change", ha), this.remove(), this.off() | |
}, this.init = function(a) { | |
Ha && (Sa = null, Aa = a.sources, Ia = U(a.sources), a.sources.length && "hls" !== a.sources[0].type && this.sendMediaType(a.sources), ya = a.starttime || 0, xa = a.duration || 0, Ta.reason = "", W(Aa[Ia]), Y(a.tracks)) | |
}, this.load = function(a) { | |
Ha && (T(a.sources), a.sources.length && "hls" !== a.sources[0].type && this.sendMediaType(a.sources), s && !Va.hasAttribute("jw-played") || Ba.setState(f.LOADING), V(a.starttime || 0, a.duration || 0), a.tracks && Y(a.tracks)) | |
}, this.play = function() { | |
return Ba.seeking ? (Ba.setState(f.LOADING), void Ba.once(e.JWPLAYER_MEDIA_SEEKED, Ba.play)) : void Va.play() | |
}, this.pause = function() { | |
o(Fa), Va.pause(), this.setState(f.PAUSED) | |
}, this.seek = function(a) { | |
if (Ha) | |
if (a < 0 && (a += $() + _()), 0 === Ea && this.trigger(e.JWPLAYER_MEDIA_SEEK, { | |
position: Va.currentTime, | |
offset: a | |
}), Da || (Da = !!_()), Da) { | |
Ea = 0; | |
try { | |
Ba.seeking = !0, Va.currentTime = a | |
} catch (b) { | |
Ba.seeking = !1, Ea = a | |
} | |
} else Ea = a, t && Va.paused && Va.play() | |
}, this.volume = function(a) { | |
a = b.between(a / 100, 0, 1), Va.volume = a | |
}, this.mute = function(a) { | |
Va.muted = !!a | |
}, this.checkComplete = function() { | |
return La | |
}, this.detachMedia = function() { | |
return o(Fa), va(), Ha = !1, Va | |
}, this.attachMedia = function() { | |
Ha = !0, Da = !1, this.seeking = !1, Va.loop = !1, La && fa() | |
}, this.setContainer = function(a) { | |
wa = a, a.appendChild(Va) | |
}, this.getContainer = function() { | |
return wa | |
}, this.remove = function() { | |
X(), o(Fa), wa === Va.parentNode && wa.removeChild(Va) | |
}, this.setVisibility = function(b) { | |
b = !!b, b || u ? a.style(wa, { | |
visibility: "visible", | |
opacity: 1 | |
}) : a.style(wa, { | |
visibility: "", | |
opacity: 0 | |
}) | |
}, this.resize = function(b, c, d) { | |
if (!(b && c && Va.videoWidth && Va.videoHeight)) return !1; | |
var e = { | |
objectFit: "" | |
}; | |
if ("uniform" === d) { | |
var f = b / c, | |
g = Va.videoWidth / Va.videoHeight; | |
Math.abs(f - g) < .09 && (e.objectFit = "fill", d = "exactfit") | |
} | |
var h = q || u || v || w; | |
if (h) { | |
var i = -Math.floor(Va.videoWidth / 2 + 1), | |
j = -Math.floor(Va.videoHeight / 2 + 1), | |
k = Math.ceil(100 * b / Va.videoWidth) / 100, | |
l = Math.ceil(100 * c / Va.videoHeight) / 100; | |
"none" === d ? k = l = 1 : "fill" === d ? k = l = Math.max(k, l) : "uniform" === d && (k = l = Math.min(k, l)), e.width = Va.videoWidth, e.height = Va.videoHeight, e.top = e.left = "50%", e.margin = 0, a.transform(Va, "translate(" + i + "px, " + j + "px) scale(" + k.toFixed(2) + ", " + l.toFixed(2) + ")") | |
} | |
return a.style(Va, e), !1 | |
}, this.setFullscreen = function(a) { | |
if (a = !!a) { | |
var c = b.tryCatch(function() { | |
var a = Va.webkitEnterFullscreen || Va.webkitEnterFullScreen; | |
a && a.apply(Va) | |
}); | |
return !(c instanceof b.Error) && Ba.getFullScreen() | |
} | |
var d = Va.webkitExitFullscreen || Va.webkitExitFullScreen; | |
return d && d.apply(Va), a | |
}, Ba.getFullScreen = function() { | |
return Ma || !!Va.webkitDisplayingFullscreen | |
}, this.setCurrentQuality = function(a) { | |
if (Ia !== a && a >= 0 && Aa && Aa.length > a) { | |
Ia = a, Ta.reason = "api", Ta.level = {}, this.trigger(e.JWPLAYER_MEDIA_LEVEL_CHANGED, { | |
currentQuality: a, | |
levels: S(Aa) | |
}), y.qualityLabel = Aa[a].label; | |
var b = Va.currentTime || 0, | |
c = Va.duration || 0; | |
c <= 0 && (c = xa), Ba.setState(f.LOADING), V(b, c) | |
} | |
}, this.getCurrentQuality = function() { | |
return Ia | |
}, this.getQualityLevels = function() { | |
return S(Aa) | |
}, this.getName = function() { | |
return { | |
name: x | |
} | |
}, this.sendEvent = function() {}, this.setMouse = function() {}, this.setSpeed = function(a) { | |
Va.playbackRate = a, Va.defaultPlaybackRate = a, navigator.userAgent.toLowerCase().indexOf("firefox") > -1 && Ba.seek(ya) | |
}, this.setCurrentAudioTrack = oa, this.getAudioTracks = pa, this.getCurrentAudioTrack = qa, this.setSubtitlesTrack = sa, this.getSubtitlesTrack = ta | |
} | |
var o = window.clearTimeout, | |
p = 256, | |
q = b.isIE(), | |
r = b.isMSIE(), | |
s = b.isMobile(), | |
t = b.isFF(), | |
u = b.isAndroidNative(), | |
v = b.isIOS(7), | |
w = b.isIOS(8), | |
x = "html5", | |
y = function() {}; | |
return y.prototype = g, n.prototype = new y, n.getName = function() { | |
return { | |
name: "html5" | |
} | |
}, n | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(43), c(44), c(61), c(83), c(77), c(45)], e = function(a, b, c, d, e, f, g) { | |
function h(a) { | |
return a + "_swf_" + k++ | |
} | |
function i(b) { | |
var c = document.createElement("a"); | |
c.href = b.flashplayer; | |
var d = c.hostname === window.location.host; | |
return a.isChrome() && !d | |
} | |
function j(j, k) { | |
function l(a) { | |
if (G) | |
for (var b = 0; b < a.length; b++) { | |
var c = a[b]; | |
if (c.bitrate) { | |
var d = Math.round(c.bitrate / 1e3); | |
c.label = m(d) | |
} | |
} | |
} | |
function m(a) { | |
var b = G[a]; | |
if (!b) { | |
for (var c = 1 / 0, d = G.bitrates.length; d--;) { | |
var e = Math.abs(G.bitrates[d] - a); | |
if (e > c) break; | |
c = e | |
} | |
b = G.labels[G.bitrates[d + 1]], G[a] = b | |
} | |
return b | |
} | |
function n() { | |
var a = k.hlslabels; | |
if (!a) return null; | |
var b = {}, | |
c = []; | |
for (var d in a) { | |
var e = parseFloat(d); | |
if (!isNaN(e)) { | |
var f = Math.round(e); | |
b[f] = a[d], c.push(f) | |
} | |
} | |
return 0 === c.length ? null : (c.sort(function(a, b) { | |
return a - b | |
}), { | |
labels: b, | |
bitrates: c | |
}) | |
} | |
function o() { | |
v = setTimeout(function() { | |
g.trigger.call(D, "flashBlocked") | |
}, 4e3), s.once("embedded", function() { | |
q(), g.trigger.call(D, "flashUnblocked") | |
}, D) | |
} | |
function p() { | |
q(), o() | |
} | |
function q() { | |
clearTimeout(v), window.removeEventListener("focus", p) | |
} | |
var r, s, t, u = null, | |
v = -1, | |
w = !1, | |
x = -1, | |
y = null, | |
z = -1, | |
A = null, | |
B = !0, | |
C = !1, | |
D = this, | |
E = function() { | |
return s && s.__ready | |
}, | |
F = function() { | |
s && s.triggerFlash.apply(s, arguments) | |
}, | |
G = n(); | |
b.extend(this, g, { | |
init: function(a) { | |
a.preload && "none" !== a.preload && !k.autostart && (u = a) | |
}, | |
load: function(a) { | |
u = a, w = !1, this.setState(d.LOADING), F("load", a), this.sendMediaType(a.sources) | |
}, | |
play: function() { | |
F("play") | |
}, | |
pause: function() { | |
F("pause"), this.setState(d.PAUSED) | |
}, | |
stop: function() { | |
F("stop"), x = -1, u = null, this.setState(d.IDLE) | |
}, | |
seek: function(a) { | |
F("seek", a) | |
}, | |
volume: function(a) { | |
if (b.isNumber(a)) { | |
var c = Math.min(Math.max(0, a), 100); | |
E() && F("volume", c) | |
} | |
}, | |
mute: function(a) { | |
E() && F("mute", a) | |
}, | |
setState: function() { | |
return f.setState.apply(this, arguments) | |
}, | |
checkComplete: function() { | |
return w | |
}, | |
attachMedia: function() { | |
B = !0, w && (this.setState(d.COMPLETE), this.trigger(c.JWPLAYER_MEDIA_COMPLETE), w = !1) | |
}, | |
detachMedia: function() { | |
return B = !1, null | |
}, | |
getSwfObject: function(a) { | |
var b = a.getElementsByTagName("object")[0]; | |
return b ? (b.off(null, null, this), b) : e.embed(k.flashplayer, a, h(j), k.wmode) | |
}, | |
getContainer: function() { | |
return r | |
}, | |
setContainer: function(e) { | |
if (r !== e) { | |
r = e, s = this.getSwfObject(e), document.hasFocus() ? o() : window.addEventListener("focus", p), s.once("ready", function() { | |
q(), s.once("pluginsLoaded", function() { | |
s.queueCommands = !1, s.setAttribute("queueCommands", "false"), F("setupCommandQueue", s.__commandQueue), s.__commandQueue = [] | |
}); | |
var a = b.extend({}, k), | |
d = s.triggerFlash("setup", a); | |
d === s ? s.__ready = !0 : this.trigger(c.JWPLAYER_MEDIA_ERROR, d), u && F("init", u) | |
}, this); | |
var f = [c.JWPLAYER_MEDIA_META, c.JWPLAYER_MEDIA_ERROR, c.JWPLAYER_MEDIA_SEEK, c.JWPLAYER_MEDIA_SEEKED, "subtitlesTracks", "subtitlesTrackChanged", "subtitlesTrackData", "mediaType"], | |
h = [c.JWPLAYER_MEDIA_BUFFER, c.JWPLAYER_MEDIA_TIME], | |
j = [c.JWPLAYER_MEDIA_BUFFER_FULL]; | |
s.on(c.JWPLAYER_MEDIA_LEVELS, function(a) { | |
l(a.levels), x = a.currentQuality, y = a.levels, this.trigger(a.type, a) | |
}, this), s.on(c.JWPLAYER_MEDIA_LEVEL_CHANGED, function(a) { | |
l(a.levels), x = a.currentQuality, y = a.levels, this.trigger(a.type, a) | |
}, this), s.on(c.JWPLAYER_AUDIO_TRACKS, function(a) { | |
z = a.currentTrack, A = a.tracks, this.trigger(a.type, a) | |
}, this), s.on(c.JWPLAYER_AUDIO_TRACK_CHANGED, function(a) { | |
z = a.currentTrack, A = a.tracks, this.trigger(a.type, a) | |
}, this), s.on(c.JWPLAYER_PLAYER_STATE, function(a) { | |
var b = a.newstate; | |
b !== d.IDLE && this.setState(b) | |
}, this), s.on(h.join(" "), function(a) { | |
"Infinity" === a.duration && (a.duration = 1 / 0), this.trigger(a.type, a) | |
}, this), s.on(f.join(" "), function(a) { | |
this.trigger(a.type, a) | |
}, this), s.on(j.join(" "), function(a) { | |
this.trigger(a.type) | |
}, this), s.on(c.JWPLAYER_MEDIA_BEFORECOMPLETE, function(a) { | |
w = !0, this.trigger(a.type), B === !0 && (w = !1) | |
}, this), s.on(c.JWPLAYER_MEDIA_COMPLETE, function(a) { | |
w || (this.setState(d.COMPLETE), this.trigger(a.type)) | |
}, this), s.on("visualQuality", function(a) { | |
a.reason = a.reason || "api", this.trigger("visualQuality", a), this.trigger(c.JWPLAYER_PROVIDER_FIRST_FRAME, {}) | |
}, this), s.on(c.JWPLAYER_PROVIDER_CHANGED, function(a) { | |
t = a.message, this.trigger(c.JWPLAYER_PROVIDER_CHANGED, a) | |
}, this), s.on(c.JWPLAYER_ERROR, function(b) { | |
a.log("Error playing media: %o %s", b.code, b.message, b), this.trigger(c.JWPLAYER_MEDIA_ERROR, b) | |
}, this), s.on("sendEvent", function(a) { | |
this.trigger("sendEvent", a) | |
}, this), s.on("setMouse", function(a) { | |
this.trigger("setMouse", a) | |
}, this), i(k) && s.on("throttle", function(a) { | |
q(), "resume" === a.state ? g.trigger.call(D, "flashThrottle", a) : v = setTimeout(function() { | |
g.trigger.call(D, "flashThrottle", a) | |
}, 250) | |
}, this) | |
} | |
}, | |
remove: function() { | |
x = -1, y = null, e.remove(s) | |
}, | |
setVisibility: function(a) { | |
a = !!a, r.style.opacity = a ? 1 : 0 | |
}, | |
resize: function(a, b, c) { | |
c && F("stretch", c) | |
}, | |
setControls: function(a) { | |
F("setControls", a) | |
}, | |
setFullscreen: function(a) { | |
C = a, F("fullscreen", a) | |
}, | |
getFullScreen: function() { | |
return C | |
}, | |
setCurrentQuality: function(a) { | |
F("setCurrentQuality", a) | |
}, | |
getCurrentQuality: function() { | |
return x | |
}, | |
setSubtitlesTrack: function(a) { | |
F("setSubtitlesTrack", a) | |
}, | |
getName: function() { | |
return t ? { | |
name: "flash_" + t | |
} : { | |
name: "flash" | |
} | |
}, | |
getQualityLevels: function() { | |
return y || u.sources | |
}, | |
getAudioTracks: function() { | |
return A | |
}, | |
getCurrentAudioTrack: function() { | |
return z | |
}, | |
setCurrentAudioTrack: function(a) { | |
F("setCurrentAudioTrack", a) | |
}, | |
sendEvent: function(a, b) { | |
F("sendEvent", a, b) | |
}, | |
setMouse: function(a) { | |
F("setMouse", a) | |
}, | |
destroy: function() { | |
q(), this.remove(), s && (s.off(), s = null), r = null, u = null, this.off() | |
} | |
}), this.trigger = function(a, b) { | |
if (B) return g.trigger.call(this, a, b) | |
} | |
} | |
var k = 0, | |
l = function() {}; | |
return l.prototype = f, j.prototype = new l, j.getName = function() { | |
return { | |
name: "flash" | |
} | |
}, j | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(45), c(43)], e = function(a, b, c) { | |
function d(a, b, c) { | |
var d = document.createElement("param"); | |
d.setAttribute("name", b), d.setAttribute("value", c), a.appendChild(d) | |
} | |
function e(e, f, i, j) { | |
var k; | |
if (j = j || "opaque", a.isMSIE()) { | |
var l = document.createElement("div"); | |
f.appendChild(l), l.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="' + i + '" name="' + i + '" tabindex="0"><param name="movie" value="' + e + '"><param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always"><param name="wmode" value="' + j + '"><param name="bgcolor" value="' + h + '"><param name="menu" value="false"></object>'; | |
for (var m = f.getElementsByTagName("object"), n = m.length; n--;) m[n].id === i && (k = m[n]) | |
} else k = document.createElement("object"), k.setAttribute("type", "application/x-shockwave-flash"), k.setAttribute("data", e), k.setAttribute("width", "100%"), k.setAttribute("height", "100%"), k.setAttribute("bgcolor", h), k.setAttribute("id", i), k.setAttribute("name", i), d(k, "allowfullscreen", "true"), d(k, "allowscriptaccess", "always"), d(k, "wmode", j), d(k, "menu", "false"), f.appendChild(k, f); | |
return k.className = "jw-swf jw-reset", k.style.display = "block", k.style.position = "absolute", k.style.left = 0, k.style.right = 0, k.style.top = 0, k.style.bottom = 0, c.extend(k, b), k.queueCommands = !0, k.setAttribute("queueCommands", "true"), k.triggerFlash = function(b) { | |
var d = this; | |
if ("setup" !== b && "true" === k.getAttribute("queueCommands") || !d.__externalCall) { | |
for (var e = d.__commandQueue, f = e.length; f--;) e[f][0] === b && e.splice(f, 1); | |
return e.push(Array.prototype.slice.call(arguments)), d | |
} | |
var h = Array.prototype.slice.call(arguments, 1), | |
i = a.tryCatch(function() { | |
if (h.length) { | |
for (var a = h.length; a--;) "object" == typeof h[a] && c.each(h[a], g); | |
var e = JSON.stringify(h); | |
d.__externalCall(b, e) | |
} else d.__externalCall(b) | |
}); | |
return i instanceof a.Error && (console.error(b, i), "setup" === b) ? (i.name = "Failed to setup flash", i) : d | |
}, k.__commandQueue = [], k | |
} | |
function f(a) { | |
a && a.parentNode && (a.style.display = "none", a.parentNode.removeChild(a)) | |
} | |
function g(a, b, c) { | |
a instanceof window.HTMLElement && delete c[b] | |
} | |
var h = "#000000"; | |
return { | |
embed: e, | |
remove: f | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(52), c(46), c(50), c(43), c(44), c(61), c(77), c(45)], e = function(a, b, c, d, e, f, g, h) { | |
function i(a, c) { | |
b.foreach(a, function(a, b) { | |
c.addEventListener(a, b, !1) | |
}) | |
} | |
function j(a, c) { | |
b.foreach(a, function(a, b) { | |
c.removeEventListener(a, b, !1) | |
}) | |
} | |
function k(k) { | |
function v() { | |
var a = { | |
autoStartLoad: !0, | |
capLevelToPlayerSize: !1, | |
debug: !1, | |
defaultAudioCodec: void 0, | |
maxBufferLength: 300, | |
maxMaxBufferLength: 1200, | |
maxBufferSize: 1e8, | |
maxBufferHole: .3, | |
maxSeekHole: 2, | |
seekHoleNudgeDuration: .01, | |
maxFragLookUpTolerance: .2, | |
liveSyncDurationCount: 3, | |
liveMaxLatencyDurationCount: 10, | |
enableWorker: !0, | |
enableSoftwareAES: !0, | |
manifestLoadingTimeOut: 1e4, | |
manifestLoadingMaxRetry: 3, | |
manifestLoadingRetryDelay: 500, | |
levelLoadingTimeOut: 1e4, | |
levelLoadingMaxRetry: 3, | |
levelLoadingRetryDelay: 500, | |
fragLoadingTimeOut: 2e4, | |
fragLoadingMaxRetry: 3, | |
fragLoadingRetryDelay: 500, | |
startFragPrefech: !1, | |
appendErrorMaxRetry: 3, | |
enableCEA708Captions: !0 | |
}; | |
try { | |
j(ma, Fa) | |
} catch (b) {} | |
i(ma, Fa), Ba = new Hls(a), Ba.attachMedia(Fa), Ba.on(Hls.Events.MANIFEST_PARSED, y), Ba.on(Hls.Events.MANIFEST_LOADED, x), Ba.on(Hls.Events.LEVEL_SWITCH, z), Ba.on(Hls.Events.LEVEL_LOADED, w), Ba.on(Hls.Events.ERROR, A) | |
} | |
function w(a, b) { | |
Ca = b.live === !0 | |
} | |
function x(a, b) { | |
b && (ua = b.audioTracks || [], ua.length > 1 && (va = Ba.audioTrack, la.trigger(e.JWPLAYER_AUDIO_TRACKS, { | |
tracks: ua, | |
currentTrack: va | |
}))) | |
} | |
function y(a, b) { | |
sa = b.levels || [], sa = V(sa), sa.length > 1 && (sa.reverse(), sa.push({ | |
label: "Auto" | |
}), ta = Ba.autoLevelEnabled ? Ba.levels.length : Ba.levels.length - 1 - Ba.currentLevel, la.trigger(e.JWPLAYER_MEDIA_LEVELS, { | |
levels: sa, | |
currentQuality: ta | |
})) | |
} | |
function z(a, b) { | |
sa.length > 1 && (ta = Ba.autoLevelEnabled ? Ba.levels.length : Ba.levels.length - 1 - b.level, la.trigger(e.JWPLAYER_MEDIA_LEVEL_CHANGED, { | |
currentQuality: ta, | |
levels: V(sa) | |
})) | |
} | |
function A(a, b) { | |
if (b.fatal) switch (b.type) { | |
case Hls.ErrorTypes.NETWORK_ERROR: | |
!b.response || 404 !== b.response.code && 428 !== b.response.code ? Ba.startLoad() : (S(b), Ba && (Ba.destroy(), Ba = null)); | |
break; | |
case Hls.ErrorTypes.MEDIA_ERROR: | |
Ba.recoverMediaError(); | |
break; | |
default: | |
S(b), Ba && (Ba.destroy(), Ba = null) | |
} | |
} | |
function B() { | |
ra && Fa.setAttribute("jw-loaded", "data") | |
} | |
function C() { | |
ra && Fa.setAttribute("jw-loaded", "started") | |
} | |
function D(a) { | |
la.trigger("click", a) | |
} | |
function E() { | |
ra && !wa && (K(J()), H(ba(), ja, ia)) | |
} | |
function F() { | |
ra && H(ba(), ja, ia) | |
} | |
function G() { | |
l(pa), na = !0, ra && (la.state === f.STALLED ? la.setState(f.PLAYING) : la.state === f.PLAYING && (pa = setTimeout(aa, m)), wa && Fa.duration === 1 / 0 && 0 === Fa.currentTime || (K(J()), I(Fa.currentTime), H(ba(), ja, ia), la.state === f.PLAYING && la.trigger(e.JWPLAYER_MEDIA_TIME, { | |
position: ja, | |
duration: ia | |
}))) | |
} | |
function H(a, b, c) { | |
a === qa && c === ia || (qa = a, la.trigger(e.JWPLAYER_MEDIA_BUFFER, { | |
bufferPercent: 100 * a, | |
position: b, | |
duration: c | |
})) | |
} | |
function I(a) { | |
ia < 0 && (a = -(Z() - a)), ja = a | |
} | |
function J() { | |
var a = Fa.duration, | |
b = Z(); | |
if (a === 1 / 0 && b) { | |
var c = b - Fa.seekable.start(0); | |
c !== 1 / 0 && c > 120 && (a = -c) | |
} | |
return a | |
} | |
function K(a) { | |
ia = a, oa && a && a !== 1 / 0 && la.seek(oa) | |
} | |
function L() { | |
var a = J(); | |
wa && a === 1 / 0 && (a = 0), la.trigger(e.JWPLAYER_MEDIA_META, { | |
duration: a, | |
height: Fa.videoHeight, | |
width: Fa.videoWidth | |
}), K(a) | |
} | |
function M() { | |
ra && (na = !0, O()) | |
} | |
function N() { | |
ra && (Fa.muted && (Fa.muted = !1, Fa.muted = !0), Fa.setAttribute("jw-loaded", "meta"), L()) | |
} | |
function O() { | |
ka || (ka = !0, la.trigger(e.JWPLAYER_MEDIA_BUFFER_FULL)) | |
} | |
function P() { | |
la.setState(f.PLAYING), Fa.hasAttribute("jw-played") || Fa.setAttribute("jw-played", ""), la.trigger(e.JWPLAYER_PROVIDER_FIRST_FRAME, {}) | |
} | |
function Q() { | |
la.state !== f.COMPLETE && Fa.currentTime !== Fa.duration && la.setState(f.PAUSED) | |
} | |
function R() { | |
wa || Fa.paused || Fa.ended || la.state !== f.LOADING && la.state !== f.ERROR && (la.seeking || la.setState(f.STALLED)) | |
} | |
function S(a) { | |
if (ra) { | |
var c = Da.sources[0] || Da; | |
la.trigger(e.JWPLAYER_MEDIA_ERROR, { | |
message: "Error loading media: File could not be played", | |
data: a || {} | |
}), b.log("Error playing media: %s", c.file) | |
} | |
} | |
function T(a) { | |
if (a) return Math.round(a / 1024) + "kb" | |
} | |
function U(a) { | |
if (a) { | |
var b = ""; | |
return "undefined" != typeof isLogin && "undefined" != typeof isVip && (a >= 800 && !isLogin ? b = "(Login)" : a >= 1024 && !isVip && (b = "(VIP)")), a > 1792 ? "1080p+" + b : a > 1280 ? "1080p" + b : a > 1024 ? "720p" + b : a > 800 ? "576p" + b : a > 640 ? "480p" + b : a > 480 ? "360p" + b : a > 320 ? "240p" + b : void 0 | |
} | |
} | |
function V(a) { | |
var c; | |
return "array" === b.typeOf(a) && a.length > 0 && (c = d.map(a, function(a) { | |
return { | |
label: a.name || a.label || U(a.width) || T(a.bitrate) || "Unknow" | |
} | |
})), c | |
} | |
function W(a) { | |
oa = 0, l(pa); | |
var c = Fa.hasAttribute("jw-played"); | |
0 === a && Fa.currentTime > 0 && (oa = -1, la.seek(a)), Fa.play(), ja = Fa.currentTime, p && !c && (O(), Fa.paused || la.state === f.PLAYING || la.setState(f.LOADING)), b.isIOS() && la.getFullScreen() && (Fa.controls = !0), a > 0 && la.seek(a) | |
} | |
function X() { | |
Fa && (Fa.removeAttribute("crossorigin"), Fa.removeAttribute("preload"), Fa.removeAttribute("src"), Fa.removeAttribute("jw-loaded"), Fa.removeAttribute("jw-played"), c.emptyElement(Fa), ta = 0, za = null, !o && "load" in Fa && Fa.load()), Ba && (Ba.destroy(), Ba = null) | |
} | |
function Y() { | |
for (var a = Fa.seekable ? Fa.seekable.length : 0, b = 1 / 0; a--;) b = Math.min(b, Fa.seekable.start(a)); | |
return b | |
} | |
function Z() { | |
for (var a = Fa.seekable ? Fa.seekable.length : 0, b = 0; a--;) b = Math.max(b, Fa.seekable.end(a)); | |
return b | |
} | |
function $() { | |
la.seeking = !1, la.trigger(e.JWPLAYER_MEDIA_SEEKED) | |
} | |
function _() { | |
la.trigger("volume", { | |
volume: Math.round(100 * Fa.volume) | |
}), la.trigger("mute", { | |
mute: Fa.muted | |
}) | |
} | |
function aa() { | |
Fa.currentTime === ja && R() | |
} | |
function ba() { | |
var a = Fa.buffered, | |
c = Fa.duration; | |
return !a || 0 === a.length || c <= 0 || c === 1 / 0 ? 0 : b.between(a.end(a.length - 1) / c, 0, 1) | |
} | |
function ca() { | |
if (ra && la.state !== f.IDLE && la.state !== f.COMPLETE) { | |
if (l(pa), ta = 0, xa = !0, la.trigger(e.JWPLAYER_MEDIA_BEFORECOMPLETE), !ra) return; | |
da() | |
} | |
} | |
function da() { | |
l(pa), la.setState(f.COMPLETE), xa = !1, la.trigger(e.JWPLAYER_MEDIA_COMPLETE) | |
} | |
function ea(a) { | |
ya = !0, ga(a), b.isIOS() && (Fa.controls = !1) | |
} | |
function fa(a) { | |
ya = !1, ga(a), b.isIOS() && (Fa.controls = !1) | |
} | |
function ga(a) { | |
la.trigger("fullscreenchange", { | |
target: a.target, | |
jwstate: ya | |
}) | |
} | |
this.state = f.IDLE, this.seeking = !1, d.extend(this, h), this.trigger = function(a, b) { | |
if (ra) return h.trigger.call(this, a, b) | |
}, this.setState = function(a) { | |
if (ra) return g.setState.call(this, a) | |
}; | |
var ha, ia, ja, ka, la = this, | |
ma = { | |
click: D, | |
durationchange: E, | |
ended: ca, | |
error: S, | |
loadstart: C, | |
loadeddata: B, | |
loadedmetadata: N, | |
canplay: M, | |
playing: P, | |
progress: F, | |
pause: Q, | |
seeked: $, | |
timeupdate: G, | |
volumechange: _, | |
webkitbeginfullscreen: ea, | |
webkitendfullscreen: fa | |
}, | |
na = !1, | |
oa = 0, | |
pa = -1, | |
qa = -1, | |
ra = !0, | |
sa = [], | |
ta = 0, | |
ua = [], | |
va = 0, | |
wa = null, | |
xa = !1, | |
ya = !1, | |
za = null, | |
Aa = { | |
level: {} | |
}, | |
Ba = null, | |
Ca = !1, | |
Da = {}, | |
Ea = document.getElementById(k), | |
Fa = Ea ? Ea.querySelector("video") : void 0; | |
Fa = Fa || document.createElement("video"), Fa.className = "jw-video jw-reset", s || (Fa.controls = !0, Fa.controls = !1), Fa.setAttribute("x-webkit-airplay", "allow"), Fa.setAttribute("webkit-playsinline", ""), Fa.setAttribute("playsinline", ""), this.stop = function() { | |
l(pa), ra && (X(), b.isIETrident() && Fa.pause(), this.setState(f.IDLE)) | |
}, this.destroy = function() { | |
j(ma, Fa), this.remove(), this.off() | |
}, this.init = function(a) { | |
ra && (za = null, ja = a.starttime || 0, ia = a.duration || 0, Aa.reason = "") | |
}, this.load = function(a) { | |
if (ra) { | |
Ca = !1, null === Ba && v(), Da = a; | |
var b = a.sources[0] || a; | |
Ba.loadSource(b.file), Fa.setAttribute("jw-loaded", "none"), p && !Fa.hasAttribute("jw-played") || la.setState(f.LOADING), W(a.starttime || 0, a.duration || 0) | |
} | |
}, this.play = function() { | |
return la.seeking ? (la.setState(f.LOADING), void la.once(e.JWPLAYER_MEDIA_SEEKED, la.play)) : void Fa.play() | |
}, this.pause = function() { | |
l(pa), Fa.pause(), this.setState(f.PAUSED) | |
}, this.seek = function(a) { | |
if (ra) | |
if (a < 0 && (a += Y() + Z()), 0 === oa && this.trigger(e.JWPLAYER_MEDIA_SEEK, { | |
position: Fa.currentTime, | |
offset: a | |
}), na || (na = !!Z()), na) { | |
oa = 0; | |
try { | |
la.seeking = !0, Fa.currentTime = a | |
} catch (b) { | |
la.seeking = !1, oa = a | |
} | |
} else oa = a, q && Fa.paused && Fa.play() | |
}, this.volume = function(a) { | |
a = b.between(a / 100, 0, 1), Fa.volume = a | |
}, this.mute = function(a) { | |
Fa.muted = !!a | |
}, this.checkComplete = function() { | |
return xa | |
}, this.detachMedia = function() { | |
return l(pa), ra = !1, Fa | |
}, this.attachMedia = function() { | |
ra = !0, na = !1, this.seeking = !1, Fa.loop = !1, xa && da() | |
}, this.setContainer = function(a) { | |
ha = a, a.appendChild(Fa) | |
}, this.getContainer = function() { | |
return ha | |
}, this.remove = function() { | |
X(), l(pa), ha === Fa.parentNode && ha.removeChild(Fa) | |
}, this.setVisibility = function(b) { | |
b = !!b, b || r ? a.style(ha, { | |
visibility: "visible", | |
opacity: 1 | |
}) : a.style(ha, { | |
visibility: "", | |
opacity: 0 | |
}) | |
}, this.resize = function(b, c, d) { | |
if (!(b && c && Fa.videoWidth && Fa.videoHeight)) return !1; | |
var e = { | |
objectFit: "" | |
}; | |
if ("uniform" === d) { | |
var f = b / c, | |
g = Fa.videoWidth / Fa.videoHeight; | |
Math.abs(f - g) < .09 && (e.objectFit = "fill", d = "exactfit") | |
} | |
var h = n || r || s || t; | |
if (h) { | |
var i = -Math.floor(Fa.videoWidth / 2 + 1), | |
j = -Math.floor(Fa.videoHeight / 2 + 1), | |
k = Math.ceil(100 * b / Fa.videoWidth) / 100, | |
l = Math.ceil(100 * c / Fa.videoHeight) / 100; | |
"none" === d ? k = l = 1 : "fill" === d ? k = l = Math.max(k, l) : "uniform" === d && (k = l = Math.min(k, l)), e.width = Fa.videoWidth, e.height = Fa.videoHeight, e.top = e.left = "50%", e.margin = 0, a.transform(Fa, "translate(" + i + "px, " + j + "px) scale(" + k.toFixed(2) + ", " + l.toFixed(2) + ")") | |
} | |
return a.style(Fa, e), !1 | |
}, this.setFullscreen = function(a) { | |
if (a = !!a) { | |
var c = b.tryCatch(function() { | |
var a = Fa.webkitEnterFullscreen || Fa.webkitEnterFullScreen; | |
a && a.apply(Fa) | |
}); | |
return !(c instanceof b.Error) && la.getFullScreen() | |
} | |
var d = Fa.webkitExitFullscreen || Fa.webkitExitFullScreen; | |
return d && d.apply(Fa), a | |
}, la.getFullScreen = function() { | |
return ya || !!Fa.webkitDisplayingFullscreen | |
}, this.setCurrentQuality = function(a) { | |
null !== Ba && (la.trigger(e.JWPLAYER_MEDIA_LEVELS, { | |
levels: sa, | |
currentQuality: a | |
}), Ba.nextLevel = Ba.levels.length - a - 1) | |
}, this.getCurrentQuality = function() { | |
return ta | |
}, this.getQualityLevels = function() { | |
return V(sa) | |
}, this.getAudioTracks = function() { | |
return ua | |
}, this.getCurrentAudioTrack = function() { | |
return va | |
}, this.setCurrentAudioTrack = function(a) { | |
null !== Ba && (Ba.audioTrack = a) | |
}, this.getName = function() { | |
return { | |
name: u | |
} | |
}, this.sendEvent = function() {}, this.setMouse = function() {}, this.setSpeed = function(a) { | |
Fa.playbackRate = a, Fa.defaultPlaybackRate = a, navigator.userAgent.toLowerCase().indexOf("firefox") > -1 && la.seek(ja) | |
} | |
} | |
var l = window.clearTimeout, | |
m = 256, | |
n = b.isIE(), | |
o = b.isMSIE(), | |
p = b.isMobile(), | |
q = b.isFF(), | |
r = b.isAndroidNative(), | |
s = b.isIOS(7), | |
t = b.isIOS(8), | |
u = "hlsjs", | |
v = function() {}; | |
return v.prototype = g, k.prototype = new v, k.getName = function() { | |
return { | |
name: "hlsjs" | |
} | |
}, k.supports = function(a) { | |
var b = a.type; | |
return "undefined" != typeof Hls && Hls.isSupported() === !0 && ("hlsjs" === b || "m3u8" === b) | |
}, k | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(52), c(43), c(44), c(61), c(86), c(77), c(45)], e = function(a, b, c, d, e, f, g, h) { | |
function i(l, m) { | |
function n() { | |
window.YT && window.YT.loaded ? (J = window.YT, q()) : setTimeout(n, 100) | |
} | |
function o() { | |
j && (j.off(), j = null) | |
} | |
function p() { | |
var a = L && L.parentNode; | |
return a ? a : (N || (window.jwplayer(l).onReady(q), N = !0), !1) | |
} | |
function q() { | |
J && p() && O && O.apply(I) | |
} | |
function r() { | |
if (K && K.getPlayerState) { | |
var a = K.getPlayerState(); | |
null !== a && void 0 !== a && a !== R && A({ | |
data: a | |
}); | |
var b = J.PlayerState; | |
a === b.PLAYING ? t() : a === b.BUFFERING && u() | |
} | |
} | |
function s(a) { | |
return Math.round(10 * a) / 10 | |
} | |
function t() { | |
u(), I.trigger(d.JWPLAYER_MEDIA_TIME, { | |
position: s(K.getCurrentTime()), | |
duration: K.getDuration() | |
}) | |
} | |
function u() { | |
var a = 0; | |
K && K.getVideoLoadedFraction && (a = Math.round(100 * K.getVideoLoadedFraction())), M !== a && (M = a, I.trigger(d.JWPLAYER_MEDIA_BUFFER, { | |
bufferPercent: a | |
})) | |
} | |
function v() { | |
I.state !== e.IDLE && I.state !== e.COMPLETE && (S = !0, I.trigger(d.JWPLAYER_MEDIA_BEFORECOMPLETE), I.setState(e.COMPLETE), S = !1, I.trigger(d.JWPLAYER_MEDIA_COMPLETE)) | |
} | |
function w() { | |
I.trigger(d.JWPLAYER_MEDIA_META, { | |
duration: K.getDuration(), | |
width: L.clientWidth, | |
height: L.clientHeight | |
}) | |
} | |
function x() { | |
var a = arguments, | |
b = a.length - 1; | |
return function() { | |
for (var c = b, d = a[b].apply(this, arguments); c--;) d = a[c].call(this, d); | |
return d | |
} | |
} | |
function y(a, b) { | |
if (!a) throw "invalid Youtube ID"; | |
var d = L.parentNode; | |
if (d) { | |
var e = { | |
height: "100%", | |
width: "100%", | |
videoId: a, | |
playerVars: c.extend({ | |
html5: 1, | |
autoplay: 0, | |
controls: 0, | |
showinfo: 0, | |
rel: 0, | |
modestbranding: 0, | |
playsinline: 1, | |
iv_load_policy: 3, | |
origin: location.protocol + "//" + location.hostname | |
}, b), | |
events: { | |
onReady: z, | |
onStateChange: A, | |
onPlaybackQualityChange: B, | |
onError: C | |
} | |
}; | |
I.setVisibility(!0), K = new J.Player(L, e), L = K.getIframe(), O = null | |
} | |
} | |
function z() { | |
P && (P.apply(I), P = null) | |
} | |
function A(b) { | |
var f = J.PlayerState; | |
switch (R = b.data) { | |
case f.UNSTARTED: | |
return void(a.isAndroid() && K.playVideo()); | |
case f.ENDED: | |
return void v(); | |
case f.PLAYING: | |
return c.isFunction(K.unloadModule) && K.unloadModule("captions"), T = !1, w(), I.trigger(d.JWPLAYER_MEDIA_LEVELS, { | |
levels: I.getQualityLevels(), | |
currentQuality: I.getCurrentQuality() | |
}), void I.setState(e.PLAYING); | |
case f.PAUSED: | |
return void I.setState(e.PAUSED); | |
case f.BUFFERING: | |
return void(I.seeking ? I.setState(e.LOADING) : I.setState(e.STALLED)); | |
case f.CUED: | |
return I.setState(e.IDLE), void(a.isAndroid() && K.playVideo()) | |
} | |
} | |
function B() { | |
R !== J.PlayerState.ENDED && I.play(), I.trigger(d.JWPLAYER_MEDIA_LEVEL_CHANGED, { | |
currentQuality: I.getCurrentQuality(), | |
levels: I.getQualityLevels() | |
}) | |
} | |
function C() { | |
I.trigger(d.JWPLAYER_MEDIA_ERROR, { | |
message: "Error loading YouTube: Video could not be played" | |
}) | |
} | |
function D() { | |
k && I.setVisibility(!0) | |
} | |
function E() { | |
clearInterval(Q), K && K.stopVideo && a.tryCatch(function() { | |
K.stopVideo(), K.clearVideo() | |
}) | |
} | |
function F(b) { | |
P = null; | |
var c = b.sources[0].file, | |
d = a.youTubeID(c); | |
if (I.volume(m.volume), I.mute(m.mute), I.setVisibility(!0), !J || !K) return O = function() { | |
y(d) | |
}, void n(); | |
if (!K.getPlayerState) { | |
var e = function() { | |
I.load(b) | |
}; | |
return void(P = P ? x(e, P) : e) | |
} | |
var f = K.getVideoData().video_id; | |
if (f !== d) { | |
T ? (E(), K.cueVideoById(d)) : K.loadVideoById(d); | |
var g = K.getPlayerState(), | |
h = J.PlayerState; | |
g !== h.UNSTARTED && g !== h.CUED || D() | |
} else K.getCurrentTime() > 0 && K.seekTo(0), w() | |
} | |
function G(a) { | |
return "tiny" === a ? "144p" : "small" === a ? "240p" : "medium" === a ? "360p" : "large" === a ? "480p" : "hd720" === a ? "720p" : "hd1080" === a ? "1080p" : a | |
} | |
this.state = e.IDLE, c.extend(this, h); | |
var H, I = this, | |
J = window.YT, | |
K = null, | |
L = document.createElement("div"), | |
M = -1, | |
N = !1, | |
O = null, | |
P = null, | |
Q = -1, | |
R = -1, | |
S = !1, | |
T = k; | |
this.setState = function(a) { | |
clearInterval(Q), a !== e.IDLE && a !== e.COMPLETE && (Q = setInterval(r, 250), a === e.PLAYING ? this.seeking = !1 : a !== e.LOADING && a !== e.STALLED || u()), g.setState.apply(this, arguments) | |
}, !J && j && j.getStatus() === f.loaderstatus.NEW && (j.on(d.COMPLETE, n), j.on(d.ERROR, o), j.load()), L.id = l + "_youtube", this.init = function(a) { | |
F(a) | |
}, this.destroy = function() { | |
this.remove(), this.off(), H = L = J = I = null | |
}, this.load = function(a) { | |
this.setState(e.LOADING), F(a), I.play() | |
}, this.stop = function() { | |
E(), this.setState(e.IDLE) | |
}, this.play = function() { | |
T || (K && K.playVideo ? K.playVideo() : P = P ? x(this.play, P) : this.play) | |
}, this.pause = function() { | |
T || K.pauseVideo && K.pauseVideo() | |
}, this.seek = function(a) { | |
T || K.seekTo && (this.seeking = !0, K.seekTo(a)) | |
}, this.volume = function(a) { | |
if (c.isNumber(a)) { | |
var b = Math.min(Math.max(0, a), 100); | |
K && K.getVolume && K.setVolume(b) | |
} | |
}, this.mute = function(b) { | |
var c = a.exists(b) ? !!b : !m.mute; | |
K && K.mute && (c ? K.mute() : K.unMute()) | |
}, this.detachMedia = function() { | |
return null | |
}, this.attachMedia = function() { | |
S && (this.setState(e.COMPLETE), this.trigger(d.JWPLAYER_MEDIA_COMPLETE), S = !1) | |
}, this.setContainer = function(a) { | |
H = a, a.appendChild(L), this.setVisibility(!0) | |
}, this.getContainer = function() { | |
return H | |
}, this.remove = function() { | |
E(), L && H && H === L.parentNode && H.removeChild(L), O = P = K = null | |
}, this.setVisibility = function(a) { | |
a = !!a, a ? (b.style(L, { | |
display: "block" | |
}), b.style(H, { | |
visibility: "visible", | |
opacity: 1 | |
})) : k || b.style(H, { | |
opacity: 0 | |
}) | |
}, this.resize = function() { | |
return !1 | |
}, this.checkComplete = function() { | |
return S | |
}, this.getCurrentQuality = function() { | |
if (!K) return -1; | |
if (K.getAvailableQualityLevels) { | |
var a = K.getPlaybackQuality(), | |
b = K.getAvailableQualityLevels(); | |
return b.indexOf(a) | |
} | |
return -1 | |
}, this.getQualityLevels = function() { | |
if (K) { | |
if (!c.isFunction(K.getAvailableQualityLevels)) return []; | |
var a = K.getAvailableQualityLevels(); | |
if (2 === a.length && c.contains(a, "auto")) return { | |
label: c.without(a, "auto") | |
}; | |
var b = c.map(a, function(a) { | |
return { | |
label: G(a) | |
} | |
}); | |
return b.reverse() | |
} | |
}, this.setCurrentQuality = function(a) { | |
if (K && K.getAvailableQualityLevels) { | |
var b = K.getAvailableQualityLevels(); | |
if (b.length) { | |
var c = b[b.length - a - 1]; | |
K.setPlaybackQuality(c) | |
} | |
} | |
}, this.getName = i.getName | |
} | |
var j = new f(window.location.protocol + "//www.youtube.com/iframe_api"), | |
k = a.isMobile(); | |
return i.getName = function() { | |
return { | |
name: "youtube" | |
} | |
}, i.register = function(a) { | |
a.api.registerProvider(i) | |
}, i | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(44), c(45), c(43)], e = function(a, b, c) { | |
var d = {}, | |
e = { | |
NEW: 0, | |
LOADING: 1, | |
ERROR: 2, | |
COMPLETE: 3 | |
}, | |
f = function(f, g) { | |
function h(b) { | |
k = e.ERROR, j.trigger(a.ERROR, b) | |
} | |
function i(b) { | |
k = e.COMPLETE, j.trigger(a.COMPLETE, b) | |
} | |
var j = c.extend(this, b), | |
k = e.NEW; | |
this.addEventListener = this.on, this.removeEventListener = this.off, this.makeStyleLink = function(a) { | |
var b = document.createElement("link"); | |
return b.type = "text/css", b.rel = "stylesheet", b.href = a, b | |
}, this.makeScriptTag = function(a) { | |
var b = document.createElement("script"); | |
return b.src = a, b | |
}, this.makeTag = g ? this.makeStyleLink : this.makeScriptTag, this.load = function() { | |
if (k === e.NEW) { | |
var b = d[f]; | |
if (b && (k = b.getStatus(), k < 2)) return b.on(a.ERROR, h), void b.on(a.COMPLETE, i); | |
var c = document.getElementsByTagName("head")[0] || document.documentElement, | |
j = this.makeTag(f), | |
l = !1; | |
j.onload = j.onreadystatechange = function(a) { | |
l || this.readyState && "loaded" !== this.readyState && "complete" !== this.readyState || (l = !0, i(a), j.onload = j.onreadystatechange = null, c && j.parentNode && !g && c.removeChild(j)) | |
}, j.onerror = h, c.insertBefore(j, c.firstChild), k = e.LOADING, d[f] = this | |
} | |
}, this.getStatus = function() { | |
return k | |
} | |
}; | |
return f.loaderstatus = e, f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(52), c(43), c(44), c(61), c(86), c(77), c(45)], e = function(a, b, c, d, e, f, g, h) { | |
function i(l, m) { | |
function n() { | |
window.YT && window.YT.loaded ? (N = window.YT, q()) : setTimeout(n, 100) | |
} | |
function o() { | |
j && (j.off(), j = null) | |
} | |
function p() { | |
var a = P && P.parentNode; | |
return a ? a : (R || (window.jwplayer(l).onReady(q), R = !0), !1) | |
} | |
function q() { | |
N && p() && S && S.apply(M) | |
} | |
function r() { | |
if (O && O.getPlayerState) { | |
var a = O.getPlayerState(); | |
null !== a && void 0 !== a && a !== V && C({ | |
data: a | |
}); | |
var b = N.PlayerState; | |
a === b.PLAYING ? t() : a === b.BUFFERING && u() | |
} | |
} | |
function s(a) { | |
return Math.round(10 * a) / 10 | |
} | |
function t() { | |
u(), M.trigger(d.JWPLAYER_MEDIA_TIME, { | |
position: s(O.getCurrentTime()), | |
duration: O.getDuration() | |
}) | |
} | |
function u() { | |
var a = 0; | |
O && O.getVideoLoadedFraction && (a = Math.round(100 * O.getVideoLoadedFraction())), Q !== a && (Q = a, M.trigger(d.JWPLAYER_MEDIA_BUFFER, { | |
bufferPercent: a | |
})) | |
} | |
function v() { | |
M.state !== e.IDLE && M.state !== e.COMPLETE && (W = !0, M.trigger(d.JWPLAYER_MEDIA_BEFORECOMPLETE), M.setState(e.COMPLETE), W = !1, M.trigger(d.JWPLAYER_MEDIA_COMPLETE)) | |
} | |
function w() { | |
M.trigger(d.JWPLAYER_MEDIA_META, { | |
duration: O.getDuration(), | |
width: P.clientWidth, | |
height: P.clientHeight | |
}) | |
} | |
function x() { | |
var a = arguments, | |
b = a.length - 1; | |
return function() { | |
for (var c = b, d = a[b].apply(this, arguments); c--;) d = a[c].call(this, d); | |
return d | |
} | |
} | |
function y(a, b, d) { | |
if (A(), !a) return void E({ | |
data: 100 | |
}); | |
var e = P.parentNode; | |
if (e) { | |
var f = window.location.host, | |
g = f.indexOf("hdonline.vn") > -1 || f.indexOf("localhost") > -1, | |
h = { | |
height: "100%", | |
width: "100%", | |
playerVars: c.extend({ | |
autoplay: "undefined" != typeof d ? d : 0, | |
docid: g ? a : "", | |
partnerid: 30, | |
html5: 1, | |
controls: 0, | |
showinfo: 0, | |
rel: 0, | |
modestbranding: 0, | |
playsinline: 1 | |
}, b), | |
events: { | |
onReady: B, | |
onStateChange: C, | |
onPlaybackQualityChange: D, | |
onError: E | |
} | |
}; | |
M.setVisibility(!0), O = new N.Player(P, h), P = O.getIframe(), S = null, A(), $ = !0, L = setTimeout(z, 15e3), M.play() | |
} | |
} | |
function z() { | |
$ && (M.trigger(d.JWPLAYER_MEDIA_ERROR, { | |
message: "Error loading Video: Video could not be played" | |
}), O.destroy()) | |
} | |
function A() { | |
$ = !1; | |
try { | |
clearTimeout(L) | |
} catch (a) {} | |
} | |
function B() { | |
T && (T.apply(M), T = null), A() | |
} | |
function C(b) { | |
A(); | |
var f = N.PlayerState; | |
switch (V = b.data) { | |
case f.UNSTARTED: | |
return void(a.isAndroid() && O.playVideo()); | |
case f.ENDED: | |
return void v(); | |
case f.PLAYING: | |
return c.isFunction(O.unloadModule) && O.unloadModule("captions"), X = !1, w(), M.trigger(d.JWPLAYER_MEDIA_LEVELS, { | |
levels: M.getQualityLevels(), | |
currentQuality: M.getCurrentQuality() | |
}), void M.setState(e.PLAYING); | |
case f.PAUSED: | |
return void M.setState(e.PAUSED); | |
case f.BUFFERING: | |
return void(M.seeking ? M.setState(e.LOADING) : M.setState(e.STALLED)); | |
case f.CUED: | |
return M.setState(e.IDLE), void(a.isAndroid() && O.playVideo()) | |
} | |
} | |
function D() { | |
V !== N.PlayerState.ENDED && M.play(), M.trigger(d.JWPLAYER_MEDIA_LEVEL_CHANGED, { | |
currentQuality: M.getCurrentQuality(), | |
levels: M.getQualityLevels() | |
}) | |
} | |
function E(a) { | |
if (A(), Y < Z.length - 1) { | |
Y++, O.destroy(), P = document.createElement("div"); | |
var b = M.getContainer(); | |
return b.appendChild(P), M.setVisibility(!0), void y(Z[Y], {}, 1) | |
} | |
M.trigger(d.JWPLAYER_MEDIA_ERROR, { | |
message: "Error loading Video: Video could not be played" | |
}) | |
} | |
function F() { | |
k && M.setVisibility(!0) | |
} | |
function G() { | |
clearInterval(U), O && O.stopVideo && a.tryCatch(function() { | |
O.stopVideo(), O.clearVideo() | |
}) | |
} | |
function H(a) { | |
T = null; | |
var b = a.sources[0].file; | |
if (M.volume(m.volume), M.mute(m.mute), M.setVisibility(!0), !N || !O) return S = function() { | |
I(b) | |
}, void n(); | |
if (!O.getPlayerState) { | |
var c = function() { | |
M.load(a) | |
}; | |
return void(T = T ? x(c, T) : c) | |
} | |
var d = O.getPlayerState(), | |
e = N.PlayerState; | |
d !== e.UNSTARTED && d !== e.CUED || F() | |
} | |
function I(b) { | |
var c = ""; | |
if (Z = [], Y = 0, b.indexOf("|") > 0) | |
for (var d = b.split("|"), e = 0; e < d.length; e++) c = a.driveID(d[e]), "" != c && Z.push(c); | |
else Z.push(a.driveID(b)); | |
y(Z[Y]) | |
} | |
function J(a) { | |
return "tiny" === a ? "144p" : "small" === a ? "240p" : "medium" === a ? "360p" : "large" === a ? "480p" : "hd720" === a ? "720p" : "hd1080" === a ? "1080p" : "highres" === a ? "1080p+" : a | |
} | |
this.state = e.IDLE, c.extend(this, h); | |
var K, L, M = this, | |
N = window.YT, | |
O = null, | |
P = document.createElement("div"), | |
Q = -1, | |
R = !1, | |
S = null, | |
T = null, | |
U = -1, | |
V = -1, | |
W = !1, | |
X = k, | |
Y = 0, | |
Z = [], | |
$ = !1; | |
this.setState = function(a) { | |
clearInterval(U), a !== e.IDLE && a !== e.COMPLETE && (U = setInterval(r, 250), a === e.PLAYING ? this.seeking = !1 : a !== e.LOADING && a !== e.STALLED || u()), g.setState.apply(this, arguments) | |
}, !N && j && j.getStatus() === f.loaderstatus.NEW && (j.on(d.COMPLETE, n), j.on(d.ERROR, o), j.load()), P.id = l + "_drive", this.init = function(a) { | |
H(a) | |
}, this.destroy = function() { | |
this.remove(), this.off(), K = P = N = M = null | |
}, this.load = function(a) { | |
this.setState(e.LOADING), H(a), M.play() | |
}, this.stop = function() { | |
G(), this.setState(e.IDLE) | |
}, this.play = function() { | |
X || (O && O.playVideo ? O.playVideo() : T = T ? x(this.play, T) : this.play) | |
}, this.pause = function() { | |
X || O.pauseVideo && O.pauseVideo() | |
}, this.seek = function(a) { | |
X || O.seekTo && (this.seeking = !0, O.seekTo(a)) | |
}, this.volume = function(a) { | |
if (c.isNumber(a)) { | |
var b = Math.min(Math.max(0, a), 100); | |
O && O.getVolume && O.setVolume(b) | |
} | |
}, this.mute = function(b) { | |
var c = a.exists(b) ? !!b : !m.mute; | |
O && O.mute && (c ? O.mute() : O.unMute()) | |
}, this.detachMedia = function() { | |
return null | |
}, this.attachMedia = function() { | |
W && (this.setState(e.COMPLETE), this.trigger(d.JWPLAYER_MEDIA_COMPLETE), W = !1) | |
}, this.setContainer = function(a) { | |
K = a, a.appendChild(P), this.setVisibility(!0) | |
}, this.getContainer = function() { | |
return K | |
}, this.remove = function() { | |
G(), P && K && K === P.parentNode && K.removeChild(P), S = T = O = null | |
}, this.setVisibility = function(a) { | |
a = !!a, a ? (b.style(P, { | |
display: "block" | |
}), b.style(K, { | |
visibility: "visible", | |
opacity: 1 | |
})) : k || b.style(K, { | |
opacity: 0 | |
}) | |
}, this.resize = function(a, b, c) { | |
if (O) { | |
var d = 500, | |
e = { | |
width: 160, | |
height: 90 | |
}, | |
f = this.scaleWH(e, a, b), | |
g = f.width, | |
h = f.height + d; | |
f.width < a && (g = f.width), P.style.left = (a - g) / 2 + "px", P.style.marginTop = (b - h) / 2 + "px", O.setSize(g, h) | |
} | |
}, this.scaleWH = function(a, b, c) { | |
var d = 100 / a.width * b, | |
e = 100 / a.height * c, | |
f = Math.floor(a.width / 100 * d * 100) / 100, | |
g = Math.floor(a.height / 100 * d * 100) / 100; | |
return (f > b || g > c) && (f = Math.floor(a.width / 100 * e * 100) / 100, g = Math.floor(a.height / 100 * e * 100) / 100), { | |
width: f, | |
height: g | |
} | |
}, this.checkComplete = function() { | |
return W | |
}, this.getCurrentQuality = function() { | |
if (!O) return -1; | |
if (O.getAvailableQualityLevels) { | |
var a = O.getPlaybackQuality(), | |
b = O.getAvailableQualityLevels(); | |
return b.indexOf(a) | |
} | |
return -1 | |
}, this.getQualityLevels = function() { | |
if (O) { | |
if (!c.isFunction(O.getAvailableQualityLevels)) return []; | |
var a = O.getAvailableQualityLevels(), | |
b = []; | |
return c.map(a, function(a) { | |
"auto" != a && (a = { | |
label: J(a) | |
}, b.push(a)) | |
}), b | |
} | |
}, this.setCurrentQuality = function(a) { | |
if (O && O.getAvailableQualityLevels) { | |
var b = O.getAvailableQualityLevels(); | |
b.length && O.setPlaybackQuality(b[a]) | |
} | |
}, this.getName = i.getName | |
} | |
var j = new f(window.location.protocol + "//www.youtube.com/iframe_api"), | |
k = a.isMobile(); | |
return i.getName = function() { | |
return { | |
name: "drive" | |
} | |
}, i.register = function(a) { | |
a.api.registerProvider(i) | |
}, i | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(46)], e = function(a, b) { | |
function c(a) { | |
return "jwplayer." + a | |
} | |
function d() { | |
return a.reduce(this.persistItems, function(a, d) { | |
var e = j[c(d)]; | |
return e && (a[d] = b.serialize(e)), a | |
}, {}) | |
} | |
function e(a, b) { | |
try { | |
j[c(a)] = b | |
} catch (d) { | |
i && i.debug && console.error(d) | |
} | |
} | |
function f() { | |
a.each(this.persistItems, function(a) { | |
j.removeItem(c(a)) | |
}) | |
} | |
function g() {} | |
function h(b, c) { | |
this.persistItems = b, a.each(this.persistItems, function(a) { | |
c.on("change:" + a, function(b, c) { | |
e(a, c) | |
}) | |
}) | |
} | |
var i = window.jwplayer, | |
j = { | |
removeItem: b.noop | |
}; | |
try { | |
j = window.localStorage | |
} catch (k) {} | |
return a.extend(g.prototype, { | |
getAllItems: d, | |
track: h, | |
clear: f | |
}), g | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(60), c(44), c(43)], e = function(a, b, c) { | |
function d(a) { | |
a.mediaController.off(b.JWPLAYER_MEDIA_PLAY_ATTEMPT, a._onPlayAttempt), a.mediaController.off(b.JWPLAYER_PROVIDER_FIRST_FRAME, a._triggerFirstFrame), a.mediaController.off(b.JWPLAYER_MEDIA_TIME, a._onTime) | |
} | |
function e(a) { | |
d(a), a._triggerFirstFrame = c.once(function() { | |
var c = a._qoeItem; | |
c.tick(b.JWPLAYER_MEDIA_FIRST_FRAME); | |
var e = c.between(b.JWPLAYER_MEDIA_PLAY_ATTEMPT, b.JWPLAYER_MEDIA_FIRST_FRAME); | |
a.mediaController.trigger(b.JWPLAYER_MEDIA_FIRST_FRAME, { | |
loadTime: e | |
}), d(a) | |
}), a._onTime = g(a._triggerFirstFrame), a._onPlayAttempt = function() { | |
a._qoeItem.tick(b.JWPLAYER_MEDIA_PLAY_ATTEMPT) | |
}, a.mediaController.on(b.JWPLAYER_MEDIA_PLAY_ATTEMPT, a._onPlayAttempt), a.mediaController.once(b.JWPLAYER_PROVIDER_FIRST_FRAME, a._triggerFirstFrame), a.mediaController.on(b.JWPLAYER_MEDIA_TIME, a._onTime) | |
} | |
function f(c) { | |
function d(c, d, f) { | |
c._qoeItem && f && c._qoeItem.end(f.get("state")), c._qoeItem = new a, c._qoeItem.tick(b.JWPLAYER_PLAYLIST_ITEM), c._qoeItem.start(d.get("state")), e(c), d.on("change:state", function(a, b, d) { | |
c._qoeItem.end(d), c._qoeItem.start(b) | |
}) | |
} | |
c.on("change:mediaModel", d) | |
} | |
var g = function(a) { | |
var b = Number.MIN_VALUE; | |
return function(c) { | |
c.position > b && a(), b = c.position | |
} | |
}; | |
return { | |
model: f | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(45)], e = function(a, b) { | |
var c = a.extend({ | |
get: function(a) { | |
return this.attributes = this.attributes || {}, this.attributes[a] | |
}, | |
set: function(a, b) { | |
if (this.attributes = this.attributes || {}, this.attributes[a] !== b) { | |
var c = this.attributes[a]; | |
this.attributes[a] = b, this.trigger("change:" + a, this, b, c) | |
} | |
}, | |
clone: function() { | |
return a.clone(this.attributes) | |
} | |
}, b); | |
return c | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(45), c(75), c(74), c(44), c(61), c(46), c(43)], e = function(a, b, c, d, e, f, g) { | |
var h = function(a, d) { | |
this.model = d, this._adModel = (new b).setup({ | |
id: d.get("id"), | |
volume: d.get("volume"), | |
fullscreen: d.get("fullscreen"), | |
mute: d.get("mute") | |
}), this._adModel.on("change:state", c, this); | |
var e = a.getContainer(); | |
this.swf = e.querySelector("object") | |
}; | |
return h.prototype = g.extend({ | |
init: function() { | |
if (f.isChrome()) { | |
var a = -1, | |
b = !1; | |
this.swf.on("throttle", function(c) { | |
if (clearTimeout(a), "resume" === c.state) b && (b = !1, this.instreamPlay()); | |
else { | |
var d = this; | |
a = setTimeout(function() { | |
d._adModel.get("state") === e.PLAYING && (b = !0, d.instreamPause()) | |
}, 250) | |
} | |
}, this) | |
} | |
this.swf.on("instream:state", function(a) { | |
switch (a.newstate) { | |
case e.PLAYING: | |
this._adModel.set("state", a.newstate); | |
break; | |
case e.PAUSED: | |
this._adModel.set("state", a.newstate) | |
} | |
}, this).on("instream:time", function(a) { | |
this._adModel.set("position", a.position), this._adModel.set("duration", a.duration), this.trigger(d.JWPLAYER_MEDIA_TIME, a) | |
}, this).on("instream:complete", function(a) { | |
this.trigger(d.JWPLAYER_MEDIA_COMPLETE, a) | |
}, this).on("instream:error", function(a) { | |
this.trigger(d.JWPLAYER_MEDIA_ERROR, a) | |
}, this), this.swf.triggerFlash("instream:init"), this.applyProviderListeners = function(a) { | |
this.model.on("change:volume", function(b, c) { | |
a.volume(c) | |
}, this), this.model.on("change:mute", function(b, c) { | |
a.mute(c) | |
}, this) | |
} | |
}, | |
instreamDestroy: function() { | |
this._adModel && (this.off(), this.swf.off(null, null, this), this.swf.triggerFlash("instream:destroy"), this.swf = null, this._adModel.off(), this._adModel = null, this.model = null) | |
}, | |
load: function(a) { | |
this.swf.triggerFlash("instream:load", a) | |
}, | |
instreamPlay: function() { | |
this.swf.triggerFlash("instream:play") | |
}, | |
instreamPause: function() { | |
this.swf.triggerFlash("instream:pause") | |
} | |
}, a), h | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(93), c(45), c(43), c(44)], e = function(a, b, c, d) { | |
var e = function(b, e, f, g) { | |
function h() { | |
m("Setup Timeout Error", "Setup took longer than " + q + " seconds to complete.") | |
} | |
function i() { | |
c.each(p, function(a) { | |
a.complete !== !0 && a.running !== !0 && null !== b && k(a.depends) && (a.running = !0, j(a)) | |
}) | |
} | |
function j(a) { | |
var c = function(b) { | |
b = b || {}, l(a, b) | |
}; | |
a.method(c, e, b, f, g) | |
} | |
function k(a) { | |
return c.all(a, function(a) { | |
return p[a].complete | |
}) | |
} | |
function l(a, b) { | |
"error" === b.type ? m(b.msg, b.reason) : "complete" === b.type ? (clearTimeout(n), o.trigger(d.JWPLAYER_READY)) : (a.complete = !0, i()) | |
} | |
function m(a, b) { | |
clearTimeout(n), o.trigger(d.JWPLAYER_SETUP_ERROR, { | |
message: a + ": " + b | |
}), o.destroy() | |
} | |
var n, o = this, | |
p = a.getQueue(), | |
q = 30; | |
this.start = function() { | |
n = setTimeout(h, 1e3 * q), i() | |
}, this.destroy = function() { | |
clearTimeout(n), this.off(), p.length = 0, b = null, e = null, f = null | |
} | |
}; | |
return e.prototype = b, e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(76), c(94), c(63), c(86), c(57), c(43), c(46), c(44)], e = function(a, b, d, e, f, g, h, i) { | |
function j() { | |
var a = { | |
LOAD_PROMISE_POLYFILL: { | |
method: k, | |
depends: [] | |
}, | |
LOAD_BASE64_POLYFILL: { | |
method: l, | |
depends: [] | |
}, | |
LOADED_POLYFILLS: { | |
method: m, | |
depends: ["LOAD_PROMISE_POLYFILL", "LOAD_BASE64_POLYFILL"] | |
}, | |
LOAD_PLUGINS: { | |
method: n, | |
depends: ["LOADED_POLYFILLS"] | |
}, | |
INIT_PLUGINS: { | |
method: o, | |
depends: ["LOAD_PLUGINS", "SETUP_VIEW"] | |
}, | |
LOAD_PROVIDERS: { | |
method: w, | |
depends: ["FILTER_PLAYLIST"] | |
}, | |
LOAD_SKIN: { | |
method: v, | |
depends: ["LOADED_POLYFILLS"] | |
}, | |
LOAD_PLAYLIST: { | |
method: q, | |
depends: ["LOADED_POLYFILLS"] | |
}, | |
FILTER_PLAYLIST: { | |
method: r, | |
depends: ["LOAD_PLAYLIST"] | |
}, | |
SETUP_VIEW: { | |
method: x, | |
depends: ["LOAD_SKIN"] | |
}, | |
SEND_READY: { | |
method: y, | |
depends: ["INIT_PLUGINS", "LOAD_PROVIDERS", "SETUP_VIEW"] | |
} | |
}; | |
return a | |
} | |
function k(a) { | |
window.Promise ? a() : c.e(1, function(b) { | |
c(99), a() | |
}) | |
} | |
function l(a) { | |
window.btoa && window.atob ? a() : c.e(2, function(b) { | |
c(100), a() | |
}) | |
} | |
function m(a) { | |
a() | |
} | |
function n(a, c) { | |
A = b.loadPlugins(c.get("id"), c.get("plugins")), A.on(i.COMPLETE, a), A.on(i.ERROR, g.partial(p, a)), A.load() | |
} | |
function o(a, b, c) { | |
A.setupPlugins(c, b), a() | |
} | |
function p(a, b) { | |
z(a, "Could not load plugin", b.message) | |
} | |
function q(a, b) { | |
var c = b.get("playlist"); | |
g.isString(c) ? (B = new d, B.on(i.JWPLAYER_PLAYLIST_LOADED, function(c) { | |
b.set("playlist", c.playlist), b.set("feedid", c.feedid), a() | |
}), B.on(i.JWPLAYER_ERROR, g.partial(s, a)), B.load(c)) : a() | |
} | |
function r(a, b, c, d, e) { | |
var f = b.get("playlist"), | |
g = e(f); | |
g ? a() : s(a) | |
} | |
function s(a, b) { | |
b && b.message ? z(a, "Error loading playlist", b.message) : z(a, "Error loading player", "No playable sources found") | |
} | |
function t(a, b) { | |
if (g.contains(f.SkinsLoadable, a)) return b + "skins/" + a + ".css" | |
} | |
function u(a) { | |
for (var b = document.styleSheets, c = 0, d = b.length; c < d; c++) | |
if (b[c].href === a) return !0; | |
return !1 | |
} | |
function v(a, b) { | |
var c = b.get("skin"), | |
d = b.get("skinUrl"); | |
if (g.contains(f.SkinsIncluded, c)) return void a(); | |
if (d || (d = t(c, b.get("base"))), g.isString(d) && !u(d)) { | |
b.set("skin-loading", !0); | |
var h = !0, | |
j = new e(d, h); | |
j.addEventListener(i.COMPLETE, function() { | |
b.set("skin-loading", !1) | |
}), j.addEventListener(i.ERROR, function() { | |
b.set("skin", "seven"), b.set("skin-loading", !1) | |
}), j.load() | |
} | |
g.defer(function() { | |
a() | |
}) | |
} | |
function w(b, c) { | |
var d = c.getProviders(), | |
e = c.get("playlist"), | |
f = d.required(e); | |
a.load(f).then(b) | |
} | |
function x(a, b, c, d) { | |
d.setup(), a() | |
} | |
function y(a) { | |
a({ | |
type: "complete" | |
}) | |
} | |
function z(a, b, c) { | |
a({ | |
type: "error", | |
msg: b, | |
reason: c | |
}) | |
} | |
var A, B; | |
return { | |
getQueue: j, | |
error: z | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(95), c(97), c(98), c(96)], e = function(a, b, c, d) { | |
var e = {}, | |
f = {}, | |
g = function(c, d) { | |
return f[c] = new a(new b(e), d), f[c] | |
}, | |
h = function(a, b, f, g) { | |
var h = d.getPluginName(a); | |
e[h] || (e[h] = new c(a)), e[h].registerPlugin(a, b, f, g) | |
}; | |
return { | |
loadPlugins: g, | |
registerPlugin: h | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(96), c(46), c(44), c(45), c(43), c(86)], e = function(a, b, c, d, e, f) { | |
function g(a, b, c) { | |
return function() { | |
var d = a.getContainer().getElementsByClassName("jw-overlays")[0]; | |
d && (d.appendChild(c), c.left = d.style.left, c.top = d.style.top, b.displayArea = d) | |
} | |
} | |
function h(a) { | |
function b() { | |
var b = a.displayArea; | |
b && a.resize(b.clientWidth, b.clientHeight) | |
} | |
return function() { | |
b(), setTimeout(b, 400) | |
} | |
} | |
var i = function(i, j) { | |
function k() { | |
q || (q = !0, p = f.loaderstatus.COMPLETE, o.trigger(c.COMPLETE)) | |
} | |
function l() { | |
if (!s && (j && 0 !== e.keys(j).length || k(), !q)) { | |
var d = i.getPlugins(); | |
n = e.after(r, k), e.each(j, function(e, g) { | |
var h = a.getPluginName(g), | |
i = d[h], | |
j = i.getJS(), | |
k = i.getTarget(), | |
l = i.getStatus(); | |
l !== f.loaderstatus.LOADING && l !== f.loaderstatus.NEW && (j && !b.versionCheck(k) && o.trigger(c.ERROR, { | |
message: "Incompatible player version" | |
}), n()) | |
}) | |
} | |
} | |
function m(a) { | |
if (!s) { | |
var d = "File not found"; | |
a.url && b.log(d, a.url), this.off(), this.trigger(c.ERROR, { | |
message: d | |
}), l() | |
} | |
} | |
var n, o = e.extend(this, d), | |
p = f.loaderstatus.NEW, | |
q = !1, | |
r = e.size(j), | |
s = !1; | |
this.setupPlugins = function(c, d) { | |
var f = [], | |
j = i.getPlugins(), | |
k = d.get("plugins"); | |
e.each(k, function(d, i) { | |
var l = a.getPluginName(i), | |
m = j[l], | |
n = m.getFlashPath(), | |
o = m.getJS(), | |
p = m.getURL(); | |
if (n) { | |
var q = e.extend({ | |
name: l, | |
swf: n, | |
pluginmode: m.getPluginmode() | |
}, d); | |
f.push(q) | |
} | |
var r = b.tryCatch(function() { | |
if (o && k[p]) { | |
var a = document.createElement("div"); | |
a.id = c.id + "_" + l, a.className = "jw-plugin jw-reset"; | |
var b = e.extend({}, k[p]), | |
d = m.getNewInstance(c, b, a); | |
d.addToPlayer = g(c, d, a), d.resizeHandler = h(d), c.addPlugin(l, d, a) | |
} | |
}); | |
r instanceof b.Error && b.log("ERROR: Failed to load " + l + ".") | |
}), d.set("flashPlugins", f) | |
}, this.load = function() { | |
if (b.exists(j) && "object" !== b.typeOf(j)) return void l(); | |
p = f.loaderstatus.LOADING, e.each(j, function(a, d) { | |
if (b.exists(d)) { | |
var e = i.addPlugin(d); | |
e.on(c.COMPLETE, l), e.on(c.ERROR, m) | |
} | |
}); | |
var a = i.getPlugins(); | |
e.each(a, function(a) { | |
a.load() | |
}), l() | |
}, this.destroy = function() { | |
s = !0, this.off() | |
}, this.getStatus = function() { | |
return p | |
} | |
}; | |
return i | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(48)], e = function(a) { | |
var b = {}, | |
c = b.pluginPathType = { | |
ABSOLUTE: 0, | |
RELATIVE: 1, | |
CDN: 2 | |
}; | |
return b.getPluginPathType = function(b) { | |
if ("string" == typeof b) { | |
b = b.split("?")[0]; | |
var d = b.indexOf("://"); | |
if (d > 0) return c.ABSOLUTE; | |
var e = b.indexOf("/"), | |
f = a.extension(b); | |
return !(d < 0 && e < 0) || f && isNaN(f) ? c.RELATIVE : c.CDN | |
} | |
}, b.getPluginName = function(a) { | |
return a.replace(/^(.*\/)?([^-]*)-?.*\.(swf|js)$/, "$2") | |
}, b.getPluginVersion = function(a) { | |
return a.replace(/[^-]*-?([^\.]*).*$/, "$1") | |
}, b | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(96), c(98)], e = function(a, b) { | |
var c = function(c) { | |
this.addPlugin = function(d) { | |
var e = a.getPluginName(d); | |
return c[e] || (c[e] = new b(d)), c[e] | |
}, this.getPlugins = function() { | |
return c | |
} | |
}; | |
return c | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(96), c(44), c(45), c(86), c(43)], e = function(a, b, c, d, e, f) { | |
var g = { | |
FLASH: 0, | |
JAVASCRIPT: 1, | |
HYBRID: 2 | |
}, | |
h = function(h) { | |
function i() { | |
switch (b.getPluginPathType(h)) { | |
case b.pluginPathType.ABSOLUTE: | |
return h; | |
case b.pluginPathType.RELATIVE: | |
return a.getAbsolutePath(h, window.location.href) | |
} | |
} | |
function j() { | |
f.defer(function() { | |
q = e.loaderstatus.COMPLETE, p.trigger(c.COMPLETE) | |
}) | |
} | |
function k() { | |
q = e.loaderstatus.ERROR, p.trigger(c.ERROR, { | |
url: h | |
}) | |
} | |
var l, m, n, o, p = f.extend(this, d), | |
q = e.loaderstatus.NEW; | |
this.load = function() { | |
if (q === e.loaderstatus.NEW) { | |
if (h.lastIndexOf(".swf") > 0) return l = h, q = e.loaderstatus.COMPLETE, void p.trigger(c.COMPLETE); | |
if (b.getPluginPathType(h) === b.pluginPathType.CDN) return q = e.loaderstatus.COMPLETE, void p.trigger(c.COMPLETE); | |
q = e.loaderstatus.LOADING; | |
var a = new e(i()); | |
a.on(c.COMPLETE, j), a.on(c.ERROR, k), a.load() | |
} | |
}, this.registerPlugin = function(a, b, d, f) { | |
o && (clearTimeout(o), o = void 0), n = b, d && f ? (l = f, m = d) : "string" == typeof d ? l = d : "function" == typeof d ? m = d : d || f || (l = a), q = e.loaderstatus.COMPLETE, p.trigger(c.COMPLETE) | |
}, this.getStatus = function() { | |
return q | |
}, this.getPluginName = function() { | |
return b.getPluginName(h) | |
}, this.getFlashPath = function() { | |
if (l) switch (b.getPluginPathType(l)) { | |
case b.pluginPathType.ABSOLUTE: | |
return l; | |
case b.pluginPathType.RELATIVE: | |
return h.lastIndexOf(".swf") > 0 ? a.getAbsolutePath(l, window.location.href) : a.getAbsolutePath(l, i()) | |
} | |
return null | |
}, this.getJS = function() { | |
return m | |
}, this.getTarget = function() { | |
return n | |
}, this.getPluginmode = function() { | |
return void 0 !== typeof l && void 0 !== typeof m ? g.HYBRID : void 0 !== typeof l ? g.FLASH : void 0 !== typeof m ? g.JAVASCRIPT : void 0 | |
}, this.getNewInstance = function(a, b, c) { | |
return new m(a, b, c) | |
}, this.getURL = function() { | |
return h | |
} | |
}; | |
return h | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, , , function(a, b, c) { | |
var d, e; | |
d = [c(64), c(102), c(103), c(46)], e = function(a, b, c, d) { | |
var e = function(e, f) { | |
function g(a) { | |
if (a.tracks.length) { | |
f.mediaController.off("meta", h), w = [], x = {}, y = {}, z = 0; | |
for (var b = a.tracks || [], c = 0; c < b.length; c++) { | |
var d = b[c]; | |
d.id = d.name, d.label = d.name || d.language, n(d) | |
} | |
var e = r(); | |
this.setCaptionsList(e), s() | |
} | |
} | |
function h(a) { | |
var b = a.metadata; | |
if (b && "textdata" === b.type) { | |
if (!b.text) return; | |
var c = x[b.trackid]; | |
if (!c) { | |
c = { | |
kind: "captions", | |
id: b.trackid, | |
data: [] | |
}, n(c); | |
var d = r(); | |
this.setCaptionsList(d) | |
} | |
var e, g; | |
b.useDTS ? (c.source || (c.source = b.source || "mpegts"), e = b.begin, g = b.begin + "_" + b.text) : (e = a.position || f.get("position"), g = "" + Math.round(10 * e) + "_" + b.text); | |
var h = y[g]; | |
h || (h = { | |
begin: e, | |
text: b.text | |
}, b.end && (h.end = b.end), y[g] = h, c.data.push(h)) | |
} | |
} | |
function i(a) { | |
d.log("CAPTIONS(" + a + ")") | |
} | |
function j(a, b) { | |
v = b, w = [], x = {}, y = {}, z = 0 | |
} | |
function k(a) { | |
j(f, a), f.mediaController.off("meta", h), f.mediaController.off("subtitlesTracks", g); | |
var b, c, d, e = a.tracks; | |
for (d = 0; d < e.length; d++) b = e[d], c = b.kind.toLowerCase(), "captions" !== c && "subtitles" !== c || (b.file ? (n(b), o(b)) : b.data && n(b)); | |
var i = r(); | |
u.setCaptionsList(i), s() | |
} | |
function l() { | |
var a, b, c, d = w; | |
for (w = [], c = 0; c < d.length; c++) a = d[c], b = a.kind.toLowerCase(), "captions" !== b && "subtitles" !== b || (a.file ? n(a) : a.data && n(a)); | |
var e = r(); | |
u.setCaptionsList(e), s() | |
} | |
function m(a, b) { | |
if (w && w.length > 1) { | |
if (1 === b) { | |
var c = this.getCaptionsList(); | |
if (void 0 !== c && null !== c && c.length > 1) { | |
var d = this.getCurrentIndex(); | |
3 === d ? u._api.setSecondCaptions(0) : 2 === d ? u._api.setSecondCaptions(1) : (u._api.setSecondCaptions(0), | |
e = w[w.length - 1], a.set("captionsTrack", e)) | |
} | |
return | |
} | |
u._api.setSecondCaptions(-1) | |
} | |
var e = null; | |
0 !== b && (e = w.length > 1 ? w[b - 2] : w[b - 1]), a.set("captionsTrack", e) | |
} | |
function n(a) { | |
"number" != typeof a.id && (a.id = a.name || a.file || "cc" + w.length), a.data = a.data || [], a.label || (a.label = "Unknown CC", z++, z > 1 && (a.label += " (" + z + ")")), w.push(a), x[a.id] = a | |
} | |
function o(a) { | |
d.ajax(a.file, function(b) { | |
p(b, a) | |
}, function(b) { | |
delete a.file, delete a.data, q(b), l() | |
}, !0) | |
} | |
function p(e, f) { | |
var g, h = e.responseXML ? e.responseXML.firstChild : null; | |
if (h) | |
for ("xml" === a.localName(h) && (h = h.nextSibling); h.nodeType === h.COMMENT_NODE;) h = h.nextSibling; | |
g = h && "tt" === a.localName(h) ? d.tryCatch(function() { | |
f.data = c(e.responseXML) | |
}) : d.tryCatch(function() { | |
f.data = b(e.responseText) | |
}), g instanceof d.Error && i(g.message + ": " + f.file) | |
} | |
function q(a) { | |
i(a) | |
} | |
function r() { | |
var a = [{ | |
id: "off", | |
label: "Tắt phụ Ä‘á»" | |
}]; | |
w.length > 1 && a.push({ | |
id: "double", | |
label: "Song Ngữ" | |
}); | |
for (var b = 0; b < w.length; b++) a.push({ | |
id: w[b].id, | |
label: w[b].label || "Unknown CC" | |
}); | |
return a | |
} | |
function s() { | |
var a = 0, | |
b = f.get("captionLabel"); | |
if ("Off" === b || "Tắt phụ Ä‘á»" === b) return void f.set("captionsIndex", 0); | |
if ("double" === b || "Song Ngữ" === b) return void f.set("captionsIndex", 1); | |
var c = null; | |
try { | |
c = localStorage.getItem("jwplayer.captionLabel") | |
} catch (d) { | |
c = null | |
} | |
null !== c && (b = c); | |
for (var e = 0; e < w.length; e++) { | |
var g = w[e]; | |
if (b && b === g.label) { | |
a = e + 1; | |
break | |
} | |
g["default"] || g.defaulttrack ? a = e + 1 : g.autoselect | |
} | |
w.length > 1 && (a += 1), t(a) | |
} | |
function t(a) { | |
w.length ? f.setVideoSubtitleTrack(a, w) : f.set("captionsIndex", a) | |
} | |
var u = this; | |
u._api = e, f.on("change:playlistItem", j, this), f.on("change:captionsIndex", m, this), f.on("itemReady", k, this), f.mediaController.on("subtitlesTracks", g, this), f.mediaController.on("subtitlesTrackData", function(a) { | |
var b = x[a.name]; | |
if (b) { | |
b.source = a.source; | |
for (var c = a.captions || [], d = !1, e = 0; e < c.length; e++) { | |
var f = c[e], | |
g = a.name + "_" + f.begin + "_" + f.end; | |
y[g] || (y[g] = f, b.data.push(f), d = !0) | |
} | |
d && b.data.sort(function(a, b) { | |
return a.begin - b.begin | |
}) | |
} | |
}, this), f.mediaController.on("meta", h, this); | |
var v = {}, | |
w = [], | |
x = {}, | |
y = {}, | |
z = 0; | |
this.getCurrentIndex = function() { | |
return f.get("captionsIndex") | |
}, this.getCaptionsList = function() { | |
return f.get("captionsList") | |
}, this.setCaptionsList = function(a) { | |
f.set("captionsList", a) | |
}, this.reloadPlaylistItem = function(a) { | |
k(a) | |
}, this.getDataCaption = function(a) { | |
return w[a] | |
} | |
}; | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(48)], e = function(a, b) { | |
function c(a) { | |
var b = {}, | |
c = a.split("\r\n"); | |
1 === c.length && (c = a.split("\n")); | |
var e = 1; | |
if (c[0].indexOf(" --> ") > 0 && (e = 0), c.length > e + 1 && c[e + 1]) { | |
var f = c[e], | |
g = f.indexOf(" --> "); | |
g > 0 && (b.begin = d(f.substr(0, g)), b.end = d(f.substr(g + 5)), b.text = c.slice(e + 1).join("<br/>")) | |
} | |
return b | |
} | |
var d = a.seconds; | |
return function(a) { | |
var d = []; | |
a = b.trim(a); | |
var e = a.split("\r\n\r\n"); | |
1 === e.length && (e = a.split("\n\n")); | |
for (var f = 0; f < e.length; f++) | |
if ("WEBVTT" !== e[f]) { | |
var g = c(e[f]); | |
g.text && d.push(g) | |
} | |
if (!d.length) throw new Error("Invalid SRT file"); | |
return d | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(48)], e = function(a) { | |
function b(a) { | |
a || c() | |
} | |
function c() { | |
throw new Error("Invalid DFXP file") | |
} | |
var d = a.seconds; | |
return function(e) { | |
b(e); | |
var f = [], | |
g = e.getElementsByTagName("p"); | |
b(g), g.length || (g = e.getElementsByTagName("tt:p"), g.length || (g = e.getElementsByTagName("tts:p"))); | |
for (var h = 0; h < g.length; h++) { | |
var i = g[h], | |
j = i.innerHTML || i.textContent || i.text || "", | |
k = a.trim(j).replace(/>\s+</g, "><").replace(/tts?:/g, ""); | |
if (k) { | |
var l = i.getAttribute("begin"), | |
m = i.getAttribute("dur"), | |
n = i.getAttribute("end"), | |
o = { | |
begin: d(l), | |
text: k | |
}; | |
n ? o.end = d(n) : m && (o.end = o.begin + d(m)), f.push(o) | |
} | |
} | |
return f.length || c(), f | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(68), c(69), c(43), c(76)], e = function(a, b, c, d) { | |
function e(a, b) { | |
for (var c = 0; c < a.length; c++) { | |
var d = a[c], | |
e = b.choose(d); | |
if (e) return d.type | |
} | |
return null | |
} | |
var f = function(b) { | |
return b = c.isArray(b) ? b : [b], c.compact(c.map(b, a)) | |
}; | |
f.filterPlaylist = function(a, b, d, e, f, i) { | |
var j = []; | |
return c.each(a, function(a) { | |
a = c.extend({}, a), a.allSources = g(a.sources, d, a.drm || e, a.preload || f), a.sources = h(a.allSources, b), a.sources.length && (a.file = a.sources[0].file, (a.preload || f) && (a.preload = a.preload || f), (a.feedid || i) && (a.feedid = a.feedid || i), j.push(a)) | |
}), j | |
}; | |
var g = function(a, d, e, f) { | |
return c.compact(c.map(a, function(a) { | |
if (c.isObject(a)) return void 0 !== d && null !== d && (a.androidhls = d), (a.drm || e) && (a.drm = a.drm || e), (a.preload || f) && (a.preload = a.preload || f), b(a) | |
})) | |
}, | |
h = function(a, b) { | |
b && b.choose || (b = new d({ | |
primary: b ? "flash" : null | |
})); | |
var f = e(a, b); | |
return c.where(a, { | |
type: f | |
}) | |
}; | |
return f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [], e = function() { | |
return function(a, b) { | |
a.getPlaylistIndex = a.getItem; | |
var c = { | |
jwPlay: b.play, | |
jwPause: b.pause, | |
jwSetMute: b.setMute, | |
jwLoad: b.load, | |
jwPlaylistItem: b.item, | |
jwGetAudioTracks: b.getAudioTracks, | |
jwDetachMedia: b.detachMedia, | |
jwAttachMedia: b.attachMedia, | |
jwAddEventListener: b.on, | |
jwRemoveEventListener: b.off, | |
jwStop: b.stop, | |
jwSeek: b.seek, | |
jwSetVolume: b.setVolume, | |
jwPlaylistNext: b.next, | |
jwPlaylistPrev: b.prev, | |
jwSetFullscreen: b.setFullscreen, | |
jwGetQualityLevels: b.getQualityLevels, | |
jwGetCurrentQuality: b.getCurrentQuality, | |
jwSetCurrentQuality: b.setCurrentQuality, | |
jwSetCurrentAudioTrack: b.setCurrentAudioTrack, | |
jwGetCurrentAudioTrack: b.getCurrentAudioTrack, | |
jwGetCaptionsList: b.getCaptionsList, | |
jwGetCurrentCaptions: b.getCurrentCaptions, | |
jwSetCurrentCaptions: b.setCurrentCaptions, | |
jwSetCues: b.setCues | |
}; | |
a.callInternal = function(a) { | |
console.log("You are using the deprecated callInternal method for " + a); | |
var d = Array.prototype.slice.call(arguments, 1); | |
c[a].apply(b, d) | |
} | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(44), c(45), c(57), c(61), c(129), c(130), c(131), c(133), c(107), c(135), c(151), c(152), c(154), c(43), c(155)], e = function(a, b, d, e, f, g, h, i, j, k, l, m, n, o, p, q) { | |
var r = a.style, | |
s = a.bounds, | |
t = a.isMobile(), | |
u = ["fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "MSFullscreenChange"], | |
v = function(v, w) { | |
function x(b) { | |
var c = 0, | |
d = w.get("duration"), | |
f = w.get("position"); | |
"DVR" === a.adaptiveType(d) && (c = d, d = Math.max(f, e.dvrSeekLimit)); | |
var g = a.between(f + b, c, d); | |
v.seek(g) | |
} | |
function y(b) { | |
var c = a.between(w.get("volume") + b, 0, 100); | |
v.setVolume(c) | |
} | |
function z(a) { | |
return !a.ctrlKey && !a.metaKey && !!w.get("controls") | |
} | |
function A(a) { | |
if (!z(a)) return !0; | |
switch (Ha || ba(), a.keyCode) { | |
case 27: | |
v.setFullscreen(!1); | |
break; | |
case 13: | |
v.setFullscreen(); | |
break; | |
case 32: | |
v.play({ | |
reason: "interaction" | |
}); | |
break; | |
case 37: | |
Ha || x(-5); | |
break; | |
case 39: | |
Ha || x(5); | |
break; | |
case 38: | |
y(10); | |
break; | |
case 40: | |
y(-10); | |
break; | |
case 77: | |
v.setMute(); | |
break; | |
case 70: | |
v.setFullscreen(); | |
break; | |
default: | |
if (a.keyCode >= 48 && a.keyCode <= 59) { | |
var b = a.keyCode - 48, | |
c = b / 10 * w.get("duration"); | |
v.seek(c) | |
} | |
} | |
return /13|32|37|38|39|40/.test(a.keyCode) ? (a.preventDefault(), !1) : void 0 | |
} | |
function B() { | |
Ma = !1, a.removeClass(ka, "jw-no-focus") | |
} | |
function C() { | |
Ma = !0, a.addClass(ka, "jw-no-focus") | |
} | |
function D() { | |
Ma || B(), Ha || ba() | |
} | |
function E() { | |
var a = s(ka), | |
c = Math.round(a.width), | |
d = Math.round(a.height); | |
return document.body.contains(ka) ? c && d && (c === na && d === oa || (na = c, oa = d, clearTimeout(Ja), Ja = setTimeout(Y, 50), w.set("containerWidth", c), w.set("containerHeight", d), Na.trigger(b.JWPLAYER_RESIZE, { | |
width: c, | |
height: d | |
}))) : (window.removeEventListener("resize", E), t && window.removeEventListener("orientationchange", E)), a | |
} | |
function F(b, c) { | |
c = c || !1, a.toggleClass(ka, "jw-flag-casting", c) | |
} | |
function G(b, c) { | |
a.toggleClass(ka, "jw-flag-cast-available", c), a.toggleClass(la, "jw-flag-cast-available", c) | |
} | |
function H(b, c) { | |
a.replaceClass(ka, /jw-stretch-\S+/, "jw-stretch-" + c) | |
} | |
function I(b, c) { | |
a.toggleClass(ka, "jw-flag-compact-player", c) | |
} | |
function J(a) { | |
a && !t && (a.element().addEventListener("mousemove", M, !1), a.element().addEventListener("mouseout", N, !1)) | |
} | |
function K() { | |
w.get("state") !== f.IDLE && w.get("state") !== f.COMPLETE && w.get("state") !== f.PAUSED || !w.get("controls") || v.play({ | |
reason: "interaction" | |
}), Ia ? aa() : ba() | |
} | |
function L(a) { | |
a.link ? (v.pause(!0), v.setFullscreen(!1), window.open(a.link, a.linktarget)) : w.get("controls") && v.play({ | |
reason: "interaction" | |
}) | |
} | |
function M() { | |
clearTimeout(Ea) | |
} | |
function N() { | |
ba() | |
} | |
function O(a) { | |
Na.trigger(a.type, a) | |
} | |
function P(b, c) { | |
c ? (za && za.destroy(), a.addClass(ka, "jw-flag-flash-blocked")) : (za && za.setup(w, ka, ka, v), a.removeClass(ka, "jw-flag-flash-blocked")) | |
} | |
function Q() { | |
w.get("controls") && v.setFullscreen() | |
} | |
function R() { | |
var c = ka.getElementsByClassName("jw-overlays")[0]; | |
c.addEventListener("mousemove", ba), sa = new h(w, ma, { | |
useHover: !0 | |
}), sa.on("click", function() { | |
O({ | |
type: b.JWPLAYER_DISPLAY_CLICK | |
}), w.get("controls") && v.play({ | |
reason: "interaction" | |
}) | |
}), sa.on("tap", function() { | |
O({ | |
type: b.JWPLAYER_DISPLAY_CLICK | |
}), K() | |
}), sa.on("doubleClick", Q), sa.on("move", ba), sa.on("over", ba); | |
var d = new i(w); | |
d.on("click", function() { | |
O({ | |
type: b.JWPLAYER_DISPLAY_CLICK | |
}), v.play({ | |
reason: "interaction" | |
}) | |
}), d.on("tap", function() { | |
O({ | |
type: b.JWPLAYER_DISPLAY_CLICK | |
}), K() | |
}), a.isChrome() && d.el.addEventListener("mousedown", function() { | |
var a = w.getVideo(), | |
b = a && 0 === a.getName().name.indexOf("flash"); | |
if (b) { | |
var c = function() { | |
document.removeEventListener("mouseup", c), d.el.style.pointerEvents = "auto" | |
}; | |
this.style.pointerEvents = "none", document.addEventListener("mouseup", c) | |
} | |
}), la.appendChild(d.element()), ua = new j(w), va = new k(w), va.on(b.JWPLAYER_LOGO_CLICK, L); | |
var e = document.createElement("div"); | |
e.className = "jw-controls-right jw-reset", va.setup(e), e.appendChild(ua.element()), la.appendChild(e), xa = new g(w), xa.setup(w.get("captions")), la.parentNode.insertBefore(xa.element(), wa.element()); | |
var f = w.get("height"); | |
t && ("string" == typeof f || f >= 1.5 * Ga) ? a.addClass(ka, "jw-flag-touch") : (za = new n, za.setup(w, ka, ka, v)), qa = new l(v, w), qa.on(b.JWPLAYER_USER_ACTION, ba), w.on("change:scrubbing", T), w.on("change:compactUI", I), la.appendChild(qa.element()), ka.addEventListener("focus", D), ka.addEventListener("blur", B), ka.addEventListener("keydown", A), ka.onmousedown = C | |
} | |
function S(b) { | |
return b.get("state") === f.PAUSED ? void b.once("change:state", S) : void(b.get("scrubbing") === !1 && a.removeClass(ka, "jw-flag-dragging")) | |
} | |
function T(b, c) { | |
b.off("change:state", S), c ? a.addClass(ka, "jw-flag-dragging") : S(b) | |
} | |
function U(b, c, d) { | |
var e, f = ka.className; | |
d = !!d, d && (f = f.replace(/\s*aspectMode/, ""), ka.className !== f && (ka.className = f), r(ka, { | |
display: "block" | |
}, d)), a.exists(b) && a.exists(c) && (w.set("width", b), w.set("height", c)), e = { | |
width: b | |
}, a.hasClass(ka, "jw-flag-aspect-mode") || (e.height = c), r(ka, e, !0), V(c), Y(b, c) | |
} | |
function V(b) { | |
if (ya = W(b), qa && !ya) { | |
var c = Ha ? pa : w; | |
ja(c, c.get("state")) | |
} | |
a.toggleClass(ka, "jw-flag-audio-player", ya) | |
} | |
function W(a) { | |
if (w.get("aspectratio")) return !1; | |
if (p.isString(a) && a.indexOf("%") > -1) return !1; | |
var b = p.isNumber(a) ? a : w.get("containerHeight"); | |
return X(b) | |
} | |
function X(a) { | |
return a && a <= Ga * (t ? 1.75 : 1) | |
} | |
function Y(b, c) { | |
if (!b || isNaN(Number(b))) { | |
if (!ma) return; | |
b = ma.clientWidth | |
} | |
if (!c || isNaN(Number(c))) { | |
if (!ma) return; | |
c = ma.clientHeight | |
} | |
a.isMSIE(9) && document.all && !window.atob && (b = c = "100%"); | |
var d = w.getVideo(); | |
if (d) { | |
var e = d.resize(b, c, w.get("stretching")); | |
e && (clearTimeout(Ja), Ja = setTimeout(Y, 250)), qa.checkCompactMode(b), xa && xa.resize() | |
} | |
} | |
function Z() { | |
if (La) { | |
var a = document.fullscreenElement || document.webkitCurrentFullScreenElement || document.mozFullScreenElement || document.msFullscreenElement; | |
return !(!a || a.id !== w.get("id")) | |
} | |
return Ha ? pa.getVideo().getFullScreen() : w.getVideo().getFullScreen() | |
} | |
function $(a) { | |
var b = w.get("fullscreen"), | |
c = void 0 !== a.jwstate ? a.jwstate : Z(); | |
b !== c && w.set("fullscreen", c), clearTimeout(Ja), Ja = setTimeout(Y, 200) | |
} | |
function _(b, c) { | |
a.removeClass(b, "jw-flag-fullscreen"), c ? (a.addClass(b, "jw-flag-fullscreen"), r(document.body, { | |
"overflow-y": "hidden" | |
}), ba()) : r(document.body, { | |
"overflow-y": "" | |
}), Y() | |
} | |
function aa() { | |
Ia = !1, clearTimeout(Ea), qa.hideComponents(), a.addClass(ka, "jw-flag-user-inactive"), v.setMouse(!1) | |
} | |
function ba() { | |
Ia || (a.removeClass(ka, "jw-flag-user-inactive"), qa.checkCompactMode(ma.clientWidth)), Ia = !0, clearTimeout(Ea), Ea = setTimeout(aa, Fa), v.setMouse(!0) | |
} | |
function ca() { | |
v.setFullscreen(!1) | |
} | |
function da() { | |
ta && ta.setState(w.get("state")), ea(w, w.mediaModel.get("mediaType")), w.mediaModel.on("change:mediaType", ea, this) | |
} | |
function ea(b, c) { | |
var d = "audio" === c, | |
e = w.getVideo(), | |
f = e && 0 === e.getName().name.indexOf("flash"); | |
a.toggleClass(ka, "jw-flag-media-audio", d), d && !f ? ka.insertBefore(ra.el, ma) : ka.insertBefore(ra.el, xa.element()) | |
} | |
function fa(b, c) { | |
var d = "LIVE" === a.adaptiveType(c); | |
a.toggleClass(ka, "jw-flag-live", d), Na.setAltText(d ? "Live Broadcast" : "") | |
} | |
function ga(a, b) { | |
return b ? void(b.name ? wa.updateText(b.name, b.message) : wa.updateText(b.message, "")) : void wa.playlistItem(a, a.get("playlistItem")) | |
} | |
function ha() { | |
var a = w.getVideo(); | |
return !!a && a.isCaster | |
} | |
function ia() { | |
a.replaceClass(ka, /jw-state-\S+/, "jw-state-" + Aa) | |
} | |
function ja(b, c) { | |
if (Aa = c, clearTimeout(Ka), c === f.COMPLETE || c === f.IDLE ? Ka = setTimeout(ia, 100) : ia(), ha()) return void a.addClass(ma, "jw-media-show"); | |
switch (c) { | |
case f.PLAYING: | |
Y(); | |
break; | |
case f.PAUSED: | |
ba() | |
} | |
} | |
var ka, la, ma, na, oa, pa, qa, ra, sa, ta, ua, va, wa, xa, ya, za, Aa, Ba, Ca, Da, Ea = -1, | |
Fa = t ? 4e3 : 2e3, | |
Ga = 40, | |
Ha = !1, | |
Ia = !1, | |
Ja = -1, | |
Ka = -1, | |
La = !1, | |
Ma = !1, | |
Na = p.extend(this, d); | |
window.webpackJsonpjwplayer && c(156), this.model = w, this.api = v, ka = a.createElement(q({ | |
id: w.get("id") | |
})), a.isIE() && a.addClass(ka, "jw-ie"); | |
var Oa = w.get("width"), | |
Pa = w.get("height"); | |
r(ka, { | |
width: Oa.toString().indexOf("%") > 0 ? Oa : Oa + "px", | |
height: Pa.toString().indexOf("%") > 0 ? Pa : Pa + "px" | |
}), Ca = ka.requestFullscreen || ka.webkitRequestFullscreen || ka.webkitRequestFullScreen || ka.mozRequestFullScreen || ka.msRequestFullscreen, Da = document.exitFullscreen || document.webkitExitFullscreen || document.webkitCancelFullScreen || document.mozCancelFullScreen || document.msExitFullscreen, La = Ca && Da, this.onChangeSkin = function(b, c) { | |
a.replaceClass(ka, /jw-skin-\S+/, c ? "jw-skin-" + c : "") | |
}, this.handleColorOverrides = function() { | |
function b(b, d, e) { | |
if (e) { | |
b = a.prefix(b, "#" + c + " "); | |
var f = {}; | |
f[d] = e, a.css(b.join(", "), f) | |
} | |
} | |
var c = w.get("id"), | |
d = w.get("skinColorActive"), | |
e = w.get("skinColorInactive"), | |
f = w.get("skinColorBackground"); | |
b([".jw-toggle", ".jw-button-color:hover"], "color", d), b([".jw-active-option", ".jw-progress", ".jw-playlist-container .jw-option.jw-active-option", ".jw-playlist-container .jw-option:hover"], "background", d), b([".jw-text", ".jw-option", ".jw-button-color", ".jw-toggle.jw-off", ".jw-tooltip-title", ".jw-skip .jw-skip-icon", ".jw-playlist-container .jw-icon"], "color", e), b([".jw-cue", ".jw-knob"], "background", e), b([".jw-playlist-container .jw-option"], "border-bottom-color", e), b([".jw-background-color", ".jw-tooltip-title", ".jw-playlist", ".jw-playlist-container .jw-option"], "background", f), b([".jw-playlist-container ::-webkit-scrollbar"], "border-color", f) | |
}, this.setup = function() { | |
this.handleColorOverrides(), w.get("skin-loading") === !0 && (a.addClass(ka, "jw-flag-skin-loading"), w.once("change:skin-loading", function() { | |
a.removeClass(ka, "jw-flag-skin-loading") | |
})), this.onChangeSkin(w, w.get("skin"), ""), w.on("change:skin", this.onChangeSkin, this), ma = ka.getElementsByClassName("jw-media")[0], la = ka.getElementsByClassName("jw-controls")[0]; | |
var c = ka.getElementsByClassName("jw-preview")[0]; | |
ra = new m(w), ra.setup(c); | |
var d = ka.getElementsByClassName("jw-title")[0]; | |
wa = new o(w), wa.setup(d), R(), ba(), w.set("mediaContainer", ma), w.mediaController.on("fullscreenchange", $); | |
for (var e = u.length; e--;) document.addEventListener(u[e], $, !1); | |
window.removeEventListener("resize", E), window.addEventListener("resize", E, !1), t && (window.removeEventListener("orientationchange", E), window.addEventListener("orientationchange", E, !1)), w.on("change:errorEvent", ga), w.on("change:controls", Qa), Qa(w, w.get("controls")), w.on("change:state", ja), w.on("change:duration", fa, this), w.on("change:flashBlocked", P), P(w, w.get("flashBlocked")), v.onPlaylistComplete(ca), v.onPlaylistItem(da), w.on("change:castAvailable", G), G(w, w.get("castAvailable")), w.on("change:castActive", F), F(w, w.get("castActive")), w.get("stretching") && H(w, w.get("stretching")), w.on("change:stretching", H), ja(w, f.IDLE), w.on("change:fullscreen", Ra), J(qa), J(va); | |
var g = w.get("aspectratio"); | |
if (g) { | |
a.addClass(ka, "jw-flag-aspect-mode"); | |
var h = ka.getElementsByClassName("jw-aspect")[0]; | |
r(h, { | |
paddingTop: g | |
}) | |
} | |
v.on(b.JWPLAYER_READY, function() { | |
E(), U(w.get("width"), w.get("height")) | |
}) | |
}; | |
var Qa = function(b, c) { | |
if (c) { | |
var d = Ha ? pa.get("state") : w.get("state"); | |
ja(b, d) | |
} | |
a.toggleClass(ka, "jw-flag-controls-disabled", !c) | |
}, | |
Ra = function(b, c) { | |
var d = w.getVideo(); | |
La ? (c ? Ca.apply(ka) : Da.apply(document), _(ka, c)) : a.isIE() ? _(ka, c) : (pa && pa.getVideo() && pa.getVideo().setFullscreen(c), d.setFullscreen(c)), d && 0 === d.getName().name.indexOf("flash") && d.setFullscreen(c) | |
}; | |
this.resize = function(a, b) { | |
var c = !0; | |
U(a, b, c), E(), xa && xa.resize() | |
}, this.resizeMedia = Y, this.reset = function() { | |
document.contains(ka) && ka.parentNode.replaceChild(Ba, ka), a.emptyElement(ka) | |
}, this.setupInstream = function(b) { | |
this.instreamModel = pa = b, pa.on("change:controls", Qa, this), pa.on("change:state", ja, this), Ha = !0, a.addClass(ka, "jw-flag-ads"), ba() | |
}, this.setAltText = function(a) { | |
qa.setAltText(a) | |
}, this.useExternalControls = function() { | |
a.addClass(ka, "jw-flag-ads-hide-controls") | |
}, this.destroyInstream = function() { | |
if (Ha = !1, pa && (pa.off(null, null, this), pa = null), this.setAltText(""), a.removeClass(ka, "jw-flag-ads"), a.removeClass(ka, "jw-flag-ads-hide-controls"), w.getVideo) { | |
var b = w.getVideo(); | |
b.setContainer(ma) | |
} | |
fa(w, w.get("duration")), sa.revertAlternateClickHandlers() | |
}, this.addCues = function(a) { | |
qa && qa.addCues(a) | |
}, this.clickHandler = function() { | |
return sa | |
}, this.controlsContainer = function() { | |
return la | |
}, this.getContainer = this.element = function() { | |
return ka | |
}, this.getSafeRegion = function(b) { | |
var c = { | |
x: 0, | |
y: 0, | |
width: w.get("containerWidth") || 0, | |
height: w.get("containerHeight") || 0 | |
}, | |
d = w.get("dock"); | |
return d && d.length && w.get("controls") && (c.y = ua.element().clientHeight, c.height -= c.y), b = b || !a.exists(b), b && w.get("controls") && (c.height -= qa.element().clientHeight), c | |
}, this.destroy = function() { | |
window.removeEventListener("resize", E), window.removeEventListener("orientationchange", E); | |
for (var b = u.length; b--;) document.removeEventListener(u[b], $, !1); | |
w.mediaController && w.mediaController.off("fullscreenchange", $), ka.removeEventListener("keydown", A, !1), za && za.destroy(), ta && (w.off("change:state", ta.statusDelegate), ta.destroy(), ta = null), Ha && this.destroyInstream(), va && va.destroy(), a.clearCss("#" + w.get("id")) | |
}, this.reloadPlaylistItem = function(a) { | |
qa.reloadPlaylistItem(a) | |
}, this.setCaptionBack = function(a) { | |
xa.setCaptionBack(a) | |
}, this.setCaptionDelay = function(a) { | |
xa.setCaptionDelay(a) | |
}, this.setCaptionColor = function(a) { | |
xa.setCaptionColor(a) | |
}, this.setCaptionLine = function(a) { | |
xa.setCaptionLine(a) | |
}, this.setCaptionSize = function(a) { | |
xa.setCaptionSize(a) | |
}, this.setCaptionFont = function(a) { | |
xa.setCaptionFont(a) | |
}, this.setCaptionSecond = function(a) { | |
xa.setSecondCaptionsTrack(a) | |
}, this.getCaptionStyle = function() { | |
return xa.getCaptionStyle() | |
} | |
}; | |
return v | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(108), c(46), c(44), c(43), c(45), c(109)], e = function(a, b, c, d, e, f) { | |
var g = b.style, | |
h = { | |
linktarget: "_blank", | |
margin: 8, | |
hide: !1, | |
position: "top-right" | |
}, | |
i = function(i) { | |
var j, k, l = new Image, | |
m = d.extend({}, i.get("logo")); | |
return d.extend(this, e), this.setup = function(e) { | |
if (k = d.extend({}, h, m), k.hide = "true" === k.hide.toString(), j = b.createElement(f()), k.file) { | |
k.hide && b.addClass(j, "jw-hide"), b.addClass(j, "jw-logo-" + (k.position || h.position)), "top-right" === k.position && (i.on("change:dock", this.topRight, this), i.on("change:controls", this.topRight, this), this.topRight(i)), i.set("logo", k), l.onload = function() { | |
var a = { | |
backgroundImage: 'url("' + this.src + '")', | |
width: this.width, | |
height: this.height | |
}; | |
if (k.margin !== h.margin) { | |
var b = /(\w+)-(\w+)/.exec(k.position); | |
3 === b.length && (a["margin-" + b[1]] = k.margin, a["margin-" + b[2]] = k.margin) | |
} | |
g(j, a), i.set("logoWidth", a.width) | |
}, l.src = k.file; | |
var n = new a(j); | |
n.on("click tap", function(a) { | |
b.exists(a) && a.stopPropagation && a.stopPropagation(), this.trigger(c.JWPLAYER_LOGO_CLICK, { | |
link: k.link, | |
linktarget: k.linktarget | |
}) | |
}, this), e.appendChild(j) | |
} | |
}, this.topRight = function(a) { | |
var b = a.get("controls"), | |
c = a.get("dock"), | |
d = b && (c && c.length || a.get("sharing") || a.get("related")); | |
g(j, { | |
top: d ? "3.5em" : 0 | |
}) | |
}, this.element = function() { | |
return j | |
}, this.position = function() { | |
return k.position | |
}, this.destroy = function() { | |
l.onload = null | |
}, this | |
}; | |
return i | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(45), c(44), c(43), c(46)], e = function(a, b, c, d) { | |
function e(a, b) { | |
return /touch/.test(a.type) ? (a.originalEvent || a).changedTouches[0]["page" + b] : a["page" + b] | |
} | |
function f(a) { | |
var b = a || window.event; | |
return a instanceof MouseEvent && ("which" in b ? 3 === b.which : "button" in b && 2 === b.button) | |
} | |
function g(a, b, c) { | |
var d; | |
return d = b instanceof MouseEvent || !b.touches && !b.changedTouches ? b : b.touches && b.touches.length ? b.touches[0] : b.changedTouches[0], { | |
type: a, | |
target: b.target, | |
currentTarget: c, | |
pageX: d.pageX, | |
pageY: d.pageY | |
} | |
} | |
function h(a) { | |
(a instanceof MouseEvent || a instanceof window.TouchEvent) && (a.preventManipulation && a.preventManipulation(), a.cancelable && a.preventDefault && a.preventDefault()) | |
} | |
var i = !c.isUndefined(window.PointerEvent), | |
j = !i && d.isMobile(), | |
k = !i && !j, | |
l = d.isFF() && d.isOSX(), | |
m = function(a, d) { | |
function j(a) { | |
(k || i && "touch" !== a.pointerType) && r(b.touchEvents.OVER, a) | |
} | |
function m(a) { | |
(k || i && "touch" !== a.pointerType) && r(b.touchEvents.MOVE, a) | |
} | |
function n(c) { | |
(k || i && "touch" !== c.pointerType && !a.contains(document.elementFromPoint(c.x, c.y))) && r(b.touchEvents.OUT, c) | |
} | |
function o(b) { | |
s = b.target, w = e(b, "X"), x = e(b, "Y"), f(b) || (i ? b.isPrimary && (d.preventScrolling && (t = b.pointerId, a.setPointerCapture(t)), a.addEventListener("pointermove", p), a.addEventListener("pointercancel", q), a.addEventListener("pointerup", q)) : k && (document.addEventListener("mousemove", p), l && "object" === b.target.nodeName.toLowerCase() ? a.addEventListener("click", q) : document.addEventListener("mouseup", q)), s.addEventListener("touchmove", p), s.addEventListener("touchcancel", q), s.addEventListener("touchend", q)) | |
} | |
function p(a) { | |
var c = b.touchEvents, | |
f = 6; | |
if (v) r(c.DRAG, a); | |
else { | |
var g = e(a, "X"), | |
i = e(a, "Y"), | |
j = g - w, | |
k = i - x; | |
j * j + k * k > f * f && (r(c.DRAG_START, a), v = !0, r(c.DRAG, a)) | |
} | |
d.preventScrolling && h(a) | |
} | |
function q(c) { | |
var e = b.touchEvents; | |
i ? (d.preventScrolling && a.releasePointerCapture(t), a.removeEventListener("pointermove", p), a.removeEventListener("pointercancel", q), a.removeEventListener("pointerup", q)) : k && (document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", q)), s.removeEventListener("touchmove", p), s.removeEventListener("touchcancel", q), s.removeEventListener("touchend", q), v ? r(e.DRAG_END, c) : d.directSelect && c.target !== a || c.type.indexOf("cancel") !== -1 || (i && c instanceof window.PointerEvent ? "touch" === c.pointerType ? r(e.TAP, c) : r(e.CLICK, c) : k ? r(e.CLICK, c) : (r(e.TAP, c), h(c))), s = null, v = !1 | |
} | |
function r(a, e) { | |
var f; | |
if (d.enableDoubleTap && (a === b.touchEvents.CLICK || a === b.touchEvents.TAP)) | |
if (c.now() - y < z) { | |
var h = a === b.touchEvents.CLICK ? b.touchEvents.DOUBLE_CLICK : b.touchEvents.DOUBLE_TAP; | |
f = g(h, e, u), A.trigger(h, f), y = 0 | |
} else y = c.now(); | |
f = g(a, e, u), A.trigger(a, f) | |
} | |
var s, t, u = a, | |
v = !1, | |
w = 0, | |
x = 0, | |
y = 0, | |
z = 300; | |
d = d || {}, i ? (a.addEventListener("pointerdown", o), d.useHover && (a.addEventListener("pointerover", j), a.addEventListener("pointerout", n)), d.useMove && a.addEventListener("pointermove", m)) : k && (a.addEventListener("mousedown", o), d.useHover && (a.addEventListener("mouseover", j), a.addEventListener("mouseout", n)), d.useMove && a.addEventListener("mousemove", m)), a.addEventListener("touchstart", o); | |
var A = this; | |
return this.triggerEvent = r, this.destroy = function() { | |
a.removeEventListener("touchstart", o), a.removeEventListener("mousedown", o), s && (s.removeEventListener("touchmove", p), s.removeEventListener("touchcancel", q), s.removeEventListener("touchend", q)), i && (d.preventScrolling && a.releasePointerCapture(t), a.removeEventListener("pointerover", j), a.removeEventListener("pointerdown", o), a.removeEventListener("pointermove", p), a.removeEventListener("pointermove", m), a.removeEventListener("pointercancel", q), a.removeEventListener("pointerout", n), a.removeEventListener("pointerup", q)), a.removeEventListener("click", q), a.removeEventListener("mouseover", j), a.removeEventListener("mousemove", m), a.removeEventListener("mouseout", n), document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", q) | |
}, this | |
}; | |
return c.extend(m.prototype, a), m | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
return '<div class="jw-logo jw-reset"></div>' | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
a.exports = c(111)["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
return a && a.__esModule ? a : { | |
"default": a | |
} | |
} | |
function e(a) { | |
if (a && a.__esModule) return a; | |
var b = {}; | |
if (null != a) | |
for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); | |
return b["default"] = a, b | |
} | |
function f() { | |
var a = new h.HandlebarsEnvironment; | |
return n.extend(a, h), a.SafeString = j["default"], a.Exception = l["default"], a.Utils = n, a.escapeExpression = n.escapeExpression, a.VM = p, a.template = function(b) { | |
return p.template(b, a) | |
}, a | |
} | |
b.__esModule = !0; | |
var g = c(112), | |
h = e(g), | |
i = c(126), | |
j = d(i), | |
k = c(114), | |
l = d(k), | |
m = c(113), | |
n = e(m), | |
o = c(127), | |
p = e(o), | |
q = c(128), | |
r = d(q), | |
s = f(); | |
s.create = f, r["default"](s), s["default"] = s, b["default"] = s, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
return a && a.__esModule ? a : { | |
"default": a | |
} | |
} | |
function e(a, b, c) { | |
this.helpers = a || {}, this.partials = b || {}, this.decorators = c || {}, i.registerDefaultHelpers(this), j.registerDefaultDecorators(this) | |
} | |
b.__esModule = !0, b.HandlebarsEnvironment = e; | |
var f = c(113), | |
g = c(114), | |
h = d(g), | |
i = c(115), | |
j = c(123), | |
k = c(125), | |
l = d(k), | |
m = "4.0.5"; | |
b.VERSION = m; | |
var n = 7; | |
b.COMPILER_REVISION = n; | |
var o = { | |
1: "<= 1.0.rc.2", | |
2: "== 1.0.0-rc.3", | |
3: "== 1.0.0-rc.4", | |
4: "== 1.x.x", | |
5: "== 2.0.0-alpha.x", | |
6: ">= 2.0.0-beta.1", | |
7: ">= 4.0.0" | |
}; | |
b.REVISION_CHANGES = o; | |
var p = "[object Object]"; | |
e.prototype = { | |
constructor: e, | |
logger: l["default"], | |
log: l["default"].log, | |
registerHelper: function(a, b) { | |
if (f.toString.call(a) === p) { | |
if (b) throw new h["default"]("Arg not supported with multiple helpers"); | |
f.extend(this.helpers, a) | |
} else this.helpers[a] = b | |
}, | |
unregisterHelper: function(a) { | |
delete this.helpers[a] | |
}, | |
registerPartial: function(a, b) { | |
if (f.toString.call(a) === p) f.extend(this.partials, a); | |
else { | |
if ("undefined" == typeof b) throw new h["default"]('Attempting to register a partial called "' + a + '" as undefined'); | |
this.partials[a] = b | |
} | |
}, | |
unregisterPartial: function(a) { | |
delete this.partials[a] | |
}, | |
registerDecorator: function(a, b) { | |
if (f.toString.call(a) === p) { | |
if (b) throw new h["default"]("Arg not supported with multiple decorators"); | |
f.extend(this.decorators, a) | |
} else this.decorators[a] = b | |
}, | |
unregisterDecorator: function(a) { | |
delete this.decorators[a] | |
} | |
}; | |
var q = l["default"].log; | |
b.log = q, b.createFrame = f.createFrame, b.logger = l["default"] | |
}, function(a, b) { | |
"use strict"; | |
function c(a) { | |
return k[a] | |
} | |
function d(a) { | |
for (var b = 1; b < arguments.length; b++) | |
for (var c in arguments[b]) Object.prototype.hasOwnProperty.call(arguments[b], c) && (a[c] = arguments[b][c]); | |
return a | |
} | |
function e(a, b) { | |
for (var c = 0, d = a.length; c < d; c++) | |
if (a[c] === b) return c; | |
return -1 | |
} | |
function f(a) { | |
if ("string" != typeof a) { | |
if (a && a.toHTML) return a.toHTML(); | |
if (null == a) return ""; | |
if (!a) return a + ""; | |
a = "" + a | |
} | |
return m.test(a) ? a.replace(l, c) : a | |
} | |
function g(a) { | |
return !a && 0 !== a || !(!p(a) || 0 !== a.length) | |
} | |
function h(a) { | |
var b = d({}, a); | |
return b._parent = a, b | |
} | |
function i(a, b) { | |
return a.path = b, a | |
} | |
function j(a, b) { | |
return (a ? a + "." : "") + b | |
} | |
b.__esModule = !0, b.extend = d, b.indexOf = e, b.escapeExpression = f, b.isEmpty = g, b.createFrame = h, b.blockParams = i, b.appendContextPath = j; | |
var k = { | |
"&": "&", | |
"<": "<", | |
">": ">", | |
'"': """, | |
"'": "'", | |
"`": "`", | |
"=": "=" | |
}, | |
l = /[&<>"'`=]/g, | |
m = /[&<>"'`=]/, | |
n = Object.prototype.toString; | |
b.toString = n; | |
var o = function(a) { | |
return "function" == typeof a | |
}; | |
o(/x/) && (b.isFunction = o = function(a) { | |
return "function" == typeof a && "[object Function]" === n.call(a) | |
}), b.isFunction = o; | |
var p = Array.isArray || function(a) { | |
return !(!a || "object" != typeof a) && "[object Array]" === n.call(a) | |
}; | |
b.isArray = p | |
}, function(a, b) { | |
"use strict"; | |
function c(a, b) { | |
var e = b && b.loc, | |
f = void 0, | |
g = void 0; | |
e && (f = e.start.line, g = e.start.column, a += " - " + f + ":" + g); | |
for (var h = Error.prototype.constructor.call(this, a), i = 0; i < d.length; i++) this[d[i]] = h[d[i]]; | |
Error.captureStackTrace && Error.captureStackTrace(this, c); | |
try { | |
e && (this.lineNumber = f, Object.defineProperty ? Object.defineProperty(this, "column", { | |
value: g | |
}) : this.column = g) | |
} catch (j) {} | |
} | |
b.__esModule = !0; | |
var d = ["description", "fileName", "lineNumber", "message", "name", "number", "stack"]; | |
c.prototype = new Error, b["default"] = c, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
return a && a.__esModule ? a : { | |
"default": a | |
} | |
} | |
function e(a) { | |
g["default"](a), i["default"](a), k["default"](a), m["default"](a), o["default"](a), q["default"](a), s["default"](a) | |
} | |
b.__esModule = !0, b.registerDefaultHelpers = e; | |
var f = c(116), | |
g = d(f), | |
h = c(117), | |
i = d(h), | |
j = c(118), | |
k = d(j), | |
l = c(119), | |
m = d(l), | |
n = c(120), | |
o = d(n), | |
p = c(121), | |
q = d(p), | |
r = c(122), | |
s = d(r) | |
}, function(a, b, c) { | |
"use strict"; | |
b.__esModule = !0; | |
var d = c(113); | |
b["default"] = function(a) { | |
a.registerHelper("blockHelperMissing", function(b, c) { | |
var e = c.inverse, | |
f = c.fn; | |
if (b === !0) return f(this); | |
if (b === !1 || null == b) return e(this); | |
if (d.isArray(b)) return b.length > 0 ? (c.ids && (c.ids = [c.name]), a.helpers.each(b, c)) : e(this); | |
if (c.data && c.ids) { | |
var g = d.createFrame(c.data); | |
g.contextPath = d.appendContextPath(c.data.contextPath, c.name), c = { | |
data: g | |
} | |
} | |
return f(b, c) | |
}) | |
}, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
return a && a.__esModule ? a : { | |
"default": a | |
} | |
} | |
b.__esModule = !0; | |
var e = c(113), | |
f = c(114), | |
g = d(f); | |
b["default"] = function(a) { | |
a.registerHelper("each", function(a, b) { | |
function c(b, c, f) { | |
j && (j.key = b, j.index = c, j.first = 0 === c, j.last = !!f, k && (j.contextPath = k + b)), i += d(a[b], { | |
data: j, | |
blockParams: e.blockParams([a[b], b], [k + b, null]) | |
}) | |
} | |
if (!b) throw new g["default"]("Must pass iterator to #each"); | |
var d = b.fn, | |
f = b.inverse, | |
h = 0, | |
i = "", | |
j = void 0, | |
k = void 0; | |
if (b.data && b.ids && (k = e.appendContextPath(b.data.contextPath, b.ids[0]) + "."), e.isFunction(a) && (a = a.call(this)), b.data && (j = e.createFrame(b.data)), a && "object" == typeof a) | |
if (e.isArray(a)) | |
for (var l = a.length; h < l; h++) h in a && c(h, h, h === a.length - 1); | |
else { | |
var m = void 0; | |
for (var n in a) a.hasOwnProperty(n) && (void 0 !== m && c(m, h - 1), m = n, h++); | |
void 0 !== m && c(m, h - 1, !0) | |
} | |
return 0 === h && (i = f(this)), i | |
}) | |
}, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
return a && a.__esModule ? a : { | |
"default": a | |
} | |
} | |
b.__esModule = !0; | |
var e = c(114), | |
f = d(e); | |
b["default"] = function(a) { | |
a.registerHelper("helperMissing", function() { | |
if (1 !== arguments.length) throw new f["default"]('Missing helper: "' + arguments[arguments.length - 1].name + '"') | |
}) | |
}, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
b.__esModule = !0; | |
var d = c(113); | |
b["default"] = function(a) { | |
a.registerHelper("if", function(a, b) { | |
return d.isFunction(a) && (a = a.call(this)), !b.hash.includeZero && !a || d.isEmpty(a) ? b.inverse(this) : b.fn(this) | |
}), a.registerHelper("unless", function(b, c) { | |
return a.helpers["if"].call(this, b, { | |
fn: c.inverse, | |
inverse: c.fn, | |
hash: c.hash | |
}) | |
}) | |
}, a.exports = b["default"] | |
}, function(a, b) { | |
"use strict"; | |
b.__esModule = !0, b["default"] = function(a) { | |
a.registerHelper("log", function() { | |
for (var b = [void 0], c = arguments[arguments.length - 1], d = 0; d < arguments.length - 1; d++) b.push(arguments[d]); | |
var e = 1; | |
null != c.hash.level ? e = c.hash.level : c.data && null != c.data.level && (e = c.data.level), b[0] = e, a.log.apply(a, b) | |
}) | |
}, a.exports = b["default"] | |
}, function(a, b) { | |
"use strict"; | |
b.__esModule = !0, b["default"] = function(a) { | |
a.registerHelper("lookup", function(a, b) { | |
return a && a[b] | |
}) | |
}, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
b.__esModule = !0; | |
var d = c(113); | |
b["default"] = function(a) { | |
a.registerHelper("with", function(a, b) { | |
d.isFunction(a) && (a = a.call(this)); | |
var c = b.fn; | |
if (d.isEmpty(a)) return b.inverse(this); | |
var e = b.data; | |
return b.data && b.ids && (e = d.createFrame(b.data), e.contextPath = d.appendContextPath(b.data.contextPath, b.ids[0])), c(a, { | |
data: e, | |
blockParams: d.blockParams([a], [e && e.contextPath]) | |
}) | |
}) | |
}, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
return a && a.__esModule ? a : { | |
"default": a | |
} | |
} | |
function e(a) { | |
g["default"](a) | |
} | |
b.__esModule = !0, b.registerDefaultDecorators = e; | |
var f = c(124), | |
g = d(f) | |
}, function(a, b, c) { | |
"use strict"; | |
b.__esModule = !0; | |
var d = c(113); | |
b["default"] = function(a) { | |
a.registerDecorator("inline", function(a, b, c, e) { | |
var f = a; | |
return b.partials || (b.partials = {}, f = function(e, f) { | |
var g = c.partials; | |
c.partials = d.extend({}, g, b.partials); | |
var h = a(e, f); | |
return c.partials = g, h | |
}), b.partials[e.args[0]] = e.fn, f | |
}) | |
}, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
b.__esModule = !0; | |
var d = c(113), | |
e = { | |
methodMap: ["debug", "info", "warn", "error"], | |
level: "info", | |
lookupLevel: function(a) { | |
if ("string" == typeof a) { | |
var b = d.indexOf(e.methodMap, a.toLowerCase()); | |
a = b >= 0 ? b : parseInt(a, 10) | |
} | |
return a | |
}, | |
log: function(a) { | |
if (a = e.lookupLevel(a), "undefined" != typeof console && e.lookupLevel(e.level) <= a) { | |
var b = e.methodMap[a]; | |
console[b] || (b = "log"); | |
for (var c = arguments.length, d = Array(c > 1 ? c - 1 : 0), f = 1; f < c; f++) d[f - 1] = arguments[f]; | |
console[b].apply(console, d) | |
} | |
} | |
}; | |
b["default"] = e, a.exports = b["default"]; | |
}, function(a, b) { | |
"use strict"; | |
function c(a) { | |
this.string = a | |
} | |
b.__esModule = !0, c.prototype.toString = c.prototype.toHTML = function() { | |
return "" + this.string | |
}, b["default"] = c, a.exports = b["default"] | |
}, function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
return a && a.__esModule ? a : { | |
"default": a | |
} | |
} | |
function e(a) { | |
if (a && a.__esModule) return a; | |
var b = {}; | |
if (null != a) | |
for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); | |
return b["default"] = a, b | |
} | |
function f(a) { | |
var b = a && a[0] || 1, | |
c = r.COMPILER_REVISION; | |
if (b !== c) { | |
if (b < c) { | |
var d = r.REVISION_CHANGES[c], | |
e = r.REVISION_CHANGES[b]; | |
throw new q["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (" + d + ") or downgrade your runtime to an older version (" + e + ").") | |
} | |
throw new q["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (" + a[1] + ").") | |
} | |
} | |
function g(a, b) { | |
function c(c, d, e) { | |
e.hash && (d = o.extend({}, d, e.hash), e.ids && (e.ids[0] = !0)), c = b.VM.resolvePartial.call(this, c, d, e); | |
var f = b.VM.invokePartial.call(this, c, d, e); | |
if (null == f && b.compile && (e.partials[e.name] = b.compile(c, a.compilerOptions, b), f = e.partials[e.name](d, e)), null != f) { | |
if (e.indent) { | |
for (var g = f.split("\n"), h = 0, i = g.length; h < i && (g[h] || h + 1 !== i); h++) g[h] = e.indent + g[h]; | |
f = g.join("\n") | |
} | |
return f | |
} | |
throw new q["default"]("The partial " + e.name + " could not be compiled when running in runtime-only mode") | |
} | |
function d(b) { | |
function c(b) { | |
return "" + a.main(e, b, e.helpers, e.partials, g, i, h) | |
} | |
var f = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], | |
g = f.data; | |
d._setup(f), !f.partial && a.useData && (g = l(b, g)); | |
var h = void 0, | |
i = a.useBlockParams ? [] : void 0; | |
return a.useDepths && (h = f.depths ? b != f.depths[0] ? [b].concat(f.depths) : f.depths : [b]), (c = m(a.main, c, e, f.depths || [], g, i))(b, f) | |
} | |
if (!b) throw new q["default"]("No environment passed to template"); | |
if (!a || !a.main) throw new q["default"]("Unknown template object: " + typeof a); | |
a.main.decorator = a.main_d, b.VM.checkRevision(a.compiler); | |
var e = { | |
strict: function(a, b) { | |
if (!(b in a)) throw new q["default"]('"' + b + '" not defined in ' + a); | |
return a[b] | |
}, | |
lookup: function(a, b) { | |
for (var c = a.length, d = 0; d < c; d++) | |
if (a[d] && null != a[d][b]) return a[d][b] | |
}, | |
lambda: function(a, b) { | |
return "function" == typeof a ? a.call(b) : a | |
}, | |
escapeExpression: o.escapeExpression, | |
invokePartial: c, | |
fn: function(b) { | |
var c = a[b]; | |
return c.decorator = a[b + "_d"], c | |
}, | |
programs: [], | |
program: function(a, b, c, d, e) { | |
var f = this.programs[a], | |
g = this.fn(a); | |
return b || e || d || c ? f = h(this, a, g, b, c, d, e) : f || (f = this.programs[a] = h(this, a, g)), f | |
}, | |
data: function(a, b) { | |
for (; a && b--;) a = a._parent; | |
return a | |
}, | |
merge: function(a, b) { | |
var c = a || b; | |
return a && b && a !== b && (c = o.extend({}, b, a)), c | |
}, | |
noop: b.VM.noop, | |
compilerInfo: a.compiler | |
}; | |
return d.isTop = !0, d._setup = function(c) { | |
c.partial ? (e.helpers = c.helpers, e.partials = c.partials, e.decorators = c.decorators) : (e.helpers = e.merge(c.helpers, b.helpers), a.usePartial && (e.partials = e.merge(c.partials, b.partials)), (a.usePartial || a.useDecorators) && (e.decorators = e.merge(c.decorators, b.decorators))) | |
}, d._child = function(b, c, d, f) { | |
if (a.useBlockParams && !d) throw new q["default"]("must pass block params"); | |
if (a.useDepths && !f) throw new q["default"]("must pass parent depths"); | |
return h(e, b, a[b], c, 0, d, f) | |
}, d | |
} | |
function h(a, b, c, d, e, f, g) { | |
function h(b) { | |
var e = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], | |
h = g; | |
return g && b != g[0] && (h = [b].concat(g)), c(a, b, a.helpers, a.partials, e.data || d, f && [e.blockParams].concat(f), h) | |
} | |
return h = m(c, h, a, g, d, f), h.program = b, h.depth = g ? g.length : 0, h.blockParams = e || 0, h | |
} | |
function i(a, b, c) { | |
if (a) a.call || c.name || (c.name = a, a = c.partials[a]); | |
else if ("@partial-block" === c.name) { | |
for (var d = c.data; d["partial-block"] === k;) d = d._parent; | |
a = d["partial-block"], d["partial-block"] = k | |
} else a = c.partials[c.name]; | |
return a | |
} | |
function j(a, b, c) { | |
c.partial = !0, c.ids && (c.data.contextPath = c.ids[0] || c.data.contextPath); | |
var d = void 0; | |
if (c.fn && c.fn !== k && (c.data = r.createFrame(c.data), d = c.data["partial-block"] = c.fn, d.partials && (c.partials = o.extend({}, c.partials, d.partials))), void 0 === a && d && (a = d), void 0 === a) throw new q["default"]("The partial " + c.name + " could not be found"); | |
if (a instanceof Function) return a(b, c) | |
} | |
function k() { | |
return "" | |
} | |
function l(a, b) { | |
return b && "root" in b || (b = b ? r.createFrame(b) : {}, b.root = a), b | |
} | |
function m(a, b, c, d, e, f) { | |
if (a.decorator) { | |
var g = {}; | |
b = a.decorator(b, g, c, d && d[0], e, f, d), o.extend(b, g) | |
} | |
return b | |
} | |
b.__esModule = !0, b.checkRevision = f, b.template = g, b.wrapProgram = h, b.resolvePartial = i, b.invokePartial = j, b.noop = k; | |
var n = c(113), | |
o = e(n), | |
p = c(114), | |
q = d(p), | |
r = c(112) | |
}, function(a, b) { | |
(function(c) { | |
"use strict"; | |
b.__esModule = !0, b["default"] = function(a) { | |
var b = "undefined" != typeof c ? c : window, | |
d = b.Handlebars; | |
a.noConflict = function() { | |
return b.Handlebars === a && (b.Handlebars = d), a | |
} | |
}, a.exports = b["default"] | |
}).call(b, function() { | |
return this | |
}()) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(52), c(61), c(43)], e = function(a, b, c, d) { | |
var e = b.style, | |
f = { | |
back: !1, | |
fontSize: 20, | |
fontFamily: "Arial", | |
fontOpacity: 100, | |
color: "#FFFFFF", | |
backgroundColor: "#000", | |
backgroundOpacity: 50, | |
edgeStyle: "uniform", | |
windowColor: "#FFF", | |
windowOpacity: 0, | |
preprocessor: d.identity, | |
delayTime: 0, | |
textShadow: "#080808", | |
captionSecondPos: "below" | |
}, | |
g = "jwplayer.captionconfig", | |
h = function(h) { | |
function i(b) { | |
b = b || ""; | |
var c = "jw-captions-window jw-reset"; | |
b ? (z.innerHTML = b, y.className = c + " jw-captions-window-active") : (y.className = c, a.empty(z)) | |
} | |
function j(b) { | |
if (b = b || "") { | |
var c = b, | |
d = "border-top: 1px solid rgba(204, 204, 204, 0.28);"; | |
b = '<div style="padding-top: 5px;margin-top: 5px;text-align: center;' + d + '">', b += c + "</div>", A.innerHTML = b | |
} else a.empty(A) | |
} | |
function k(a) { | |
w = a, n(s, w) | |
} | |
function l(a, b) { | |
var c = a.source, | |
e = b.metadata; | |
return c ? !(!e || !d.isNumber(e[c])) && e[c] : b.position | |
} | |
function m(a) { | |
if (t && t.data) { | |
var b = l(t, a); | |
if (b !== !1) { | |
b += Number(B.delayTime); | |
var c = t.data; | |
if (v >= 0 && o(c, v, b)); | |
else { | |
for (var d = -1, e = 0; e < c.length; e++) | |
if (o(c, e, b)) { | |
d = e; | |
break | |
} | |
d === -1 ? j("") : d !== v && (v = d, j(B.preprocessor(c[v].text))) | |
} | |
} | |
} else j("") | |
} | |
function n(a, b) { | |
if (a && a.data && b) { | |
var c = l(a, b); | |
if (c !== !1) { | |
c += Number(B.delayTime); | |
var d = a.data; | |
if (!(u >= 0 && o(d, u, c))) { | |
for (var e = -1, f = 0; f < d.length; f++) | |
if (o(d, f, c)) { | |
e = f; | |
break | |
} | |
e === -1 ? i("") : e !== u && (u = e, i(B.preprocessor(d[u].text))), m(b) | |
} | |
} | |
} | |
} | |
function o(a, b, c) { | |
return a[b].begin <= c && (!a[b].end || a[b].end >= c) && (b === a.length - 1 || a[b + 1].begin >= c) | |
} | |
function p(a) { | |
for (var b = a + "=", c = document.cookie.split(";"), d = 0; d < c.length; d++) { | |
for (var e = c[d]; | |
" " === e.charAt(0);) e = e.substring(1); | |
if (0 === e.indexOf(b)) return e.substring(b.length, e.length) | |
} | |
return "" | |
} | |
function q(a, b, c) { | |
var d = new Date; | |
c || (c = 30), d.setTime(d.getTime() + 24 * c * 60 * 60 * 1e3); | |
var e = "expires=" + d.toUTCString(); | |
document.cookie = a + "=" + b + "; " + e | |
} | |
function r(a, c, d) { | |
d = 100; | |
var e = b.hexToRgba("#000000", d); | |
c.textShadow && (e = b.hexToRgba(c.textShadow, d)), "dropshadow" === a ? c.textShadow = "0 2px 1px " + e : "raised" === a ? c.textShadow = "0 0 5px " + e + ", 0 1px 5px " + e + ", 0 2px 5px " + e : "depressed" === a ? c.textShadow = "0 -2px 1px " + e : "uniform" === a && (c.textShadow = "-2px 0 1px " + e + ",2px 0 1px " + e + ",0 -2px 1px " + e + ",0 2px 1px " + e + ",-1px 1px 1px " + e + ",1px 1px 1px " + e + ",1px -1px 1px " + e + ",1px 1px 1px " + e) | |
} | |
var s, t, u, v, w, x, y, z, A, B = {}; | |
x = document.createElement("div"), x.className = "jw-captions jw-reset", this.show = function() { | |
x.className = "jw-captions jw-captions-enabled jw-reset" | |
}, this.hide = function() { | |
x.className = "jw-captions jw-reset" | |
}, this.populate = function(a) { | |
return u = -1, s = a, a ? void n(a, w) : void i("") | |
}, this.setSecondCaptionsTrack = function(a) { | |
t = a; | |
var b = {}; | |
t && t.data ? b = { | |
minHeight: Math.max(50, z.clientHeight) + "px" | |
} : b.minHeight = 0, e(A, b) | |
}, this.setCaptionBack = function(a) { | |
a === !0 ? B.backgroundOpacity = 50 : B.backgroundOpacity = 0, B.back = a; | |
var c = { | |
backgroundColor: b.hexToRgba(B.backgroundColor, B.backgroundOpacity) | |
}; | |
e(z, c), e(A, c), q(g, JSON.stringify(B)) | |
}, this.setCaptionDelay = function(a) { | |
B.delayTime = Number(a), q(g, JSON.stringify(B)) | |
}, this.setCaptionColor = function(a) { | |
B.color = a; | |
var b = { | |
color: B.color | |
}; | |
e(z, b), e(A, b), q(g, JSON.stringify(B)) | |
}, this.setCaptionLine = function(a) { | |
B.textShadow = a; | |
var b = { | |
textShadow: B.textShadow | |
}; | |
r(B.edgeStyle, b), e(z, b), e(A, b), q(g, JSON.stringify(B)) | |
}, this.setCaptionSize = function(a) { | |
B.fontSize = a; | |
var b = { | |
fontSize: B.fontSize | |
}; | |
e(z, b), q(g, JSON.stringify(B)), this.resize() | |
}, this.setCaptionFont = function(a) { | |
B.fontFamily = a; | |
var b = { | |
fontFamily: B.fontFamily | |
}; | |
e(z, b), e(A, b), q(g, JSON.stringify(B)) | |
}, this.getCaptionStyle = function() { | |
return B | |
}, this.resize = function() { | |
var a = x.clientWidth, | |
b = Math.pow(a / 400, .6); | |
if (b > 0) { | |
var c = { | |
fontSize: Math.round(B.fontSize * b) + "px" | |
}; | |
e(z, c), t && t.data && (c.minHeight = Math.max(50, z.clientHeight) + "px"), e(A, c) | |
} | |
if (b) { | |
var d = B.fontSize * b; | |
e(x, { | |
fontSize: Math.round(d) + "px" | |
}) | |
} | |
}, this.setup = function(a) { | |
y = document.createElement("div"), z = document.createElement("span"), A = document.createElement("span"), y.className = "jw-captions-window jw-reset", z.className = "jw-captions-text jw-reset"; | |
var c = p(g); | |
if ("" === c) c = {}; | |
else try { | |
c = JSON.parse(c) | |
} catch (i) { | |
c = {} | |
} | |
if (B = d.extend(f, c, a)) { | |
var j = B.fontOpacity, | |
k = B.windowOpacity, | |
l = B.edgeStyle, | |
m = B.backgroundColor, | |
n = {}, | |
o = { | |
color: b.hexToRgba(B.color, j), | |
fontFamily: B.fontFamily, | |
fontStyle: B.fontStyle, | |
fontWeight: B.fontWeight, | |
textDecoration: B.textDecoration, | |
textShadow: B.textShadow, | |
fontSize: B.fontSize, | |
display: "block" | |
}; | |
k && (n.backgroundColor = b.hexToRgba(B.windowColor, k)), r(l, o, j), B.back ? o.backgroundColor = b.hexToRgba(m, B.backgroundOpacity) : null === l && r("uniform", o), e(y, n), e(z, o), e(A, o) | |
} | |
y.appendChild(z), y.appendChild(A), x.appendChild(y), q(g, JSON.stringify(B)), this.populate(h.get("captionsTrack")) | |
}, this.element = function() { | |
return x | |
}, h.on("change:playlistItem", function() { | |
w = null, u = -1, i("") | |
}, this), h.on("change:captionsTrack", function(a, b) { | |
this.populate(b) | |
}, this), h.mediaController.on("seek", function() { | |
u = -1 | |
}, this), h.mediaController.on("time seek", k, this), h.mediaController.on("subtitlesTrackData", function() { | |
n(s, w) | |
}, this), h.on("change:state", function(a, b) { | |
switch (b) { | |
case c.IDLE: | |
case c.ERROR: | |
case c.COMPLETE: | |
this.hide(); | |
break; | |
default: | |
this.show() | |
} | |
}, this) | |
}; | |
return h | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(108), c(44), c(45), c(43)], e = function(a, b, c, d) { | |
var e = function(e, f, g) { | |
function h(a) { | |
if (!e.get("flashBlocked")) return k ? void k(a) : void o.trigger(a.type === b.touchEvents.CLICK ? "click" : "tap") | |
} | |
function i() { | |
return l ? void l() : void o.trigger("doubleClick") | |
} | |
var j, k, l, m = { | |
enableDoubleTap: !0, | |
useMove: !0 | |
}; | |
d.extend(this, c), j = f, this.element = function() { | |
return j | |
}; | |
var n = new a(j, d.extend(m, g)); | |
n.on("click tap", h), n.on("doubleClick doubleTap", i), n.on("move", function() { | |
o.trigger("move") | |
}), n.on("over", function() { | |
o.trigger("over") | |
}), n.on("out", function() { | |
o.trigger("out") | |
}), this.clickHandler = h; | |
var o = this; | |
this.setAlternateClickHandlers = function(a, b) { | |
k = a, l = b || null | |
}, this.revertAlternateClickHandlers = function() { | |
k = null, l = null | |
} | |
}; | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(45), c(108), c(132), c(43)], e = function(a, b, c, d, e) { | |
var f = function(f) { | |
e.extend(this, b), this.model = f, this.el = a.createElement(d({})); | |
var g = this; | |
this.iconUI = new c(this.el).on("click tap", function(a) { | |
g.trigger(a.type) | |
}) | |
}; | |
return e.extend(f.prototype, { | |
element: function() { | |
return this.el | |
} | |
}), f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
return '<div class="jw-display-icon-container jw-background-color jw-reset">\r\n <div class="jw-icon jw-icon-display jw-button-color jw-reset"></div>\r\n</div>\r\n' | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(134), c(46), c(43), c(108)], e = function(a, b, c, d) { | |
var e = function(a) { | |
this.model = a, this.setup(), this.model.on("change:dock", this.render, this) | |
}; | |
return c.extend(e.prototype, { | |
setup: function() { | |
var c = this.model.get("dock"), | |
e = this.click.bind(this), | |
f = a(c); | |
this.el = b.createElement(f), new d(this.el).on("click tap", e) | |
}, | |
getDockButton: function(a) { | |
return b.hasClass(a.target, "jw-dock-button") ? a.target : b.hasClass(a.target, "jw-dock-text") ? a.target.parentElement.parentElement : a.target.parentElement | |
}, | |
click: function(a) { | |
var b = this.getDockButton(a), | |
d = b.getAttribute("button"), | |
e = this.model.get("dock"), | |
f = c.findWhere(e, { | |
id: d | |
}); | |
f && f.callback && f.callback(a) | |
}, | |
render: function() { | |
var c = this.model.get("dock"), | |
d = a(c), | |
e = b.createElement(d); | |
this.el.innerHTML = e.innerHTML | |
}, | |
element: function() { | |
return this.el | |
} | |
}), e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
1: function(a, b, c, d, e) { | |
var f, g, h = null != b ? b : {}; | |
return ' <div class="jw-dock-button jw-background-color jw-reset' + (null != (f = c["if"].call(h, null != b ? b.btnClass : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(2, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + '" button="' + a.escapeExpression((g = null != (g = c.id || (null != b ? b.id : b)) ? g : c.helperMissing, "function" == typeof g ? g.call(h, { | |
name: "id", | |
hash: {}, | |
data: e | |
}) : g)) + '">\r\n <div class="jw-icon jw-dock-image jw-reset" ' + (null != (f = c["if"].call(h, null != b ? b.img : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(4, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + '></div>\r\n <div class="jw-arrow jw-reset"></div>\r\n' + (null != (f = c["if"].call(h, null != b ? b.tooltip : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(6, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + " </div>\r\n" | |
}, | |
2: function(a, b, c, d, e) { | |
var f; | |
return " " + a.escapeExpression((f = null != (f = c.btnClass || (null != b ? b.btnClass : b)) ? f : c.helperMissing, "function" == typeof f ? f.call(null != b ? b : {}, { | |
name: "btnClass", | |
hash: {}, | |
data: e | |
}) : f)) | |
}, | |
4: function(a, b, c, d, e) { | |
var f; | |
return "style='background-image: url(\"" + a.escapeExpression((f = null != (f = c.img || (null != b ? b.img : b)) ? f : c.helperMissing, "function" == typeof f ? f.call(null != b ? b : {}, { | |
name: "img", | |
hash: {}, | |
data: e | |
}) : f)) + "\")'" | |
}, | |
6: function(a, b, c, d, e) { | |
var f; | |
return ' <div class="jw-overlay jw-background-color jw-reset">\r\n <span class="jw-text jw-dock-text jw-reset">' + a.escapeExpression((f = null != (f = c.tooltip || (null != b ? b.tooltip : b)) ? f : c.helperMissing, "function" == typeof f ? f.call(null != b ? b : {}, { | |
name: "tooltip", | |
hash: {}, | |
data: e | |
}) : f)) + "</span>\r\n </div>\r\n" | |
}, | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
var f; | |
return '<div class="jw-dock jw-reset">\r\n' + (null != (f = c.each.call(null != b ? b : {}, b, { | |
name: "each", | |
hash: {}, | |
fn: a.program(1, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + "</div>" | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(43), c(45), c(57), c(108), c(140), c(142), c(136), c(145), c(147), c(149), c(150), c(44)], e = function(a, b, c, d, e, f, g, h, i, j, k, l, m) { | |
function n(a, b) { | |
var c = document.createElement("div"); | |
return c.className = "jw-icon jw-icon-inline jw-button-color jw-reset " + a, c.style.display = "none", b && new e(c).on("click tap", function() { | |
b() | |
}), { | |
element: function() { | |
return c | |
}, | |
toggle: function(a) { | |
a ? this.show() : this.hide() | |
}, | |
show: function() { | |
c.style.display = "" | |
}, | |
hide: function() { | |
c.style.display = "none" | |
} | |
} | |
} | |
function o(a) { | |
var b = document.createElement("span"); | |
return b.className = "jw-text jw-reset " + a, b | |
} | |
function p(a) { | |
var b = new h(a); | |
return b | |
} | |
function q(a, c) { | |
var d = document.createElement("div"); | |
return d.className = "jw-group jw-controlbar-" + a + "-group jw-reset", b.each(c, function(a) { | |
a.element && (a = a.element()), d.appendChild(a) | |
}), d | |
} | |
function r(b, c) { | |
this._api = b, this._model = c, this._isMobile = a.isMobile(), this._compactModeMaxSize = 400, this._maxCompactWidth = -1, this.setup() | |
} | |
return b.extend(r.prototype, c, { | |
setup: function() { | |
this.build(), this.initialize() | |
}, | |
build: function() { | |
var a, c, d, e, h, m = new g(this._model, this._api), | |
r = new l("jw-icon-more"); | |
this._model.get("visualplaylist") !== !1 && (a = new i("jw-icon-playlist")), h = new j("jw-icon-setting"), this._isMobile || (e = n("jw-icon-volume", this._api.setMute), c = new f("jw-slider-volume", "horizontal"), d = new k(this._model, "jw-icon-volume")), this.elements = { | |
alt: o("jw-text-alt"), | |
play: n("jw-icon-playback", this._api.play.bind(this, { | |
reason: "interaction" | |
})), | |
prev: n("jw-icon-prev", this._api.playlistPrev.bind(this, { | |
reason: "interaction" | |
})), | |
next: n("jw-icon-next", this._api.playlistNext.bind(this, { | |
reason: "interaction" | |
})), | |
playlist: a, | |
elapsed: o("jw-text-elapsed"), | |
time: m, | |
duration: o("jw-text-duration"), | |
drawer: r, | |
hd: p("jw-icon-hd"), | |
cc: p("jw-icon-cc"), | |
audiotracks: p("jw-icon-audio-tracks"), | |
mute: e, | |
volume: c, | |
volumetooltip: d, | |
cast: n("jw-icon-cast jw-off", this._api.castToggle), | |
fullscreen: n("jw-icon-fullscreen", this._api.setFullscreen), | |
setting: h | |
}, this.layout = { | |
left: [this.elements.prev, this.elements.play, this.elements.next, this.elements.elapsed, this.elements.duration], | |
center: [this.elements.time, this.elements.alt], | |
right: [this.elements.hd, this.elements.cc, this.elements.audiotracks, this.elements.drawer, this.elements.playlist, this.elements.setting, this.elements.mute, this.elements.cast, this.elements.volume, this.elements.volumetooltip, this.elements.fullscreen], | |
drawer: [] | |
}, this.menus = b.compact([this.elements.playlist, this.elements.hd, this.elements.cc, this.elements.audiotracks, this.elements.volumetooltip]), this.layout.left = b.compact(this.layout.left), this.layout.center = b.compact(this.layout.center), this.layout.right = b.compact(this.layout.right), this.layout.drawer = b.compact(this.layout.drawer), this.el = document.createElement("div"), this.el.className = "jw-controlbar jw-background-color jw-reset", this.elements.left = q("left", this.layout.left), this.elements.center = q("center", this.layout.center), this.elements.right = q("right", this.layout.right), this.el.appendChild(this.elements.left), this.el.appendChild(this.elements.center), this.el.appendChild(this.elements.right) | |
}, | |
initialize: function() { | |
this.elements.play.show(), this.elements.setting.setup(this._api, this._model), this.elements.fullscreen.show(), this.elements.mute && this.elements.mute.show(), this.onVolume(this._model, this._model.get("volume")), this.onPlaylist(this._model, this._model.get("playlist")), this.onPlaylistItem(this._model, this._model.get("playlistItem")), this.onMediaModel(this._model, this._model.get("mediaModel")), this.onCastAvailable(this._model, this._model.get("castAvailable")), this.onCastActive(this._model, this._model.get("castActive")), this.onCaptionsList(this._model, this._model.get("captionsList")), this._model.on("change:volume", this.onVolume, this), this._model.on("change:mute", this.onMute, this), this._model.on("change:playlist", this.onPlaylist, this), this._model.on("change:playlistItem", this.onPlaylistItem, this), this._model.on("change:mediaModel", this.onMediaModel, this), this._model.on("change:castAvailable", this.onCastAvailable, this), this._model.on("change:castActive", this.onCastActive, this), this._model.on("change:duration", this.onDuration, this), this._model.on("change:position", this.onElapsed, this), this._model.on("change:fullscreen", this.onFullscreen, this), this._model.on("change:captionsList", this.onCaptionsList, this), this._model.on("change:captionsIndex", this.onCaptionsIndex, this), this._model.on("change:compactUI", this.onCompactUI, this), this.elements.volume && this.elements.volume.on("update", function(a) { | |
var b = a.percentage; | |
this._api.setVolume(b) | |
}, this), this.elements.volumetooltip && (this.elements.volumetooltip.on("update", function(a) { | |
var b = a.percentage; | |
this._api.setVolume(b) | |
}, this), this.elements.volumetooltip.on("toggleValue", function() { | |
this._api.setMute() | |
}, this)), this.elements.playlist && this.elements.playlist.on("select", function(a) { | |
this._model.once("itemReady", function() { | |
this._api.play({ | |
reason: "interaction" | |
}) | |
}, this), this._api.load(a) | |
}, this), this.elements.setting.on("bufferchange", function(a) { | |
this._api.sendEvent("setbuffer", a) | |
}, this), this.elements.setting.on("playersize", function(a) { | |
console.log(a) | |
}, this), this.elements.setting.on("playerspeed", function(a) { | |
try { | |
this._api.setSpeed(a) | |
} catch (b) {} | |
}, this), this.elements.setting.on("captiondelay", function(a) { | |
this._api.setCaptionDelay(a) | |
}, this), this.elements.setting.on("captionback", function(a) { | |
this._api.setCaptionBack(a) | |
}, this), this.elements.setting.on("captioncolor", function(a) { | |
this._api.setCaptionColor(a) | |
}, this), this.elements.setting.on("captionSecond", function(a) { | |
if ("hide" === a) this._api.setSecondCaptions(-1); | |
else { | |
var b = this._api.getCaptionsList(); | |
if (void 0 !== b && null !== b && b.length > 1) { | |
var c = this._api.getCurrentCaptions(); | |
2 === c ? this._api.setSecondCaptions(0) : 1 === c && this._api.setSecondCaptions(1) | |
} | |
} | |
}, this), this.elements.setting.on("captionline", function(a) { | |
this._api.setCaptionLine(a) | |
}, this), this.elements.setting.on("captionsize", function(a) { | |
this._api.setCaptionSize(a) | |
}, this), this.elements.setting.on("sendVideoDune", function() { | |
this._api.trigger(m.JWPLAYER_SEND_DUNE, {}) | |
}, this), this.elements.hd.on("select", function(a) { | |
try { | |
var b = this._model.getVideo().getQualityLevels(); | |
if (b[a].label.toLocaleLowerCase().indexOf("vip") > -1 || b[a].label.toLocaleLowerCase().indexOf("login") > -1) return void this._api.trigger(m.JWPLAYER_VIP_ALERT, { | |
selecttor: "quality", | |
quality: a, | |
lable: b[a].label | |
}) | |
} catch (c) { | |
console.log(c) | |
} | |
this._model.getVideo().setCurrentQuality(a) | |
}, this), this.elements.hd.on("toggleValue", function() { | |
this._model.getVideo().setCurrentQuality(0 === this._model.getVideo().getCurrentQuality() ? 1 : 0) | |
}, this), this.elements.cc.on("select", function(a) { | |
this._api.setCurrentCaptions(a) | |
}, this), this.elements.cc.on("toggleValue", function() { | |
var a = this._model.get("captionsIndex"); | |
this._api.setCurrentCaptions(a ? 0 : 1) | |
}, this), this.elements.audiotracks.on("select", function(a) { | |
this._model.getVideo().setCurrentAudioTrack(a) | |
}, this), new e(this.elements.duration).on("click tap", function() { | |
if ("DVR" === a.adaptiveType(this._model.get("duration"))) { | |
var b = this._model.get("position"); | |
this._api.seek(Math.max(d.dvrSeekLimit, b)) | |
} | |
}, this), new e(this.el).on("click tap drag", function() { | |
this.trigger("userAction") | |
}, this), this.elements.drawer.on("open-drawer close-drawer", function(b, c) { | |
a.toggleClass(this.el, "jw-drawer-expanded", c.isOpen), c.isOpen || this.closeMenus() | |
}, this), b.each(this.menus, function(a) { | |
a.on("open-tooltip", this.closeMenus, this) | |
}, this) | |
}, | |
onCaptionsList: function(a, b) { | |
var c = a.get("captionsIndex"); | |
this.elements.cc.setup(b, c), this.clearCompactMode() | |
}, | |
onCaptionsIndex: function(a, b) { | |
this.elements.cc.selectItem(b) | |
}, | |
onPlaylist: function(a, b) { | |
var c = b.length > 1; | |
this.elements.next.toggle(c), this.elements.prev.toggle(c), this.elements.playlist && this.elements.playlist.setup(b, a.get("item")) | |
}, | |
onPlaylistItem: function(a) { | |
this.elements.time.updateBuffer(0), this.elements.time.render(0), this.elements.duration.innerHTML = "00:00", this.elements.elapsed.innerHTML = "00:00", this.clearCompactMode(); | |
var b = a.get("item"); | |
this.elements.playlist && this.elements.playlist.selectItem(b), this.elements.audiotracks.setup() | |
}, | |
onMediaModel: function(c, d) { | |
d.on("change:levels", function(a, b) { | |
this.elements.hd.setup(b, a.get("currentLevel")), this.clearCompactMode() | |
}, this), d.on("change:currentLevel", function(a, b) { | |
this.elements.hd.selectItem(b) | |
}, this), d.on("change:audioTracks", function(a, c) { | |
var d = b.map(c, function(a) { | |
return { | |
label: a.name | |
} | |
}); | |
this.elements.audiotracks.setup(d, a.get("currentAudioTrack"), { | |
toggle: !1 | |
}), this.clearCompactMode() | |
}, this), d.on("change:currentAudioTrack", function(a, b) { | |
this.elements.audiotracks.selectItem(b) | |
}, this), d.on("change:state", function(b, c) { | |
"complete" === c && (this.elements.drawer.closeTooltip(), a.removeClass(this.el, "jw-drawer-expanded")) | |
}, this) | |
}, | |
onVolume: function(a, b) { | |
this.renderVolume(a.get("mute"), b) | |
}, | |
onMute: function(a, b) { | |
this.renderVolume(b, a.get("volume")) | |
}, | |
renderVolume: function(b, c) { | |
this.elements.mute && a.toggleClass(this.elements.mute.element(), "jw-off", b), this.elements.volume && this.elements.volume.render(b ? 0 : c), this.elements.volumetooltip && (this.elements.volumetooltip.volumeSlider.render(b ? 0 : c), a.toggleClass(this.elements.volumetooltip.element(), "jw-off", b)) | |
}, | |
onCastAvailable: function(a, b) { | |
this.elements.cast.toggle(b), this.clearCompactMode() | |
}, | |
onCastActive: function(b, c) { | |
a.toggleClass(this.elements.cast.element(), "jw-off", !c) | |
}, | |
onElapsed: function(b, c) { | |
var d, e = b.get("duration"); | |
d = "DVR" === a.adaptiveType(e) ? "-" + a.timeFormat(-e) : a.timeFormat(c), this.elements.elapsed.innerHTML = d | |
}, | |
onDuration: function(b, c) { | |
var d; | |
"DVR" === a.adaptiveType(c) ? (d = "Live", this.clearCompactMode()) : d = a.timeFormat(c), this.elements.duration.innerHTML = d | |
}, | |
onFullscreen: function(b, c) { | |
a.toggleClass(this.elements.fullscreen.element(), "jw-off", c) | |
}, | |
element: function() { | |
return this.el | |
}, | |
getVisibleBounds: function() { | |
var b, c = this.el, | |
d = getComputedStyle ? getComputedStyle(c) : c.currentStyle; | |
return "table" === d.display ? a.bounds(c) : (c.style.visibility = "hidden", c.style.display = "table", b = a.bounds(c), c.style.visibility = c.style.display = "", b) | |
}, | |
setAltText: function(a) { | |
this.elements.alt.innerHTML = a | |
}, | |
addCues: function(a) { | |
this.elements.time && (b.each(a, function(a) { | |
this.elements.time.addCue(a) | |
}, this), this.elements.time.drawCues()) | |
}, | |
closeMenus: function(a) { | |
b.each(this.menus, function(b) { | |
a && a.target === b.el || b.closeTooltip(a) | |
}) | |
}, | |
hideComponents: function() { | |
this.closeMenus(), this.elements.drawer.closeTooltip(), a.removeClass(this.el, "jw-drawer-expanded") | |
}, | |
clearCompactMode: function() { | |
this._maxCompactWidth = -1, this._model.set("compactUI", !1), this._containerWidth && this.checkCompactMode(this._containerWidth) | |
}, | |
setCompactModeBounds: function() { | |
if (this.element().offsetWidth > 0) { | |
var b = this.elements.left.offsetWidth + this.elements.right.offsetWidth; | |
if ("LIVE" === a.adaptiveType(this._model.get("duration"))) this._maxCompactWidth = b + this.elements.alt.offsetWidth; | |
else { | |
var c = b + (this.elements.center.offsetWidth - this.elements.time.el.offsetWidth), | |
d = .2; | |
this._maxCompactWidth = c / (1 - d) | |
} | |
} | |
}, | |
checkCompactMode: function(a) { | |
this._maxCompactWidth === -1 && this.setCompactModeBounds(), this._containerWidth = a, this._model.set("compactUI", !1) | |
}, | |
onCompactUI: function(c, d) { | |
a.removeClass(this.el, "jw-drawer-expanded"), this.elements.drawer.setup(this.layout.drawer, d), (!d || this.elements.drawer.activeContents.length < 2) && b.each(this.layout.drawer, function(a) { | |
this.elements.right.insertBefore(a.el, this.elements.drawer.el) | |
}, this) | |
}, | |
reloadPlaylistItem: function(a) { | |
this.elements.time.reloadPlaylistItem(a) | |
} | |
}), r | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(137), c(46), c(43), c(108), c(139)], e = function(a, b, c, d, e) { | |
var f = a.extend({ | |
setup: function(a, f, g) { | |
this.iconUI || (this.iconUI = new d(this.el, { | |
useHover: !0, | |
directSelect: !0 | |
}), this.toggleValueListener = this.toggleValue.bind(this), this.toggleOpenStateListener = this.toggleOpenState.bind(this), this.openTooltipListener = this.openTooltip.bind(this), this.closeTooltipListener = this.closeTooltip.bind(this), this.selectListener = this.select.bind(this)), this.reset(), a = c.isArray(a) ? a : [], b.toggleClass(this.el, "jw-hidden", a.length < 2); | |
var h = a.length > 2 || 2 === a.length && g && g.toggle === !1, | |
i = !1; | |
b.toggleClass(this.el, "jw-toggle", i), b.toggleClass(this.el, "jw-button-color", !i), this.isActive = h || i, b.removeClass(this.el, "jw-off"), this.iconUI.on("tap", this.toggleOpenStateListener).on("over", this.openTooltipListener).on("out", this.closeTooltipListener); | |
var j = e(a), | |
k = b.createElement(j); | |
this.addContent(k), this.contentUI = new d(this.content).on("click tap", this.selectListener), this.selectItem(f) | |
}, | |
toggleValue: function() { | |
this.trigger("toggleValue") | |
}, | |
select: function(a) { | |
if (a.target.parentElement === this.content) { | |
var d = b.classList(a.target), | |
e = c.find(d, function(a) { | |
return 0 === a.indexOf("jw-item") | |
}); | |
e && (this.trigger("select", parseInt(e.split("-")[2])), this.closeTooltipListener()) | |
} | |
}, | |
selectItem: function(a) { | |
if (this.content) | |
for (var c = 0; c < this.content.children.length; c++) b.toggleClass(this.content.children[c], "jw-active-option", a === c); | |
else b.toggleClass(this.el, "jw-off", 0 === a) | |
}, | |
reset: function() { | |
b.addClass(this.el, "jw-off"), this.iconUI.off(), this.contentUI && this.contentUI.off().destroy(), this.removeContent() | |
} | |
}); | |
return f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(138), c(46)], e = function(a, b) { | |
var c = a.extend({ | |
constructor: function(a) { | |
this.el = document.createElement("div"), this.el.className = "jw-icon jw-icon-tooltip " + a + " jw-button-color jw-reset jw-hidden", this.container = document.createElement("div"), this.container.className = "jw-overlay jw-reset", this.openClass = "jw-open", this.componentType = "tooltip", this.el.appendChild(this.container) | |
}, | |
addContent: function(a) { | |
this.content && this.removeContent(), this.content = a, this.container.appendChild(a) | |
}, | |
removeContent: function() { | |
this.content && (this.container.removeChild(this.content), this.content = null) | |
}, | |
hasContent: function() { | |
return !!this.content | |
}, | |
element: function() { | |
return this.el | |
}, | |
openTooltip: function(a) { | |
this.trigger("open-" + this.componentType, a, { | |
isOpen: !0 | |
}), this.isOpen = !0, b.toggleClass(this.el, this.openClass, this.isOpen) | |
}, | |
closeTooltip: function(a) { | |
this.trigger("close-" + this.componentType, a, { | |
isOpen: !1 | |
}), this.isOpen = !1, b.toggleClass(this.el, this.openClass, this.isOpen) | |
}, | |
toggleOpenState: function(a) { | |
this.isOpen ? this.closeTooltip(a) : this.openTooltip(a) | |
} | |
}); | |
return c | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(45), c(43)], e = function(a, b) { | |
function c() {} | |
var d = function(a, c) { | |
var d, e = this; | |
d = a && b.has(a, "constructor") ? a.constructor : function() { | |
return e.apply(this, arguments) | |
}, b.extend(d, e, c); | |
var f = function() { | |
this.constructor = d | |
}; | |
return f.prototype = e.prototype, d.prototype = new f, a && b.extend(d.prototype, a), d.__super__ = e.prototype, d | |
}; | |
return c.extend = d, b.extend(c.prototype, a), c | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
1: function(a, b, c, d, e) { | |
var f, g = a.escapeExpression; | |
return " <li class='jw-text jw-option jw-item-" + g((f = null != (f = c.index || e && e.index) ? f : c.helperMissing, "function" == typeof f ? f.call(null != b ? b : {}, { | |
name: "index", | |
hash: {}, | |
data: e | |
}) : f)) + " jw-reset'>" + g(a.lambda(null != b ? b.label : b, b)) + "</li>\r\n" | |
}, | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
var f; | |
return '<ul class="jw-menu jw-background-color jw-reset">\r\n' + (null != (f = c.each.call(null != b ? b : {}, b, { | |
name: "each", | |
hash: {}, | |
fn: a.program(1, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + "</ul>" | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(138), c(108), c(141), c(46)], e = function(a, b, c, d) { | |
var e = a.extend({ | |
constructor: function(a, b) { | |
this.className = a + " jw-background-color jw-reset", this.orientation = b, this.dragStartListener = this.dragStart.bind(this), this.dragMoveListener = this.dragMove.bind(this), this.dragEndListener = this.dragEnd.bind(this), this.tapListener = this.tap.bind(this), this.setup() | |
}, | |
setup: function() { | |
var a = { | |
"default": this["default"], | |
className: this.className, | |
orientation: "jw-slider-" + this.orientation | |
}; | |
this.el = d.createElement(c(a)), this.elementRail = this.el.getElementsByClassName("jw-slider-container")[0], this.elementBuffer = this.el.getElementsByClassName("jw-buffer")[0], this.elementProgress = this.el.getElementsByClassName("jw-progress")[0], this.elementThumb = this.el.getElementsByClassName("jw-knob")[0], this.userInteract = new b(this.element(), { | |
preventScrolling: !0 | |
}), this.userInteract.on("dragStart", this.dragStartListener), this.userInteract.on("drag", this.dragMoveListener), this.userInteract.on("dragEnd", this.dragEndListener), this.userInteract.on("tap click", this.tapListener) | |
}, | |
dragStart: function() { | |
this.trigger("dragStart"), this.railBounds = d.bounds(this.elementRail) | |
}, | |
dragEnd: function(a) { | |
this.dragMove(a), this.trigger("dragEnd") | |
}, | |
dragMove: function(a) { | |
var b, c, e = this.railBounds = this.railBounds ? this.railBounds : d.bounds(this.elementRail); | |
"horizontal" === this.orientation ? (b = a.pageX, c = b < e.left ? 0 : b > e.right ? 100 : 100 * d.between((b - e.left) / e.width, 0, 1)) : (b = a.pageY, c = b >= e.bottom ? 0 : b <= e.top ? 100 : 100 * d.between((e.height - (b - e.top)) / e.height, 0, 1)); | |
var f = this.limit(c); | |
return this.render(f), this.update(f), !1 | |
}, | |
tap: function(a) { | |
this.railBounds = d.bounds(this.elementRail), this.dragMove(a) | |
}, | |
limit: function(a) { | |
return a | |
}, | |
update: function(a) { | |
this.trigger("update", { | |
percentage: a | |
}) | |
}, | |
render: function(a) { | |
a = Math.max(0, Math.min(a, 100)), "horizontal" === this.orientation ? (this.elementThumb.style.left = a + "%", this.elementProgress.style.width = a + "%") : (this.elementThumb.style.bottom = a + "%", this.elementProgress.style.height = a + "%") | |
}, | |
updateBuffer: function(a) { | |
this.elementBuffer.style.width = a + "%" | |
}, | |
element: function() { | |
return this.el | |
} | |
}); | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
var f, g = null != b ? b : {}, | |
h = c.helperMissing, | |
i = "function", | |
j = a.escapeExpression; | |
return '<div class="' + j((f = null != (f = c.className || (null != b ? b.className : b)) ? f : h, typeof f === i ? f.call(g, { | |
name: "className", | |
hash: {}, | |
data: e | |
}) : f)) + " " + j((f = null != (f = c.orientation || (null != b ? b.orientation : b)) ? f : h, typeof f === i ? f.call(g, { | |
name: "orientation", | |
hash: {}, | |
data: e | |
}) : f)) + ' jw-reset">\r\n <div class="jw-slider-container jw-reset">\r\n <div class="jw-rail jw-reset"></div>\r\n <div class="jw-buffer jw-reset"></div>\r\n <div class="jw-progress jw-reset"></div>\r\n <div class="jw-knob jw-reset"></div>\r\n </div>\r\n</div>' | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(46), c(57), c(140), c(137), c(143), c(144)], | |
e = function(a, b, c, d, e, f, g) { | |
var h = e.extend({ | |
setup: function() { | |
this.text = document.createElement("span"), this.text.className = "jw-text jw-reset", this.img = document.createElement("div"), this.img.className = "jw-reset"; | |
var a = document.createElement("div"); | |
a.className = "jw-time-tip jw-background-color jw-reset", a.appendChild(this.img), a.appendChild(this.text), b.removeClass(this.el, "jw-hidden"), this.addContent(a) | |
}, | |
image: function(a) { | |
b.style(this.img, a) | |
}, | |
update: function(a) { | |
this.text.innerHTML = a | |
} | |
}), | |
i = d.extend({ | |
constructor: function(b, c) { | |
this._model = b, this._api = c, this.timeTip = new h("jw-tooltip-time"), this.timeTip.setup(), this.cues = [], this.seekThrottled = a.throttle(this.performSeek, 400), this._model.on("change:playlistItem", this.onPlaylistItem, this).on("change:position", this.onPosition, this).on("change:duration", this.onDuration, this).on("change:buffer", this.onBuffer, this), d.call(this, "jw-slider-time", "horizontal") | |
}, | |
setup: function() { | |
d.prototype.setup.apply(this, arguments), this._model.get("playlistItem") && this.onPlaylistItem(this._model, this._model.get("playlistItem")), this.elementRail.appendChild(this.timeTip.element()), this.el.addEventListener("mousemove", this.showTimeTooltip.bind(this), !1), this.el.addEventListener("mouseout", this.hideTimeTooltip.bind(this), !1) | |
}, | |
limit: function(d) { | |
if (this.activeCue && a.isNumber(this.activeCue.pct)) return this.activeCue.pct; | |
var e = this._model.get("duration"), | |
f = b.adaptiveType(e); | |
if ("DVR" === f) { | |
var g = (1 - d / 100) * e, | |
h = this._model.get("position"), | |
i = Math.min(g, Math.max(c.dvrSeekLimit, h)), | |
j = 100 * i / e; | |
return 100 - j | |
} | |
return d | |
}, | |
update: function(a) { | |
this.seekTo = a, this.seekThrottled(), d.prototype.update.apply(this, arguments) | |
}, | |
dragStart: function() { | |
this._model.set("scrubbing", !0), d.prototype.dragStart.apply(this, arguments) | |
}, | |
dragEnd: function() { | |
d.prototype.dragEnd.apply(this, arguments), this._model.set("scrubbing", !1) | |
}, | |
onSeeked: function() { | |
this._model.get("scrubbing") && this.performSeek() | |
}, | |
onBuffer: function(a, b) { | |
this.updateBuffer(b) | |
}, | |
onPosition: function(a, b) { | |
this.updateTime(b, a.get("duration")) | |
}, | |
onDuration: function(a, b) { | |
this.updateTime(a.get("position"), b) | |
}, | |
updateTime: function(a, c) { | |
var d = 0; | |
if (c) { | |
var e = b.adaptiveType(c); | |
"DVR" === e ? d = (c - a) / c * 100 : "VOD" === e && (d = a / c * 100) | |
} | |
this.render(d) | |
}, | |
onPlaylistItem: function(b, c) { | |
this.reset(), b.mediaModel.on("seeked", this.onSeeked, this); | |
var d = c.tracks; | |
a.each(d, function(a) { | |
a && a.kind && "thumbnails" === a.kind.toLowerCase() ? a.content ? this.thumbnailsLoadFromConfig(a.content) : this.loadThumbnails(a.file) : a && a.kind && "chapters" === a.kind.toLowerCase() && this.loadChapters(a.file) | |
}, this) | |
}, | |
reloadPlaylistItem: function(b) { | |
var c = b.tracks; | |
a.each(c, function(a) { | |
a && a.kind && "thumbnails" === a.kind.toLowerCase() ? a.content ? this.thumbnailsLoadFromConfig(a.content) : this.loadThumbnails(a.file) : a && a.kind && "chapters" === a.kind.toLowerCase() && this.loadChapters(a.file) | |
}, this) | |
}, | |
performSeek: function() { | |
var a, c = this.seekTo, | |
d = this._model.get("duration"), | |
e = b.adaptiveType(d); | |
0 === d ? this._api.play() : "DVR" === e ? (a = (100 - c) / 100 * d, this._api.seek(a)) : (a = c / 100 * d, this._api.seek(Math.min(a, d - .25))) | |
}, | |
showTimeTooltip: function(a) { | |
var d = this._model.get("duration"); | |
if (0 !== d) { | |
var e = b.bounds(this.elementRail), | |
f = a.pageX ? a.pageX - e.left : a.x, | |
g = this.timeTip.el.querySelector(".jw-time-tip").clientWidth / 2, | |
h = e.width - this.timeTip.el.querySelector(".jw-time-tip").clientWidth / 2 - 4; | |
f = b.between(f, 0, e.width); | |
var i = f / e.width, | |
j = g / e.width, | |
k = h / e.width, | |
l = d * i; | |
d < 0 && (l = d - l); | |
var m; | |
if (this.activeCue) m = this.activeCue.text; | |
else { | |
var n = !0; | |
m = b.timeFormat(l, n), d < 0 && l > c.dvrSeekLimit && (m = "Live") | |
} | |
this.timeTip.update(m), this.showThumbnail(l), b.addClass(this.timeTip.el, "jw-open"), i < j ? this.timeTip.el.style.left = 100 * j + "%" : i > k ? this.timeTip.el.style.left = 100 * k + "%" : this.timeTip.el.style.left = 100 * i + "%" | |
} | |
}, | |
hideTimeTooltip: function() { | |
b.removeClass(this.timeTip.el, "jw-open") | |
}, | |
reset: function() { | |
this.resetChapters(), this.resetThumbnails() | |
} | |
}); | |
return a.extend(i.prototype, f, g), i | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(46), c(102)], e = function(a, b, c) { | |
function d(a, b) { | |
this.time = a, this.text = b, this.el = document.createElement("div"), this.el.className = "jw-cue jw-reset" | |
} | |
a.extend(d.prototype, { | |
align: function(a) { | |
if ("%" === this.time.toString().slice(-1)) this.pct = this.time; | |
else { | |
var b = this.time / a * 100; | |
this.pct = b + "%" | |
} | |
this.el.style.left = this.pct | |
} | |
}); | |
var e = { | |
loadChapters: function(a) { | |
b.ajax(a, this.chaptersLoaded.bind(this), this.chaptersFailed, { | |
plainText: !0 | |
}) | |
}, | |
chaptersLoaded: function(b) { | |
var d = c(b.responseText); | |
a.isArray(d) && (a.each(d, this.addCue, this), this.drawCues()) | |
}, | |
chaptersFailed: function() {}, | |
addCue: function(a) { | |
this.cues.push(new d(a.begin, a.text)) | |
}, | |
drawCues: function() { | |
var b = this._model.mediaModel.get("duration"); | |
if (!b || b <= 0) return void this._model.mediaModel.once("change:duration", this.drawCues, this); | |
var c = this; | |
a.each(this.cues, function(a) { | |
a.align(b), a.el.addEventListener("mouseover", function() { | |
c.activeCue = a | |
}), a.el.addEventListener("mouseout", function() { | |
c.activeCue = null | |
}), c.elementRail.appendChild(a.el) | |
}) | |
}, | |
resetChapters: function() { | |
a.each(this.cues, function(a) { | |
a.el.parentNode && a.el.parentNode.removeChild(a.el) | |
}, this), this.cues = [] | |
} | |
}; | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(46), c(102)], e = function(a, b, c) { | |
function d(a) { | |
this.begin = a.begin, this.end = a.end, this.img = a.text | |
} | |
var e = { | |
loadThumbnails: function(a) { | |
a && (this.vttPath = a.split("?")[0].split("/").slice(0, -1).join("/"), this.individualImage = null, b.ajax(a, this.thumbnailsLoaded.bind(this), this.thumbnailsFailed.bind(this), { | |
plainText: !0 | |
})) | |
}, | |
thumbnailsLoadFromConfig: function(b) { | |
a.isArray(b) && (a.each(b, function(a) { | |
this.thumbnails.push(new d(a)) | |
}, this), this.drawCues()) | |
}, | |
thumbnailsLoaded: function(b) { | |
var e = c(b.responseText); | |
a.isArray(e) && (a.each(e, function(a) { | |
this.thumbnails.push(new d(a)) | |
}, this), this.drawCues()) | |
}, | |
thumbnailsFailed: function() {}, | |
chooseThumbnail: function(b) { | |
var c = a.sortedIndex(this.thumbnails, { | |
end: b | |
}, a.property("end")); | |
c >= this.thumbnails.length && (c = this.thumbnails.length - 1); | |
var d = this.thumbnails[c].img; | |
return d.indexOf("://") < 0 && (d = this.vttPath ? this.vttPath + "/" + d : d), d | |
}, | |
loadThumbnail: function(b) { | |
var c = this.chooseThumbnail(b), | |
d = { | |
display: "block", | |
margin: "0 auto", | |
backgroundPosition: "0 0" | |
}, | |
e = c.indexOf("#xywh"); | |
if (e > 0) try { | |
var f = /(.+)\#xywh=(\d+),(\d+),(\d+),(\d+)/.exec(c); | |
c = f[1], d.backgroundPosition = f[2] * -1 + "px " + f[3] * -1 + "px", d.width = f[4], d.height = f[5] | |
} catch (g) { | |
return | |
} else this.individualImage || (this.individualImage = new Image, this.individualImage.onload = a.bind(function() { | |
this.individualImage.onload = null, this.timeTip.image({ | |
width: this.individualImage.width, | |
height: this.individualImage.height | |
}) | |
}, this), this.individualImage.src = c); | |
return d.backgroundImage = 'url("' + c + '")', d | |
}, | |
showThumbnail: function(a) { | |
this.thumbnails.length < 1 || this.timeTip.image(this.loadThumbnail(a)) | |
}, | |
resetThumbnails: function() { | |
this.timeTip.image({ | |
backgroundImage: "", | |
width: 0, | |
height: 0 | |
}), this.thumbnails = [] | |
} | |
}; | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(43), c(137), c(108), c(146)], e = function(a, b, c, d, e) { | |
var f = c.extend({ | |
setup: function(c, e) { | |
if (this.iconUI || (this.iconUI = new d(this.el, { | |
useHover: !0 | |
}), this.toggleOpenStateListener = this.toggleOpenState.bind(this), this.openTooltipListener = this.openTooltip.bind(this), this.closeTooltipListener = this.closeTooltip.bind(this), this.selectListener = this.onSelect.bind(this)), this.reset(), c = b.isArray(c) ? c : [], a.toggleClass(this.el, "jw-hidden", c.length < 2), c.length >= 2) { | |
this.iconUI = new d(this.el, { | |
useHover: !0 | |
}).on("tap", this.toggleOpenStateListener).on("click", this.toggleOpenStateListener); | |
var f = this.menuTemplate(c, e), | |
g = a.createElement(f); | |
this.addContent(g), this.contentUI = new d(this.content), this.contentUI.on("click tap", this.selectListener) | |
} | |
this.originalList = c | |
}, | |
menuTemplate: function(c, d) { | |
var f = b.map(c, function(b, c) { | |
var e = b.title ? a.createElement(b.title).textContent : ""; | |
return { | |
active: c === d, | |
label: c + 1 + ".", | |
title: e | |
} | |
}); | |
return e(f) | |
}, | |
onSelect: function(c) { | |
var d = c.target; | |
if ("UL" !== d.tagName) { | |
"LI" !== d.tagName && (d = d.parentElement); | |
var e = a.classList(d), | |
f = b.find(e, function(a) { | |
return 0 === a.indexOf("jw-item") | |
}); | |
f && (this.trigger("select", parseInt(f.split("-")[2])), this.closeTooltip()) | |
} | |
}, | |
selectItem: function(a) { | |
this.setup(this.originalList, a) | |
}, | |
reset: function() { | |
this.iconUI.off(), this.contentUI && this.contentUI.off().destroy(), this.removeContent() | |
} | |
}); | |
return f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
1: function(a, b, c, d, e) { | |
var f; | |
return null != (f = c["if"].call(null != b ? b : {}, null != b ? b.active : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(2, e, 0), | |
inverse: a.program(4, e, 0), | |
data: e | |
})) ? f : "" | |
}, | |
2: function(a, b, c, d, e) { | |
var f, g = a.escapeExpression, | |
h = a.lambda; | |
return " <li class='jw-option jw-text jw-active-option jw-item-" + g((f = null != (f = c.index || e && e.index) ? f : c.helperMissing, "function" == typeof f ? f.call(null != b ? b : {}, { | |
name: "index", | |
hash: {}, | |
data: e | |
}) : f)) + ' jw-reset\'>\r\n <span class="jw-playlist-thumb"><img src="' + g(h(null != b ? b.thumb : b, b)) + '"></span>\r\n <span class="jw-name jw-reset">' + g(h(null != b ? b.title : b, b)) + "</span>\r\n </li>\r\n" | |
}, | |
4: function(a, b, c, d, e) { | |
var f, g = a.escapeExpression, | |
h = a.lambda; | |
return " <li class='jw-option jw-text jw-item-" + g((f = null != (f = c.index || e && e.index) ? f : c.helperMissing, "function" == typeof f ? f.call(null != b ? b : {}, { | |
name: "index", | |
hash: {}, | |
data: e | |
}) : f)) + ' jw-reset\'>\r\n <span class="jw-playlist-thumb"><img src="' + g(h(null != b ? b.thumb : b, b)) + '"></span>\r\n <span class="jw-name jw-reset">' + g(h(null != b ? b.title : b, b)) + "</span>\r\n </li>\r\n" | |
}, | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
var f; | |
return '<div class="jw-menu jw-playlist-container jw-background-color jw-reset">\r\n <ul class="jw-playlist jw-reset">\r\n' + (null != (f = c.each.call(null != b ? b : {}, b, { | |
name: "each", | |
hash: {}, | |
fn: a.program(1, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + " </ul>\r\n</div>" | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(43), c(137), c(108), c(148)], e = function(a, b, c, d, e) { | |
var f = c.extend({ | |
setup: function(b, c) { | |
var e = window.location.host; | |
if (e.indexOf("hdonline.vn") !== -1 || e.indexOf("localhost") !== -1 || e.indexOf("tranvu.info") !== -1) { | |
this.api = b, this.model = c, this.iconUI || (this.iconUI = new d(this.el, { | |
useHover: !0 | |
}), this.toggleOpenStateListener = this.toggleOpenState.bind(this), this.openTooltipListener = this.openTooltip.bind(this), this.closeTooltipListener = this.closeTooltip.bind(this), this.openTooltipListener = this.onOpenTooltip.bind(this), this.selectListener = this.onSelect.bind(this)), this.reset(), this.iconUI = new d(this.el, { | |
useHover: !0 | |
}).on("tap", this.toggleOpenStateListener).on("click", this.openTooltipListener); | |
var f = this.menuTemplate(b), | |
g = a.createElement(f); | |
this.addContent(g), this.contentUI = new d(this.content), this.elementContain = g, this.contentUI.on("click tap", this.selectListener), a.toggleClass(this.el, "jw-hidden", !1), this.updateHtml(), this.model.on("change:provider", this.updateHtml, this), this.model.on("change:captionsList", this.updateHtml, this), this.model.on("itemReady", this.updateHtml, this) | |
} | |
}, | |
onOpenTooltip: function(a) { | |
try { | |
a.target.className.indexOf("jw-icon-tooltip") > -1 && this.toggleOpenState(a) | |
} catch (b) { | |
this.toggleOpenState(a) | |
} | |
}, | |
updateHtml: function() { | |
var a = this.api.getProvider(), | |
b = this.elementContain.getElementsByClassName("jw-setting-speed")[0]; | |
if (b && (b.style.display = "none", "undefined" != typeof a && a.name.indexOf("html5") > -1 && (b.style.display = "block")), b = this.elementContain.getElementsByClassName("jw-setting-captions")[0]) { | |
b.style.display = "none"; | |
var c = this.api.getCaptionsList(); | |
"undefined" != typeof c && c.length > 1 && (b.style.display = "block") | |
} | |
if (b = this.elementContain.getElementsByClassName("jw-setting-dune")[0]) { | |
b.style.display = "none"; | |
var d = this.api.getConfig(); | |
"undefined" != typeof d && d.allowDune === !0 && (b.style.display = "block") | |
} | |
}, | |
getCookie: function(a) { | |
var b = document.cookie.match("(^|;) ?" + a + "=([^;]*)(;|$)"); | |
return b ? b[2] : null | |
}, | |
setCookie: function(a, b, c) { | |
c || (c = 31536e6); | |
var d = new Date; | |
d.setTime(d.getTime() + c), document.cookie = a + "=" + b + "; path=/; expires=" + d.toUTCString() | |
}, | |
menuTemplate: function(a) { | |
for (var b = { | |
currentOption: a.getCaptionStyle(), | |
playerID: a.id, | |
reMiss: "question" === this.getCookie("jwplayer.remissQuestion"), | |
fontList: [{ | |
name: "UVNNhanNang" | |
}, { | |
name: "Arial" | |
}, { | |
name: "Tahoma" | |
}, { | |
name: "Times New Roman" | |
}, { | |
name: "Lucida Sans Unicode" | |
}, { | |
name: "Trebuchet MS" | |
}, { | |
name: "Georgia" | |
}, { | |
name: "Verdana" | |
}, { | |
name: "Apple Chancery" | |
}, { | |
name: "Brush Script MT" | |
}], | |
colorList: [{ | |
color: "#080808" | |
}, { | |
color: "#0000FF" | |
}, { | |
color: "#01FF00" | |
}, { | |
color: "#01FFFF" | |
}, { | |
color: "#FF0000" | |
}, { | |
color: "#FF00FF" | |
}, { | |
color: "#FFFF00" | |
}, { | |
color: "#FFFFFF" | |
}] | |
}, c = 0; c < b.colorList.length; c++) b.colorList[c].color === b.currentOption.color && (b.colorList[c].activeColor = !0), b.colorList[c].color === b.currentOption.textShadow && (b.colorList[c].activeLine = !0); | |
for (c = 0; c < b.fontList.length; c++) b.fontList[c].name === b.currentOption.fontFamily && (b.fontList[c].activeLine = !0); | |
return e(b) | |
}, | |
onSelect: function(c) { | |
var d = c.target, | |
e = [], | |
f = 0; | |
if ("A" === d.tagName) { | |
var g = a.classList(d), | |
h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-buffer") | |
}); | |
if (h) { | |
for (this.trigger("bufferchange", parseInt(h.split("-")[2])), e = d.parentElement.parentElement.getElementsByClassName("bf-remove"), f = 0; f < e.length; f++) e[f].className = e[f].className.replace(/\bactive\b/, "").trim(); | |
d.className += " active" | |
} | |
if (h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-player-size") | |
}), h && this.trigger("playersize", h.split("-")[3]), h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-player-speed") | |
})) { | |
for (this.trigger("playerspeed", Number(h.split("-")[3])), e = d.parentElement.parentElement.getElementsByClassName("bsp-remove"), f = 0; f < e.length; f++) e[f].className = e[f].className.replace(/\bactive\b/, "").trim(); | |
d.className += " active" | |
} | |
if (h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-player-caption-delay") | |
}), h && (e = d.parentElement.parentElement.getElementsByClassName("caption-delay"), "up" === h.split("-")[4] ? e[0].value = Number(e[0].value) + .5 : e[0].value = Number(e[0].value) - .5, this.trigger("captiondelay", Number(e[0].value))), h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-player-caption-back") | |
})) { | |
var i = !0; | |
for ("hide" === h.split("-")[4] && (i = !1), this.trigger("captionback", i), e = d.parentElement.parentElement.getElementsByClassName("bb-remove"), f = 0; f < e.length; f++) e[f].className = e[f].className.replace(/\bactive\b/, "").trim(); | |
d.className += " active" | |
} | |
if (h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-caption-color") | |
})) { | |
for (this.trigger("captioncolor", d.getAttribute("data-color")), e = d.parentElement.parentElement.getElementsByClassName("bclc-remove"), f = 0; f < e.length; f++) e[f].className = e[f].className.replace(/\bactive\b/, "").trim(); | |
d.className += " active" | |
} | |
if (h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-player-remiss") | |
})) { | |
for (this.setCookie("jwplayer.remissQuestion", h.split("-")[3]), e = d.parentElement.parentElement.getElementsByClassName("br-remove"), f = 0; f < e.length; f++) e[f].className = e[f].className.replace(/\bactive\b/, "").trim(); | |
d.className += " active" | |
} | |
if (h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-caption-line") | |
})) { | |
for (this.trigger("captionline", d.getAttribute("data-color")), e = d.parentElement.parentElement.getElementsByClassName("bcll-remove"), f = 0; f < e.length; f++) e[f].className = e[f].className.replace(/\bactive\b/, "").trim(); | |
d.className += " active" | |
} | |
h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-player-caption-size") | |
}), h && (e = d.parentElement.parentElement.getElementsByClassName("caption-size"), "up" === h.split("-")[4] ? e[0].value = Number(e[0].value) + 2 : e[0].value = Number(e[0].value) - 2, this.trigger("captionsize", Number(e[0].value))), h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-player-caption-second") | |
}), h && this.trigger("captionSecond", h.split("-")[4]), h = b.find(g, function(a) { | |
return 0 === a.indexOf("button-player-senđune") | |
}), h && this.trigger("sendVideoDune") | |
} | |
}, | |
selectItem: function(a) { | |
this.setup(this.originalList, a) | |
}, | |
reset: function() { | |
this.iconUI.off(), this.contentUI && this.contentUI.off().destroy(), this.removeContent() | |
} | |
}); | |
return f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
1: function(a, b, c, d, e) { | |
return "active" | |
}, | |
3: function(a, b, c, d, e) { | |
var f, g = a.lambda, | |
h = a.escapeExpression; | |
return " <option " + (null != (f = c["if"].call(null != b ? b : {}, null != b ? b.activeLine : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(4, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + ' value="' + h(g(null != b ? b.name : b, b)) + '">' + h(g(null != b ? b.name : b, b)) + "</option>\r\n" | |
}, | |
4: function(a, b, c, d, e) { | |
return "selected" | |
}, | |
6: function(a, b, c, d, e) { | |
var f, g = a.lambda, | |
h = a.escapeExpression; | |
return ' <a href="javascript:void(0)" class="button-color bclc-remove button-caption-color ' + (null != (f = c["if"].call(null != b ? b : {}, null != b ? b.activeColor : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(1, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + '" data-color="' + h(g(null != b ? b.color : b, b)) + '" style="background-color:' + h(g(null != b ? b.color : b, b)) + '"></a>\r\n' | |
}, | |
8: function(a, b, c, d, e) { | |
var f, g = a.lambda, | |
h = a.escapeExpression; | |
return ' <a href="javascript:void(0)" class="button-color bcll-remove button-caption-line ' + (null != (f = c["if"].call(null != b ? b : {}, null != b ? b.activeLine : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(1, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + '" data-color="' + h(g(null != b ? b.color : b, b)) + '" style="background-color:' + h(g(null != b ? b.color : b, b)) + '"></a>\r\n' | |
}, | |
10: function(a, b, c, d, e) { | |
return ' <a href="javascript:void(0)" class="button-select bb-remove button-player-caption-back-hide">Ẩn</a>\r\n <a href="javascript:void(0)" class="button-select bb-remove button-player-caption-back-show active">Hiện</a>\r\n' | |
}, | |
12: function(a, b, c, d, e) { | |
return ' <a href="javascript:void(0)" class="button-select bb-remove button-player-caption-back-hide active">Ẩn</a>\r\n <a href="javascript:void(0)" class="button-select bb-remove button-player-caption-back-show">Hiện</a>\r\n' | |
}, | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
var f, g = null != b ? b : {}, | |
h = a.lambda, | |
i = a.escapeExpression; | |
return '<div class="jw-menu jw-setting-container jw-background-color jw-reset">\r\n <div class="jw-setting-row jw-setting-dune">\r\n <div class="jw-setting-label">Mở rộng</div>\r\n <div class="jw-setting-value">\r\n <a href="javascript:void(0)" class="button-select bd-remove button-player-senđune">Xem trên Dune</a>\r\n </div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <div class="jw-setting-label">Xem tiếp</div>\r\n <div class="jw-setting-value">\r\n <a href="javascript:void(0)" class="button-select br-remove button-player-remiss-question ' + (null != (f = c["if"].call(g, null != b ? b.reMiss : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(1, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + '">Luôn há»i</a>\r\n <a href="javascript:void(0)" class="button-select br-remove button-player-remiss-auto ' + (null != (f = c.unless.call(g, null != b ? b.reMiss : b, { | |
name: "unless", | |
hash: {}, | |
fn: a.program(1, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + '">Tá»± động</a>\r\n </div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <div class="jw-setting-label">Tải trước</div>\r\n <div class="jw-setting-value">\r\n <a href="javascript:void(0)" class="button-select bf-remove button-buffer-120 active">2 phút</a>\r\n <a href="javascript:void(0)" class="button-select bf-remove button-buffer-300">5 phút</a>\r\n <a href="javascript:void(0)" class="button-select bf-remove button-buffer-420">7 phút</a>\r\n <a href="javascript:void(0)" class="button-select bf-remove button-buffer-600">10 phút</a>\r\n </div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <div class="jw-setting-label">KÃch thước</div>\r\n <div class="jw-setting-value">\r\n <a href="javascript:void(0)" onclick="resize_player(\'' + i(h(null != b ? b.playerID : b, b)) + '\' , \'min\')" class="button-select bs-remove button-player-size-normal">Chuẩn</a>\r\n <a href="javascript:void(0)" onclick="resize_player(\'' + i(h(null != b ? b.playerID : b, b)) + '\' , \'large\')" class="button-select bs-remove button-player-size-large">Lá»›n</a>\r\n <a href="javascript:void(0)" onclick="jwplayer(\'' + i(h(null != b ? b.playerID : b, b)) + '\').setFullscreen()" class="button-select bs-remove button-player-size-fullscreen">Toà n mà n hình</a>\r\n\r\n </div>\r\n </div>\r\n <div class="jw-setting-row jw-setting-speed">\r\n <div class="jw-setting-label">Tốc độ</div>\r\n <div class="jw-setting-value">\r\n <a href="javascript:void(0)" class="button-select bsp-remove button-player-speed-0.25">0.25</a>\r\n <a href="javascript:void(0)" class="button-select bsp-remove button-player-speed-0.5">0.5</a>\r\n <a href="javascript:void(0)" class="button-select bsp-remove active button-player-speed-1">Chuẩn</a>\r\n <a href="javascript:void(0)" class="button-select bsp-remove button-player-speed-1.25">1.25</a>\r\n <a href="javascript:void(0)" class="button-select bsp-remove button-player-speed-1.5">1.5</a>\r\n <a href="javascript:void(0)" class="button-select bsp-remove button-player-speed-2">2</a>\r\n </div>\r\n </div>\r\n <div class="jw-setting-captions">\r\n <div class="jw-setting-row-break">\r\n <div class="row-beak-title">Phụ Ä‘á»</div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <div class="jw-setting-label">Cỡ chữ</div>\r\n <div class="jw-setting-value">\r\n <a href="javascript:void(0)" class="button-select bz-remove button-player-caption-size-down">-</a>\r\n <input type="text" class="jw-input caption-size" value="' + i(h(null != (f = null != b ? b.currentOption : b) ? f.fontSize : f, b)) + '">\r\n <a href="javascript:void(0)" class="button-select bz-remove button-player-caption-size-up" readonly="readonly">+</a>\r\n </div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <div class="jw-setting-label">Äá»™ lệch</div>\r\n <div class="jw-setting-value">\r\n <a href="javascript:void(0)" class="button-select bc-remove button-player-caption-delay-down">-</a>\r\n <input type="text" class="jw-input caption-delay" value="0">\r\n <a href="javascript:void(0)" class="button-select bc-remove button-player-caption-delay-up" readonly="readonly">+</a>\r\n </div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <div class="jw-setting-label">Phông chữ</div>\r\n <div class="jw-setting-value">\r\n <label class="jw-setting-font-label">\r\n <select onchange="jwplayer(\'' + i(h(null != b ? b.playerID : b, b)) + '\').setCaptionFont(this.value)" class="jw-setting-font-select">\r\n' + (null != (f = c.each.call(g, null != b ? b.fontList : b, { | |
name: "each", | |
hash: {}, | |
fn: a.program(3, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + ' </select>\r\n </label>\r\n </div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <div class="jw-setting-label">Mà u chữ</div>\r\n <div class="jw-setting-value">\r\n' + (null != (f = c.each.call(g, null != b ? b.colorList : b, { | |
name: "each", | |
hash: {}, | |
fn: a.program(6, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + ' </div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <div class="jw-setting-label">Viá»n chữ</div>\r\n <div class="jw-setting-value">\r\n' + (null != (f = c.each.call(g, null != b ? b.colorList : b, { | |
name: "each", | |
hash: {}, | |
fn: a.program(8, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + ' </div>\r\n </div>\r\n <div class="jw-setting-row">\r\n <span class="jw-setting-label">Ná»n chữ</span>\r\n <span class="jw-setting-value">\r\n' + (null != (f = c["if"].call(g, null != (f = null != b ? b.currentOption : b) ? f.back : f, { | |
name: "if", | |
hash: {}, | |
fn: a.program(10, e, 0), | |
inverse: a.program(12, e, 0), | |
data: e | |
})) ? f : "") + " </span>\r\n </div>\r\n </div>\r\n</div>" | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(137), c(140), c(108), c(46)], e = function(a, b, c, d) { | |
var e = a.extend({ | |
constructor: function(e, f) { | |
this._model = e, a.call(this, f), this.volumeSlider = new b("jw-slider-volume jw-volume-tip", "vertical"), this.addContent(this.volumeSlider.element()), this.volumeSlider.on("update", function(a) { | |
this.trigger("update", a) | |
}, this), d.removeClass(this.el, "jw-hidden"), new c(this.el, { | |
useHover: !0, | |
directSelect: !0 | |
}).on("click", this.toggleValue, this).on("tap", this.toggleOpenState, this).on("over", this.openTooltip, this).on("out", this.closeTooltip, this), this._model.on("change:volume", this.onVolume, this) | |
}, | |
toggleValue: function() { | |
this.trigger("toggleValue") | |
} | |
}); | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(137), c(46), c(43), c(108)], e = function(a, b, c, d) { | |
var e = a.extend({ | |
constructor: function(b) { | |
a.call(this, b), this.container.className = "jw-overlay-horizontal jw-reset", this.openClass = "jw-open-drawer", this.componentType = "drawer" | |
}, | |
setup: function(a, e) { | |
this.iconUI || (this.iconUI = new d(this.el, { | |
useHover: !0, | |
directSelect: !0 | |
}), this.toggleOpenStateListener = this.toggleOpenState.bind(this), this.openTooltipListener = this.openTooltip.bind(this), this.closeTooltipListener = this.closeTooltip.bind(this)), this.reset(), a = c.isArray(a) ? a : [], this.activeContents = c.filter(a, function(a) { | |
return a.isActive | |
}), b.toggleClass(this.el, "jw-hidden", !e || this.activeContents.length < 2), e && this.activeContents.length > 1 && (b.removeClass(this.el, "jw-off"), this.iconUI.on("tap", this.toggleOpenStateListener).on("over", this.openTooltipListener).on("out", this.closeTooltipListener), c.each(a, function(a) { | |
this.container.appendChild(a.el) | |
}, this)) | |
}, | |
reset: function() { | |
b.addClass(this.el, "jw-off"), this.iconUI.off(), this.contentUI && this.contentUI.off().destroy(), this.removeContent() | |
} | |
}); | |
return e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(46)], e = function(a, b) { | |
function c(a, b) { | |
b.off("change:mediaType", null, this), b.on("change:mediaType", function(b, c) { | |
"audio" === c && this.setImage(a.get("playlistItem").image) | |
}, this) | |
} | |
function d(a, c) { | |
var d = a.get("autostart") && !b.isMobile() || a.get("item") > 0; | |
return d ? (this.setImage(null), a.off("change:state", null, this), void a.on("change:state", function(a, b) { | |
"complete" !== b && "idle" !== b && "error" !== b || this.setImage(c.image) | |
}, this)) : void this.setImage(c.image) | |
} | |
var e = function(a) { | |
this.model = a, a.on("change:playlistItem", d, this), a.on("change:mediaModel", c, this) | |
}; | |
return a.extend(e.prototype, { | |
setup: function(a) { | |
this.el = a; | |
var b = this.model.get("playlistItem"); | |
b && this.setImage(b.image) | |
}, | |
setImage: function(c) { | |
this.model.off("change:state", null, this); | |
var d = ""; | |
a.isString(c) && (d = 'url("' + c + '")'), b.style(this.el, { | |
backgroundImage: d | |
}) | |
}, | |
element: function() { | |
return this.el | |
} | |
}), e | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(46), c(153), c(43), c(108), c(58)], e = function(a, b, c, d, e) { | |
var f = function() {}; | |
return c.extend(f.prototype, { | |
buildArray: function() { | |
var a = e.split("+"), | |
b = a[0], | |
c = { | |
items: [{ | |
title: "Sao chép URL", | |
featured: !0, | |
showLogo: !1, | |
click: 'jwplayer("' + this.api.id + '").showCopyUrl()', | |
link: "" | |
}, { | |
title: "Sao chép URL tại thá»i Ä‘iểm hiện tại", | |
featured: !0, | |
showLogo: !1, | |
click: 'jwplayer("' + this.api.id + '").showCopyUrlCurrent()', | |
link: "" | |
}, { | |
title: "HDO Player 2", | |
featured: !0, | |
showLogo: !1, | |
link: "//hdonline.vn" | |
}, { | |
title: "vPlayer - Powered by JWPlayer " + b, | |
featured: !0, | |
showLogo: !1, | |
link: "//vplayer.tranvu.info?v=" + b | |
}] | |
}, | |
d = this.model.get("provider").name; | |
return d.indexOf("html5") >= 0 && c.items.unshift({ | |
title: "Lưu screenshot", | |
featured: !0, | |
showLogo: !1, | |
link: "", | |
click: 'jwplayer("' + this.api.id + '").saveScreenShot()' | |
}), c | |
}, | |
buildMenu: function() { | |
var c = this.buildArray(); | |
return a.createElement(b(c)) | |
}, | |
updateHtml: function() { | |
this.el.innerHTML = this.buildMenu().innerHTML | |
}, | |
rightClick: function(a) { | |
return this.lazySetup(), !this.mouseOverContext && (this.hideMenu(), this.showMenu(a), !1) | |
}, | |
getOffset: function(a) { | |
for (var b = a.target, c = a.offsetX || a.layerX, d = a.offsetY || a.layerY; b !== this.playerElement;) c += b.offsetLeft, d += b.offsetTop, b = b.parentNode; | |
return { | |
x: c, | |
y: d | |
} | |
}, | |
showMenu: function(b) { | |
var c = this.getOffset(b); | |
return this.el.style.left = c.x + "px", this.el.style.top = c.y + "px", a.addClass(this.playerElement, "jw-flag-rightclick-open"), a.addClass(this.el, "jw-open"), !1 | |
}, | |
hideMenu: function() { | |
this.mouseOverContext || (a.removeClass(this.playerElement, "jw-flag-rightclick-open"), a.removeClass(this.el, "jw-open")) | |
}, | |
lazySetup: function() { | |
this.el || (this.el = this.buildMenu(), this.layer.appendChild(this.el), this.hideMenuHandler = this.hideMenu.bind(this), this.addOffListener(this.playerElement), this.addOffListener(document), this.model.on("change:provider", this.updateHtml, this), this.elementUI = new d(this.el, { | |
useHover: !0 | |
}).on("over", function() { | |
this.mouseOverContext = !0 | |
}, this).on("out", function() { | |
this.mouseOverContext = !1 | |
}, this)) | |
}, | |
setup: function(a, b, c, d) { | |
this.playerElement = b, this.model = a, this.mouseOverContext = !1, this.layer = c, this.api = d, b.oncontextmenu = this.rightClick.bind(this) | |
}, | |
addOffListener: function(a) { | |
a.addEventListener("mousedown", this.hideMenuHandler), a.addEventListener("touchstart", this.hideMenuHandler), a.addEventListener("pointerdown", this.hideMenuHandler) | |
}, | |
removeOffListener: function(a) { | |
a.removeEventListener("mousedown", this.hideMenuHandler), a.removeEventListener("touchstart", this.hideMenuHandler), a.removeEventListener("pointerdown", this.hideMenuHandler) | |
}, | |
destroy: function() { | |
this.el && (this.hideMenu(), this.elementUI.off(), this.removeOffListener(this.playerElement), this.removeOffListener(document), this.hideMenuHandler = null, this.el = null), this.playerElement && (this.playerElement.oncontextmenu = null, this.playerElement = null), this.model && (this.model.off("change:provider", this.updateHtml), this.model = null) | |
} | |
}), f | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
1: function(a, b, c, d, e) { | |
var f; | |
return null != (f = c["if"].call(null != b ? b : {}, null != b ? b.click : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(2, e, 0), | |
inverse: a.program(7, e, 0), | |
data: e | |
})) ? f : "" | |
}, | |
2: function(a, b, c, d, e) { | |
var f, g, h = null != b ? b : {}, | |
i = c.helperMissing, | |
j = "function", | |
k = a.escapeExpression; | |
return ' <li class="jw-reset' + (null != (f = c["if"].call(h, null != b ? b.featured : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(3, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + '">\r\n <a href="javascript:void(0)" class="jw-reset" onclick="' + k((g = null != (g = c.click || (null != b ? b.click : b)) ? g : i, typeof g === j ? g.call(h, { | |
name: "click", | |
hash: {}, | |
data: e | |
}) : g)) + '">\r\n' + (null != (f = c["if"].call(h, null != b ? b.showLogo : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(5, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + " " + k((g = null != (g = c.title || (null != b ? b.title : b)) ? g : i, typeof g === j ? g.call(h, { | |
name: "title", | |
hash: {}, | |
data: e | |
}) : g)) + "\r\n </a>\r\n </li>\r\n" | |
}, | |
3: function(a, b, c, d, e) { | |
return " jw-featured" | |
}, | |
5: function(a, b, c, d, e) { | |
return ' <span class="jw-icon jw-rightclick-logo jw-reset"></span>\r\n' | |
}, | |
7: function(a, b, c, d, e) { | |
var f, g, h = null != b ? b : {}, | |
i = c.helperMissing, | |
j = "function", | |
k = a.escapeExpression; | |
return ' <li class="jw-reset' + (null != (f = c["if"].call(h, null != b ? b.featured : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(3, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + '">\r\n <a href="' + k((g = null != (g = c.link || (null != b ? b.link : b)) ? g : i, typeof g === j ? g.call(h, { | |
name: "link", | |
hash: {}, | |
data: e | |
}) : g)) + '" class="jw-reset" target="_blank">\r\n' + (null != (f = c["if"].call(h, null != b ? b.showLogo : b, { | |
name: "if", | |
hash: {}, | |
fn: a.program(5, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + " " + k((g = null != (g = c.title || (null != b ? b.title : b)) ? g : i, typeof g === j ? g.call(h, { | |
name: "title", | |
hash: {}, | |
data: e | |
}) : g)) + "\r\n </a>\r\n </li>\r\n" | |
}, | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
var f; | |
return '<div class="jw-rightclick jw-reset">\r\n <ul class="jw-reset">\r\n' + (null != (f = c.each.call(null != b ? b : {}, null != b ? b.items : b, { | |
name: "each", | |
hash: {}, | |
fn: a.program(1, e, 0), | |
inverse: a.noop, | |
data: e | |
})) ? f : "") + " </ul>\r\n</div>" | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(46)], e = function(a, b) { | |
var c = function(a) { | |
this.model = a, this.model.on("change:playlistItem", this.playlistItem, this) | |
}; | |
return a.extend(c.prototype, { | |
hide: function() { | |
this.el.style.display = "none" | |
}, | |
show: function() { | |
this.el.style.display = "" | |
}, | |
setup: function(a) { | |
this.el = a; | |
var b = this.el.getElementsByTagName("div"); | |
this.title = b[0], this.description = b[1], this.model.get("playlistItem") && this.playlistItem(this.model, this.model.get("playlistItem")), | |
this.model.on("change:logoWidth", this.update, this), this.model.on("change:dock", this.update, this) | |
}, | |
update: function(a) { | |
var c = { | |
paddingLeft: 0, | |
paddingRight: 0 | |
}, | |
d = a.get("controls"), | |
e = a.get("dock"), | |
f = a.get("logo"); | |
if (f) { | |
var g = 1 * ("" + f.margin).replace("px", ""), | |
h = a.get("logoWidth") + (isNaN(g) ? 0 : g); | |
"top-left" === f.position ? c.paddingLeft = h : "top-right" === f.position && (c.paddingRight = h) | |
} | |
if (d && e && e.length) { | |
var i = 56 * e.length; | |
c.paddingRight = Math.max(c.paddingRight, i) | |
} | |
b.style(this.el, c) | |
}, | |
playlistItem: function(a, b) { | |
if (a.get("displaytitle") || a.get("displaydescription")) { | |
var c = "", | |
d = ""; | |
b.title && a.get("displaytitle") && (c = b.title), b.description && a.get("displaydescription") && (d = b.description), this.updateText(c, d) | |
} else this.hide() | |
}, | |
updateText: function(a, b) { | |
this.title.innerHTML = a, this.description.innerHTML = b, this.title.firstChild || this.description.firstChild ? this.show() : this.hide() | |
}, | |
element: function() { | |
return this.el | |
} | |
}), c | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
var f; | |
return '<div id="' + a.escapeExpression((f = null != (f = c.id || (null != b ? b.id : b)) ? f : c.helperMissing, "function" == typeof f ? f.call(null != b ? b : {}, { | |
name: "id", | |
hash: {}, | |
data: e | |
}) : f)) + '" class="jwplayer jw-reset" tabindex="0">\r\n <div class="jw-aspect jw-reset"></div>\r\n <div class="jw-media jw-reset"></div>\r\n <div class="jw-preview jw-reset"></div>\r\n <div class="jw-title jw-reset">\r\n <div class="jw-title-primary jw-reset"></div>\r\n <div class="jw-title-secondary jw-reset"></div>\r\n </div>\r\n <div class="jw-overlays jw-reset"></div>\r\n <div class="jw-controls jw-reset"></div>\r\n</div>' | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d = c(157); | |
"string" == typeof d && (d = [ | |
[a.id, d, ""] | |
]); | |
c(161)(d, {}); | |
d.locals && (a.exports = d.locals) | |
}, function(a, b, c) { | |
b = a.exports = c(158)(), b.push([a.id, ".jw-reset{color:inherit;background-color:transparent;padding:0;margin:0;float:none;font-family:Arial,Helvetica,sans-serif;font-size:1em;line-height:1em;list-style:none;text-align:left;text-transform:none;vertical-align:baseline;border:0;direction:ltr;font-variant:inherit;font-stretch:inherit;-webkit-tap-highlight-color:rgba(255,255,255,0)}@font-face{font-family:'jw-icons';src:url(" + c(159) + ") format('woff'),url(" + c(160) + ') format(\'truetype\');font-weight:normal;font-style:normal}.jw-icon{-webkit-transition:color .2s linear;transition:color .2s linear}.jw-icon-inline,.jw-icon-tooltip,.jw-icon-display,.jw-controlbar .jw-menu .jw-option:before{-webkit-transition:color .2s linear;transition:color .2s linear;font-family:\'jw-icons\';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;text-transform:none;background-color:transparent;font-variant:normal;-webkit-font-feature-settings:"liga";-ms-font-feature-settings:"liga" 1;-o-font-feature-settings:"liga";font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale}.jw-icon-audio-tracks:before{content:"\\E31D"}.jw-icon-buffer:before{content:"\\E900"}.jw-icon-cast:before{content:"\\E603"}.jw-icon-cast.jw-off:before{content:"\\E602"}.jw-icon-cc:before{content:"\\E01C"}.jw-icon-cue:before{content:"\\E606"}.jw-icon-menu-bullet:before{content:"\\E606"}.jw-icon-error:before{content:"\\E607"}.jw-icon-fullscreen:before{content:"\\E5D0"}.jw-icon-fullscreen.jw-off:before{content:"\\E5D1"}.jw-icon-hd:before{content:"\\E052"}.jw-watermark:before,.jw-rightclick-logo:before{content:"\\E60B"}.jw-icon-next:before{content:"\\E044"}.jw-icon-pause:before{content:"\\E034"}.jw-icon-play:before{content:"\\E037"}.jw-icon-prev:before{content:"\\E045"}.jw-icon-replay:before{content:"\\E610"}.jw-icon-volume:before{content:"\\E050"}.jw-icon-volume.jw-off:before{content:"\\E04E"}.jw-icon-more:before{content:"\\E614"}.jw-icon-close:before{content:"\\E615"}.jw-icon-playlist:before{content:"\\E3E0"}.jw-icon-setting:before{content:"\\E8B8"}.jwplayer{width:100%;font-size:16px;position:relative;display:block;min-height:0;overflow:hidden;box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;background-color:#000;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jwplayer *{box-sizing:inherit}.jwplayer.jw-flag-aspect-mode{height:auto !important}.jwplayer.jw-flag-aspect-mode .jw-aspect{display:block}.jwplayer .jw-aspect{display:none}.jwplayer.jw-no-focus:focus,.jwplayer .jw-swf{outline:none}.jwplayer.jw-ie:focus{outline:#585858 dotted 1px}.jwplayer:hover .jw-display-icon-container{background-color:#333;background:#333;background-size:#333}.jw-media,.jw-preview,.jw-overlays,.jw-controls{position:absolute;width:100%;height:100%;top:0;left:0;bottom:0;right:0}.jw-media{overflow:hidden;cursor:pointer}.jw-overlays{cursor:auto}.jw-media.jw-media-show{visibility:visible;opacity:1}.jw-controls.jw-controls-disabled{display:none}.jw-controls .jw-controls-right{position:absolute;top:0;right:0;left:0;bottom:2em}.jw-text{height:1em;font-family:Arial,Helvetica,sans-serif;font-size:.75em;font-style:normal;font-weight:normal;color:white;text-align:center;font-variant:normal;font-stretch:normal}.jw-plugin{position:absolute;bottom:2.5em}.jw-plugin .jw-banner{max-width:100%;opacity:0;cursor:pointer;position:absolute;margin:auto auto 0 auto;left:0;right:0;bottom:0;display:block}.jw-cast-screen{width:100%;height:100%}.jw-instream{position:absolute;top:0;right:0;bottom:0;left:0;display:none}.jw-icon-playback:before{content:"\\E037"}.jw-preview,.jw-captions,.jw-title,.jw-overlays,.jw-controls{pointer-events:none}.jw-overlays>div,.jw-media,.jw-controlbar,.jw-dock,.jw-logo,.jw-skip,.jw-display-icon-container{pointer-events:all}.jwplayer video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:auto;background:transparent}.jwplayer video::-webkit-media-controls-start-playback-button{display:none}.jwplayer video::-webkit-media-text-track-display{-webkit-transform:translateY(-1.5em);transform:translateY(-1.5em)}.jwplayer.jw-flag-user-inactive.jw-state-playing video::-webkit-media-text-track-display{-webkit-transform:translateY(0);transform:translateY(0)}.jwplayer.jw-stretch-uniform video{-o-object-fit:contain;object-fit:contain}.jwplayer.jw-stretch-none video{-o-object-fit:none;object-fit:none}.jwplayer.jw-stretch-fill video{-o-object-fit:cover;object-fit:cover}.jwplayer.jw-stretch-exactfit video{-o-object-fit:fill;object-fit:fill}.jw-click{position:absolute;width:100%;height:100%}.jw-preview{position:absolute;display:none;opacity:1;visibility:visible;width:100%;height:100%;background:#000 no-repeat 50% 50%}.jwplayer .jw-preview,.jw-error .jw-preview,.jw-stretch-uniform .jw-preview{background-size:contain}.jw-stretch-none .jw-preview{background-size:auto auto}.jw-stretch-fill .jw-preview{background-size:cover}.jw-stretch-exactfit .jw-preview{background-size:100% 100%}.jw-display-icon-container{position:relative;top:50%;display:table;height:3.5em;width:3.5em;margin:-1.75em auto 0;cursor:pointer;pointer-events:none !important}.jw-display-icon-container .jw-icon-display{position:relative;display:table-cell;text-align:center;vertical-align:middle !important;background-position:50% 50%;background-repeat:no-repeat;font-size:2em;pointer-events:none !important}.jw-flag-audio-player .jw-display-icon-container,.jw-flag-dragging .jw-display-icon-container{display:none}.jw-icon{font-family:\'jw-icons\';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;text-transform:none;background-color:transparent;font-variant:normal;-webkit-font-feature-settings:"liga";-ms-font-feature-settings:"liga" 1;-o-font-feature-settings:"liga";font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale}.jw-controlbar{display:table;position:absolute;right:0;left:0;bottom:0;height:2em;padding:0 .25em;width:100%}.jw-controlbar .jw-hidden{display:none}.jw-controlbar.jw-drawer-expanded .jw-controlbar-left-group,.jw-controlbar.jw-drawer-expanded .jw-controlbar-center-group{opacity:0}.jw-background-color{background-color:#414040}.jw-group{display:table-cell}.jw-controlbar-center-group{position:absolute;left:0;top:-10px;width:100%;padding:0 .25em}.jw-controlbar-center-group .jw-slider-time,.jw-controlbar-center-group .jw-text-alt{padding:0}.jw-controlbar-center-group .jw-text-alt{display:none}.jw-controlbar-right-group{text-align:right}.jw-controlbar-left-group,.jw-controlbar-right-group{white-space:nowrap}.jw-knob:hover,.jw-icon-inline:hover,.jw-icon-tooltip:hover,.jw-icon-display:hover,.jw-option:before:hover{color:#eee}.jw-icon-inline,.jw-icon-tooltip,.jw-slider-horizontal,.jw-text-elapsed,.jw-text-duration{display:inline-block;height:2em;position:relative;line-height:2em;vertical-align:middle;cursor:pointer}.jw-icon-inline,.jw-icon-tooltip{min-width:1.25em;text-align:center}.jw-icon-playback{min-width:2.25em}.jw-icon-volume{min-width:1.75em;text-align:left}.jw-time-tip{line-height:1em;pointer-events:none}.jw-icon-inline:after,.jw-icon-tooltip:after{width:100%;height:100%;font-size:1em}.jw-icon-cast{display:none}.jw-slider-volume.jw-slider-horizontal,.jw-icon-inline.jw-icon-volume{display:none}.jw-dock{margin:.75em;display:block;opacity:1;clear:right}.jw-dock:after{content:\'\';clear:both;display:block}.jw-dock-button{cursor:pointer;float:right;position:relative;width:2.5em;height:2.5em;margin:.5em}.jw-dock-button .jw-arrow{display:none;position:absolute;bottom:-0.2em;width:.5em;height:.2em;left:50%;margin-left:-0.25em}.jw-dock-button .jw-overlay{display:none;position:absolute;top:2.5em;right:0;margin-top:.25em;padding:.5em;white-space:nowrap}.jw-dock-button:hover .jw-overlay,.jw-dock-button:hover .jw-arrow{display:block}.jw-dock-image{width:100%;height:100%;background-position:50% 50%;background-repeat:no-repeat;opacity:.75}.jw-title{display:none;position:absolute;top:0;width:100%;font-size:.875em;height:8em;background:-webkit-linear-gradient(top, rgba(0,0,0,0.38) 0, rgba(0,0,0,0.63) 8%, rgba(0,0,0,0) 100%);background:linear-gradient(to bottom, rgba(0,0,0,0.38) 0, rgba(0,0,0,0.63) 8%, rgba(0,0,0,0) 100%)}.jw-title-primary,.jw-title-secondary{padding:.75em 1.5em;min-height:2.5em;width:100%;color:white;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden}.jw-title-primary{font-weight:bold}.jw-title-secondary{margin-top:-0.5em}.jw-slider-container{display:inline-block;height:1em;position:relative;touch-action:none}.jw-rail,.jw-buffer,.jw-progress{position:absolute;cursor:pointer}.jw-progress{background-color:#fff}.jw-rail{background-color:#aaa}.jw-buffer{background-color:#202020}.jw-cue,.jw-knob{position:absolute;cursor:pointer}.jw-cue{background-color:#fff;width:.1em;height:.4em}.jw-knob{background-color:#aaa;width:.4em;height:.4em}.jw-slider-horizontal{width:4em;height:1em;background:none !important}.jw-slider-horizontal.jw-slider-volume{margin-right:5px}.jw-slider-horizontal .jw-rail,.jw-slider-horizontal .jw-buffer,.jw-slider-horizontal .jw-progress{width:100%;height:.4em}.jw-slider-horizontal .jw-progress,.jw-slider-horizontal .jw-buffer{width:0}.jw-slider-horizontal .jw-rail,.jw-slider-horizontal .jw-progress,.jw-slider-horizontal .jw-slider-container{width:100%}.jw-slider-horizontal .jw-knob{left:0;margin-left:-0.325em}.jw-slider-vertical{width:.75em;height:4em;bottom:0;position:absolute;padding:1em}.jw-slider-vertical .jw-rail,.jw-slider-vertical .jw-buffer,.jw-slider-vertical .jw-progress{bottom:0;height:100%}.jw-slider-vertical .jw-progress,.jw-slider-vertical .jw-buffer{height:0}.jw-slider-vertical .jw-slider-container,.jw-slider-vertical .jw-rail,.jw-slider-vertical .jw-progress{bottom:0;width:.75em;height:100%;left:0;right:0;margin:0 auto}.jw-slider-vertical .jw-slider-container{height:4em;position:relative}.jw-slider-vertical .jw-knob{bottom:0;left:0;right:0;margin:0 auto}.jw-slider-time{right:0;left:0;width:100%}.jw-tooltip-time{position:absolute;bottom:.1em}.jw-slider-volume .jw-buffer{display:none}.jw-captions{position:absolute;display:none;margin:0 auto;width:100%;left:0;bottom:3em;right:0;max-width:90%;text-align:center;-webkit-transition:bottom .2s linear;transition:bottom .2s linear}.jw-captions.jw-captions-enabled{display:block}.jw-captions-window{display:none;padding:.25em;border-radius:.25em}.jw-captions-window.jw-captions-window-active{display:inline-block}.jw-captions-text{display:inline-block;color:white;background-color:black;word-wrap:break-word;white-space:pre-line;font-style:normal;font-weight:normal;text-align:center;text-decoration:none;line-height:1.3em;padding:.1em .8em}.jwplayer video::-webkit-media-text-track-container{bottom:1.5em}.jwplayer.jw-flag-compact-player video::-webkit-media-text-track-container{bottom:2.5em}.jw-rightclick{display:none;position:absolute;white-space:nowrap}.jw-rightclick.jw-open{display:block}.jw-rightclick ul{list-style:none;font-weight:bold;border-radius:.15em;margin:0;border:1px solid #444;padding-left:0}.jw-rightclick .jw-rightclick-logo{font-size:2em;color:#ff0147;vertical-align:middle;padding-right:.3em;margin-right:.3em;border-right:1px solid #444}.jw-rightclick li{background-color:#000;border-bottom:1px solid #444}.jw-rightclick a{color:#fff;text-decoration:none;padding:1em;display:block;font-size:.6875em}.jw-rightclick li:last-child{border-bottom:none}.jw-rightclick li:hover{background-color:#1a1a1a;cursor:pointer}.jw-rightclick .jw-featured{background-color:#252525;vertical-align:middle}.jw-rightclick .jw-featured a{color:#777}.jw-logo{position:absolute;margin:.75em;cursor:pointer;pointer-events:all;background-repeat:no-repeat;background-size:contain;top:auto;right:auto;left:auto;bottom:auto}.jw-logo .jw-flag-audio-player{display:none}.jw-logo-top-right{top:0;right:0}.jw-logo-top-left{top:0;left:0}.jw-logo-bottom-left{bottom:0;left:0}.jw-logo-bottom-right{bottom:0;right:0}.jw-watermark{position:absolute;top:50%;left:0;right:0;bottom:0;text-align:center;font-size:14em;color:#eee;opacity:.33;pointer-events:none}.jw-icon-tooltip.jw-open .jw-overlay{opacity:1;visibility:visible;-webkit-transition:visibility .5s,opacity .5s linear;transition:visibility .5s,opacity .5s linear}.jw-icon-tooltip.jw-hidden{display:none}.jw-overlay-horizontal{display:none}.jw-icon-tooltip.jw-open-drawer:before{display:none}.jw-icon-tooltip.jw-open-drawer .jw-overlay-horizontal{opacity:1;display:inline-block;vertical-align:top;-webkit-transition:visibility .5s,opacity .5s linear;transition:visibility .5s,opacity .5s linear}.jw-overlay:before{position:absolute;top:0;bottom:0;left:-50%;width:100%;background-color:rgba(0,0,0,0);content:" "}.jw-slider-time .jw-overlay:before{height:1em;top:auto}.jw-time-tip,.jw-volume-tip,.jw-menu{position:relative;left:-50%;border:solid 1px #000;margin:0}.jw-volume-tip{width:100%;height:100%;display:block}.jw-time-tip{text-align:center;font-family:inherit;color:#aaa;bottom:1em;border:solid 4px #000}.jw-time-tip .jw-text{line-height:1em}.jw-controlbar .jw-overlay{margin:0;position:absolute;bottom:2em;left:50%;opacity:0;visibility:hidden}.jw-controlbar .jw-overlay .jw-contents{position:relative}.jw-controlbar .jw-option{position:relative;white-space:nowrap;cursor:pointer;list-style:none;height:1.5em;font-family:inherit;line-height:1.5em;color:#aaa;padding:0 .5em;font-size:.8em}.jw-controlbar .jw-option:hover,.jw-controlbar .jw-option:before:hover{color:#eee}.jw-controlbar .jw-option:before{padding-right:.125em}.jw-playlist-container ::-webkit-scrollbar-track{background-color:#333;border-radius:10px}.jw-playlist-container ::-webkit-scrollbar{width:5px;border:10px solid black;border-bottom:0;border-top:0}.jw-playlist-container ::-webkit-scrollbar-thumb{background-color:white;border-radius:5px}.jw-tooltip-title{border-bottom:1px solid #444;text-align:left;padding-left:.7em}.jw-playlist{max-height:20em;min-height:4.5em;overflow-x:hidden;overflow-y:auto;width:calc(100% - 4px)}.jw-playlist .jw-option{height:3em;margin-right:5px;color:white;padding-left:1em;font-size:.8em}.jw-playlist .jw-label,.jw-playlist .jw-name,.jw-playlist .jw-playlist-thumb{display:inline-block;line-height:3em;text-align:left;overflow:hidden;white-space:nowrap}.jw-playlist .jw-label{width:1em}.jw-playlist .jw-name{width:11em}.jw-skip{cursor:default;position:absolute;float:right;display:inline-block;right:.75em;bottom:3em}.jw-skip.jw-skippable{cursor:pointer}.jw-skip.jw-hidden{visibility:hidden}.jw-skip .jw-skip-icon{display:none;margin-left:-0.75em}.jw-skip .jw-skip-icon:before{content:"\\E044"}.jw-skip .jw-text,.jw-skip .jw-skip-icon{color:#aaa;vertical-align:middle;line-height:1.5em;font-size:.7em}.jw-skip.jw-skippable:hover{cursor:pointer}.jw-skip.jw-skippable:hover .jw-text,.jw-skip.jw-skippable:hover .jw-skip-icon{color:#eee}.jw-skip.jw-skippable .jw-skip-icon{display:inline;margin:0}.jwplayer.jw-state-playing.jw-flag-casting .jw-display-icon-container,.jwplayer.jw-state-paused.jw-flag-casting .jw-display-icon-container{display:table}.jwplayer.jw-flag-casting .jw-display-icon-container{border-radius:0;border:1px solid white;position:absolute;top:auto;left:.5em;right:.5em;bottom:50%;margin-bottom:-12.5%;height:50%;width:50%;padding:0;background-repeat:no-repeat;background-position:center}.jwplayer.jw-flag-casting .jw-display-icon-container .jw-icon{font-size:3em}.jwplayer.jw-flag-casting.jw-state-complete .jw-preview{display:none}.jw-cast{position:absolute;width:100%;height:100%;background-repeat:no-repeat;background-size:auto;background-position:50% 50%}.jw-cast-label{position:absolute;left:.5em;right:.5em;bottom:75%;margin-bottom:1.5em;text-align:center}.jw-cast-name{color:#ccc}.jw-state-idle .jw-preview{display:block}.jw-state-idle .jw-icon-display:before{content:"\\E037"}.jw-state-idle .jw-controlbar{visibility:visible;opacity:1;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jw-state-idle .jw-captions{visibility:hidden;opacity:0;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jw-state-idle .jw-title{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jwplayer.jw-state-playing .jw-display-icon-container{visibility:hidden;opacity:0;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jwplayer.jw-state-playing .jw-display-icon-container .jw-icon-display:before{content:"\\E034"}.jwplayer.jw-state-playing .jw-icon-playback:before{content:"\\E034"}.jwplayer.jw-state-paused .jw-display-icon-container{visibility:visible;opacity:1;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jwplayer.jw-state-paused .jw-display-icon-container .jw-icon-display:before{content:"\\E037"}.jwplayer.jw-state-paused .jw-icon-playback:before{content:"\\E037"}.jwplayer.jw-state-buffering .jw-display-icon-container .jw-icon-display{-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.jwplayer.jw-state-buffering .jw-display-icon-container .jw-icon-display:before{content:"\\E900"}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.jwplayer.jw-state-buffering .jw-display-icon-container .jw-text{visibility:hidden;opacity:0;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jwplayer.jw-state-buffering .jw-icon-playback:before{content:"\\E034"}.jwplayer.jw-state-complete .jw-preview{visibility:visible;opacity:1;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jwplayer.jw-state-complete .jw-display-icon-container .jw-icon-display:before{content:"\\E610"}.jwplayer.jw-state-complete .jw-display-icon-container .jw-text{visibility:hidden;opacity:0;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jwplayer.jw-state-complete .jw-icon-playback:before{content:"\\E037"}.jwplayer.jw-state-complete .jw-captions{visibility:hidden;opacity:0;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}body .jw-error .jw-title,.jwplayer.jw-state-error .jw-title{visibility:visible;opacity:1;display:block;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}body .jw-error .jw-title .jw-title-primary,.jwplayer.jw-state-error .jw-title .jw-title-primary{white-space:normal}body .jw-error .jw-preview,.jwplayer.jw-state-error .jw-preview{visibility:visible;opacity:1;display:block;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}body .jw-error .jw-controlbar,.jwplayer.jw-state-error .jw-controlbar{visibility:visible;opacity:1;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}body .jw-error .jw-captions,.jwplayer.jw-state-error .jw-captions{visibility:hidden;opacity:0;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}body .jw-error:hover .jw-display-icon-container,.jwplayer.jw-state-error:hover .jw-display-icon-container{cursor:default;color:#fff;background:#000}body .jw-error .jw-icon-display,.jwplayer.jw-state-error .jw-icon-display{cursor:default;-webkit-transition:color .2s linear;transition:color .2s linear;font-family:\'jw-icons\';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;text-transform:none;background-color:transparent;font-variant:normal;-webkit-font-feature-settings:"liga";-ms-font-feature-settings:"liga" 1;-o-font-feature-settings:"liga";font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale}body .jw-error .jw-icon-display:before,.jwplayer.jw-state-error .jw-icon-display:before{content:"\\E607"}body .jw-error .jw-icon-display:hover,.jwplayer.jw-state-error .jw-icon-display:hover{color:#fff}body .jw-error{font-size:16px;background-color:#000;color:#eee;width:100%;height:100%;display:table;opacity:1;position:relative}body .jw-error .jw-icon-container{position:absolute;width:100%;height:100%;top:0;left:0;bottom:0;right:0}.jwplayer.jw-flag-cast-available .jw-controlbar{display:table}.jwplayer.jw-flag-cast-available .jw-icon-cast{display:inline-block}.jwplayer.jw-flag-skin-loading .jw-captions,.jwplayer.jw-flag-skin-loading .jw-controls,.jwplayer.jw-flag-skin-loading .jw-title{display:none}.jwplayer.jw-flag-fullscreen{width:100% !important;height:100% !important;top:0;right:0;bottom:0;left:0;z-index:1000;margin:0;position:fixed}.jwplayer.jw-flag-fullscreen.jw-flag-user-inactive{cursor:none;-webkit-cursor-visibility:auto-hide}.jwplayer.jw-flag-fullscreen.jw-flag-user-inactive .jw-media{cursor:none}.jwplayer.jw-flag-fullscreen:hover .jw-title{display:block}.jwplayer.jw-flag-user-inactive .jw-title{display:none !important}.jwplayer.jw-flag-live .jw-controlbar-center-group{position:relative;left:auto;top:auto}.jwplayer.jw-flag-live .jw-controlbar .jw-text-elapsed,.jwplayer.jw-flag-live .jw-controlbar .jw-text-duration,.jwplayer.jw-flag-live .jw-controlbar .jw-slider-time{display:none}.jwplayer.jw-flag-live .jw-controlbar .jw-text-alt{display:inline}.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-controlbar,.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-dock{visibility:hidden;opacity:0;-webkit-transition:visibility .5s,opacity .5s linear;transition:visibility .5s,opacity .5s linear}.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-logo.jw-hide{visibility:hidden;opacity:0;-webkit-transition:visibility .5s,opacity .5s linear;transition:visibility .5s,opacity .5s linear}.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-plugin,.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-captions{bottom:.5em}.jwplayer.jw-flag-user-inactive.jw-state-playing video::-webkit-media-text-track-container{bottom:.5em}.jwplayer.jw-flag-user-inactive.jw-state-buffering .jw-controlbar{display:none}.jwplayer.jw-flag-media-audio .jw-controlbar{display:table}.jw-flag-media-audio .jw-preview{display:block}.jwplayer.jw-flag-ads .jw-controlbar-center-group{position:relative;left:auto;top:auto}.jwplayer.jw-flag-ads .jw-preview,.jwplayer.jw-flag-ads .jw-dock,.jwplayer.jw-flag-ads .jw-logo,.jwplayer.jw-flag-ads .jw-captions.jw-captions-enabled{display:none}.jwplayer.jw-flag-ads video::-webkit-media-text-track-container{display:none}.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-inline,.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-tooltip,.jwplayer.jw-flag-ads .jw-controlbar .jw-text,.jwplayer.jw-flag-ads .jw-controlbar .jw-slider-horizontal{display:none}.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-playback,.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-volume,.jwplayer.jw-flag-ads .jw-controlbar .jw-slider-volume,.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-fullscreen{display:inline-block}.jwplayer.jw-flag-ads .jw-controlbar .jw-text-alt{display:inline}.jwplayer.jw-flag-ads .jw-controlbar .jw-slider-volume.jw-slider-horizontal,.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-inline.jw-icon-volume{display:inline-block}.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-tooltip.jw-icon-volume{display:none}.jwplayer.jw-flag-ads .jw-logo,.jwplayer.jw-flag-ads .jw-captions{display:none}.jwplayer.jw-flag-ads-googleima .jw-controlbar{display:table;bottom:0}.jwplayer.jw-flag-ads-googleima.jw-flag-touch .jw-controlbar{font-size:1em}.jwplayer.jw-flag-ads-googleima.jw-flag-touch.jw-state-paused .jw-display-icon-container{display:none}.jwplayer.jw-flag-ads-googleima.jw-skin-seven .jw-controlbar{font-size:.9em}.jwplayer.jw-flag-ads-vpaid .jw-controlbar{display:none}.jwplayer.jw-flag-ads-hide-controls .jw-controls{display:none !important}.jwplayer.jw-flag-ads.jw-flag-touch .jw-controlbar{display:table}.jwplayer.jw-flag-ads .jw-controlbar{display:table}.jwplayer.jw-flag-overlay-open .jw-title{display:none}.jwplayer.jw-flag-overlay-open .jw-controls-right .jw-logo{display:none}.jwplayer.jw-flag-overlay-open-sharing .jw-controls,.jwplayer.jw-flag-overlay-open-related .jw-controls,.jwplayer.jw-flag-overlay-open-sharing .jw-title,.jwplayer.jw-flag-overlay-open-related .jw-title{display:none}.jwplayer.jw-flag-rightclick-open{overflow:visible}.jwplayer.jw-flag-rightclick-open .jw-rightclick{z-index:16777215}.jw-flag-controls-disabled .jw-controls{visibility:hidden;-webkit-transition:visibility .5s,opacity .5s linear;transition:visibility .5s,opacity .5s linear}.jw-flag-controls-disabled .jw-logo{visibility:visible;-webkit-transition:visibility .5s,opacity .5s linear;transition:visibility .5s,opacity .5s linear}.jw-flag-controls-disabled .jw-media{cursor:auto}body .jwplayer.jw-flag-flash-blocked .jw-title{display:block}body .jwplayer.jw-flag-flash-blocked .jw-controls,body .jwplayer.jw-flag-flash-blocked .jw-overlays,body .jwplayer.jw-flag-flash-blocked .jw-preview{display:none}.jw-flag-touch .jw-controlbar,.jw-flag-touch .jw-skip,.jw-flag-touch .jw-plugin{font-size:1.2em}.jw-flag-touch .jw-captions{bottom:4.25em}.jw-flag-touch video::-webkit-media-text-track-container{bottom:4.25em}.jw-flag-touch .jw-icon-tooltip.jw-open-drawer:before{display:inline}.jw-flag-touch .jw-icon-tooltip.jw-open-drawer:before{content:"\\E615"}.jw-flag-touch .jw-display-icon-container{pointer-events:none}.jw-flag-touch.jw-state-paused .jw-display-icon-container{display:table}.jw-flag-touch.jw-state-paused.jw-flag-dragging .jw-display-icon-container{display:none}.jw-flag-touch .jw-controlbar .jw-icon{font-size:.9em !important}.jw-flag-touch .jw-text-elapsed,.jw-flag-touch .jw-text-duration{font-size:.7em !important}.jw-flag-compact-player .jw-icon-playlist,.jw-flag-compact-player .jw-text-elapsed,.jw-flag-compact-player .jw-text-duration{display:none}.jwplayer.jw-flag-audio-player{background-color:transparent}.jwplayer.jw-flag-audio-player .jw-controlbar-center-group{position:relative;left:auto;top:auto}.jwplayer.jw-flag-audio-player .jw-media{visibility:hidden}.jwplayer.jw-flag-audio-player .jw-media object{width:1px;height:1px}.jwplayer.jw-flag-audio-player .jw-preview,.jwplayer.jw-flag-audio-player .jw-display-icon-container{display:none}.jwplayer.jw-flag-audio-player .jw-controlbar{display:table;height:auto;left:0;bottom:0;margin:0;width:100%;min-width:100%;opacity:1;visibility:visible;-webkit-transition:visibility .5s,opacity .5s linear;transition:visibility .5s,opacity .5s linear}.jwplayer.jw-flag-audio-player .jw-controlbar .jw-icon-fullscreen{display:none}.jwplayer.jw-flag-audio-player .jw-controlbar .jw-icon-tooltip{display:none}.jwplayer.jw-flag-audio-player .jw-controlbar .jw-slider-volume.jw-slider-horizontal,.jwplayer.jw-flag-audio-player .jw-controlbar .jw-icon-inline.jw-icon-volume{display:inline-block}.jwplayer.jw-flag-audio-player .jw-controlbar .jw-icon-tooltip.jw-icon-volume{display:none}.jwplayer.jw-flag-audio-player .jw-controlbar{display:table;left:0;visibility:visible;opacity:1;-webkit-transition:visibility .5s,opacity .5s linear;transition:visibility .5s,opacity .5s linear}.jwplayer.jw-flag-audio-player .jw-controlbar{height:auto}.jwplayer.jw-flag-audio-player .jw-preview{display:none}.jwplayer.jw-flag-audio-player .jw-display-icon-container{display:none}.jw-skin-hdo .jw-background-color{background:rgba(0,0,0,0.7)}.jw-skin-hdo .jw-controlbar{height:3em}.jw-skin-hdo .jw-group{vertical-align:middle}.jw-skin-hdo .jw-title{font-size:1em}.jw-skin-hdo .jw-playlist{background-color:rgba(0,0,0,0.5)}.jw-skin-hdo .jw-playlist-container{left:-43%;background-color:rgba(0,0,0,0.5)}.jw-skin-hdo .jw-playlist-container .jw-active-option .jw-name{color:#4caf50}.jw-skin-hdo .jw-playlist-container .jw-option{font-size:.7em;border-bottom:1px solid #444}.jw-skin-hdo .jw-playlist-container .jw-option:hover,.jw-skin-hdo .jw-playlist-container .jw-option.jw-active-option{background-color:rgba(0,0,0,0.33)}.jw-skin-hdo .jw-playlist-container .jw-option:hover .jw-label{color:#4caf50}.jw-skin-hdo .jw-playlist-container .jw-icon-playlist{margin-left:0}.jw-skin-hdo .jw-playlist-container .jw-label .jw-icon-play{color:#4caf50}.jw-skin-hdo .jw-playlist-container .jw-label .jw-icon-play:before{padding-left:0}.jw-skin-hdo .jw-tooltip-title{background-color:#000;color:#fff}.jw-skin-hdo .jw-text{color:#fff}.jw-skin-hdo .jw-icon-tooltip .jw-text:hover{color:#4caf50}.jw-skin-hdo .jw-button-color{color:#fff}.jw-skin-hdo .jw-button-color:hover{color:#4caf50}.jw-skin-hdo .jw-toggle{color:#4caf50}.jw-skin-hdo .jw-toggle.jw-off{color:#fff}.jw-skin-hdo .jw-captions-text{background-color:transparent}.jw-skin-hdo .jw-controlbar .jw-icon:before{font-size:1.3em;padding:0 .3em}.jw-skin-hdo .jw-text-elapsed,.jw-skin-hdo .jw-text-duration{padding:0 .7em}.jw-skin-hdo .jw-controlbar .jw-icon-setting:before,.jw-skin-hdo .jw-controlbar .jw-icon-volume:before,.jw-skin-hdo .jw-controlbar .jw-icon-fullscreen:before,.jw-skin-hdo .jw-controlbar .jw-icon-audio-tracks:before{padding:0 .4em}.jw-skin-hdo .jw-controlbar.jw-background-color{background:rgba(0,0,0,0.15)}.jw-skin-hdo .jw-text-duration{padding-left:0}.jw-skin-hdo .jw-text-duration:before{content:"";border-left:1px solid #fff;padding-left:.5em}.jw-skin-hdo .jw-controlbar .jw-icon-playlist:before,.jw-skin-hdo .jw-controlbar .jw-icon-setting:before,.jw-skin-hdo .jw-controlbar .jw-icon-volume:before,.jw-skin-hdo .jw-controlbar .jw-icon-volume.jw-off:before{font-size:1em}.jw-skin-hdo .jw-controlbar .jw-icon-hd .jw-option,.jw-skin-hdo .jw-controlbar .jw-icon-cc .jw-option,.jw-skin-hdo .jw-controlbar .jw-icon-audio-tracks .jw-option{line-height:1.7em;height:1.7em}.jw-skin-hdo .jw-controlbar .jw-icon-hd,.jw-skin-hdo .jw-controlbar .jw-icon-cc,.jw-skin-hdo .jw-controlbar .jw-icon-playlist{font-size:1.3em !important}.jw-skin-hdo .jw-controlbar .jw-option{font-size:.7em}.jw-skin-hdo .jw-controlbar .jw-icon-prev:before{padding-right:.25em}.jw-skin-hdo .jw-controlbar .jw-icon-playlist:before{padding:0 .45em}.jw-skin-hdo .jw-controlbar .jw-icon-next:before{padding-left:.25em}.jw-skin-hdo .jw-controlbar .jw-icon{font-size:1.5em}.jw-skin-hdo .jw-icon-display{color:#fff}.jw-skin-hdo .jw-icon-display:before{padding-left:0;font-size:1.7em}.jw-skin-hdo .jw-display-icon-container{border-radius:50%;background:transparent !important;height:5em;width:5em;margin:-2.75em auto 0}.jw-skin-hdo .jw-rail{background-color:#384154;box-shadow:none}.jw-skin-hdo .jw-buffer{background-color:#666F82}.jw-skin-hdo .jw-progress{background:#4caf50}.jw-skin-hdo .jw-knob{width:.6em;height:.6em;background-color:#fff;box-shadow:0 0 0 1px rgba(0,0,0,0.5);border-radius:1em}.jw-skin-hdo .jw-slider-horizontal .jw-slider-container{height:.95em}.jw-skin-hdo .jw-slider-horizontal .jw-rail,.jw-skin-hdo .jw-slider-horizontal .jw-buffer,.jw-skin-hdo .jw-slider-horizontal .jw-progress{height:.2em;border-radius:0}.jw-skin-hdo .jw-slider-horizontal .jw-knob{top:-0.2em}.jw-skin-hdo .jw-slider-horizontal .jw-cue{top:-0.05em;top:-0.02em;width:.2em;height:.25em;background-color:#F7F056;border-radius:50%;-webkit-transition:width .2s,height .2s linear;transition:width .2s,height .2s linear}.jw-skin-hdo .jw-slider-time .jw-rail,.jw-skin-hdo .jw-slider-time .jw-progress,.jw-skin-hdo .jw-slider-time .jw-buffer{height:.2em;-webkit-transition:height .2s,top .2s linear;transition:height .2s,top .2s linear}.jw-skin-hdo .jw-slider-time .jw-knob{width:.9em;height:.9em;top:-0.3em;visibility:hidden;opacity:0;-webkit-transition:visibility .2s,opacity .2s linear;transition:visibility .2s,opacity .2s linear}.jw-skin-hdo .jw-slider-time .jw-slider-container{top:-0.2em;-webkit-transition:height .2s,top .2s linear;transition:height .2s,top .2s linear;height:.75em}.jw-skin-hdo .jw-slider-time:hover .jw-rail,.jw-skin-hdo .jw-slider-time:hover .jw-progress,.jw-skin-hdo .jw-slider-time:hover .jw-buffer{height:.4em}.jw-skin-hdo .jw-slider-time:hover .jw-cue{width:.3em;height:.4em}.jw-skin-hdo .jw-slider-time:hover .jw-knob{top:-0.25em;visibility:visible;opacity:1}.jw-skin-hdo .jw-slider-time:hover .jw-slider-container{top:-0.3em}.jw-skin-hdo .jw-slider-vertical .jw-rail,.jw-skin-hdo .jw-slider-vertical .jw-buffer,.jw-skin-hdo .jw-slider-vertical .jw-progress{width:.2em}.jw-skin-hdo .jw-volume-tip{width:100%;left:-45%;padding-bottom:.7em}.jw-skin-hdo .jw-text-duration{color:#fff}.jw-skin-hdo .jw-controlbar-right-group .jw-icon-inline:first-child:before{border:none}.jw-skin-hdo .jw-dock .jw-dock-button{border-radius:50%;border:1px solid #333}.jw-skin-hdo .jw-dock .jw-overlay{border-radius:2.5em}.jw-skin-hdo .jw-icon-tooltip .jw-active-option{background-color:rgba(76,175,80,0.7);color:#fff}.jw-skin-hdo .jw-icon-volume{min-width:1.8em}.jw-skin-hdo .jw-time-tip,.jw-skin-hdo .jw-menu,.jw-skin-hdo .jw-volume-tip,.jw-skin-hdo .jw-skip{border:1px solid #333}.jw-skin-hdo .jw-time-tip{padding:.2em;bottom:-10px}.jw-skin-hdo .jw-time-tip .jw-reset{background-size:cover}.jw-skin-hdo .jw-menu,.jw-skin-hdo .jw-volume-tip{bottom:.4em}.jw-skin-hdo .jw-text-elapsed,.jw-skin-hdo .jw-text-duration{font-size:1em}.jw-skin-hdo .jw-skip{padding:.4em;border-radius:1.75em}.jw-skin-hdo .jw-skip .jw-text,.jw-skin-hdo .jw-skip .jw-icon-inline{color:#fff;line-height:1.75em}.jw-skin-hdo .jw-skip.jw-skippable:hover .jw-text,.jw-skin-hdo .jw-skip.jw-skippable:hover .jw-icon-inline{color:#4caf50}.jw-skin-hdo.jw-flag-touch .jw-controlbar .jw-icon:before,.jw-skin-hdo.jw-flag-touch .jw-text-elapsed,.jw-skin-hdo.jw-flag-touch .jw-text-duration{padding:0 .35em}.jw-skin-hdo.jw-flag-touch .jw-controlbar .jw-icon-prev:before{padding:0 .125em 0 .7em}.jw-skin-hdo.jw-flag-touch .jw-controlbar .jw-icon-next:before{padding:0 .7em 0 .125em}.jw-skin-hdo.jw-flag-touch .jw-controlbar .jw-icon-playlist:before{padding:0 .225em}.jw-skin-hdo.jw-flag-fullscreen .jw-icon-prev,.jw-skin-hdo.jw-flag-fullscreen .jw-icon-next{font-size:1em}.jw-skin-hdo.jw-flag-fullscreen .jw-controlbar .jw-icon{font-size:1.5em}.jw-skin-hdo.jw-flag-fullscreen .jw-text-elapsed,.jw-skin-hdo.jw-flag-fullscreen .jw-text-duration{font-size:1.3em}.jw-skin-hdo.jw-flag-fullscreen .jw-controlbar{height:3.3em}.jw-skin-hdo .jw-setting-container{width:400px}.jw-skin-hdo .jw-setting-container .jw-setting-row-break{display:block}.jw-skin-hdo .jw-setting-container .jw-setting-row-break .row-beak-title{border-bottom:1px solid rgba(255,255,255,0.27);padding-bottom:10px;font-size:.6em;color:#fff;padding-left:10px;text-transform:uppercase;padding-top:5px}.jw-skin-hdo .jw-setting-container .jw-setting-row{padding:3px 10px}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-label{font-size:.5em;color:#fff;display:inline-block;width:21%}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-value{display:inline-block}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-value .button-select{padding:2px 7px;font-size:.5em;display:inline-block;background:rgba(0,0,0,0.54);text-decoration:none;color:#fff;border:1px solid rgba(255,255,255,0.27);-webkit-transition:background-color .3s linear;transition:background-color .3s linear}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-value .button-select:hover,.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-value .button-select.active{background-color:#4caf50}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-value .button-color{border:1px solid #fff;padding:0 10px;margin-right:7px;position:relative}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-value .button-color.active:before{content:"\\2714";color:#333;position:absolute;left:2px}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-value .button-color:hover{border:1px solid #4caf50}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-font-select{padding:3px;margin:0;border-radius:4px;background:rgba(51,51,51,0.8);color:#fff;border:none;outline:none;display:inline-block;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-size:13px}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-font-label{position:relative}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-font-label:after{content:\'\';right:0;top:5px;width:20px;height:20px;background:rgba(51,51,51,0.34);position:absolute;pointer-events:none;display:block}.jw-skin-hdo .jw-setting-container .jw-setting-row .jw-setting-font-label:before{content:\'<>\';font:11px "Consolas",monospace;color:#aaa;-webkit-transform:rotate(90deg);transform:rotate(90deg);right:1px;top:6px;padding:0 0 2px;border-bottom:1px solid #333;position:absolute;pointer-events:none}.jw-skin-hdo .caption-delay,.jw-skin-hdo .caption-size{width:50px;background-color:#fff;background-image:none;border:1px solid #ccc;height:25px;color:#000;font-size:15px}.jw-skin-hdo .jw-rightclick .jw-featured{background-color:rgba(37,37,37,0.72);vertical-align:middle}.jw-skin-hdo .jw-rightclick .jw-featured:hover{background-color:#252525;vertical-align:middle}.jw-skin-hdo .jw-rightclick .jw-featured a{color:#fff;font-weight:normal}.jw-skin-hdo .jw-preview{background-size:cover}.jw-skin-hdo .jw-slider-volume.jw-slider-horizontal,.jw-skin-hdo .jw-icon-inline.jw-icon-volume{display:inline-block}.jw-skin-hdo .jw-icon-tooltip.jw-icon-volume{display:none}', ""]); | |
}, function(a, b) { | |
a.exports = function() { | |
var a = []; | |
return a.toString = function() { | |
for (var a = [], b = 0; b < this.length; b++) { | |
var c = this[b]; | |
c[2] ? a.push("@media " + c[2] + "{" + c[1] + "}") : a.push(c[1]) | |
} | |
return a.join("") | |
}, a.i = function(b, c) { | |
"string" == typeof b && (b = [ | |
[null, b, ""] | |
]); | |
for (var d = {}, e = 0; e < this.length; e++) { | |
var f = this[e][0]; | |
"number" == typeof f && (d[f] = !0) | |
} | |
for (e = 0; e < b.length; e++) { | |
var g = b[e]; | |
"number" == typeof g[0] && d[g[0]] || (c && !g[2] ? g[2] = c : c && (g[2] = "(" + g[2] + ") and (" + c + ")"), a.push(g)) | |
} | |
}, a | |
} | |
}, function(a, b, c) { | |
a.exports = c.p + "jw-icons.woff" | |
}, function(a, b, c) { | |
a.exports = c.p + "jw-icons.ttf" | |
}, function(a, b) { | |
function c(a, b) { | |
for (var c = 0; c < a.length; c++) { | |
var d, e = a[c], | |
f = k[e.id]; | |
if (f) { | |
for (f.refs++, d = 0; d < f.parts.length; d++) f.parts[d](e.parts[d]); | |
for (; d < e.parts.length; d++) f.parts.push(h(e.parts[d], b)) | |
} else { | |
var g = []; | |
for (d = 0; d < e.parts.length; d++) g.push(h(e.parts[d], b)); | |
k[e.id] = { | |
id: e.id, | |
refs: 1, | |
parts: g | |
} | |
} | |
} | |
} | |
function d(a) { | |
for (var b = [], c = {}, d = 0; d < a.length; d++) { | |
var e = a[d], | |
f = e[0], | |
g = e[1], | |
h = e[2], | |
i = { | |
css: g, | |
media: h | |
}; | |
c[f] ? c[f].parts.push(i) : b.push(c[f] = { | |
id: f, | |
parts: [i] | |
}) | |
} | |
return b | |
} | |
function e(a, b) { | |
var c = n(), | |
d = q[q.length - 1]; | |
if ("top" === a.insertAt) d ? d.nextSibling ? c.insertBefore(b, d.nextSibling) : c.appendChild(b) : c.insertBefore(b, c.firstChild), q.push(b); | |
else { | |
if ("bottom" !== a.insertAt) throw new Error("Invalid value for parameter insertAt. Must be top or bottom."); | |
c.appendChild(b) | |
} | |
} | |
function f(a) { | |
a.parentNode.removeChild(a); | |
var b = q.indexOf(a); | |
b >= 0 && q.splice(b, 1) | |
} | |
function g(a) { | |
var b = document.createElement("style"); | |
return b.type = "text/css", e(a, b), b | |
} | |
function h(a, b) { | |
var c, d, e; | |
if (b.singleton) { | |
var h = p++; | |
c = o || (o = g(b)), d = i.bind(null, c, h, !1), e = i.bind(null, c, h, !0) | |
} else c = g(b), d = j.bind(null, c), e = function() { | |
f(c) | |
}; | |
return d(a), | |
function(b) { | |
if (b) { | |
if (b.css === a.css && b.media === a.media) return; | |
d(a = b) | |
} else e() | |
} | |
} | |
function i(a, b, c, d) { | |
var e = c ? "" : d.css; | |
if (a.styleSheet) a.styleSheet.cssText = r(b, e); | |
else { | |
var f = document.createTextNode(e), | |
g = a.childNodes; | |
g[b] && a.removeChild(g[b]), g.length ? a.insertBefore(f, g[b]) : a.appendChild(f) | |
} | |
} | |
function j(a, b) { | |
var c = b.css, | |
d = b.media; | |
if (d && a.setAttribute("media", d), a.styleSheet) a.styleSheet.cssText = c; | |
else { | |
for (; a.firstChild;) a.removeChild(a.firstChild); | |
a.appendChild(document.createTextNode(c)) | |
} | |
} | |
var k = {}, | |
l = function(a) { | |
var b; | |
return function() { | |
return "undefined" == typeof b && (b = a.apply(this, arguments)), b | |
} | |
}, | |
m = l(function() { | |
return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase()) | |
}), | |
n = l(function() { | |
return document.head || document.getElementsByTagName("head")[0] | |
}), | |
o = null, | |
p = 0, | |
q = []; | |
a.exports = function(a, b) { | |
b = b || {}, "undefined" == typeof b.singleton && (b.singleton = m()), "undefined" == typeof b.insertAt && (b.insertAt = "bottom"); | |
var e = d(a); | |
return c(e, b), | |
function(a) { | |
for (var f, g = [], h = 0; h < e.length; h++) { | |
var i = e[h]; | |
f = k[i.id], f.refs--, g.push(f) | |
} | |
if (a) { | |
var j = d(a); | |
c(j, b) | |
} | |
for (h = 0; h < g.length; h++) | |
if (f = g[h], 0 === f.refs) { | |
for (var l = 0; l < f.parts.length; l++) f.parts[l](); | |
delete k[f.id] | |
} | |
} | |
}; | |
var r = function() { | |
var a = []; | |
return function(b, c) { | |
return a[b] = c, a.filter(Boolean).join("\n") | |
} | |
}() | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(163)], e = function(a) { | |
function b(b, c, d, e) { | |
return a({ | |
id: b, | |
skin: c, | |
title: d, | |
body: e | |
}) | |
} | |
return b | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d = c(110); | |
a.exports = (d["default"] || d).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(a, b, c, d, e) { | |
var f, g = null != b ? b : {}, | |
h = c.helperMissing, | |
i = "function", | |
j = a.escapeExpression; | |
return '<div id="' + j((f = null != (f = c.id || (null != b ? b.id : b)) ? f : h, typeof f === i ? f.call(g, { | |
name: "id", | |
hash: {}, | |
data: e | |
}) : f)) + '"class="jw-skin-' + j((f = null != (f = c.skin || (null != b ? b.skin : b)) ? f : h, typeof f === i ? f.call(g, { | |
name: "skin", | |
hash: {}, | |
data: e | |
}) : f)) + ' jw-error jw-reset">\r\n <div class="jw-title jw-reset">\r\n <div class="jw-title-primary jw-reset">' + j((f = null != (f = c.title || (null != b ? b.title : b)) ? f : h, typeof f === i ? f.call(g, { | |
name: "title", | |
hash: {}, | |
data: e | |
}) : f)) + '</div>\r\n <div class="jw-title-secondary jw-reset">' + j((f = null != (f = c.body || (null != b ? b.body : b)) ? f : h, typeof f === i ? f.call(g, { | |
name: "body", | |
hash: {}, | |
data: e | |
}) : f)) + '</div>\r\n </div>\r\n\r\n <div class="jw-icon-container jw-reset">\r\n <div class="jw-display-icon-container jw-background-color jw-reset">\r\n <div class="jw-icon jw-icon-display jw-reset"></div>\r\n </div>\r\n </div>\r\n</div>\r\n' | |
}, | |
useData: !0 | |
}) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(94), c(43)], e = function(a, b) { | |
return function(c, d) { | |
var e = ["seek", "skipAd", "stop", "playlistNext", "playlistPrev", "playlistItem", "playlistItemChange", "resize", "addButton", "removeButton", "registerPlugin", "attachMedia"]; | |
b.each(e, function(a) { | |
c[a] = function() { | |
return d[a].apply(d, arguments), c | |
} | |
}), c.registerPlugin = a.registerPlugin | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43)], e = function(a) { | |
return function(b, c) { | |
var d = ["buffer", "controls", "position", "duration", "fullscreen", "volume", "mute", "item", "stretching", "playlist"]; | |
a.each(d, function(a) { | |
var d = a.slice(0, 1).toUpperCase() + a.slice(1); | |
b["get" + d] = function() { | |
return c._model.get(a) | |
} | |
}); | |
var e = ["getAudioTracks", "getCaptionsList", "getWidth", "getHeight", "getCurrentAudioTrack", "setCurrentAudioTrack", "getCurrentCaptions", "setCurrentCaptions", "getCurrentQuality", "setCurrentQuality", "getQualityLevels", "getVisualQuality", "getConfig", "getState", "getSafeRegion", "isBeforeComplete", "isBeforePlay", "getProvider", "detachMedia"], | |
f = ["setControls", "setFullscreen", "setVolume", "setMute", "setCues"]; | |
a.each(e, function(a) { | |
b[a] = function() { | |
return c[a] ? c[a].apply(c, arguments) : null | |
} | |
}), a.each(f, function(a) { | |
b[a] = function() { | |
return c[a].apply(c, arguments), b | |
} | |
}), b.getPlaylistIndex = b.getItem | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}, function(a, b, c) { | |
var d, e; | |
d = [c(43), c(44)], e = function(a, b) { | |
return function(c) { | |
var d = { | |
onBufferChange: b.JWPLAYER_MEDIA_BUFFER, | |
onBufferFull: b.JWPLAYER_MEDIA_BUFFER_FULL, | |
onError: b.JWPLAYER_ERROR, | |
onSetupError: b.JWPLAYER_SETUP_ERROR, | |
onFullscreen: b.JWPLAYER_FULLSCREEN, | |
onMeta: b.JWPLAYER_MEDIA_META, | |
onMute: b.JWPLAYER_MEDIA_MUTE, | |
onPlaylist: b.JWPLAYER_PLAYLIST_LOADED, | |
onPlaylistItem: b.JWPLAYER_PLAYLIST_ITEM, | |
onPlaylistComplete: b.JWPLAYER_PLAYLIST_COMPLETE, | |
onReady: b.JWPLAYER_READY, | |
onResize: b.JWPLAYER_RESIZE, | |
onComplete: b.JWPLAYER_MEDIA_COMPLETE, | |
onSeek: b.JWPLAYER_MEDIA_SEEK, | |
onTime: b.JWPLAYER_MEDIA_TIME, | |
onVolume: b.JWPLAYER_MEDIA_VOLUME, | |
onBeforePlay: b.JWPLAYER_MEDIA_BEFOREPLAY, | |
onBeforeComplete: b.JWPLAYER_MEDIA_BEFORECOMPLETE, | |
onDisplayClick: b.JWPLAYER_DISPLAY_CLICK, | |
onControls: b.JWPLAYER_CONTROLS, | |
onQualityLevels: b.JWPLAYER_MEDIA_LEVELS, | |
onQualityChange: b.JWPLAYER_MEDIA_LEVEL_CHANGED, | |
onCaptionsList: b.JWPLAYER_CAPTIONS_LIST, | |
onCaptionsChange: b.JWPLAYER_CAPTIONS_CHANGED, | |
onAdError: b.JWPLAYER_AD_ERROR, | |
onAdClick: b.JWPLAYER_AD_CLICK, | |
onAdImpression: b.JWPLAYER_AD_IMPRESSION, | |
onAdTime: b.JWPLAYER_AD_TIME, | |
onAdComplete: b.JWPLAYER_AD_COMPLETE, | |
onAdCompanions: b.JWPLAYER_AD_COMPANIONS, | |
onAdSkipped: b.JWPLAYER_AD_SKIPPED, | |
onAdPlay: b.JWPLAYER_AD_PLAY, | |
onAdPause: b.JWPLAYER_AD_PAUSE, | |
onAdMeta: b.JWPLAYER_AD_META, | |
onCast: b.JWPLAYER_CAST_SESSION, | |
onAudioTrackChange: b.JWPLAYER_AUDIO_TRACK_CHANGED, | |
onAudioTracks: b.JWPLAYER_AUDIO_TRACKS | |
}, | |
e = { | |
onBuffer: "buffer", | |
onPause: "pause", | |
onPlay: "play", | |
onIdle: "idle" | |
}; | |
a.each(e, function(b, d) { | |
c[d] = a.partial(c.on, b, a) | |
}), a.each(d, function(b, d) { | |
c[d] = a.partial(c.on, b, a) | |
}) | |
} | |
}.apply(b, d), !(void 0 !== e && (a.exports = e)) | |
}]) | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment