Created
May 1, 2017 20:35
-
-
Save miketaylr/96eabfe89a57f02bfe29e04f85a532d0 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
window.jwplayer = function(e) { | |
function t(n) { | |
if (i[n]) return i[n].exports; | |
var r = i[n] = { | |
exports: {}, | |
id: n, | |
loaded: !1 | |
}; | |
return e[n].call(r.exports, r, r.exports, t), r.loaded = !0, r.exports | |
} | |
var n = window.webpackJsonpjwplayer; | |
window.webpackJsonpjwplayer = function(i, o) { | |
for (var a, s, l = 0, u = []; l < i.length; l++) s = i[l], r[s] && u.push.apply(u, r[s]), r[s] = 0; | |
for (a in o) e[a] = o[a]; | |
for (n && n(i, o); u.length;) u.shift().call(null, t) | |
}; | |
var i = {}, | |
r = { | |
0: 0 | |
}; | |
return t.e = function(e, n) { | |
if (0 === r[e]) return n.call(null, t); | |
if (void 0 !== r[e]) r[e].push(n); | |
else { | |
r[e] = [n]; | |
var i = document.getElementsByTagName("head")[0], | |
o = document.createElement("script"); | |
o.type = "text/javascript", o.charset = "utf-8", o.async = !0, o.src = t.p + "" + ({ | |
1: "provider.hlsjs", | |
2: "provider.shaka", | |
3: "provider.cast", | |
4: "provider.html5", | |
5: "provider.flash", | |
6: "provider.youtube", | |
7: "polyfills.vttrenderer", | |
8: "polyfills.promise", | |
9: "polyfills.intersection-observer", | |
10: "polyfills.base64", | |
11: "vttparser" | |
}[e] || e) + ".js", i.appendChild(o) | |
} | |
}, t.m = e, t.c = i, t.p = "", t(0) | |
}([function(e, t, n) { | |
e.exports = n(168) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
var e = {}, | |
t = Array.prototype, | |
n = Object.prototype, | |
i = Function.prototype, | |
r = t.slice, | |
o = t.concat, | |
a = n.toString, | |
s = n.hasOwnProperty, | |
l = t.map, | |
u = t.reduce, | |
c = t.forEach, | |
d = t.filter, | |
p = t.every, | |
h = t.some, | |
f = t.indexOf, | |
g = Array.isArray, | |
m = Object.keys, | |
v = i.bind, | |
w = function(e) { | |
return e instanceof w ? e : this instanceof w ? void 0 : new w(e) | |
}, | |
y = w.each = w.forEach = function(t, n, i) { | |
if (null == t) return t; | |
if (c && t.forEach === c) t.forEach(n, i); | |
else if (t.length === +t.length) { | |
for (var r = 0, o = t.length; r < o; r++) | |
if (n.call(i, t[r], r, t) === e) return | |
} else | |
for (var a = w.keys(t), r = 0, o = a.length; r < o; r++) | |
if (n.call(i, t[a[r]], a[r], t) === e) return; | |
return t | |
}; | |
w.map = w.collect = function(e, t, n) { | |
var i = []; | |
return null == e ? i : l && e.map === l ? e.map(t, n) : (y(e, function(e, r, o) { | |
i.push(t.call(n, e, r, o)) | |
}), i) | |
}; | |
var j = "Reduce of empty array with no initial value"; | |
w.reduce = w.foldl = w.inject = function(e, t, n, i) { | |
var r = arguments.length > 2; | |
if (null == e && (e = []), u && e.reduce === u) return i && (t = w.bind(t, i)), r ? e.reduce(t, n) : e.reduce(t); | |
if (y(e, function(e, o, a) { | |
r ? n = t.call(i, n, e, o, a) : (n = e, r = !0) | |
}), !r) throw new TypeError(j); | |
return n | |
}, w.find = w.detect = function(e, t, n) { | |
var i; | |
return b(e, function(e, r, o) { | |
if (t.call(n, e, r, o)) return i = e, !0 | |
}), i | |
}, w.filter = w.select = function(e, t, n) { | |
var i = []; | |
return null == e ? i : d && e.filter === d ? e.filter(t, n) : (y(e, function(e, r, o) { | |
t.call(n, e, r, o) && i.push(e) | |
}), i) | |
}, w.reject = function(e, t, n) { | |
return w.filter(e, function(e, i, r) { | |
return !t.call(n, e, i, r) | |
}, n) | |
}, w.compact = function(e) { | |
return w.filter(e, w.identity) | |
}, w.every = w.all = function(t, n, i) { | |
n || (n = w.identity); | |
var r = !0; | |
return null == t ? r : p && t.every === p ? t.every(n, i) : (y(t, function(t, o, a) { | |
if (!(r = r && n.call(i, t, o, a))) return e | |
}), !!r) | |
}; | |
var b = w.some = w.any = function(t, n, i) { | |
n || (n = w.identity); | |
var r = !1; | |
return null == t ? r : h && t.some === h ? t.some(n, i) : (y(t, function(t, o, a) { | |
if (r || (r = n.call(i, t, o, a))) return e | |
}), !!r) | |
}; | |
w.size = function(e) { | |
return null == e ? 0 : e.length === +e.length ? e.length : w.keys(e).length | |
}, w.last = function(e, t, n) { | |
if (null != e) return null == t || n ? e[e.length - 1] : r.call(e, Math.max(e.length - t, 0)) | |
}, w.after = function(e, t) { | |
return function() { | |
if (--e < 1) return t.apply(this, arguments) | |
} | |
}, w.before = function(e, t) { | |
var n; | |
return function() { | |
return --e > 0 && (n = t.apply(this, arguments)), e <= 1 && (t = null), n | |
} | |
}; | |
var E = function(e) { | |
return null == e ? w.identity : w.isFunction(e) ? e : w.property(e) | |
}, | |
x = function(e) { | |
return function(t, n, i) { | |
var r = {}; | |
return n = E(n), y(t, function(o, a) { | |
var s = n.call(i, o, a, t); | |
e(r, s, o) | |
}), r | |
} | |
}; | |
w.groupBy = x(function(e, t, n) { | |
w.has(e, t) ? e[t].push(n) : e[t] = [n] | |
}), w.indexBy = x(function(e, t, n) { | |
e[t] = n | |
}), w.sortedIndex = function(e, t, n, i) { | |
n = E(n); | |
for (var r = n.call(i, t), o = 0, a = e.length; o < a;) { | |
var s = o + a >>> 1; | |
n.call(i, e[s]) < r ? o = s + 1 : a = s | |
} | |
return o | |
}; | |
var b = w.some = w.any = function(t, n, i) { | |
n || (n = w.identity); | |
var r = !1; | |
return null == t ? r : h && t.some === h ? t.some(n, i) : (y(t, function(t, o, a) { | |
if (r || (r = n.call(i, t, o, a))) return e | |
}), !!r) | |
}; | |
w.contains = w.include = function(e, t) { | |
return null != e && (e.length !== +e.length && (e = w.values(e)), w.indexOf(e, t) >= 0) | |
}, w.pluck = function(e, t) { | |
return w.map(e, w.property(t)) | |
}, w.where = function(e, t) { | |
return w.filter(e, w.matches(t)) | |
}, w.findWhere = function(e, t) { | |
return w.find(e, w.matches(t)) | |
}, w.max = function(e, t, n) { | |
if (!t && w.isArray(e) && e[0] === +e[0] && e.length < 65535) return Math.max.apply(Math, e); | |
var i = -(1 / 0), | |
r = -(1 / 0); | |
return y(e, function(e, o, a) { | |
var s = t ? t.call(n, e, o, a) : e; | |
s > r && (i = e, r = s) | |
}), i | |
}, w.difference = function(e) { | |
var n = o.apply(t, r.call(arguments, 1)); | |
return w.filter(e, function(e) { | |
return !w.contains(n, e) | |
}) | |
}, w.without = function(e) { | |
return w.difference(e, r.call(arguments, 1)) | |
}, w.indexOf = function(e, t, n) { | |
if (null == e) return -1; | |
var i = 0, | |
r = e.length; | |
if (n) { | |
if ("number" != typeof n) return i = w.sortedIndex(e, t), e[i] === t ? i : -1; | |
i = n < 0 ? Math.max(0, r + n) : n | |
} | |
if (f && e.indexOf === f) return e.indexOf(t, n); | |
for (; i < r; i++) | |
if (e[i] === t) return i; | |
return -1 | |
}; | |
var k = function() {}; | |
w.bind = function(e, t) { | |
var n, i; | |
if (v && e.bind === v) return v.apply(e, r.call(arguments, 1)); | |
if (!w.isFunction(e)) throw new TypeError; | |
return n = r.call(arguments, 2), i = function() { | |
if (!(this instanceof i)) return e.apply(t, n.concat(r.call(arguments))); | |
k.prototype = e.prototype; | |
var o = new k; | |
k.prototype = null; | |
var a = e.apply(o, n.concat(r.call(arguments))); | |
return Object(a) === a ? a : o | |
} | |
}, w.partial = function(e) { | |
var t = r.call(arguments, 1); | |
return function() { | |
for (var n = 0, i = t.slice(), r = 0, o = i.length; r < o; r++) i[r] === w && (i[r] = arguments[n++]); | |
for (; n < arguments.length;) i.push(arguments[n++]); | |
return e.apply(this, i) | |
} | |
}, w.once = w.partial(w.before, 2), w.memoize = function(e, t) { | |
var n = {}; | |
return t || (t = w.identity), | |
function() { | |
var i = t.apply(this, arguments); | |
return w.has(n, i) ? n[i] : n[i] = e.apply(this, arguments) | |
} | |
}, w.delay = function(e, t) { | |
var n = r.call(arguments, 2); | |
return setTimeout(function() { | |
return e.apply(null, n) | |
}, t) | |
}, w.defer = function(e) { | |
return w.delay.apply(w, [e, 1].concat(r.call(arguments, 1))) | |
}, w.throttle = function(e, t, n) { | |
var i, r, o, a = null, | |
s = 0; | |
n || (n = {}); | |
var l = function() { | |
s = n.leading === !1 ? 0 : w.now(), a = null, o = e.apply(i, r), i = r = null | |
}; | |
return function() { | |
var u = w.now(); | |
s || n.leading !== !1 || (s = u); | |
var c = t - (u - s); | |
return i = this, r = arguments, c <= 0 ? (clearTimeout(a), a = null, s = u, o = e.apply(i, r), i = r = null) : a || n.trailing === !1 || (a = setTimeout(l, c)), o | |
} | |
}, w.keys = function(e) { | |
if (!w.isObject(e)) return []; | |
if (m) return m(e); | |
var t = []; | |
for (var n in e) w.has(e, n) && t.push(n); | |
return t | |
}, w.invert = function(e) { | |
for (var t = {}, n = w.keys(e), i = 0, r = n.length; i < r; i++) t[e[n[i]]] = n[i]; | |
return t | |
}, w.defaults = function(e) { | |
return y(r.call(arguments, 1), function(t) { | |
if (t) | |
for (var n in t) void 0 === e[n] && (e[n] = t[n]) | |
}), e | |
}, w.extend = function(e) { | |
return y(r.call(arguments, 1), function(t) { | |
if (t) | |
for (var n in t) e[n] = t[n] | |
}), e | |
}, w.pick = function(e) { | |
var n = {}, | |
i = o.apply(t, r.call(arguments, 1)); | |
return y(i, function(t) { | |
t in e && (n[t] = e[t]) | |
}), n | |
}, w.omit = function(e) { | |
var n = {}, | |
i = o.apply(t, r.call(arguments, 1)); | |
for (var a in e) w.contains(i, a) || (n[a] = e[a]); | |
return n | |
}, w.clone = function(e) { | |
return w.isObject(e) ? w.isArray(e) ? e.slice() : w.extend({}, e) : e | |
}, w.isArray = g || function(e) { | |
return "[object Array]" == a.call(e) | |
}, w.isObject = function(e) { | |
return e === Object(e) | |
}, y(["Arguments", "Function", "String", "Number", "Date", "RegExp"], function(e) { | |
w["is" + e] = function(t) { | |
return a.call(t) == "[object " + e + "]" | |
} | |
}), w.isArguments(arguments) || (w.isArguments = function(e) { | |
return !(!e || !w.has(e, "callee")) | |
}), w.isFunction = function(e) { | |
return "function" == typeof e | |
}, w.isFinite = function(e) { | |
return isFinite(e) && !isNaN(parseFloat(e)) | |
}, w.isNaN = function(e) { | |
return w.isNumber(e) && e != +e | |
}, w.isBoolean = function(e) { | |
return e === !0 || e === !1 || "[object Boolean]" == a.call(e) | |
}, w.isNull = function(e) { | |
return null === e | |
}, w.isUndefined = function(e) { | |
return void 0 === e | |
}, w.has = function(e, t) { | |
return s.call(e, t) | |
}, w.identity = function(e) { | |
return e | |
}, w.constant = function(e) { | |
return function() { | |
return e | |
} | |
}, w.property = function(e) { | |
return function(t) { | |
return t[e] | |
} | |
}, w.propertyOf = function(e) { | |
return null == e ? function() {} : function(t) { | |
return e[t] | |
} | |
}, w.matches = function(e) { | |
return function(t) { | |
if (t === e) return !0; | |
for (var n in e) | |
if (e[n] !== t[n]) return !1; | |
return !0 | |
} | |
}, w.now = Date.now || function() { | |
return (new Date).getTime() | |
}, w.result = function(e, t) { | |
if (null != e) { | |
var n = e[t]; | |
return w.isFunction(n) ? n.call(e) : n | |
} | |
}; | |
var C = 0; | |
return w.uniqueId = function(e) { | |
var t = ++C + ""; | |
return e ? e + t : t | |
}, w | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(8), n(1), n(27), n(32), n(23), n(33), n(14), n(60), n(34), n(63), n(141), n(140)], r = function(e, t, n, i, r, o, a, s, l, u, c, d) { | |
var p = {}; | |
return p.log = function() { | |
window.console && ("object" == typeof console.log ? console.log(Array.prototype.slice.call(arguments, 0)) : console.log.apply(console, arguments)) | |
}, p.between = function(e, t, n) { | |
return Math.max(Math.min(e, n), t) | |
}, p.foreach = function(e, t) { | |
var n, i; | |
for (n in e) "function" === p.typeOf(e.hasOwnProperty) ? e.hasOwnProperty(n) && (i = e[n], t(n, i)) : (i = e[n], t(n, i)) | |
}, p.indexOf = t.indexOf, p.noop = function() {}, p.seconds = e.seconds, p.prefix = e.prefix, p.suffix = e.suffix, t.extend(p, o, a, l, n, s, i, r, u, c, d), p | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
var t = [], | |
n = t.slice, | |
i = { | |
on: function(e, t, n) { | |
if (!o(this, "on", e, [t, n]) || !t) return this; | |
this._events || (this._events = {}); | |
var i = this._events[e] || (this._events[e] = []); | |
return i.push({ | |
callback: t, | |
context: n | |
}), this | |
}, | |
once: function(t, n, i) { | |
if (!o(this, "once", t, [n, i]) || !n) return this; | |
var r = this, | |
a = e.once(function() { | |
r.off(t, a), n.apply(this, arguments) | |
}); | |
return a._callback = n, this.on(t, a, i) | |
}, | |
off: function(t, n, i) { | |
var r, a, s, l, u, c, d, p; | |
if (!this._events || !o(this, "off", t, [n, i])) return this; | |
if (!t && !n && !i) return this._events = void 0, this; | |
for (l = t ? [t] : e.keys(this._events), u = 0, c = l.length; u < c; u++) | |
if (t = l[u], s = this._events[t]) { | |
if (this._events[t] = r = [], n || i) | |
for (d = 0, p = s.length; d < p; d++) a = s[d], (n && n !== a.callback && n !== a.callback._callback || i && i !== a.context) && r.push(a); | |
r.length || delete this._events[t] | |
} | |
return this | |
}, | |
trigger: function(e) { | |
if (!this._events) return this; | |
var t = n.call(arguments, 1); | |
if (!o(this, "trigger", e, t)) return this; | |
var i = this._events[e], | |
r = this._events.all; | |
return i && a(i, t, this), r && a(r, arguments, this), this | |
}, | |
triggerSafe: function(e) { | |
if (!this._events) return this; | |
var t = n.call(arguments, 1); | |
if (!o(this, "trigger", e, t)) return this; | |
var i = this._events[e], | |
r = this._events.all; | |
return i && s(i, t, this, e), r && s(r, arguments, this, e), this | |
} | |
}, | |
r = /\s+/, | |
o = function(e, t, n, i) { | |
if (!n) return !0; | |
if ("object" == typeof n) { | |
for (var o in n) e[t].apply(e, [o, n[o]].concat(i)); | |
return !1 | |
} | |
if (r.test(n)) { | |
for (var a = n.split(r), s = 0, l = a.length; s < l; s++) e[t].apply(e, [a[s]].concat(i)); | |
return !1 | |
} | |
return !0 | |
}, | |
a = function(e, t, n) { | |
var i, r = -1, | |
o = e.length, | |
a = t[0], | |
s = t[1], | |
l = t[2]; | |
switch (t.length) { | |
case 0: | |
for (; ++r < o;)(i = e[r]).callback.call(i.context || n); | |
return; | |
case 1: | |
for (; ++r < o;)(i = e[r]).callback.call(i.context || n, a); | |
return; | |
case 2: | |
for (; ++r < o;)(i = e[r]).callback.call(i.context || n, a, s); | |
return; | |
case 3: | |
for (; ++r < o;)(i = e[r]).callback.call(i.context || n, a, s, l); | |
return; | |
default: | |
for (; ++r < o;)(i = e[r]).callback.apply(i.context || n, t); | |
return | |
} | |
}, | |
s = function(e, t, n, i) { | |
for (var r, o = -1, a = e.length; ++o < a;) try { | |
r = e[o], r.callback.apply(r.context || n, t) | |
} catch (s) { | |
console.log('Error in "' + i + '" event handler:', s) | |
} | |
}; | |
return i | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
var e = { | |
DRAG: "drag", | |
DRAG_START: "dragStart", | |
DRAG_END: "dragEnd", | |
CLICK: "click", | |
DOUBLE_CLICK: "doubleClick", | |
TAP: "tap", | |
DOUBLE_TAP: "doubleTap", | |
OVER: "over", | |
MOVE: "move", | |
OUT: "out" | |
}, | |
t = { | |
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" | |
}; | |
return t.touchEvents = e, t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
return { | |
BUFFERING: "buffering", | |
IDLE: "idle", | |
COMPLETE: "complete", | |
PAUSED: "paused", | |
PLAYING: "playing", | |
ERROR: "error", | |
LOADING: "loading", | |
STALLED: "stalled" | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , function(e, t, n) { | |
var i, r; | |
i = [n(3), n(4), n(1), n(2)], r = function(e, t, n, i) { | |
function r(e, t) { | |
return /touch/.test(e.type) ? (e.originalEvent || e).changedTouches[0]["page" + t] : e["page" + t] | |
} | |
function o(e) { | |
var t = e || window.event; | |
return e instanceof MouseEvent && ("which" in t ? 3 === t.which : "button" in t && 2 === t.button) | |
} | |
function a(e, t, n) { | |
var i; | |
return i = t instanceof MouseEvent || !t.touches && !t.changedTouches ? t : t.touches && t.touches.length ? t.touches[0] : t.changedTouches[0], { | |
type: e, | |
target: t.target, | |
currentTarget: n, | |
pageX: i.pageX, | |
pageY: i.pageY | |
} | |
} | |
function s(e) { | |
(e instanceof MouseEvent || e instanceof window.TouchEvent) && (e.preventManipulation && e.preventManipulation(), e.preventDefault && e.preventDefault()) | |
} | |
var l = t.touchEvents, | |
u = "PointerEvent" in window, | |
c = "ontouchstart" in window, | |
d = !(u || c && i.isMobile()), | |
p = i.isFF() && i.isOSX(), | |
h = function(e, t) { | |
function i(e) { | |
"touch" !== e.pointerType && w(l.OVER, e) | |
} | |
function c(e) { | |
"touch" !== e.pointerType && w(l.MOVE, e) | |
} | |
function h(t) { | |
(d || u && "touch" !== t.pointerType && !e.contains(document.elementFromPoint(t.x, t.y))) && w(l.OUT, t) | |
} | |
function f(e, t, n) { | |
e.removeEventListener(t, n), e.addEventListener(t, n) | |
} | |
function g(n) { | |
y = n.target, x = r(n, "X"), k = r(n, "Y"), o(n) || ("pointerdown" === n.type && n.isPrimary ? (t.preventScrolling && (j = n.pointerId, e.setPointerCapture(j)), f(e, "pointermove", m), f(e, "pointercancel", v), "mouse" === n.pointerType && "OBJECT" === y.nodeName ? f(document, "mouseup", v) : f(e, "pointerup", v)) : "mousedown" === n.type ? (f(document, "mousemove", m), p && "object" === n.target.nodeName.toLowerCase() ? f(e, "click", v) : f(document, "mouseup", v)) : "touchstart" === n.type && (f(y, "touchmove", m), f(y, "touchcancel", v), f(y, "touchend", v)), t.preventScrolling && s(n)) | |
} | |
function m(e) { | |
var n = 6; | |
if (E) w(l.DRAG, e); | |
else { | |
var i = r(e, "X"), | |
o = r(e, "Y"), | |
a = i - x, | |
u = o - k; | |
a * a + u * u > n * n && (w(l.DRAG_START, e), E = !0, w(l.DRAG, e)) | |
} | |
t.preventScrolling && s(e) | |
} | |
function v(n) { | |
var i = "pointerup" === n.type || "pointercancel" === n.type; | |
i && t.preventScrolling && e.releasePointerCapture(j), e.removeEventListener("pointermove", m), e.removeEventListener("pointercancel", v), e.removeEventListener("pointerup", v), document.removeEventListener("mousemove", m), document.removeEventListener("mouseup", v), y.removeEventListener("touchmove", m), y.removeEventListener("touchcancel", v), y.removeEventListener("touchend", v), E ? w(l.DRAG_END, n) : t.directSelect && n.target !== e || n.type.indexOf("cancel") !== -1 || ("mouseup" === n.type || "click" === n.type || i && "mouse" === n.pointerType ? w(l.CLICK, n) : (w(l.TAP, n), "touchend" === n.type && s(n))), y = null, E = !1 | |
} | |
function w(e, i) { | |
var r; | |
if (t.enableDoubleTap && (e === l.CLICK || e === l.TAP)) | |
if (n.now() - C < A) { | |
var o = e === l.CLICK ? l.DOUBLE_CLICK : l.DOUBLE_TAP; | |
r = a(o, i, b), _.trigger(o, r), C = 0 | |
} else C = n.now(); | |
r = a(e, i, b), _.trigger(e, r) | |
} | |
var y, j, b = e, | |
E = !1, | |
x = 0, | |
k = 0, | |
C = 0, | |
A = 300; | |
t = t || {}, u ? (e.addEventListener("pointerdown", g), t.useHover && (e.addEventListener("pointerover", i), e.addEventListener("pointerout", h)), t.useMove && e.addEventListener("pointermove", c)) : (d && (e.addEventListener("mousedown", g), t.useHover && (e.addEventListener("mouseover", i), e.addEventListener("mouseout", h)), t.useMove && e.addEventListener("mousemove", c)), e.addEventListener("touchstart", g)); | |
var _ = this; | |
return this.triggerEvent = w, this.destroy = function() { | |
e.removeEventListener("touchstart", g), e.removeEventListener("mousedown", g), y && (y.removeEventListener("touchmove", m), y.removeEventListener("touchcancel", v), y.removeEventListener("touchend", v), y = null), u && (t.preventScrolling && e.releasePointerCapture(j), e.removeEventListener("pointerover", i), e.removeEventListener("pointerdown", g), e.removeEventListener("pointermove", m), e.removeEventListener("pointermove", c), e.removeEventListener("pointercancel", v), e.removeEventListener("pointerout", h), e.removeEventListener("pointerup", v)), e.removeEventListener("click", v), e.removeEventListener("mouseover", i), e.removeEventListener("mousemove", c), e.removeEventListener("mouseout", h), document.removeEventListener("mousemove", m), document.removeEventListener("mouseup", v) | |
}, this | |
}; | |
return n.extend(h.prototype, e), h | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
function t(e) { | |
return !!/[\(,]format=m3u8-/i.test(e) && "m3u8" | |
} | |
var n = function(e) { | |
return e.replace(/^\s+|\s+$/g, "") | |
}, | |
i = function(e, t, n) { | |
for (e = "" + e, n = n || "0"; e.length < t;) e = n + e; | |
return e | |
}, | |
r = function(e, t) { | |
for (var n = 0; n < e.attributes.length; n++) | |
if (e.attributes[n].name && e.attributes[n].name.toLowerCase() === t.toLowerCase()) return e.attributes[n].value.toString(); | |
return "" | |
}, | |
o = function(e) { | |
if (!e || "rtmp" === e.substr(0, 4)) return ""; | |
var n = t(e); | |
return n ? n : (e = e.split("?")[0].split("#")[0], e.lastIndexOf(".") > -1 ? e.substr(e.lastIndexOf(".") + 1, e.length).toLowerCase() : void 0) | |
}, | |
a = function(e) { | |
var t = parseInt(e / 3600), | |
n = parseInt(e / 60) % 60, | |
r = e % 60; | |
return i(t, 2) + ":" + i(n, 2) + ":" + i(r.toFixed(3), 6) | |
}, | |
s = function(t, n) { | |
if (e.isNumber(t)) return t; | |
t = t.replace(",", "."); | |
var i = t.split(":"), | |
r = i.length, | |
o = 0; | |
if ("s" === t.slice(-1)) o = parseFloat(t); | |
else if ("m" === t.slice(-1)) o = 60 * parseFloat(t); | |
else if ("h" === t.slice(-1)) o = 3600 * parseFloat(t); | |
else if (r > 1) { | |
var a = r - 1; | |
4 === r && (n && (o = parseFloat(i[a]) / n), a -= 1), o += parseFloat(i[a]), o += 60 * parseFloat(i[a - 1]), r >= 3 && (o += 3600 * parseFloat(i[a - 2])) | |
} else o = parseFloat(t); | |
return o | |
}, | |
l = function(t, n) { | |
return e.map(t, function(e) { | |
return n + e | |
}) | |
}, | |
u = function(t, n) { | |
return e.map(t, function(e) { | |
return e + n | |
}) | |
}; | |
return { | |
trim: n, | |
pad: i, | |
xmlAttribute: r, | |
extension: o, | |
hms: a, | |
seconds: s, | |
suffix: u, | |
prefix: l | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
e.exports = n(96)["default"] | |
}, , function(e, t) { | |
"use strict"; | |
function n(e) { | |
return c[e] | |
} | |
function i(e) { | |
for (var t = 1; t < arguments.length; t++) | |
for (var n in arguments[t]) Object.prototype.hasOwnProperty.call(arguments[t], n) && (e[n] = arguments[t][n]); | |
return e | |
} | |
function r(e, t) { | |
for (var n = 0, i = e.length; n < i; n++) | |
if (e[n] === t) return n; | |
return -1 | |
} | |
function o(e) { | |
if ("string" != typeof e) { | |
if (e && e.toHTML) return e.toHTML(); | |
if (null == e) return ""; | |
if (!e) return e + ""; | |
e = "" + e | |
} | |
return p.test(e) ? e.replace(d, n) : e | |
} | |
function a(e) { | |
return !e && 0 !== e || !(!g(e) || 0 !== e.length) | |
} | |
function s(e) { | |
var t = i({}, e); | |
return t._parent = e, t | |
} | |
function l(e, t) { | |
return e.path = t, e | |
} | |
function u(e, t) { | |
return (e ? e + "." : "") + t | |
} | |
t.__esModule = !0, t.extend = i, t.indexOf = r, t.escapeExpression = o, t.isEmpty = a, t.createFrame = s, t.blockParams = l, t.appendContextPath = u; | |
var c = { | |
"&": "&", | |
"<": "<", | |
">": ">", | |
'"': """, | |
"'": "'", | |
"`": "`", | |
"=": "=" | |
}, | |
d = /[&<>"'`=]/g, | |
p = /[&<>"'`=]/, | |
h = Object.prototype.toString; | |
t.toString = h; | |
var f = function(e) { | |
return "function" == typeof e | |
}; | |
f(/x/) && (t.isFunction = f = function(e) { | |
return "function" == typeof e && "[object Function]" === h.call(e) | |
}), t.isFunction = f; | |
var g = Array.isArray || function(e) { | |
return !(!e || "object" != typeof e) && "[object Array]" === h.call(e) | |
}; | |
t.isArray = g | |
}, , function(e, t, n) { | |
var i, r; | |
i = [n(2), n(4), n(5), n(1)], r = function(e, t, n, i) { | |
var r = e.noop, | |
o = i.constant(!1), | |
a = { | |
supports: o, | |
play: r, | |
load: r, | |
stop: r, | |
volume: r, | |
mute: r, | |
seek: r, | |
resize: r, | |
remove: r, | |
destroy: r, | |
setVisibility: r, | |
setFullscreen: o, | |
getFullscreen: r, | |
getContainer: r, | |
setContainer: o, | |
getName: r, | |
getQualityLevels: r, | |
getCurrentQuality: r, | |
setCurrentQuality: r, | |
getAudioTracks: r, | |
getCurrentAudioTrack: r, | |
setCurrentAudioTrack: r, | |
checkComplete: r, | |
setControls: r, | |
attachMedia: r, | |
detachMedia: r, | |
setState: function(e) { | |
var i = this.state || n.IDLE; | |
this.state = e, e !== i && this.trigger(t.JWPLAYER_PLAYER_STATE, { | |
newstate: e | |
}) | |
}, | |
sendMediaType: function(e) { | |
var n = e[0].type, | |
i = "oga" === n || "aac" === n || "mp3" === n || "mpeg" === n || "vorbis" === n; | |
this.trigger(t.JWPLAYER_MEDIA_TYPE, { | |
mediaType: i ? "audio" : "video" | |
}) | |
} | |
}; | |
return a | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
var t = {}, | |
n = { | |
TIT2: "title", | |
TT2: "title", | |
WXXX: "url", | |
TPE1: "artist", | |
TP1: "artist", | |
TALB: "album", | |
TAL: "album" | |
}; | |
return t.utf8ArrayToStr = function(e, t) { | |
var n, i, r, o, a, s; | |
for (n = "", r = e.length, i = t || 0; i < r;) | |
if (o = e[i++], 0 !== o && 3 !== o) switch (o >> 4) { | |
case 0: | |
case 1: | |
case 2: | |
case 3: | |
case 4: | |
case 5: | |
case 6: | |
case 7: | |
n += String.fromCharCode(o); | |
break; | |
case 12: | |
case 13: | |
a = e[i++], n += String.fromCharCode((31 & o) << 6 | 63 & a); | |
break; | |
case 14: | |
a = e[i++], s = e[i++], n += String.fromCharCode((15 & o) << 12 | (63 & a) << 6 | (63 & s) << 0) | |
} | |
return n | |
}, t.utf16BigEndianArrayToStr = function(e, t) { | |
var n, i, r; | |
for (n = "", r = e.length - 1, i = t || 0; i < r;) 254 === e[i] && 255 === e[i + 1] || (n += String.fromCharCode((e[i] << 8) + e[i + 1])), i += 2; | |
return n | |
}, t.syncSafeInt = function(e) { | |
var n = t.arrayToInt(e); | |
return 127 & n | (32512 & n) >> 1 | (8323072 & n) >> 2 | (2130706432 & n) >> 3 | |
}, t.arrayToInt = function(e) { | |
for (var t = "0x", n = 0; n < e.length; n++) t += e[n].toString(16); | |
return parseInt(t) | |
}, t.parseID3 = function(i) { | |
return e.reduce(i, function(i, r) { | |
if (!("value" in r) && "data" in r && r.data instanceof ArrayBuffer) { | |
var o = r, | |
a = new Uint8Array(o.data), | |
s = a.length; | |
r = { | |
value: { | |
key: "", | |
data: "" | |
} | |
}; | |
for (var l = 10; l < 14 && l < a.length && 0 !== a[l];) r.value.key += String.fromCharCode(a[l]), l++; | |
var u = 19, | |
c = a[u]; | |
3 !== c && 0 !== c || (c = a[++u], s--); | |
var d = 0; | |
if (1 !== c && 2 !== c) | |
for (var p = u + 1; p < s; p++) | |
if (0 === a[p]) { | |
d = p - u; | |
break | |
} | |
if (d > 0) { | |
var h = t.utf8ArrayToStr(a.subarray(u, u += d), 0); | |
if ("PRIV" === r.value.key) { | |
if ("com.apple.streaming.transportStreamTimestamp" === h) { | |
var f = 1 & t.syncSafeInt(a.subarray(u, u += 4)), | |
g = t.syncSafeInt(a.subarray(u, u += 4)); | |
f && (g += 4294967296), r.value.data = g | |
} else r.value.data = t.utf8ArrayToStr(a, u + 1); | |
r.value.info = h | |
} else r.value.info = h, r.value.data = t.utf8ArrayToStr(a, u + 1) | |
} else { | |
var m = a[u]; | |
1 === m || 2 === m ? r.value.data = t.utf16BigEndianArrayToStr(a, u + 1) : r.value.data = t.utf8ArrayToStr(a, u + 1) | |
} | |
} | |
if (n.hasOwnProperty(r.value.key) && (i[n[r.value.key]] = r.value.data), r.value.info) { | |
var v = i[r.value.key]; | |
e.isObject(v) || (v = {}, i[r.value.key] = v), v[r.value.info] = r.value.data | |
} else i[r.value.key] = r.value.data; | |
return i | |
}, {}) | |
}, t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(4), n(3), n(1)], r = function(e, t, n) { | |
var i = {}, | |
r = { | |
NEW: 0, | |
LOADING: 1, | |
ERROR: 2, | |
COMPLETE: 3 | |
}, | |
o = function(o, a) { | |
function s(t) { | |
c = r.ERROR, u.trigger(e.ERROR, t) | |
} | |
function l(t) { | |
c = r.COMPLETE, u.trigger(e.COMPLETE, t) | |
} | |
var u = n.extend(this, t), | |
c = r.NEW; | |
this.addEventListener = this.on, this.removeEventListener = this.off, this.makeStyleLink = function(e) { | |
var t = document.createElement("link"); | |
return t.type = "text/css", t.rel = "stylesheet", t.href = e, t | |
}, this.makeScriptTag = function(e) { | |
var t = document.createElement("script"); | |
return t.src = e, t | |
}, this.makeTag = a ? this.makeStyleLink : this.makeScriptTag, this.load = function() { | |
if (c === r.NEW) { | |
var t = i[o]; | |
if (t && (c = t.getStatus(), c < 2)) return t.on(e.ERROR, s), void t.on(e.COMPLETE, l); | |
var n = document.getElementsByTagName("head")[0] || document.documentElement, | |
u = this.makeTag(o), | |
d = !1; | |
u.onload = u.onreadystatechange = function(e) { | |
d || this.readyState && "loaded" !== this.readyState && "complete" !== this.readyState || (d = !0, l(e), u.onload = u.onreadystatechange = null, n && u.parentNode && !a && n.removeChild(u)) | |
}, u.onerror = s, n.insertBefore(u, n.firstChild), c = r.LOADING, i[o] = this | |
} | |
}, this.getStatus = function() { | |
return c | |
} | |
}; | |
return o.loaderstatus = r, o | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
var t = "free", | |
n = "premium", | |
i = "enterprise", | |
r = "platinum", | |
o = "ads", | |
a = "unlimited", | |
s = "trial", | |
l = { | |
setup: [t, n, i, o, a, s, r], | |
dash: [n, i, o, a, s, r], | |
drm: [i, o, a, s], | |
hls: [n, o, i, a, s, r], | |
ads: [o, a, s, r, i], | |
casting: [n, i, o, a, s, r], | |
jwpsrv: [t, n, i, o, s, r] | |
}, | |
u = function(t) { | |
return function(n) { | |
return e.contains(l[n], t) | |
} | |
}; | |
return u | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t) { | |
"use strict"; | |
function n(e, t) { | |
var r = t && t.loc, | |
o = void 0, | |
a = void 0; | |
r && (o = r.start.line, a = r.start.column, e += " - " + o + ":" + a); | |
for (var s = Error.prototype.constructor.call(this, e), l = 0; l < i.length; l++) this[i[l]] = s[i[l]]; | |
Error.captureStackTrace && Error.captureStackTrace(this, n), r && (this.lineNumber = o, this.column = a) | |
} | |
t.__esModule = !0; | |
var i = ["description", "fileName", "lineNumber", "message", "name", "number", "stack"]; | |
n.prototype = new Error, t["default"] = n, e.exports = t["default"] | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
return { | |
createId: function(e, t) { | |
var n, i = e.kind || "cc"; | |
return n = e["default"] || e.defaulttrack ? "default" : e._id || e.file || e.name || e.label || i + t | |
}, | |
createLabel: function(e, t) { | |
var n = e.label || e.name || e.language; | |
return n || (n = "Unknown CC", t += 1, t > 1 && (n += " [" + t + "]")), { | |
label: n, | |
unknownCount: t | |
} | |
} | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(2), n(20), n(30), n(127), n(46)], r = function(e, t, i, r, o, a) { | |
function s(e, t, n, a) { | |
var s, u, c = e.responseXML ? e.responseXML.firstChild : null; | |
if (c) | |
for ("xml" === i.localName(c) && (c = c.nextSibling); c.nodeType === c.COMMENT_NODE;) c = c.nextSibling; | |
try { | |
if (c && "tt" === i.localName(c)) s = o(e.responseXML), u = this.convertToVTTCues(s), delete t.xhr, n(u); | |
else { | |
var d = e.responseText; | |
d.indexOf("WEBVTT") >= 0 ? l(d, t, n, a) : (s = r(d), u = this.convertToVTTCues(s), delete t.xhr, n(u)) | |
} | |
} catch (p) { | |
delete t.xhr, a(p) | |
} | |
} | |
function l(e, t, i, r) { | |
n.e(11, function(require) { | |
var o = n(47), | |
a = new o(window), | |
s = []; | |
a.oncue = function(e) { | |
s.push(e) | |
}, a.onflush = function() { | |
delete t.xhr, i(s) | |
}; | |
try { | |
a.parse(e).flush() | |
} catch (l) { | |
delete t.xhr, r(l) | |
} | |
}) | |
} | |
var u = {}; | |
return u.loadFile = function(e, n, i) { | |
e.xhr = t.ajax(e.file, function(t) { | |
s.call(u, t, e, n, i) | |
}, i) | |
}, u.cancelXhr = function(t) { | |
e.each(t, function(e) { | |
var t = e.xhr; | |
t && (t.onload = null, t.onreadystatechange = null, t.onerror = null, "abort" in t && t.abort()), delete e.xhr | |
}) | |
}, u.convertToVTTCues = function(t) { | |
var n = e.map(t, function(e) { | |
return new a(e.begin, e.end, e.text) | |
}); | |
return n | |
}, u | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(8)], r = function(e) { | |
return { | |
localName: function(e) { | |
return e ? e.localName ? e.localName : e.baseName ? e.baseName : "" : "" | |
}, | |
textContent: function(t) { | |
return t ? t.textContent ? e.trim(t.textContent) : t.text ? e.trim(t.text) : "" : "" | |
}, | |
getChildNode: function(e, t) { | |
return e.childNodes[t] | |
}, | |
numChildren: function(e) { | |
return e.childNodes ? e.childNodes.length : 0 | |
} | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(131), n(132), n(52), n(26)], r = function(e, t, n, i) { | |
var r = {}, | |
o = {}, | |
a = function(n, i) { | |
return o[n] = new e(new t(r), i), o[n] | |
}, | |
s = function(e, t, o, a) { | |
var s = i.getPluginName(e); | |
r[s] || (r[s] = new n(e)), r[s].registerPlugin(e, t, o, a) | |
}; | |
return { | |
loadPlugins: a, | |
registerPlugin: s | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
return { | |
repo: "http://ssl.p.jwpcdn.com/player/v/", | |
SkinsIncluded: ["seven"], | |
SkinsLoadable: ["beelden", "bekle", "five", "glow", "roundster", "six", "stormtrooper", "vapor"], | |
dvrSeekLimit: -25 | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(8), n(68)], r = function(e, t) { | |
function n(e) { | |
e = e.split("-"); | |
for (var t = 1; t < e.length; t++) e[t] = e[t].charAt(0).toUpperCase() + e[t].slice(1); | |
return e.join("") | |
} | |
function i(t, n, i) { | |
if ("" === n || void 0 === n || null === n) return ""; | |
var r = i ? " !important" : ""; | |
return "string" == typeof n && isNaN(n) ? /png|gif|jpe?g/i.test(n) && n.indexOf("url") < 0 ? "url(" + n + ")" : n + r : 0 === n || "z-index" === t || "opacity" === t ? "" + n + r : /color/i.test(t) ? "#" + e.pad(n.toString(16).replace(/^0x/i, ""), 6) + r : Math.ceil(n) + "px" + r | |
} | |
var r = function(e, n, i) { | |
i = i || "all-players"; | |
var r = ""; | |
if ("object" == typeof n) { | |
var a = document.createElement("div"); | |
o(a, n), r = "{" + a.style.cssText + "}" | |
} else "string" == typeof n && (r = n); | |
t.style([ | |
[e, e + r] | |
], i) | |
}, | |
o = function(e, t) { | |
if (void 0 !== e && null !== e) { | |
void 0 === e.length && (e = [e]); | |
var r, o = {}; | |
for (r in t) o[r] = i(r, t[r]); | |
for (var a = 0; a < e.length; a++) { | |
var s, l = e[a]; | |
if (void 0 !== l && null !== l) | |
for (r in o) s = n(r), l.style[s] !== o[r] && (l.style[s] = o[r]) | |
} | |
} | |
}, | |
a = function(e, t) { | |
o(e, { | |
transform: t, | |
webkitTransform: t, | |
msTransform: t, | |
mozTransform: t, | |
oTransform: t | |
}) | |
}, | |
s = function(e, t) { | |
var n = "rgb"; | |
e ? (e = String(e).replace("#", ""), 3 === e.length && (e = e[0] + e[0] + e[1] + e[1] + e[2] + e[2])) : e = "000000"; | |
var i = [parseInt(e.substr(0, 2), 16), parseInt(e.substr(2, 2), 16), parseInt(e.substr(4, 2), 16)]; | |
return void 0 !== t && 100 !== t && (n += "a", i.push(t / 100)), n + "(" + i.join(",") + ")" | |
}; | |
return { | |
css: r, | |
style: o, | |
clearCss: t.clear, | |
transform: a, | |
hexToRgba: s | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
return "7.8.6+commercial_v7-8-6.144.commercial.e35460.jwplayer.1258bf.freewheel.32b252.googima.ec15fb.vast.e14071.analytics.57a12a.plugin-gapro.7e936b.plugin-related.940118.plugin-sharing.fc6359.vr-plugin.5ca0dc.hls.js." | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(39), n(123), n(1), n(3), n(139), n(4), n(5)], r = function(e, t, n, i, r, o, a, s) { | |
var l = function() { | |
function o(e, t) { | |
var n = i.extend({}, t, { | |
type: e | |
}); | |
switch (e) { | |
case "flashThrottle": | |
var r = "resume" !== t.state; | |
this.set("flashThrottle", r), this.set("flashBlocked", r); | |
break; | |
case "flashBlocked": | |
return void this.set("flashBlocked", !0); | |
case "flashUnblocked": | |
return void this.set("flashBlocked", !1); | |
case "volume": | |
return void this.set(e, t[e]); | |
case "mute": | |
return void(this.get("autostartMuted") || this.set(e, t[e])); | |
case a.JWPLAYER_MEDIA_TYPE: | |
return void(this.mediaModel.get("mediaType") !== t.mediaType && (this.mediaModel.set("mediaType", t.mediaType), this.mediaController.trigger(e, n))); | |
case a.JWPLAYER_PLAYER_STATE: | |
return void this.mediaModel.set("state", t.newstate); | |
case a.JWPLAYER_MEDIA_BUFFER: | |
this.set("buffer", t.bufferPercent); | |
case a.JWPLAYER_MEDIA_META: | |
var o = t.duration; | |
i.isNumber(o) && !i.isNaN(o) && (this.mediaModel.set("duration", o), this.set("duration", o)); | |
break; | |
case a.JWPLAYER_MEDIA_BUFFER_FULL: | |
this.mediaModel.get("playAttempt") ? this.playVideo() : this.mediaModel.on("change:playAttempt", function() { | |
this.playVideo() | |
}, this); | |
break; | |
case a.JWPLAYER_MEDIA_TIME: | |
this.mediaModel.set("position", t.position), this.set("position", t.position), i.isNumber(t.duration) && (this.mediaModel.set("duration", t.duration), this.set("duration", t.duration)); | |
break; | |
case a.JWPLAYER_PROVIDER_CHANGED: | |
this.set("provider", d.getName()); | |
break; | |
case a.JWPLAYER_MEDIA_LEVELS: | |
this.setQualityLevel(t.currentQuality, t.levels), this.mediaModel.set("levels", t.levels); | |
break; | |
case a.JWPLAYER_MEDIA_LEVEL_CHANGED: | |
this.setQualityLevel(t.currentQuality, t.levels), this.persistQualityLevel(t.currentQuality, t.levels); | |
break; | |
case a.JWPLAYER_AUDIO_TRACKS: | |
this.setCurrentAudioTrack(t.currentTrack, t.tracks), this.mediaModel.set("audioTracks", t.tracks); | |
break; | |
case a.JWPLAYER_AUDIO_TRACK_CHANGED: | |
this.setCurrentAudioTrack(t.currentTrack, t.tracks); | |
break; | |
case "subtitlesTrackChanged": | |
this.persistVideoSubtitleTrack(t.currentTrack, t.tracks); | |
break; | |
case "visualQuality": | |
var s = i.extend({}, t); | |
this.mediaModel.set("visualQuality", s); | |
break; | |
case "autoplayFailed": | |
this.set("autostartFailed", !0) | |
} | |
this.mediaController.trigger(e, n) | |
} | |
function l() { | |
return !!e.isIOS() && !(e.isIOS(6) || e.isIOS(7) || e.isIOS(8) || e.isIOS(9)) | |
} | |
var c, d, p = this, | |
h = e.noop; | |
this.mediaController = i.extend({}, r), this.mediaModel = new u, n.model(this), this.set("mediaModel", this.mediaModel), this.setup = function(e) { | |
return i.extend(this.attributes, e, { | |
item: 0, | |
state: s.IDLE, | |
flashBlocked: !1, | |
fullscreen: !1, | |
scrubbing: !1, | |
duration: 0, | |
position: 0, | |
buffer: 0 | |
}), this.updateProviders(), this | |
}, this.getConfiguration = function() { | |
return i.omit(this.clone(), ["mediaModel"]) | |
}, this.updateProviders = function() { | |
c = new t(this.getConfiguration()) | |
}, this.setQualityLevel = function(e, t) { | |
e > -1 && t.length > 1 && "youtube" !== d.getName().name && this.mediaModel.set("currentLevel", parseInt(e)) | |
}, this.persistQualityLevel = function(e, t) { | |
var n = t[e] || {}, | |
i = n.label; | |
this.set("qualityLabel", i) | |
}, this.setCurrentAudioTrack = function(e, t) { | |
e > -1 && t.length > 0 && e < t.length && this.mediaModel.set("currentAudioTrack", parseInt(e)) | |
}, this.onMediaContainer = function() { | |
var e = this.get("mediaContainer"); | |
h.setContainer(e) | |
}, this.changeVideoProvider = function(e) { | |
if (this.off("change:mediaContainer", this.onMediaContainer), d && (d.off(null, null, this), d.getContainer() && d.remove(), delete d.instreamMode), !e) return d = h = e, void this.set("provider", void 0); | |
h = new e(p.get("id"), p.getConfiguration()); | |
var t = this.get("mediaContainer"); | |
t ? h.setContainer(t) : this.once("change:mediaContainer", this.onMediaContainer), this.set("provider", h.getName()), h.getName().name.indexOf("flash") === -1 && (this.set("flashThrottle", void 0), this.set("flashBlocked", !1)), d = h, d.volume(p.get("volume")), d.mute(this.autoStartOnMobile() || p.get("mute")), d.on("all", o, this), this.get("instreamMode") === !0 && (d.instreamMode = !0), this.set("renderCaptionsNatively", d.renderNatively) | |
}, this.destroy = function() { | |
this.off(), d && (d.off(null, null, this), d.destroy()) | |
}, this.getVideo = function() { | |
return d | |
}, this.setFullscreen = function(e) { | |
e = !!e, e !== p.get("fullscreen") && p.set("fullscreen", e) | |
}, this.chooseProvider = function(e) { | |
return c.choose(e).provider | |
}, this.setItemIndex = function(e) { | |
var t = this.get("playlist"); | |
e = parseInt(e, 10) || 0, e = (e + t.length) % t.length, this.set("item", e), this.set("playlistItem", t[e]), this.setActiveItem(t[e]) | |
}, this.setActiveItem = function(t) { | |
this.mediaModel.off(), this.mediaModel = new u, this.set("mediaModel", this.mediaModel), this.set("position", t.starttime || 0), this.set("minDvrWindow", t.minDvrWindow), this.set("duration", t.duration && e.seconds(t.duration) || 0), this.setProvider(t) | |
}, this.setProvider = function(e) { | |
var t = e && e.sources && e.sources[0]; | |
if (void 0 !== t) { | |
var n = this.chooseProvider(t); | |
n && h instanceof n || p.changeVideoProvider(n), h && (h.init && h.init(e), this.trigger("itemReady", e)) | |
} | |
}, this.getProviders = function() { | |
return c | |
}, this.resetProvider = function() { | |
h = null | |
}, this.setVolume = function(e) { | |
e = Math.round(e), this.set("volume", e), d && d.volume(e); | |
var t = 0 === e; | |
t !== this.getMute() && this.setMute(t) | |
}, this.getMute = function() { | |
return this.get("autostartMuted") || this.get("mute") | |
}, this.setMute = function(t) { | |
if (e.exists(t) || (t = !this.getMute()), this.set("mute", t), d && d.mute(t), !t) { | |
var n = Math.max(10, this.get("volume")); | |
this.set("autostartMuted", !1), this.setVolume(n) | |
} | |
}, this.loadVideo = function(t) { | |
if (!t) { | |
var n = this.get("item"); | |
t = this.get("playlist")[n] | |
} | |
this.set("position", t.starttime || 0), this.set("duration", t.duration && e.seconds(t.duration) || 0), this.mediaModel.set("playAttempt", !0), this.mediaController.trigger(a.JWPLAYER_MEDIA_PLAY_ATTEMPT, { | |
playReason: this.get("playReason") | |
}), d.load(t) | |
}, this.stopVideo = function() { | |
d && d.stop() | |
}, this.playVideo = function() { | |
d.play() | |
}, this.persistCaptionsTrack = function() { | |
var e = this.get("captionsTrack"); | |
e ? this.set("captionLabel", e.name) : this.set("captionLabel", "Off") | |
}, this.setVideoSubtitleTrack = function(e, t) { | |
this.set("captionsIndex", e), e && t && e <= t.length && t[e - 1].data && this.set("captionsTrack", t[e - 1]), d && d.setSubtitlesTrack && d.setSubtitlesTrack(e) | |
}, this.persistVideoSubtitleTrack = function(e, t) { | |
this.setVideoSubtitleTrack(e, t), this.persistCaptionsTrack() | |
}, this.setNextUp = function(e) { | |
this.set("nextUp", e) | |
}, this.autoStartOnMobile = function() { | |
return this.get("autostart") && !this.get("sdkplatform") && (l() && e.isSafari() || e.isAndroid() && e.isChrome()) && (!this.get("advertising") || this.get("advertising").autoplayadsmuted) | |
} | |
}, | |
u = l.MediaModel = function() { | |
this.set("state", s.IDLE) | |
}; | |
return i.extend(l.prototype, o), i.extend(u.prototype, o), l | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(8)], r = function(e) { | |
var t = {}, | |
n = t.pluginPathType = { | |
ABSOLUTE: 0, | |
RELATIVE: 1, | |
CDN: 2 | |
}; | |
return t.getPluginPathType = function(t) { | |
if ("string" == typeof t) { | |
t = t.split("?")[0]; | |
var i = t.indexOf("://"); | |
if (i > 0) return n.ABSOLUTE; | |
var r = t.indexOf("/"), | |
o = e.extension(t); | |
return !(i < 0 && r < 0) || o && isNaN(o) ? n.RELATIVE : n.CDN | |
} | |
}, t.getPluginName = function(e) { | |
return e.replace(/^(.*\/)?([^-]*)-?.*\.(swf|js)$/, "$2") | |
}, t.getPluginVersion = function(e) { | |
return e.replace(/[^-]*-?([^\.]*).*$/, "$1") | |
}, t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
function t(e) { | |
return function() { | |
return i(e) | |
} | |
} | |
var n = {}, | |
i = e.memoize(function(e) { | |
var t = navigator.userAgent.toLowerCase(); | |
return null !== t.match(e) | |
}), | |
r = n.isInt = function(e) { | |
return parseFloat(e) % 1 === 0 | |
}; | |
n.isFlashSupported = function() { | |
var e = n.flashVersion(); | |
return e && e >= 11.2 | |
}, n.isFF = t(/gecko\//i), n.isIPod = t(/iP(hone|od)/i), n.isIPad = t(/iPad/i), n.isSafari602 = t(/Macintosh.*Mac OS X 10_8.*6\.0\.\d* Safari/i), n.isOSX = t(/Mac OS X/i); | |
var o = n.isEdge = function(e) { | |
return i(e ? new RegExp("\\sedge\\/" + e, "i") : /\sEdge\/\d+/i) | |
}, | |
a = n.isIETrident = t(/trident\/.+rv:\s*11/i), | |
s = n.isMSIE = function(e) { | |
return e ? (e = parseFloat(e).toFixed(1), i(new RegExp("msie\\s*" + e, "i"))) : i(/msie/i) | |
}; | |
n.isChrome = function() { | |
return i(/\s(?:Chrome|CriOS)\//i) && !n.isEdge() | |
}, n.isIE = function(e) { | |
return e ? (e = parseFloat(e).toFixed(1), e >= 12 ? o(e) : e >= 11 ? a() : s(e)) : o() || a() || s() | |
}, n.isSafari = function() { | |
return i(/safari/i) && !i(/chrome/i) && !i(/crios/i) && !i(/chromium/i) && !i(/android/i) | |
}; | |
var l = n.isIOS = function(e) { | |
return i(e ? new RegExp("iP(hone|ad|od).+\\s(OS\\s" + e + "|.*\\sVersion/" + e + ")", "i") : /iP(hone|ad|od)/i) | |
}; | |
n.isAndroidNative = function(e) { | |
return u(e, !0) | |
}; | |
var u = n.isAndroid = function(e, t) { | |
return !(t && i(/chrome\/[123456789]/i) && !i(/chrome\/18/)) && (e ? (r(e) && !/\./.test(e) && (e = "" + e + "."), i(new RegExp("Android\\s*" + e, "i"))) : i(/Android/i)) | |
}; | |
return n.isMobile = function() { | |
return l() || u() | |
}, n.isIframe = function() { | |
return window.frameElement && "IFRAME" === window.frameElement.nodeName | |
}, n.flashVersion = function() { | |
if (n.isAndroid()) return 0; | |
var e, t = navigator.plugins; | |
if (t && (e = t["Shockwave Flash"], e && e.description)) return parseFloat(e.description.replace(/\D+(\d+\.?\d*).*/, "$1")); | |
if ("undefined" != typeof window.ActiveXObject) { | |
try { | |
if (e = new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash")) return parseFloat(e.GetVariable("$version").split(" ")[1].replace(/\s*,\s*/, ".")) | |
} catch (i) { | |
return 0 | |
} | |
return e | |
} | |
return 0 | |
}, n | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
var e = window.chrome, | |
t = {}; | |
return t.NS = "urn:x-cast:com.longtailvideo.jwplayer", t.debug = !1, t.availability = null, t.available = function(n) { | |
n = n || t.availability; | |
var i = "available"; | |
return e && e.cast && e.cast.ReceiverAvailability && (i = e.cast.ReceiverAvailability.AVAILABLE), n === i | |
}, t.log = function() { | |
if (t.debug) { | |
var e = Array.prototype.slice.call(arguments, 0); | |
console.log.apply(console, e) | |
} | |
}, t.error = function() { | |
var e = Array.prototype.slice.call(arguments, 0); | |
console.error.apply(console, e) | |
}, t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(5)], r = function(e) { | |
function t(t) { | |
return t === e.COMPLETE || t === e.ERROR ? e.IDLE : t | |
} | |
return function(e, n, i) { | |
if (n = t(n), i = t(i), n !== i) { | |
var r = n.replace(/(?:ing|d)$/, ""), | |
o = { | |
type: r, | |
newstate: n, | |
oldstate: i, | |
reason: e.mediaModel.get("state") | |
}; | |
"play" === r ? o.playReason = e.get("playReason") : "pause" === r && (o.pauseReason = e.get("pauseReason")), this.trigger(r, o) | |
} | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(8)], r = function(e, t) { | |
function n(e) { | |
var t = {}, | |
n = e.split("\r\n"); | |
1 === n.length && (n = e.split("\n")); | |
var r = 1; | |
if (n[0].indexOf(" --> ") > 0 && (r = 0), n.length > r + 1 && n[r + 1]) { | |
var o = n[r], | |
a = o.indexOf(" --> "); | |
a > 0 && (t.begin = i(o.substr(0, a)), t.end = i(o.substr(a + 5)), t.text = n.slice(r + 1).join("\r\n")) | |
} | |
return t | |
} | |
var i = e.seconds; | |
return function(e) { | |
var i = []; | |
e = t.trim(e); | |
var r = e.split("\r\n\r\n"); | |
1 === r.length && (r = e.split("\n\n")); | |
for (var o = 0; o < r.length; o++) | |
if ("WEBVTT" !== r[o]) { | |
var a = n(r[o]); | |
a.text && i.push(a) | |
} | |
return i | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(51), n(130)], r = function(e, t, n) { | |
var i = { | |
sources: [], | |
tracks: [], | |
minDvrWindow: 120 | |
}; | |
return function(r) { | |
r = r || {}, e.isArray(r.tracks) || delete r.tracks; | |
var o = e.extend({}, i, r); | |
e.isObject(o.sources) && !e.isArray(o.sources) && (o.sources = [t(o.sources)]), e.isArray(o.sources) && 0 !== o.sources.length || (r.levels ? o.sources = r.levels : o.sources = [t(r)]); | |
for (var a = 0; a < o.sources.length; a++) { | |
var s = o.sources[a]; | |
if (s) { | |
var l = s["default"]; | |
l ? s["default"] = "true" === l.toString() : s["default"] = !1, o.sources[a].label || (o.sources[a].label = a.toString()), o.sources[a] = t(o.sources[a]) | |
} | |
} | |
return o.sources = e.compact(o.sources), e.isArray(o.tracks) || (o.tracks = []), e.isArray(o.captions) && (o.tracks = o.tracks.concat(o.captions), delete o.captions), o.tracks = e.compact(e.map(o.tracks, n)), o | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(8), n(1), n(138)], r = function(e, t, n) { | |
var i = {}; | |
i.createElement = function(e) { | |
var t = document.createElement("div"); | |
return t.innerHTML = e, t.firstChild | |
}, i.styleDimension = function(e) { | |
return e + (e.toString().indexOf("%") > 0 ? "" : "px") | |
}; | |
var r = function(e) { | |
return t.isString(e.className) ? e.className.split(" ") : [] | |
}, | |
o = function(t, n) { | |
n = e.trim(n), t.className !== n && (t.className = n) | |
}; | |
return i.classList = function(e) { | |
return e.classList ? e.classList : r(e) | |
}, i.hasClass = n.hasClass, i.addClass = function(e, n) { | |
var i = r(e), | |
a = t.isArray(n) ? n : n.split(" "); | |
t.each(a, function(e) { | |
t.contains(i, e) || i.push(e) | |
}), o(e, i.join(" ")) | |
}, i.removeClass = function(e, n) { | |
var i = r(e), | |
a = t.isArray(n) ? n : n.split(" "); | |
o(e, t.difference(i, a).join(" ")) | |
}, i.replaceClass = function(e, t, n) { | |
var i = e.className || ""; | |
t.test(i) ? i = i.replace(t, n) : n && (i += " " + n), o(e, i) | |
}, i.toggleClass = function(e, n, r) { | |
var o = i.hasClass(e, n); | |
r = t.isBoolean(r) ? r : !o, r !== o && (r ? i.addClass(e, n) : i.removeClass(e, n)) | |
}, i.emptyElement = function(e) { | |
for (; e.firstChild;) e.removeChild(e.firstChild) | |
}, i.addStyleSheet = function(e) { | |
var t = document.createElement("link"); | |
t.rel = "stylesheet", t.href = e, document.getElementsByTagName("head")[0].appendChild(t) | |
}, i.empty = function(e) { | |
if (e) | |
for (; e.childElementCount > 0;) e.removeChild(e.children[0]) | |
}, i.bounds = function(e) { | |
var t = { | |
left: 0, | |
right: 0, | |
width: 0, | |
height: 0, | |
top: 0, | |
bottom: 0 | |
}; | |
if (!e || !document.body.contains(e)) return t; | |
var n = e.getBoundingClientRect(), | |
i = window.pageYOffset, | |
r = window.pageXOffset; | |
return n.width || n.height || n.left || n.top ? (t.left = n.left + r, t.right = n.right + r, t.top = n.top + i, t.bottom = n.bottom + i, t.width = n.right - n.left, t.height = n.bottom - n.top, t) : t | |
}, i | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(34)], r = function(e, t) { | |
function n(e) { | |
return /^(?:(?:https?|file)\:)?\/\//.test(e) | |
} | |
function i(t) { | |
return e.some(t, function(e) { | |
return "parsererror" === e.nodeName | |
}) | |
} | |
var r = {}; | |
return r.getAbsolutePath = function(e, i) { | |
if (t.exists(i) || (i = document.location.href), t.exists(e)) { | |
if (n(e)) return e; | |
var r, o = i.substring(0, i.indexOf("://") + 3), | |
a = i.substring(o.length, i.indexOf("/", o.length + 1)); | |
if (0 === e.indexOf("/")) r = e.split("/"); | |
else { | |
var s = i.split("?")[0]; | |
s = s.substring(o.length + a.length + 1, s.lastIndexOf("/")), r = s.split("/").concat(e.split("/")) | |
} | |
for (var l = [], u = 0; u < r.length; u++) r[u] && t.exists(r[u]) && "." !== r[u] && (".." === r[u] ? l.pop() : l.push(r[u])); | |
return o + a + "/" + l.join("/") | |
} | |
}, r.getScriptPath = e.memoize(function(e) { | |
for (var t = document.getElementsByTagName("script"), n = 0; n < t.length; n++) { | |
var i = t[n].src; | |
if (i && i.indexOf(e) >= 0) return i.substr(0, i.indexOf(e)) | |
} | |
return "" | |
}), r.parseXML = function(e) { | |
var t = null; | |
try { | |
"DOMParser" in window ? (t = (new window.DOMParser).parseFromString(e, "text/xml"), (i(t.childNodes) || t.childNodes && i(t.childNodes[0].childNodes)) && (t = null)) : (t = new window.ActiveXObject("Microsoft.XMLDOM"), t.async = "false", t.loadXML(e)) | |
} catch (n) {} | |
return t | |
}, r.serialize = function(e) { | |
if (void 0 === e) return null; | |
if ("string" == typeof e && e.length < 6) { | |
var t = e.toLowerCase(); | |
if ("true" === t) return !0; | |
if ("false" === t) return !1; | |
if (!isNaN(Number(e)) && !isNaN(parseFloat(e))) return Number(e) | |
} | |
return e | |
}, r.parseDimension = function(e) { | |
return "string" == typeof e ? "" === e ? 0 : e.lastIndexOf("%") > -1 ? e : parseInt(e.replace("px", ""), 10) : e | |
}, r.timeFormat = function(t, n) { | |
if (t <= 0 && !n || e.isNaN(parseInt(t))) return "00:00"; | |
var i = t < 0 ? "-" : ""; | |
t = Math.abs(t); | |
var r = Math.floor(t / 3600), | |
o = Math.floor((t - 3600 * r) / 60), | |
a = Math.floor(t % 60); | |
return i + (r ? r + ":" : "") + (o < 10 ? "0" : "") + o + ":" + (a < 10 ? "0" : "") + a | |
}, r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
var t = {}; | |
return t.exists = function(e) { | |
switch (typeof e) { | |
case "string": | |
return e.length > 0; | |
case "object": | |
return null !== e; | |
case "undefined": | |
return !1 | |
} | |
return !0 | |
}, t.isHTTPS = function() { | |
return 0 === window.location.href.indexOf("https") | |
}, t.isRtmp = function(e, t) { | |
return 0 === e.indexOf("rtmp") || "rtmp" === t | |
}, t.isYouTube = function(e, t) { | |
return "youtube" === t || /^(http|\/\/).*(youtube\.com|youtu\.be)\/.+/.test(e) | |
}, t.youTubeID = function(e) { | |
var t = /v[=\/]([^?&]*)|youtu\.be\/([^?]*)|^([\w-]*)$/i.exec(e); | |
return t ? t.slice(1).join("").replace("?", "") : "" | |
}, t.typeOf = function(t) { | |
if (null === t) return "null"; | |
var n = typeof t; | |
return "object" === n && e.isArray(t) ? "array" : n | |
}, t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(62), n(7), n(94), n(2)], r = function(e, t, n, i) { | |
var r = function(e) { | |
var t = i.bounds(e), | |
n = window.pageXOffset; | |
return n && i.isAndroid() && document.body.parentElement.getBoundingClientRect().left >= 0 && (t.left -= n, t.right -= n), t | |
}, | |
o = e.extend({ | |
constructor: function(e, t) { | |
this.className = e + " jw-background-color jw-reset", this.orientation = t, 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 e = { | |
"default": this["default"], | |
className: this.className, | |
orientation: "jw-slider-" + this.orientation | |
}; | |
this.el = i.createElement(n(e)), 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 t(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 = r(this.elementRail) | |
}, | |
dragEnd: function(e) { | |
this.dragMove(e), this.trigger("dragEnd") | |
}, | |
dragMove: function(e) { | |
var t, n, o = this.railBounds = this.railBounds ? this.railBounds : r(this.elementRail); | |
"horizontal" === this.orientation ? (t = e.pageX, n = t < o.left ? 0 : t > o.right ? 100 : 100 * i.between((t - o.left) / o.width, 0, 1)) : (t = e.pageY, n = t >= o.bottom ? 0 : t <= o.top ? 100 : 100 * i.between((o.height - (t - o.top)) / o.height, 0, 1)); | |
var a = this.limit(n); | |
return this.render(a), this.update(a), !1 | |
}, | |
tap: function(e) { | |
this.railBounds = r(this.elementRail), this.dragMove(e) | |
}, | |
limit: function(e) { | |
return e | |
}, | |
update: function(e) { | |
this.trigger("update", { | |
percentage: e | |
}) | |
}, | |
render: function(e) { | |
e = Math.max(0, Math.min(e, 100)), "horizontal" === this.orientation ? (this.elementThumb.style.left = e + "%", this.elementProgress.style.width = e + "%") : (this.elementThumb.style.bottom = e + "%", this.elementProgress.style.height = e + "%") | |
}, | |
updateBuffer: function(e) { | |
this.elementBuffer.style.width = e + "%" | |
}, | |
element: function() { | |
return this.el | |
} | |
}); | |
return o | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(62), n(2)], r = function(e, t) { | |
var n = e.extend({ | |
constructor: function(e, t, n) { | |
this.el = document.createElement("div"), this.el.className = "jw-icon jw-icon-tooltip " + e + " jw-button-color jw-reset jw-hidden", t && (this.el.setAttribute("tabindex", "0"), this.el.setAttribute("role", "button"), this.el.setAttribute("aria-label", t)), n === !0 ? this.el.setAttribute("aria-hidden", "false") : this.el.setAttribute("aria-hidden", "true"), 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(e) { | |
this.content && this.removeContent(), this.content = e, this.container.appendChild(e) | |
}, | |
removeContent: function() { | |
this.content && (this.container.removeChild(this.content), this.content = null) | |
}, | |
hasContent: function() { | |
return !!this.content | |
}, | |
element: function() { | |
return this.el | |
}, | |
openTooltip: function(e) { | |
this.trigger("open-" + this.componentType, e, { | |
isOpen: !0 | |
}), this.isOpen = !0, t.toggleClass(this.el, this.openClass, this.isOpen) | |
}, | |
closeTooltip: function(e) { | |
this.trigger("close-" + this.componentType, e, { | |
isOpen: !1 | |
}), this.isOpen = !1, t.toggleClass(this.el, this.openClass, this.isOpen) | |
}, | |
toggleOpenState: function(e) { | |
this.isOpen ? this.closeTooltip(e) : this.openTooltip(e) | |
} | |
}); | |
return n | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(16)], r = function(e, t) { | |
var n, i = [{ | |
configName: "clearkey", | |
keyName: "org.w3.clearkey" | |
}, { | |
configName: "widevine", | |
keyName: "com.widevine.alpha" | |
}, { | |
configName: "playready", | |
keyName: "com.microsoft.playready" | |
}], | |
r = [], | |
o = {}, | |
a = function(t) { | |
var n = t.get("playlist"); | |
return !!t.get("drm") || e.some(n, function(t) { | |
return !!t.drm || e.some(t.sources, function(e) { | |
return !!e.drm | |
}) | |
}) | |
}, | |
s = function(e) { | |
return new Promise(function(t, n) { | |
var i; | |
try { | |
i = new window.MSMediaKeys(e) | |
} catch (r) {} | |
i ? t() : n() | |
}) | |
}, | |
l = function(t) { | |
var a = s; | |
return navigator.requestMediaKeySystemAccess && (a = navigator.requestMediaKeySystemAccess.bind(navigator)), n ? n.then(t) : (e.forEach(i, function(e) { | |
var t = a(e.keyName, [{}]).then(function() { | |
o[e.configName] = !0 | |
}, function() { | |
o[e.configName] = !1 | |
}); | |
r.push(t) | |
}), n = Promise.all(r).then(t)) | |
}, | |
u = function() { | |
return !!navigator.requestMediaKeySystemAccess && !!MediaKeySystemAccess.prototype.getConfiguration || !!window.MSMediaKeys | |
}, | |
c = function(e) { | |
return o[e] | |
}, | |
d = function(t) { | |
n || console.error('DRM only supported with "drm" block in initial setup.', t); | |
var i = e.keys(t); | |
return e.some(i, function(e) { | |
return c(e) | |
}) | |
}; | |
return { | |
containsDrm: a, | |
probe: function(e, n) { | |
u() && t(n)("drm") ? l(e) : e() | |
}, | |
anySupported: d, | |
isSupported: c | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(27), n(16), n(1), n(135), n(37)], r = function(e, t, n, i, r) { | |
function o() { | |
return !!window.MediaSource && !!window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported('video/mp4;codecs="avc1.4d400d,mp4a.40.2"') | |
} | |
function a(i, o) { | |
if (e.isSafari()) return !1; | |
var a = t(o); | |
if (!a("dash")) return !1; | |
if (i.drm && !r.anySupported(i.drm)) return !1; | |
var s = window.MediaSource; | |
if (!window.HTMLVideoElement || !s) return !1; | |
var l = !0; | |
return i.mediaTypes && (l = n.all(i.mediaTypes, function(e) { | |
return s.isTypeSupported(e) | |
})), l && ("dash" === i.type || "mpd" === i.type || (i.file || "").indexOf("mpd-time-csf") > -1) | |
} | |
var s = n.find(i, n.matches({ | |
name: "flash" | |
})), | |
l = s.supports; | |
s.supports = function(n, i) { | |
if (!e.isFlashSupported() || n.drm) return !1; | |
var r = n && n.type; | |
if ("hls" === r || "m3u8" === r) { | |
var o = t(i); | |
return o("hls") | |
} | |
return l.apply(this, arguments) | |
}; | |
var u = n.find(i, n.matches({ | |
name: "html5" | |
})), | |
c = u.supports; | |
return u.supports = function(e, n) { | |
var i = c.apply(this, arguments); | |
if (i && e.drm && "hls" === e.type) { | |
var r = t(n), | |
o = r("drm"); | |
if (o && e.drm.fairplay) { | |
var a = window.WebKitMediaKeys; | |
return a && a.isTypeSupported && a.isTypeSupported("com.apple.fps.1_0", "video/mp4") | |
} | |
return o | |
} | |
return i | |
}, i.push({ | |
name: "shaka", | |
supports: a | |
}), i.push({ | |
name: "hlsjs", | |
supports: function(n, i) { | |
if ((e.isChrome() || e.isFF()) && o() && !e.isMobile() && !n.drm) { | |
var r = n && n.type, | |
a = n && n.file; | |
if (a.indexOf(".m3u8") > -1 || "hls" === r || "m3u8" === r) { | |
var s = t(i); | |
return s("hls") | |
} | |
} | |
} | |
}), i | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(136), n(1), n(38)], r = function(e, t) { | |
function i(e, n, i) { | |
var r = t.indexOf(e, t.findWhere(e, { | |
name: i | |
})), | |
o = t.indexOf(e, t.findWhere(e, { | |
name: n | |
})), | |
a = e.splice(o, 1)[0]; | |
e.splice(r, 0, a) | |
} | |
var r, o = e.registerProvider, | |
a = e.prototype.reorderProviders; | |
return t.extend(e.loaders, { | |
shaka: function(e) { | |
n.e(2, function(require) { | |
var t = n(72); | |
o(t), e(t) | |
}) | |
}, | |
hlsjs: function(e) { | |
n.e(1, function(require) { | |
var t = n(43); | |
t["default"] && (t = t["default"]), t.setEdition && t.setEdition(r), o(t), e(t) | |
}) | |
} | |
}), t.extend(e.prototype, { | |
reorderProviders: function(e) { | |
var t = a.call(this, e); | |
return "flash" !== e && i(t, "hlsjs", "flash"), t | |
}, | |
providerSupports: function(e, t) { | |
return r = this.config.edition, e.supports(t, r) | |
} | |
}), e | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , , , , function(e, t, n) { | |
"use strict"; | |
function i(e) { | |
return e && e.__esModule ? e : { | |
"default": e | |
} | |
} | |
function r(e, t, n) { | |
this.helpers = e || {}, this.partials = t || {}, this.decorators = n || {}, l.registerDefaultHelpers(this), u.registerDefaultDecorators(this) | |
} | |
t.__esModule = !0, t.HandlebarsEnvironment = r; | |
var o = n(11), | |
a = n(17), | |
s = i(a), | |
l = n(99), | |
u = n(97), | |
c = n(107), | |
d = i(c), | |
p = "4.0.5"; | |
t.VERSION = p; | |
var h = 7; | |
t.COMPILER_REVISION = h; | |
var f = { | |
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" | |
}; | |
t.REVISION_CHANGES = f; | |
var g = "[object Object]"; | |
r.prototype = { | |
constructor: r, | |
logger: d["default"], | |
log: d["default"].log, | |
registerHelper: function(e, t) { | |
if (o.toString.call(e) === g) { | |
if (t) throw new s["default"]("Arg not supported with multiple helpers"); | |
o.extend(this.helpers, e) | |
} else this.helpers[e] = t | |
}, | |
unregisterHelper: function(e) { | |
delete this.helpers[e] | |
}, | |
registerPartial: function(e, t) { | |
if (o.toString.call(e) === g) o.extend(this.partials, e); | |
else { | |
if ("undefined" == typeof t) throw new s["default"]('Attempting to register a partial called "' + e + '" as undefined'); | |
this.partials[e] = t | |
} | |
}, | |
unregisterPartial: function(e) { | |
delete this.partials[e] | |
}, | |
registerDecorator: function(e, t) { | |
if (o.toString.call(e) === g) { | |
if (t) throw new s["default"]("Arg not supported with multiple decorators"); | |
o.extend(this.decorators, e) | |
} else this.decorators[e] = t | |
}, | |
unregisterDecorator: function(e) { | |
delete this.decorators[e] | |
} | |
}; | |
var m = d["default"].log; | |
t.log = m, t.createFrame = o.createFrame, t.logger = d["default"] | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(1)], r = function(e, t) { | |
function i(n) { | |
t.each(n, function(t, i) { | |
n[i] = e.serialize(t) | |
}) | |
} | |
function r(e) { | |
return e.slice && "px" === e.slice(-2) && (e = e.slice(0, -2)), e | |
} | |
function o(t, n) { | |
if (n.toString().indexOf("%") === -1) return 0; | |
if ("string" != typeof t || !e.exists(t)) return 0; | |
if (/^\d*\.?\d+%$/.test(t)) return t; | |
var i = t.indexOf(":"); | |
if (i === -1) return 0; | |
var r = parseFloat(t.substr(0, i)), | |
o = parseFloat(t.substr(i + 1)); | |
return r <= 0 || o <= 0 ? 0 : o / r * 100 + "%" | |
} | |
var a = { | |
autostart: !1, | |
controls: !0, | |
displaytitle: !0, | |
displaydescription: !0, | |
mobilecontrols: !1, | |
repeat: !1, | |
castAvailable: !1, | |
skin: "seven", | |
stretching: "uniform", | |
mute: !1, | |
volume: 90, | |
width: 480, | |
height: 270, | |
localization: { | |
play: "Play", | |
playback: "Start playback", | |
pause: "Pause", | |
volume: "Volume", | |
prev: "Previous", | |
next: "Next", | |
cast: "Chromecast", | |
fullscreen: "Fullscreen", | |
playlist: "Playlist", | |
hd: "Quality", | |
cc: "Closed captions", | |
audioTracks: "Audio tracks", | |
replay: "Replay", | |
buffer: "Loading", | |
more: "More", | |
liveBroadcast: "Live broadcast", | |
loadingAd: "Loading ad", | |
rewind: "Rewind 10s", | |
nextUp: "Next Up", | |
nextUpClose: "Next Up Close", | |
related: "Related" | |
}, | |
renderCaptionsNatively: !1 | |
}, | |
s = function(s, l) { | |
var u = l && l.getAllItems(), | |
c = t.extend({}, (window.jwplayer || {}).defaults, u, s); | |
i(c), c.localization = t.extend({}, a.localization, c.localization); | |
var d = t.extend({}, a, c); | |
"." === d.base && (d.base = e.getScriptPath("jwplayer.js")), d.base = (d.base || e.loadFrom()).replace(/\/?$/, "/"), n.p = d.base, d.width = r(d.width), d.height = r(d.height); | |
var p = e.getScriptPath("jwplayer.js") || d.base; | |
if (d.flashplayer = d.flashplayer || p + "jwplayer.flash.swf", d.flashloader = d.flashloader || p + "jwplayer.loader.swf", "http:" === window.location.protocol && (d.flashplayer = d.flashplayer.replace("https", "http"), d.flashloader = d.flashloader.replace("https", "http")), d.aspectratio = o(d.aspectratio, d.width), t.isObject(d.skin) && (d.skinUrl = d.skin.url, d.skinColorInactive = d.skin.inactive, d.skinColorActive = d.skin.active, d.skinColorBackground = d.skin.background, d.skin = t.isString(d.skin.name) ? d.skin.name : a.skin), t.isString(d.skin) && d.skin.indexOf(".xml") > 0 && (console.log("JW Player does not support XML skins, please update your config"), d.skin = d.skin.replace(".xml", "")), d.aspectratio || delete d.aspectratio, !d.playlist) { | |
var h = t.pick(d, ["title", "description", "type", "mediaid", "image", "file", "sources", "tracks", "preload"]); | |
d.playlist = [h] | |
} | |
return d | |
}; | |
return s | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i; | |
i = function() { | |
function e(e) { | |
if ("string" != typeof e) return !1; | |
var t = o[e.toLowerCase()]; | |
return !!t && e.toLowerCase() | |
} | |
function t(e) { | |
if ("string" != typeof e) return !1; | |
var t = a[e.toLowerCase()]; | |
return !!t && e.toLowerCase() | |
} | |
function n(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n = arguments[t]; | |
for (var i in n) e[i] = n[i] | |
} | |
return e | |
} | |
function i(i, o, a) { | |
var s = this, | |
l = /MSIE\s8\.0/.test(navigator.userAgent), | |
u = {}; | |
l ? s = document.createElement("custom") : u.enumerable = !0, s.hasBeenReset = !1; | |
var c = "", | |
d = !1, | |
p = i, | |
h = o, | |
f = a, | |
g = null, | |
m = "", | |
v = !0, | |
w = "auto", | |
y = "start", | |
j = 50, | |
b = "middle", | |
E = 50, | |
x = "middle"; | |
if (Object.defineProperty(s, "id", n({}, u, { | |
get: function() { | |
return c | |
}, | |
set: function(e) { | |
c = "" + e | |
} | |
})), Object.defineProperty(s, "pauseOnExit", n({}, u, { | |
get: function() { | |
return d | |
}, | |
set: function(e) { | |
d = !!e | |
} | |
})), Object.defineProperty(s, "startTime", n({}, u, { | |
get: function() { | |
return p | |
}, | |
set: function(e) { | |
if ("number" != typeof e) throw new TypeError("Start time must be set to a number."); | |
p = e, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "endTime", n({}, u, { | |
get: function() { | |
return h | |
}, | |
set: function(e) { | |
if ("number" != typeof e) throw new TypeError("End time must be set to a number."); | |
h = e, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "text", n({}, u, { | |
get: function() { | |
return f | |
}, | |
set: function(e) { | |
f = "" + e, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "region", n({}, u, { | |
get: function() { | |
return g | |
}, | |
set: function(e) { | |
g = e, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "vertical", n({}, u, { | |
get: function() { | |
return m | |
}, | |
set: function(t) { | |
var n = e(t); | |
if (n === !1) throw new SyntaxError("An invalid or illegal string was specified."); | |
m = n, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "snapToLines", n({}, u, { | |
get: function() { | |
return v | |
}, | |
set: function(e) { | |
v = !!e, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "line", n({}, u, { | |
get: function() { | |
return w | |
}, | |
set: function(e) { | |
if ("number" != typeof e && e !== r) throw new SyntaxError("An invalid number or illegal string was specified."); | |
w = e, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "lineAlign", n({}, u, { | |
get: function() { | |
return y | |
}, | |
set: function(e) { | |
var n = t(e); | |
if (!n) throw new SyntaxError("An invalid or illegal string was specified."); | |
y = n, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "position", n({}, u, { | |
get: function() { | |
return j | |
}, | |
set: function(e) { | |
if (e < 0 || e > 100) throw new Error("Position must be between 0 and 100."); | |
j = e, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "positionAlign", n({}, u, { | |
get: function() { | |
return b | |
}, | |
set: function(e) { | |
var n = t(e); | |
if (!n) throw new SyntaxError("An invalid or illegal string was specified."); | |
b = n, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "size", n({}, u, { | |
get: function() { | |
return E | |
}, | |
set: function(e) { | |
if (e < 0 || e > 100) throw new Error("Size must be between 0 and 100."); | |
E = e, this.hasBeenReset = !0 | |
} | |
})), Object.defineProperty(s, "align", n({}, u, { | |
get: function() { | |
return x | |
}, | |
set: function(e) { | |
var n = t(e); | |
if (!n) throw new SyntaxError("An invalid or illegal string was specified."); | |
x = n, this.hasBeenReset = !0 | |
} | |
})), s.displayState = void 0, l) return s | |
} | |
if (window.VTTCue) return window.VTTCue; | |
var r = "auto", | |
o = { | |
"": !0, | |
lr: !0, | |
rl: !0 | |
}, | |
a = { | |
start: !0, | |
middle: !0, | |
end: !0, | |
left: !0, | |
right: !0 | |
}; | |
return i.prototype.getCueAsHTML = function() { | |
var e = window.WebVTT; | |
return e.convertCueToDOMTree(window, this.text) | |
}, i | |
}.call(t, n, t, e), !(void 0 !== i && (e.exports = i)) | |
}, , function(e, t, n) { | |
var i, r; | |
i = [n(8), n(20), n(128), n(129), n(31)], r = function(e, t, n, i, r) { | |
function o(t) { | |
for (var o = {}, s = 0; s < t.childNodes.length; s++) { | |
var l = t.childNodes[s], | |
c = u(l); | |
if (c) switch (c.toLowerCase()) { | |
case "enclosure": | |
o.file = e.xmlAttribute(l, "url"); | |
break; | |
case "title": | |
o.title = a(l); | |
break; | |
case "guid": | |
o.mediaid = a(l); | |
break; | |
case "pubdate": | |
o.date = a(l); | |
break; | |
case "description": | |
o.description = a(l); | |
break; | |
case "link": | |
o.link = a(l); | |
break; | |
case "category": | |
o.tags ? o.tags += a(l) : o.tags = a(l) | |
} | |
} | |
return o = i(t, o), o = n(t, o), new r(o) | |
} | |
var a = t.textContent, | |
s = t.getChildNode, | |
l = t.numChildren, | |
u = t.localName, | |
c = {}; | |
return c.parse = function(e) { | |
for (var t = [], n = 0; n < l(e); n++) { | |
var i = s(e, n), | |
r = u(i).toLowerCase(); | |
if ("channel" === r) | |
for (var a = 0; a < l(i); a++) { | |
var c = s(i, a); | |
"item" === u(c).toLowerCase() && t.push(o(c)) | |
} | |
} | |
return t | |
}, c | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(20), n(48), n(2), n(4), n(3), n(1)], r = function(e, t, n, i, r, o) { | |
var a = function() { | |
function a(r) { | |
var a = n.tryCatch(function() { | |
var n, a = r.responseXML ? r.responseXML.childNodes : null, | |
s = ""; | |
if (a) { | |
for (var c = 0; c < a.length && (s = a[c], 8 === s.nodeType); c++); | |
"xml" === e.localName(s) && (s = s.nextSibling), "rss" === e.localName(s) && (n = { | |
playlist: t.parse(s) | |
}) | |
} | |
if (!n) try { | |
var d = JSON.parse(r.responseText); | |
if (o.isArray(d)) n = { | |
playlist: d | |
}; | |
else { | |
if (!o.isArray(d.playlist)) throw null; | |
n = d | |
} | |
} catch (p) { | |
return void l("Not a valid RSS/JSON feed") | |
} | |
u.trigger(i.JWPLAYER_PLAYLIST_LOADED, n) | |
}); | |
a instanceof n.Error && l() | |
} | |
function s(e) { | |
l("Playlist load error: " + e) | |
} | |
function l(e) { | |
u.trigger(i.JWPLAYER_ERROR, { | |
message: e ? e : "Error loading file" | |
}) | |
} | |
var u = o.extend(this, r); | |
this.load = function(e) { | |
n.ajax(e, a, s) | |
}, this.destroy = function() { | |
this.off() | |
} | |
}; | |
return a | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(31), n(51), n(1), n(39)], r = function(e, t, n, i) { | |
function r(e, t) { | |
for (var n = 0; n < e.length; n++) { | |
var i = e[n], | |
r = t.choose(i); | |
if (r) return { | |
type: i.type, | |
provider: r.providerToCheck | |
} | |
} | |
return null | |
} | |
function o(e, t) { | |
return n.isUndefined(e) ? t : e | |
} | |
var a = function(t) { | |
return t = n.isArray(t) ? t : [t], n.compact(n.map(t, e)) | |
}; | |
a.filterPlaylist = function(e, t, i, r, a, u, c) { | |
var d = []; | |
return n.each(e, function(e) { | |
e = n.extend({}, e), e.allSources = s(e.sources, i, e.drm || r, e.preload || a, o(e.withCredentials, c)), e.sources = l(e.allSources, t), e.sources.length && (e.file = e.sources[0].file, (e.preload || a) && (e.preload = e.preload || a), (e.feedid || u) && (e.feedid = e.feedid || u), d.push(e)) | |
}), d | |
}; | |
var s = function(e, i, r, a, s) { | |
return n.compact(n.map(e, function(e) { | |
if (n.isObject(e)) { | |
void 0 !== i && null !== i && (e.androidhls = i), (e.drm || r) && (e.drm = e.drm || r), (e.preload || a) && (e.preload = e.preload || a); | |
var l = o(e.withCredentials, s); | |
return n.isUndefined(l) || (e.withCredentials = l), t(e) | |
} | |
})) | |
}, | |
l = function(e, t) { | |
t && t.choose || (t = new i({ | |
primary: t ? "flash" : null | |
})); | |
var o = r(e, t); | |
if (!o) return []; | |
var a = o.provider, | |
s = o.type; | |
return n.filter(e, function(e) { | |
return e.type === s && t.providerSupports(a, e) | |
}) | |
}; | |
return a | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(8), n(1)], r = function(e, t, n) { | |
var i = { | |
"default": !1 | |
}, | |
r = function(r) { | |
if (r && r.file) { | |
var o = n.extend({}, i, r); | |
o.file = t.trim("" + o.file); | |
var a = /^[^\/]+\/(?:x-)?([^\/]+)$/; | |
if (a.test(o.type) && (o.mimeType = o.type, o.type = o.type.replace(a, "$1")), e.isYouTube(o.file) ? o.type = "youtube" : e.isRtmp(o.file) ? o.type = "rtmp" : o.type || (o.type = t.extension(o.file)), o.type) { | |
switch (o.type) { | |
case "m3u8": | |
case "vnd.apple.mpegurl": | |
o.type = "hls"; | |
break; | |
case "dash+xml": | |
o.type = "dash"; | |
break; | |
case "smil": | |
o.type = "rtmp"; | |
break; | |
case "m4a": | |
o.type = "aac" | |
} | |
return n.each(o, function(e, t) { | |
"" === e && delete o[t] | |
}), o | |
} | |
} | |
}; | |
return r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(26), n(4), n(3), n(15), n(1)], r = function(e, t, n, i, r, o) { | |
var a = { | |
FLASH: 0, | |
JAVASCRIPT: 1, | |
HYBRID: 2 | |
}, | |
s = function(s) { | |
function l() { | |
switch (t.getPluginPathType(s)) { | |
case t.pluginPathType.ABSOLUTE: | |
return s; | |
case t.pluginPathType.RELATIVE: | |
return e.getAbsolutePath(s, window.location.href) | |
} | |
} | |
function u() { | |
o.defer(function() { | |
m = r.loaderstatus.COMPLETE, g.trigger(n.COMPLETE) | |
}) | |
} | |
function c() { | |
m = r.loaderstatus.ERROR, g.trigger(n.ERROR, { | |
url: s | |
}) | |
} | |
var d, p, h, f, g = o.extend(this, i), | |
m = r.loaderstatus.NEW; | |
this.load = function() { | |
if (m === r.loaderstatus.NEW) { | |
if (s.lastIndexOf(".swf") > 0) return d = s, m = r.loaderstatus.COMPLETE, void g.trigger(n.COMPLETE); | |
if (t.getPluginPathType(s) === t.pluginPathType.CDN) return m = r.loaderstatus.COMPLETE, void g.trigger(n.COMPLETE); | |
m = r.loaderstatus.LOADING; | |
var e = new r(l()); | |
e.on(n.COMPLETE, u), e.on(n.ERROR, c), e.load() | |
} | |
}, this.registerPlugin = function(e, t, i, o) { | |
f && (clearTimeout(f), f = void 0), h = t, i && o ? (d = o, p = i) : "string" == typeof i ? d = i : "function" == typeof i ? p = i : i || o || (d = e), m = r.loaderstatus.COMPLETE, g.trigger(n.COMPLETE) | |
}, this.getStatus = function() { | |
return m | |
}, this.getPluginName = function() { | |
return t.getPluginName(s) | |
}, this.getFlashPath = function() { | |
if (d) switch (t.getPluginPathType(d)) { | |
case t.pluginPathType.ABSOLUTE: | |
return d; | |
case t.pluginPathType.RELATIVE: | |
return s.lastIndexOf(".swf") > 0 ? e.getAbsolutePath(d, window.location.href) : e.getAbsolutePath(d, l()) | |
} | |
return null | |
}, this.getJS = function() { | |
return p | |
}, this.getTarget = function() { | |
return h | |
}, this.getPluginmode = function() { | |
return void 0 !== typeof d && void 0 !== typeof p ? a.HYBRID : void 0 !== typeof d ? a.FLASH : void 0 !== typeof p ? a.JAVASCRIPT : void 0 | |
}, this.getNewInstance = function(e, t, n) { | |
return new p(e, t, n) | |
}, this.getURL = function() { | |
return s | |
} | |
}; | |
return s | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , , , , , function(e, t, n) { | |
var i, r; | |
i = [n(27)], r = function(e) { | |
return function(t) { | |
if ("hls" === t.type) { | |
if (t.androidhls === !1 && e.isAndroid()) return !1; | |
var n = e.isAndroidNative; | |
if (n(2) || n(3) || n("4.0")) return !1; | |
if (e.isAndroid() && !e.isFF()) return !0 | |
} | |
return null | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , function(e, t, n) { | |
var i, r; | |
i = [n(1), n(33)], r = function(e, t) { | |
function n(e) { | |
e.onload = null, e.onprogress = null, e.onreadystatechange = null, e.onerror = null, "abort" in e && e.abort() | |
} | |
function i(t, i) { | |
return function(r) { | |
var o = r.currentTarget || i.xhr; | |
if (clearTimeout(i.timeoutId), i.retryWithoutCredentials && i.xhr.withCredentials) { | |
n(o); | |
var a = e.extend({}, i, { | |
xhr: null, | |
withCredentials: !1, | |
retryWithoutCredentials: !1 | |
}); | |
return void d(a) | |
} | |
i.onerror(t, i.url, o) | |
} | |
} | |
function r(e) { | |
return function(t) { | |
var n = t.currentTarget || e.xhr; | |
if (4 === n.readyState) { | |
if (clearTimeout(e.timeoutId), n.status >= 400) { | |
var i; | |
return i = 404 === n.status ? "File not found" : "" + n.status + "(" + n.statusText + ")", e.onerror(i, e.url, n) | |
} | |
if (200 === n.status) return o(e)(t) | |
} | |
} | |
} | |
function o(e) { | |
return function(n) { | |
var i = n.currentTarget || e.xhr; | |
if (clearTimeout(e.timeoutId), e.responseType) { | |
if ("json" === e.responseType) return a(i, e) | |
} else { | |
var r, o = i.responseXML; | |
if (o) try { | |
r = o.firstChild | |
} catch (l) {} | |
if (o && r) return s(i, o, e); | |
if (u && i.responseText && !o && (o = t.parseXML(i.responseText), o && o.firstChild)) return s(i, o, e); | |
if (e.requireValidXML) return void e.onerror("Invalid XML", e.url, i) | |
} | |
e.oncomplete(i) | |
} | |
} | |
function a(t, n) { | |
if (!t.response || e.isString(t.response) && '"' !== t.responseText.substr(1)) try { | |
t = e.extend({}, t, { | |
response: JSON.parse(t.responseText) | |
}) | |
} catch (i) { | |
return void n.onerror("Invalid JSON", n.url, t) | |
} | |
return n.oncomplete(t) | |
} | |
function s(t, n, i) { | |
var r = n.documentElement; | |
return i.requireValidXML && ("parsererror" === r.nodeName || r.getElementsByTagName("parsererror").length) ? void i.onerror("Invalid XML", i.url, t) : (t.responseXML || (t = e.extend({}, t, { | |
responseXML: n | |
})), i.oncomplete(t)) | |
} | |
var l = function() {}, | |
u = !1, | |
c = function(e) { | |
var t = document.createElement("a"), | |
n = document.createElement("a"); | |
t.href = location.href; | |
try { | |
return n.href = e, n.href = n.href, t.protocol + "//" + t.host != n.protocol + "//" + n.host | |
} catch (i) {} | |
return !0 | |
}, | |
d = function(t, a, s, d) { | |
e.isObject(t) && (d = t, t = d.url); | |
var p, h = e.extend({ | |
xhr: null, | |
url: t, | |
withCredentials: !1, | |
retryWithoutCredentials: !1, | |
timeout: 6e4, | |
timeoutId: -1, | |
oncomplete: a || l, | |
onerror: s || l, | |
mimeType: d && !d.responseType ? "text/xml" : "", | |
requireValidXML: !1, | |
responseType: d && d.plainText ? "text" : "" | |
}, d); | |
if ("XDomainRequest" in window && c(t)) p = h.xhr = new window.XDomainRequest, p.onload = o(h), p.ontimeout = p.onprogress = l, u = !0; | |
else { | |
if (!("XMLHttpRequest" in window)) return void h.onerror("", t); | |
p = h.xhr = new window.XMLHttpRequest, p.onreadystatechange = r(h) | |
} | |
var f = i("Error loading file", h); | |
p.onerror = f, "overrideMimeType" in p ? h.mimeType && p.overrideMimeType(h.mimeType) : u = !0; | |
try { | |
t = t.replace(/#.*$/, ""), p.open("GET", t, !0) | |
} catch (g) { | |
return f(g), p | |
} | |
if (h.responseType) try { | |
p.responseType = h.responseType | |
} catch (g) {} | |
h.timeout && (h.timeoutId = setTimeout(function() { | |
n(p), h.onerror("Timeout", t, p) | |
}, h.timeout), p.onabort = function() { | |
clearTimeout(h.timeoutId) | |
}); | |
try { | |
h.withCredentials && "withCredentials" in p && (p.withCredentials = !0), p.send() | |
} catch (g) { | |
f(g) | |
} | |
return p | |
}; | |
return { | |
ajax: d, | |
crossdomain: c | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(3), n(1)], r = function(e, t, n) { | |
function i(e, t, n) { | |
var i = document.createElement("param"); | |
i.setAttribute("name", t), i.setAttribute("value", n), e.appendChild(i) | |
} | |
function r(r, o, l, u) { | |
var c; | |
if (u = u || "opaque", e.isMSIE()) { | |
var d = document.createElement("div"); | |
o.appendChild(d), d.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="' + l + '" name="' + l + '" tabindex="0"><param name="movie" value="' + r + '"><param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always"><param name="wmode" value="' + u + '"><param name="bgcolor" value="' + s + '"><param name="menu" value="false"></object>'; | |
for (var p = o.getElementsByTagName("object"), h = p.length; h--;) p[h].id === l && (c = p[h]) | |
} else c = document.createElement("object"), c.setAttribute("type", "application/x-shockwave-flash"), c.setAttribute("data", r), c.setAttribute("width", "100%"), c.setAttribute("height", "100%"), c.setAttribute("bgcolor", s), c.setAttribute("id", l), c.setAttribute("name", l), i(c, "allowfullscreen", "true"), i(c, "allowscriptaccess", "always"), i(c, "wmode", u), i(c, "menu", "false"), o.appendChild(c, o); | |
return c.className = "jw-swf jw-reset", c.style.display = "block", c.style.position = "absolute", c.style.left = 0, c.style.right = 0, c.style.top = 0, c.style.bottom = 0, e.isIE() && "PointerEvent" in window && (c.style.pointerEvents = "none"), n.extend(c, t), c.queueCommands = !0, c.triggerFlash = function(t) { | |
var i = this; | |
if ("setup" !== t && i.queueCommands || !i.__externalCall) { | |
for (var r = i.__commandQueue, o = r.length; o--;) r[o][0] === t && r.splice(o, 1); | |
return r.push(Array.prototype.slice.call(arguments)), i | |
} | |
var s = Array.prototype.slice.call(arguments, 1), | |
l = e.tryCatch(function() { | |
if (s.length) { | |
for (var e = s.length; e--;) "object" == typeof s[e] && n.each(s[e], a); | |
var r = JSON.stringify(s); | |
i.__externalCall(t, r) | |
} else i.__externalCall(t) | |
}); | |
return l instanceof e.Error && (console.error(t, l), "setup" === t) ? (l.name = "Failed to setup flash", l) : i | |
}, c.__commandQueue = [], c | |
} | |
function o(e) { | |
e && e.parentNode && (e.style.display = "none", e.parentNode.removeChild(e)) | |
} | |
function a(e, t, n) { | |
e instanceof window.HTMLElement && delete n[t] | |
} | |
var s = "#000000"; | |
return { | |
embed: r, | |
remove: o | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(3), n(1)], r = function(e, t) { | |
function n() {} | |
var i = function(e, n) { | |
var i, r = this; | |
i = e && t.has(e, "constructor") ? e.constructor : function() { | |
return r.apply(this, arguments) | |
}, t.extend(i, r, n); | |
var o = function() { | |
this.constructor = i | |
}; | |
return o.prototype = r.prototype, i.prototype = new o, e && t.extend(i.prototype, e), i.__super__ = r.prototype, i | |
}; | |
return n.extend = i, t.extend(n.prototype, e), n | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(22), n(1), n(34), n(33), n(24)], r = function(e, t, n, i, r) { | |
var o = {}; | |
return o.repo = t.memoize(function() { | |
var t = r.split("+")[0], | |
i = e.repo + t + "/"; | |
return n.isHTTPS() ? i.replace(/^http:/, "https:") : i | |
}), o.versionCheck = function(e) { | |
var t = ("0" + e).split(/\W/), | |
n = r.split(/\W/), | |
i = parseFloat(t[0]), | |
o = parseFloat(n[0]); | |
return !(i > o) && !(i === o && parseFloat("0" + t[1]) > parseFloat(n[1])) | |
}, o.loadFrom = function() { | |
return o.repo() | |
}, o | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
var t = function() { | |
var t = {}, | |
n = {}, | |
i = {}, | |
r = {}; | |
return { | |
start: function(n) { | |
t[n] = e.now(), i[n] = i[n] + 1 || 1 | |
}, | |
end: function(i) { | |
if (t[i]) { | |
var r = e.now() - t[i]; | |
n[i] = n[i] + r || r | |
} | |
}, | |
dump: function() { | |
return { | |
counts: i, | |
sums: n, | |
events: r | |
} | |
}, | |
tick: function(t, n) { | |
r[t] = n || e.now() | |
}, | |
between: function(e, t) { | |
return r[t] && r[e] ? r[t] - r[e] : -1 | |
} | |
} | |
}; | |
return t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
return document.createElement("video") | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(7)], r = function(e) { | |
var t = function(t, n, i) { | |
var r = document.createElement("div"); | |
return r.className = "jw-icon jw-icon-inline jw-button-color jw-reset " + t, r.setAttribute("role", "button"), r.setAttribute("tabindex", "0"), i && r.setAttribute("aria-label", i), r.style.display = "none", n && new e(r).on("click tap", function() { | |
n() | |
}), { | |
element: function() { | |
return r | |
}, | |
toggle: function(e) { | |
e ? this.show() : this.hide() | |
}, | |
show: function() { | |
r.style.display = "" | |
}, | |
hide: function() { | |
r.style.display = "none" | |
} | |
} | |
}; | |
return t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , function(e, t, n) { | |
var i; | |
i = function(require, e, t) { | |
function n(e, t) { | |
r(t, o(e)) | |
} | |
function i(e) { | |
var t = c[e]; | |
if (t) { | |
for (var n = Object.keys(t), i = 0; i < n.length; i += 1) | |
for (var r = t[n[i]], o = 0; o < r.parts.length; o += 1) r.parts[o](); | |
delete c[e] | |
} | |
} | |
function r(e, t) { | |
for (var n = 0; n < t.length; n++) { | |
var i = t[n], | |
r = (c[e] || {})[i.id]; | |
if (r) { | |
for (var o = 0; o < r.parts.length; o++) r.parts[o](i.parts[o]); | |
for (; o < i.parts.length; o++) r.parts.push(l(e, i.parts[o])) | |
} else { | |
for (var a = [], o = 0; o < i.parts.length; o++) a.push(l(e, i.parts[o])); | |
c[e] = c[e] || {}, c[e][i.id] = { | |
id: i.id, | |
parts: a | |
} | |
} | |
} | |
} | |
function o(e) { | |
for (var t = [], n = {}, i = 0; i < e.length; i++) { | |
var r = e[i], | |
o = r[0], | |
a = r[1], | |
s = r[2], | |
l = { | |
css: a, | |
media: s | |
}; | |
n[o] ? n[o].parts.push(l) : t.push(n[o] = { | |
id: o, | |
parts: [l] | |
}) | |
} | |
return t | |
} | |
function a(e) { | |
h().appendChild(e) | |
} | |
function s(e) { | |
var t = document.createElement("style"); | |
return t.type = "text/css", t.setAttribute("data-jwplayer-id", e), a(t), t | |
} | |
function l(e, t) { | |
var n, i, r, o = d[e]; | |
o || (o = d[e] = { | |
element: s(e), | |
counter: 0 | |
}); | |
var a = o.counter++; | |
return n = o.element, i = u.bind(null, n, a, !1), r = u.bind(null, n, a, !0), i(t), | |
function(e) { | |
if (e) { | |
if (e.css === t.css && e.media === t.media) return; | |
i(t = e) | |
} else r() | |
} | |
} | |
function u(e, t, n, i) { | |
var r = n ? "" : i.css; | |
if (e.styleSheet) e.styleSheet.cssText = f(t, r); | |
else { | |
var o = document.createTextNode(r), | |
a = e.childNodes; | |
a[t] && e.removeChild(a[t]), a.length ? e.insertBefore(o, a[t]) : e.appendChild(o) | |
} | |
} | |
var c = {}, | |
d = {}, | |
p = function(e) { | |
var t; | |
return function() { | |
return "undefined" == typeof t && (t = e.apply(this, arguments)), t | |
} | |
}, | |
h = p(function() { | |
return document.head || document.getElementsByTagName("head")[0] | |
}); | |
t.exports = { | |
style: n, | |
clear: i | |
}; | |
var f = function() { | |
var e = []; | |
return function(t, n) { | |
return e[t] = n, e.filter(Boolean).join("\n") | |
} | |
}() | |
}.call(t, n, t, e), !(void 0 !== i && (e.exports = i)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(116), n(21), n(1)], r = function(e, t, n) { | |
var i = e.selectPlayer, | |
r = function() { | |
var e = i.apply(this, arguments); | |
return e ? e : { | |
registerPlugin: function(e, n, i) { | |
"jwpsrv" !== e && t.registerPlugin(e, n, i) | |
} | |
} | |
}; | |
return n.extend(e, { | |
selectPlayer: r | |
}) | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , , , function(e, t, n) { | |
var i, r; | |
i = [n(2), n(74), n(16)], r = function(e, t, n) { | |
var i = "invalid", | |
r = "RnXcsftYjWRDA^Uy", | |
o = function(o) { | |
function a(o) { | |
e.exists(o) || (o = ""); | |
try { | |
o = t.decrypt(o, r); | |
var a = o.split("/"); | |
s = a[0], "pro" === s && (s = "premium"); | |
var c = n(s); | |
if (a.length > 2 && c("setup")) { | |
l = a[1]; | |
var d = parseInt(a[2]); | |
d > 0 && (u = new Date, u.setTime(d)) | |
} else s = i | |
} catch (p) { | |
s = i | |
} | |
} | |
var s, l, u; | |
this.edition = function() { | |
return u && u.getTime() < (new Date).getTime() ? i : s | |
}, this.token = function() { | |
return l | |
}, this.expiration = function() { | |
return u | |
}, a(o) | |
}; | |
return o | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
var e = function(e) { | |
return window.atob(e) | |
}, | |
t = function(e) { | |
return unescape(encodeURIComponent(e)) | |
}, | |
n = function(e) { | |
try { | |
return decodeURIComponent(escape(e)) | |
} catch (t) { | |
return e | |
} | |
}, | |
i = function(e) { | |
for (var t = new Array(Math.ceil(e.length / 4)), n = 0; n < t.length; n++) t[n] = e.charCodeAt(4 * n) + (e.charCodeAt(4 * n + 1) << 8) + (e.charCodeAt(4 * n + 2) << 16) + (e.charCodeAt(4 * n + 3) << 24); | |
return t | |
}, | |
r = function(e) { | |
for (var t = new Array(e.length), n = 0; n < e.length; n++) t[n] = String.fromCharCode(255 & e[n], e[n] >>> 8 & 255, e[n] >>> 16 & 255, e[n] >>> 24 & 255); | |
return t.join("") | |
}; | |
return { | |
decrypt: function(o, a) { | |
if (o = String(o), a = String(a), 0 == o.length) return ""; | |
for (var s, l, u = i(e(o)), c = i(t(a).slice(0, 16)), d = u.length, p = u[d - 1], h = u[0], f = 2654435769, g = Math.floor(6 + 52 / d), m = g * f; 0 != m;) { | |
l = m >>> 2 & 3; | |
for (var v = d - 1; v >= 0; v--) p = u[v > 0 ? v - 1 : d - 1], s = (p >>> 5 ^ h << 2) + (h >>> 3 ^ p << 4) ^ (m ^ h) + (c[3 & v ^ l] ^ p), h = u[v] -= s; | |
m -= f | |
} | |
var w = r(u); | |
return w = w.replace(/\0+$/, ""), n(w) | |
} | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(159), n(4), n(170)], r = function(e, t, n) { | |
var i = function(i, r) { | |
var o = new e(i, r), | |
a = o.setup; | |
return o.setup = function() { | |
a.call(this), r.on("change:skipButton", this.onSkipButton, this), r.on("change:castActive change:playlistItem", this.showDisplayIconImage, this) | |
}, o.showDisplayIconImage = function(e) { | |
var t = e.get("castActive"), | |
n = e.get("playlistItem"), | |
i = o.controlsContainer().getElementsByClassName("jw-display-icon-container")[0]; | |
t && n && n.image ? (i.style.backgroundImage = 'url("' + n.image + '")', i.style.backgroundSize = "contain") : (i.style.backgroundImage = "", i.style.backgroundSize = "") | |
}, o.onSkipButton = function(e, t) { | |
t ? this.addSkipButton() : this._skipButton && (this._skipButton.destroy(), this._skipButton = null) | |
}, o.addSkipButton = function() { | |
this._skipButton = new n(this.instreamModel), this._skipButton.on(t.JWPLAYER_AD_SKIPPED, function() { | |
this.api.skipAd() | |
}, this), this.controlsContainer().appendChild(this._skipButton.element()) | |
}, o | |
}; | |
return i | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , , , , , function(e, t, n) { | |
t = e.exports = n(82)(), t.push([e.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(" + n(84) + ') format("woff"),url(' + n(83) + ') format("truetype");font-weight:400;font-style:normal}.jw-controlbar .jw-menu .jw-option:before,.jw-icon-display,.jw-icon-inline,.jw-icon-tooltip{font-family:jw-icons;-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;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:"\\E600"}.jw-icon-buffer:before{content:"\\E601"}.jw-icon-cast:before{content:"\\E603"}.jw-icon-cast.jw-off:before{content:"\\E602"}.jw-icon-cc:before{content:"\\E605"}.jw-icon-cue:before,.jw-icon-menu-bullet:before{content:"\\E606"}.jw-icon-error:before{content:"\\E607"}.jw-icon-fullscreen:before{content:"\\E608"}.jw-icon-fullscreen.jw-off:before{content:"\\E613"}.jw-icon-hd:before{content:"\\E60A"}.jw-rightclick-logo:before{content:"\\E60B"}.jw-icon-next:before{content:"\\E60C"}.jw-icon-pause:before{content:"\\E60D"}.jw-icon-play:before{content:"\\E60E"}.jw-icon-replay:before{content:"\\E610"}.jw-icon-volume:before{content:"\\E612"}.jw-icon-volume.jw-off:before{content:"\\E611"}.jw-icon-more:before{content:"\\E614"}.jw-icon-close:before{content:"\\E615"}.jw-icon-rewind:before{content:"\\E900"}.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 .jw-aspect{display:block}.jwplayer .jw-aspect{display:none}.jwplayer.jw-no-focus:focus,.jwplayer .jw-swf{outline:none}.jwplayer.jw-ie:focus{outline:1px dotted #585858}.jwplayer:hover .jw-display-icon-container{background-color:#212121}.jw-controls,.jw-media,.jw-overlays,.jw-preview{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:2.5em}.jw-text{height:1em;font-family:Arial,Helvetica,sans-serif;font-size:.75em;font-style:normal;font-weight:400;color:#fff;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;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:"\\E60E"}.jw-captions,.jw-controls,.jw-overlays,.jw-preview,.jw-title{pointer-events:none}.jw-autostart-mute,.jw-controlbar,.jw-display-icon-container,.jw-display-icon-container .jw-icon,.jw-dock .jw-dock-button,.jw-logo,.jw-media,.jw-nextup-container,.jw-overlays .jw-plugin,.jw-skip{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.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,.jw-preview{position:absolute;width:100%;height:100%}.jw-preview{display:none;opacity:1;visibility:visible;background:#000 no-repeat 50% 50%}.jw-error .jw-preview,.jw-stretch-uniform .jw-preview,.jwplayer .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.75em;width:3.75em;margin:-1.875em auto 0;cursor:pointer}.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:2.5em}.jw-breakpoint-0 .jw-display-icon-container{height:44px;width:44px;margin:-22px auto 0}.jw-breakpoint-0 .jw-display-icon-container .jw-icon{font-size:22px}.jw-breakpoint-1 .jw-display-icon-container{height:55px;width:55px;margin:-27.5px auto 0}.jw-breakpoint-1 .jw-display-icon-container .jw-icon{font-size:35.2px}.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:400;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;bottom:0;height:2.5em;width:100%;padding:0 .5em}.jw-controlbar .jw-hidden{display:none}.jw-background-color{background-color:rgba(33,33,33,.8)}.jw-slider-horizontal{background-color:transparent}.jw-group{display:table-cell}.jw-controlbar-center-group{width:100%;padding:0 .5em}.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-left-group,.jw-controlbar-right-group{white-space:nowrap}.jw-icon-display:hover,.jw-icon-inline:hover,.jw-icon-tooltip:hover,.jw-knob:hover,.jw-option:before:hover{color:#fff}.jw-icon-inline,.jw-icon-tooltip,.jw-slider-horizontal,.jw-text-duration,.jw-text-elapsed{display:inline-block;height:2.5em;position:relative;line-height:2.5em;vertical-align:middle;cursor:pointer;padding:0 .5em}.jw-icon-inline,.jw-icon-tooltip{min-width:1.5625em;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-cast,.jw-icon-inline.jw-icon-volume,.jw-slider-volume.jw-slider-horizontal{display:none}.jw-button-color{color:hsla(0,0%,100%,.6)}.jw-button-color:hover{color:#fff}.jw-button-color:focus{outline:none;color:#fff}.jw-toggle{color:#fff}.jw-toggle.jw-off{color:hsla(0,0%,100%,.6)}.jw-toggle:focus{outline:none;color:#fff}.jw-dock{clear:right;margin:.75em;display:block;opacity:1}.jw-breakpoint-0 .jw-dock{margin:.225em .1125em}.jw-breakpoint-1 .jw-dock{margin:.45em .225em}.jw-dock:after{content:"";clear:both;display:block}.jw-dock-button{cursor:pointer;float:right;height:2.5em;margin:.5em;position:relative;width:2.5em}.jw-breakpoint-0 .jw-dock-button{margin:0 .1125em;height:44px;width:44px}.jw-breakpoint-1 .jw-dock-button{margin:0 .225em;height:44px;width:44px}.jw-dock-button .jw-arrow{display:none;position:absolute;bottom:-.2em;width:.5em;height:.2em;left:50%;margin-left:-.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-arrow,.jw-dock-button:hover .jw-overlay{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,#000,#000 18%,transparent);background:linear-gradient(180deg,#000 0,#000 18%,transparent)}.jw-title-primary,.jw-title-secondary{padding:.75em 1.5em;min-height:2.5em;width:100%;color:#fff;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden}.jw-title-primary{font-weight:700}.jw-title-secondary{margin-top:-.5em}.jw-slider-container{height:1em;width:100%;position:relative;touch-action:none}.jw-buffer,.jw-progress,.jw-rail{position:absolute;cursor:pointer}.jw-progress{background-color:#fff}.jw-rail{background-color:hsla(0,0%,100%,.2)}.jw-buffer{background-color:hsla(0,0%,100%,.3)}.jw-cue,.jw-knob{position:absolute;cursor:pointer}.jw-cue{height:.25em;background-color:rgba(33,33,33,.9);border-radius:25%;width:.5em}.jw-knob{background-color:#fff;width:.5em;height:.5em;border-radius:.25em}.jw-slider-horizontal{height:.25em}.jw-slider-horizontal.jw-slider-volume{width:4em}.jw-slider-horizontal .jw-rail{width:100%}.jw-slider-horizontal .jw-knob{top:-.125em;margin-left:-.25em}.jw-slider-horizontal .jw-buffer,.jw-slider-horizontal .jw-progress,.jw-slider-horizontal .jw-rail{height:.25em}.jw-slider-vertical{padding:1em 1em 0;position:absolute}.jw-slider-vertical .jw-buffer,.jw-slider-vertical .jw-progress,.jw-slider-vertical .jw-rail{bottom:0;height:100%;left:0;right:0;margin:0 auto}.jw-slider-vertical .jw-progress,.jw-slider-vertical .jw-rail,.jw-slider-vertical .jw-slider-container{width:.25em}.jw-slider-vertical .jw-slider-container{height:4em}.jw-slider-vertical .jw-knob{right:0;left:-.125em}.jw-slider-time{width:100%}.jw-tooltip-time{position:absolute}.jw-slider-volume .jw-buffer{display:none}.jw-captions{position:absolute;width:100%;height:inherit;text-align:center;display:none;max-height:81.375%;line-height:1.3em;letter-spacing:normal;word-spacing:normal;text-transform:none;text-indent:0;text-decoration:none;pointer-events:none;overflow:hidden;top:0}.jw-captions.jw-captions-enabled{display:block}.jw-captions-window{display:none;padding:.25em;border-radius:.25em}.jw-captions-text,.jw-captions-window.jw-captions-window-active{display:inline-block}.jw-captions-text{color:#fff;background-color:#000;word-wrap:normal;word-break:normal;white-space:pre-line;font-style:normal;font-weight:400;text-align:center;text-decoration:none;line-height:1.3em;padding:.1em .8em}.jw-text-track-display{font-size:inherit;line-height:1.3em}.jwplayer video::-webkit-media-controls{-webkit-box-pack:start;justify-content:flex-start}.jwplayer video::-webkit-media-text-track-container{max-height:81.375%;line-height:1.3em}.jwplayer .jw-rightclick{display:none;position:absolute;white-space:nowrap}.jwplayer .jw-rightclick.jw-open{display:block}.jwplayer .jw-rightclick ul{list-style:none;font-weight:700;border-radius:.15em;margin:0;border:1px solid #444;padding:0}.jwplayer .jw-rightclick ul li{background-color:#000;border-bottom:1px solid #444;margin:0}.jwplayer .jw-rightclick ul li .jw-rightclick-logo{font-size:2em;color:#ff0147;vertical-align:middle;padding-right:.3em;margin-right:.3em;border-right:1px solid #444}.jwplayer .jw-rightclick ul li a{color:#fff;text-decoration:none;padding:1em;display:block;font-size:.6875em;line-height:1em}.jwplayer .jw-rightclick ul li:last-child{border-bottom:none}.jwplayer .jw-rightclick ul li:hover{background-color:#1a1a1a;cursor:pointer}.jwplayer .jw-rightclick ul .jw-featured{background-color:#252525;vertical-align:middle}.jwplayer .jw-rightclick ul .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-icon-tooltip.jw-open .jw-overlay{opacity:1;visibility:visible}.jw-icon-tooltip.jw-hidden{display:none}.jw-overlay:before{position:absolute;top:0;bottom:0;left:-50%;width:100%;background-color:transparent;content:" "}.jw-slider-time .jw-overlay:before{height:1em;top:auto}.jw-menu,.jw-time-tip,.jw-volume-tip{position:relative;left:-50%;margin:0}.jw-volume-tip{width:100%;height:100%;display:block}.jw-time-tip{text-align:center;font-family:inherit;bottom:1.25em;padding:.5em;border-radius:.25em}.jw-time-tip .jw-text{color:#fff;line-height:1em}.jw-controlbar .jw-overlay{margin:0;position:absolute;bottom:2.5em;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:hsla(0,0%,100%,.6);padding:0 .5em;font-size:.8em}.jw-controlbar .jw-option:before:hover,.jw-controlbar .jw-option:hover{color:#fff}.jw-controlbar .jw-option:before{padding-right:.125em}.jw-controlbar .jw-option.jw-active-option{color:#fff}.jw-skip{cursor:default;position:absolute;float:right;display:inline-block;right:.75em;bottom:3em;padding:.5em}.jw-skip.jw-skippable{cursor:pointer}.jw-skip.jw-hidden{visibility:hidden}.jw-skip .jw-skip-icon{display:none;margin-left:-.75em}.jw-skip .jw-skip-icon:before{content:"\\E60C"}.jw-skip .jw-skip-icon,.jw-skip .jw-text{color:hsla(0,0%,100%,.6);vertical-align:middle;line-height:1.5em;font-size:.7em}.jw-skip.jw-skippable:hover{cursor:pointer}.jw-skip.jw-skippable:hover .jw-skip-icon,.jw-skip.jw-skippable:hover .jw-text{color:#fff}.jw-skip.jw-skippable .jw-skip-icon{display:inline;margin:0}.jwplayer.jw-state-paused.jw-flag-casting .jw-display-icon-container,.jwplayer.jw-state-playing.jw-flag-casting .jw-display-icon-container{display:table}.jwplayer.jw-flag-casting .jw-display-icon-container{border-radius:0;border:1px solid #fff;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:50%}.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-nextup-container{-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;background-color:transparent;bottom:3em;cursor:pointer;max-width:300px;min-width:200px;opacity:0;position:absolute;right:.5em;-webkit-transform:translateY(5px);transform:translateY(5px);-webkit-transition:all .15s ease;transition:all .15s ease;visibility:hidden;width:40%}.jw-nextup-container-visible{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);visibility:visible}.jw-nextup{border-radius:0;overflow:hidden;position:relative}.jw-nextup-header{background:rgba(33,33,33,.8);box-sizing:border-box;color:#fff;font-size:12px;font-weight:700;line-height:normal;padding:8px}.jw-nextup-body{background:rgba(0,0,0,.8);color:#fff;overflow:hidden}.jw-nextup-thumbnail{background-position:50%;background-size:cover;display:none;float:left;height:60px;width:45%}.jw-nextup-thumbnail-visible{display:block}.jw-nextup-title{box-sizing:border-box;float:left;font-size:12px;font-weight:700;line-height:1.3;overflow:hidden;padding:5px 6px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:100%}.jw-nextup-thumbnail-visible+.jw-nextup-title{height:60px;white-space:normal;width:55%}.jw-nextup-thumbnail-visible+.jw-nextup-title:after{background:-webkit-linear-gradient(top,transparent,#000);background:linear-gradient(-180deg,transparent,#000);bottom:0;content:"";height:30px;left:0;position:absolute;width:100%}.jw-nextup-close{font-family:jw-icons;-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;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;border:none;color:hsla(0,0%,100%,.6);font-size:13px;opacity:0;position:absolute;right:5px;top:6px;-webkit-transition:color .15s ease,opacity .15s ease,visibility .15s ease;transition:color .15s ease,opacity .15s ease,visibility .15s ease;visibility:hidden}.jw-nextup-close:before{content:"\\E615"}.jw-nextup-close:active,.jw-nextup-close:hover{color:#fff}.jw-nextup-sticky .jw-nextup-close{opacity:1;visibility:visible}.jw-autostart-mute{min-width:1.75em;text-align:left;position:absolute;bottom:.5em;right:.5em;height:44px;width:44px;text-align:center}.jw-autostart-mute:before{content:"\\E612"}.jw-autostart-mute.jw-off:before{content:"\\E611"}.jw-autostart-mute:before{background-color:rgba(33,33,33,.8);padding:5px 4px 5px 6px}.jw-flag-autostart .jw-controlbar,.jw-flag-autostart .jw-nextup{display:none}.jw-state-idle .jw-preview{display:block}.jw-state-idle .jw-icon-display:before{content:"\\E60E"}.jw-state-idle .jw-captions,.jw-state-idle .jw-controlbar{display:none}.jw-state-idle .jw-title{display:block}.jwplayer.jw-state-playing .jw-display-icon-container{display:none}.jwplayer.jw-state-playing .jw-display-icon-container .jw-icon-display:before,.jwplayer.jw-state-playing .jw-icon-playback:before{content:"\\E60D"}.jwplayer.jw-state-paused .jw-display-icon-container{display:none}.jwplayer.jw-state-paused .jw-display-icon-container .jw-icon-display:before,.jwplayer.jw-state-paused .jw-icon-playback:before{content:"\\E60E"}.jwplayer.jw-state-paused .jw-autostart-mute{display:none}.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:"\\E601"}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.jwplayer.jw-state-buffering .jw-display-icon-container .jw-text{display:none}.jwplayer.jw-state-buffering .jw-icon-playback:before{content:"\\E60D"}.jwplayer.jw-state-complete .jw-preview{display:block}.jwplayer.jw-state-complete .jw-display-icon-container .jw-icon-display:before{content:"\\E610"}.jwplayer.jw-state-complete .jw-display-icon-container .jw-text{display:none}.jwplayer.jw-state-complete .jw-icon-playback:before{content:"\\E60E"}.jwplayer.jw-state-complete .jw-captions{display:none}.jwplayer.jw-state-error .jw-title,body .jw-error .jw-title{display:block}.jwplayer.jw-state-error .jw-title .jw-title-primary,body .jw-error .jw-title .jw-title-primary{white-space:normal}.jwplayer.jw-state-error .jw-preview,body .jw-error .jw-preview{display:block}.jwplayer.jw-state-error .jw-captions,.jwplayer.jw-state-error .jw-controlbar,body .jw-error .jw-captions,body .jw-error .jw-controlbar{display:none}.jwplayer.jw-state-error:hover .jw-display-icon-container,body .jw-error:hover .jw-display-icon-container{cursor:default;color:#fff;background:#000}.jwplayer.jw-state-error .jw-icon-display,body .jw-error .jw-icon-display{cursor:default;font-family:jw-icons;-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;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}.jwplayer.jw-state-error .jw-icon-display:before,body .jw-error .jw-icon-display:before{content:"\\E607"}.jwplayer.jw-state-error .jw-icon-display:hover,body .jw-error .jw-icon-display:hover{color:#fff}body .jw-error{font-size:16px;background-color:#000;color:#fff;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-live .jw-controlbar .jw-slider-time,.jwplayer.jw-flag-live .jw-controlbar .jw-text-duration,.jwplayer.jw-flag-live .jw-controlbar .jw-text-elapsed{display:none}.jwplayer.jw-flag-live .jw-controlbar .jw-text-alt{display:inline-block;height:auto;line-height:2.5em;margin:0 -.5em;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.jwplayer.jw-flag-live.jw-breakpoint-0 .jw-text-alt{max-width:80px}.jwplayer.jw-flag-live.jw-breakpoint-1 .jw-text-alt{max-width:150px}.jwplayer.jw-flag-live.jw-breakpoint-2 .jw-text-alt{max-width:250px}.jwplayer.jw-flag-live.jw-breakpoint-3 .jw-text-alt{max-width:370px}.jwplayer.jw-flag-live.jw-breakpoint-4 .jw-text-alt{max-width:470px}.jwplayer.jw-flag-live.jw-breakpoint-5 .jw-text-alt{max-width:630px}.jwplayer.jw-flag-live.jw-breakpoint-6 .jw-text-alt{max-width:790px}.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-controlbar,.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-dock,.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-logo.jw-hide{display:none}.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-nextup-container,.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-plugin{bottom:.5em}.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-media{cursor:none;-webkit-cursor-visibility:auto-hide}.jwplayer.jw-flag-user-inactive.jw-state-playing .jw-captions{max-height:none}.jwplayer.jw-flag-user-inactive.jw-state-playing video::-webkit-media-text-track-container{max-height:none}.jwplayer.jw-flag-user-inactive.jw-state-buffering .jw-controlbar{display:none}.jwplayer.jw-flag-user-inactive.jw-state-buffering .jw-nextup-container{bottom:.5em}.jwplayer.jw-flag-media-audio .jw-controlbar,.jwplayer.jw-flag-media-audio.jw-flag-user-inactive .jw-controlbar{display:table}.jwplayer.jw-flag-media-audio.jw-flag-user-inactive .jw-nextup-container,.jwplayer.jw-flag-media-audio.jw-flag-user-inactive.jw-state-playing .jw-plugin{bottom:3em}.jwplayer.jw-flag-media-audio.jw-flag-user-inactive.jw-state-playing .jw-captions{max-height:81.375%}.jwplayer.jw-flag-media-audio.jw-flag-user-inactive.jw-state-playing video::-webkit-media-text-track-container{max-height:81.375%}.jwplayer.jw-flag-media-audio.jw-flag-user-inactive.jw-state-playing.jw-flag-touch video::-webkit-media-text-track-container{max-height:70%}.jwplayer.jw-flag-media-audio .jw-autostart-mute{display:none}.jw-flag-media-audio .jw-preview{display:block}.jwplayer.jw-flag-ads .jw-autostart-mute,.jwplayer.jw-flag-ads .jw-captions.jw-captions-enabled,.jwplayer.jw-flag-ads .jw-dock,.jwplayer.jw-flag-ads .jw-logo,.jwplayer.jw-flag-ads .jw-nextup-container,.jwplayer.jw-flag-ads .jw-preview{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-slider-horizontal,.jwplayer.jw-flag-ads .jw-controlbar .jw-text{display:none}.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-fullscreen,.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{display:inline-block}.jwplayer.jw-flag-ads .jw-controlbar .jw-text-alt{display:inline-block;height:auto;line-height:2.5em;margin:0 -.5em;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-inline.jw-icon-volume,.jwplayer.jw-flag-ads .jw-controlbar .jw-slider-volume.jw-slider-horizontal{display:inline-block}.jwplayer.jw-flag-ads .jw-controlbar .jw-icon-tooltip.jw-icon-volume{display:none}.jwplayer.jw-flag-ads.jw-breakpoint-0 .jw-text-alt{max-width:80px}.jwplayer.jw-flag-ads.jw-breakpoint-1 .jw-text-alt{max-width:150px}.jwplayer.jw-flag-ads.jw-breakpoint-2 .jw-text-alt{max-width:250px}.jwplayer.jw-flag-ads.jw-breakpoint-3 .jw-text-alt{max-width:370px}.jwplayer.jw-flag-ads.jw-breakpoint-4 .jw-text-alt{max-width:470px}.jwplayer.jw-flag-ads.jw-breakpoint-5 .jw-text-alt{max-width:630px}.jwplayer.jw-flag-ads.jw-breakpoint-6 .jw-text-alt{max-width:790px}.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.jw-flag-touch .jw-controlbar{display:table}.jwplayer.jw-flag-ads-vpaid .jw-controlbar,.jwplayer.jw-flag-ads-vpaid .jw-skip,.jwplayer.jw-flag-touch.jw-flag-ads-vpaid .jw-controlbar,.jwplayer.jw-flag-touch.jw-flag-ads-vpaid .jw-skip{display:none}.jwplayer.jw-flag-ads-hide-controls .jw-controls{display:none!important}.jwplayer.jw-flag-overlay-open-related .jw-controls,.jwplayer.jw-flag-overlay-open-related .jw-title,.jwplayer.jw-flag-overlay-open-sharing .jw-controls,.jwplayer.jw-flag-overlay-open-sharing .jw-title,.jwplayer.jw-flag-overlay-open .jw-controls-right .jw-logo,.jwplayer.jw-flag-overlay-open .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}.jw-flag-controls-disabled .jw-logo{visibility:visible}.jw-flag-controls-disabled .jw-media{cursor:auto}.jw-flag-controls-disabled.jwplayer .jw-captions{max-height:none}.jw-flag-controls-disabled.jwplayer video::-webkit-media-text-track-container{max-height:none}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-breakpoint-4 .jw-controlbar,.jw-flag-touch.jw-breakpoint-4 .jw-plugin,.jw-flag-touch.jw-breakpoint-4 .jw-skip,.jw-flag-touch.jw-breakpoint-5 .jw-controlbar,.jw-flag-touch.jw-breakpoint-5 .jw-plugin,.jw-flag-touch.jw-breakpoint-5 .jw-skip,.jw-flag-touch.jw-breakpoint-6 .jw-controlbar,.jw-flag-touch.jw-breakpoint-6 .jw-plugin,.jw-flag-touch.jw-breakpoint-6 .jw-skip,.jw-flag-touch.jw-breakpoint-7 .jw-controlbar,.jw-flag-touch.jw-breakpoint-7 .jw-plugin,.jw-flag-touch.jw-breakpoint-7 .jw-skip{font-size:1.5em}.jw-flag-touch.jw-breakpoint-4 .jw-captions,.jw-flag-touch.jw-breakpoint-5 .jw-captions,.jw-flag-touch.jw-breakpoint-6 .jw-captions,.jw-flag-touch.jw-breakpoint-7 .jw-captions{bottom:4.25em}.jw-flag-touch.jw-breakpoint-4 video::-webkit-media-text-track-container,.jw-flag-touch.jw-breakpoint-5 video::-webkit-media-text-track-container,.jw-flag-touch.jw-breakpoint-6 video::-webkit-media-text-track-container,.jw-flag-touch.jw-breakpoint-7 video::-webkit-media-text-track-container{max-height:70%}.jw-flag-touch.jw-breakpoint-4 .jw-nextup-container,.jw-flag-touch.jw-breakpoint-5 .jw-nextup-container,.jw-flag-touch.jw-breakpoint-6 .jw-nextup-container,.jw-flag-touch.jw-breakpoint-7 .jw-nextup-container{bottom:4.25em}.jw-flag-touch .jw-controlbar .jw-icon-volume{display:inline-block}.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}.jwplayer.jw-flag-audio-player{background-color:transparent}.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-display-icon-container,.jwplayer.jw-flag-audio-player .jw-dock,.jwplayer.jw-flag-audio-player .jw-nextup-container,.jwplayer.jw-flag-audio-player .jw-preview,.jwplayer.jw-flag-audio-player .jw-title{display:none}.jwplayer.jw-flag-audio-player .jw-controlbar{vertical-align:middle;display:table;height:100%;left:0;bottom:0;margin:0;width:100%;min-width:100%}.jwplayer.jw-flag-audio-player .jw-controlbar .jw-icon-fullscreen,.jwplayer.jw-flag-audio-player .jw-controlbar .jw-icon-tooltip{display:none}.jwplayer.jw-flag-audio-player .jw-controlbar .jw-icon-inline.jw-icon-volume,.jwplayer.jw-flag-audio-player .jw-controlbar .jw-slider-volume.jw-slider-horizontal{display:inline-block}.jwplayer.jw-flag-audio-player .jw-controlbar .jw-icon-tooltip.jw-icon-volume{display:none}.jwplayer.jw-flag-audio-player.jw-flag-user-inactive .jw-controlbar{display:table}.jwplayer.jw-flag-audio-player .jw-icon-inline{height:auto;line-height:normal}.jwplayer.jw-flag-audio-player .jw-group{vertical-align:middle}.jwplayer.jw-flag-audio-player .jw-controlbar-center-group{padding-bottom:2px}.jw-breakpoint-0 .jw-nextup-container,.jw-breakpoint-0 .jw-text-duration,.jw-breakpoint-0 .jw-text-elapsed,.jw-breakpoint-1 .jw-nextup-container,.jw-breakpoint-1 .jw-text-duration,.jw-breakpoint-1 .jw-text-elapsed{display:none}.jw-skin-seven .jw-color-active,.jw-skin-seven .jw-color-active-hover:hover{color:#fff;stroke:#fff;border-color:#fff}.jw-skin-seven .jw-color-inactive,.jw-skin-seven .jw-color-inactive-hover:hover{color:#cecece;stroke:#cecece;border-color:#cecece}.jw-skin-seven .jw-active-option{background-color:hsla(0,0%,100%,.1)}.jw-skin-seven .jw-display-icon-container{display:table;font-size:20px;border-radius:3.5em}.jw-skin-seven .jw-display-icon-container:hover .jw-icon{color:#fff}.jw-skin-seven .jw-display-icon-container>.jw-icon{color:hsla(0,0%,100%,.9);font-size:1.7em}.jw-skin-seven.jw-state-idle .jw-display-icon-container>.jw-icon{padding-left:4px}.jw-skin-seven .jw-dock-button{border-radius:2.5em}.jw-skin-seven .jw-menu{padding:0}.jw-skin-seven .jw-dock .jw-overlay,.jw-skin-seven .jw-skip{border-radius:.5em}.jw-skin-seven .jw-text{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jw-skin-seven.jw-breakpoint-0 .jw-display-icon-container .jw-icon{font-size:22px}.jw-skin-seven.jw-breakpoint-1 .jw-display-icon-container .jw-icon{font-size:35.2px}', ""]); | |
}, function(e, t) { | |
e.exports = function() { | |
var e = []; | |
return e.toString = function() { | |
for (var e = [], t = 0; t < this.length; t++) { | |
var n = this[t]; | |
n[2] ? e.push("@media " + n[2] + "{" + n[1] + "}") : e.push(n[1]) | |
} | |
return e.join("") | |
}, e.i = function(t, n) { | |
"string" == typeof t && (t = [ | |
[null, t, ""] | |
]); | |
for (var i = {}, r = 0; r < this.length; r++) { | |
var o = this[r][0]; | |
"number" == typeof o && (i[o] = !0) | |
} | |
for (r = 0; r < t.length; r++) { | |
var a = t[r]; | |
"number" == typeof a[0] && i[a[0]] || (n && !a[2] ? a[2] = n : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), e.push(a)) | |
} | |
}, e | |
} | |
}, function(e, t, n) { | |
e.exports = n.p + "jw-icons.ttf" | |
}, function(e, t, n) { | |
e.exports = n.p + "jw-icons.woff" | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
return '<div class="jw-skip jw-background-color jw-hidden jw-reset">\n <span class="jw-text jw-skiptext jw-reset"></span>\n <span class="jw-icon-inline jw-skip-icon jw-reset"></span>\n</div>' | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
var o; | |
return '<div class="jw-display-icon-container jw-background-color jw-reset">\n <div class="jw-icon jw-icon-display jw-button-color jw-reset" role="button" tabindex="0" aria-label="' + e.escapeExpression((o = null != (o = n.ariaLabel || (null != t ? t.ariaLabel : t)) ? o : n.helperMissing, "function" == typeof o ? o.call(null != t ? t : {}, { | |
name: "ariaLabel", | |
hash: {}, | |
data: r | |
}) : o)) + '"></div>\n</div>\n' | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
1: function(e, t, n, i, r) { | |
var o, a, s = null != t ? t : {}; | |
return ' <div class="jw-dock-button jw-background-color jw-reset' + (null != (o = n["if"].call(s, null != t ? t.btnClass : t, { | |
name: "if", | |
hash: {}, | |
fn: e.program(2, r, 0), | |
inverse: e.noop, | |
data: r | |
})) ? o : "") + '" button="' + e.escapeExpression((a = null != (a = n.id || (null != t ? t.id : t)) ? a : n.helperMissing, "function" == typeof a ? a.call(s, { | |
name: "id", | |
hash: {}, | |
data: r | |
}) : a)) + '">\n <div class="jw-icon jw-dock-image jw-reset" ' + (null != (o = n["if"].call(s, null != t ? t.img : t, { | |
name: "if", | |
hash: {}, | |
fn: e.program(4, r, 0), | |
inverse: e.noop, | |
data: r | |
})) ? o : "") + '></div>\n <div class="jw-arrow jw-reset"></div>\n' + (null != (o = n["if"].call(s, null != t ? t.tooltip : t, { | |
name: "if", | |
hash: {}, | |
fn: e.program(6, r, 0), | |
inverse: e.noop, | |
data: r | |
})) ? o : "") + " </div>\n" | |
}, | |
2: function(e, t, n, i, r) { | |
var o; | |
return " " + e.escapeExpression((o = null != (o = n.btnClass || (null != t ? t.btnClass : t)) ? o : n.helperMissing, "function" == typeof o ? o.call(null != t ? t : {}, { | |
name: "btnClass", | |
hash: {}, | |
data: r | |
}) : o)) | |
}, | |
4: function(e, t, n, i, r) { | |
var o; | |
return "style='background-image: url(\"" + e.escapeExpression((o = null != (o = n.img || (null != t ? t.img : t)) ? o : n.helperMissing, "function" == typeof o ? o.call(null != t ? t : {}, { | |
name: "img", | |
hash: {}, | |
data: r | |
}) : o)) + "\")'" | |
}, | |
6: function(e, t, n, i, r) { | |
var o; | |
return ' <div class="jw-overlay jw-background-color jw-reset">\n <span class="jw-text jw-dock-text jw-reset">' + e.escapeExpression((o = null != (o = n.tooltip || (null != t ? t.tooltip : t)) ? o : n.helperMissing, "function" == typeof o ? o.call(null != t ? t : {}, { | |
name: "tooltip", | |
hash: {}, | |
data: r | |
}) : o)) + "</span>\n </div>\n" | |
}, | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
var o; | |
return '<div class="jw-dock jw-reset">\n' + (null != (o = n.each.call(null != t ? t : {}, t, { | |
name: "each", | |
hash: {}, | |
fn: e.program(1, r, 0), | |
inverse: e.noop, | |
data: r | |
})) ? o : "") + "</div>" | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
var o, a = null != t ? t : {}, | |
s = n.helperMissing, | |
l = "function", | |
u = e.escapeExpression; | |
return '<div id="' + u((o = null != (o = n.id || (null != t ? t.id : t)) ? o : s, typeof o === l ? o.call(a, { | |
name: "id", | |
hash: {}, | |
data: r | |
}) : o)) + '"class="jw-skin-' + u((o = null != (o = n.skin || (null != t ? t.skin : t)) ? o : s, typeof o === l ? o.call(a, { | |
name: "skin", | |
hash: {}, | |
data: r | |
}) : o)) + ' jw-error jw-reset">\n <div class="jw-title jw-reset">\n <div class="jw-title-primary jw-reset">' + u((o = null != (o = n.title || (null != t ? t.title : t)) ? o : s, typeof o === l ? o.call(a, { | |
name: "title", | |
hash: {}, | |
data: r | |
}) : o)) + '</div>\n <div class="jw-title-secondary jw-reset">' + u((o = null != (o = n.body || (null != t ? t.body : t)) ? o : s, typeof o === l ? o.call(a, { | |
name: "body", | |
hash: {}, | |
data: r | |
}) : o)) + '</div>\n </div>\n\n <div class="jw-icon-container jw-reset">\n <div class="jw-display-icon-container jw-background-color jw-reset">\n <div class="jw-icon jw-icon-display jw-reset" aria-hidden="true"></div>\n </div>\n </div>\n</div>\n' | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
return '<div class="jw-logo jw-reset"></div>' | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
1: function(e, t, n, i, r) { | |
var o, a = e.escapeExpression; | |
return " <li class='jw-text jw-option jw-item-" + a((o = null != (o = n.index || r && r.index) ? o : n.helperMissing, "function" == typeof o ? o.call(null != t ? t : {}, { | |
name: "index", | |
hash: {}, | |
data: r | |
}) : o)) + " jw-reset'>" + a(e.lambda(null != t ? t.label : t, t)) + "</li>\n" | |
}, | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
var o; | |
return '<ul class="jw-menu jw-background-color jw-reset">\n' + (null != (o = n.each.call(null != t ? t : {}, t, { | |
name: "each", | |
hash: {}, | |
fn: e.program(1, r, 0), | |
inverse: e.noop, | |
data: r | |
})) ? o : "") + "</ul>" | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
var o = e.lambda, | |
a = e.escapeExpression; | |
return '<div class="jw-nextup jw-reset">\n <div class="jw-nextup-tooltip jw-reset">\n <div class="jw-nextup-header jw-reset">\n ' + a(o(null != t ? t.nextUpText : t, t)) + '\n </div>\n <div class="jw-nextup-body jw-background-color jw-reset">\n <div class="jw-nextup-thumbnail jw-reset"></div>\n <div class="jw-nextup-title jw-reset">' + a(o(null != t ? t.title : t, t)) + '</div>\n </div>\n </div>\n <button class="jw-nextup-close" aria-label="' + a(o(null != t ? t.nextUpClose : t, t)) + '"></button>\n</div>\n' | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
var o; | |
return '<div id="' + e.escapeExpression((o = null != (o = n.id || (null != t ? t.id : t)) ? o : n.helperMissing, "function" == typeof o ? o.call(null != t ? t : {}, { | |
name: "id", | |
hash: {}, | |
data: r | |
}) : o)) + '" class="jwplayer jw-reset jw-state-idle" tabindex="0">\n <div class="jw-aspect jw-reset"></div>\n <div class="jw-media jw-reset"></div>\n <div class="jw-preview jw-reset"></div>\n <div class="jw-title jw-reset">\n <div class="jw-title-primary jw-reset"></div>\n <div class="jw-title-secondary jw-reset"></div>\n </div>\n <div class="jw-overlays jw-reset"></div>\n <div class="jw-controls jw-reset"></div>\n</div>' | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
1: function(e, t, n, i, r) { | |
var o, a, s = null != t ? t : {}, | |
l = n.helperMissing, | |
u = "function", | |
c = e.escapeExpression; | |
return ' <li class="jw-reset' + (null != (o = n["if"].call(s, null != t ? t.featured : t, { | |
name: "if", | |
hash: {}, | |
fn: e.program(2, r, 0), | |
inverse: e.noop, | |
data: r | |
})) ? o : "") + '">\n <a href="' + c((a = null != (a = n.link || (null != t ? t.link : t)) ? a : l, typeof a === u ? a.call(s, { | |
name: "link", | |
hash: {}, | |
data: r | |
}) : a)) + '" class="jw-reset" target="_top">\n' + (null != (o = n["if"].call(s, null != t ? t.showLogo : t, { | |
name: "if", | |
hash: {}, | |
fn: e.program(4, r, 0), | |
inverse: e.noop, | |
data: r | |
})) ? o : "") + " " + c((a = null != (a = n.title || (null != t ? t.title : t)) ? a : l, typeof a === u ? a.call(s, { | |
name: "title", | |
hash: {}, | |
data: r | |
}) : a)) + "\n </a>\n </li>\n" | |
}, | |
2: function(e, t, n, i, r) { | |
return " jw-featured" | |
}, | |
4: function(e, t, n, i, r) { | |
return ' <span class="jw-icon jw-rightclick-logo jw-reset"></span>\n' | |
}, | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
var o; | |
return '<div class="jw-rightclick jw-reset">\n <ul class="jw-reset">\n' + (null != (o = n.each.call(null != t ? t : {}, null != t ? t.items : t, { | |
name: "each", | |
hash: {}, | |
fn: e.program(1, r, 0), | |
inverse: e.noop, | |
data: r | |
})) ? o : "") + " </ul>\n</div>" | |
}, | |
useData: !0 | |
}) | |
}, function(e, t, n) { | |
var i = n(9); | |
e.exports = (i["default"] || i).template({ | |
compiler: [7, ">= 4.0.0"], | |
main: function(e, t, n, i, r) { | |
var o, a = null != t ? t : {}, | |
s = n.helperMissing, | |
l = "function", | |
u = e.escapeExpression; | |
return '<div class="' + u((o = null != (o = n.className || (null != t ? t.className : t)) ? o : s, typeof o === l ? o.call(a, { | |
name: "className", | |
hash: {}, | |
data: r | |
}) : o)) + " " + u((o = null != (o = n.orientation || (null != t ? t.orientation : t)) ? o : s, typeof o === l ? o.call(a, { | |
name: "orientation", | |
hash: {}, | |
data: r | |
}) : o)) + ' jw-reset" aria-hidden="true">\n <div class="jw-slider-container jw-reset">\n <div class="jw-rail jw-reset"></div>\n <div class="jw-buffer jw-reset"></div>\n <div class="jw-progress jw-reset"></div>\n <div class="jw-knob jw-reset"></div>\n </div>\n</div>' | |
}, | |
useData: !0 | |
}) | |
}, , function(e, t, n) { | |
"use strict"; | |
function i(e) { | |
return e && e.__esModule ? e : { | |
"default": e | |
} | |
} | |
function r(e) { | |
if (e && e.__esModule) return e; | |
var t = {}; | |
if (null != e) | |
for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); | |
return t["default"] = e, t | |
} | |
function o() { | |
var e = new s.HandlebarsEnvironment; | |
return h.extend(e, s), e.SafeString = u["default"], e.Exception = d["default"], e.Utils = h, e.escapeExpression = h.escapeExpression, e.VM = g, e.template = function(t) { | |
return g.template(t, e) | |
}, e | |
} | |
t.__esModule = !0; | |
var a = n(44), | |
s = r(a), | |
l = n(110), | |
u = i(l), | |
c = n(17), | |
d = i(c), | |
p = n(11), | |
h = r(p), | |
f = n(109), | |
g = r(f), | |
m = n(108), | |
v = i(m), | |
w = o(); | |
w.create = o, v["default"](w), w["default"] = w, t["default"] = w, e.exports = t["default"] | |
}, function(e, t, n) { | |
"use strict"; | |
function i(e) { | |
return e && e.__esModule ? e : { | |
"default": e | |
} | |
} | |
function r(e) { | |
a["default"](e) | |
} | |
t.__esModule = !0, t.registerDefaultDecorators = r; | |
var o = n(98), | |
a = i(o) | |
}, function(e, t, n) { | |
"use strict"; | |
t.__esModule = !0; | |
var i = n(11); | |
t["default"] = function(e) { | |
e.registerDecorator("inline", function(e, t, n, r) { | |
var o = e; | |
return t.partials || (t.partials = {}, o = function(r, o) { | |
var a = n.partials; | |
n.partials = i.extend({}, a, t.partials); | |
var s = e(r, o); | |
return n.partials = a, s | |
}), t.partials[r.args[0]] = r.fn, o | |
}) | |
}, e.exports = t["default"] | |
}, function(e, t, n) { | |
"use strict"; | |
function i(e) { | |
return e && e.__esModule ? e : { | |
"default": e | |
} | |
} | |
function r(e) { | |
a["default"](e), l["default"](e), c["default"](e), p["default"](e), f["default"](e), m["default"](e), w["default"](e) | |
} | |
t.__esModule = !0, t.registerDefaultHelpers = r; | |
var o = n(100), | |
a = i(o), | |
s = n(101), | |
l = i(s), | |
u = n(102), | |
c = i(u), | |
d = n(103), | |
p = i(d), | |
h = n(104), | |
f = i(h), | |
g = n(105), | |
m = i(g), | |
v = n(106), | |
w = i(v) | |
}, function(e, t, n) { | |
"use strict"; | |
t.__esModule = !0; | |
var i = n(11); | |
t["default"] = function(e) { | |
e.registerHelper("blockHelperMissing", function(t, n) { | |
var r = n.inverse, | |
o = n.fn; | |
if (t === !0) return o(this); | |
if (t === !1 || null == t) return r(this); | |
if (i.isArray(t)) return t.length > 0 ? (n.ids && (n.ids = [n.name]), e.helpers.each(t, n)) : r(this); | |
if (n.data && n.ids) { | |
var a = i.createFrame(n.data); | |
a.contextPath = i.appendContextPath(n.data.contextPath, n.name), n = { | |
data: a | |
} | |
} | |
return o(t, n) | |
}) | |
}, e.exports = t["default"] | |
}, function(e, t, n) { | |
"use strict"; | |
function i(e) { | |
return e && e.__esModule ? e : { | |
"default": e | |
} | |
} | |
t.__esModule = !0; | |
var r = n(11), | |
o = n(17), | |
a = i(o); | |
t["default"] = function(e) { | |
e.registerHelper("each", function(e, t) { | |
function n(t, n, o) { | |
u && (u.key = t, u.index = n, u.first = 0 === n, u.last = !!o, c && (u.contextPath = c + t)), l += i(e[t], { | |
data: u, | |
blockParams: r.blockParams([e[t], t], [c + t, null]) | |
}) | |
} | |
if (!t) throw new a["default"]("Must pass iterator to #each"); | |
var i = t.fn, | |
o = t.inverse, | |
s = 0, | |
l = "", | |
u = void 0, | |
c = void 0; | |
if (t.data && t.ids && (c = r.appendContextPath(t.data.contextPath, t.ids[0]) + "."), r.isFunction(e) && (e = e.call(this)), t.data && (u = r.createFrame(t.data)), e && "object" == typeof e) | |
if (r.isArray(e)) | |
for (var d = e.length; s < d; s++) s in e && n(s, s, s === e.length - 1); | |
else { | |
var p = void 0; | |
for (var h in e) e.hasOwnProperty(h) && (void 0 !== p && n(p, s - 1), p = h, s++); | |
void 0 !== p && n(p, s - 1, !0) | |
} | |
return 0 === s && (l = o(this)), l | |
}) | |
}, e.exports = t["default"] | |
}, function(e, t, n) { | |
"use strict"; | |
function i(e) { | |
return e && e.__esModule ? e : { | |
"default": e | |
} | |
} | |
t.__esModule = !0; | |
var r = n(17), | |
o = i(r); | |
t["default"] = function(e) { | |
e.registerHelper("helperMissing", function() { | |
if (1 !== arguments.length) throw new o["default"]('Missing helper: "' + arguments[arguments.length - 1].name + '"') | |
}) | |
}, e.exports = t["default"] | |
}, function(e, t, n) { | |
"use strict"; | |
t.__esModule = !0; | |
var i = n(11); | |
t["default"] = function(e) { | |
e.registerHelper("if", function(e, t) { | |
return i.isFunction(e) && (e = e.call(this)), !t.hash.includeZero && !e || i.isEmpty(e) ? t.inverse(this) : t.fn(this) | |
}), e.registerHelper("unless", function(t, n) { | |
return e.helpers["if"].call(this, t, { | |
fn: n.inverse, | |
inverse: n.fn, | |
hash: n.hash | |
}) | |
}) | |
}, e.exports = t["default"] | |
}, function(e, t) { | |
"use strict"; | |
t.__esModule = !0, t["default"] = function(e) { | |
e.registerHelper("log", function() { | |
for (var t = [void 0], n = arguments[arguments.length - 1], i = 0; i < arguments.length - 1; i++) t.push(arguments[i]); | |
var r = 1; | |
null != n.hash.level ? r = n.hash.level : n.data && null != n.data.level && (r = n.data.level), t[0] = r, e.log.apply(e, t) | |
}) | |
}, e.exports = t["default"] | |
}, function(e, t) { | |
"use strict"; | |
t.__esModule = !0, t["default"] = function(e) { | |
e.registerHelper("lookup", function(e, t) { | |
return e && e[t] | |
}) | |
}, e.exports = t["default"] | |
}, function(e, t, n) { | |
"use strict"; | |
t.__esModule = !0; | |
var i = n(11); | |
t["default"] = function(e) { | |
e.registerHelper("with", function(e, t) { | |
i.isFunction(e) && (e = e.call(this)); | |
var n = t.fn; | |
if (i.isEmpty(e)) return t.inverse(this); | |
var r = t.data; | |
return t.data && t.ids && (r = i.createFrame(t.data), r.contextPath = i.appendContextPath(t.data.contextPath, t.ids[0])), n(e, { | |
data: r, | |
blockParams: i.blockParams([e], [r && r.contextPath]) | |
}) | |
}) | |
}, e.exports = t["default"] | |
}, function(e, t, n) { | |
"use strict"; | |
t.__esModule = !0; | |
var i = n(11), | |
r = { | |
methodMap: ["debug", "info", "warn", "error"], | |
level: "info", | |
lookupLevel: function(e) { | |
if ("string" == typeof e) { | |
var t = i.indexOf(r.methodMap, e.toLowerCase()); | |
e = t >= 0 ? t : parseInt(e, 10) | |
} | |
return e | |
}, | |
log: function(e) { | |
if (e = r.lookupLevel(e), "undefined" != typeof console && r.lookupLevel(r.level) <= e) { | |
var t = r.methodMap[e]; | |
console[t] || (t = "log"); | |
for (var n = arguments.length, i = Array(n > 1 ? n - 1 : 0), o = 1; o < n; o++) i[o - 1] = arguments[o]; | |
console[t].apply(console, i) | |
} | |
} | |
}; | |
t["default"] = r, e.exports = t["default"] | |
}, function(e, t) { | |
(function(n) { | |
"use strict"; | |
t.__esModule = !0, t["default"] = function(e) { | |
var t = "undefined" != typeof n ? n : window, | |
i = t.Handlebars; | |
e.noConflict = function() { | |
return t.Handlebars === e && (t.Handlebars = i), e | |
} | |
}, e.exports = t["default"] | |
}).call(t, function() { | |
return this | |
}()) | |
}, function(e, t, n) { | |
"use strict"; | |
function i(e) { | |
return e && e.__esModule ? e : { | |
"default": e | |
} | |
} | |
function r(e) { | |
if (e && e.__esModule) return e; | |
var t = {}; | |
if (null != e) | |
for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); | |
return t["default"] = e, t | |
} | |
function o(e) { | |
var t = e && e[0] || 1, | |
n = v.COMPILER_REVISION; | |
if (t !== n) { | |
if (t < n) { | |
var i = v.REVISION_CHANGES[n], | |
r = v.REVISION_CHANGES[t]; | |
throw new m["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (" + i + ") or downgrade your runtime to an older version (" + r + ").") | |
} | |
throw new m["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (" + e[1] + ").") | |
} | |
} | |
function a(e, t) { | |
function n(n, i, r) { | |
r.hash && (i = f.extend({}, i, r.hash), r.ids && (r.ids[0] = !0)), n = t.VM.resolvePartial.call(this, n, i, r); | |
var o = t.VM.invokePartial.call(this, n, i, r); | |
if (null == o && t.compile && (r.partials[r.name] = t.compile(n, e.compilerOptions, t), o = r.partials[r.name](i, r)), null != o) { | |
if (r.indent) { | |
for (var a = o.split("\n"), s = 0, l = a.length; s < l && (a[s] || s + 1 !== l); s++) a[s] = r.indent + a[s]; | |
o = a.join("\n") | |
} | |
return o | |
} | |
throw new m["default"]("The partial " + r.name + " could not be compiled when running in runtime-only mode") | |
} | |
function i(t) { | |
function n(t) { | |
return "" + e.main(r, t, r.helpers, r.partials, a, l, s) | |
} | |
var o = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], | |
a = o.data; | |
i._setup(o), !o.partial && e.useData && (a = d(t, a)); | |
var s = void 0, | |
l = e.useBlockParams ? [] : void 0; | |
return e.useDepths && (s = o.depths ? t !== o.depths[0] ? [t].concat(o.depths) : o.depths : [t]), (n = p(e.main, n, r, o.depths || [], a, l))(t, o) | |
} | |
if (!t) throw new m["default"]("No environment passed to template"); | |
if (!e || !e.main) throw new m["default"]("Unknown template object: " + typeof e); | |
e.main.decorator = e.main_d, t.VM.checkRevision(e.compiler); | |
var r = { | |
strict: function(e, t) { | |
if (!(t in e)) throw new m["default"]('"' + t + '" not defined in ' + e); | |
return e[t] | |
}, | |
lookup: function(e, t) { | |
for (var n = e.length, i = 0; i < n; i++) | |
if (e[i] && null != e[i][t]) return e[i][t] | |
}, | |
lambda: function(e, t) { | |
return "function" == typeof e ? e.call(t) : e | |
}, | |
escapeExpression: f.escapeExpression, | |
invokePartial: n, | |
fn: function(t) { | |
var n = e[t]; | |
return n.decorator = e[t + "_d"], n | |
}, | |
programs: [], | |
program: function(e, t, n, i, r) { | |
var o = this.programs[e], | |
a = this.fn(e); | |
return t || r || i || n ? o = s(this, e, a, t, n, i, r) : o || (o = this.programs[e] = s(this, e, a)), o | |
}, | |
data: function(e, t) { | |
for (; e && t--;) e = e._parent; | |
return e | |
}, | |
merge: function(e, t) { | |
var n = e || t; | |
return e && t && e !== t && (n = f.extend({}, t, e)), n | |
}, | |
noop: t.VM.noop, | |
compilerInfo: e.compiler | |
}; | |
return i.isTop = !0, i._setup = function(n) { | |
n.partial ? (r.helpers = n.helpers, r.partials = n.partials, r.decorators = n.decorators) : (r.helpers = r.merge(n.helpers, t.helpers), e.usePartial && (r.partials = r.merge(n.partials, t.partials)), (e.usePartial || e.useDecorators) && (r.decorators = r.merge(n.decorators, t.decorators))) | |
}, i._child = function(t, n, i, o) { | |
if (e.useBlockParams && !i) throw new m["default"]("must pass block params"); | |
if (e.useDepths && !o) throw new m["default"]("must pass parent depths"); | |
return s(r, t, e[t], n, 0, i, o) | |
}, i | |
} | |
function s(e, t, n, i, r, o, a) { | |
function s(t) { | |
var r = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], | |
s = a; | |
return a && t !== a[0] && (s = [t].concat(a)), n(e, t, e.helpers, e.partials, r.data || i, o && [r.blockParams].concat(o), s) | |
} | |
return s = p(n, s, e, a, i, o), s.program = t, s.depth = a ? a.length : 0, s.blockParams = r || 0, s | |
} | |
function l(e, t, n) { | |
return e ? e.call || n.name || (n.name = e, e = n.partials[e]) : e = "@partial-block" === n.name ? n.data["partial-block"] : n.partials[n.name], e | |
} | |
function u(e, t, n) { | |
n.partial = !0, n.ids && (n.data.contextPath = n.ids[0] || n.data.contextPath); | |
var i = void 0; | |
if (n.fn && n.fn !== c && (n.data = v.createFrame(n.data), i = n.data["partial-block"] = n.fn, i.partials && (n.partials = f.extend({}, n.partials, i.partials))), void 0 === e && i && (e = i), void 0 === e) throw new m["default"]("The partial " + n.name + " could not be found"); | |
if (e instanceof Function) return e(t, n) | |
} | |
function c() { | |
return "" | |
} | |
function d(e, t) { | |
return t && "root" in t || (t = t ? v.createFrame(t) : {}, t.root = e), t | |
} | |
function p(e, t, n, i, r, o) { | |
if (e.decorator) { | |
var a = {}; | |
t = e.decorator(t, a, n, i && i[0], r, o, i), f.extend(t, a) | |
} | |
return t | |
} | |
t.__esModule = !0, t.checkRevision = o, t.template = a, t.wrapProgram = s, t.resolvePartial = l, t.invokePartial = u, t.noop = c; | |
var h = n(11), | |
f = r(h), | |
g = n(17), | |
m = i(g), | |
v = n(44) | |
}, function(e, t) { | |
"use strict"; | |
function n(e) { | |
this.string = e | |
} | |
t.__esModule = !0, n.prototype.toString = n.prototype.toHTML = function() { | |
return "" + this.string | |
}, t["default"] = n, e.exports = t["default"] | |
}, , function(e, t, n) { | |
var i, r; | |
i = [n(21), n(1)], r = function(e, t) { | |
return function(n, i) { | |
var r = ["seek", "skipAd", "stop", "playlistNext", "playlistPrev", "playlistItem", "resize", "addButton", "removeButton", "registerPlugin", "attachMedia", "next"]; | |
t.each(r, function(e) { | |
n[e] = function() { | |
return i[e].apply(i, arguments), n | |
} | |
}), n.registerPlugin = e.registerPlugin | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
return function(t, n) { | |
var i = ["buffer", "controls", "position", "duration", "fullscreen", "volume", "item", "stretching", "playlist", "captions"]; | |
e.each(i, function(e) { | |
var i = e.slice(0, 1).toUpperCase() + e.slice(1); | |
t["get" + i] = function() { | |
return n._model.get(e) | |
} | |
}); | |
var r = ["getAudioTracks", "getCaptionsList", "getWidth", "getHeight", "getCurrentAudioTrack", "setCurrentAudioTrack", "getCurrentCaptions", "setCurrentCaptions", "getCurrentQuality", "setCurrentQuality", "getQualityLevels", "getVisualQuality", "getConfig", "getState", "getSafeRegion", "isBeforeComplete", "isBeforePlay", "getProvider", "detachMedia"], | |
o = ["setControls", "setFullscreen", "setVolume", "setMute", "setCues", "setCaptions"]; | |
e.each(r, function(e) { | |
t[e] = function() { | |
return n[e] ? n[e].apply(n, arguments) : null | |
} | |
}), e.each(o, function(e) { | |
t[e] = function() { | |
return n[e].apply(n, arguments), t | |
} | |
}), t.getPlaylistIndex = t.getItem | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(4), n(5), n(3), n(2), n(64), n(1), n(166), n(112), n(113), n(115), n(24)], r = function(e, t, n, i, r, o, a, s, l, u, c) { | |
var d = function(d, p) { | |
var h, f = this, | |
g = !1, | |
m = {}; | |
o.extend(this, n), this.utils = i, this._ = o, this.Events = n, this.version = c, this.trigger = function(e, t) { | |
t = o.isObject(t) ? o.extend({}, t) : {}, t.type = e; | |
var i = window.jwplayer; | |
return i && i.debug ? n.trigger.call(f, e, t) : n.triggerSafe.call(f, e, t) | |
}, this.dispatchEvent = this.trigger, this.removeEventListener = this.off.bind(this); | |
var v = function() { | |
h = new a(d), s(f, h), l(f, h), h.on(e.JWPLAYER_PLAYLIST_ITEM, function() { | |
m = {} | |
}), h.on(e.JWPLAYER_MEDIA_META, function(e) { | |
o.extend(m, e.metadata) | |
}), h.on(e.JWPLAYER_READY, function(e) { | |
g = !0, w.tick("ready"), e.setupTime = w.between("setup", "ready") | |
}), h.on("all", f.trigger) | |
}; | |
v(), u(this), this.id = d.id; | |
var w = this._qoe = new r; | |
w.tick("init"); | |
var y = function() { | |
g = !1, m = {}, f.off(), h && h.off(), h && h.playerDestroy && h.playerDestroy() | |
}; | |
return this.getPlugin = function(e) { | |
return f.plugins && f.plugins[e] | |
}, this.addPlugin = function(e, t) { | |
this.plugins = this.plugins || {}, this.plugins[e] = t, this.onReady(t.addToPlayer), t.resize && this.onResize(t.resizeHandler) | |
}, this.setup = function(e) { | |
return w.tick("setup"), y(), v(), i.foreach(e.events, function(e, t) { | |
var n = f[e]; | |
"function" == typeof n && n.call(f, t) | |
}), e.id = f.id, h.setup(e, this), f | |
}, this.qoe = function() { | |
var e = h.getItemQoe(), | |
t = w.between("setup", "ready"), | |
n = e.getFirstFrame(); | |
return { | |
setupTime: t, | |
firstFrame: n, | |
player: w.dump(), | |
item: e.dump() | |
} | |
}, this.getContainer = function() { | |
return h.getContainer ? h.getContainer() : d | |
}, this.getMeta = this.getItemMeta = function() { | |
return m | |
}, this.getPlaylistItem = function(e) { | |
if (!i.exists(e)) return h._model.get("playlistItem"); | |
var t = f.getPlaylist(); | |
return t ? t[e] : null | |
}, this.getRenderingMode = function() { | |
return "html5" | |
}, this.getMute = function() { | |
return h._model.getMute() | |
}, this.load = function(e) { | |
return h.load(e), f | |
}, this.play = function(e, n) { | |
if (o.isObject(e) && e.reason && (n = e), n || (n = { | |
reason: "external" | |
}), e === !0) return h.play(n), f; | |
if (e === !1) return h.pause(n), f; | |
switch (e = f.getState()) { | |
case t.PLAYING: | |
case t.BUFFERING: | |
h.pause(n); | |
break; | |
default: | |
h.play(n) | |
} | |
return f | |
}, this.pause = function(e, t) { | |
return o.isBoolean(e) ? this.play(!e, t) : this.play(t) | |
}, this.createInstream = function() { | |
return h.createInstream() | |
}, this.castToggle = function() { | |
h && h.castToggle && h.castToggle() | |
}, this.playAd = this.pauseAd = i.noop, this.remove = function() { | |
return p(f), f.trigger("remove"), y(), f | |
}, this | |
}; | |
return d | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(4)], r = function(e, t) { | |
return function(n) { | |
var i = { | |
onBufferChange: t.JWPLAYER_MEDIA_BUFFER, | |
onBufferFull: t.JWPLAYER_MEDIA_BUFFER_FULL, | |
onError: t.JWPLAYER_ERROR, | |
onSetupError: t.JWPLAYER_SETUP_ERROR, | |
onFullscreen: t.JWPLAYER_FULLSCREEN, | |
onMeta: t.JWPLAYER_MEDIA_META, | |
onMute: t.JWPLAYER_MEDIA_MUTE, | |
onPlaylist: t.JWPLAYER_PLAYLIST_LOADED, | |
onPlaylistItem: t.JWPLAYER_PLAYLIST_ITEM, | |
onPlaylistComplete: t.JWPLAYER_PLAYLIST_COMPLETE, | |
onReady: t.JWPLAYER_READY, | |
onResize: t.JWPLAYER_RESIZE, | |
onComplete: t.JWPLAYER_MEDIA_COMPLETE, | |
onSeek: t.JWPLAYER_MEDIA_SEEK, | |
onTime: t.JWPLAYER_MEDIA_TIME, | |
onVolume: t.JWPLAYER_MEDIA_VOLUME, | |
onBeforePlay: t.JWPLAYER_MEDIA_BEFOREPLAY, | |
onBeforeComplete: t.JWPLAYER_MEDIA_BEFORECOMPLETE, | |
onDisplayClick: t.JWPLAYER_DISPLAY_CLICK, | |
onControls: t.JWPLAYER_CONTROLS, | |
onQualityLevels: t.JWPLAYER_MEDIA_LEVELS, | |
onQualityChange: t.JWPLAYER_MEDIA_LEVEL_CHANGED, | |
onCaptionsList: t.JWPLAYER_CAPTIONS_LIST, | |
onCaptionsChange: t.JWPLAYER_CAPTIONS_CHANGED, | |
onAdError: t.JWPLAYER_AD_ERROR, | |
onAdClick: t.JWPLAYER_AD_CLICK, | |
onAdImpression: t.JWPLAYER_AD_IMPRESSION, | |
onAdTime: t.JWPLAYER_AD_TIME, | |
onAdComplete: t.JWPLAYER_AD_COMPLETE, | |
onAdCompanions: t.JWPLAYER_AD_COMPANIONS, | |
onAdSkipped: t.JWPLAYER_AD_SKIPPED, | |
onAdPlay: t.JWPLAYER_AD_PLAY, | |
onAdPause: t.JWPLAYER_AD_PAUSE, | |
onAdMeta: t.JWPLAYER_AD_META, | |
onCast: t.JWPLAYER_CAST_SESSION, | |
onAudioTrackChange: t.JWPLAYER_AUDIO_TRACK_CHANGED, | |
onAudioTracks: t.JWPLAYER_AUDIO_TRACKS | |
}, | |
r = { | |
onBuffer: "buffer", | |
onPause: "pause", | |
onPlay: "play", | |
onIdle: "idle" | |
}; | |
e.each(r, function(t, i) { | |
n[i] = e.partial(n.on, t, e) | |
}), e.each(i, function(t, i) { | |
n[i] = e.partial(n.on, t, e) | |
}) | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(114), n(1), n(39), n(38), n(21)], r = function(e, t, n, i, r) { | |
var o = [], | |
a = 0, | |
s = function(t) { | |
var n, i; | |
return t ? "string" == typeof t ? (n = l(t), n || (i = document.getElementById(t))) : "number" == typeof t ? n = o[t] : t.nodeType && (i = t, n = l(i.id)) : n = o[0], n ? n : i ? u(new e(i, c)) : { | |
registerPlugin: r.registerPlugin | |
} | |
}, | |
l = function(e) { | |
for (var t = 0; t < o.length; t++) | |
if (o[t].id === e) return o[t]; | |
return null | |
}, | |
u = function(e) { | |
return a++, e.uniqueId = a, o.push(e), e | |
}, | |
c = function(e) { | |
for (var t = o.length; t--;) | |
if (o[t].uniqueId === e.uniqueId) { | |
o.splice(t, 1); | |
break | |
} | |
}, | |
d = { | |
selectPlayer: s, | |
registerProvider: n.registerProvider, | |
availableProviders: i, | |
registerPlugin: r.registerPlugin | |
}; | |
return s.api = d, d | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(167), n(3), n(1), n(4)], r = function(e, t, n, i) { | |
var r = function(t, r, o, a) { | |
function s() { | |
p("Setup Timeout Error", "Setup took longer than " + m + " seconds to complete.") | |
} | |
function l() { | |
n.each(g, function(e) { | |
e.complete !== !0 && e.running !== !0 && null !== t && c(e.depends) && (e.running = !0, u(e)) | |
}) | |
} | |
function u(e) { | |
var n = function(t) { | |
t = t || {}, d(e, t) | |
}; | |
e.method(n, r, t, o, a) | |
} | |
function c(e) { | |
return n.all(e, function(e) { | |
return g[e].complete | |
}) | |
} | |
function d(e, t) { | |
"error" === t.type ? p(t.msg, t.reason) : "complete" === t.type ? (clearTimeout(h), f.trigger(i.JWPLAYER_READY)) : (e.complete = !0, l()) | |
} | |
function p(e, t) { | |
clearTimeout(h), f.trigger(i.JWPLAYER_SETUP_ERROR, { | |
message: e + ": " + t | |
}), f.destroy() | |
} | |
var h, f = this, | |
g = e.getQueue(), | |
m = 30; | |
this.start = function() { | |
h = setTimeout(s, 1e3 * m), l() | |
}, this.destroy = function() { | |
clearTimeout(h), this.off(), g.length = 0, t = null, r = null, o = null | |
} | |
}; | |
return r.prototype = t, r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(19), n(18)], r = function(e, t, n) { | |
var i = function(i, r) { | |
function o(e) { | |
if (e.tracks.length) { | |
for (var t = e.tracks || [], n = 0; n < t.length; n++) { | |
var i = t[n]; | |
w[i._id] || p(i) | |
} | |
var r = h(); | |
f(), this.setCaptionsList(r) | |
} | |
} | |
function a(e, t) { | |
m = t, v = [], w = {}, y = {}, j = 0 | |
} | |
function s(e) { | |
a(r, e); | |
var n = e.tracks, | |
i = n && n.length; | |
if (!r.get("renderCaptionsNatively") && i) { | |
var o, s; | |
for (o = 0; o < i; o++) s = n[o], l(s.kind) && !w[s._id] && (p(s), t.loadFile(s, u.bind(null, s), c)) | |
} | |
var d = h(); | |
f(), this.setCaptionsList(d) | |
} | |
function l(e) { | |
return "subtitles" === e || "captions" === e | |
} | |
function u(e, t) { | |
e.data = t | |
} | |
function c(t) { | |
e.log("CAPTIONS(" + t + ")") | |
} | |
function d(e, t) { | |
var n = null; | |
0 !== t && (n = v[t - 1]), e.set("captionsTrack", n) | |
} | |
function p(e) { | |
if (e.data = e.data || [], e.name = e.label || e.name || e.language, e._id = n.createId(e, v.length), !e.name) { | |
var t = n.createLabel(e, j); | |
e.name = t.label, j = t.unknownCount | |
} | |
v.push(e), w[e._id] = e | |
} | |
function h() { | |
for (var e = [{ | |
id: "off", | |
label: "Off" | |
}], t = 0; t < v.length; t++) e.push({ | |
id: v[t]._id, | |
label: v[t].name || "Unknown CC" | |
}); | |
return e | |
} | |
function f() { | |
var e = 0, | |
t = r.get("captionLabel"); | |
if ("Off" === t) return void r.set("captionsIndex", 0); | |
for (var n = 0; n < v.length; n++) { | |
var i = v[n]; | |
if (t && t === i.name) { | |
e = n + 1; | |
break | |
} | |
i["default"] || i.defaulttrack || "default" === i._id ? e = n + 1 : i.autoselect | |
} | |
g(e) | |
} | |
function g(e) { | |
v.length ? r.setVideoSubtitleTrack(e, v) : r.set("captionsIndex", e) | |
} | |
r.on("change:playlistItem", a, this), r.on("change:captionsIndex", d, this), r.on("itemReady", s, this), r.mediaController.on("subtitlesTracks", o, this); | |
var m = {}, | |
v = [], | |
w = {}, | |
y = {}, | |
j = 0; | |
this.getCurrentIndex = function() { | |
return r.get("captionsIndex") | |
}, this.getCaptionsList = function() { | |
return r.get("captionsList") | |
}, this.setCaptionsList = function(e) { | |
r.set("captionsList", e) | |
} | |
}; | |
return i | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(45), n(120), n(1), n(117), n(118), n(25), n(125), n(50), n(49), n(2), n(75), n(3), n(29), n(5), n(4), n(154)], r = function(e, t, i, r, o, a, s, l, u, c, d, p, h, f, g, m) { | |
function v(e) { | |
return function() { | |
var t = Array.prototype.slice.call(arguments, 0); | |
this._model.getVideo() ? this["_" + e].apply(this, t) : this.eventsQueue.push([e, t]) | |
} | |
} | |
function w(e) { | |
return e === f.LOADING || e === f.STALLED ? f.BUFFERING : e | |
} | |
var y = function(e) { | |
this.originalContainer = this.currentContainer = e, this.eventsQueue = [], i.extend(this, p), this._model = new a | |
}; | |
return y.prototype = { | |
play: v("play"), | |
pause: v("pause"), | |
seek: v("seek"), | |
stop: v("stop"), | |
load: v("load"), | |
playlistNext: v("next"), | |
playlistPrev: v("prev"), | |
playlistItem: v("item"), | |
setCurrentCaptions: v("setCurrentCaptions"), | |
setCurrentQuality: v("setCurrentQuality"), | |
setFullscreen: v("setFullscreen"), | |
setup: function(a, p) { | |
function m(e, t) { | |
he.triggerAfterReady(e, t) | |
} | |
function v() { | |
ae = null, re.on("all", m, he), he.showView(re.element()), i.defer(y) | |
} | |
function y() { | |
he.trigger(g.JWPLAYER_READY, { | |
setupTime: 0 | |
}), he.triggerAfterReady = he.trigger; | |
for (var e = 0; e < ve.length; e++) { | |
var t = ve[e]; | |
he.trigger(t.type, t.args) | |
} | |
var n = p.getPlugin("related"); | |
n && n.on("nextUp", ce.setNextUp, ce), ie() && (c.isMobile() && fe().video ? j(fe().video) : R()) | |
} | |
function j(e) { | |
"IntersectionObserver" in window && "IntersectionObserverEntry" in window && "intersectionRatio" in window.IntersectionObserverEntry.prototype ? b(e) : n.e(9, function(require) { | |
n(54), b(e) | |
}) | |
} | |
function b(e) { | |
ue = new window.IntersectionObserver(x, { | |
threshold: .5 | |
}), ue.observe(e) | |
} | |
function E() { | |
ue.disconnect(), ue = void 0 | |
} | |
function x(e) { | |
if (e && e.length) { | |
var t = fe().video, | |
n = e[0], | |
i = { | |
reason: "autostart" | |
}; | |
n.target === t && n.intersectionRatio >= .5 ? he.play(i) : he.pause(i) | |
} | |
} | |
function k(e) { | |
var t = ce.getProviders(), | |
n = t.required(e, ce.get("primary")); | |
return t.load(n).then(function() { | |
he.getProvider() || (ce.setProvider(ce.get("playlistItem")), C()) | |
}) | |
} | |
function C() { | |
for (; he.eventsQueue.length > 0;) { | |
var e = he.eventsQueue.shift(), | |
t = e[0], | |
n = e[1] || []; | |
he["_" + t].apply(he, n) | |
} | |
} | |
function A(e) { | |
switch (ce.get("state") === f.ERROR && ce.set("state", f.IDLE), ce.set("preInstreamState", "instream-idle"), I(!0), ie() && ce.once("itemReady", R), he.trigger("destroyPlugin", {}), typeof e) { | |
case "string": | |
_(e); | |
break; | |
case "object": | |
var t = D(e); | |
t && Y(0); | |
break; | |
case "number": | |
Y(e) | |
} | |
} | |
function _(e) { | |
var t = new u; | |
t.on(g.JWPLAYER_PLAYLIST_LOADED, function(e) { | |
A(e.playlist) | |
}), t.on(g.JWPLAYER_ERROR, function(e) { | |
e.message = "Error loading playlist: " + e.message, this.triggerError(e) | |
}, this), t.load(e) | |
} | |
function L() { | |
return he._instreamAdapter && he._instreamAdapter.getState() | |
} | |
function T() { | |
var e = L(); | |
return i.isString(e) ? e : ce.get("state") | |
} | |
function P(e) { | |
var t; | |
if (e && ce.set("playReason", e.reason), ce.get("state") !== f.ERROR) { | |
var n = L(); | |
if (i.isString(n)) return p.pauseAd(!1); | |
if (ce.get("state") === f.COMPLETE && (I(!0), Y(0)), !de && (de = !0, he.trigger(g.JWPLAYER_MEDIA_BEFOREPLAY, { | |
playReason: ce.get("playReason") | |
}), de = !1, le)) return le = !1, void(se = null); | |
if (S()) { | |
if (0 === ce.get("playlist").length) return !1; | |
t = c.tryCatch(function() { | |
ce.loadVideo() | |
}) | |
} else ce.get("state") === f.PAUSED && (t = c.tryCatch(function() { | |
ce.playVideo() | |
})); | |
return !(t instanceof c.Error) || (he.triggerError(t), se = null, !1) | |
} | |
} | |
function R() { | |
P({ | |
reason: "autostart" | |
}) | |
} | |
function I(e) { | |
ce.off("itemReady", R); | |
var t = !e; | |
se = null; | |
var n = c.tryCatch(function() { | |
ce.stopVideo() | |
}, he); | |
return n instanceof c.Error ? (he.triggerError(n), !1) : (t && (pe = !0), de && (le = !0), !0) | |
} | |
function M(e) { | |
se = null, e && (ce.set("pauseReason", e.reason), !ue || "interaction" !== e.reason && "external" !== e.reason || E()); | |
var t = L(); | |
if (i.isString(t)) return p.pauseAd(!0); | |
switch (ce.get("state")) { | |
case f.ERROR: | |
return !1; | |
case f.PLAYING: | |
case f.BUFFERING: | |
var n = c.tryCatch(function() { | |
fe().pause() | |
}, this); | |
if (n instanceof c.Error) return he.triggerError(n), !1; | |
break; | |
default: | |
de && (le = !0) | |
} | |
return !0 | |
} | |
function S() { | |
var e = ce.get("state"); | |
return e === f.IDLE || e === f.COMPLETE || e === f.ERROR | |
} | |
function O(e, t) { | |
ce.get("state") !== f.ERROR && (ce.get("scrubbing") || ce.get("state") === f.PLAYING || P(t), fe().seek(e)) | |
} | |
function N(e, t) { | |
I(!0), ce.get("state") === f.ERROR && ce.set("state", f.IDLE), Y(e), P(t) | |
} | |
function D(e) { | |
var t = l(e); | |
return t = l.filterPlaylist(t, ce.getProviders(), ce.get("androidhls"), ce.get("drm"), ce.get("preload"), ce.get("feedid"), ce.get("withCredentials")), ce.set("playlist", t), i.isArray(t) && 0 !== t.length ? (k(t), !0) : (he.triggerError({ | |
message: "Error loading playlist: No playable sources found" | |
}), !1) | |
} | |
function Y(e) { | |
ce.setItemIndex(e) | |
} | |
function F(e) { | |
N(ce.get("item") - 1, e || { | |
reason: "external" | |
}) | |
} | |
function W(e) { | |
N(ce.get("item") + 1, e || { | |
reason: "external" | |
}) | |
} | |
function J() { | |
if (S()) { | |
if (pe) return void(pe = !1); | |
se = J; | |
var e = ce.get("item"); | |
return e === ce.get("playlist").length - 1 ? void(ce.get("repeat") ? W({ | |
reason: "repeat" | |
}) : (ue && E(), ce.set("state", f.COMPLETE), he.trigger(g.JWPLAYER_PLAYLIST_COMPLETE, {}))) : void W({ | |
reason: "playlist" | |
}) | |
} | |
} | |
function B(e) { | |
fe() && (e = parseInt(e, 10) || 0, fe().setCurrentQuality(e)) | |
} | |
function V() { | |
return fe() ? fe().getCurrentQuality() : -1 | |
} | |
function U() { | |
if (this._model) return this._model.getConfiguration() | |
} | |
function z() { | |
if (this._model.mediaModel) return this._model.mediaModel.get("visualQuality"); | |
var e = H(); | |
if (e) { | |
var t = V(), | |
n = e[t]; | |
if (n) return { | |
level: i.extend({ | |
index: t | |
}, n), | |
mode: "", | |
reason: "" | |
} | |
} | |
return null | |
} | |
function H() { | |
return fe() ? fe().getQualityLevels() : null | |
} | |
function G(e) { | |
fe() && (e = parseInt(e, 10) || 0, fe().setCurrentAudioTrack(e)) | |
} | |
function K() { | |
return fe() ? fe().getCurrentAudioTrack() : -1 | |
} | |
function q() { | |
return fe() ? fe().getAudioTracks() : null; | |
} | |
function X(e) { | |
e = parseInt(e, 10) || 0, ce.persistVideoSubtitleTrack(e), he.trigger(g.JWPLAYER_CAPTIONS_CHANGED, { | |
tracks: $(), | |
track: e | |
}) | |
} | |
function Q() { | |
return oe.getCurrentIndex() | |
} | |
function $() { | |
return oe.getCaptionsList() | |
} | |
function Z() { | |
var e = ce.getVideo(); | |
if (e) { | |
var t = e.detachMedia(); | |
if (t instanceof HTMLVideoElement) return t | |
} | |
return null | |
} | |
function ee() { | |
var e = c.tryCatch(function() { | |
ce.getVideo().attachMedia() | |
}); | |
return e instanceof c.Error ? void c.log("Error calling _attachMedia", e) : void("function" == typeof se && se()) | |
} | |
function te(e) { | |
i.isBoolean(e) || (e = !ce.get("fullscreen")), ce.set("fullscreen", e), this._instreamAdapter && this._instreamAdapter._adModel && this._instreamAdapter._adModel.set("fullscreen", e) | |
} | |
function ne() { | |
var e = p.getPlugin("related"); | |
e && e.next() | |
} | |
function ie() { | |
return ce.get("autostart") && !c.isMobile() || ce.autoStartOnMobile() | |
} | |
var re, oe, ae, se, le, ue, ce = this._model, | |
de = !1, | |
pe = !1, | |
he = this, | |
fe = function() { | |
return ce.getVideo() | |
}, | |
ge = new s; | |
ge.track(ce); | |
var me = new e(a, ge), | |
ve = []; | |
ce.setup(me, ge), re = this._view = new d(p, ce), ae = new r(p, ce, re, D), ae.on(g.JWPLAYER_READY, v, this), ae.on(g.JWPLAYER_SETUP_ERROR, this.setupError, this), ce.mediaController.on("all", m, this), ce.mediaController.on(g.JWPLAYER_MEDIA_COMPLETE, function() { | |
i.defer(J) | |
}), ce.mediaController.on(g.JWPLAYER_MEDIA_ERROR, this.triggerError, this), ce.on("change:flashBlocked", function(e, t) { | |
if (!t) return void this._model.set("errorEvent", void 0); | |
var n = !!e.get("flashThrottle"), | |
i = { | |
message: n ? "Click to run Flash" : "Flash plugin failed to load" | |
}; | |
n || this.trigger(g.JWPLAYER_ERROR, i), this._model.set("errorEvent", i) | |
}, this), ce.on("change:state", h, this), ce.on("change:castState", function(e, t) { | |
he.trigger(g.JWPLAYER_CAST_SESSION, t) | |
}), ce.on("change:fullscreen", function(e, t) { | |
he.trigger(g.JWPLAYER_FULLSCREEN, { | |
fullscreen: t | |
}), t && ue && E() | |
}), ce.on("itemReady", function() { | |
he.triggerAfterReady(g.JWPLAYER_PLAYLIST_ITEM, { | |
index: ce.get("item"), | |
item: ce.get("playlistItem") | |
}) | |
}), ce.on("change:playlist", function(e, t) { | |
t.length && he.triggerAfterReady(g.JWPLAYER_PLAYLIST_LOADED, { | |
playlist: t | |
}) | |
}), ce.on("change:volume", function(e, t) { | |
he.trigger(g.JWPLAYER_MEDIA_VOLUME, { | |
volume: t | |
}) | |
}), ce.on("change:mute", function(e, t) { | |
he.trigger(g.JWPLAYER_MEDIA_MUTE, { | |
mute: t | |
}) | |
}), ce.on("change:controls", function(e, t) { | |
he.trigger(g.JWPLAYER_CONTROLS, { | |
controls: t | |
}) | |
}), ce.on("change:scrubbing", function(e, t) { | |
t ? M() : P({ | |
reason: "interaction" | |
}) | |
}), ce.on("change:captionsList", function(e, t) { | |
try { | |
he.triggerAfterReady(g.JWPLAYER_CAPTIONS_LIST, { | |
tracks: t, | |
track: Q() | |
}) | |
} catch (n) { | |
c.log("Error with captionsList event:", n) | |
} | |
}), ce.on("change:mediaModel", function(e) { | |
e.mediaModel.on("change:state", function(t, n) { | |
var i = w(n); | |
e.set("state", i) | |
}) | |
}), oe = new o(p, ce), this.triggerAfterReady = function(e, t) { | |
ve.push({ | |
type: e, | |
args: t | |
}) | |
}, this._play = P, this._pause = M, this._seek = O, this._stop = I, this._load = A, this._next = W, this._prev = F, this._item = N, this._setCurrentCaptions = X, this._setCurrentQuality = B, this._setFullscreen = te, this.detachMedia = Z, this.attachMedia = ee, this.getCurrentQuality = V, this.getQualityLevels = H, this.setCurrentAudioTrack = G, this.getCurrentAudioTrack = K, this.getAudioTracks = q, this.getCurrentCaptions = Q, this.getCaptionsList = $, this.getVisualQuality = z, this.getConfig = U, this.getState = T, this.setVolume = ce.setVolume.bind(ce), this.setMute = ce.setMute.bind(ce), this.getProvider = function() { | |
return ce.get("provider") | |
}, this.getWidth = function() { | |
return ce.get("containerWidth") | |
}, this.getHeight = function() { | |
return ce.get("containerHeight") | |
}, this.getContainer = function() { | |
return this.currentContainer | |
}, this.resize = re.resize, this.getSafeRegion = re.getSafeRegion, this.setCues = re.addCues, this.setCaptions = re.setCaptions, this.next = ne, this.addButton = function(e, t, n, r, o) { | |
var a = { | |
img: e, | |
tooltip: t, | |
callback: n, | |
id: r, | |
btnClass: o | |
}, | |
s = ce.get("dock"); | |
s = s ? s.slice(0) : [], s = i.reject(s, i.matches({ | |
id: a.id | |
})), s.push(a), ce.set("dock", s) | |
}, this.removeButton = function(e) { | |
var t = ce.get("dock") || []; | |
t = i.reject(t, i.matches({ | |
id: e | |
})), ce.set("dock", t) | |
}, this.checkBeforePlay = function() { | |
return de | |
}, this.getItemQoe = function() { | |
return ce._qoeItem | |
}, this.setControls = function(e) { | |
i.isBoolean(e) || (e = !ce.get("controls")), ce.set("controls", e); | |
var t = ce.getVideo(); | |
t && t.setControls(e) | |
}, this.playerDestroy = function() { | |
this.stop(), this.showView(this.originalContainer), re && re.destroy(), ce && ce.destroy(), ae && (ae.destroy(), ae = null) | |
}, this.isBeforePlay = this.checkBeforePlay, this.isBeforeComplete = function() { | |
return ce.getVideo().checkComplete() | |
}, this.createInstream = function() { | |
return this.instreamDestroy(), this._instreamAdapter = new t(this, ce, re), this._instreamAdapter | |
}, this.skipAd = function() { | |
this._instreamAdapter && this._instreamAdapter.skipAd() | |
}, this.instreamDestroy = function() { | |
he._instreamAdapter && he._instreamAdapter.destroy() | |
}, ae.start() | |
}, | |
showView: function(e) { | |
(document.documentElement.contains(this.currentContainer) || (this.currentContainer = document.getElementById(this._model.get("id")), this.currentContainer)) && (this.currentContainer.parentElement && this.currentContainer.parentElement.replaceChild(e, this.currentContainer), this.currentContainer = e) | |
}, | |
triggerError: function(e) { | |
this._model.set("errorEvent", e), this._model.set("state", f.ERROR), this._model.once("change:state", function() { | |
this._model.set("errorEvent", void 0) | |
}, this), this.trigger(g.JWPLAYER_ERROR, e) | |
}, | |
setupError: function(e) { | |
var t = e.message, | |
n = c.createElement(m(this._model.get("id"), this._model.get("skin"), t)), | |
r = this._model.get("width"), | |
o = this._model.get("height"); | |
c.style(n, { | |
width: r.toString().indexOf("%") > 0 ? r : r + "px", | |
height: o.toString().indexOf("%") > 0 ? o : o + "px" | |
}), this.showView(n); | |
var a = this; | |
i.defer(function() { | |
a.trigger(g.JWPLAYER_SETUP_ERROR, { | |
message: t | |
}) | |
}) | |
} | |
}, y | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(122), n(121), n(4), n(5), n(2), n(3), n(1)], r = function(e, t, n, i, r, o, a) { | |
function s(n) { | |
var i = "", | |
r = n.get("provider"); | |
return r && (i = r.name), i.indexOf("flash") >= 0 ? t : e | |
} | |
var l = { | |
skipoffset: null, | |
tag: null | |
}, | |
u = function(e, o, u) { | |
function c() { | |
y._adModel.set("state", "buffering"), o.set("skipButton", !1), j++; | |
var e, t = h[j]; | |
f && (e = f[j]), E.loadItem(t, e) | |
} | |
function d(e, t) { | |
"complete" !== e && (t = t || {}, b.tag && !t.tag && (t.tag = b.tag), this.trigger(e, t), "mediaError" !== e && "error" !== e || h && j + 1 < h.length && c()) | |
} | |
function p(e) { | |
y._adModel.set("duration", e.duration), y._adModel.set("position", e.position) | |
} | |
var h, f, g, m, v, w = s(o), | |
y = new w(e, o), | |
j = 0, | |
b = {}, | |
E = this, | |
x = a.bind(function(e) { | |
e = e || {}, e.hasControls = !!o.get("controls"), this.trigger(n.JWPLAYER_INSTREAM_CLICK, e), y && y._adModel && (y._adModel.get("state") === i.PAUSED ? e.hasControls && y.instreamPlay() : y.instreamPause()) | |
}, this), | |
k = a.bind(function() { | |
y && y._adModel && y._adModel.get("state") === i.PAUSED && o.get("controls") && (e.setFullscreen(), e.play()) | |
}, this); | |
this.type = "instream", this.init = function() { | |
g = o.getVideo(), m = o.get("position"), v = o.get("playlist")[o.get("item")], y.on("all", d, this), y.on(n.JWPLAYER_MEDIA_TIME, p, this), y.on(n.JWPLAYER_MEDIA_COMPLETE, C, this), y.init(), g.detachMedia(), o.mediaModel.set("state", i.BUFFERING), e.checkBeforePlay() || 0 === m && !g.checkComplete() ? (m = 0, o.set("preInstreamState", "instream-preroll")) : g && g.checkComplete() || o.get("state") === i.COMPLETE ? o.set("preInstreamState", "instream-postroll") : o.set("preInstreamState", "instream-midroll"); | |
var t = o.get("state"); | |
return t !== i.PLAYING && t !== i.BUFFERING || g.pause(), u.setupInstream(y._adModel), y._adModel.set("state", i.BUFFERING), u.clickHandler().setAlternateClickHandlers(r.noop, null), this.setText(o.get("localization").loadingAd), this | |
}; | |
var C = function(e) { | |
var t = {}; | |
b.tag && (t.tag = b.tag), h && j + 1 < h.length ? (this.trigger(n.JWPLAYER_MEDIA_COMPLETE, t), c()) : (e.type === n.JWPLAYER_MEDIA_COMPLETE && (this.trigger(n.JWPLAYER_MEDIA_COMPLETE, t), this.trigger(n.JWPLAYER_PLAYLIST_COMPLETE, {})), this.destroy()) | |
}; | |
this.loadItem = function(e, i) { | |
if (r.isAndroid(2.3)) return void this.trigger({ | |
type: n.JWPLAYER_ERROR, | |
message: "Error loading instream: Cannot play instream on Android 2.3" | |
}); | |
var s = e; | |
a.isArray(e) ? (h = e, f = i, e = h[j], f && (i = f[j])) : s = [e]; | |
var u = this, | |
c = o.getProviders(), | |
d = w === t ? "flash" : void 0, | |
p = c.required(s, d); | |
o.set("hideAdsControls", !1), c.load(p).then(function() { | |
if (null !== y) { | |
u.trigger(n.JWPLAYER_PLAYLIST_ITEM, { | |
index: j, | |
item: e | |
}), b = a.extend({}, l, i), y.load(e), u.addClickHandler(); | |
var t = e.skipoffset || b.skipoffset; | |
t && u.setupSkipButton(t, b) | |
} | |
}) | |
}, this.setupSkipButton = function(e, t, n) { | |
o.set("skipButton", !1), n && (C = n), y._adModel.set("skipMessage", t.skipMessage), y._adModel.set("skipText", t.skipText), y._adModel.set("skipOffset", e), o.set("skipButton", !0) | |
}, this.applyProviderListeners = function(e) { | |
y.applyProviderListeners(e), this.addClickHandler() | |
}, this.play = function() { | |
y.instreamPlay() | |
}, this.pause = function() { | |
y.instreamPause() | |
}, this.addClickHandler = function() { | |
u.clickHandler().setAlternateClickHandlers(x, k), y.on(n.JWPLAYER_MEDIA_META, this.metaHandler, this) | |
}, this.skipAd = function(e) { | |
var t = n.JWPLAYER_AD_SKIPPED; | |
this.trigger(t, e), C.call(this, { | |
type: t | |
}) | |
}, this.metaHandler = function(e) { | |
e.width && e.height && u.resizeMedia() | |
}, this.destroy = function() { | |
if (this.off(), o.set("skipButton", !1), y) { | |
u.clickHandler() && u.clickHandler().revertAlternateClickHandlers(), o.off(null, null, y), y.instreamDestroy(), u.destroyInstream(), y = null, e.attachMedia(); | |
var t = o.get("preInstreamState"); | |
switch (t) { | |
case "instream-preroll": | |
case "instream-midroll": | |
var n = a.extend({}, v); | |
n.starttime = m, o.loadVideo(n), r.isMobile() && o.mediaModel.get("state") === i.BUFFERING && g.setState(i.BUFFERING), g.play(); | |
break; | |
case "instream-postroll": | |
case "instream-idle": | |
g.stop() | |
} | |
} | |
}, this.getState = function() { | |
return !(!y || !y._adModel) && y._adModel.get("state") | |
}, this.setText = function(e) { | |
u.setAltText(e ? e : "") | |
}, this.hide = function() { | |
o.set("hideAdsControls", !0) | |
} | |
}; | |
return a.extend(u.prototype, o), u | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(3), n(25), n(29), n(4), n(5), n(2), n(1)], r = function(e, t, n, i, r, o, a) { | |
var s = function(e, i) { | |
this.model = i, this._adModel = (new t).setup({ | |
id: i.get("id"), | |
volume: i.get("volume"), | |
fullscreen: i.get("fullscreen"), | |
mute: i.get("mute") | |
}), this._adModel.on("change:state", n, this); | |
var r = e.getContainer(); | |
this.swf = r.querySelector("object") | |
}; | |
return s.prototype = a.extend({ | |
init: function() { | |
if (o.isChrome()) { | |
var e = -1, | |
t = !1; | |
this.swf.on("throttle", function(n) { | |
if (clearTimeout(e), "resume" === n.state) t && (t = !1, this.instreamPlay()); | |
else { | |
var i = this; | |
e = setTimeout(function() { | |
i._adModel.get("state") === r.PLAYING && (t = !0, i.instreamPause()) | |
}, 250) | |
} | |
}, this) | |
} | |
this.swf.on("instream:state", this.stateHandler, this).on("instream:time", function(e) { | |
this._adModel.set("position", e.position), this._adModel.set("duration", e.duration), this.trigger(i.JWPLAYER_MEDIA_TIME, e) | |
}, this).on("instream:complete", function(e) { | |
this.trigger(i.JWPLAYER_MEDIA_COMPLETE, e) | |
}, this).on("instream:error", function(e) { | |
this.trigger(i.JWPLAYER_MEDIA_ERROR, e) | |
}, this), this.swf.triggerFlash("instream:init"), this.applyProviderListeners = function(e) { | |
this.model.on("change:volume", function(t, n) { | |
e.volume(n) | |
}, this), this.model.on("change:mute", function(t, n) { | |
e.mute(n) | |
}, this), e.volume(this.model.get("volume")), e.mute(this.model.get("mute")), e.off(), e.on(i.JWPLAYER_PLAYER_STATE, this.stateHandler, this), e.on(i.JWPLAYER_MEDIA_TIME, function(e) { | |
this.trigger(i.JWPLAYER_MEDIA_TIME, e) | |
}, this) | |
} | |
}, | |
stateHandler: function(e) { | |
switch (e.newstate) { | |
case r.PLAYING: | |
case r.PAUSED: | |
this._adModel.set("state", e.newstate) | |
} | |
}, | |
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(e) { | |
this.swf.triggerFlash("instream:load", e) | |
}, | |
instreamPlay: function() { | |
this.swf.triggerFlash("instream:play") | |
}, | |
instreamPause: function() { | |
this.swf.triggerFlash("instream:pause") | |
} | |
}, e), s | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(3), n(29), n(4), n(5), n(25)], r = function(e, t, n, i, r, o) { | |
var a = function(a, s) { | |
function l(t) { | |
var r = t || p.getVideo(); | |
if (h !== r) { | |
if (h = r, !r) return; | |
r.off(), r.on("all", function(t, n) { | |
n = e.extend({}, n, { | |
type: t | |
}), this.trigger(t, n) | |
}, f), r.on(i.JWPLAYER_MEDIA_BUFFER_FULL, d), r.on(i.JWPLAYER_PLAYER_STATE, u), r.attachMedia(), r.volume(s.get("volume")), r.mute(s.get("mute") || s.get("autostartMuted")), p.on("change:state", n, f) | |
} | |
} | |
function u(e) { | |
switch (e.newstate) { | |
case r.PLAYING: | |
case r.PAUSED: | |
p.set("state", e.newstate) | |
} | |
} | |
function c(e) { | |
s.trigger(e.type, e), f.trigger(i.JWPLAYER_FULLSCREEN, { | |
fullscreen: e.jwstate | |
}) | |
} | |
function d() { | |
p.getVideo().play() | |
} | |
var p, h, f = e.extend(this, t); | |
return a.on(i.JWPLAYER_FULLSCREEN, function(e) { | |
this.trigger(i.JWPLAYER_FULLSCREEN, e) | |
}, f), this.init = function() { | |
p = (new o).setup({ | |
id: s.get("id"), | |
volume: s.get("volume"), | |
fullscreen: s.get("fullscreen"), | |
mute: s.get("mute") || s.get("autostartMuted"), | |
instreamMode: !0 | |
}), p.on("fullscreenchange", c), this._adModel = p | |
}, f.load = function(e) { | |
p.set("item", 0), p.set("playlistItem", e), p.setActiveItem(e), l(), p.off(i.JWPLAYER_ERROR), p.on(i.JWPLAYER_ERROR, function(e) { | |
this.trigger(i.JWPLAYER_ERROR, e) | |
}, f), p.loadVideo(e) | |
}, f.applyProviderListeners = function(e) { | |
l(e), e.off(i.JWPLAYER_ERROR), e.on(i.JWPLAYER_ERROR, function(e) { | |
this.trigger(i.JWPLAYER_ERROR, e) | |
}, f), s.on("change:volume", function(e, t) { | |
h.volume(t) | |
}, f), s.on("change:mute", function(e, t) { | |
h.mute(t) | |
}, f), s.on("change:autostartMuted", function(e, t) { | |
t || h.mute(s.get("mute")) | |
}, f) | |
}, this.instreamDestroy = function() { | |
p && (p.off(), this.off(), h && (h.detachMedia(), h.off(), p.getVideo() && h.destroy()), p = null, a.off(null, null, this), a = null) | |
}, f.instreamPlay = function() { | |
p.getVideo() && p.getVideo().play(!0) | |
}, f.instreamPause = function() { | |
p.getVideo() && p.getVideo().pause(!0) | |
}, f | |
}; | |
return a | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(64), n(1)], r = function(e, t) { | |
function n(e) { | |
e.mediaController.off(a, e._onPlayAttempt), e.mediaController.off(s, e._triggerFirstFrame), e.mediaController.off(u, e._onTime), document.removeEventListener(p, e._onTabVisible) | |
} | |
function i(e) { | |
n(e), e._triggerFirstFrame = t.once(function() { | |
var t = e._qoeItem; | |
t.tick(l); | |
var i = t.getFirstFrame(); | |
e.mediaController.trigger(l, { | |
loadTime: i | |
}), n(e) | |
}), e._onTime = h(e._triggerFirstFrame), e._onPlayAttempt = function() { | |
e._qoeItem.tick(a) | |
}, e._onTabVisible = function(t) { | |
var n = t.target.hidden; | |
n === !0 ? e._qoeItem.tick(c) : n === !1 && e._qoeItem.tick(d) | |
}, document.addEventListener(p, e._onTabVisible, !1), e.mediaController.on(a, e._onPlayAttempt), e.mediaController.once(s, e._triggerFirstFrame), e.mediaController.on(u, e._onTime) | |
} | |
function r(t) { | |
function n(t, n, r) { | |
t._qoeItem && r && t._qoeItem.end(r.get("state")), t._qoeItem = new e, t._qoeItem.getFirstFrame = function() { | |
var e = this.between(a, l), | |
t = this.between(d, l); | |
return t > 0 && t < e ? t : e | |
}, t._qoeItem.tick(o), t._qoeItem.start(n.get("state")), i(t), n.on("change:state", function(e, n, i) { | |
t._qoeItem.end(i), t._qoeItem.start(n) | |
}) | |
} | |
t.on("change:mediaModel", n) | |
} | |
var o = "playlistItem", | |
a = "playAttempt", | |
s = "providerFirstFrame", | |
l = "firstFrame", | |
u = "time", | |
c = "tabHidden", | |
d = "tabVisible", | |
p = "visibilitychange", | |
h = function(e) { | |
var t = 0; | |
return function(n) { | |
var i = n.position; | |
i > t && e(), t = i | |
} | |
}; | |
return { | |
model: r | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(21), n(49), n(15), n(61), n(22), n(1), n(2), n(4)], r = function(e, t, i, r, o, a, s, l) { | |
function u() { | |
var e = { | |
LOAD_PROMISE_POLYFILL: { | |
method: c, | |
depends: [] | |
}, | |
LOAD_BASE64_POLYFILL: { | |
method: d, | |
depends: [] | |
}, | |
LOADED_POLYFILLS: { | |
method: p, | |
depends: ["LOAD_PROMISE_POLYFILL", "LOAD_BASE64_POLYFILL"] | |
}, | |
LOAD_PLUGINS: { | |
method: h, | |
depends: ["LOADED_POLYFILLS"] | |
}, | |
INIT_PLUGINS: { | |
method: f, | |
depends: ["LOAD_PLUGINS", "SETUP_VIEW"] | |
}, | |
LOAD_SKIN: { | |
method: E, | |
depends: ["LOADED_POLYFILLS"] | |
}, | |
LOAD_PLAYLIST: { | |
method: m, | |
depends: ["LOADED_POLYFILLS"] | |
}, | |
CHECK_FLASH: { | |
method: v, | |
depends: ["LOADED_POLYFILLS"] | |
}, | |
FILTER_PLAYLIST: { | |
method: w, | |
depends: ["LOAD_PLAYLIST", "CHECK_FLASH"] | |
}, | |
SETUP_VIEW: { | |
method: x, | |
depends: ["LOAD_SKIN"] | |
}, | |
SET_ITEM: { | |
method: k, | |
depends: ["INIT_PLUGINS", "FILTER_PLAYLIST"] | |
}, | |
SEND_READY: { | |
method: C, | |
depends: ["SETUP_VIEW", "SET_ITEM"] | |
} | |
}; | |
return e | |
} | |
function c(e) { | |
window.Promise ? e() : n.e(8, function(require) { | |
n(55), e() | |
}) | |
} | |
function d(e) { | |
window.btoa && window.atob ? e() : n.e(10, function(require) { | |
n(53), e() | |
}) | |
} | |
function p(e) { | |
e() | |
} | |
function h(t, n) { | |
window.jwplayerPluginJsonp = e.registerPlugin, _ = e.loadPlugins(n.get("id"), n.get("plugins")), _.on(l.COMPLETE, t), _.on(l.ERROR, a.partial(g, t)), _.load() | |
} | |
function f(e, t, n) { | |
delete window.jwplayerPluginJsonp, _.setupPlugins(n, t), e() | |
} | |
function g(e, t) { | |
A(e, "Could not load plugin", t.message) | |
} | |
function m(e, n) { | |
var i = n.get("playlist"); | |
a.isString(i) ? (L = new t, L.on(l.JWPLAYER_PLAYLIST_LOADED, function(t) { | |
n.set("playlist", t.playlist), n.set("feedid", t.feedid), e() | |
}), L.on(l.JWPLAYER_ERROR, a.partial(y, e)), L.load(i)) : e() | |
} | |
function v(e, t, n) { | |
var i = "flash" === t.get("primary"), | |
o = s.flashVersion(); | |
if (i && o) { | |
var a = n.getContainer(), | |
l = a.parentElement; | |
l || e(); | |
var u = document.createElement("div"); | |
u.id = t.get("id"); | |
var c = "" + u.id + "-" + Math.random().toString(16).substr(2), | |
d = t.get("flashloader"), | |
p = t.get("width"), | |
h = t.get("height"); | |
s.style(u, { | |
position: "relative", | |
width: p.toString().indexOf("%") > 0 ? p : p + "px", | |
height: h.toString().indexOf("%") > 0 ? h : h + "px" | |
}); | |
var f = r.embed(d, u, c, null); | |
l.replaceChild(u, a); | |
var g = function() { | |
m !== -1 && (clearTimeout(m), m = -1, e()) | |
}; | |
f.embedCallback = g; | |
var m = setTimeout(function() { | |
t.set("primary", void 0), t.updateProviders(), g() | |
}, 3e3) | |
} else e() | |
} | |
function w(e, t, n, i, r) { | |
var o = t.get("playlist"), | |
a = r(o); | |
a ? e() : y(e) | |
} | |
function y(e, t) { | |
t && t.message ? A(e, "Error loading playlist", t.message) : A(e, "Error loading player", "No playable sources found") | |
} | |
function j(e, t) { | |
if (a.contains(o.SkinsLoadable, e)) return t + "skins/" + e + ".css" | |
} | |
function b(e) { | |
for (var t = document.styleSheets, n = 0, i = t.length; n < i; n++) | |
if (t[n].href === e) return !0; | |
return !1 | |
} | |
function E(e, t) { | |
var n = t.get("skin"), | |
r = t.get("skinUrl"); | |
if (a.contains(o.SkinsIncluded, n)) return void e(); | |
if (r || (r = j(n, t.get("base"))), a.isString(r) && !b(r)) { | |
t.set("skin-loading", !0); | |
var s = !0, | |
u = new i(r, s); | |
u.addEventListener(l.COMPLETE, function() { | |
t.set("skin-loading", !1) | |
}), u.addEventListener(l.ERROR, function() { | |
t.set("skin", "seven"), t.set("skin-loading", !1) | |
}), u.load() | |
} | |
a.defer(function() { | |
e() | |
}) | |
} | |
function x(e, t, n, i) { | |
i.setup(), e() | |
} | |
function k(e, t) { | |
t.once("itemReady", e), t.setItemIndex(t.get("item")) | |
} | |
function C(e) { | |
e({ | |
type: "complete" | |
}) | |
} | |
function A(e, t, n) { | |
e({ | |
type: "error", | |
msg: t, | |
reason: n | |
}) | |
} | |
var _, L; | |
return { | |
getQueue: u, | |
error: A | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(2)], r = function(e, t) { | |
function n(e) { | |
return "jwplayer." + e | |
} | |
function i() { | |
return e.reduce(this.persistItems, function(e, i) { | |
var r = l[n(i)]; | |
return r && (e[i] = t.serialize(r)), e | |
}, {}) | |
} | |
function r(e, t) { | |
try { | |
l[n(e)] = t | |
} catch (i) { | |
var r = window.jwplayer; | |
r && r.debug && console.error(i) | |
} | |
} | |
function o() { | |
e.each(this.persistItems, function(e) { | |
l.removeItem(n(e)) | |
}) | |
} | |
function a() { | |
this.persistItems = ["volume", "mute", "captionLabel", "qualityLabel"] | |
} | |
function s(t) { | |
e.each(this.persistItems, function(e) { | |
t.on("change:" + e, function(t, n) { | |
r(e, n) | |
}) | |
}) | |
} | |
var l = { | |
removeItem: t.noop | |
}; | |
try { | |
l = window.localStorage | |
} catch (u) {} | |
return e.extend(a.prototype, { | |
getAllItems: i, | |
track: s, | |
clear: o | |
}), a | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(69), n(2)], r = function(e, t) { | |
return n.p = t.loadFrom(), e.selectPlayer | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(8)], r = function(e) { | |
function t(e) { | |
e || n() | |
} | |
function n() { | |
throw new Error("Invalid DFXP file") | |
} | |
var i = e.seconds; | |
return function(r) { | |
t(r); | |
var o = [], | |
a = r.getElementsByTagName("p"), | |
s = 30, | |
l = r.getElementsByTagName("tt"); | |
if (l && l[0]) { | |
var u = parseFloat(l[0].getAttribute("ttp:frameRate")); | |
isNaN(u) || (s = u) | |
} | |
t(a), a.length || (a = r.getElementsByTagName("tt:p"), a.length || (a = r.getElementsByTagName("tts:p"))); | |
for (var c = 0; c < a.length; c++) { | |
for (var d = a[c], p = d.getElementsByTagName("br"), h = 0; h < p.length; h++) { | |
var f = p[h]; | |
f.parentNode.replaceChild(r.createTextNode("\r\n"), f) | |
} | |
var g = d.innerHTML || d.textContent || d.text || "", | |
m = e.trim(g).replace(/>\s+</g, "><").replace(/(<\/?)tts?:/g, "$1").replace(/<br.*?\/>/g, "\r\n"); | |
if (m) { | |
var v = d.getAttribute("begin"), | |
w = d.getAttribute("dur"), | |
y = d.getAttribute("end"), | |
j = { | |
begin: i(v, s), | |
text: m | |
}; | |
y ? j.end = i(y, s) : w && (j.end = j.begin + i(w, s)), o.push(j) | |
} | |
} | |
return o.length || n(), o | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(20), n(8), n(2)], r = function(e, t, n) { | |
var i = "jwplayer", | |
r = function(r, o) { | |
for (var a = [], s = [], l = t.xmlAttribute, u = "default", c = "label", d = "file", p = "type", h = 0; h < r.childNodes.length; h++) { | |
var f = r.childNodes[h]; | |
if (f.prefix === i) { | |
var g = e.localName(f); | |
"source" === g ? (delete o.sources, a.push({ | |
file: l(f, d), | |
"default": l(f, u), | |
label: l(f, c), | |
type: l(f, p) | |
})) : "track" === g ? (delete o.tracks, s.push({ | |
file: l(f, d), | |
"default": l(f, u), | |
kind: l(f, "kind"), | |
label: l(f, c) | |
})) : (o[g] = n.serialize(e.textContent(f)), "file" === g && o.sources && delete o.sources) | |
} | |
o[d] || (o[d] = o.link) | |
} | |
if (a.length) | |
for (o.sources = [], h = 0; h < a.length; h++) a[h].file.length > 0 && (a[h][u] = "true" === a[h][u], a[h].label.length || delete a[h].label, o.sources.push(a[h])); | |
if (s.length) | |
for (o.tracks = [], h = 0; h < s.length; h++) s[h].file.length > 0 && (s[h][u] = "true" === s[h][u], s[h].kind = s[h].kind.length ? s[h].kind : "captions", s[h].label.length || delete s[h].label, o.tracks.push(s[h])); | |
return o | |
}; | |
return r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(20), n(8), n(2)], r = function(e, t, n) { | |
function i(e) { | |
for (var t = [], n = 0; n < s(e); n++) { | |
var i = e.childNodes[n]; | |
"jwplayer" === i.prefix && "mediatypes" === o(i).toLowerCase() && t.push(a(i)) | |
} | |
return t | |
} | |
var r = t.xmlAttribute, | |
o = e.localName, | |
a = e.textContent, | |
s = e.numChildren, | |
l = "media", | |
u = function(e, t) { | |
function c(e) { | |
var t = { | |
zh: "Chinese", | |
nl: "Dutch", | |
en: "English", | |
fr: "French", | |
de: "German", | |
it: "Italian", | |
ja: "Japanese", | |
pt: "Portuguese", | |
ru: "Russian", | |
es: "Spanish" | |
}; | |
return t[e] ? t[e] : e | |
} | |
var d, p, h = "tracks", | |
f = []; | |
for (p = 0; p < s(e); p++) | |
if (d = e.childNodes[p], d.prefix === l) { | |
if (!o(d)) continue; | |
switch (o(d).toLowerCase()) { | |
case "content": | |
if (r(d, "duration") && (t.duration = n.seconds(r(d, "duration"))), r(d, "url")) { | |
t.sources || (t.sources = []); | |
var g = { | |
file: r(d, "url"), | |
type: r(d, "type"), | |
width: r(d, "width"), | |
label: r(d, "label") | |
}, | |
m = i(d); | |
m.length && (g.mediaTypes = m), t.sources.push(g) | |
} | |
s(d) > 0 && (t = u(d, t)); | |
break; | |
case "title": | |
t.title = a(d); | |
break; | |
case "description": | |
t.description = a(d); | |
break; | |
case "guid": | |
t.mediaid = a(d); | |
break; | |
case "thumbnail": | |
t.image || (t.image = r(d, "url")); | |
break; | |
case "player": | |
break; | |
case "group": | |
u(d, t); | |
break; | |
case "subtitle": | |
var v = {}; | |
v.file = r(d, "url"), v.kind = "captions", r(d, "lang").length > 0 && (v.label = c(r(d, "lang"))), f.push(v) | |
} | |
} | |
for (t.hasOwnProperty(h) || (t[h] = []), p = 0; p < f.length; p++) t[h].push(f[p]); | |
return t | |
}; | |
return u | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
var t = { | |
kind: "captions", | |
"default": !1 | |
}, | |
n = function(n) { | |
if (n && n.file) return e.extend({}, t, n) | |
}; | |
return n | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(26), n(2), n(4), n(3), n(1), n(15)], r = function(e, t, n, i, r, o) { | |
function a(e, t, n) { | |
return function() { | |
var i = e.getContainer().getElementsByClassName("jw-overlays")[0]; | |
i && (i.appendChild(n), n.left = i.style.left, n.top = i.style.top, t.displayArea = i) | |
} | |
} | |
function s(e) { | |
function t() { | |
var t = e.displayArea; | |
t && e.resize(t.clientWidth, t.clientHeight) | |
} | |
return function() { | |
t(), setTimeout(t, 400) | |
} | |
} | |
var l = function(l, u) { | |
function c() { | |
m || (m = !0, g = o.loaderstatus.COMPLETE, f.trigger(n.COMPLETE)) | |
} | |
function d() { | |
if (!w && (u && 0 !== r.keys(u).length || c(), !m)) { | |
var i = l.getPlugins(); | |
h = r.after(v, c), r.each(u, function(r, a) { | |
var s = e.getPluginName(a), | |
l = i[s], | |
u = l.getJS(), | |
c = l.getTarget(), | |
d = l.getStatus(); | |
d !== o.loaderstatus.LOADING && d !== o.loaderstatus.NEW && (u && !t.versionCheck(c) && f.trigger(n.ERROR, { | |
message: "Incompatible player version" | |
}), h()) | |
}) | |
} | |
} | |
function p(e) { | |
if (!w) { | |
var i = "File not found"; | |
e.url && t.log(i, e.url), this.off(), this.trigger(n.ERROR, { | |
message: i | |
}), d() | |
} | |
} | |
var h, f = r.extend(this, i), | |
g = o.loaderstatus.NEW, | |
m = !1, | |
v = r.size(u), | |
w = !1; | |
this.setupPlugins = function(n, i) { | |
var o = [], | |
u = l.getPlugins(), | |
c = i.get("plugins"); | |
r.each(c, function(i, l) { | |
var d = e.getPluginName(l), | |
p = u[d], | |
h = p.getFlashPath(), | |
f = p.getJS(), | |
g = p.getURL(); | |
if (h) { | |
var m = r.extend({ | |
name: d, | |
swf: h, | |
pluginmode: p.getPluginmode() | |
}, i); | |
o.push(m) | |
} | |
var v = t.tryCatch(function() { | |
if (f) { | |
var e = c[g]; | |
if (!e) return void t.log("JW Plugin already loaded", d, g); | |
var i = document.createElement("div"); | |
i.id = n.id + "_" + d, i.className = "jw-plugin jw-reset"; | |
var o = r.extend({}, e), | |
l = p.getNewInstance(n, o, i); | |
l.addToPlayer = a(n, l, i), l.resizeHandler = s(l), n.addPlugin(d, l, i) | |
} | |
}); | |
v instanceof t.Error && t.log("ERROR: Failed to load " + d + ".") | |
}), i.set("flashPlugins", o) | |
}, this.load = function() { | |
if (t.exists(u) && "object" !== t.typeOf(u)) return void d(); | |
g = o.loaderstatus.LOADING, r.each(u, function(e, i) { | |
if (t.exists(i)) { | |
var r = l.addPlugin(i); | |
r.on(n.COMPLETE, d), r.on(n.ERROR, p) | |
} | |
}); | |
var e = l.getPlugins(); | |
r.each(e, function(e) { | |
e.load() | |
}), d() | |
}, this.destroy = function() { | |
w = !0, this.off() | |
}, this.getStatus = function() { | |
return g | |
} | |
}; | |
return l | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(26), n(52)], r = function(e, t) { | |
var n = function(n) { | |
this.addPlugin = function(i) { | |
var r = e.getPluginName(i); | |
return n[r] || (n[r] = new t(i)), n[r] | |
}, this.getPlugins = function() { | |
return n | |
} | |
}; | |
return n | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
return {} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(58), n(2), n(1), n(65)], r = function(e, t, n, i) { | |
var r = [{ | |
name: "youtube", | |
supports: function(e) { | |
return t.isYouTube(e.file, e.type) | |
} | |
}, { | |
name: "html5", | |
supports: function(n) { | |
var r = { | |
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" | |
}, | |
o = n.file, | |
a = n.type, | |
s = e(n); | |
if (null !== s) return s; | |
if (t.isRtmp(o, a)) return !1; | |
if (!r[a]) return !1; | |
if (i.canPlayType) { | |
var l = i.canPlayType(r[a]); | |
return !!l | |
} | |
return !1 | |
} | |
}, { | |
name: "flash", | |
supports: function(e) { | |
var i = { | |
flv: "video", | |
f4v: "video", | |
mov: "video", | |
m4a: "video", | |
m4v: "video", | |
mp4: "video", | |
aac: "video", | |
f4a: "video", | |
mp3: "sound", | |
mpeg: "sound", | |
smil: "rtmp" | |
}, | |
r = n.keys(i); | |
if (!t.isFlashSupported()) return !1; | |
var o = e.file, | |
a = e.type; | |
return !!t.isRtmp(o, a) || n.contains(r, a) | |
} | |
}]; | |
return r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(13), n(38), n(134), n(1), n(137)], r = function(e, t, i, r, o) { | |
function a(e) { | |
this.config = e || {}, this.providers = this.reorderProviders(this.config.primary) | |
} | |
a.loaders = { | |
html5: function(e) { | |
n.e(4, function(require) { | |
var t = n(71); | |
s(t), e(t) | |
}) | |
}, | |
flash: function(e) { | |
n.e(5, function(require) { | |
var t = n(57); | |
s(t), e(t) | |
}) | |
}, | |
youtube: function(e) { | |
n.e(6, function(require) { | |
var t = n(59); | |
s(t), e(t) | |
}) | |
} | |
}; | |
var s = a.registerProvider = function(n) { | |
var a = n.getName().name; | |
if (!i[a]) { | |
if (!r.find(t, r.matches({ | |
name: a | |
}))) { | |
if (!r.isFunction(n.supports)) throw { | |
message: "Tried to register a provider with an invalid object" | |
}; | |
t.unshift({ | |
name: a, | |
supports: n.supports | |
}) | |
} | |
o(n.prototype, e), i[a] = n | |
} | |
}; | |
return r.extend(a.prototype, { | |
load: function(e) { | |
return Promise.all(r.map(e, function(e) { | |
return new Promise(function(t) { | |
var n = a.loaders[e.name]; | |
n ? n(t) : t() | |
}) | |
})) | |
}, | |
reorderProviders: function(e) { | |
var n = r.clone(t); | |
if ("flash" === e) { | |
var i = r.indexOf(n, r.findWhere(n, { | |
name: "flash" | |
})), | |
o = n.splice(i, 1)[0], | |
a = r.indexOf(n, r.findWhere(n, { | |
name: "html5" | |
})); | |
n.splice(a, 0, o) | |
} | |
return n | |
}, | |
providerSupports: function(e, t) { | |
return e.supports(t) | |
}, | |
required: function(e, t) { | |
var n = this, | |
i = this.reorderProviders(t); | |
return e = e.slice(), r.compact(r.map(i, function(t) { | |
for (var i = !1, r = e.length; r--;) { | |
var o = e[r], | |
a = n.providerSupports(t, o.sources[0]); | |
a && e.splice(r, 1), i = i || a | |
} | |
if (i) return t | |
})) | |
}, | |
choose: function(e) { | |
e = r.isObject(e) ? e : {}; | |
for (var t = this.providers.length, n = 0; n < t; n++) { | |
var o = this.providers[n]; | |
if (this.providerSupports(o, e)) { | |
var a = t - n - 1; | |
return { | |
priority: a, | |
name: o.name, | |
type: e.type, | |
providerToCheck: o, | |
provider: i[o.name] | |
} | |
} | |
} | |
return null | |
} | |
}), a | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
return function(t) { | |
return e.each(Array.prototype.slice.call(arguments, 1), function(e) { | |
if (e) | |
for (var n in e) n in t || (t[n] = e[n]) | |
}), t | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
return { | |
hasClass: function(e, t) { | |
var n = " " + t + " "; | |
return 1 === e.nodeType && (" " + e.className + " ").replace(/[\t\r\n\f]/g, " ").indexOf(n) >= 0 | |
} | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(3)], r = function(e, t) { | |
var n = e.extend({ | |
get: function(e) { | |
return this.attributes = this.attributes || {}, this.attributes[e] | |
}, | |
set: function(e, t) { | |
if (this.attributes = this.attributes || {}, this.attributes[e] !== t) { | |
var n = this.attributes[e]; | |
this.attributes[e] = t, this.trigger("change:" + e, this, t, n) | |
} | |
}, | |
clone: function() { | |
return e.clone(this.attributes) | |
} | |
}, t); | |
return n | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1)], r = function(e) { | |
var t = {}; | |
return t.isDvr = function(e, t) { | |
return Math.abs(e) >= Math.max(t, 0) | |
}, t.streamType = function(n, i) { | |
var r = e.isUndefined(i) ? 120 : i, | |
o = "VOD"; | |
return n === 1 / 0 ? o = "LIVE" : n < 0 && (o = t.isDvr(n, r) ? "DVR" : "LIVE"), o | |
}, t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
var e = function(e, n, i) { | |
n = n || this, i = i || []; | |
var r = window.jwplayer; | |
if (r && r.debug) return e.apply(n, i); | |
try { | |
return e.apply(n, i) | |
} catch (o) { | |
return new t(e.name, o) | |
} | |
}, | |
t = function(e, t) { | |
this.name = e, this.message = t.message || t.toString(), this.error = t | |
}; | |
return { | |
tryCatch: e, | |
Error: t | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(1)], r = function(e) { | |
return function(t, n, i) { | |
var r = "jw-breakpoint-", | |
o = n, | |
a = i; | |
r += o >= 1280 ? "7" : o >= 960 ? "6" : o >= 800 ? "5" : o >= 640 ? "4" : o >= 540 ? "3" : o >= 420 ? "2" : o >= 320 ? "1" : "0", e.replaceClass(t, /jw-breakpoint-\d+/, r), e.toggleClass(t, "jw-orientation-portrait", a > o) | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(23), n(5), n(1)], r = function(e, t, i, r) { | |
var o = t.style, | |
a = { | |
back: !0, | |
fontSize: 14, | |
fontFamily: "Arial,sans-serif", | |
fontOpacity: 100, | |
color: "#FFF", | |
backgroundColor: "#000", | |
backgroundOpacity: 100, | |
edgeStyle: null, | |
windowColor: "#FFF", | |
windowOpacity: 0, | |
preprocessor: r.identity | |
}, | |
s = function(s) { | |
function l(e, n, i) { | |
if (t.css("#" + e + " .jw-text-track-display", n, e), t.css("#" + e + " .jw-text-track-cue", i, e), t.css("#" + e + " .jw-video::-webkit-media-text-track-display", n, e), t.css("#" + e + " .jw-video::cue", i, e), i.backgroundColor) { | |
var r = "{background-color: " + i.backgroundColor + " !important;}"; | |
t.css("#" + e + " .jw-video::-webkit-media-text-track-display-backdrop", r, e) | |
} | |
} | |
function u(e, n, i) { | |
var r = t.hexToRgba("#000000", i); | |
"dropshadow" === e ? n.textShadow = "0 2px 1px " + r : "raised" === e ? n.textShadow = "0 0 5px " + r + ", 0 1px 5px " + r + ", 0 2px 5px " + r : "depressed" === e ? n.textShadow = "0 -2px 1px " + r : "uniform" === e && (n.textShadow = "-2px 0 1px " + r + ",2px 0 1px " + r + ",0 -2px 1px " + r + ",0 2px 1px " + r + ",-1px 1px 1px " + r + ",1px 1px 1px " + r + ",1px -1px 1px " + r + ",1px 1px 1px " + r) | |
} | |
function c(e) { | |
f = e, this.selectCues(p, f) | |
} | |
function d() { | |
s.get("renderCaptionsNatively") || n.e(7, function(require) { | |
w = n(56) | |
}) | |
} | |
var p, h, f, g, m, v, w, y = {}; | |
g = document.createElement("div"), g.className = "jw-captions jw-reset", this.show = function() { | |
g.className = "jw-captions jw-captions-enabled jw-reset" | |
}, this.hide = function() { | |
g.className = "jw-captions jw-reset" | |
}, this.populate = function(e) { | |
return h = [], p = e, e ? void this.selectCues(e, f) : (h = [], void this.renderCues()) | |
}, this.resize = function() { | |
var e = g.clientWidth, | |
t = Math.pow(e / 400, .6); | |
if (t) { | |
var n = y.fontSize * t; | |
o(g, { | |
fontSize: Math.floor(2 * n) / 2 + "px" | |
}) | |
} | |
this.renderCues(!0) | |
}, this.renderCues = function(e) { | |
e = !!e, w && w.WebVTT.processCues(window, h, g, e) | |
}, this.selectCues = function(e, t) { | |
var n, i; | |
e && e.data && t && (i = this.getAlignmentPosition(e, t), i !== !1 && (n = this.getCurrentCues(e.data, i), this.updateCurrentCues(n), this.renderCues(!0))) | |
}, this.getCurrentCues = function(e, t) { | |
return r.filter(e, function(e) { | |
return t >= e.startTime && (!e.endTime || t <= e.endTime) | |
}) | |
}, this.updateCurrentCues = function(e) { | |
return e.length ? r.difference(e, h).length && (m.className = "jw-captions-window jw-reset jw-captions-window-active", h = e) : h = [], h | |
}, this.getAlignmentPosition = function(e, t) { | |
var n = e.source, | |
i = t.metadata; | |
return n ? !(!i || !r.isNumber(i[n])) && i[n] : e.embedded && t.duration < 0 ? t.position - t.duration : t.position | |
}, this.clear = function() { | |
e.empty(g) | |
}, this.setContainerHeight = function(e) { | |
o(g, { | |
height: e | |
}) | |
}, this.setup = function(e, n) { | |
m = document.createElement("div"), v = document.createElement("span"), m.className = "jw-captions-window jw-reset", v.className = "jw-captions-text jw-reset", y = r.extend({}, a, n); | |
var i = y.fontOpacity, | |
c = y.windowOpacity, | |
d = y.edgeStyle, | |
p = y.backgroundColor, | |
h = {}, | |
f = { | |
color: t.hexToRgba(y.color, i), | |
fontFamily: y.fontFamily, | |
fontStyle: y.fontStyle, | |
fontWeight: y.fontWeight, | |
textDecoration: y.textDecoration | |
}; | |
c && (h.backgroundColor = t.hexToRgba(y.windowColor, c)), u(d, f, i), y.back ? f.backgroundColor = t.hexToRgba(p, y.backgroundOpacity) : null === d && u("uniform", f), o(m, h), o(v, f), l(e, h, f), m.appendChild(v), g.appendChild(m), this.populate(s.get("captionsTrack")), s.set("captions", y) | |
}, this.element = function() { | |
return g | |
}, s.on("change:playlistItem", function() { | |
f = null, h = [] | |
}, this), s.on("change:captionsTrack", function(e, t) { | |
this.populate(t) | |
}, this), | |
s.mediaController.on("seek", function() { | |
h = [] | |
}, this), s.mediaController.on("time seek", c, this), s.mediaController.on("subtitlesTrackData", function() { | |
this.selectCues(p, f) | |
}, this), s.on("change:state", function(e, t) { | |
switch (t) { | |
case i.IDLE: | |
case i.ERROR: | |
case i.COMPLETE: | |
this.hide(); | |
break; | |
default: | |
this.show() | |
} | |
}, this), s.on("itemReady", d, this) | |
}; | |
return s | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(7), n(4), n(3), n(1)], r = function(e, t, n, i) { | |
var r = function(r, o, a) { | |
function s(e) { | |
if (!r.get("flashBlocked")) return c ? void c(e) : void f.trigger(e.type === t.touchEvents.CLICK ? "click" : "tap") | |
} | |
function l() { | |
return d ? void d() : void f.trigger("doubleClick") | |
} | |
var u, c, d, p = { | |
enableDoubleTap: !0, | |
useMove: !0 | |
}; | |
i.extend(this, n), u = o, this.element = function() { | |
return u | |
}; | |
var h = new e(u, i.extend(p, a)); | |
h.on("click tap", s), h.on("doubleClick doubleTap", l), h.on("move", function() { | |
f.trigger("move") | |
}), h.on("over", function() { | |
f.trigger("over") | |
}), h.on("out", function() { | |
f.trigger("out") | |
}), this.clickHandler = s; | |
var f = this; | |
this.setAlternateClickHandlers = function(e, t) { | |
c = e, d = t || null | |
}, this.revertAlternateClickHandlers = function() { | |
c = null, d = null | |
} | |
}; | |
return r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(2), n(30)], r = function(e, t, n) { | |
function i(e, t) { | |
this.time = e, this.text = t, this.el = document.createElement("div"), this.el.className = "jw-cue jw-reset" | |
} | |
e.extend(i.prototype, { | |
align: function(e) { | |
if ("%" === this.time.toString().slice(-1)) this.pct = this.time; | |
else { | |
var t = this.time / e * 100; | |
this.pct = t + "%" | |
} | |
this.el.style.left = this.pct | |
} | |
}); | |
var r = { | |
loadChapters: function(e) { | |
t.ajax(e, this.chaptersLoaded.bind(this), this.chaptersFailed, { | |
plainText: !0 | |
}) | |
}, | |
chaptersLoaded: function(t) { | |
var i = n(t.responseText); | |
e.isArray(i) && (e.each(i, this.addCue, this), this.drawCues()) | |
}, | |
chaptersFailed: function() {}, | |
addCue: function(e) { | |
this.cues.push(new i(e.begin, e.text)) | |
}, | |
drawCues: function() { | |
var t = this._model.mediaModel.get("duration"); | |
if (!t || t <= 0) return void this._model.mediaModel.once("change:duration", this.drawCues, this); | |
var n = this; | |
e.each(this.cues, function(e) { | |
e.align(t), e.el.addEventListener("mouseover", function() { | |
n.activeCue = e | |
}), e.el.addEventListener("mouseout", function() { | |
n.activeCue = null | |
}), n.elementRail.appendChild(e.el) | |
}) | |
}, | |
resetChapters: function() { | |
e.each(this.cues, function(e) { | |
e.el.parentNode && e.el.parentNode.removeChild(e.el) | |
}, this), this.cues = [] | |
} | |
}; | |
return r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(36), n(2), n(1), n(7), n(90)], r = function(e, t, n, i, r) { | |
var o = e.extend({ | |
setup: function(e, o, a) { | |
a = a || {}, this.iconUI || (this.iconUI = new i(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(), e = n.isArray(e) ? e : [], t.toggleClass(this.el, "jw-hidden", e.length < 2); | |
var s = e.length > 2 || 2 === e.length && a && a.toggle === !1, | |
l = !s && 2 === e.length; | |
if (t.toggleClass(this.el, "jw-toggle", l || !!a.isToggle), t.toggleClass(this.el, "jw-button-color", !l), this.isActive = s || l, s) { | |
t.removeClass(this.el, "jw-off"), this.iconUI.on("tap", this.toggleOpenStateListener).on("over", this.openTooltipListener).on("out", this.closeTooltipListener); | |
var u = r(e), | |
c = t.createElement(u); | |
this.addContent(c), this.contentUI = new i(this.content).on("click tap", this.selectListener) | |
} else l && this.iconUI.on("click tap", this.toggleValueListener); | |
this.selectItem(o) | |
}, | |
toggleValue: function() { | |
this.trigger("toggleValue") | |
}, | |
select: function(e) { | |
if (e.target.parentElement === this.content) { | |
var i = t.classList(e.target), | |
r = n.find(i, function(e) { | |
return 0 === e.indexOf("jw-item") | |
}); | |
r && (this.trigger("select", parseInt(r.split("-")[2])), this.closeTooltipListener()) | |
} | |
}, | |
selectItem: function(e) { | |
if (this.content) | |
for (var n = 0; n < this.content.children.length; n++) t.toggleClass(this.content.children[n], "jw-active-option", e === n); | |
t.toggleClass(this.el, "jw-off", 0 === e) | |
}, | |
reset: function() { | |
t.addClass(this.el, "jw-off"), this.iconUI.off(), this.contentUI && this.contentUI.off().destroy(), this.removeContent() | |
} | |
}); | |
return o | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(32), n(7), n(1), n(2), n(91)], r = function(e, t, n, i, r) { | |
var o = function(e, t, n, i) { | |
this._model = e, this._api = t, this._nextButton = n, this._playerElement = i, this.nextUpText = e.get("localization").nextUp, this.nextUpClose = e.get("localization").nextUpClose, this.state = "tooltip" | |
}; | |
return n.extend(o.prototype, { | |
setup: function() { | |
this.container = document.createElement("div"), this.container.className = "jw-nextup-container jw-reset"; | |
var e = i.createElement(r()); | |
this.addContent(e), this.closeButton = this.content.querySelector(".jw-nextup-close"), this.closeButton.setAttribute("aria-label", this.nextUpClose), this.tooltip = this.content.querySelector(".jw-nextup-tooltip"), this.showNextUp = !1, this.streamType = void 0, this._model.on("change:mediaModel", this.onMediaModel, this), this._model.on("change:streamType", this.onStreamType, this), this._model.on("change:nextUp", this.onNextUp, this), this._model.on("change:duration", this.onDuration, this), this._model.on("change:position", this.onElapsed, this), this.onMediaModel(this._model, this._model.get("mediaModel")), new t(this.closeButton, { | |
directSelect: !0 | |
}).on("click tap", this.hide, this), new t(this.tooltip).on("click tap", this.click, this), new t(this._nextButton.element(), { | |
useHover: !0, | |
directSelect: !0 | |
}).on("click tap", this.click, this).on("over", this.show, this).on("out", this.hoverOut, this) | |
}, | |
loadThumbnail: function(e) { | |
return this.nextUpImage = new Image, this.nextUpImage.onload = function() { | |
this.nextUpImage.onload = null | |
}.bind(this), this.nextUpImage.src = e, { | |
backgroundImage: 'url("' + e + '")' | |
} | |
}, | |
click: function() { | |
this.state = "tooltip", this._api.next(), this.hide() | |
}, | |
show: function() { | |
"opened" === this.state || this.hideToolTip || (e.addClass(this.container, "jw-nextup-container-visible"), e.addClass(this._playerElement, "jw-flag-nextup")) | |
}, | |
hide: function() { | |
e.removeClass(this.container, "jw-nextup-container-visible"), e.removeClass(this.container, "jw-nextup-sticky"), e.removeClass(this._playerElement, "jw-flag-nextup"), "opened" === this.state && (this.state = "closed") | |
}, | |
hoverOut: function() { | |
"opened" !== this.state && this.hide() | |
}, | |
showTilEnd: function() { | |
"opened" !== this.state && "closed" !== this.state && (e.addClass(this.container, "jw-nextup-sticky"), this.show(), this.state = "opened") | |
}, | |
setNextUpItem: function(t) { | |
var n = this; | |
setTimeout(function() { | |
if (n.hideToolTip = !(t.title || t.image), !n.hideToolTip) { | |
if (n.thumbnail = n.content.querySelector(".jw-nextup-thumbnail"), e.toggleClass(n.thumbnail, "jw-nextup-thumbnail-visible", !!t.image), t.image) { | |
var r = n.loadThumbnail(t.image); | |
i.style(n.thumbnail, r) | |
} | |
n.header = n.content.querySelector(".jw-nextup-header"), n.header.innerText = n.nextUpText, n.title = n.content.querySelector(".jw-nextup-title"); | |
var o = t.title; | |
n.title.innerText = o ? i.createElement(o).textContent : "" | |
} | |
}, 500) | |
}, | |
onNextUp: function(e, t) { | |
return t ? (this.showNextUp = !0, this._nextButton.toggle(!0), void this.setNextUpItem(t)) : (this._nextButton.toggle(!1), void(this.showNextUp = !1)) | |
}, | |
onDuration: function(e, t) { | |
if (t) { | |
var n = i.seconds(e.get("nextupoffset") || -10); | |
n < 0 && (n += t), this.offset = n | |
} | |
}, | |
onMediaModel: function(e, t) { | |
t.on("change:state", function(e, t) { | |
"complete" === t && (this.state = "tooltip", this.hide()) | |
}, this) | |
}, | |
onElapsed: function(e, t) { | |
"VOD" === this.streamType && this.showNextUp && t >= this.offset ? this.showTilEnd() : "opened" !== this.state && "closed" !== this.state || (this.state = "tooltip", this.hide()) | |
}, | |
onStreamType: function(e, t) { | |
this.streamType = t | |
}, | |
element: function() { | |
return this.container | |
}, | |
addContent: function(e) { | |
this.content && this.removeContent(), this.content = e, this.container.appendChild(e) | |
}, | |
removeContent: function() { | |
this.content && (this.container.removeChild(this.content), this.content = null) | |
} | |
}), o | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(2), n(30)], r = function(e, t, n) { | |
function i(e) { | |
this.begin = e.begin, this.end = e.end, this.img = e.text | |
} | |
var r = { | |
loadThumbnails: function(e) { | |
e && (this.vttPath = e.split("?")[0].split("/").slice(0, -1).join("/"), this.individualImage = null, t.ajax(e, this.thumbnailsLoaded.bind(this), this.thumbnailsFailed.bind(this), { | |
plainText: !0 | |
})) | |
}, | |
thumbnailsLoaded: function(t) { | |
var r = n(t.responseText); | |
e.isArray(r) && (e.each(r, function(e) { | |
this.thumbnails.push(new i(e)) | |
}, this), this.drawCues()) | |
}, | |
thumbnailsFailed: function() {}, | |
chooseThumbnail: function(t) { | |
var n = e.sortedIndex(this.thumbnails, { | |
end: t | |
}, e.property("end")); | |
n >= this.thumbnails.length && (n = this.thumbnails.length - 1); | |
var i = this.thumbnails[n].img; | |
return i.indexOf("://") < 0 && (i = this.vttPath ? this.vttPath + "/" + i : i), i | |
}, | |
loadThumbnail: function(t) { | |
var n = this.chooseThumbnail(t), | |
i = { | |
display: "block", | |
margin: "0 auto", | |
backgroundPosition: "0 0" | |
}, | |
r = n.indexOf("#xywh"); | |
if (r > 0) try { | |
var o = /(.+)\#xywh=(\d+),(\d+),(\d+),(\d+)/.exec(n); | |
n = o[1], i.backgroundPosition = o[2] * -1 + "px " + o[3] * -1 + "px", i.width = o[4], i.height = o[5] | |
} catch (a) { | |
return | |
} else this.individualImage || (this.individualImage = new Image, this.individualImage.onload = e.bind(function() { | |
this.individualImage.onload = null, this.timeTip.image({ | |
width: this.individualImage.width, | |
height: this.individualImage.height | |
}) | |
}, this), this.individualImage.src = n); | |
return i.backgroundImage = 'url("' + n + '")', i | |
}, | |
showThumbnail: function(e) { | |
this.thumbnails.length < 1 || this.timeTip.image(this.loadThumbnail(e)) | |
}, | |
resetThumbnails: function() { | |
this.timeTip.image({ | |
backgroundImage: "", | |
width: 0, | |
height: 0 | |
}), this.thumbnails = [] | |
} | |
}; | |
return r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(2), n(22), n(35), n(36), n(145), n(148)], r = function(e, t, n, i, r, o, a) { | |
function s() { | |
return { | |
reason: "interaction" | |
} | |
} | |
var l = r.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 e = document.createElement("div"); | |
e.className = "jw-time-tip jw-background-color jw-reset", e.appendChild(this.img), e.appendChild(this.text), t.removeClass(this.el, "jw-hidden"), this.addContent(e) | |
}, | |
image: function(e) { | |
t.style(this.img, e) | |
}, | |
update: function(e) { | |
this.text.innerHTML = e | |
} | |
}), | |
u = i.extend({ | |
constructor: function(t, n) { | |
this._model = t, this._api = n, this.timeTip = new l("jw-tooltip-time"), this.timeTip.setup(), this.cues = [], this.seekThrottled = e.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), i.call(this, "jw-slider-time", "horizontal") | |
}, | |
setup: function() { | |
i.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(t) { | |
if (this.activeCue && e.isNumber(this.activeCue.pct)) return this.activeCue.pct; | |
var i = this._model.get("duration"), | |
r = this._model.get("streamType"); | |
if ("DVR" === r) { | |
var o = (1 - t / 100) * i, | |
a = this._model.get("position"), | |
s = Math.min(o, Math.max(n.dvrSeekLimit, a)), | |
l = 100 * s / i; | |
return 100 - l | |
} | |
return t | |
}, | |
update: function(e) { | |
this.seekTo = e, this.seekThrottled(), i.prototype.update.apply(this, arguments) | |
}, | |
dragStart: function() { | |
this._model.set("scrubbing", !0), i.prototype.dragStart.apply(this, arguments) | |
}, | |
dragEnd: function() { | |
i.prototype.dragEnd.apply(this, arguments), this._model.set("scrubbing", !1) | |
}, | |
onSeeked: function() { | |
this._model.get("scrubbing") && this.performSeek() | |
}, | |
onBuffer: function(e, t) { | |
this.updateBuffer(t) | |
}, | |
onPosition: function(e, t) { | |
this.updateTime(t, e.get("duration")) | |
}, | |
onDuration: function(e, t) { | |
this.updateTime(e.get("position"), t) | |
}, | |
updateTime: function(e, t) { | |
var n = 0; | |
if (t) { | |
var i = this._model.get("streamType"); | |
"DVR" === i ? n = (t - e) / t * 100 : "VOD" === i && (n = e / t * 100) | |
} | |
this.render(n) | |
}, | |
onPlaylistItem: function(t, n) { | |
this.reset(), t.mediaModel.on("seeked", this.onSeeked, this); | |
var i = n.tracks; | |
e.each(i, function(e) { | |
e && e.kind && "thumbnails" === e.kind.toLowerCase() ? this.loadThumbnails(e.file) : e && e.kind && "chapters" === e.kind.toLowerCase() && this.loadChapters(e.file) | |
}, this) | |
}, | |
performSeek: function() { | |
var e, t = this.seekTo, | |
n = this._model.get("duration"), | |
i = this._model.get("streamType"); | |
0 === n ? this._api.play(s()) : "DVR" === i ? (e = (100 - t) / 100 * n, this._api.seek(e, s())) : (e = t / 100 * n, this._api.seek(Math.min(e, n - .25), s())) | |
}, | |
showTimeTooltip: function(e) { | |
var i = this._model.get("duration"); | |
if (0 !== i) { | |
var r = t.bounds(this.elementRail), | |
o = e.pageX ? e.pageX - r.left : e.x; | |
o = t.between(o, 0, r.width); | |
var a = o / r.width, | |
s = i * a; | |
i < 0 && (s = i - s); | |
var l; | |
if (this.activeCue) l = this.activeCue.text; | |
else { | |
var u = !0; | |
l = t.timeFormat(s, u), i < 0 && s > n.dvrSeekLimit && (l = "Live") | |
} | |
this.timeTip.update(l), this.showThumbnail(s), t.addClass(this.timeTip.el, "jw-open"), this.timeTip.el.style.left = 100 * a + "%" | |
} | |
}, | |
hideTimeTooltip: function() { | |
t.removeClass(this.timeTip.el, "jw-open") | |
}, | |
reset: function() { | |
this.resetChapters(), this.resetThumbnails() | |
} | |
}); | |
return e.extend(u.prototype, o, a), u | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(36), n(35), n(7), n(2)], r = function(e, t, n, i) { | |
var r = e.extend({ | |
constructor: function(r, o, a) { | |
this._model = r, e.call(this, o, a, !0), this.volumeSlider = new t("jw-slider-volume jw-volume-tip", "vertical"), this.addContent(this.volumeSlider.element()), this.volumeSlider.on("update", function(e) { | |
this.trigger("update", e) | |
}, this), i.removeClass(this.el, "jw-hidden"), new n(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 r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(1), n(3), n(22), n(7), n(35), n(149), n(146), n(150), n(66)], r = function(e, t, n, i, r, o, a, s, l, u) { | |
function c(e, t) { | |
var n = document.createElement("span"); | |
return n.className = "jw-text jw-reset " + e, t && n.setAttribute("role", t), n | |
} | |
function d(e, t) { | |
var n = new s(e, t); | |
return n | |
} | |
function p() { | |
return { | |
reason: "interaction" | |
} | |
} | |
function h(e, n) { | |
var i = document.createElement("div"); | |
return i.className = "jw-group jw-controlbar-" + e + "-group jw-reset", t.each(n, function(e) { | |
e.element && (e = e.element()), i.appendChild(e) | |
}), i | |
} | |
function f(t, n) { | |
this._api = t, this._model = n, this._isMobile = e.isMobile(), this._localization = this._model.get("localization"), this.setup() | |
} | |
return t.extend(f.prototype, n, { | |
setup: function() { | |
this.build(), this.initialize() | |
}, | |
build: function() { | |
var n, i, r, s = new a(this._model, this._api), | |
f = this._localization.play, | |
g = this._localization.next, | |
m = this._localization.volume, | |
v = this._localization.rewind; | |
this._isMobile || (n = new o("jw-slider-volume", "horizontal"), i = new l(this._model, "jw-icon-volume", m)), this._model.get("sdkplatform") || e.isIOS(8) || e.isIOS(9) || (r = u("jw-icon-volume", this._api.setMute, m)), this.elements = { | |
alt: c("jw-text-alt", "status"), | |
play: u("jw-icon-playback", this._api.play.bind(this, p()), f), | |
rewind: u("jw-icon-rewind", this.rewind.bind(this), v), | |
next: u("jw-icon-next", null, g), | |
elapsed: c("jw-text-elapsed", "timer"), | |
time: s, | |
duration: c("jw-text-duration", "timer"), | |
hd: d("jw-icon-hd", this._localization.hd), | |
cc: d("jw-icon-cc", this._localization.cc), | |
audiotracks: d("jw-icon-audio-tracks", this._localization.audioTracks), | |
mute: r, | |
volume: n, | |
volumetooltip: i, | |
cast: u("jw-icon-cast jw-off", this._api.castToggle, this._localization.cast), | |
fullscreen: u("jw-icon-fullscreen", this._api.setFullscreen, this._localization.fullscreen) | |
}, this.layout = { | |
left: [this.elements.play, this.elements.rewind, this.elements.elapsed], | |
center: [this.elements.time, this.elements.alt], | |
right: [this.elements.duration, this.elements.next, this.elements.hd, this.elements.cc, this.elements.audiotracks, this.elements.mute, this.elements.cast, this.elements.volume, this.elements.volumetooltip, this.elements.fullscreen] | |
}, this.menus = t.compact([this.elements.hd, this.elements.cc, this.elements.audiotracks, this.elements.volumetooltip]), this.layout.left = t.compact(this.layout.left), this.layout.center = t.compact(this.layout.center), this.layout.right = t.compact(this.layout.right), this.el = document.createElement("div"), this.el.className = "jw-controlbar jw-background-color jw-reset", this.elements.left = h("left", this.layout.left), this.elements.center = h("center", this.layout.center), this.elements.right = h("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.fullscreen.show(), this.elements.mute && this.elements.mute.show(), this.onVolume(this._model, this._model.get("volume")), this.onPlaylistItem(), 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: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:streamType", this.onStreamTypeChange, this), this.elements.volume && this.elements.volume.on("update", function(e) { | |
var t = e.percentage; | |
this._api.setVolume(t) | |
}, this), this.elements.volumetooltip && (this.elements.volumetooltip.on("update", function(e) { | |
var t = e.percentage; | |
this._api.setVolume(t) | |
}, this), this.elements.volumetooltip.on("toggleValue", function() { | |
this._api.setMute() | |
}, this)), this.elements.hd.on("select", function(e) { | |
this._model.getVideo().setCurrentQuality(e) | |
}, 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(e) { | |
this._api.setCurrentCaptions(e) | |
}, this), this.elements.cc.on("toggleValue", function() { | |
var e = this._model.get("captionsIndex"); | |
this._api.setCurrentCaptions(e ? 0 : 1) | |
}, this), this.elements.audiotracks.on("select", function(e) { | |
this._model.getVideo().setCurrentAudioTrack(e) | |
}, this), new r(this.elements.duration).on("click tap", function() { | |
if ("DVR" === this._model.get("streamType")) { | |
var e = this._model.get("position"); | |
this._api.seek(Math.max(i.dvrSeekLimit, e), p()) | |
} | |
}, this), new r(this.el).on("click tap drag", function() { | |
this.trigger("userAction") | |
}, this), t.each(this.menus, function(e) { | |
e.on("open-tooltip", this.closeMenus, this) | |
}, this) | |
}, | |
onCaptionsList: function(e, t) { | |
var n = e.get("captionsIndex"); | |
this.elements.cc.setup(t, n, { | |
isToggle: !0 | |
}) | |
}, | |
onCaptionsIndex: function(e, t) { | |
this.elements.cc.selectItem(t) | |
}, | |
onPlaylistItem: function() { | |
this.elements.time.updateBuffer(0), this.elements.time.render(0), this.elements.duration.innerHTML = "00:00", this.elements.elapsed.innerHTML = "00:00", this.elements.audiotracks.setup() | |
}, | |
onMediaModel: function(e, n) { | |
n.on("change:levels", function(e, t) { | |
this.elements.hd.setup(t, e.get("currentLevel")) | |
}, this), n.on("change:currentLevel", function(e, t) { | |
this.elements.hd.selectItem(t) | |
}, this), n.on("change:audioTracks", function(e, n) { | |
var i = t.map(n, function(e) { | |
return { | |
label: e.name | |
} | |
}); | |
this.elements.audiotracks.setup(i, e.get("currentAudioTrack"), { | |
toggle: !1 | |
}) | |
}, this), n.on("change:currentAudioTrack", function(e, t) { | |
this.elements.audiotracks.selectItem(t) | |
}, this) | |
}, | |
onVolume: function(e, t) { | |
this.renderVolume(e.get("mute"), t) | |
}, | |
onMute: function(e, t) { | |
this.renderVolume(t, e.get("volume")) | |
}, | |
renderVolume: function(t, n) { | |
this.elements.mute && e.toggleClass(this.elements.mute.element(), "jw-off", t), this.elements.volume && this.elements.volume.render(t ? 0 : n), this.elements.volumetooltip && (this.elements.volumetooltip.volumeSlider.render(t ? 0 : n), e.toggleClass(this.elements.volumetooltip.element(), "jw-off", t)) | |
}, | |
onCastAvailable: function(e, t) { | |
this.elements.cast.toggle(t) | |
}, | |
onCastActive: function(t, n) { | |
e.toggleClass(this.elements.cast.element(), "jw-off", !n) | |
}, | |
onElapsed: function(t, n) { | |
var i, r = t.get("duration"); | |
i = "DVR" === t.get("streamType") ? "-" + e.timeFormat(-r) : e.timeFormat(n), this.elements.elapsed.innerHTML = i | |
}, | |
onDuration: function(t, n) { | |
var i; | |
i = "DVR" === t.get("streamType") ? "Live" : e.timeFormat(n), this.elements.duration.innerHTML = i | |
}, | |
onFullscreen: function(t, n) { | |
e.toggleClass(this.elements.fullscreen.element(), "jw-off", n) | |
}, | |
element: function() { | |
return this.el | |
}, | |
setAltText: function(e) { | |
this.elements.alt.innerHTML = e | |
}, | |
addCues: function(e) { | |
this.elements.time && (t.each(e, function(e) { | |
this.elements.time.addCue(e) | |
}, this), this.elements.time.drawCues()) | |
}, | |
closeMenus: function(e) { | |
t.each(this.menus, function(t) { | |
e && e.target === t.el || t.closeTooltip(e) | |
}) | |
}, | |
hideComponents: function() { | |
this.closeMenus() | |
}, | |
rewind: function() { | |
var e = this._model.get("position"), | |
t = this._model.get("duration"), | |
n = e - 10, | |
i = 0; | |
"DVR" === this._model.get("streamType") && (i = t), this._api.seek(Math.max(n, i), p()) | |
}, | |
onStreamTypeChange: function(e) { | |
var t = e.get("streamType"); | |
this.elements.rewind.toggle("LIVE" !== t), "DVR" === t && (this.elements.duration.innerHTML = "Live") | |
} | |
}), f | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(3), n(7), n(86), n(1)], r = function(e, t, n, i, r) { | |
var o = function(o) { | |
r.extend(this, t), this.model = o, this.el = e.createElement(i({ | |
ariaLabel: this.model.get("localization").playback | |
})); | |
var a = this; | |
this.iconUI = new n(this.el).on("click tap", function(e) { | |
a.trigger(e.type) | |
}), this.model.on("change:state", function(e, t) { | |
var n = a.el.getElementsByClassName("jw-icon-display"); | |
if (n.length) { | |
var i = a.model.get("localization"), | |
r = i.playback; | |
switch (t) { | |
case "buffering": | |
r = i.buffer; | |
break; | |
case "playing": | |
r = i.pause; | |
break; | |
case "complete": | |
r = i.replay; | |
break; | |
case "error": | |
r = "" | |
} | |
"" === r ? n[0].removeAttribute("aria-label") : n[0].setAttribute("aria-label", r) | |
} | |
}) | |
}; | |
return r.extend(o.prototype, { | |
element: function() { | |
return this.el | |
} | |
}), o | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(87), n(2), n(1), n(7)], r = function(e, t, n, i) { | |
var r = function(e) { | |
this.model = e, this.setup(), this.model.on("change:dock", this.render, this) | |
}; | |
return n.extend(r.prototype, { | |
setup: function() { | |
var n = this.model.get("dock"), | |
r = this.click.bind(this), | |
o = e(n); | |
this.el = t.createElement(o), new i(this.el).on("click tap", r) | |
}, | |
getDockButton: function(e) { | |
return t.hasClass(e.target, "jw-dock-button") ? e.target : t.hasClass(e.target, "jw-dock-text") ? e.target.parentElement.parentElement : e.target.parentElement | |
}, | |
click: function(e) { | |
var t = this.getDockButton(e), | |
i = t.getAttribute("button"), | |
r = this.model.get("dock"), | |
o = n.findWhere(r, { | |
id: i | |
}); | |
o && o.callback && o.callback(e) | |
}, | |
render: function() { | |
var n = this.model.get("dock"), | |
i = e(n), | |
r = t.createElement(i); | |
this.el.innerHTML = r.innerHTML | |
}, | |
element: function() { | |
return this.el | |
} | |
}), r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(88)], r = function(e) { | |
function t(t, n, i, r) { | |
return e({ | |
id: t, | |
skin: n, | |
title: i, | |
body: r | |
}) | |
} | |
return t | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(7), n(2), n(4), n(1), n(3), n(89)], r = function(e, t, n, i, r, o) { | |
var a = t.style, | |
s = { | |
linktarget: "_blank", | |
margin: 8, | |
hide: !1, | |
position: "top-right" | |
}, | |
l = function(l) { | |
var u, c, d = new Image, | |
p = i.extend({}, l.get("logo")); | |
return i.extend(this, r), this.setup = function(r) { | |
if (c = i.extend({}, s, p), c.hide = "true" === c.hide.toString(), u = t.createElement(o()), c.file) { | |
c.hide && t.addClass(u, "jw-hide"), t.addClass(u, "jw-logo-" + (c.position || s.position)), "top-right" === c.position && (l.on("change:dock", this.topRight, this), l.on("change:controls", this.topRight, this), this.topRight(l)), l.set("logo", c), d.onload = function() { | |
var e = { | |
backgroundImage: 'url("' + this.src + '")', | |
width: this.width, | |
height: this.height | |
}; | |
if (c.margin !== s.margin) { | |
var t = /(\w+)-(\w+)/.exec(c.position); | |
3 === t.length && (e["margin-" + t[1]] = c.margin, e["margin-" + t[2]] = c.margin) | |
} | |
a(u, e), l.set("logoWidth", e.width) | |
}, d.src = c.file; | |
var h = new e(u); | |
h.on("click tap", function(e) { | |
t.exists(e) && e.stopPropagation && e.stopPropagation(), this.trigger(n.JWPLAYER_LOGO_CLICK, { | |
link: c.link, | |
linktarget: c.linktarget | |
}) | |
}, this), r.appendChild(u) | |
} | |
}, this.topRight = function(e) { | |
var t = e.get("controls"), | |
n = e.get("dock"), | |
i = t && (n && n.length || e.get("sharing") || e.get("related")); | |
a(u, { | |
top: i ? "3.5em" : 0 | |
}) | |
}, this.element = function() { | |
return u | |
}, this.position = function() { | |
return c.position | |
}, this.destroy = function() { | |
d.onload = null | |
}, this | |
}; | |
return l | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(2)], r = function(e, t) { | |
function n(e, t) { | |
t.off("change:mediaType", null, this), t.on("change:mediaType", function(t, n) { | |
"audio" === n && this.setImage(e.get("playlistItem").image) | |
}, this) | |
} | |
function i(e, n) { | |
var i = e.get("autostart") && !t.isMobile() || e.get("item") > 0; | |
return i ? (this.setImage(null), e.off("change:state", null, this), void e.on("change:state", function(e, t) { | |
"complete" !== t && "idle" !== t && "error" !== t || (this.setImage(n.image), this.resize(null, null, e.get("stretching"))) | |
}, this)) : void this.setImage(n.image) | |
} | |
var r = function(e) { | |
this.model = e, e.on("change:playlistItem", i, this), e.on("change:mediaModel", n, this) | |
}; | |
return e.extend(r.prototype, { | |
setup: function(e) { | |
this.el = e; | |
var t = this.model.get("playlistItem"); | |
t && this.setImage(t.image) | |
}, | |
setImage: function(n) { | |
var i = this.image; | |
i && (i.onload = null, this.image = null), this.model.off("change:state", null, this); | |
var r = ""; | |
e.isString(n) && (r = 'url("' + n + '")', i = this.image = new Image, i.src = n), t.style(this.el, { | |
backgroundImage: r | |
}) | |
}, | |
resize: function(e, n, i) { | |
if ("uniform" === i) { | |
if (e && (this.playerAspectRatio = e / n), !this.playerAspectRatio) return; | |
var r = this.image, | |
o = null; | |
if (r) { | |
if (0 === r.width) { | |
var a = this; | |
return void(r.onload = function() { | |
a.resize(e, n, i) | |
}) | |
} | |
var s = r.width / r.height; | |
Math.abs(this.playerAspectRatio - s) < .09 && (o = "cover") | |
} | |
t.style(this.el, { | |
backgroundSize: o | |
}) | |
} | |
}, | |
element: function() { | |
return this.el | |
} | |
}), r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(93), n(1), n(7), n(24)], r = function(e, t, n, i, r) { | |
var o = function() {}; | |
return n.extend(o.prototype, { | |
buildArray: function() { | |
var t = r.split("+"), | |
n = t[0], | |
i = { | |
items: [{ | |
title: "Powered by JW Player " + n, | |
featured: !0, | |
showLogo: !0, | |
link: "https://jwplayer.com/learn-more" | |
}] | |
}, | |
o = n.indexOf("-") > 0, | |
a = t[1]; | |
if (o && a) { | |
var s = a.split("."); | |
i.items.push({ | |
title: "build: (" + s[0] + "." + s[1] + ")", | |
link: "#" | |
}) | |
} | |
var l = this.model.get("provider"); | |
if (l && l.name.indexOf("flash") >= 0) { | |
var u = "Flash Version " + e.flashVersion(); | |
i.items.push({ | |
title: u, | |
link: "http://www.adobe.com/software/flash/about/" | |
}) | |
} | |
return i | |
}, | |
buildMenu: function() { | |
var n = this.buildArray(); | |
return e.createElement(t(n)) | |
}, | |
updateHtml: function() { | |
this.el.innerHTML = this.buildMenu().innerHTML | |
}, | |
rightClick: function(e) { | |
return this.lazySetup(), !this.mouseOverContext && (this.hideMenu(), this.showMenu(e), !1) | |
}, | |
getOffset: function(e) { | |
for (var t = e.target, n = e.offsetX || e.layerX, i = e.offsetY || e.layerY; t !== this.playerElement;) n += t.offsetLeft, i += t.offsetTop, t = t.parentNode; | |
return { | |
x: n, | |
y: i | |
} | |
}, | |
showMenu: function(t) { | |
var n = this.getOffset(t); | |
return this.el.style.left = n.x + "px", this.el.style.top = n.y + "px", e.addClass(this.playerElement, "jw-flag-rightclick-open"), e.addClass(this.el, "jw-open"), clearTimeout(this._menuTimeout), this._menuTimeout = setTimeout(this.hideMenu.bind(this), 3e3), !1 | |
}, | |
hideMenu: function() { | |
return this.elementUI.off("out", this.hideMenu, this), this.mouseOverContext ? void this.elementUI.on("out", this.hideMenu, this) : (e.removeClass(this.playerElement, "jw-flag-rightclick-open"), void e.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 i(this.el, { | |
useHover: !0 | |
}).on("over", function() { | |
this.mouseOverContext = !0 | |
}, this).on("out", function() { | |
this.mouseOverContext = !1 | |
}, this)) | |
}, | |
setup: function(e, t, n) { | |
this.playerElement = t, this.model = e, this.mouseOverContext = !1, this.layer = n, t.oncontextmenu = this.rightClick.bind(this) | |
}, | |
addOffListener: function(e) { | |
e.addEventListener("mousedown", this.hideMenuHandler), e.addEventListener("touchstart", this.hideMenuHandler), e.addEventListener("pointerdown", this.hideMenuHandler) | |
}, | |
removeOffListener: function(e) { | |
e.removeEventListener("mousedown", this.hideMenuHandler), e.removeEventListener("touchstart", this.hideMenuHandler), e.removeEventListener("pointerdown", this.hideMenuHandler) | |
}, | |
destroy: function() { | |
clearTimeout(this._menuTimeout), 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) | |
} | |
}), o | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(1), n(2)], r = function(e, t) { | |
var n = function(e) { | |
this.model = e, this.model.on("change:playlistItem", this.playlistItem, this) | |
}; | |
return e.extend(n.prototype, { | |
hide: function() { | |
this.el.style.display = "none" | |
}, | |
show: function() { | |
this.el.style.display = "" | |
}, | |
setup: function(e) { | |
this.el = e; | |
var t = this.el.getElementsByTagName("div"); | |
this.title = t[0], this.description = t[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(e) { | |
var n = { | |
paddingLeft: 0, | |
paddingRight: 0 | |
}, | |
i = e.get("controls"), | |
r = e.get("dock"), | |
o = e.get("logo"); | |
if (o) { | |
var a = 1 * ("" + o.margin).replace("px", ""), | |
s = e.get("logoWidth") + (isNaN(a) ? 0 : a); | |
"top-left" === o.position ? n.paddingLeft = s : "top-right" === o.position && (n.paddingRight = s) | |
} | |
if (i && r && r.length) { | |
var l = 56 * r.length; | |
n.paddingRight = Math.max(n.paddingRight, l) | |
} | |
t.style(this.el, n) | |
}, | |
playlistItem: function(e, t) { | |
if (e.get("displaytitle") || e.get("displaydescription")) { | |
var n = "", | |
i = ""; | |
t.title && e.get("displaytitle") && (n = t.title), t.description && e.get("displaydescription") && (i = t.description), this.updateText(n, i) | |
} else this.hide() | |
}, | |
updateText: function(e, t) { | |
this.title.innerHTML = e, this.description.innerHTML = t, this.title.firstChild || this.description.firstChild ? this.show() : this.hide() | |
}, | |
element: function() { | |
return this.el | |
} | |
}), n | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(4), n(3), n(22), n(5), n(143), n(144), n(152), n(153), n(155), n(151), n(156), n(171), n(158), n(147), n(1), n(92), n(142), n(66)], r = function(e, t, i, r, o, a, s, l, u, c, d, p, h, f, g, m, v, w, y) { | |
var j = e.style, | |
b = e.bounds, | |
E = e.isMobile(), | |
x = ["fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "MSFullscreenChange"], | |
k = function(k, C) { | |
function A() { | |
return { | |
reason: "interaction" | |
} | |
} | |
function _(t) { | |
var n = 0, | |
i = C.get("duration"), | |
o = C.get("position"); | |
"DVR" === C.get("streamType") && (n = i, i = Math.max(o, r.dvrSeekLimit)); | |
var a = e.between(o + t, n, i); | |
k.seek(a, A()) | |
} | |
function L(t) { | |
var n = e.between(C.get("volume") + t, 0, 100); | |
k.setVolume(n) | |
} | |
function T(e) { | |
return !e.ctrlKey && !e.metaKey && !!C.get("controls") | |
} | |
function P(e) { | |
if (!T(e)) return !0; | |
switch (xe || ae(), e.keyCode) { | |
case 27: | |
k.setFullscreen(!1); | |
break; | |
case 13: | |
case 32: | |
k.play(A()); | |
break; | |
case 37: | |
xe || _(-5); | |
break; | |
case 39: | |
xe || _(5); | |
break; | |
case 38: | |
L(10); | |
break; | |
case 40: | |
L(-10); | |
break; | |
case 67: | |
var t = k.getCaptionsList(), | |
n = t.length; | |
if (n) { | |
var i = (k.getCurrentCaptions() + 1) % n; | |
k.setCurrentCaptions(i) | |
} | |
break; | |
case 77: | |
k.setMute(); | |
break; | |
case 70: | |
k.setFullscreen(); | |
break; | |
default: | |
if (e.keyCode >= 48 && e.keyCode <= 59) { | |
var r = e.keyCode - 48, | |
o = r / 10 * C.get("duration"); | |
k.seek(o, A()) | |
} | |
} | |
return /13|32|37|38|39|40/.test(e.keyCode) ? (e.preventDefault(), !1) : void 0 | |
} | |
function R() { | |
Xe = !1, e.removeClass(we, "jw-no-focus") | |
} | |
function I(e) { | |
e.target && e.target.blur && e.target.blur() | |
} | |
function M() { | |
Xe = !0, e.addClass(we, "jw-no-focus") | |
} | |
function S() { | |
Xe || R(), xe || ae() | |
} | |
function O() { | |
var e = b(we), | |
n = Math.round(e.width), | |
i = Math.round(e.height); | |
Ge(ze), n && i && (n !== be || i !== Ee) && (be = n, Ee = i, clearTimeout(Ue), Ue = setTimeout(ee, 50), C.set("containerWidth", n), C.set("containerHeight", i), w(we, n, i), Qe.trigger(t.JWPLAYER_RESIZE, { | |
width: n, | |
height: i | |
})) | |
} | |
function N() { | |
document.body.contains(we) && (Ge(ze), ze = He(O)) | |
} | |
function D(t, n, i) { | |
var r = { | |
color: t, | |
borderColor: t, | |
stroke: t | |
}, | |
o = { | |
color: n, | |
borderColor: n, | |
stroke: n | |
}; | |
e.css("#" + i + " .jw-color-active", r, i), e.css("#" + i + " .jw-color-active-hover:hover", r, i), e.css("#" + i + " .jw-color-inactive", o, i), e.css("#" + i + " .jw-color-inactive-hover:hover", o, i) | |
} | |
function Y(t, n) { | |
n = n || !1, e.toggleClass(we, "jw-flag-casting", n) | |
} | |
function F(t, n) { | |
e.toggleClass(we, "jw-flag-cast-available", n), e.toggleClass(ye, "jw-flag-cast-available", n) | |
} | |
function W(t, n) { | |
e.replaceClass(we, /jw-stretch-\S+/, "jw-stretch-" + n) | |
} | |
function J(e) { | |
e && !E && (e.element().addEventListener("mousemove", U, !1), e.element().addEventListener("mouseout", z, !1)) | |
} | |
function B() { | |
(C.get("state") === o.IDLE || C.get("state") === o.COMPLETE || C.get("state") === o.PAUSED || xe && xe.get("state") === o.PAUSED) && C.get("controls") && k.play(A()), Ve ? oe() : ae() | |
} | |
function V(e) { | |
e.link ? (k.pause(!0, A()), k.setFullscreen(!1), window.open(e.link, e.linktarget)) : C.get("controls") && k.play(A()) | |
} | |
function U() { | |
clearTimeout(We) | |
} | |
function z() { | |
ae() | |
} | |
function H(e) { | |
Qe.trigger(e.type, e) | |
} | |
function G(t, n) { | |
n ? (Oe && Oe.destroy(), e.addClass(we, "jw-flag-flash-blocked")) : (Oe && Oe.setup(C, we, we), e.removeClass(we, "jw-flag-flash-blocked")) | |
} | |
function K() { | |
C.get("controls") && k.setFullscreen() | |
} | |
function q() { | |
var n = we.getElementsByClassName("jw-overlays")[0]; | |
n.addEventListener("mousemove", ae), Ae = new s(C, je, { | |
useHover: !0 | |
}), Ae.on("click", function() { | |
H({ | |
type: t.JWPLAYER_DISPLAY_CLICK | |
}), C.get("controls") && k.play(A()) | |
}), Ae.on("tap", function() { | |
H({ | |
type: t.JWPLAYER_DISPLAY_CLICK | |
}), B() | |
}), Ae.on("doubleClick", K), Ae.on("move", ae), Ae.on("over", ae); | |
var i = new l(C); | |
i.on("click", function() { | |
H({ | |
type: t.JWPLAYER_DISPLAY_CLICK | |
}), k.play(A()) | |
}), i.on("tap", function() { | |
H({ | |
type: t.JWPLAYER_DISPLAY_CLICK | |
}), B() | |
}), e.isChrome() && !e.isMobile() && i.el.addEventListener("mousedown", function() { | |
var e = C.getVideo(), | |
t = e && 0 === e.getName().name.indexOf("flash"); | |
if (t) { | |
var n = function() { | |
document.removeEventListener("mouseup", n), i.el.style.pointerEvents = "auto" | |
}; | |
this.style.pointerEvents = "none", document.addEventListener("mouseup", n) | |
} | |
}), ye.appendChild(i.element()), Le = new u(C), Te = new c(C), Te.on(t.JWPLAYER_LOGO_CLICK, V); | |
var r = document.createElement("div"); | |
r.className = "jw-controls-right jw-reset", Te.setup(r), r.appendChild(Le.element()), ye.appendChild(r), Me = new a(C), Me.setup(we.id, C.get("captions")), ye.parentNode.insertBefore(Me.element(), Pe.element()); | |
var o = C.get("height"); | |
E && ("string" == typeof o || o >= 1.5 * Be) ? e.addClass(we, "jw-flag-touch") : (Oe = new h, Oe.setup(C, we, we)), ke = new d(k, C), ke.on(t.JWPLAYER_USER_ACTION, ae), C.on("change:scrubbing", me), C.autoStartOnMobile() && (Ie = y("jw-autostart-mute jw-off", te, C.get("localization").volume), Ie.show(), ye.appendChild(Ie.element()), ke.renderVolume(!0, C.get("volume")), e.addClass(we, "jw-flag-autostart"), C.set("autostartMuted", !0), C.on("change:autostartFailed", te), C.on("change:autostartMuted", te), C.on("change:mute", te)), Re = new g(C, k, ke.elements.next, we), Re.setup(), ye.appendChild(Re.element()), ye.appendChild(ke.element()), we.addEventListener("focus", S), we.addEventListener("blur", R), we.addEventListener("keydown", P), we.onmousedown = M, we.onmouseup = I | |
} | |
function X(t, n, i) { | |
var r, o = we.className; | |
i = !!i, i && (o = o.replace(/\s*aspectMode/, ""), we.className !== o && (we.className = o), j(we, { | |
display: "block" | |
}, i)), e.exists(t) && e.exists(n) && (C.set("width", t), C.set("height", n)), r = { | |
width: t | |
}, e.hasClass(we, "jw-flag-aspect-mode") || (r.height = n), C.get("aspectratio") && ve(), j(we, r, !0), Q(n), ee(t, n) | |
} | |
function Q(t) { | |
if (Se = $(t), ke && !Se) { | |
var n = xe ? xe : C; | |
fe(n, n.get("state")) | |
} | |
e.toggleClass(we, "jw-flag-audio-player", Se) | |
} | |
function $(e) { | |
if (C.get("aspectratio")) return !1; | |
if (m.isString(e) && e.indexOf("%") > -1) return !1; | |
var t = m.isNumber(e) ? e : C.get("containerHeight"); | |
return Z(t) | |
} | |
function Z(e) { | |
return e && e <= Be * (E ? 1.75 : 1) | |
} | |
function ee(t, n) { | |
if (!t || isNaN(Number(t))) { | |
if (!je) return; | |
t = je.clientWidth | |
} | |
if (!n || isNaN(Number(n))) { | |
if (!je) return; | |
n = je.clientHeight | |
} | |
Ce && Ce.resize(t, n, C.get("stretching")), e.isMSIE(9) && document.all && !window.atob && (t = n = "100%"); | |
var i = C.getVideo(); | |
if (i) { | |
var r = i.resize(t, n, C.get("stretching")); | |
r && (clearTimeout(Ue), Ue = setTimeout(ee, 250)), C.get("aspectratio") && ve(), Me.resize() | |
} | |
} | |
function te() { | |
var t = !C.get("autostartFailed"), | |
n = C.get("mute"); | |
t && (n = !1), C.off("change:autostartFailed", te), C.off("change:mute", te), C.off("change:autostartMuted", te), C.set("autostartFailed", void 0), C.set("autostartMuted", void 0), k.setMute(n), ke.renderVolume(n, C.get("volume")), Ie.hide(), e.removeClass(we, "jw-flag-autostart") | |
} | |
function ne() { | |
if (qe) { | |
var e = document.fullscreenElement || document.webkitCurrentFullScreenElement || document.mozFullScreenElement || document.msFullscreenElement; | |
return !(!e || e.id !== C.get("id")) | |
} | |
return xe ? xe.getVideo().getFullScreen() : C.getVideo().getFullScreen() | |
} | |
function ie(e) { | |
var t = C.get("fullscreen"), | |
n = void 0 !== e.jwstate ? e.jwstate : ne(); | |
t !== n && C.set("fullscreen", n), clearTimeout(Ue), Ue = setTimeout(ee, 200) | |
} | |
function re(t, n) { | |
n ? (e.addClass(t, "jw-flag-fullscreen"), j(document.body, { | |
"overflow-y": "hidden" | |
}), ae()) : (e.removeClass(t, "jw-flag-fullscreen"), j(document.body, { | |
"overflow-y": "" | |
})), ee() | |
} | |
function oe() { | |
Ve = !1, clearTimeout(We), ke.hideComponents(), e.addClass(we, "jw-flag-user-inactive"), Me.renderCues(!0) | |
} | |
function ae() { | |
Ve || (e.removeClass(we, "jw-flag-user-inactive"), Me.renderCues(!0)), Ve = !0, clearTimeout(We), We = setTimeout(oe, Je) | |
} | |
function se() { | |
k.setFullscreen(!1) | |
} | |
function le() { | |
_e && _e.setState(C.get("state")), ue(C, C.mediaModel.get("mediaType")), C.mediaModel.on("change:mediaType", ue, this) | |
} | |
function ue(t, n) { | |
var i = "audio" === n, | |
r = C.getVideo(), | |
o = r && 0 === r.getName().name.indexOf("flash"); | |
e.toggleClass(we, "jw-flag-media-audio", i), i && !o ? we.insertBefore(Ce.el, je) : we.insertBefore(Ce.el, Me.element()) | |
} | |
function ce(t, n) { | |
var i = t.get("minDvrWindow"), | |
r = e.streamType(n, i), | |
o = "LIVE" === r; | |
t.set("streamType", r), e.toggleClass(we, "jw-flag-live", o), Qe.setAltText(o ? t.get("localization").liveBroadcast : "") | |
} | |
function de(e, t) { | |
return t ? void(t.name ? Pe.updateText(t.name, t.message) : Pe.updateText(t.message, "")) : void Pe.playlistItem(e, e.get("playlistItem")) | |
} | |
function pe() { | |
var e = C.getVideo(); | |
return !!e && e.isCaster | |
} | |
function he() { | |
e.replaceClass(we, /jw-state-\S+/, "jw-state-" + Ne) | |
} | |
function fe(e, t) { | |
Ne = t, clearTimeout(Ke), t === o.PLAYING ? ge(e, t) : Ke = setTimeout(function() { | |
ge(e, t) | |
}, 33) | |
} | |
function ge(t, n) { | |
if (e.toggleClass(we, "jw-flag-dragging", t.get("scrubbing")), he(), pe()) return void e.addClass(je, "jw-media-show"); | |
switch (n) { | |
case o.PLAYING: | |
ee(); | |
break; | |
case o.PAUSED: | |
ae() | |
} | |
} | |
function me(e) { | |
fe(e, e.get("state")) | |
} | |
function ve() { | |
var e = we.getElementsByClassName("jw-aspect")[0]; | |
Me.setContainerHeight(e.offsetHeight) | |
} | |
var we, ye, je, be, Ee, xe, ke, Ce, Ae, _e, Le, Te, Pe, Re, Ie, Me, Se, Oe, Ne, De, Ye, Fe, We = -1, | |
Je = E ? 4e3 : 2e3, | |
Be = 40, | |
Ve = !1, | |
Ue = -1, | |
ze = -1, | |
He = window.requestAnimationFrame || function(e) { | |
return window.setTimeout(e, 17) | |
}, | |
Ge = window.cancelAnimationFrame || window.clearTimeout, | |
Ke = -1, | |
qe = !1, | |
Xe = !1, | |
Qe = m.extend(this, i); | |
window.webpackJsonpjwplayer && n(161), this.model = C, this.api = k, we = e.createElement(v({ | |
id: C.get("id") | |
})), e.isIE() && e.addClass(we, "jw-ie"); | |
var $e = C.get("width"), | |
Ze = C.get("height"); | |
j(we, { | |
width: $e.toString().indexOf("%") > 0 ? $e : $e + "px", | |
height: Ze.toString().indexOf("%") > 0 ? Ze : Ze + "px" | |
}), Ye = we.requestFullscreen || we.webkitRequestFullscreen || we.webkitRequestFullScreen || we.mozRequestFullScreen || we.msRequestFullscreen, Fe = document.exitFullscreen || document.webkitExitFullscreen || document.webkitCancelFullScreen || document.mozCancelFullScreen || document.msExitFullscreen, qe = Ye && Fe, this.onChangeSkin = function(t, n) { | |
e.replaceClass(we, /jw-skin-\S+/, n ? "jw-skin-" + n : "") | |
}, this.handleColorOverrides = function() { | |
function t(t, i, r) { | |
if (r) { | |
t = e.prefix(t, "#" + n + " "); | |
var o = {}; | |
o[i] = r, e.css(t.join(", "), o, n) | |
} | |
} | |
var n = C.get("id"), | |
i = C.get("skinColorActive"), | |
r = C.get("skinColorInactive"), | |
o = C.get("skinColorBackground"); | |
t([".jw-toggle", ".jw-button-color:hover"], "color", i), t([".jw-active-option", ".jw-progress"], "background", i), t([".jw-text", ".jw-option", ".jw-button-color", ".jw-toggle.jw-off", ".jw-tooltip-title", ".jw-skip .jw-skip-icon"], "color", r), t([".jw-cue", ".jw-knob"], "background", r), t([".jw-background-color", ".jw-tooltip-title"], "background", o), D(i, r, n) | |
}, this.setup = function() { | |
this.handleColorOverrides(), C.get("skin-loading") === !0 && (e.addClass(we, "jw-flag-skin-loading"), C.once("change:skin-loading", function() { | |
e.removeClass(we, "jw-flag-skin-loading") | |
})), this.onChangeSkin(C, C.get("skin"), ""), C.on("change:skin", this.onChangeSkin, this), je = we.getElementsByClassName("jw-media")[0], ye = we.getElementsByClassName("jw-controls")[0]; | |
var n = we.getElementsByClassName("jw-preview")[0]; | |
Ce = new p(C), Ce.setup(n); | |
var i = we.getElementsByClassName("jw-title")[0]; | |
Pe = new f(C), Pe.setup(i), q(), ae(), C.set("mediaContainer", je), C.mediaController.on("fullscreenchange", ie); | |
for (var r = x.length; r--;) document.addEventListener(x[r], ie, !1); | |
window.removeEventListener("resize", N), window.addEventListener("resize", N, !1), E && (window.removeEventListener("orientationchange", N), window.addEventListener("orientationchange", N, !1)), C.on("change:errorEvent", de), C.on("change:controls", et), et(C, C.get("controls")), C.on("change:state", fe), C.on("change:duration", ce, this), C.on("change:flashBlocked", G), G(C, C.get("flashBlocked")), k.onPlaylistComplete(se), k.onPlaylistItem(le), C.on("change:castAvailable", F), F(C, C.get("castAvailable")), C.on("change:castActive", Y), Y(C, C.get("castActive")), C.on("change:hideAdsControls", function(t, n) { | |
e.toggleClass(we, "jw-flag-ads-hide-controls", n) | |
}), C.get("stretching") && W(C, C.get("stretching")), C.on("change:stretching", W), fe(C, o.IDLE), C.on("change:fullscreen", tt), J(ke), J(Te); | |
var a = C.get("aspectratio"); | |
if (a) { | |
e.addClass(we, "jw-flag-aspect-mode"); | |
var s = we.getElementsByClassName("jw-aspect")[0]; | |
j(s, { | |
paddingTop: a | |
}) | |
} | |
k.on(t.JWPLAYER_READY, function() { | |
O(), X(C.get("width"), C.get("height")) | |
}) | |
}; | |
var et = function(t, n) { | |
if (n) { | |
var i = xe ? xe.get("state") : C.get("state"); | |
fe(t, i) | |
} | |
e.toggleClass(we, "jw-flag-controls-disabled", !n) | |
}, | |
tt = function(t, n) { | |
var i = C.getVideo(); | |
n && C.get("autostartMuted") && te(), qe ? (n ? Ye.apply(we) : Fe.apply(document), re(we, n)) : e.isIE() ? re(we, n) : (xe && xe.getVideo() && xe.getVideo().setFullscreen(n), i.setFullscreen(n)), i && 0 === i.getName().name.indexOf("flash") && i.setFullscreen(n) | |
}; | |
this.resize = function(e, t) { | |
var n = !0; | |
X(e, t, n), O() | |
}, this.resizeMedia = ee, this.reset = function() { | |
document.contains(we) && we.parentNode.replaceChild(De, we), e.emptyElement(we) | |
}, this.setupInstream = function(t) { | |
this.instreamModel = xe = t, xe.on("change:controls", et, this), xe.on("change:state", fe, this), e.addClass(we, "jw-flag-ads"), ae() | |
}, this.setAltText = function(e) { | |
ke.setAltText(e) | |
}, this.destroyInstream = function() { | |
if (xe && (xe.off(null, null, this), xe = null), this.setAltText(""), e.removeClass(we, ["jw-flag-ads", "jw-flag-ads-hide-controls"]), C.set("hideAdsControls", !1), C.getVideo) { | |
var t = C.getVideo(); | |
t.setContainer(je) | |
} | |
ce(C, C.get("duration")), Ae.revertAlternateClickHandlers() | |
}, this.addCues = function(e) { | |
ke && ke.addCues(e) | |
}, this.clickHandler = function() { | |
return Ae | |
}, this.controlsContainer = function() { | |
return ye | |
}, this.getContainer = this.element = function() { | |
return we | |
}, this.getSafeRegion = function(t) { | |
var n = { | |
x: 0, | |
y: 0, | |
width: C.get("containerWidth") || 0, | |
height: C.get("containerHeight") || 0 | |
}, | |
i = C.get("dock"); | |
return i && i.length && C.get("controls") && (n.y = Le.element().clientHeight, n.height -= n.y), t = t || !e.exists(t), t && C.get("controls") && (n.height -= ke.element().clientHeight), n | |
}, this.setCaptions = function(e) { | |
Me.clear(), Me.setup(C.get("id"), e), Me.resize() | |
}, this.destroy = function() { | |
clearTimeout(Ke), clearTimeout(Ue), clearTimeout(We), window.removeEventListener("resize", N), window.removeEventListener("orientationchange", N); | |
for (var t = x.length; t--;) document.removeEventListener(x[t], ie, !1); | |
C.mediaController && C.mediaController.off("fullscreenchange", ie), we.removeEventListener("keydown", P, !1), Oe && Oe.destroy(), _e && (C.off("change:state", _e.statusDelegate), _e.destroy(), _e = null), xe && this.destroyInstream(), Te && Te.destroy(), e.clearCss(C.get("id")) | |
} | |
}; | |
return k | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , function(e, t, n) { | |
var i = n(81); | |
"string" == typeof i && (i = [ | |
["all-players", i, ""] | |
]), n(68).style(i, "all-players"), i.locals && (e.exports = i.locals) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(69), n(1), n(24), n(2), n(8), n(7), n(73), n(15), n(74), n(65), n(4), n(5), n(50), n(31), n(28), n(48), n(21)], r = function(e, t, n, i, r, o, a, s, l, u, c, d, p, h, f, g, m) { | |
var v = {}; | |
return v.api = e, v._ = t, v.version = n, v.utils = t.extend(i, r, { | |
canCast: f.available, | |
key: a, | |
extend: t.extend, | |
scriptloader: s, | |
rssparser: g, | |
tea: l, | |
UI: o | |
}), v.utils.css.style = v.utils.style, v.vid = u, v.events = t.extend({}, c, { | |
state: d | |
}), v.playlist = t.extend({}, p, { | |
item: h | |
}), v.plugins = m, v.cast = f, v | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, , , , function(e, t, n) { | |
var i, r; | |
i = [n(119), n(16), n(169)], r = function(e, t, i) { | |
var r = e.prototype.setup; | |
return e.prototype.setup = function(e, o) { | |
e.analytics && (e.sdkplatform = e.sdkplatform || e.analytics.sdkplatform), r.apply(this, arguments); | |
var a = this._model.get("edition"), | |
s = t(a), | |
l = this._model.get("cast"), | |
u = this; | |
s("casting") && l && l.appid && n.e(3, function(require) { | |
var e = n(70); | |
u._castController = new e(u, u._model), u.castToggle = u._castController.castToggle.bind(u._castController) | |
}); | |
var c = i.setup(); | |
this.once("ready", c.onReady, this), o.getAdBlock = c.checkAdBlock | |
}, e | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(73), n(16), n(1), n(2), n(63), n(124), n(37)], r = function(e, t, i, r, o, a, s) { | |
function l(e, t, n) { | |
if (t) { | |
var i = t.client; | |
delete t.client, /\.(js|swf)$/.test(i || "") || (i = o.repo() + n), e[i] = t | |
} | |
} | |
function u(e, n) { | |
var r = i.clone(n.get("plugins")) || {}, | |
a = n.get("edition"), | |
s = t(a), | |
u = /^(vast|googima|freewheel)$/, | |
c = /\.(js|swf)$/, | |
d = o.repo(), | |
p = i.clone(n.get("advertising")); | |
if (s("ads") && p && (c.test(p.client) ? r[p.client] = p : u.test(p.client) && (r[d + p.client + ".js"] = p), delete p.client), s("jwpsrv")) { | |
var h = n.get("analytics"); | |
i.isObject(h) || (h = {}), l(r, h, "jwpsrv.js") | |
} | |
l(r, n.get("ga"), "gapro.js"), l(r, n.get("sharing"), "sharing.js"); | |
var f = n.get("related"), | |
g = i.isObject(f), | |
m = n.get("visualplaylist") !== !1 || g; | |
g || (f = { | |
disableRelated: !0 | |
}), f.showDockButton = m, l(r, f, "related.js"); | |
var v = n.get("mobileSdk"); | |
if (!v) { | |
var w = n.get("playlist"); | |
i.some(w, function(e) { | |
if (e.stereomode && e.stereomode.length > 0) return l(r, n.get("vr") || {}, "vr.js"), !0 | |
}) | |
} | |
n.set("plugins", r), e() | |
} | |
function c(t, i) { | |
var s = i.get("key") || window.jwplayer && window.jwplayer.key, | |
l = new e(s), | |
u = l.edition(); | |
if (i.set("key", s), i.set("edition", u), "unlimited" === u) { | |
var c = r.getScriptPath("jwplayer.js"); | |
if (!c) return void a.error(t, "Error setting up player", "Could not locate jwplayer.js script tag"); | |
n.p = c, r.repo = o.repo = o.loadFrom = function() { | |
return c | |
} | |
} | |
i.updateProviders(), "invalid" === u ? a.error(t, "Error setting up player", (void 0 === s ? "Missing" : "Invalid") + " license key") : t() | |
} | |
function d(e, t) { | |
s.containsDrm(t) ? s.probe(e, t.get("edition")) : e() | |
} | |
function p() { | |
var e = a.getQueue(); | |
return e.CHECK_KEY = { | |
method: c, | |
depends: ["LOADED_POLYFILLS"] | |
}, e.PROBE_DRM_SUPPORT = { | |
method: d, | |
depends: ["CHECK_KEY"] | |
}, e.FILTER_PLUGINS = { | |
method: u, | |
depends: ["CHECK_KEY"] | |
}, e.FILTER_PLAYLIST.depends.push("PROBE_DRM_SUPPORT"), e.LOAD_PLUGINS.depends.push("FILTER_PLUGINS"), e.SETUP_VIEW.depends.push("CHECK_KEY"), e | |
} | |
return { | |
getQueue: p | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(126), n(162), n(1)], r = function(e, t, n) { | |
var i = window, | |
r = n.extend(e, t); | |
return "function" == typeof i.define && i.define.amd && i.define([], function() { | |
return r | |
}), i.jwplayer ? i.jwplayer : r | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [], r = function() { | |
function e() { | |
var e = document.createElement("div"); | |
return e.className = n, e.innerHTML = " ", e.style.width = "1px", e.style.height = "1px", e.style.position = "absolute", e.style.background = "transparent", e | |
} | |
function t() { | |
function t() { | |
var e = this, | |
t = e._view.element(); | |
t.appendChild(a), r = !0, i() && e.trigger("adBlock") | |
} | |
function i() { | |
return !!r && (!!o || ("" !== a.innerHTML && a.className === n && null !== a.offsetParent && 0 !== a.clientHeight || (o = !0), o)) | |
} | |
var r = !1, | |
o = !1, | |
a = e(); | |
return { | |
onReady: t, | |
checkAdBlock: i | |
} | |
} | |
var n = "afs_ads"; | |
return { | |
setup: t | |
} | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(2), n(4), n(7), n(3), n(1), n(85)], r = function(e, t, n, i, r, o) { | |
var a = function(e) { | |
this.model = e, this.setup() | |
}; | |
return r.extend(a.prototype, i, { | |
setup: function() { | |
this.destroy(), this.skipMessage = this.model.get("skipText"), this.skipMessageCountdown = this.model.get("skipMessage"), this.setWaitTime(this.model.get("skipOffset")); | |
var t = o(); | |
this.el = e.createElement(t), this.skiptext = this.el.getElementsByClassName("jw-skiptext")[0], this.skipAdOnce = r.once(this.skipAd.bind(this)), new n(this.el).on("click tap", r.bind(function() { | |
this.skippable && this.skipAdOnce() | |
}, this)), this.model.on("change:duration", this.onChangeDuration, this), this.model.on("change:position", this.onChangePosition, this), this.onChangeDuration(this.model, this.model.get("duration")), this.onChangePosition(this.model, this.model.get("position")) | |
}, | |
updateMessage: function(e) { | |
this.skiptext.innerHTML = e | |
}, | |
updateCountdown: function(e) { | |
this.updateMessage(this.skipMessageCountdown.replace(/xx/gi, Math.ceil(this.waitTime - e))) | |
}, | |
onChangeDuration: function(t, n) { | |
if (n) { | |
if (this.waitPercentage) { | |
if (!n) return; | |
this.itemDuration = n, this.setWaitTime(this.waitPercentage), delete this.waitPercentage | |
} | |
e.removeClass(this.el, "jw-hidden") | |
} | |
}, | |
onChangePosition: function(t, n) { | |
this.waitTime - n > 0 ? this.updateCountdown(n) : (this.updateMessage(this.skipMessage), this.skippable = !0, e.addClass(this.el, "jw-skippable")) | |
}, | |
element: function() { | |
return this.el | |
}, | |
setWaitTime: function(t) { | |
if (r.isString(t) && "%" === t.slice(-1)) { | |
var n = parseFloat(t); | |
return void(this.itemDuration && !isNaN(n) ? this.waitTime = this.itemDuration * n / 100 : this.waitPercentage = t) | |
} | |
r.isNumber(t) ? this.waitTime = t : "string" === e.typeOf(t) ? this.waitTime = e.seconds(t) : isNaN(Number(t)) ? this.waitTime = 0 : this.waitTime = Number(t) | |
}, | |
skipAd: function() { | |
this.trigger(t.JWPLAYER_AD_SKIPPED) | |
}, | |
destroy: function() { | |
this.el && (this.el.removeEventListener("click", this.skipAdOnce), this.el.parentElement && this.el.parentElement.removeChild(this.el)), delete this.skippable, delete this.itemDuration, delete this.waitPercentage | |
} | |
}), a | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}, function(e, t, n) { | |
var i, r; | |
i = [n(157), n(1)], r = function(e, t) { | |
var n = function() {}; | |
return t.extend(n.prototype, e.prototype, { | |
buildArray: function() { | |
var t = e.prototype.buildArray.apply(this, arguments); | |
if (this.model.get("abouttext")) { | |
t.items[0].showLogo = !1, t.items.push(t.items.shift()); | |
var n = { | |
title: this.model.get("abouttext"), | |
link: this.model.get("aboutlink") || t.items[0].link | |
}; | |
t.items.unshift(n) | |
} | |
return t | |
} | |
}), n | |
}.apply(t, i), !(void 0 !== r && (e.exports = r)) | |
}]); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment