function ispassive() {
var t = !1;
try {
addeventlistener("test", null, object.defineproperty({},
"passive", {
get: function() {
t = !0
}
}))
} catch(t) {}
return t
} !
function(t, e, i) {
function n(n, r) {
this.wrapper = "string" == typeof n ? e.queryselector(n) : n,
this.scroller = this.wrapper.children[0],
this.scrollerstyle = this.scroller.style,
this.options = {
zoommin: 1,
zoommax: 4,
startzoom: 1,
resizescrollbars: !0,
mousewheelspeed: 20,
snapthreshold: .334,
disablepointer: !a.haspointer,
disabletouch: a.haspointer || !a.hastouch,
disablemouse: a.haspointer || a.hastouch,
startx: 0,
starty: 0,
scrolly: !0,
directionlockthreshold: 5,
momentum: !0,
bounce: !0,
bouncetime: 600,
bounceeasing: "",
preventdefault: !0,
preventdefaultexception: {
tagname: /^(input|textarea|button|select)$/
},
hwcompositing: !0,
usetransition: !0,
usetransform: !0,
bindtowrapper: void 0 === t.onmousedown
};
for (var s in r) this.options[s] = r[s];
this.translatez = this.options.hwcompositing && a.hasperspective ? " translatez(0)": "",
this.options.usetransition = a.hastransition && this.options.usetransition,
this.options.usetransform = a.hastransform && this.options.usetransform,
this.options.eventpassthrough = !0 === this.options.eventpassthrough ? "vertical": this.options.eventpassthrough,
this.options.preventdefault = !this.options.eventpassthrough && this.options.preventdefault,
this.options.scrolly = "vertical" != this.options.eventpassthrough && this.options.scrolly,
this.options.scrollx = "horizontal" != this.options.eventpassthrough && this.options.scrollx,
this.options.freescroll = this.options.freescroll && !this.options.eventpassthrough,
this.options.directionlockthreshold = this.options.eventpassthrough ? 0 : this.options.directionlockthreshold,
this.options.bounceeasing = "string" == typeof this.options.bounceeasing ? a.ease[this.options.bounceeasing] || a.ease.circular: this.options.bounceeasing,
this.options.resizepolling = void 0 === this.options.resizepolling ? 60 : this.options.resizepolling,
!0 === this.options.tap && (this.options.tap = "tap"),
this.options.usetransition || this.options.usetransform || /relative|absolute/i.test(this.scrollerstyle.position) || (this.scrollerstyle.position = "relative"),
"scale" == this.options.shrinkscrollbars && (this.options.usetransition = !1),
this.options.invertwheeldirection = this.options.invertwheeldirection ? -1 : 1,
this.x = 0,
this.y = 0,
this.directionx = 0,
this.directiony = 0,
this._events = {},
this.scale = i.min(i.max(this.options.startzoom, this.options.zoommin), this.options.zoommax),
this._init(),
this.refresh(),
this.scrollto(this.options.startx, this.options.starty),
this.enable()
}
function r(t, i, n) {
var r = e.createelement("div"),
s = e.createelement("div");
return ! 0 === n && (r.style.csstext = "position:absolute;z-index:9999", s.style.csstext = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px"),
s.classname = "iscrollindicator",
"h" == t ? (!0 === n && (r.style.csstext += ";height:7px;left:2px;right:2px;bottom:0", s.style.height = "100%"), r.classname = "iscrollhorizontalscrollbar") : (!0 === n && (r.style.csstext += ";width:7px;bottom:2px;top:2px;right:1px", s.style.width = "100%"), r.classname = "iscrollverticalscrollbar"),
r.style.csstext += ";overflow:hidden",
i || (r.style.pointerevents = "none"),
r.appendchild(s),
r
}
function s(i, n) {
this.wrapper = "string" == typeof n.el ? e.queryselector(n.el) : n.el,
this.wrapperstyle = this.wrapper.style,
this.indicator = this.wrapper.children[0],
this.indicatorstyle = this.indicator.style,
this.scroller = i,
this.options = {
listenx: !0,
listeny: !0,
interactive: !1,
resize: !0,
defaultscrollbars: !1,
shrink: !1,
fade: !1,
speedratiox: 0,
speedratioy: 0
};
for (var r in n) this.options[r] = n[r];
if (this.sizeratiox = 1, this.sizeratioy = 1, this.maxposx = 0, this.maxposy = 0, this.options.interactive && (this.options.disabletouch || (a.addevent(this.indicator, "touchstart", this), a.addevent(t, "touchend", this)), this.options.disablepointer || (a.addevent(this.indicator, a.prefixpointerevent("pointerdown"), this), a.addevent(t, a.prefixpointerevent("pointerup"), this)), this.options.disablemouse || (a.addevent(this.indicator, "mousedown", this), a.addevent(t, "mouseup", this))), this.options.fade) {
this.wrapperstyle[a.style.transform] = this.scroller.translatez;
var s = a.style.transitionduration;
if (!s) return;
this.wrapperstyle[s] = a.isbadandroid ? "0.0001ms": "0ms";
var l = this;
a.isbadandroid && o(function() {
"0.0001ms" === l.wrapperstyle[s] && (l.wrapperstyle[s] = "0s")
}),
this.wrapperstyle.opacity = "0"
}
}
var o = t.requestanimationframe || t.webkitrequestanimationframe || t.mozrequestanimationframe || t.orequestanimationframe || t.msrequestanimationframe ||
function(e) {
t.settimeout(e, 1e3 / 60)
},
a = function() {
function n(t) {
return ! 1 !== o && ("" === o ? t: o + t.charat(0).touppercase() + t.substr(1))
}
var r = {},
s = e.createelement("div").style,
o = function() {
for (var t = ["t", "webkitt", "mozt", "mst", "ot"], e = 0, i = t.length; e < i; e++) if (t[e] + "ransform" in s) return t[e].substr(0, t[e].length - 1);
return ! 1
} ();
r.gettime = date.now ||
function() {
return (new date).gettime()
},
r.extend = function(t, e) {
for (var i in e) t[i] = e[i]
},
r.addevent = function(t, e, i, n) {
t.addeventlistener(e, i, !!n)
},
r.removeevent = function(t, e, i, n) {
t.removeeventlistener(e, i, !!n)
},
r.prefixpointerevent = function(e) {
return t.mspointerevent ? "mspointer" + e.charat(7).touppercase() + e.substr(8) : e
},
r.momentum = function(t, e, n, r, s, o) {
var a, l, c = t - e,
h = i.abs(c) / n;
return o = void 0 === o ? 6e-4: o,
a = t + h * h / (2 * o) * (c < 0 ? -1 : 1),
l = h / o,
a < r ? (a = s ? r - s / 2.5 * (h / 8) : r, c = i.abs(a - t), l = c / h) : a > 0 && (a = s ? s / 2.5 * (h / 8) : 0, c = i.abs(t) + a, l = c / h),
{
destination: i.round(a),
duration: l
}
};
var a = n("transform");
return r.extend(r, {
hastransform: !1 !== a,
hasperspective: n("perspective") in s,
hastouch: "ontouchstart" in t,
haspointer: !(!t.pointerevent && !t.mspointerevent),
hastransition: n("transition") in s
}),
r.isbadandroid = function() {
var e = t.navigator.appversion;
if (/android/.test(e) && !/chrome\/\d/.test(e)) {
var i = e.match(/safari\/(\d+.\d)/);
return ! (i && "object" == typeof i && i.length >= 2) || parsefloat(i[1]) < 535.19
}
return ! 1
} (),
r.extend(r.style = {},
{
transform: a,
transitiontimingfunction: n("transitiontimingfunction"),
transitionduration: n("transitionduration"),
transitiondelay: n("transitiondelay"),
transformorigin: n("transformorigin"),
touchaction: n("touchaction")
}),
r.hasclass = function(t, e) {
return new regexp("(^|\\s)" + e + "(\\s|$)").test(t.classname)
},
r.addclass = function(t, e) {
if (!r.hasclass(t, e)) {
var i = t.classname.split(" ");
i.push(e),
t.classname = i.join(" ")
}
},
r.removeclass = function(t, e) {
if (r.hasclass(t, e)) {
var i = new regexp("(^|\\s)" + e + "(\\s|$)", "g");
t.classname = t.classname.replace(i, " ")
}
},
r.offset = function(t) {
for (var e = -t.offsetleft,
i = -t.offsettop; t = t.offsetparent;) e -= t.offsetleft,
i -= t.offsettop;
return {
left: e,
top: i
}
},
r.preventdefaultexception = function(t, e) {
for (var i in e) if (e[i].test(t[i])) return ! 0;
return ! 1
},
r.extend(r.eventtype = {},
{
touchstart: 1,
touchmove: 1,
touchend: 1,
mousedown: 2,
mousemove: 2,
mouseup: 2,
pointerdown: 3,
pointermove: 3,
pointerup: 3,
mspointerdown: 3,
mspointermove: 3,
mspointerup: 3
}),
r.extend(r.ease = {},
{
quadratic: {
style: "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
fn: function(t) {
return t * (2 - t)
}
},
circular: {
style: "cubic-bezier(0.1, 0.57, 0.1, 1)",
fn: function(t) {
return i.sqrt(1 - --t * t)
}
},
back: {
style: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
fn: function(t) {
return (t -= 1) * t * (5 * t + 4) + 1
}
},
bounce: {
style: "",
fn: function(t) {
return (t /= 1) < 1 / 2.75 ? 7.5625 * t * t: t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
}
},
elastic: {
style: "",
fn: function(t) {
return 0 === t ? 0 : 1 == t ? 1 : .4 * i.pow(2, -10 * t) * i.sin((t - .055) * (2 * i.pi) / .22) + 1
}
}
}),
r.tap = function(t, i) {
var n = e.createevent("event");
n.initevent(i, !0, !0),
n.pagex = t.pagex,
n.pagey = t.pagey,
t.target.dispatchevent(n)
},
r.click = function(i) {
var n, r = i.target;
/(select|input|textarea)/i.test(r.tagname) || (n = e.createevent(t.mouseevent ? "mouseevents": "event"), n.initevent("click", !0, !0), n.view = i.view || t, n.detail = 1, n.screenx = r.screenx || 0, n.screeny = r.screeny || 0, n.clientx = r.clientx || 0, n.clienty = r.clienty || 0, n.ctrlkey = !!i.ctrlkey, n.altkey = !!i.altkey, n.shiftkey = !!i.shiftkey, n.metakey = !!i.metakey, n.button = 0, n.relatedtarget = null, n._constructed = !0, r.dispatchevent(n))
},
r.gettouchaction = function(t, e) {
var i = "none";
return "vertical" === t ? i = "pan-y": "horizontal" === t && (i = "pan-x"),
e && "none" != i && (i += " pinch-zoom"),
i
},
r.getrect = function(t) {
if (t instanceof svgelement) {
var e = t.getboundingclientrect();
return {
top: e.top,
left: e.left,
width: e.width,
height: e.height
}
}
return {
top: t.offsettop,
left: t.offsetleft,
width: t.offsetwidth,
height: t.offsetheight
}
},
r
} ();
n.prototype = {
version: "5.2.0-snapshot",
_init: function() {
this._initevents(),
this.options.zoom && this._initzoom(),
(this.options.scrollbars || this.options.indicators) && this._initindicators(),
this.options.mousewheel && this._initwheel(),
this.options.snap && this._initsnap(),
this.options.keybindings && this._initkeys()
},
destroy: function() {
this._initevents(!0),
cleartimeout(this.resizetimeout),
this.resizetimeout = null,
this._execevent("destroy")
},
_transitionend: function(t) {
t.target == this.scroller && this.isintransition && (this._transitiontime(), this.resetposition(this.options.bouncetime) || (this.isintransition = !1, this._execevent("scrollend")))
},
_start: function(t) {
if (1 != a.eventtype[t.type]) {
if (0 !== (t.which ? t.button: t.button < 2 ? 0 : 4 == t.button ? 1 : 2)) return
}
if (this.enabled && (!this.initiated || a.eventtype[t.type] === this.initiated)) { ! this.options.preventdefault || a.isbadandroid || a.preventdefaultexception(t.target, this.options.preventdefaultexception) || t.preventdefault();
var e, n = t.touches ? t.touches[0] : t;
this.initiated = a.eventtype[t.type],
this.moved = !1,
this.distx = 0,
this.disty = 0,
this.directionx = 0,
this.directiony = 0,
this.directionlocked = 0,
this.starttime = a.gettime(),
this.options.usetransition && this.isintransition ? (this._transitiontime(), this.isintransition = !1, e = this.getcomputedposition(), this._translate(i.round(e.x), i.round(e.y)), this._execevent("scrollend")) : !this.options.usetransition && this.isanimating && (this.isanimating = !1, this._execevent("scrollend")),
this.startx = this.x,
this.starty = this.y,
this.absstartx = this.x,
this.absstarty = this.y,
this.pointx = n.pagex,
this.pointy = n.pagey,
this._execevent("beforescrollstart")
}
},
_move: function(t) {
if (this.enabled && a.eventtype[t.type] === this.initiated) {
this.options.preventdefault && t.preventdefault();
var e, n, r, s, o = t.touches ? t.touches[0] : t,
l = o.pagex - this.pointx,
c = o.pagey - this.pointy,
h = a.gettime();
if (this.pointx = o.pagex, this.pointy = o.pagey, this.distx += l, this.disty += c, r = i.abs(this.distx), s = i.abs(this.disty), !(h - this.endtime > 300 && r < 10 && s < 10)) {
if (this.directionlocked || this.options.freescroll || (r > s + this.options.directionlockthreshold ? this.directionlocked = "h": s >= r + this.options.directionlockthreshold ? this.directionlocked = "v": this.directionlocked = "n"), "h" == this.directionlocked) {
if ("vertical" == this.options.eventpassthrough) t.preventdefault();
else if ("horizontal" == this.options.eventpassthrough) return void(this.initiated = !1);
c = 0
} else if ("v" == this.directionlocked) {
if ("horizontal" == this.options.eventpassthrough) t.preventdefault();
else if ("vertical" == this.options.eventpassthrough) return void(this.initiated = !1);
l = 0
}
l = this.hashorizontalscroll ? l: 0,
c = this.hasverticalscroll ? c: 0,
e = this.x + l,
n = this.y + c,
(e > 0 || e < this.maxscrollx) && (e = this.options.bounce ? this.x + l / 3 : e > 0 ? 0 : this.maxscrollx),
(n > 0 || n < this.maxscrolly) && (n = this.options.bounce ? this.y + c / 3 : n > 0 ? 0 : this.maxscrolly),
this.directionx = l > 0 ? -1 : l < 0 ? 1 : 0,
this.directiony = c > 0 ? -1 : c < 0 ? 1 : 0,
this.moved || this._execevent("scrollstart"),
this.moved = !0,
this._translate(e, n),
h - this.starttime > 300 && (this.starttime = h, this.startx = this.x, this.starty = this.y)
}
}
},
_end: function(t) {
if (this.enabled && a.eventtype[t.type] === this.initiated) {
this.options.preventdefault && !a.preventdefaultexception(t.target, this.options.preventdefaultexception) && t.preventdefault();
var e, n, r = (t.changedtouches && t.changedtouches[0], a.gettime() - this.starttime),
s = i.round(this.x),
o = i.round(this.y),
l = i.abs(s - this.startx),
c = i.abs(o - this.starty),
h = 0,
p = "";
if (this.isintransition = 0, this.initiated = 0, this.endtime = a.gettime(), !this.resetposition(this.options.bouncetime)) {
if (this.scrollto(s, o), !this.moved) return this.options.tap && a.tap(t, this.options.tap),
this.options.click && a.click(t),
void this._execevent("scrollcancel");
if (this._events.flick && r < 200 && l < 100 && c < 100) return void this._execevent("flick");
if (this.options.momentum && r < 300 && (e = this.hashorizontalscroll ? a.momentum(this.x, this.startx, r, this.maxscrollx, this.options.bounce ? this.wrapperwidth: 0, this.options.deceleration) : {
destination: s,
duration: 0
},
n = this.hasverticalscroll ? a.momentum(this.y, this.starty, r, this.maxscrolly, this.options.bounce ? this.wrapperheight: 0, this.options.deceleration) : {
destination: o,
duration: 0
},
s = e.destination, o = n.destination, h = i.max(e.duration, n.duration), this.isintransition = 1), this.options.snap) {
var u = this._nearestsnap(s, o);
this.currentpage = u,
h = this.options.snapspeed || i.max(i.max(i.min(i.abs(s - u.x), 1e3), i.min(i.abs(o - u.y), 1e3)), 300),
s = u.x,
o = u.y,
this.directionx = 0,
this.directiony = 0,
p = this.options.bounceeasing
}
if (s != this.x || o != this.y) return (s > 0 || s < this.maxscrollx || o > 0 || o < this.maxscrolly) && (p = a.ease.quadratic),
void this.scrollto(s, o, h, p);
this._execevent("scrollend")
}
}
},
_resize: function() {
var t = this;
cleartimeout(this.resizetimeout),
this.resizetimeout = settimeout(function() {
t.refresh()
},
this.options.resizepolling)
},
resetposition: function(t) {
var e = this.x,
i = this.y;
return t = t || 0,
!this.hashorizontalscroll || this.x > 0 ? e = 0 : this.x < this.maxscrollx && (e = this.maxscrollx),
!this.hasverticalscroll || this.y > 0 ? i = 0 : this.y < this.maxscrolly && (i = this.maxscrolly),
(e != this.x || i != this.y) && (this.scrollto(e, i, t, this.options.bounceeasing), !0)
},
disable: function() {
this.enabled = !1
},
enable: function() {
this.enabled = !0
},
refresh: function() {
a.getrect(this.wrapper),
this.wrapperwidth = this.wrapper.clientwidth,
this.wrapperheight = this.wrapper.clientheight;
var t = a.getrect(this.scroller);
this.scrollerwidth = i.round(t.width * this.scale),
this.scrollerheight = i.round(t.height * this.scale),
this.maxscrollx = this.wrapperwidth - this.scrollerwidth,
this.maxscrolly = this.wrapperheight - this.scrollerheight,
this.hashorizontalscroll = this.options.scrollx && this.maxscrollx < 0,
this.hasverticalscroll = this.options.scrolly && this.maxscrolly < 0,
this.hashorizontalscroll || (this.maxscrollx = 0, this.scrollerwidth = this.wrapperwidth),
this.hasverticalscroll || (this.maxscrolly = 0, this.scrollerheight = this.wrapperheight),
this.endtime = 0,
this.directionx = 0,
this.directiony = 0,
a.haspointer && !this.options.disablepointer && (this.wrapper.style[a.style.touchaction] = a.gettouchaction(this.options.eventpassthrough, !0), this.wrapper.style[a.style.touchaction] || (this.wrapper.style[a.style.touchaction] = a.gettouchaction(this.options.eventpassthrough, !1))),
this.wrapperoffset = a.offset(this.wrapper),
this._execevent("refresh"),
this.resetposition()
},
on: function(t, e) {
this._events[t] || (this._events[t] = []),
this._events[t].push(e)
},
off: function(t, e) {
if (this._events[t]) {
var i = this._events[t].indexof(e);
i > -1 && this._events[t].splice(i, 1)
}
},
_execevent: function(t) {
if (this._events[t]) {
var e = 0,
i = this._events[t].length;
if (i) for (; e < i; e++) this._events[t][e].apply(this, [].slice.call(arguments, 1))
}
},
scrollby: function(t, e, i, n) {
t = this.x + t,
e = this.y + e,
i = i || 0,
this.scrollto(t, e, i, n)
},
scrollto: function(t, e, i, n) {
n = n || a.ease.circular,
this.isintransition = this.options.usetransition && i > 0;
var r = this.options.usetransition && n.style; ! i || r ? (r && (this._transitiontimingfunction(n.style), this._transitiontime(i)), this._translate(t, e)) : this._animate(t, e, i, n.fn)
},
scrolltoelement: function(t, e, n, r, s) {
if (t = t.nodetype ? t: this.scroller.queryselector(t)) {
var o = a.offset(t);
o.left -= this.wrapperoffset.left,
o.top -= this.wrapperoffset.top;
var l = a.getrect(t),
c = a.getrect(this.wrapper); ! 0 === n && (n = i.round(l.width / 2 - c.width / 2)),
!0 === r && (r = i.round(l.height / 2 - c.height / 2)),
o.left -= n || 0,
o.top -= r || 0,
o.left = o.left > 0 ? 0 : o.left < this.maxscrollx ? this.maxscrollx: o.left,
o.top = o.top > 0 ? 0 : o.top < this.maxscrolly ? this.maxscrolly: o.top,
e = void 0 === e || null === e || "auto" === e ? i.max(i.abs(this.x - o.left), i.abs(this.y - o.top)) : e,
this.scrollto(o.left, o.top, e, s)
}
},
_transitiontime: function(t) {
if (this.options.usetransition) {
t = t || 0;
var e = a.style.transitionduration;
if (e) {
if (this.scrollerstyle[e] = t + "ms", !t && a.isbadandroid) {
this.scrollerstyle[e] = "0.0001ms";
var i = this;
o(function() {
"0.0001ms" === i.scrollerstyle[e] && (i.scrollerstyle[e] = "0s")
})
}
if (this.indicators) for (var n = this.indicators.length; n--;) this.indicators[n].transitiontime(t)
}
}
},
_transitiontimingfunction: function(t) {
if (this.scrollerstyle[a.style.transitiontimingfunction] = t, this.indicators) for (var e = this.indicators.length; e--;) this.indicators[e].transitiontimingfunction(t)
},
_translate: function(t, e) {
if (this.options.usetransform ? this.scrollerstyle[a.style.transform] = "translate(" + t + "px," + e + "px) scale(" + this.scale + ") " + this.translatez: (t = i.round(t), e = i.round(e), this.scrollerstyle.left = t + "px", this.scrollerstyle.top = e + "px"), this.x = t, this.y = e, this.indicators) for (var n = this.indicators.length; n--;) this.indicators[n].updateposition()
},
_initevents: function(e) {
var i = e ? a.removeevent: a.addevent,
n = this.options.bindtowrapper ? this.wrapper: t;
i(t, "orientationchange", this),
i(t, "resize", this),
this.options.click && i(this.wrapper, "click", this, !0),
this.options.disablemouse || (i(this.wrapper, "mousedown", this), i(n, "mousemove", this), i(n, "mousecancel", this), i(n, "mouseup", this)),
a.haspointer && !this.options.disablepointer && (i(this.wrapper, a.prefixpointerevent("pointerdown"), this), i(n, a.prefixpointerevent("pointermove"), this), i(n, a.prefixpointerevent("pointercancel"), this), i(n, a.prefixpointerevent("pointerup"), this)),
a.hastouch && !this.options.disabletouch && (i(this.wrapper, "touchstart", this), i(n, "touchmove", this), i(n, "touchcancel", this), i(n, "touchend", this)),
i(this.scroller, "transitionend", this),
i(this.scroller, "webkittransitionend", this),
i(this.scroller, "otransitionend", this),
i(this.scroller, "mstransitionend", this)
},
getcomputedposition: function() {
var e, i, n = t.getcomputedstyle(this.scroller, null);
return this.options.usetransform ? (n = n[a.style.transform].split(")")[0].split(", "), e = +(n[12] || n[4]), i = +(n[13] || n[5])) : (e = +n.left.replace(/[^-\d.]/g, ""), i = +n.top.replace(/[^-\d.]/g, "")),
{
x: e,
y: i
}
},
_initindicators: function() {
function t(t) {
if (a.indicators) for (var e = a.indicators.length; e--;) t.call(a.indicators[e])
}
var e, i = this.options.interactivescrollbars,
n = "string" != typeof this.options.scrollbars,
o = [],
a = this;
this.indicators = [],
this.options.scrollbars && (this.options.scrolly && (e = {
el: r("v", i, this.options.scrollbars),
interactive: i,
defaultscrollbars: !0,
customstyle: n,
resize: this.options.resizescrollbars,
shrink: this.options.shrinkscrollbars,
fade: this.options.fadescrollbars,
listenx: !1
},
this.wrapper.appendchild(e.el), o.push(e)), this.options.scrollx && (e = {
el: r("h", i, this.options.scrollbars),
interactive: i,
defaultscrollbars: !0,
customstyle: n,
resize: this.options.resizescrollbars,
shrink: this.options.shrinkscrollbars,
fade: this.options.fadescrollbars,
listeny: !1
},
this.wrapper.appendchild(e.el), o.push(e))),
this.options.indicators && (o = o.concat(this.options.indicators));
for (var l = o.length; l--;) this.indicators.push(new s(this, o[l]));
this.options.fadescrollbars && (this.on("scrollend",
function() {
t(function() {
this.fade()
})
}), this.on("scrollcancel",
function() {
t(function() {
this.fade()
})
}), this.on("scrollstart",
function() {
t(function() {
this.fade(1)
})
}), this.on("beforescrollstart",
function() {
t(function() {
this.fade(1, !0)
})
})),
this.on("refresh",
function() {
t(function() {
this.refresh()
})
}),
this.on("destroy",
function() {
t(function() {
this.destroy()
}),
delete this.indicators
})
},
_initzoom: function() {
this.scrollerstyle[a.style.transformorigin] = "0 0"
},
_zoomstart: function(t) {
var e = i.abs(t.touches[0].pagex - t.touches[1].pagex),
n = i.abs(t.touches[0].pagey - t.touches[1].pagey);
this.touchesdistancestart = i.sqrt(e * e + n * n),
this.startscale = this.scale,
this.originx = i.abs(t.touches[0].pagex + t.touches[1].pagex) / 2 + this.wrapperoffset.left - this.x,
this.originy = i.abs(t.touches[0].pagey + t.touches[1].pagey) / 2 + this.wrapperoffset.top - this.y,
this._execevent("zoomstart")
},
_zoom: function(t) {
if (this.enabled && a.eventtype[t.type] === this.initiated) {
this.options.preventdefault && t.preventdefault();
var e, n, r, s = i.abs(t.touches[0].pagex - t.touches[1].pagex),
o = i.abs(t.touches[0].pagey - t.touches[1].pagey),
l = i.sqrt(s * s + o * o),
c = 1 / this.touchesdistancestart * l * this.startscale;
this.scaled = !0,
c < this.options.zoommin ? c = .5 * this.options.zoommin * i.pow(2, c / this.options.zoommin) : c > this.options.zoommax && (c = 2 * this.options.zoommax * i.pow(.5, this.options.zoommax / c)),
e = c / this.startscale,
n = this.originx - this.originx * e + this.startx,
r = this.originy - this.originy * e + this.starty,
this.scale = c,
this.scrollto(n, r, 0)
}
},
_zoomend: function(t) {
if (this.enabled && a.eventtype[t.type] === this.initiated) {
this.options.preventdefault && t.preventdefault();
var e, i, n;
this.isintransition = 0,
this.initiated = 0,
this.scale > this.options.zoommax ? this.scale = this.options.zoommax: this.scale < this.options.zoommin && (this.scale = this.options.zoommin),
this.refresh(),
n = this.scale / this.startscale,
e = this.originx - this.originx * n + this.startx,
i = this.originy - this.originy * n + this.starty,
e > 0 ? e = 0 : e < this.maxscrollx && (e = this.maxscrollx),
i > 0 ? i = 0 : i < this.maxscrolly && (i = this.maxscrolly),
this.x == e && this.y == i || this.scrollto(e, i, this.options.bouncetime),
this.scaled = !1,
this._execevent("zoomend")
}
},
zoom: function(t, e, i, n) {
if (t < this.options.zoommin ? t = this.options.zoommin: t > this.options.zoommax && (t = this.options.zoommax), t != this.scale) {
var r = t / this.scale;
e = void 0 === e ? this.wrapperwidth / 2 : e,
i = void 0 === i ? this.wrapperheight / 2 : i,
n = void 0 === n ? 300 : n,
e = e + this.wrapperoffset.left - this.x,
i = i + this.wrapperoffset.top - this.y,
e = e - e * r + this.x,
i = i - i * r + this.y,
this.scale = t,
this.refresh(),
e > 0 ? e = 0 : e < this.maxscrollx && (e = this.maxscrollx),
i > 0 ? i = 0 : i < this.maxscrolly && (i = this.maxscrolly),
this.scrollto(e, i, n)
}
},
_wheelzoom: function(t) {
var e, n, r = this;
if (cleartimeout(this.wheeltimeout), this.wheeltimeout = settimeout(function() {
r._execevent("zoomend")
},
400), "deltax" in t) e = -t.deltay / i.abs(t.deltay);
else if ("wheeldeltax" in t) e = t.wheeldeltay / i.abs(t.wheeldeltay);
else if ("wheeldelta" in t) e = t.wheeldelta / i.abs(t.wheeldelta);
else {
if (! ("detail" in t)) return;
e = -t.detail / i.abs(t.wheeldelta)
}
n = this.scale + e / 5,
this.zoom(n, t.pagex, t.pagey, 0)
},
_initwheel: function() {
a.addevent(this.wrapper, "wheel", this),
a.addevent(this.wrapper, "mousewheel", this),
a.addevent(this.wrapper, "dommousescroll", this),
this.on("destroy",
function() {
cleartimeout(this.wheeltimeout),
this.wheeltimeout = null,
a.removeevent(this.wrapper, "wheel", this),
a.removeevent(this.wrapper, "mousewheel", this),
a.removeevent(this.wrapper, "dommousescroll", this)
})
},
_wheel: function(t) {
if (this.enabled) {
t.preventdefault();
var e, n, r, s, o = this;
if (void 0 === this.wheeltimeout && o._execevent("scrollstart"), cleartimeout(this.wheeltimeout), this.wheeltimeout = settimeout(function() {
o.options.snap || o._execevent("scrollend"),
o.wheeltimeout = void 0
},
400), "deltax" in t) 1 === t.deltamode ? (e = -t.deltax * this.options.mousewheelspeed, n = -t.deltay * this.options.mousewheelspeed) : (e = -t.deltax, n = -t.deltay);
else if ("wheeldeltax" in t) e = t.wheeldeltax / 120 * this.options.mousewheelspeed,
n = t.wheeldeltay / 120 * this.options.mousewheelspeed;
else if ("wheeldelta" in t) e = n = t.wheeldelta / 120 * this.options.mousewheelspeed;
else {
if (! ("detail" in t)) return;
e = n = -t.detail / 3 * this.options.mousewheelspeed
}
if (e *= this.options.invertwheeldirection, n *= this.options.invertwheeldirection, this.hasverticalscroll || (e = n, n = 0), this.options.snap) return r = this.currentpage.pagex,
s = this.currentpage.pagey,
e > 0 ? r--:e < 0 && r++,
n > 0 ? s--:n < 0 && s++,
void this.gotopage(r, s);
r = this.x + i.round(this.hashorizontalscroll ? e: 0),
s = this.y + i.round(this.hasverticalscroll ? n: 0),
this.directionx = e > 0 ? -1 : e < 0 ? 1 : 0,
this.directiony = n > 0 ? -1 : n < 0 ? 1 : 0,
r > 0 ? r = 0 : r < this.maxscrollx && (r = this.maxscrollx),
s > 0 ? s = 0 : s < this.maxscrolly && (s = this.maxscrolly),
this.scrollto(r, s, 0)
}
},
_initsnap: function() {
this.currentpage = {},
"string" == typeof this.options.snap && (this.options.snap = this.scroller.queryselectorall(this.options.snap)),
this.on("refresh",
function() {
var t, e, n, r, s, o, l, c = 0,
h = 0,
p = 0,
u = this.options.snapstepx || this.wrapperwidth,
d = this.options.snapstepy || this.wrapperheight;
if (this.pages = [], this.wrapperwidth && this.wrapperheight && this.scrollerwidth && this.scrollerheight) {
if (!0 === this.options.snap) for (n = i.round(u / 2), r = i.round(d / 2); p > -this.scrollerwidth;) {
for (this.pages[c] = [], t = 0, s = 0; s > -this.scrollerheight;) this.pages[c][t] = {
x: i.max(p, this.maxscrollx),
y: i.max(s, this.maxscrolly),
width: u,
height: d,
cx: p - n,
cy: s - r
},
s -= d,
t++;
p -= u,
c++
} else for (o = this.options.snap, t = o.length, e = -1; c < t; c++) l = a.getrect(o[c]),
(0 === c || l.left <= a.getrect(o[c - 1]).left) && (h = 0, e++),
this.pages[h] || (this.pages[h] = []),
p = i.max( - l.left, this.maxscrollx),
s = i.max( - l.top, this.maxscrolly),
n = p - i.round(l.width / 2),
r = s - i.round(l.height / 2),
this.pages[h][e] = {
x: p,
y: s,
width: l.width,
height: l.height,
cx: n,
cy: r
},
p > this.maxscrollx && h++;
this.gotopage(this.currentpage.pagex || 0, this.currentpage.pagey || 0, 0),
this.options.snapthreshold % 1 == 0 ? (this.snapthresholdx = this.options.snapthreshold, this.snapthresholdy = this.options.snapthreshold) : (this.snapthresholdx = i.round(this.pages[this.currentpage.pagex][this.currentpage.pagey].width * this.options.snapthreshold), this.snapthresholdy = i.round(this.pages[this.currentpage.pagex][this.currentpage.pagey].height * this.options.snapthreshold))
}
}),
this.on("flick",
function() {
var t = this.options.snapspeed || i.max(i.max(i.min(i.abs(this.x - this.startx), 1e3), i.min(i.abs(this.y - this.starty), 1e3)), 300);
this.gotopage(this.currentpage.pagex + this.directionx, this.currentpage.pagey + this.directiony, t)
})
},
_nearestsnap: function(t, e) {
if (!this.pages.length) return {
x: 0,
y: 0,
pagex: 0,
pagey: 0
};
var n = 0,
r = this.pages.length,
s = 0;
if (i.abs(t - this.absstartx) < this.snapthresholdx && i.abs(e - this.absstarty) < this.snapthresholdy) return this.currentpage;
for (t > 0 ? t = 0 : t < this.maxscrollx && (t = this.maxscrollx), e > 0 ? e = 0 : e < this.maxscrolly && (e = this.maxscrolly); n < r; n++) if (t >= this.pages[n][0].cx) {
t = this.pages[n][0].x;
break
}
for (r = this.pages[n].length; s < r; s++) if (e >= this.pages[0][s].cy) {
e = this.pages[0][s].y;
break
}
return n == this.currentpage.pagex && (n += this.directionx, n < 0 ? n = 0 : n >= this.pages.length && (n = this.pages.length - 1), t = this.pages[n][0].x),
s == this.currentpage.pagey && (s += this.directiony, s < 0 ? s = 0 : s >= this.pages[0].length && (s = this.pages[0].length - 1), e = this.pages[0][s].y),
{
x: t,
y: e,
pagex: n,
pagey: s
}
},
gotopage: function(t, e, n, r) {
r = r || this.options.bounceeasing,
t >= this.pages.length ? t = this.pages.length - 1 : t < 0 && (t = 0),
e >= this.pages[t].length ? e = this.pages[t].length - 1 : e < 0 && (e = 0);
var s = this.pages[t][e].x,
o = this.pages[t][e].y;
n = void 0 === n ? this.options.snapspeed || i.max(i.max(i.min(i.abs(s - this.x), 1e3), i.min(i.abs(o - this.y), 1e3)), 300) : n,
this.currentpage = {
x: s,
y: o,
pagex: t,
pagey: e
},
this.scrollto(s, o, n, r)
},
next: function(t, e) {
var i = this.currentpage.pagex,
n = this.currentpage.pagey;
i++,
i >= this.pages.length && this.hasverticalscroll && (i = 0, n++),
this.gotopage(i, n, t, e)
},
prev: function(t, e) {
var i = this.currentpage.pagex,
n = this.currentpage.pagey;
i--,
i < 0 && this.hasverticalscroll && (i = 0, n--),
this.gotopage(i, n, t, e)
},
_initkeys: function(e) {
var i, n = {
pageup: 33,
pagedown: 34,
end: 35,
home: 36,
left: 37,
up: 38,
right: 39,
down: 40
};
if ("object" == typeof this.options.keybindings) for (i in this.options.keybindings)"string" == typeof this.options.keybindings[i] && (this.options.keybindings[i] = this.options.keybindings[i].touppercase().charcodeat(0));
else this.options.keybindings = {};
for (i in n) this.options.keybindings[i] = this.options.keybindings[i] || n[i];
a.addevent(t, "keydown", this),
this.on("destroy",
function() {
a.removeevent(t, "keydown", this)
})
},
_key: function(t) {
if (this.enabled) {
var e, n = this.options.snap,
r = n ? this.currentpage.pagex: this.x,
s = n ? this.currentpage.pagey: this.y,
o = a.gettime(),
l = this.keytime || 0;
switch (this.options.usetransition && this.isintransition && (e = this.getcomputedposition(), this._translate(i.round(e.x), i.round(e.y)), this.isintransition = !1), this.keyacceleration = o - l < 200 ? i.min(this.keyacceleration + .25, 50) : 0, t.keycode) {
case this.options.keybindings.pageup:
this.hashorizontalscroll && !this.hasverticalscroll ? r += n ? 1 : this.wrapperwidth: s += n ? 1 : this.wrapperheight;
break;
case this.options.keybindings.pagedown:
this.hashorizontalscroll && !this.hasverticalscroll ? r -= n ? 1 : this.wrapperwidth: s -= n ? 1 : this.wrapperheight;
break;
case this.options.keybindings.end:
r = n ? this.pages.length - 1 : this.maxscrollx,
s = n ? this.pages[0].length - 1 : this.maxscrolly;
break;
case this.options.keybindings.home:
r = 0,
s = 0;
break;
case this.options.keybindings.left:
r += n ? -1 : 5 + this.keyacceleration >> 0;
break;
case this.options.keybindings.up:
s += n ? 1 : 5 + this.keyacceleration >> 0;
break;
case this.options.keybindings.right:
r -= n ? -1 : 5 + this.keyacceleration >> 0;
break;
case this.options.keybindings.down:
s -= n ? 1 : 5 + this.keyacceleration >> 0;
break;
default:
return
}
if (n) return void this.gotopage(r, s);
r > 0 ? (r = 0, this.keyacceleration = 0) : r < this.maxscrollx && (r = this.maxscrollx, this.keyacceleration = 0),
s > 0 ? (s = 0, this.keyacceleration = 0) : s < this.maxscrolly && (s = this.maxscrolly, this.keyacceleration = 0),
this.scrollto(r, s, 0),
this.keytime = o
}
},
_animate: function(t, e, i, n) {
function r() {
var u, d, f, m = a.gettime();
if (m >= p) return s.isanimating = !1,
s._translate(t, e),
void(s.resetposition(s.options.bouncetime) || s._execevent("scrollend"));
m = (m - h) / i,
f = n(m),
u = (t - l) * f + l,
d = (e - c) * f + c,
s._translate(u, d),
s.isanimating && o(r)
}
var s = this,
l = this.x,
c = this.y,
h = a.gettime(),
p = h + i;
this.isanimating = !0,
r()
},
handleevent: function(t) {
switch (t.type) {
case "touchstart":
case "pointerdown":
case "mspointerdown":
case "mousedown":
this._start(t),
this.options.zoom && t.touches && t.touches.length > 1 && this._zoomstart(t);
break;
case "touchmove":
case "pointermove":
case "mspointermove":
case "mousemove":
if (this.options.zoom && t.touches && t.touches[1]) return void this._zoom(t);
this._move(t);
break;
case "touchend":
case "pointerup":
case "mspointerup":
case "mouseup":
case "touchcancel":
case "pointercancel":
case "mspointercancel":
case "mousecancel":
if (this.scaled) return void this._zoomend(t);
this._end(t);
break;
case "orientationchange":
case "resize":
this._resize();
break;
case "transitionend":
case "webkittransitionend":
case "otransitionend":
case "mstransitionend":
this._transitionend(t);
break;
case "wheel":
case "dommousescroll":
case "mousewheel":
if ("zoom" == this.options.wheelaction) return void this._wheelzoom(t);
this._wheel(t);
break;
case "keydown":
this._key(t)
}
}
},
s.prototype = {
handleevent: function(t) {
switch (t.type) {
case "touchstart":
case "pointerdown":
case "mspointerdown":
case "mousedown":
this._start(t);
break;
case "touchmove":
case "pointermove":
case "mspointermove":
case "mousemove":
this._move(t);
break;
case "touchend":
case "pointerup":
case "mspointerup":
case "mouseup":
case "touchcancel":
case "pointercancel":
case "mspointercancel":
case "mousecancel":
this._end(t)
}
},
destroy: function() {
this.options.fadescrollbars && (cleartimeout(this.fadetimeout), this.fadetimeout = null),
this.options.interactive && (a.removeevent(this.indicator, "touchstart", this), a.removeevent(this.indicator, a.prefixpointerevent("pointerdown"), this), a.removeevent(this.indicator, "mousedown", this), a.removeevent(t, "touchmove", this), a.removeevent(t, a.prefixpointerevent("pointermove"), this), a.removeevent(t, "mousemove", this), a.removeevent(t, "touchend", this), a.removeevent(t, a.prefixpointerevent("pointerup"), this), a.removeevent(t, "mouseup", this)),
this.options.defaultscrollbars && this.wrapper.parentnode && this.wrapper.parentnode.removechild(this.wrapper)
},
_start: function(e) {
var i = e.touches ? e.touches[0] : e;
e.preventdefault(),
e.stoppropagation(),
this.transitiontime(),
this.initiated = !0,
this.moved = !1,
this.lastpointx = i.pagex,
this.lastpointy = i.pagey,
this.starttime = a.gettime(),
this.options.disabletouch || a.addevent(t, "touchmove", this),
this.options.disablepointer || a.addevent(t, a.prefixpointerevent("pointermove"), this),
this.options.disablemouse || a.addevent(t, "mousemove", this),
this.scroller._execevent("beforescrollstart")
},
_move: function(t) {
var e, i, n, r, s = t.touches ? t.touches[0] : t;
a.gettime();
this.moved || this.scroller._execevent("scrollstart"),
this.moved = !0,
e = s.pagex - this.lastpointx,
this.lastpointx = s.pagex,
i = s.pagey - this.lastpointy,
this.lastpointy = s.pagey,
n = this.x + e,
r = this.y + i,
this._pos(n, r),
t.preventdefault(),
t.stoppropagation()
},
_end: function(e) {
if (this.initiated) {
if (this.initiated = !1, e.preventdefault(), e.stoppropagation(), a.removeevent(t, "touchmove", this), a.removeevent(t, a.prefixpointerevent("pointermove"), this), a.removeevent(t, "mousemove", this), this.scroller.options.snap) {
var n = this.scroller._nearestsnap(this.scroller.x, this.scroller.y),
r = this.options.snapspeed || i.max(i.max(i.min(i.abs(this.scroller.x - n.x), 1e3), i.min(i.abs(this.scroller.y - n.y), 1e3)), 300);
this.scroller.x == n.x && this.scroller.y == n.y || (this.scroller.directionx = 0, this.scroller.directiony = 0, this.scroller.currentpage = n, this.scroller.scrollto(n.x, n.y, r, this.scroller.options.bounceeasing))
}
this.moved && this.scroller._execevent("scrollend")
}
},
transitiontime: function(t) {
t = t || 0;
var e = a.style.transitionduration;
if (e && (this.indicatorstyle[e] = t + "ms", !t && a.isbadandroid)) {
this.indicatorstyle[e] = "0.0001ms";
var i = this;
o(function() {
"0.0001ms" === i.indicatorstyle[e] && (i.indicatorstyle[e] = "0s")
})
}
},
transitiontimingfunction: function(t) {
this.indicatorstyle[a.style.transitiontimingfunction] = t
},
refresh: function() {
this.transitiontime(),
this.options.listenx && !this.options.listeny ? this.indicatorstyle.display = this.scroller.hashorizontalscroll ? "block": "none": this.options.listeny && !this.options.listenx ? this.indicatorstyle.display = this.scroller.hasverticalscroll ? "block": "none": this.indicatorstyle.display = this.scroller.hashorizontalscroll || this.scroller.hasverticalscroll ? "block": "none",
this.scroller.hashorizontalscroll && this.scroller.hasverticalscroll ? (a.addclass(this.wrapper, "iscrollbothscrollbars"), a.removeclass(this.wrapper, "iscrolllonescrollbar"), this.options.defaultscrollbars && this.options.customstyle && (this.options.listenx ? this.wrapper.style.right = "8px": this.wrapper.style.bottom = "8px")) : (a.removeclass(this.wrapper, "iscrollbothscrollbars"), a.addclass(this.wrapper, "iscrolllonescrollbar"), this.options.defaultscrollbars && this.options.customstyle && (this.options.listenx ? this.wrapper.style.right = "2px": this.wrapper.style.bottom = "2px")),
a.getrect(this.wrapper),
this.options.listenx && (this.wrapperwidth = this.wrapper.clientwidth, this.options.resize ? (this.indicatorwidth = i.max(i.round(this.wrapperwidth * this.wrapperwidth / (this.scroller.scrollerwidth || this.wrapperwidth || 1)), 8), this.indicatorstyle.width = this.indicatorwidth + "px") : this.indicatorwidth = this.indicator.clientwidth, this.maxposx = this.wrapperwidth - this.indicatorwidth, "clip" == this.options.shrink ? (this.minboundaryx = 8 - this.indicatorwidth, this.maxboundaryx = this.wrapperwidth - 8) : (this.minboundaryx = 0, this.maxboundaryx = this.maxposx), this.sizeratiox = this.options.speedratiox || this.scroller.maxscrollx && this.maxposx / this.scroller.maxscrollx),
this.options.listeny && (this.wrapperheight = this.wrapper.clientheight, this.options.resize ? (this.indicatorheight = i.max(i.round(this.wrapperheight * this.wrapperheight / (this.scroller.scrollerheight || this.wrapperheight || 1)), 8), this.indicatorstyle.height = this.indicatorheight + "px") : this.indicatorheight = this.indicator.clientheight, this.maxposy = this.wrapperheight - this.indicatorheight, "clip" == this.options.shrink ? (this.minboundaryy = 8 - this.indicatorheight, this.maxboundaryy = this.wrapperheight - 8) : (this.minboundaryy = 0, this.maxboundaryy = this.maxposy), this.maxposy = this.wrapperheight - this.indicatorheight, this.sizeratioy = this.options.speedratioy || this.scroller.maxscrolly && this.maxposy / this.scroller.maxscrolly),
this.updateposition()
},
updateposition: function() {
var t = this.options.listenx && i.round(this.sizeratiox * this.scroller.x) || 0,
e = this.options.listeny && i.round(this.sizeratioy * this.scroller.y) || 0;
this.options.ignoreboundaries || (t < this.minboundaryx ? ("scale" == this.options.shrink && (this.width = i.max(this.indicatorwidth + t, 8), this.indicatorstyle.width = this.width + "px"), t = this.minboundaryx) : t > this.maxboundaryx ? "scale" == this.options.shrink ? (this.width = i.max(this.indicatorwidth - (t - this.maxposx), 8), this.indicatorstyle.width = this.width + "px", t = this.maxposx + this.indicatorwidth - this.width) : t = this.maxboundaryx: "scale" == this.options.shrink && this.width != this.indicatorwidth && (this.width = this.indicatorwidth, this.indicatorstyle.width = this.width + "px"), e < this.minboundaryy ? ("scale" == this.options.shrink && (this.height = i.max(this.indicatorheight + 3 * e, 8), this.indicatorstyle.height = this.height + "px"), e = this.minboundaryy) : e > this.maxboundaryy ? "scale" == this.options.shrink ? (this.height = i.max(this.indicatorheight - 3 * (e - this.maxposy), 8), this.indicatorstyle.height = this.height + "px", e = this.maxposy + this.indicatorheight - this.height) : e = this.maxboundaryy: "scale" == this.options.shrink && this.height != this.indicatorheight && (this.height = this.indicatorheight, this.indicatorstyle.height = this.height + "px")),
this.x = t,
this.y = e,
this.scroller.options.usetransform ? this.indicatorstyle[a.style.transform] = "translate(" + t + "px," + e + "px)" + this.scroller.translatez: (this.indicatorstyle.left = t + "px", this.indicatorstyle.top = e + "px")
},
_pos: function(t, e) {
t < 0 ? t = 0 : t > this.maxposx && (t = this.maxposx),
e < 0 ? e = 0 : e > this.maxposy && (e = this.maxposy),
t = this.options.listenx ? i.round(t / this.sizeratiox) : this.scroller.x,
e = this.options.listeny ? i.round(e / this.sizeratioy) : this.scroller.y,
this.scroller.scrollto(t, e)
},
fade: function(t, e) {
if (!e || this.visible) {
cleartimeout(this.fadetimeout),
this.fadetimeout = null;
var i = t ? 250 : 500,
n = t ? 0 : 300;
t = t ? "1": "0",
this.wrapperstyle[a.style.transitionduration] = i + "ms",
this.fadetimeout = settimeout(function(t) {
this.wrapperstyle.opacity = t,
this.visible = +t
}.bind(this, t), n)
}
}
},
n.utils = a,
"undefined" != typeof module && module.exports ? module.exports = n: "function" == typeof define && define.amd ? define(function() {
return n
}) : t.iscroll = n
} (window, document, math),
!
function(t) {
t.fn.slide = function(e) {
return t.fn.slide.defaults = {
type: "slide",
effect: "fade",
autoplay: !1,
delaytime: 500,
intertime: 2500,
triggertime: 150,
defaultindex: 0,
titcell: ".hd li",
maincell: ".bd",
targetcell: null,
trigger: "mouseover",
scroll: 1,
vis: 1,
titonclassname: "on",
autopage: !1,
prevcell: ".prev",
nextcell: ".next",
pagestatecell: ".pagestate",
opp: !1,
pnloop: !0,
easing: "swing",
startfun: null,
endfun: null,
switchload: null,
playstatecell: ".playstate",
mouseoverstop: !0,
defaultplay: !0,
returndefault: !1
},
this.each(function() {
var i = t.extend({},
t.fn.slide.defaults, e),
n = t(this),
r = i.effect,
s = t(i.prevcell, n),
o = t(i.nextcell, n),
a = t(i.pagestatecell, n),
l = t(i.playstatecell, n),
c = t(i.titcell, n),
h = c.size(),
p = t(i.maincell, n),
u = p.children().size(),
d = i.switchload,
f = t(i.targetcell, n),
m = parseint(i.defaultindex),
v = parseint(i.delaytime),
g = parseint(i.intertime);
parseint(i.triggertime);
var y, b = parseint(i.scroll),
t = parseint(i.vis),
w = "false" != i.autoplay && 0 != i.autoplay,
_ = "false" != i.opp && 0 != i.opp,
c = "false" != i.autopage && 0 != i.autopage,
s = "false" != i.pnloop && 0 != i.pnloop,
x = "false" != i.mouseoverstop && 0 != i.mouseoverstop,
k = "false" != i.defaultplay && 0 != i.defaultplay,
e = "false" != i.returndefault && 0 != i.returndefault,
p = 0,
m = 0,
i = 0,
a = 0,
j = i.easing,
d = null,
o = null,
z = null,
n = i.titonclassname,
b = c.index(n.find("." + n)),
l = m = -1 == b ? m: b,
r = m,
h = m,
f = u >= t ? 0 != u % b ? u % b: b: 0,
x = "leftmarquee" == r || "topmarquee" == r,
y = function() {
t.isfunction(i.startfun) && i.startfun(m, h, n, t(i.titcell, n), p, f, s, o)
},
v = function() {
t.isfunction(i.endfun) && i.endfun(m, h, n, t(i.titcell, n), p, f, s, o)
},
w = function() {
c.removeclass(n),
k && c.eq(r).addclass(n)
};
if ("menu" == i.type) return k && c.removeclass(n).eq(m).addclass(n),
c.hover(function() {
y = t(this).find(i.targetcell);
var e = c.index(t(this));
o = settimeout(function() {
switch (m = e, c.removeclass(n).eq(m).addclass(n), y(), r) {
case "fade":
y.stop(!0, !0).animate({
opacity: "show"
},
v, j, v);
break;
case "slidedown":
y.stop(!0, !0).animate({
height: "show"
},
v, j, v)
}
},
i.triggertime)
},
function() {
switch (cleartimeout(o), r) {
case "fade":
y.animate({
opacity:
"hide"
},
v, j);
break;
case "slidedown":
y.animate({
height:
"hide"
},
v, j)
}
}),
void(e && n.hover(function() {
cleartimeout(z)
},
function() {
z = settimeout(w, v)
}));
if (0 == h && (h = u), x && (h = 2), c) {
if (u >= t) if ("leftloop" == r || "toploop" == r) h = 0 != u % b ? 1 + (0 ^ u / b) : u / b;
else {
var g = u - t;
0 >= (h = 1 + parseint(0 != g % b ? g / b + 1 : g / b)) && (h = 1)
} else h = 1;
c.html("");
var q = "";
if (1 == i.autopage || "true" == i.autopage) for (var u = 0; h > u; u++) q += "
" + (u + 1) + "";
else for (var u = 0; h > u; u++) q += i.autopage.replace("$", u + 1);
c.html(q);
var c = c.children()
}
if (u >= t) {
p.children().each(function() {
t(this).width() > i && (i = t(this).width(), m = t(this).outerwidth(!0)),
t(this).height() > a && (a = t(this).height(), p = t(this).outerheight(!0))
});
var k = p.children(),
q = function() {
for (var t = 0; t > t; t++) k.eq(t).clone().addclass("clone").appendto(p);
for (var t = 0; f > t; t++) k.eq(u - t - 1).clone().addclass("clone").prependto(p)
};
switch (r) {
case "fold":
p.css({
position:
"relative",
width: m,
height: p
}).children().css({
position: "absolute",
width: i,
left: 0,
top: 0,
display: "none"
});
break;
case "top":
p.wrap('').css({
top: -m * b * p,
position: "relative",
padding: "0",
margin: "0"
}).children().css({
height: a
});
break;
case "left":
p.wrap('').css({
width: u * m,
left: -m * b * m,
position: "relative",
overflow: "hidden",
padding: "0",
margin: "0"
}).children().css({
float: "left",
width: i
});
break;
case "leftloop":
case "leftmarquee":
q(),
p.wrap('').css({
width: (u + t + f) * m,
position: "relative",
overflow: "hidden",
padding: "0",
margin: "0",
left: -(f + m * b) * m
}).children().css({
float: "left",
width: i
});
break;
case "toploop":
case "topmarquee":
q(),
p.wrap('').css({
height: (u + t + f) * p,
position: "relative",
padding: "0",
margin: "0",
top: -(f + m * b) * p
}).children().css({
height: a
})
}
}
var $ = function(t) {
var e = t * b;
return t == h ? e = u: -1 == t && 0 != u % b && (e = -u % b),
e
},
z = function(e) {
var i = function(i) {
for (var n = i; t + i > n; n++) e.eq(n).find("img[" + d + "]").each(function() {
var e = t(this);
if (e.attr("src", e.attr(d)).removeattr(d), p.find(".clone")[0]) for (var i = p.children(), n = 0; n < i.size(); n++) i.eq(n).find("img[" + d + "]").each(function() {
t(this).attr(d) == e.attr("src") && t(this).attr("src", t(this).attr(d)).removeattr(d)
})
})
};
switch (r) {
case "fade":
case "fold":
case "top":
case "left":
case "slidedown":
i(m * b);
break;
case "leftloop":
case "toploop":
i(f + $(h));
break;
case "leftmarquee":
case "topmarquee":
var n = "leftmarquee" == r ? p.css("left").replace("px", "") : p.css("top").replace("px", ""),
s = "leftmarquee" == r ? m: p,
o = f;
if (0 != n % s) {
var a = math.abs(0 ^ n / s);
o = 1 == m ? f + a: f + a - 1
}
i(o)
}
},
j = function(t) {
if (!k || l != m || t || x) {
if (x ? m >= 1 ? m = 1 : 0 >= m && (m = 0) : (h = m, m >= h ? m = 0 : 0 > m && (m = h - 1)), y(), null != d && z(p.children()), f[0] && (y = f.eq(m), null != d && z(f), "slidedown" == r ? (f.not(y).stop(!0, !0).slideup(v), y.slidedown(v, j,
function() {
p[0] || v()
})) : (f.not(y).stop(!0, !0).hide(), y.animate({
opacity: "show"
},
v,
function() {
p[0] || v()
}))), u >= t) switch (r) {
case "fade":
p.children().stop(!0, !0).eq(m).animate({
opacity: "show"
},
v, j,
function() {
v()
}).siblings().hide();
break;
case "fold":
p.children().stop(!0, !0).eq(m).animate({
opacity: "show"
},
v, j,
function() {
v()
}).siblings().animate({
opacity: "hide"
},
v, j);
break;
case "top":
p.stop(!0, !1).animate({
top: -m * b * p
},
v, j,
function() {
v()
});
break;
case "left":
p.stop(!0, !1).animate({
left: -m * b * m
},
v, j,
function() {
v()
});
break;
case "leftloop":
var e = h;
p.stop(!0, !0).animate({
left: -($(h) + f) * m
},
v, j,
function() { - 1 >= e ? p.css("left", -(f + (h - 1) * b) * m) : e >= h && p.css("left", -f * m),
v()
});
break;
case "toploop":
var e = h;
p.stop(!0, !0).animate({
top: -($(h) + f) * p
},
v, j,
function() { - 1 >= e ? p.css("top", -(f + (h - 1) * b) * p) : e >= h && p.css("top", -f * p),
v()
});
break;
case "leftmarquee":
var i = p.css("left").replace("px", "");
0 == m ? p.animate({
left: ++i
},
0,
function() {
p.css("left").replace("px", "") >= 0 && p.css("left", -u * m)
}) : p.animate({
left: --i
},
0,
function() {
p.css("left").replace("px", "") <= -(u + f) * m && p.css("left", -f * m)
});
break;
case "topmarquee":
var n = p.css("top").replace("px", "");
0 == m ? p.animate({
top: ++n
},
0,
function() {
p.css("top").replace("px", "") >= 0 && p.css("top", -u * p)
}) : p.animate({
top: --n
},
0,
function() {
p.css("top").replace("px", "") <= -(u + f) * p && p.css("top", -f * p)
})
}
c.removeclass(n).eq(m).addclass(n),
l = m,
s || (o.removeclass("nextstop"), s.removeclass("prevstop"), 0 == m && s.addclass("prevstop"), m == h - 1 && o.addclass("nextstop")),
a.html("" + (m + 1) + "/" + h)
}
};
k && j(!0),
e && n.hover(function() {
cleartimeout(z)
},
function() {
z = settimeout(function() {
m = r,
k ? j() : "slidedown" == r ? y.slideup(v, w) : y.animate({
opacity: "hide"
},
v, w),
l = m
},
300)
});
var tt = function(t) {
d = setinterval(function() {
_ ? m--:m++,
j()
},
t || g)
},
et = function(t) {
d = setinterval(j, t || g)
},
it = function() {
x || (clearinterval(d), tt())
},
nt = function() { (s || m != h - 1) && (m++, j(), x || it())
},
rt = function() { (s || 0 != m) && (m--, j(), x || it())
},
st = function() {
clearinterval(d),
x ? et() : tt(),
l.removeclass("pausestate")
},
ot = function() {
clearinterval(d),
l.addclass("pausestate")
};
if (w ? x ? (_ ? m--:m++, et(), x && p.hover(ot, st)) : (tt(), x && n.hover(ot, st)) : (x && (_ ? m--:m++), l.addclass("pausestate")), l.click(function() {
l.hasclass("pausestate") ? st() : ot()
}), "mouseover" == i.trigger ? c.hover(function() {
var t = c.index(this);
o = settimeout(function() {
m = t,
j(),
it()
},
i.triggertime)
},
function() {
cleartimeout(o)
}) : c.click(function() {
m = c.index(this),
j(),
it()
}), x) {
if (o.mousedown(nt), s.mousedown(rt), s) {
var at, lt = function() {
at = settimeout(function() {
clearinterval(d),
et(0 ^ g / 10)
},
150)
},
ct = function() {
cleartimeout(at),
clearinterval(d),
et()
};
o.mousedown(lt),
o.mouseup(ct),
s.mousedown(lt),
s.mouseup(ct)
}
"mouseover" == i.trigger && (o.hover(nt,
function() {}), s.hover(rt,
function() {}))
} else o.click(nt),
s.click(rt)
})
}
} (jquery),
jquery.easing.jswing = jquery.easing.swing,
jquery.extend(jquery.easing, {
def: "easeoutquad",
swing: function(t, e, i, n, r) {
return jquery.easing[jquery.easing.def](t, e, i, n, r)
},
easeinquad: function(t, e, i, n, r) {
return n * (e /= r) * e + i
},
easeoutquad: function(t, e, i, n, r) {
return - n * (e /= r) * (e - 2) + i
},
easeinoutquad: function(t, e, i, n, r) {
return (e /= r / 2) < 1 ? n / 2 * e * e + i: -n / 2 * (--e * (e - 2) - 1) + i
},
easeincubic: function(t, e, i, n, r) {
return n * (e /= r) * e * e + i
},
easeoutcubic: function(t, e, i, n, r) {
return n * ((e = e / r - 1) * e * e + 1) + i
},
easeinoutcubic: function(t, e, i, n, r) {
return (e /= r / 2) < 1 ? n / 2 * e * e * e + i: n / 2 * ((e -= 2) * e * e + 2) + i
},
easeinquart: function(t, e, i, n, r) {
return n * (e /= r) * e * e * e + i
},
easeoutquart: function(t, e, i, n, r) {
return - n * ((e = e / r - 1) * e * e * e - 1) + i
},
easeinoutquart: function(t, e, i, n, r) {
return (e /= r / 2) < 1 ? n / 2 * e * e * e * e + i: -n / 2 * ((e -= 2) * e * e * e - 2) + i
},
easeinquint: function(t, e, i, n, r) {
return n * (e /= r) * e * e * e * e + i
},
easeoutquint: function(t, e, i, n, r) {
return n * ((e = e / r - 1) * e * e * e * e + 1) + i
},
easeinoutquint: function(t, e, i, n, r) {
return (e /= r / 2) < 1 ? n / 2 * e * e * e * e * e + i: n / 2 * ((e -= 2) * e * e * e * e + 2) + i
},
easeinsine: function(t, e, i, n, r) {
return - n * math.cos(e / r * (math.pi / 2)) + n + i
},
easeoutsine: function(t, e, i, n, r) {
return n * math.sin(e / r * (math.pi / 2)) + i
},
easeinoutsine: function(t, e, i, n, r) {
return - n / 2 * (math.cos(math.pi * e / r) - 1) + i
},
easeinexpo: function(t, e, i, n, r) {
return 0 == e ? i: n * math.pow(2, 10 * (e / r - 1)) + i
},
easeoutexpo: function(t, e, i, n, r) {
return e == r ? i + n: n * (1 - math.pow(2, -10 * e / r)) + i
},
easeinoutexpo: function(t, e, i, n, r) {
return 0 == e ? i: e == r ? i + n: (e /= r / 2) < 1 ? n / 2 * math.pow(2, 10 * (e - 1)) + i: n / 2 * (2 - math.pow(2, -10 * --e)) + i
},
easeincirc: function(t, e, i, n, r) {
return - n * (math.sqrt(1 - (e /= r) * e) - 1) + i
},
easeoutcirc: function(t, e, i, n, r) {
return n * math.sqrt(1 - (e = e / r - 1) * e) + i
},
easeinoutcirc: function(t, e, i, n, r) {
return (e /= r / 2) < 1 ? -n / 2 * (math.sqrt(1 - e * e) - 1) + i: n / 2 * (math.sqrt(1 - (e -= 2) * e) + 1) + i
},
easeinelastic: function(t, e, i, n, r) {
var s = 1.70158,
o = 0,
a = n;
if (0 == e) return i;
if (1 == (e /= r)) return i + n;
if (o || (o = .3 * r), a < math.abs(n)) {
a = n;
var s = o / 4
} else var s = o / (2 * math.pi) * math.asin(n / a);
return - a * math.pow(2, 10 * (e -= 1)) * math.sin(2 * (e * r - s) * math.pi / o) + i
},
easeoutelastic: function(t, e, i, n, r) {
var s = 1.70158,
o = 0,
a = n;
if (0 == e) return i;
if (1 == (e /= r)) return i + n;
if (o || (o = .3 * r), a < math.abs(n)) {
a = n;
var s = o / 4
} else var s = o / (2 * math.pi) * math.asin(n / a);
return a * math.pow(2, -10 * e) * math.sin(2 * (e * r - s) * math.pi / o) + n + i
},
easeinoutelastic: function(t, e, i, n, r) {
var s = 1.70158,
o = 0,
a = n;
if (0 == e) return i;
if (2 == (e /= r / 2)) return i + n;
if (o || (o = .3 * r * 1.5), a < math.abs(n)) {
a = n;
var s = o / 4
} else var s = o / (2 * math.pi) * math.asin(n / a);
return 1 > e ? -.5 * a * math.pow(2, 10 * (e -= 1)) * math.sin(2 * (e * r - s) * math.pi / o) + i: .5 * a * math.pow(2, -10 * (e -= 1)) * math.sin(2 * (e * r - s) * math.pi / o) + n + i
},
easeinback: function(t, e, i, n, r, s) {
return void 0 == s && (s = 1.70158),
n * (e /= r) * e * ((s + 1) * e - s) + i
},
easeoutback: function(t, e, i, n, r, s) {
return void 0 == s && (s = 1.70158),
n * ((e = e / r - 1) * e * ((s + 1) * e + s) + 1) + i
},
easeinoutback: function(t, e, i, n, r, s) {
return void 0 == s && (s = 1.70158),
(e /= r / 2) < 1 ? n / 2 * e * e * ((1 + (s *= 1.525)) * e - s) + i: n / 2 * ((e -= 2) * e * ((1 + (s *= 1.525)) * e + s) + 2) + i
},
easeinbounce: function(t, e, i, n, r) {
return n - jquery.easing.easeoutbounce(t, r - e, 0, n, r) + i
},
easeoutbounce: function(t, e, i, n, r) {
return (e /= r) < 1 / 2.75 ? 7.5625 * n * e * e + i: 2 / 2.75 > e ? n * (7.5625 * (e -= 1.5 / 2.75) * e + .75) + i: 2.5 / 2.75 > e ? n * (7.5625 * (e -= 2.25 / 2.75) * e + .9375) + i: n * (7.5625 * (e -= 2.625 / 2.75) * e + .984375) + i
},
easeinoutbounce: function(t, e, i, n, r) {
return r / 2 > e ? .5 * jquery.easing.easeinbounce(t, 2 * e, 0, n, r) + i: .5 * jquery.easing.easeoutbounce(t, 2 * e - r, 0, n, r) + .5 * n + i
}
}),
!
function() {
"use strict";
var t, e = function(i, n) {
function r(t) {
return math.floor(t)
}
function s() {
b.autoplaytimeoutid = settimeout(function() {
b.params.loop ? (b.fixloop(), b._slidenext(), b.emit("onautoplay", b)) : b.isend ? n.autoplaystoponlast ? b.stopautoplay() : (b._slideto(0), b.emit("onautoplay", b)) : (b._slidenext(), b.emit("onautoplay", b))
},
b.params.autoplay)
}
function o(e, i) {
var n = t(e.target);
if (!n.is(i)) if ("string" == typeof i) n = n.parents(i);
else if (i.nodetype) {
var r;
return n.parents().each(function(t, e) {
e === i && (r = i)
}),
r ? i: void 0
}
if (0 !== n.length) return n[0]
}
function a(t, e) {
e = e || {};
var i = window.mutationobserver || window.webkitmutationobserver,
n = new i(function(t) {
t.foreach(function(t) {
b.onresize(!0),
b.emit("onobserverupdate", b, t)
})
});
n.observe(t, {
attributes: void 0 === e.attributes || e.attributes,
childlist: void 0 === e.childlist || e.childlist,
characterdata: void 0 === e.characterdata || e.characterdata
}),
b.observers.push(n)
}
function l(t) {
t.originalevent && (t = t.originalevent);
var e = t.keycode || t.charcode;
if (!b.params.allowswipetonext && (b.ishorizontal() && 39 === e || !b.ishorizontal() && 40 === e)) return ! 1;
if (!b.params.allowswipetoprev && (b.ishorizontal() && 37 === e || !b.ishorizontal() && 38 === e)) return ! 1;
if (! (t.shiftkey || t.altkey || t.ctrlkey || t.metakey || document.activeelement && document.activeelement.nodename && ("input" === document.activeelement.nodename.tolowercase() || "textarea" === document.activeelement.nodename.tolowercase()))) {
if (37 === e || 39 === e || 38 === e || 40 === e) {
var i = !1;
if (b.container.parents(".swiper-slide").length > 0 && 0 === b.container.parents(".swiper-slide-active").length) return;
var n = {
left: window.pagexoffset,
top: window.pageyoffset
},
r = window.innerwidth,
s = window.innerheight,
o = b.container.offset();
b.rtl && (o.left = o.left - b.container[0].scrollleft);
for (var a = [[o.left, o.top], [o.left + b.width, o.top], [o.left, o.top + b.height], [o.left + b.width, o.top + b.height]], l = 0; l < a.length; l++) {
var c = a[l];
c[0] >= n.left && c[0] <= n.left + r && c[1] >= n.top && c[1] <= n.top + s && (i = !0)
}
if (!i) return
}
b.ishorizontal() ? ((37 === e || 39 === e) && (t.preventdefault ? t.preventdefault() : t.returnvalue = !1), (39 === e && !b.rtl || 37 === e && b.rtl) && b.slidenext(), (37 === e && !b.rtl || 39 === e && b.rtl) && b.slideprev()) : ((38 === e || 40 === e) && (t.preventdefault ? t.preventdefault() : t.returnvalue = !1), 40 === e && b.slidenext(), 38 === e && b.slideprev())
}
}
function c(t) {
t.originalevent && (t = t.originalevent);
var e = b.mousewheel.event,
i = 0,
n = b.rtl ? -1 : 1;
if ("mousewheel" === e) if (b.params.mousewheelforcetoaxis) if (b.ishorizontal()) {
if (! (math.abs(t.wheeldeltax) > math.abs(t.wheeldeltay))) return;
i = t.wheeldeltax * n
} else {
if (! (math.abs(t.wheeldeltay) > math.abs(t.wheeldeltax))) return;
i = t.wheeldeltay
} else i = math.abs(t.wheeldeltax) > math.abs(t.wheeldeltay) ? -t.wheeldeltax * n: -t.wheeldeltay;
else if ("dommousescroll" === e) i = -t.detail;
else if ("wheel" === e) if (b.params.mousewheelforcetoaxis) if (b.ishorizontal()) {
if (! (math.abs(t.deltax) > math.abs(t.deltay))) return;
i = -t.deltax * n
} else {
if (! (math.abs(t.deltay) > math.abs(t.deltax))) return;
i = -t.deltay
} else i = math.abs(t.deltax) > math.abs(t.deltay) ? -t.deltax * n: -t.deltay;
if (0 !== i) {
if (b.params.mousewheelinvert && (i = -i), b.params.freemode) {
var r = b.getwrappertranslate() + i * b.params.mousewheelsensitivity,
s = b.isbeginning,
o = b.isend;
if (r >= b.mintranslate() && (r = b.mintranslate()), r <= b.maxtranslate() && (r = b.maxtranslate()), b.setwrappertransition(0), b.setwrappertranslate(r), b.updateprogress(), b.updateactiveindex(), (!s && b.isbeginning || !o && b.isend) && b.updateclasses(), b.params.freemodesticky ? (cleartimeout(b.mousewheel.timeout), b.mousewheel.timeout = settimeout(function() {
b.slidereset()
},
300)) : b.params.lazyloading && b.lazy && b.lazy.load(), 0 === r || r === b.maxtranslate()) return
} else {
if ((new window.date).gettime() - b.mousewheel.lastscrolltime > 60) if (0 > i) if (b.isend && !b.params.loop || b.animating) {
if (b.params.mousewheelreleaseonedges) return ! 0
} else b.slidenext();
else if (b.isbeginning && !b.params.loop || b.animating) {
if (b.params.mousewheelreleaseonedges) return ! 0
} else b.slideprev();
b.mousewheel.lastscrolltime = (new window.date).gettime()
}
return b.params.autoplay && b.stopautoplay(),
t.preventdefault ? t.preventdefault() : t.returnvalue = !1,
!1
}
}
function h(e, i) {
e = t(e);
var n, r, s, o = b.rtl ? -1 : 1;
n = e.attr("data-swiper-parallax") || "0",
r = e.attr("data-swiper-parallax-x"),
s = e.attr("data-swiper-parallax-y"),
r || s ? (r = r || "0", s = s || "0") : b.ishorizontal() ? (r = n, s = "0") : (s = n, r = "0"),
r = r.indexof("%") >= 0 ? parseint(r, 10) * i * o + "%": r * i * o + "px",
s = s.indexof("%") >= 0 ? parseint(s, 10) * i + "%": s * i + "px",
e.transform("translate3d(" + r + ", " + s + ",0px)")
}
function p(t) {
return 0 !== t.indexof("on") && (t = t[0] !== t[0].touppercase() ? "on" + t[0].touppercase() + t.substring(1) : "on" + t),
t
}
if (! (this instanceof e)) return new e(i, n);
var u = {
direction: "horizontal",
toucheventstarget: "container",
initialslide: 0,
speed: 300,
autoplay: !1,
autoplaydisableoninteraction: !0,
autoplaystoponlast: !1,
iosedgeswipedetection: !1,
iosedgeswipethreshold: 20,
freemode: !1,
freemodemomentum: !0,
freemodemomentumratio: 1,
freemodemomentumbounce: !0,
freemodemomentumbounceratio: 1,
freemodesticky: !1,
freemodeminimumvelocity: .02,
autoheight: !1,
setwrappersize: !1,
virtualtranslate: !1,
effect: "slide",
coverflow: {
rotate: 50,
stretch: 0,
depth: 100,
modifier: 1,
slideshadows: !0
},
flip: {
slideshadows: !0,
limitrotation: !0
},
cube: {
slideshadows: !0,
shadow: !0,
shadowoffset: 20,
shadowscale: .94
},
fade: {
crossfade: !1
},
parallax: !1,
scrollbar: null,
scrollbarhide: !0,
scrollbardraggable: !1,
scrollbarsnaponrelease: !1,
keyboardcontrol: !1,
mousewheelcontrol: !1,
mousewheelreleaseonedges: !1,
mousewheelinvert: !1,
mousewheelforcetoaxis: !1,
mousewheelsensitivity: 1,
hashnav: !1,
breakpoints: void 0,
spacebetween: 0,
slidesperview: 1,
slidespercolumn: 1,
slidespercolumnfill: "column",
slidespergroup: 1,
centeredslides: !1,
slidesoffsetbefore: 0,
slidesoffsetafter: 0,
roundlengths: !1,
touchratio: 1,
touchangle: 45,
simulatetouch: !0,
shortswipes: !0,
longswipes: !0,
longswipesratio: .5,
longswipesms: 300,
followfinger: !0,
onlyexternal: !1,
threshold: 0,
touchmovestoppropagation: !0,
uniquenavelements: !0,
pagination: null,
paginationelement: "span",
paginationclickable: !1,
paginationhide: !1,
paginationbulletrender: null,
paginationprogressrender: null,
paginationfractionrender: null,
paginationcustomrender: null,
paginationtype: "bullets",
resistance: !0,
resistanceratio: .85,
nextbutton: null,
prevbutton: null,
watchslidesprogress: !1,
watchslidesvisibility: !1,
grabcursor: !1,
preventclicks: !0,
preventclickspropagation: !0,
slidetoclickedslide: !1,
lazyloading: !1,
lazyloadinginprevnext: !1,
lazyloadinginprevnextamount: 1,
lazyloadingontransitionstart: !1,
preloadimages: !0,
updateonimagesready: !0,
loop: !1,
loopadditionalslides: 0,
loopedslides: null,
control: void 0,
controlinverse: !1,
controlby: "slide",
allowswipetoprev: !0,
allowswipetonext: !0,
swipehandler: null,
noswiping: !0,
noswipingclass: "swiper-no-swiping",
slideclass: "swiper-slide",
slideactiveclass: "swiper-slide-active",
slidevisibleclass: "swiper-slide-visible",
slideduplicateclass: "swiper-slide-duplicate",
slidenextclass: "swiper-slide-next",
slideprevclass: "swiper-slide-prev",
wrapperclass: "swiper-wrapper",
bulletclass: "swiper-pagination-bullet",
bulletactiveclass: "swiper-pagination-bullet-active",
buttondisabledclass: "swiper-button-disabled",
paginationcurrentclass: "swiper-pagination-current",
paginationtotalclass: "swiper-pagination-total",
paginationhiddenclass: "swiper-pagination-hidden",
paginationprogressbarclass: "swiper-pagination-progressbar",
observer: !1,
observeparents: !1,
a11y: !1,
prevslidemessage: "previous slide",
nextslidemessage: "next slide",
firstslidemessage: "this is the first slide",
lastslidemessage: "this is the last slide",
paginationbulletmessage: "go to slide {{index}}",
runcallbacksoninit: !0
},
d = n && n.virtualtranslate;
n = n || {};
var f = {};
for (var m in n) if ("object" != typeof n[m] || null === n[m] || n[m].nodetype || n[m] === window || n[m] === document || "undefined" != typeof dom7 && n[m] instanceof dom7 || "undefined" != typeof jquery && n[m] instanceof jquery) f[m] = n[m];
else {
f[m] = {};
for (var v in n[m]) f[m][v] = n[m][v]
}
for (var g in u) if (void 0 === n[g]) n[g] = u[g];
else if ("object" == typeof n[g]) for (var y in u[g]) void 0 === n[g][y] && (n[g][y] = u[g][y]);
var b = this;
if (b.params = n, b.originalparams = f, b.classnames = [], void 0 !== t && "undefined" != typeof dom7 && (t = dom7), (void 0 !== t || (t = "undefined" == typeof dom7 ? window.dom7 || window.zepto || window.jquery: dom7)) && (b.$ = t, b.currentbreakpoint = void 0, b.getactivebreakpoint = function() {
if (!b.params.breakpoints) return ! 1;
var t, e = !1,
i = [];
for (t in b.params.breakpoints) b.params.breakpoints.hasownproperty(t) && i.push(t);
i.sort(function(t, e) {
return parseint(t, 10) > parseint(e, 10)
});
for (var n = 0; n < i.length; n++)(t = i[n]) >= window.innerwidth && !e && (e = t);
return e || "max"
},
b.setbreakpoint = function() {
var t = b.getactivebreakpoint();
if (t && b.currentbreakpoint !== t) {
var e = t in b.params.breakpoints ? b.params.breakpoints[t] : b.originalparams,
i = b.params.loop && e.slidesperview !== b.params.slidesperview;
for (var n in e) b.params[n] = e[n];
b.currentbreakpoint = t,
i && b.destroyloop && b.reloop(!0)
}
},
b.params.breakpoints && b.setbreakpoint(), b.container = t(i), 0 !== b.container.length)) {
if (b.container.length > 1) {
var t = [];
return b.container.each(function() {
t.push(new e(this, n))
}),
t
}
b.container[0].swiper = b,
b.container.data("swiper", b),
b.classnames.push("swiper-container-" + b.params.direction),
b.params.freemode && b.classnames.push("swiper-container-free-mode"),
b.support.flexbox || (b.classnames.push("swiper-container-no-flexbox"), b.params.slidespercolumn = 1),
b.params.autoheight && b.classnames.push("swiper-container-autoheight"),
(b.params.parallax || b.params.watchslidesvisibility) && (b.params.watchslidesprogress = !0),
["cube", "coverflow", "flip"].indexof(b.params.effect) >= 0 && (b.support.transforms3d ? (b.params.watchslidesprogress = !0, b.classnames.push("swiper-container-3d")) : b.params.effect = "slide"),
"slide" !== b.params.effect && b.classnames.push("swiper-container-" + b.params.effect),
"cube" === b.params.effect && (b.params.resistanceratio = 0, b.params.slidesperview = 1, b.params.slidespercolumn = 1, b.params.slidespergroup = 1, b.params.centeredslides = !1, b.params.spacebetween = 0, b.params.virtualtranslate = !0, b.params.setwrappersize = !1),
("fade" === b.params.effect || "flip" === b.params.effect) && (b.params.slidesperview = 1, b.params.slidespercolumn = 1, b.params.slidespergroup = 1, b.params.watchslidesprogress = !0, b.params.spacebetween = 0, b.params.setwrappersize = !1, void 0 === d && (b.params.virtualtranslate = !0)),
b.params.grabcursor && b.support.touch && (b.params.grabcursor = !1),
b.wrapper = b.container.children("." + b.params.wrapperclass),
b.params.pagination && (b.paginationcontainer = t(b.params.pagination), b.params.uniquenavelements && "string" == typeof b.params.pagination && b.paginationcontainer.length > 1 && 1 === b.container.find(b.params.pagination).length && (b.paginationcontainer = b.container.find(b.params.pagination)), "bullets" === b.params.paginationtype && b.params.paginationclickable ? b.paginationcontainer.addclass("swiper-pagination-clickable") : b.params.paginationclickable = !1, b.paginationcontainer.addclass("swiper-pagination-" + b.params.paginationtype)),
(b.params.nextbutton || b.params.prevbutton) && (b.params.nextbutton && (b.nextbutton = t(b.params.nextbutton), b.params.uniquenavelements && "string" == typeof b.params.nextbutton && b.nextbutton.length > 1 && 1 === b.container.find(b.params.nextbutton).length && (b.nextbutton = b.container.find(b.params.nextbutton))), b.params.prevbutton && (b.prevbutton = t(b.params.prevbutton), b.params.uniquenavelements && "string" == typeof b.params.prevbutton && b.prevbutton.length > 1 && 1 === b.container.find(b.params.prevbutton).length && (b.prevbutton = b.container.find(b.params.prevbutton)))),
b.ishorizontal = function() {
return "horizontal" === b.params.direction
},
b.rtl = b.ishorizontal() && ("rtl" === b.container[0].dir.tolowercase() || "rtl" === b.container.css("direction")),
b.rtl && b.classnames.push("swiper-container-rtl"),
b.rtl && (b.wrongrtl = "-webkit-box" === b.wrapper.css("display")),
b.params.slidespercolumn > 1 && b.classnames.push("swiper-container-multirow"),
b.device.android && b.classnames.push("swiper-container-android"),
b.container.addclass(b.classnames.join(" ")),
b.translate = 0,
b.progress = 0,
b.velocity = 0,
b.lockswipetonext = function() {
b.params.allowswipetonext = !1
},
b.lockswipetoprev = function() {
b.params.allowswipetoprev = !1
},
b.lockswipes = function() {
b.params.allowswipetonext = b.params.allowswipetoprev = !1
},
b.unlockswipetonext = function() {
b.params.allowswipetonext = !0
},
b.unlockswipetoprev = function() {
b.params.allowswipetoprev = !0
},
b.unlockswipes = function() {
b.params.allowswipetonext = b.params.allowswipetoprev = !0
},
b.params.grabcursor && (b.container[0].style.cursor = "move", b.container[0].style.cursor = "-webkit-grab", b.container[0].style.cursor = "-moz-grab", b.container[0].style.cursor = "grab"),
b.imagestoload = [],
b.imagesloaded = 0,
b.loadimage = function(t, e, i, n, r) {
function s() {
r && r()
}
var o;
t.complete && n ? s() : e ? (o = new window.image, o.onload = s, o.onerror = s, i && (o.srcset = i), e && (o.src = e)) : s()
},
b.preloadimages = function() {
function t() {
void 0 !== b && null !== b && (void 0 !== b.imagesloaded && b.imagesloaded++, b.imagesloaded === b.imagestoload.length && (b.params.updateonimagesready && b.update(), b.emit("onimagesready", b)))
}
b.imagestoload = b.container.find("img");
for (var e = 0; e < b.imagestoload.length; e++) b.loadimage(b.imagestoload[e], b.imagestoload[e].currentsrc || b.imagestoload[e].getattribute("src"), b.imagestoload[e].srcset || b.imagestoload[e].getattribute("srcset"), !0, t)
},
b.autoplaytimeoutid = void 0,
b.autoplaying = !1,
b.autoplaypaused = !1,
b.startautoplay = function() {
return void 0 === b.autoplaytimeoutid && ( !! b.params.autoplay && (!b.autoplaying && (b.autoplaying = !0, b.emit("onautoplaystart", b), void s())))
},
b.stopautoplay = function(t) {
b.autoplaytimeoutid && (b.autoplaytimeoutid && cleartimeout(b.autoplaytimeoutid), b.autoplaying = !1, b.autoplaytimeoutid = void 0, b.emit("onautoplaystop", b))
},
b.pauseautoplay = function(t) {
b.autoplaypaused || (b.autoplaytimeoutid && cleartimeout(b.autoplaytimeoutid), b.autoplaypaused = !0, 0 === t ? (b.autoplaypaused = !1, s()) : b.wrapper.transitionend(function() {
b && (b.autoplaypaused = !1, b.autoplaying ? s() : b.stopautoplay())
}))
},
b.mintranslate = function() {
return - b.snapgrid[0]
},
b.maxtranslate = function() {
return - b.snapgrid[b.snapgrid.length - 1]
},
b.updateautoheight = function() {
var t = b.slides.eq(b.activeindex)[0];
if (void 0 !== t) {
var e = t.offsetheight;
e && b.wrapper.css("height", e + "px")
}
},
b.updatecontainersize = function() {
var t, e;
t = void 0 !== b.params.width ? b.params.width: b.container[0].clientwidth,
e = void 0 !== b.params.height ? b.params.height: b.container[0].clientheight,
0 === t && b.ishorizontal() || 0 === e && !b.ishorizontal() || (t = t - parseint(b.container.css("padding-left"), 10) - parseint(b.container.css("padding-right"), 10), e = e - parseint(b.container.css("padding-top"), 10) - parseint(b.container.css("padding-bottom"), 10), b.width = t, b.height = e, b.size = b.ishorizontal() ? b.width: b.height)
},
b.updateslidessize = function() {
b.slides = b.wrapper.children("." + b.params.slideclass),
b.snapgrid = [],
b.slidesgrid = [],
b.slidessizesgrid = [];
var t, e = b.params.spacebetween,
i = -b.params.slidesoffsetbefore,
n = 0,
s = 0;
if (void 0 !== b.size) {
"string" == typeof e && e.indexof("%") >= 0 && (e = parsefloat(e.replace("%", "")) / 100 * b.size),
b.virtualsize = -e,
b.rtl ? b.slides.css({
marginleft: "",
margintop: ""
}) : b.slides.css({
marginright: "",
marginbottom: ""
});
var o;
b.params.slidespercolumn > 1 && (o = math.floor(b.slides.length / b.params.slidespercolumn) === b.slides.length / b.params.slidespercolumn ? b.slides.length: math.ceil(b.slides.length / b.params.slidespercolumn) * b.params.slidespercolumn, "auto" !== b.params.slidesperview && "row" === b.params.slidespercolumnfill && (o = math.max(o, b.params.slidesperview * b.params.slidespercolumn)));
var a, l = b.params.slidespercolumn,
c = o / l,
h = c - (b.params.slidespercolumn * c - b.slides.length);
for (t = 0; t < b.slides.length; t++) {
a = 0;
var p = b.slides.eq(t);
if (b.params.slidespercolumn > 1) {
var u, d, f;
"column" === b.params.slidespercolumnfill ? (d = math.floor(t / l), f = t - d * l, (d > h || d === h && f === l - 1) && ++f >= l && (f = 0, d++), u = d + f * o / l, p.css({
"-webkit-box-ordinal-group": u,
"-moz-box-ordinal-group": u,
"-ms-flex-order": u,
"-webkit-order": u,
order: u
})) : (f = math.floor(t / c), d = t - f * c),
p.css({
"margin-top": 0 !== f && b.params.spacebetween && b.params.spacebetween + "px"
}).attr("data-swiper-column", d).attr("data-swiper-row", f)
}
"none" !== p.css("display") && ("auto" === b.params.slidesperview ? (a = b.ishorizontal() ? p.outerwidth(!0) : p.outerheight(!0), b.params.roundlengths && (a = r(a))) : (a = (b.size - (b.params.slidesperview - 1) * e) / b.params.slidesperview, b.params.roundlengths && (a = r(a)), b.ishorizontal() ? b.slides[t].style.width = a + "px": b.slides[t].style.height = a + "px"), b.slides[t].swiperslidesize = a, b.slidessizesgrid.push(a), b.params.centeredslides ? (i = i + a / 2 + n / 2 + e, 0 === t && (i = i - b.size / 2 - e), math.abs(i) < .001 && (i = 0), s % b.params.slidespergroup == 0 && b.snapgrid.push(i), b.slidesgrid.push(i)) : (s % b.params.slidespergroup == 0 && b.snapgrid.push(i), b.slidesgrid.push(i), i = i + a + e), b.virtualsize += a + e, n = a, s++)
}
b.virtualsize = math.max(b.virtualsize, b.size) + b.params.slidesoffsetafter;
var m;
if (b.rtl && b.wrongrtl && ("slide" === b.params.effect || "coverflow" === b.params.effect) && b.wrapper.css({
width: b.virtualsize + b.params.spacebetween + "px"
}), (!b.support.flexbox || b.params.setwrappersize) && (b.ishorizontal() ? b.wrapper.css({
width: b.virtualsize + b.params.spacebetween + "px"
}) : b.wrapper.css({
height: b.virtualsize + b.params.spacebetween + "px"
})), b.params.slidespercolumn > 1 && (b.virtualsize = (a + b.params.spacebetween) * o, b.virtualsize = math.ceil(b.virtualsize / b.params.slidespercolumn) - b.params.spacebetween, b.wrapper.css({
width: b.virtualsize + b.params.spacebetween + "px"
}), b.params.centeredslides)) {
for (m = [], t = 0; t < b.snapgrid.length; t++) b.snapgrid[t] < b.virtualsize + b.snapgrid[0] && m.push(b.snapgrid[t]);
b.snapgrid = m
}
if (!b.params.centeredslides) {
for (m = [], t = 0; t < b.snapgrid.length; t++) b.snapgrid[t] <= b.virtualsize - b.size && m.push(b.snapgrid[t]);
b.snapgrid = m,
math.floor(b.virtualsize - b.size) - math.floor(b.snapgrid[b.snapgrid.length - 1]) > 1 && b.snapgrid.push(b.virtualsize - b.size)
}
0 === b.snapgrid.length && (b.snapgrid = [0]),
0 !== b.params.spacebetween && (b.ishorizontal() ? b.rtl ? b.slides.css({
marginleft: e + "px"
}) : b.slides.css({
marginright: e + "px"
}) : b.slides.css({
marginbottom: e + "px"
})),
b.params.watchslidesprogress && b.updateslidesoffset()
}
},
b.updateslidesoffset = function() {
for (var t = 0; t < b.slides.length; t++) b.slides[t].swiperslideoffset = b.ishorizontal() ? b.slides[t].offsetleft: b.slides[t].offsettop
},
b.updateslidesprogress = function(t) {
if (void 0 === t && (t = b.translate || 0), 0 !== b.slides.length) {
void 0 === b.slides[0].swiperslideoffset && b.updateslidesoffset();
var e = -t;
b.rtl && (e = t),
b.slides.removeclass(b.params.slidevisibleclass);
for (var i = 0; i < b.slides.length; i++) {
var n = b.slides[i],
r = (e - n.swiperslideoffset) / (n.swiperslidesize + b.params.spacebetween);
if (b.params.watchslidesvisibility) {
var s = -(e - n.swiperslideoffset),
o = s + b.slidessizesgrid[i]; (s >= 0 && s < b.size || o > 0 && o <= b.size || 0 >= s && o >= b.size) && b.slides.eq(i).addclass(b.params.slidevisibleclass)
}
n.progress = b.rtl ? -r: r
}
}
},
b.updateprogress = function(t) {
void 0 === t && (t = b.translate || 0);
var e = b.maxtranslate() - b.mintranslate(),
i = b.isbeginning,
n = b.isend;
0 === e ? (b.progress = 0, b.isbeginning = b.isend = !0) : (b.progress = (t - b.mintranslate()) / e, b.isbeginning = b.progress <= 0, b.isend = b.progress >= 1),
b.isbeginning && !i && b.emit("onreachbeginning", b),
b.isend && !n && b.emit("onreachend", b),
b.params.watchslidesprogress && b.updateslidesprogress(t),
b.emit("onprogress", b, b.progress)
},
b.updateactiveindex = function() {
var t, e, i, n = b.rtl ? b.translate: -b.translate;
for (e = 0; e < b.slidesgrid.length; e++) void 0 !== b.slidesgrid[e + 1] ? n >= b.slidesgrid[e] && n < b.slidesgrid[e + 1] - (b.slidesgrid[e + 1] - b.slidesgrid[e]) / 2 ? t = e: n >= b.slidesgrid[e] && n < b.slidesgrid[e + 1] && (t = e + 1) : n >= b.slidesgrid[e] && (t = e); (0 > t || void 0 === t) && (t = 0),
i = math.floor(t / b.params.slidespergroup),
i >= b.snapgrid.length && (i = b.snapgrid.length - 1),
t !== b.activeindex && (b.snapindex = i, b.previousindex = b.activeindex, b.activeindex = t, b.updateclasses())
},
b.updateclasses = function() {
b.slides.removeclass(b.params.slideactiveclass + " " + b.params.slidenextclass + " " + b.params.slideprevclass);
var e = b.slides.eq(b.activeindex);
e.addclass(b.params.slideactiveclass);
var i = e.next("." + b.params.slideclass).addclass(b.params.slidenextclass);
b.params.loop && 0 === i.length && b.slides.eq(0).addclass(b.params.slidenextclass);
var n = e.prev("." + b.params.slideclass).addclass(b.params.slideprevclass);
if (b.params.loop && 0 === n.length && b.slides.eq( - 1).addclass(b.params.slideprevclass), b.paginationcontainer && b.paginationcontainer.length > 0) {
var r, s = b.params.loop ? math.ceil((b.slides.length - 2 * b.loopedslides) / b.params.slidespergroup) : b.snapgrid.length;
if (b.params.loop ? (r = math.ceil((b.activeindex - b.loopedslides) / b.params.slidespergroup), r > b.slides.length - 1 - 2 * b.loopedslides && (r -= b.slides.length - 2 * b.loopedslides), r > s - 1 && (r -= s), 0 > r && "bullets" !== b.params.paginationtype && (r = s + r)) : r = void 0 !== b.snapindex ? b.snapindex: b.activeindex || 0, "bullets" === b.params.paginationtype && b.bullets && b.bullets.length > 0 && (b.bullets.removeclass(b.params.bulletactiveclass), b.paginationcontainer.length > 1 ? b.bullets.each(function() {
t(this).index() === r && t(this).addclass(b.params.bulletactiveclass)
}) : b.bullets.eq(r).addclass(b.params.bulletactiveclass)), "fraction" === b.params.paginationtype && (b.paginationcontainer.find("." + b.params.paginationcurrentclass).text(r + 1), b.paginationcontainer.find("." + b.params.paginationtotalclass).text(s)), "progress" === b.params.paginationtype) {
var o = (r + 1) / s,
a = o,
l = 1;
b.ishorizontal() || (l = o, a = 1),
b.paginationcontainer.find("." + b.params.paginationprogressbarclass).transform("translate3d(0,0,0) scalex(" + a + ") scaley(" + l + ")").transition(b.params.speed)
}
"custom" === b.params.paginationtype && b.params.paginationcustomrender && (b.paginationcontainer.html(b.params.paginationcustomrender(b, r + 1, s)), b.emit("onpaginationrendered", b, b.paginationcontainer[0]))
}
b.params.loop || (b.params.prevbutton && b.prevbutton && b.prevbutton.length > 0 && (b.isbeginning ? (b.prevbutton.addclass(b.params.buttondisabledclass), b.params.a11y && b.a11y && b.a11y.disable(b.prevbutton)) : (b.prevbutton.removeclass(b.params.buttondisabledclass), b.params.a11y && b.a11y && b.a11y.enable(b.prevbutton))), b.params.nextbutton && b.nextbutton && b.nextbutton.length > 0 && (b.isend ? (b.nextbutton.addclass(b.params.buttondisabledclass), b.params.a11y && b.a11y && b.a11y.disable(b.nextbutton)) : (b.nextbutton.removeclass(b.params.buttondisabledclass), b.params.a11y && b.a11y && b.a11y.enable(b.nextbutton))))
},
b.updatepagination = function() {
if (b.params.pagination && b.paginationcontainer && b.paginationcontainer.length > 0) {
var t = "";
if ("bullets" === b.params.paginationtype) {
for (var e = b.params.loop ? math.ceil((b.slides.length - 2 * b.loopedslides) / b.params.slidespergroup) : b.snapgrid.length, i = 0; e > i; i++) t += b.params.paginationbulletrender ? b.params.paginationbulletrender(i, b.params.bulletclass) : "<" + b.params.paginationelement + ' class="' + b.params.bulletclass + '">' + b.params.paginationelement + ">";
b.paginationcontainer.html(t),
b.bullets = b.paginationcontainer.find("." + b.params.bulletclass),
b.params.paginationclickable && b.params.a11y && b.a11y && b.a11y.initpagination()
}
"fraction" === b.params.paginationtype && (t = b.params.paginationfractionrender ? b.params.paginationfractionrender(b, b.params.paginationcurrentclass, b.params.paginationtotalclass) : ' / ', b.paginationcontainer.html(t)),
"progress" === b.params.paginationtype && (t = b.params.paginationprogressrender ? b.params.paginationprogressrender(b, b.params.paginationprogressbarclass) : '', b.paginationcontainer.html(t)),
"custom" !== b.params.paginationtype && b.emit("onpaginationrendered", b, b.paginationcontainer[0])
}
},
b.update = function(t) {
function e() {
i = math.min(math.max(b.translate, b.maxtranslate()), b.mintranslate()),
b.setwrappertranslate(i),
b.updateactiveindex(),
b.updateclasses()
}
if (b.updatecontainersize(), b.updateslidessize(), b.updateprogress(), b.updatepagination(), b.updateclasses(), b.params.scrollbar && b.scrollbar && b.scrollbar.set(), t) {
var i;
b.controller && b.controller.spline && (b.controller.spline = void 0),
b.params.freemode ? (e(), b.params.autoheight && b.updateautoheight()) : (("auto" === b.params.slidesperview || b.params.slidesperview > 1) && b.isend && !b.params.centeredslides ? b.slideto(b.slides.length - 1, 0, !1, !0) : b.slideto(b.activeindex, 0, !1, !0)) || e()
} else b.params.autoheight && b.updateautoheight()
},
b.onresize = function(t) {
b.params.breakpoints && b.setbreakpoint();
var e = b.params.allowswipetoprev,
i = b.params.allowswipetonext;
b.params.allowswipetoprev = b.params.allowswipetonext = !0,
b.updatecontainersize(),
b.updateslidessize(),
("auto" === b.params.slidesperview || b.params.freemode || t) && b.updatepagination(),
b.params.scrollbar && b.scrollbar && b.scrollbar.set(),
b.controller && b.controller.spline && (b.controller.spline = void 0);
var n = !1;
if (b.params.freemode) {
var r = math.min(math.max(b.translate, b.maxtranslate()), b.mintranslate());
b.setwrappertranslate(r),
b.updateactiveindex(),
b.updateclasses(),
b.params.autoheight && b.updateautoheight()
} else b.updateclasses(),
n = ("auto" === b.params.slidesperview || b.params.slidesperview > 1) && b.isend && !b.params.centeredslides ? b.slideto(b.slides.length - 1, 0, !1, !0) : b.slideto(b.activeindex, 0, !1, !0);
b.params.lazyloading && !n && b.lazy && b.lazy.load(),
b.params.allowswipetoprev = e,
b.params.allowswipetonext = i
};
var w = ["mousedown", "mousemove", "mouseup"];
window.navigator.pointerenabled ? w = ["pointerdown", "pointermove", "pointerup"] : window.navigator.mspointerenabled && (w = ["mspointerdown", "mspointermove", "mspointerup"]),
b.touchevents = {
start: b.support.touch || !b.params.simulatetouch ? "touchstart": w[0],
move: b.support.touch || !b.params.simulatetouch ? "touchmove": w[1],
end: b.support.touch || !b.params.simulatetouch ? "touchend": w[2]
},
(window.navigator.pointerenabled || window.navigator.mspointerenabled) && ("container" === b.params.toucheventstarget ? b.container: b.wrapper).addclass("swiper-wp8-" + b.params.direction),
b.initevents = function(t) {
var e = t ? "off": "on",
i = t ? "removeeventlistener": "addeventlistener",
r = "container" === b.params.toucheventstarget ? b.container[0] : b.wrapper[0],
s = b.support.touch ? r: document,
o = !!b.params.nested;
b.browser.ie ? (r[i](b.touchevents.start, b.ontouchstart, !1), s[i](b.touchevents.move, b.ontouchmove, o), s[i](b.touchevents.end, b.ontouchend, !1)) : (b.support.touch && (r[i](b.touchevents.start, b.ontouchstart, !1), r[i](b.touchevents.move, b.ontouchmove, o), r[i](b.touchevents.end, b.ontouchend, !1)), !n.simulatetouch || b.device.ios || b.device.android || (r[i]("mousedown", b.ontouchstart, !1), document[i]("mousemove", b.ontouchmove, o), document[i]("mouseup", b.ontouchend, !1))),
window[i]("resize", b.onresize),
b.params.nextbutton && b.nextbutton && b.nextbutton.length > 0 && (b.nextbutton[e]("click", b.onclicknext), b.params.a11y && b.a11y && b.nextbutton[e]("keydown", b.a11y.onenterkey)),
b.params.prevbutton && b.prevbutton && b.prevbutton.length > 0 && (b.prevbutton[e]("click", b.onclickprev), b.params.a11y && b.a11y && b.prevbutton[e]("keydown", b.a11y.onenterkey)),
b.params.pagination && b.params.paginationclickable && (b.paginationcontainer[e]("click", "." + b.params.bulletclass, b.onclickindex), b.params.a11y && b.a11y && b.paginationcontainer[e]("keydown", "." + b.params.bulletclass, b.a11y.onenterkey)),
(b.params.preventclicks || b.params.preventclickspropagation) && r[i]("click", b.preventclicks, !0)
},
b.attachevents = function() {
b.initevents()
},
b.detachevents = function() {
b.initevents(!0)
},
b.allowclick = !0,
b.preventclicks = function(t) {
b.allowclick || (b.params.preventclicks && t.preventdefault(), b.params.preventclickspropagation && b.animating && (t.stoppropagation(), t.stopimmediatepropagation()))
},
b.onclicknext = function(t) {
t.preventdefault(),
(!b.isend || b.params.loop) && b.slidenext()
},
b.onclickprev = function(t) {
t.preventdefault(),
(!b.isbeginning || b.params.loop) && b.slideprev()
},
b.onclickindex = function(e) {
e.preventdefault();
var i = t(this).index() * b.params.slidespergroup;
b.params.loop && (i += b.loopedslides),
b.slideto(i)
},
b.updateclickedslide = function(e) {
var i = o(e, "." + b.params.slideclass),
n = !1;
if (i) for (var r = 0; r < b.slides.length; r++) b.slides[r] === i && (n = !0);
if (!i || !n) return b.clickedslide = void 0,
void(b.clickedindex = void 0);
if (b.clickedslide = i, b.clickedindex = t(i).index(), b.params.slidetoclickedslide && void 0 !== b.clickedindex && b.clickedindex !== b.activeindex) {
var s, a = b.clickedindex;
if (b.params.loop) {
if (b.animating) return;
s = t(b.clickedslide).attr("data-swiper-slide-index"),
b.params.centeredslides ? a < b.loopedslides - b.params.slidesperview / 2 || a > b.slides.length - b.loopedslides + b.params.slidesperview / 2 ? (b.fixloop(), a = b.wrapper.children("." + b.params.slideclass + '[data-swiper-slide-index="' + s + '"]:not(.swiper-slide-duplicate)').eq(0).index(), settimeout(function() {
b.slideto(a)
},
0)) : b.slideto(a) : a > b.slides.length - b.params.slidesperview ? (b.fixloop(), a = b.wrapper.children("." + b.params.slideclass + '[data-swiper-slide-index="' + s + '"]:not(.swiper-slide-duplicate)').eq(0).index(), settimeout(function() {
b.slideto(a)
},
0)) : b.slideto(a)
} else b.slideto(a)
}
};
var _, c, s, x, k, e, p, m, i, a, j = "input, select, textarea, button",
d = date.now(),
o = [];
b.animating = !1,
b.touches = {
startx: 0,
starty: 0,
currentx: 0,
currenty: 0,
diff: 0
};
var z, n;
if (b.ontouchstart = function(e) {
if (e.originalevent && (e = e.originalevent), (z = "touchstart" === e.type) || !("which" in e) || 3 !== e.which) {
if (b.params.noswiping && o(e, "." + b.params.noswipingclass)) return void(b.allowclick = !0);
if (!b.params.swipehandler || o(e, b.params.swipehandler)) {
var i = b.touches.currentx = "touchstart" === e.type ? e.targettouches[0].pagex: e.pagex,
n = b.touches.currenty = "touchstart" === e.type ? e.targettouches[0].pagey: e.pagey;
if (! (b.device.ios && b.params.iosedgeswipedetection && i <= b.params.iosedgeswipethreshold)) {
if (_ = !0, c = !1, s = !0, k = void 0, n = void 0, b.touches.startx = i, b.touches.starty = n, x = date.now(), b.allowclick = !0, b.updatecontainersize(), b.swipedirection = void 0, b.params.threshold > 0 && (m = !1), "touchstart" !== e.type) {
var r = !0;
t(e.target).is(j) && (r = !1),
document.activeelement && t(document.activeelement).is(j) && document.activeelement.blur(),
r && e.preventdefault()
}
b.emit("ontouchstart", b, e)
}
}
}
},
b.ontouchmove = function(e) {
if (e.originalevent && (e = e.originalevent), !z || "mousemove" !== e.type) {
if (e.preventedbynestedswiper) return b.touches.startx = "touchmove" === e.type ? e.targettouches[0].pagex: e.pagex,
void(b.touches.starty = "touchmove" === e.type ? e.targettouches[0].pagey: e.pagey);
if (b.params.onlyexternal) return b.allowclick = !1,
void(_ && (b.touches.startx = b.touches.currentx = "touchmove" === e.type ? e.targettouches[0].pagex: e.pagex, b.touches.starty = b.touches.currenty = "touchmove" === e.type ? e.targettouches[0].pagey: e.pagey, x = date.now()));
if (z && document.activeelement && e.target === document.activeelement && t(e.target).is(j)) return c = !0,
void(b.allowclick = !1);
if (s && b.emit("ontouchmove", b, e), !(e.targettouches && e.targettouches.length > 1)) {
if (b.touches.currentx = "touchmove" === e.type ? e.targettouches[0].pagex: e.pagex, b.touches.currenty = "touchmove" === e.type ? e.targettouches[0].pagey: e.pagey, void 0 === k) {
var i = 180 * math.atan2(math.abs(b.touches.currenty - b.touches.starty), math.abs(b.touches.currentx - b.touches.startx)) / math.pi;
k = b.ishorizontal() ? i > b.params.touchangle: 90 - i > b.params.touchangle
}
if (k && b.emit("ontouchmoveopposite", b, e), void 0 === n && b.browser.ietouch && (b.touches.currentx !== b.touches.startx || b.touches.currenty !== b.touches.starty) && (n = !0), _) {
if (k) return void(_ = !1);
if (n || !b.browser.ietouch) {
b.allowclick = !1,
b.emit("onslidermove", b, e),
e.preventdefault(),
b.params.touchmovestoppropagation && !b.params.nested && e.stoppropagation(),
c || (n.loop && b.fixloop(), p = b.getwrappertranslate(), b.setwrappertransition(0), b.animating && b.wrapper.trigger("webkittransitionend transitionend otransitionend mstransitionend mstransitionend"), b.params.autoplay && b.autoplaying && (b.params.autoplaydisableoninteraction ? b.stopautoplay() : b.pauseautoplay()), a = !1, b.params.grabcursor && (b.container[0].style.cursor = "move", b.container[0].style.cursor = "-webkit-grabbing", b.container[0].style.cursor = "-moz-grabbin", b.container[0].style.cursor = "grabbing")),
c = !0;
var r = b.touches.diff = b.ishorizontal() ? b.touches.currentx - b.touches.startx: b.touches.currenty - b.touches.starty;
r *= b.params.touchratio,
b.rtl && (r = -r),
b.swipedirection = r > 0 ? "prev": "next",
e = r + p;
var s = !0;
if (r > 0 && e > b.mintranslate() ? (s = !1, b.params.resistance && (e = b.mintranslate() - 1 + math.pow( - b.mintranslate() + p + r, b.params.resistanceratio))) : 0 > r && e < b.maxtranslate() && (s = !1, b.params.resistance && (e = b.maxtranslate() + 1 - math.pow(b.maxtranslate() - p - r, b.params.resistanceratio))), s && (e.preventedbynestedswiper = !0), !b.params.allowswipetonext && "next" === b.swipedirection && p > e && (e = p), !b.params.allowswipetoprev && "prev" === b.swipedirection && e > p && (e = p), b.params.followfinger) {
if (b.params.threshold > 0) {
if (! (math.abs(r) > b.params.threshold || m)) return void(e = p);
if (!m) return m = !0,
b.touches.startx = b.touches.currentx,
b.touches.starty = b.touches.currenty,
e = p,
void(b.touches.diff = b.ishorizontal() ? b.touches.currentx - b.touches.startx: b.touches.currenty - b.touches.starty)
} (b.params.freemode || b.params.watchslidesprogress) && b.updateactiveindex(),
b.params.freemode && (0 === o.length && o.push({
position: b.touches[b.ishorizontal() ? "startx": "starty"],
time: x
}), o.push({
position: b.touches[b.ishorizontal() ? "currentx": "currenty"],
time: (new window.date).gettime()
})),
b.updateprogress(e),
b.setwrappertranslate(e)
}
}
}
}
}
},
b.ontouchend = function(e) {
if (e.originalevent && (e = e.originalevent), s && b.emit("ontouchend", b, e), s = !1, _) {
b.params.grabcursor && c && _ && (b.container[0].style.cursor = "move", b.container[0].style.cursor = "-webkit-grab", b.container[0].style.cursor = "-moz-grab", b.container[0].style.cursor = "grab");
var i = date.now(),
n = i - x;
if (b.allowclick && (b.updateclickedslide(e), b.emit("ontap", b, e), 300 > n && i - d > 300 && (i && cleartimeout(i), i = settimeout(function() {
b && (b.params.paginationhide && b.paginationcontainer.length > 0 && !t(e.target).hasclass(b.params.bulletclass) && b.paginationcontainer.toggleclass(b.params.paginationhiddenclass), b.emit("onclick", b, e))
},
300)), 300 > n && 300 > i - d && (i && cleartimeout(i), b.emit("ondoubletap", b, e))), d = date.now(), settimeout(function() {
b && (b.allowclick = !0)
},
0), !_ || !c || !b.swipedirection || 0 === b.touches.diff || e === p) return void(_ = c = !1);
_ = c = !1;
var r;
if (r = b.params.followfinger ? b.rtl ? b.translate: -b.translate: -e, b.params.freemode) {
if (r < -b.mintranslate()) return void b.slideto(b.activeindex);
if (r > -b.maxtranslate()) return void(b.slides.length < b.snapgrid.length ? b.slideto(b.snapgrid.length - 1) : b.slideto(b.slides.length - 1));
if (b.params.freemodemomentum) {
if (o.length > 1) {
var s = o.pop(),
o = o.pop(),
a = s.position - o.position,
l = s.time - o.time;
b.velocity = a / l,
b.velocity = b.velocity / 2,
math.abs(b.velocity) < b.params.freemodeminimumvelocity && (b.velocity = 0),
(l > 150 || (new window.date).gettime() - s.time > 300) && (b.velocity = 0)
} else b.velocity = 0;
o.length = 0;
var c = 1e3 * b.params.freemodemomentumratio,
h = b.velocity * c,
p = b.translate + h;
b.rtl && (p = -p);
var u, d = !1,
f = 20 * math.abs(b.velocity) * b.params.freemodemomentumbounceratio;
if (p < b.maxtranslate()) b.params.freemodemomentumbounce ? (p + b.maxtranslate() < -f && (p = b.maxtranslate() - f), u = b.maxtranslate(), d = !0, a = !0) : p = b.maxtranslate();
else if (p > b.mintranslate()) b.params.freemodemomentumbounce ? (p - b.mintranslate() > f && (p = b.mintranslate() + f), u = b.mintranslate(), d = !0, a = !0) : p = b.mintranslate();
else if (b.params.freemodesticky) {
var m, v = 0;
for (v = 0; v < b.snapgrid.length; v += 1) if (b.snapgrid[v] > -p) {
m = v;
break
}
p = math.abs(b.snapgrid[m] - p) < math.abs(b.snapgrid[m - 1] - p) || "next" === b.swipedirection ? b.snapgrid[m] : b.snapgrid[m - 1],
b.rtl || (p = -p)
}
if (0 !== b.velocity) c = b.rtl ? math.abs(( - p - b.translate) / b.velocity) : math.abs((p - b.translate) / b.velocity);
else if (b.params.freemodesticky) return void b.slidereset();
b.params.freemodemomentumbounce && d ? (b.updateprogress(u), b.setwrappertransition(c), b.setwrappertranslate(p), b.ontransitionstart(), b.animating = !0, b.wrapper.transitionend(function() {
b && a && (b.emit("onmomentumbounce", b), b.setwrappertransition(b.params.speed), b.setwrappertranslate(u), b.wrapper.transitionend(function() {
b && b.ontransitionend()
}))
})) : b.velocity ? (b.updateprogress(p), b.setwrappertransition(c), b.setwrappertranslate(p), b.ontransitionstart(), b.animating || (b.animating = !0, b.wrapper.transitionend(function() {
b && b.ontransitionend()
}))) : b.updateprogress(p),
b.updateactiveindex()
}
return void((!b.params.freemodemomentum || n >= b.params.longswipesms) && (b.updateprogress(), b.updateactiveindex()))
}
var g, y = 0,
t = b.slidessizesgrid[0];
for (g = 0; g < b.slidesgrid.length; g += b.params.slidespergroup) void 0 !== b.slidesgrid[g + b.params.slidespergroup] ? r >= b.slidesgrid[g] && r < b.slidesgrid[g + b.params.slidespergroup] && (y = g, t = b.slidesgrid[g + b.params.slidespergroup] - b.slidesgrid[g]) : r >= b.slidesgrid[g] && (y = g, t = b.slidesgrid[b.slidesgrid.length - 1] - b.slidesgrid[b.slidesgrid.length - 2]);
var w = (r - b.slidesgrid[y]) / t;
if (n > b.params.longswipesms) {
if (!b.params.longswipes) return void b.slideto(b.activeindex);
"next" === b.swipedirection && (w >= b.params.longswipesratio ? b.slideto(y + b.params.slidespergroup) : b.slideto(y)),
"prev" === b.swipedirection && (w > 1 - b.params.longswipesratio ? b.slideto(y + b.params.slidespergroup) : b.slideto(y))
} else {
if (!b.params.shortswipes) return void b.slideto(b.activeindex);
"next" === b.swipedirection && b.slideto(y + b.params.slidespergroup),
"prev" === b.swipedirection && b.slideto(y)
}
}
},
b._slideto = function(t, e) {
return b.slideto(t, e, !0, !0)
},
b.slideto = function(t, e, i, n) {
void 0 === i && (i = !0),
void 0 === t && (t = 0),
0 > t && (t = 0),
b.snapindex = math.floor(t / b.params.slidespergroup),
b.snapindex >= b.snapgrid.length && (b.snapindex = b.snapgrid.length - 1);
var r = -b.snapgrid[b.snapindex];
b.params.autoplay && b.autoplaying && (n || !b.params.autoplaydisableoninteraction ? b.pauseautoplay(e) : b.stopautoplay()),
b.updateprogress(r);
for (var s = 0; s < b.slidesgrid.length; s++) - math.floor(100 * r) >= math.floor(100 * b.slidesgrid[s]) && (t = s);
return ! (!b.params.allowswipetonext && r < b.translate && r < b.mintranslate()) && (!(!b.params.allowswipetoprev && r > b.translate && r > b.maxtranslate() && (b.activeindex || 0) !== t) && (void 0 === e && (e = b.params.speed), b.previousindex = b.activeindex || 0, b.activeindex = t, b.rtl && -r === b.translate || !b.rtl && r === b.translate ? (b.params.autoheight && b.updateautoheight(), b.updateclasses(), "slide" !== b.params.effect && b.setwrappertranslate(r), !1) : (b.updateclasses(), b.ontransitionstart(i), 0 === e ? (b.setwrappertranslate(r), b.setwrappertransition(0), b.ontransitionend(i)) : (b.setwrappertranslate(r), b.setwrappertransition(e), b.animating || (b.animating = !0, b.wrapper.transitionend(function() {
b && b.ontransitionend(i)
}))), !0)))
},
b.ontransitionstart = function(t) {
void 0 === t && (t = !0),
b.params.autoheight && b.updateautoheight(),
b.lazy && b.lazy.ontransitionstart(),
t && (b.emit("ontransitionstart", b), b.activeindex !== b.previousindex && (b.emit("onslidechangestart", b), b.activeindex > b.previousindex ? b.emit("onslidenextstart", b) : b.emit("onslideprevstart", b)))
},
b.ontransitionend = function(t) {
b.animating = !1,
b.setwrappertransition(0),
void 0 === t && (t = !0),
b.lazy && b.lazy.ontransitionend(),
t && (b.emit("ontransitionend", b), b.activeindex !== b.previousindex && (b.emit("onslidechangeend", b), b.activeindex > b.previousindex ? b.emit("onslidenextend", b) : b.emit("onslideprevend", b))),
b.params.hashnav && b.hashnav && b.hashnav.sethash()
},
b.slidenext = function(t, e, i) {
return b.params.loop ? !b.animating && (b.fixloop(), b.container[0].clientleft, b.slideto(b.activeindex + b.params.slidespergroup, e, t, i)) : b.slideto(b.activeindex + b.params.slidespergroup, e, t, i)
},
b._slidenext = function(t) {
return b.slidenext(!0, t, !0)
},
b.slideprev = function(t, e, i) {
return b.params.loop ? !b.animating && (b.fixloop(), b.container[0].clientleft, b.slideto(b.activeindex - 1, e, t, i)) : b.slideto(b.activeindex - 1, e, t, i)
},
b._slideprev = function(t) {
return b.slideprev(!0, t, !0)
},
b.slidereset = function(t, e, i) {
return b.slideto(b.activeindex, e, t)
},
b.setwrappertransition = function(t, e) {
b.wrapper.transition(t),
"slide" !== b.params.effect && b.effects[b.params.effect] && b.effects[b.params.effect].settransition(t),
b.params.parallax && b.parallax && b.parallax.settransition(t),
b.params.scrollbar && b.scrollbar && b.scrollbar.settransition(t),
b.params.control && b.controller && b.controller.settransition(t, e),
b.emit("onsettransition", b, t)
},
b.setwrappertranslate = function(t, e, i) {
var n = 0,
s = 0;
b.ishorizontal() ? n = b.rtl ? -t: t: s = t,
b.params.roundlengths && (n = r(n), s = r(s)),
b.params.virtualtranslate || (b.support.transforms3d ? b.wrapper.transform("translate3d(" + n + "px, " + s + "px, 0px)") : b.wrapper.transform("translate(" + n + "px, " + s + "px)")),
b.translate = b.ishorizontal() ? n: s;
var o, a = b.maxtranslate() - b.mintranslate();
o = 0 === a ? 0 : (t - b.mintranslate()) / a,
o !== b.progress && b.updateprogress(t),
e && b.updateactiveindex(),
"slide" !== b.params.effect && b.effects[b.params.effect] && b.effects[b.params.effect].settranslate(b.translate),
b.params.parallax && b.parallax && b.parallax.settranslate(b.translate),
b.params.scrollbar && b.scrollbar && b.scrollbar.settranslate(b.translate),
b.params.control && b.controller && b.controller.settranslate(b.translate, i),
b.emit("onsettranslate", b, b.translate)
},
b.gettranslate = function(t, e) {
var i, n, r, s;
return void 0 === e && (e = "x"),
b.params.virtualtranslate ? b.rtl ? -b.translate: b.translate: (r = window.getcomputedstyle(t, null), window.webkitcssmatrix ? (n = r.transform || r.webkittransform, n.split(",").length > 6 && (n = n.split(", ").map(function(t) {
return t.replace(",", ".")
}).join(", ")), s = new window.webkitcssmatrix("none" === n ? "": n)) : (s = r.moztransform || r.otransform || r.mstransform || r.mstransform || r.transform || r.getpropertyvalue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), i = s.tostring().split(",")), "x" === e && (n = window.webkitcssmatrix ? s.m41: 16 === i.length ? parsefloat(i[12]) : parsefloat(i[4])), "y" === e && (n = window.webkitcssmatrix ? s.m42: 16 === i.length ? parsefloat(i[13]) : parsefloat(i[5])), b.rtl && n && (n = -n), n || 0)
},
b.getwrappertranslate = function(t) {
return void 0 === t && (t = b.ishorizontal() ? "x": "y"),
b.gettranslate(b.wrapper[0], t)
},
b.observers = [], b.initobservers = function() {
if (b.params.observeparents) for (var t = b.container.parents(), e = 0; e < t.length; e++) a(t[e]);
a(b.container[0], {
childlist: !1
}),
a(b.wrapper[0], {
attributes: !1
})
},
b.disconnectobservers = function() {
for (var t = 0; t < b.observers.length; t++) b.observers[t].disconnect();
b.observers = []
},
b.createloop = function() {
b.wrapper.children("." + b.params.slideclass + "." + b.params.slideduplicateclass).remove();
var e = b.wrapper.children("." + b.params.slideclass);
"auto" !== b.params.slidesperview || b.params.loopedslides || (b.params.loopedslides = e.length),
b.loopedslides = parseint(b.params.loopedslides || b.params.slidesperview, 10),
b.loopedslides = b.loopedslides + b.params.loopadditionalslides,
b.loopedslides > e.length && (b.loopedslides = e.length);
var i, n = [],
r = [];
for (e.each(function(i, s) {
var o = t(this);
i < b.loopedslides && r.push(s),
i < e.length && i >= e.length - b.loopedslides && n.push(s),
o.attr("data-swiper-slide-index", i)
}), i = 0; i < r.length; i++) b.wrapper.append(t(r[i].clonenode(!0)).addclass(b.params.slideduplicateclass));
for (i = n.length - 1; i >= 0; i--) b.wrapper.prepend(t(n[i].clonenode(!0)).addclass(b.params.slideduplicateclass))
},
b.destroyloop = function() {
b.wrapper.children("." + b.params.slideclass + "." + b.params.slideduplicateclass).remove(),
b.slides.removeattr("data-swiper-slide-index")
},
b.reloop = function(t) {
var e = b.activeindex - b.loopedslides;
b.destroyloop(),
b.createloop(),
b.updateslidessize(),
t && b.slideto(e + b.loopedslides, 0, !1)
},
b.fixloop = function() {
var t;
b.activeindex < b.loopedslides ? (t = b.slides.length - 3 * b.loopedslides + b.activeindex, t += b.loopedslides, b.slideto(t, 0, !1, !0)) : ("auto" === b.params.slidesperview && b.activeindex >= 2 * b.loopedslides || b.activeindex > b.slides.length - 2 * b.params.slidesperview) && (t = -b.slides.length + b.activeindex + b.loopedslides, t += b.loopedslides, b.slideto(t, 0, !1, !0))
},
b.appendslide = function(t) {
if (b.params.loop && b.destroyloop(), "object" == typeof t && t.length) for (var e = 0; e < t.length; e++) t[e] && b.wrapper.append(t[e]);
else b.wrapper.append(t);
b.params.loop && b.createloop(),
b.params.observer && b.support.observer || b.update(!0)
},
b.prependslide = function(t) {
b.params.loop && b.destroyloop();
var e = b.activeindex + 1;
if ("object" == typeof t && t.length) {
for (var i = 0; i < t.length; i++) t[i] && b.wrapper.prepend(t[i]);
e = b.activeindex + t.length
} else b.wrapper.prepend(t);
b.params.loop && b.createloop(),
b.params.observer && b.support.observer || b.update(!0),
b.slideto(e, 0, !1)
},
b.removeslide = function(t) {
b.params.loop && (b.destroyloop(), b.slides = b.wrapper.children("." + b.params.slideclass));
var e, i = b.activeindex;
if ("object" == typeof t && t.length) {
for (var n = 0; n < t.length; n++) e = t[n],
b.slides[e] && b.slides.eq(e).remove(),
i > e && i--;
i = math.max(i, 0)
} else e = t,
b.slides[e] && b.slides.eq(e).remove(),
i > e && i--,
i = math.max(i, 0);
b.params.loop && b.createloop(),
b.params.observer && b.support.observer || b.update(!0),
b.params.loop ? b.slideto(i + b.loopedslides, 0, !1) : b.slideto(i, 0, !1)
},
b.removeallslides = function() {
for (var t = [], e = 0; e < b.slides.length; e++) t.push(e);
b.removeslide(t)
},
b.effects = {
fade: {
settranslate: function() {
for (var t = 0; t < b.slides.length; t++) {
var e = b.slides.eq(t),
i = e[0].swiperslideoffset,
n = -i;
b.params.virtualtranslate || (n -= b.translate);
var r = 0;
b.ishorizontal() || (r = n, n = 0);
var s = b.params.fade.crossfade ? math.max(1 - math.abs(e[0].progress), 0) : 1 + math.min(math.max(e[0].progress, -1), 0);
e.css({
opacity: s
}).transform("translate3d(" + n + "px, " + r + "px, 0px)")
}
},
settransition: function(t) {
if (b.slides.transition(t), b.params.virtualtranslate && 0 !== t) {
var e = !1;
b.slides.transitionend(function() {
if (!e && b) {
e = !0,
b.animating = !1;
for (var t = ["webkittransitionend", "transitionend", "otransitionend", "mstransitionend", "mstransitionend"], i = 0; i < t.length; i++) b.wrapper.trigger(t[i])
}
})
}
}
},
flip: {
settranslate: function() {
for (var e = 0; e < b.slides.length; e++) {
var i = b.slides.eq(e),
n = i[0].progress;
b.params.flip.limitrotation && (n = math.max(math.min(i[0].progress, 1), -1));
var r = i[0].swiperslideoffset,
s = -180 * n,
o = s,
a = 0,
l = -r,
c = 0;
if (b.ishorizontal() ? b.rtl && (o = -o) : (c = l, l = 0, a = -o, o = 0), i[0].style.zindex = -math.abs(math.round(n)) + b.slides.length, b.params.flip.slideshadows) {
var h = b.ishorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top"),
p = b.ishorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom");
0 === h.length && (h = t(''), i.append(h)),
0 === p.length && (p = t(''), i.append(p)),
h.length && (h[0].style.opacity = math.max( - n, 0)),
p.length && (p[0].style.opacity = math.max(n, 0))
}
i.transform("translate3d(" + l + "px, " + c + "px, 0px) rotatex(" + a + "deg) rotatey(" + o + "deg)")
}
},
settransition: function(e) {
if (b.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), b.params.virtualtranslate && 0 !== e) {
var i = !1;
b.slides.eq(b.activeindex).transitionend(function() {
if (!i && b && t(this).hasclass(b.params.slideactiveclass)) {
i = !0,
b.animating = !1;
for (var e = ["webkittransitionend", "transitionend", "otransitionend", "mstransitionend", "mstransitionend"], n = 0; n < e.length; n++) b.wrapper.trigger(e[n])
}
})
}
}
},
cube: {
settranslate: function() {
var e, i = 0;
b.params.cube.shadow && (b.ishorizontal() ? (e = b.wrapper.find(".swiper-cube-shadow"), 0 === e.length && (e = t(''), b.wrapper.append(e)), e.css({
height: b.width + "px"
})) : (e = b.container.find(".swiper-cube-shadow"), 0 === e.length && (e = t(''), b.container.append(e))));
for (var n = 0; n < b.slides.length; n++) {
var r = b.slides.eq(n),
s = 90 * n,
o = math.floor(s / 360);
b.rtl && (s = -s, o = math.floor( - s / 360));
var a = math.max(math.min(r[0].progress, 1), -1),
l = 0,
c = 0,
h = 0;
n % 4 == 0 ? (l = 4 * -o * b.size, h = 0) : (n - 1) % 4 == 0 ? (l = 0, h = 4 * -o * b.size) : (n - 2) % 4 == 0 ? (l = b.size + 4 * o * b.size, h = b.size) : (n - 3) % 4 == 0 && (l = -b.size, h = 3 * b.size + 4 * b.size * o),
b.rtl && (l = -l),
b.ishorizontal() || (c = l, l = 0);
var p = "rotatex(" + (b.ishorizontal() ? 0 : -s) + "deg) rotatey(" + (b.ishorizontal() ? s: 0) + "deg) translate3d(" + l + "px, " + c + "px, " + h + "px)";
if (1 >= a && a > -1 && (i = 90 * n + 90 * a, b.rtl && (i = 90 * -n - 90 * a)), r.transform(p), b.params.cube.slideshadows) {
var u = b.ishorizontal() ? r.find(".swiper-slide-shadow-left") : r.find(".swiper-slide-shadow-top"),
d = b.ishorizontal() ? r.find(".swiper-slide-shadow-right") : r.find(".swiper-slide-shadow-bottom");
0 === u.length && (u = t(''), r.append(u)),
0 === d.length && (d = t(''), r.append(d)),
u.length && (u[0].style.opacity = math.max( - a, 0)),
d.length && (d[0].style.opacity = math.max(a, 0))
}
}
if (b.wrapper.css({
"-webkit-transform-origin": "50% 50% -" + b.size / 2 + "px",
"-moz-transform-origin": "50% 50% -" + b.size / 2 + "px",
"-ms-transform-origin": "50% 50% -" + b.size / 2 + "px",
"transform-origin": "50% 50% -" + b.size / 2 + "px"
}), b.params.cube.shadow) if (b.ishorizontal()) e.transform("translate3d(0px, " + (b.width / 2 + b.params.cube.shadowoffset) + "px, " + -b.width / 2 + "px) rotatex(90deg) rotatez(0deg) scale(" + b.params.cube.shadowscale + ")");
else {
var f = math.abs(i) - 90 * math.floor(math.abs(i) / 90),
m = 1.5 - (math.sin(2 * f * math.pi / 360) / 2 + math.cos(2 * f * math.pi / 360) / 2),
v = b.params.cube.shadowscale,
g = b.params.cube.shadowscale / m,
y = b.params.cube.shadowoffset;
e.transform("scale3d(" + v + ", 1, " + g + ") translate3d(0px, " + (b.height / 2 + y) + "px, " + -b.height / 2 / g + "px) rotatex(-90deg)")
}
var t = b.issafari || b.isuiwebview ? -b.size / 2 : 0;
b.wrapper.transform("translate3d(0px,0," + t + "px) rotatex(" + (b.ishorizontal() ? 0 : i) + "deg) rotatey(" + (b.ishorizontal() ? -i: 0) + "deg)")
},
settransition: function(t) {
b.slides.transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t),
b.params.cube.shadow && !b.ishorizontal() && b.container.find(".swiper-cube-shadow").transition(t)
}
},
coverflow: {
settranslate: function() {
for (var e = b.translate,
i = b.ishorizontal() ? -e + b.width / 2 : -e + b.height / 2, n = b.ishorizontal() ? b.params.coverflow.rotate: -b.params.coverflow.rotate, r = b.params.coverflow.depth, s = 0, o = b.slides.length; o > s; s++) {
var a = b.slides.eq(s),
l = b.slidessizesgrid[s],
c = a[0].swiperslideoffset,
h = (i - c - l / 2) / l * b.params.coverflow.modifier,
p = b.ishorizontal() ? n * h: 0,
u = b.ishorizontal() ? 0 : n * h,
d = -r * math.abs(h),
f = b.ishorizontal() ? 0 : b.params.coverflow.stretch * h,
m = b.ishorizontal() ? b.params.coverflow.stretch * h: 0;
math.abs(m) < .001 && (m = 0),
math.abs(f) < .001 && (f = 0),
math.abs(d) < .001 && (d = 0),
math.abs(p) < .001 && (p = 0),
math.abs(u) < .001 && (u = 0);
var v = "translate3d(" + m + "px," + f + "px," + d + "px) rotatex(" + u + "deg) rotatey(" + p + "deg)";
if (a.transform(v), a[0].style.zindex = 1 - math.abs(math.round(h)), b.params.coverflow.slideshadows) {
var g = b.ishorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top"),
y = b.ishorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom");
0 === g.length && (g = t(''), a.append(g)),
0 === y.length && (y = t(''), a.append(y)),
g.length && (g[0].style.opacity = h > 0 ? h: 0),
y.length && (y[0].style.opacity = -h > 0 ? -h: 0)
}
}
if (b.browser.ie) {
b.wrapper[0].style.perspectiveorigin = i + "px 50%"
}
},
settransition: function(t) {
b.slides.transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t)
}
}
},
b.lazy = {
initialimageloaded: !1,
loadimageinslide: function(e, i) {
if (void 0 !== e && (void 0 === i && (i = !0), 0 !== b.slides.length)) {
var n = b.slides.eq(e),
r = n.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)"); ! n.hasclass("swiper-lazy") || n.hasclass("swiper-lazy-loaded") || n.hasclass("swiper-lazy-loading") || (r = r.add(n[0])),
0 !== r.length && r.each(function() {
var e = t(this);
e.addclass("swiper-lazy-loading");
var r = e.attr("data-background"),
s = e.attr("data-src"),
o = e.attr("data-srcset");
b.loadimage(e[0], s || r, o, !1,
function() {
if (r ? (e.css("background-image", 'url("' + r + '")'), e.removeattr("data-background")) : (o && (e.attr("srcset", o), e.removeattr("data-srcset")), s && (e.attr("src", s), e.removeattr("data-src"))), e.addclass("swiper-lazy-loaded").removeclass("swiper-lazy-loading"), n.find(".swiper-lazy-preloader, .preloader").remove(), b.params.loop && i) {
var t = n.attr("data-swiper-slide-index");
if (n.hasclass(b.params.slideduplicateclass)) {
var a = b.wrapper.children('[data-swiper-slide-index="' + t + '"]:not(.' + b.params.slideduplicateclass + ")");
b.lazy.loadimageinslide(a.index(), !1)
} else {
var l = b.wrapper.children("." + b.params.slideduplicateclass + '[data-swiper-slide-index="' + t + '"]');
b.lazy.loadimageinslide(l.index(), !1)
}
}
b.emit("onlazyimageready", b, n[0], e[0])
}),
b.emit("onlazyimageload", b, n[0], e[0])
})
}
},
load: function() {
var e;
if (b.params.watchslidesvisibility) b.wrapper.children("." + b.params.slidevisibleclass).each(function() {
b.lazy.loadimageinslide(t(this).index())
});
else if (b.params.slidesperview > 1) for (e = b.activeindex; e < b.activeindex + b.params.slidesperview; e++) b.slides[e] && b.lazy.loadimageinslide(e);
else b.lazy.loadimageinslide(b.activeindex);
if (b.params.lazyloadinginprevnext) if (b.params.slidesperview > 1 || b.params.lazyloadinginprevnextamount && b.params.lazyloadinginprevnextamount > 1) {
var i = b.params.lazyloadinginprevnextamount,
n = b.params.slidesperview,
r = math.min(b.activeindex + n + math.max(i, n), b.slides.length),
s = math.max(b.activeindex - math.max(n, i), 0);
for (e = b.activeindex + b.params.slidesperview; r > e; e++) b.slides[e] && b.lazy.loadimageinslide(e);
for (e = s; e < b.activeindex; e++) b.slides[e] && b.lazy.loadimageinslide(e)
} else {
var o = b.wrapper.children("." + b.params.slidenextclass);
o.length > 0 && b.lazy.loadimageinslide(o.index());
var a = b.wrapper.children("." + b.params.slideprevclass);
a.length > 0 && b.lazy.loadimageinslide(a.index())
}
},
ontransitionstart: function() {
b.params.lazyloading && (b.params.lazyloadingontransitionstart || !b.params.lazyloadingontransitionstart && !b.lazy.initialimageloaded) && b.lazy.load()
},
ontransitionend: function() {
b.params.lazyloading && !b.params.lazyloadingontransitionstart && b.lazy.load()
}
},
b.scrollbar = {
istouched: !1,
setdragposition: function(t) {
var e = b.scrollbar,
i = b.ishorizontal() ? "touchstart" === t.type || "touchmove" === t.type ? t.targettouches[0].pagex: t.pagex || t.clientx: "touchstart" === t.type || "touchmove" === t.type ? t.targettouches[0].pagey: t.pagey || t.clienty,
n = i - e.track.offset()[b.ishorizontal() ? "left": "top"] - e.dragsize / 2,
r = -b.mintranslate() * e.movedivider,
s = -b.maxtranslate() * e.movedivider;
r > n ? n = r: n > s && (n = s),
n = -n / e.movedivider,
b.updateprogress(n),
b.setwrappertranslate(n, !0)
},
dragstart: function(t) {
var e = b.scrollbar;
e.istouched = !0,
t.preventdefault(),
t.stoppropagation(),
e.setdragposition(t),
cleartimeout(e.dragtimeout),
e.track.transition(0),
b.params.scrollbarhide && e.track.css("opacity", 1),
b.wrapper.transition(100),
e.drag.transition(100),
b.emit("onscrollbardragstart", b)
},
dragmove: function(t) {
var e = b.scrollbar;
e.istouched && (t.preventdefault ? t.preventdefault() : t.returnvalue = !1, e.setdragposition(t), b.wrapper.transition(0), e.track.transition(0), e.drag.transition(0), b.emit("onscrollbardragmove", b))
},
dragend: function(t) {
var e = b.scrollbar;
e.istouched && (e.istouched = !1, b.params.scrollbarhide && (cleartimeout(e.dragtimeout), e.dragtimeout = settimeout(function() {
e.track.css("opacity", 0),
e.track.transition(400)
},
1e3)), b.emit("onscrollbardragend", b), b.params.scrollbarsnaponrelease && b.slidereset())
},
enabledraggable: function() {
var e = b.scrollbar,
i = b.support.touch ? e.track: document;
t(e.track).on(b.touchevents.start, e.dragstart),
t(i).on(b.touchevents.move, e.dragmove),
t(i).on(b.touchevents.end, e.dragend)
},
disabledraggable: function() {
var e = b.scrollbar,
i = b.support.touch ? e.track: document;
t(e.track).off(b.touchevents.start, e.dragstart),
t(i).off(b.touchevents.move, e.dragmove),
t(i).off(b.touchevents.end, e.dragend)
},
set: function() {
if (b.params.scrollbar) {
var e = b.scrollbar;
e.track = t(b.params.scrollbar),
b.params.uniquenavelements && "string" == typeof b.params.scrollbar && e.track.length > 1 && 1 === b.container.find(b.params.scrollbar).length && (e.track = b.container.find(b.params.scrollbar)),
e.drag = e.track.find(".swiper-scrollbar-drag"),
0 === e.drag.length && (e.drag = t(''), e.track.append(e.drag)),
e.drag[0].style.width = "",
e.drag[0].style.height = "",
e.tracksize = b.ishorizontal() ? e.track[0].offsetwidth: e.track[0].offsetheight,
e.divider = b.size / b.virtualsize,
e.movedivider = e.divider * (e.tracksize / b.size),
e.dragsize = e.tracksize * e.divider,
b.ishorizontal() ? e.drag[0].style.width = e.dragsize + "px": e.drag[0].style.height = e.dragsize + "px",
e.divider >= 1 ? e.track[0].style.display = "none": e.track[0].style.display = "",
b.params.scrollbarhide && (e.track[0].style.opacity = 0)
}
},
settranslate: function() {
if (b.params.scrollbar) {
var t, e = b.scrollbar,
i = (b.translate, e.dragsize);
t = (e.tracksize - e.dragsize) * b.progress,
b.rtl && b.ishorizontal() ? (t = -t, t > 0 ? (i = e.dragsize - t, t = 0) : -t + e.dragsize > e.tracksize && (i = e.tracksize + t)) : 0 > t ? (i = e.dragsize + t, t = 0) : t + e.dragsize > e.tracksize && (i = e.tracksize - t),
b.ishorizontal() ? (b.support.transforms3d ? e.drag.transform("translate3d(" + t + "px, 0, 0)") : e.drag.transform("translatex(" + t + "px)"), e.drag[0].style.width = i + "px") : (b.support.transforms3d ? e.drag.transform("translate3d(0px, " + t + "px, 0)") : e.drag.transform("translatey(" + t + "px)"), e.drag[0].style.height = i + "px"),
b.params.scrollbarhide && (cleartimeout(e.timeout), e.track[0].style.opacity = 1, e.timeout = settimeout(function() {
e.track[0].style.opacity = 0,
e.track.transition(400)
},
1e3))
}
},
settransition: function(t) {
b.params.scrollbar && b.scrollbar.drag.transition(t)
}
},
b.controller = {
linearspline: function(t, e) {
this.x = t,
this.y = e,
this.lastindex = t.length - 1;
var i, n;
this.x.length,
this.interpolate = function(t) {
return t ? (n = r(this.x, t), i = n - 1, (t - this.x[i]) * (this.y[n] - this.y[i]) / (this.x[n] - this.x[i]) + this.y[i]) : 0
};
var r = function() {
var t, e, i;
return function(n, r) {
for (e = -1, t = n.length; t - e > 1;) n[i = t + e >> 1] <= r ? e = i: t = i;
return t
}
} ()
},
getinterpolatefunction: function(t) {
b.controller.spline || (b.controller.spline = b.params.loop ? new b.controller.linearspline(b.slidesgrid, t.slidesgrid) : new b.controller.linearspline(b.snapgrid, t.snapgrid))
},
settranslate: function(t, i) {
function n(e) {
t = e.rtl && "horizontal" === e.params.direction ? -b.translate: b.translate,
"slide" === b.params.controlby && (b.controller.getinterpolatefunction(e), s = -b.controller.spline.interpolate( - t)),
s && "container" !== b.params.controlby || (r = (e.maxtranslate() - e.mintranslate()) / (b.maxtranslate() - b.mintranslate()), s = (t - b.mintranslate()) * r + e.mintranslate()),
b.params.controlinverse && (s = e.maxtranslate() - s),
e.updateprogress(s),
e.setwrappertranslate(s, !1, b),
e.updateactiveindex()
}
var r, s, o = b.params.control;
if (b.isarray(o)) for (var a = 0; a < o.length; a++) o[a] !== i && o[a] instanceof e && n(o[a]);
else o instanceof e && i !== o && n(o)
},
settransition: function(t, i) {
function n(e) {
e.setwrappertransition(t, b),
0 !== t && (e.ontransitionstart(), e.wrapper.transitionend(function() {
s && (e.params.loop && "slide" === b.params.controlby && e.fixloop(), e.ontransitionend())
}))
}
var r, s = b.params.control;
if (b.isarray(s)) for (r = 0; r < s.length; r++) s[r] !== i && s[r] instanceof e && n(s[r]);
else s instanceof e && i !== s && n(s)
}
},
b.hashnav = {
init: function() {
if (b.params.hashnav) {
b.hashnav.initialized = !0;
var t = document.location.hash.replace("#", "");
if (t) for (var e = 0,
i = b.slides.length; i > e; e++) {
var n = b.slides.eq(e),
r = n.attr("data-hash");
if (r === t && !n.hasclass(b.params.slideduplicateclass)) {
var s = n.index();
b.slideto(s, 0, b.params.runcallbacksoninit, !0)
}
}
}
},
sethash: function() {
b.hashnav.initialized && b.params.hashnav && (document.location.hash = b.slides.eq(b.activeindex).attr("data-hash") || "")
}
},
b.disablekeyboardcontrol = function() {
b.params.keyboardcontrol = !1,
t(document).off("keydown", l)
},
b.enablekeyboardcontrol = function() {
b.params.keyboardcontrol = !0,
t(document).on("keydown", l)
},
b.mousewheel = {
event: !1,
lastscrolltime: (new window.date).gettime()
},
b.params.mousewheelcontrol) {
try {
new window.wheelevent("wheel"),
b.mousewheel.event = "wheel"
} catch(t) { (window.wheelevent || b.container[0] && "wheel" in b.container[0]) && (b.mousewheel.event = "wheel")
} ! b.mousewheel.event && window.wheelevent,
b.mousewheel.event || void 0 === document.onmousewheel || (b.mousewheel.event = "mousewheel"),
b.mousewheel.event || (b.mousewheel.event = "dommousescroll")
}
b.disablemousewheelcontrol = function() {
return !! b.mousewheel.event && (b.container.off(b.mousewheel.event, c), !0)
},
b.enablemousewheelcontrol = function() {
return !! b.mousewheel.event && (b.container.on(b.mousewheel.event, c), !0)
},
b.parallax = {
settranslate: function() {
b.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() {
h(this, b.progress)
}),
b.slides.each(function() {
var e = t(this);
e.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() {
h(this, math.min(math.max(e[0].progress, -1), 1))
})
})
},
settransition: function(e) {
void 0 === e && (e = b.params.speed),
b.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() {
var i = t(this),
n = parseint(i.attr("data-swiper-parallax-duration"), 10) || e;
0 === e && (n = 0),
i.transition(n)
})
}
},
b._plugins = [];
for (var b in b.plugins) {
var l = b.plugins[b](b, b.params[b]);
l && b._plugins.push(l)
}
return b.callplugins = function(t) {
for (var e = 0; e < b._plugins.length; e++) t in b._plugins[e] && b._plugins[e][t](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
},
b.emittereventlisteners = {},
b.emit = function(t) {
b.params[t] && b.params[t](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
var e;
if (b.emittereventlisteners[t]) for (e = 0; e < b.emittereventlisteners[t].length; e++) b.emittereventlisteners[t][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
b.callplugins && b.callplugins(t, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
},
b.on = function(t, e) {
return t = p(t),
b.emittereventlisteners[t] || (b.emittereventlisteners[t] = []),
b.emittereventlisteners[t].push(e),
b
},
b.off = function(t, e) {
var i;
if (t = p(t), void 0 === e) return b.emittereventlisteners[t] = [],
b;
if (b.emittereventlisteners[t] && 0 !== b.emittereventlisteners[t].length) {
for (i = 0; i < b.emittereventlisteners[t].length; i++) b.emittereventlisteners[t][i] === e && b.emittereventlisteners[t].splice(i, 1);
return b
}
},
b.once = function(t, e) {
t = p(t);
var i = function() {
e(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]),
b.off(t, i)
};
return b.on(t, i),
b
},
b.a11y = {
makefocusable: function(t) {
return t.attr("tabindex", "0"),
t
},
addrole: function(t, e) {
return t.attr("role", e),
t
},
addlabel: function(t, e) {
return t.attr("aria-label", e),
t
},
disable: function(t) {
return t.attr("aria-disabled", !0),
t
},
enable: function(t) {
return t.attr("aria-disabled", !1),
t
},
onenterkey: function(e) {
13 === e.keycode && (t(e.target).is(b.params.nextbutton) ? (b.onclicknext(e), b.isend ? b.a11y.notify(b.params.lastslidemessage) : b.a11y.notify(b.params.nextslidemessage)) : t(e.target).is(b.params.prevbutton) && (b.onclickprev(e), b.isbeginning ? b.a11y.notify(b.params.firstslidemessage) : b.a11y.notify(b.params.prevslidemessage)), t(e.target).is("." + b.params.bulletclass) && t(e.target)[0].click())
},
liveregion: t(''),
notify: function(t) {
var e = b.a11y.liveregion;
0 !== e.length && (e.html(""), e.html(t))
},
init: function() {
b.params.nextbutton && b.nextbutton && b.nextbutton.length > 0 && (b.a11y.makefocusable(b.nextbutton), b.a11y.addrole(b.nextbutton, "button"), b.a11y.addlabel(b.nextbutton, b.params.nextslidemessage)),
b.params.prevbutton && b.prevbutton && b.prevbutton.length > 0 && (b.a11y.makefocusable(b.prevbutton), b.a11y.addrole(b.prevbutton, "button"), b.a11y.addlabel(b.prevbutton, b.params.prevslidemessage)),
t(b.container).append(b.a11y.liveregion)
},
initpagination: function() {
b.params.pagination && b.params.paginationclickable && b.bullets && b.bullets.length && b.bullets.each(function() {
var e = t(this);
b.a11y.makefocusable(e),
b.a11y.addrole(e, "button"),
b.a11y.addlabel(e, b.params.paginationbulletmessage.replace(/{{index}}/, e.index() + 1))
})
},
destroy: function() {
b.a11y.liveregion && b.a11y.liveregion.length > 0 && b.a11y.liveregion.remove()
}
},
b.init = function() {
b.params.loop && b.createloop(),
b.updatecontainersize(),
b.updateslidessize(),
b.updatepagination(),
b.params.scrollbar && b.scrollbar && (b.scrollbar.set(), b.params.scrollbardraggable && b.scrollbar.enabledraggable()),
"slide" !== b.params.effect && b.effects[b.params.effect] && (b.params.loop || b.updateprogress(), b.effects[b.params.effect].settranslate()),
b.params.loop ? b.slideto(b.params.initialslide + b.loopedslides, 0, b.params.runcallbacksoninit) : (b.slideto(b.params.initialslide, 0, b.params.runcallbacksoninit), 0 === b.params.initialslide && (b.parallax && b.params.parallax && b.parallax.settranslate(), b.lazy && b.params.lazyloading && (b.lazy.load(), b.lazy.initialimageloaded = !0))),
b.attachevents(),
b.params.observer && b.support.observer && b.initobservers(),
b.params.preloadimages && !b.params.lazyloading && b.preloadimages(),
b.params.autoplay && b.startautoplay(),
b.params.keyboardcontrol && b.enablekeyboardcontrol && b.enablekeyboardcontrol(),
b.params.mousewheelcontrol && b.enablemousewheelcontrol && b.enablemousewheelcontrol(),
b.params.hashnav && b.hashnav && b.hashnav.init(),
b.params.a11y && b.a11y && b.a11y.init(),
b.emit("oninit", b)
},
b.cleanupstyles = function() {
b.container.removeclass(b.classnames.join(" ")).removeattr("style"),
b.wrapper.removeattr("style"),
b.slides && b.slides.length && b.slides.removeclass([b.params.slidevisibleclass, b.params.slideactiveclass, b.params.slidenextclass, b.params.slideprevclass].join(" ")).removeattr("style").removeattr("data-swiper-column").removeattr("data-swiper-row"),
b.paginationcontainer && b.paginationcontainer.length && b.paginationcontainer.removeclass(b.params.paginationhiddenclass),
b.bullets && b.bullets.length && b.bullets.removeclass(b.params.bulletactiveclass),
b.params.prevbutton && t(b.params.prevbutton).removeclass(b.params.buttondisabledclass),
b.params.nextbutton && t(b.params.nextbutton).removeclass(b.params.buttondisabledclass),
b.params.scrollbar && b.scrollbar && (b.scrollbar.track && b.scrollbar.track.length && b.scrollbar.track.removeattr("style"), b.scrollbar.drag && b.scrollbar.drag.length && b.scrollbar.drag.removeattr("style"))
},
b.destroy = function(t, e) {
b.detachevents(),
b.stopautoplay(),
b.params.scrollbar && b.scrollbar && b.params.scrollbardraggable && b.scrollbar.disabledraggable(),
b.params.loop && b.destroyloop(),
e && b.cleanupstyles(),
b.disconnectobservers(),
b.params.keyboardcontrol && b.disablekeyboardcontrol && b.disablekeyboardcontrol(),
b.params.mousewheelcontrol && b.disablemousewheelcontrol && b.disablemousewheelcontrol(),
b.params.a11y && b.a11y && b.a11y.destroy(),
b.emit("ondestroy"),
!1 !== t && (b = null)
},
b.init(),
b
}
};
e.prototype = {
issafari: function() {
var t = navigator.useragent.tolowercase();
return t.indexof("safari") >= 0 && t.indexof("chrome") < 0 && t.indexof("android") < 0
} (),
isuiwebview: /(iphone|ipod|ipad).*applewebkit(?!.*safari)/i.test(navigator.useragent),
isarray: function(t) {
return "[object array]" === object.prototype.tostring.apply(t)
},
browser: {
ie: window.navigator.pointerenabled || window.navigator.mspointerenabled,
ietouch: window.navigator.mspointerenabled && window.navigator.msmaxtouchpoints > 1 || window.navigator.pointerenabled && window.navigator.maxtouchpoints > 1
},
device: function() {
var t = navigator.useragent,
e = t.match(/(android);?[\s\/]+([\d.]+)?/),
i = t.match(/(ipad).*os\s([\d_]+)/),
n = t.match(/(ipod)(.*os\s([\d_]+))?/),
r = !i && t.match(/(iphone\sos)\s([\d_]+)/);
return {
ios: i || r || n,
android: e
}
} (),
support: {
touch: window.modernizr && !0 === modernizr.touch ||
function() {
return !! ("ontouchstart" in window || window.documenttouch && document instanceof documenttouch)
} (),
transforms3d: window.modernizr && !0 === modernizr.csstransforms3d ||
function() {
var t = document.createelement("div").style;
return "webkitperspective" in t || "mozperspective" in t || "operspective" in t || "msperspective" in t || "perspective" in t
} (),
flexbox: function() {
for (var t = document.createelement("div").style, e = "alignitems webkitalignitems webkitboxalign msflexalign mozboxalign webkitflexdirection msflexdirection mozboxdirection mozboxorient webkitboxdirection webkitboxorient".split(" "), i = 0; i < e.length; i++) if (e[i] in t) return ! 0
} (),
observer: function() {
return "mutationobserver" in window || "webkitmutationobserver" in window
} ()
},
plugins: {}
};
for (var i = ["jquery", "zepto", "dom7"], n = 0; n < i.length; n++) window[i[n]] &&
function(t) {
t.fn.swiper = function(i) {
var n;
return t(this).each(function() {
var t = new e(this, i);
n || (n = t)
}),
n
}
} (window[i[n]]);
var r;
r = "undefined" == typeof dom7 ? window.dom7 || window.zepto || window.jquery: dom7,
r && ("transitionend" in r.fn || (r.fn.transitionend = function(t) {
function e(s) {
if (s.target === this) for (t.call(this, s), i = 0; i < n.length; i++) r.off(n[i], e)
}
var i, n = ["webkittransitionend", "transitionend", "otransitionend", "mstransitionend", "mstransitionend"],
r = this;
if (t) for (i = 0; i < n.length; i++) r.on(n[i], e);
return this
}), "transform" in r.fn || (r.fn.transform = function(t) {
for (var e = 0; e < this.length; e++) {
var i = this[e].style;
i.webkittransform = i.mstransform = i.mstransform = i.moztransform = i.otransform = i.transform = t
}
return this
}), "transition" in r.fn || (r.fn.transition = function(t) {
"string" != typeof t && (t += "ms");
for (var e = 0; e < this.length; e++) {
var i = this[e].style;
i.webkittransitionduration = i.mstransitionduration = i.mstransitionduration = i.moztransitionduration = i.otransitionduration = i.transitionduration = t
}
return this
})),
window.swiper = e
} (),
"undefined" != typeof module ? module.exports = window.swiper: "function" == typeof define && define.amd && define([],
function() {
"use strict";
return window.swiper
}),
function(t, e) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.videojs = e()
} (this,
function() {
"use strict";
function t(t, e) {
return e = {
exports: {}
},
t(e, e.exports),
e.exports
}
function e(t, e) {
re(t).foreach(function(i) {
return e(t[i], i)
})
}
function i(t, e) {
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
return re(t).reduce(function(i, n) {
return e(i, t[n], n)
},
i)
}
function n(t) {
for (var i = arguments.length,
n = array(i > 1 ? i - 1 : 0), r = 1; r < i; r++) n[r - 1] = arguments[r];
return object.assign ? object.assign.apply(object, [t].concat(n)) : (n.foreach(function(i) {
i && e(i,
function(e, i) {
t[i] = e
})
}), t)
}
function r(t) {
return !! t && "object" === (void 0 === t ? "undefined": de(t))
}
function s(t) {
return r(t) && "[object object]" === le.call(t) && t.constructor === object
}
function o(t) {
return t.replace(/\n\r?\s*/g, "")
}
function a(t, e) {
if (!t || !e) return "";
if ("function" == typeof re.getcomputedstyle) {
var i = re.getcomputedstyle(t);
return i ? i[e] : ""
}
return t.currentstyle[e] || ""
}
function l(t) {
return "string" == typeof t && /\s/.test(t)
}
function c(t) {
if (/\s/.test(t)) throw new error("class has illegal whitespace characters")
}
function h(t) {
return new regexp("(^|\\s)" + t + "($|\\s)")
}
function p() {
return ce === re.document && void 0 !== ce.createelement
}
function u(t) {
return r(t) && 1 === t.nodetype
}
function d(t) {
return function(e, i) {
if (!l(e)) return ce[t](null);
l(i) && (i = ce.queryselector(i));
var n = u(i) ? i: ce;
return n[t] && n[t](e)
}
}
function f() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "div",
e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
n = arguments[3],
r = ce.createelement(t);
return object.getownpropertynames(e).foreach(function(t) {
var i = e[t]; - 1 !== t.indexof("aria-") || "role" === t || "type" === t ? (ve.warn(we(ge, t, i)), r.setattribute(t, i)) : "textcontent" === t ? m(r, i) : r[t] = i
}),
object.getownpropertynames(i).foreach(function(t) {
r.setattribute(t, i[t])
}),
n && o(r, n),
r
}
function m(t, e) {
return void 0 === t.textcontent ? t.innertext = e: t.textcontent = e,
t
}
function v(t, e) {
e.firstchild ? e.insertbefore(t, e.firstchild) : e.appendchild(t)
}
function g(t, e) {
return c(e),
t.classlist ? t.classlist.contains(e) : h(e).test(t.classname)
}
function y(t, e) {
return t.classlist ? t.classlist.add(e) : g(t, e) || (t.classname = (t.classname + " " + e).trim()),
t
}
function b(t, e) {
return t.classlist ? t.classlist.remove(e) : (c(e), t.classname = t.classname.split(/\s+/).filter(function(t) {
return t !== e
}).join(" ")),
t
}
function t(t, e, i) {
var n = g(t, e);
if ("function" == typeof i && (i = i(t, e)), "boolean" != typeof i && (i = !n), i !== n) return i ? y(t, e) : b(t, e),
t
}
function w(t, e) {
object.getownpropertynames(e).foreach(function(i) {
var n = e[i];
null === n || void 0 === n || !1 === n ? t.removeattribute(i) : t.setattribute(i, !0 === n ? "": n)
})
}
function _(t) {
var e = {};
if (t && t.attributes && t.attributes.length > 0) for (var i = t.attributes,
n = i.length - 1; n >= 0; n--) {
var r = i[n].name,
s = i[n].value;
"boolean" != typeof t[r] && -1 === ",autoplay,controls,loop,muted,default,".indexof("," + r + ",") || (s = null !== s),
e[r] = s
}
return e
}
function c(t, e) {
return t.getattribute(e)
}
function s(t, e, i) {
t.setattribute(e, i)
}
function x(t, e) {
t.removeattribute(e)
}
function k() {
ce.body.focus(),
ce.onselectstart = function() {
return ! 1
}
}
function e() {
ce.onselectstart = function() {
return ! 0
}
}
function p(t) {
if (t && t.getboundingclientrect && t.parentnode) {
var e = t.getboundingclientrect(),
i = {};
return ["bottom", "height", "left", "right", "top", "width"].foreach(function(t) {
void 0 !== e[t] && (i[t] = e[t])
}),
i.height || (i.height = parsefloat(a(t, "height"))),
i.width || (i.width = parsefloat(a(t, "width"))),
i
}
}
function m(t) {
var e = void 0;
if (t.getboundingclientrect && t.parentnode && (e = t.getboundingclientrect()), !e) return {
left: 0,
top: 0
};
var i = ce.documentelement,
n = ce.body,
r = i.clientleft || n.clientleft || 0,
s = re.pagexoffset || n.scrollleft,
o = e.left + s - r,
a = i.clienttop || n.clienttop || 0,
l = re.pageyoffset || n.scrolltop,
c = e.top + l - a;
return {
left: math.round(o),
top: math.round(c)
}
}
function i(t, e) {
var i = {},
n = m(t),
r = t.offsetwidth,
s = t.offsetheight,
o = n.top,
a = n.left,
l = e.pagey,
c = e.pagex;
return e.changedtouches && (c = e.changedtouches[0].pagex, l = e.changedtouches[0].pagey),
i.y = math.max(0, math.min(1, (o - l + s) / s)),
i.x = math.max(0, math.min(1, (c - a) / r)),
i
}
function a(t) {
return r(t) && 3 === t.nodetype
}
function j(t) {
for (; t.firstchild;) t.removechild(t.firstchild);
return t
}
function d(t) {
return "function" == typeof t && (t = t()),
(array.isarray(t) ? t: [t]).map(function(t) {
return "function" == typeof t && (t = t()),
u(t) || a(t) ? t: "string" == typeof t && /\s/.test(t) ? ce.createtextnode(t) : void 0
}).filter(function(t) {
return t
})
}
function o(t, e) {
return d(e).foreach(function(e) {
return t.appendchild(e)
}),
t
}
function z(t, e) {
return o(j(t), e)
}
function n() {
return qe++
}
function b(t) {
var e = t[ze];
return e || (e = t[ze] = n()),
$e[e] || ($e[e] = {}),
$e[e]
}
function l(t) {
var e = t[ze];
return !! e && !!object.getownpropertynames($e[e]).length
}
function r(t) {
var e = t[ze];
if (e) {
delete $e[e];
try {
delete t[ze]
} catch(e) {
t.removeattribute ? t.removeattribute(ze) : t[ze] = null
}
}
}
function h(t, e) {
var i = b(t);
0 === i.handlers[e].length && (delete i.handlers[e], t.removeeventlistener ? t.removeeventlistener(e, i.dispatcher, !1) : t.detachevent && t.detachevent("on" + e, i.dispatcher)),
object.getownpropertynames(i.handlers).length <= 0 && (delete i.handlers, delete i.dispatcher, delete i.disabled),
0 === object.getownpropertynames(i).length && r(t)
}
function f(t, e, i, n) {
i.foreach(function(i) {
t(e, i, n)
})
}
function x(t) {
function e() {
return ! 0
}
function i() {
return ! 1
}
if (!t || !t.ispropagationstopped) {
var n = t || re.event;
t = {};
for (var r in n)"layerx" !== r && "layery" !== r && "keylocation" !== r && "webkitmovementx" !== r && "webkitmovementy" !== r && ("returnvalue" === r && n.preventdefault || (t[r] = n[r]));
if (t.target || (t.target = t.srcelement || ce), t.relatedtarget || (t.relatedtarget = t.fromelement === t.target ? t.toelement: t.fromelement), t.preventdefault = function() {
n.preventdefault && n.preventdefault(),
t.returnvalue = !1,
n.returnvalue = !1,
t.defaultprevented = !0
},
t.defaultprevented = !1, t.stoppropagation = function() {
n.stoppropagation && n.stoppropagation(),
t.cancelbubble = !0,
n.cancelbubble = !0,
t.ispropagationstopped = e
},
t.ispropagationstopped = i, t.stopimmediatepropagation = function() {
n.stopimmediatepropagation && n.stopimmediatepropagation(),
t.isimmediatepropagationstopped = e,
t.stoppropagation()
},
t.isimmediatepropagationstopped = i, null !== t.clientx && void 0 !== t.clientx) {
var s = ce.documentelement,
o = ce.body;
t.pagex = t.clientx + (s && s.scrollleft || o && o.scrollleft || 0) - (s && s.clientleft || o && o.clientleft || 0),
t.pagey = t.clienty + (s && s.scrolltop || o && o.scrolltop || 0) - (s && s.clienttop || o && o.clienttop || 0)
}
t.which = t.charcode || t.keycode,
null !== t.button && void 0 !== t.button && (t.button = 1 & t.button ? 0 : 4 & t.button ? 1 : 2 & t.button ? 2 : 0)
}
return t
}
function y(t, e, i) {
if (array.isarray(e)) return f(y, t, e, i);
var n = b(t);
if (n.handlers || (n.handlers = {}), n.handlers[e] || (n.handlers[e] = []), i.guid || (i.guid = n()), n.handlers[e].push(i), n.dispatcher || (n.disabled = !1, n.dispatcher = function(e, i) {
if (!n.disabled) {
e = x(e);
var r = n.handlers[e.type];
if (r) for (var s = r.slice(0), o = 0, a = s.length; o < a && !e.isimmediatepropagationstopped(); o++) try {
s[o].call(t, e, i)
} catch(t) {
ve.error(t)
}
}
}), 1 === n.handlers[e].length) if (t.addeventlistener) {
var r = !1;
je && ti.indexof(e) > -1 && (r = {
passive: !0
}),
t.addeventlistener(e, n.dispatcher, r)
} else t.attachevent && t.attachevent("on" + e, n.dispatcher)
}
function v(t, e, i) {
if (l(t)) {
var n = b(t);
if (n.handlers) {
if (array.isarray(e)) return f(v, t, e, i);
var r = function(e) {
n.handlers[e] = [],
h(t, e)
};
if (e) {
var s = n.handlers[e];
if (s) {
if (!i) return void r(e);
if (i.guid) for (var o = 0; o < s.length; o++) s[o].guid === i.guid && s.splice(o--, 1);
h(t, e)
}
} else for (var a in n.handlers) r(a)
}
}
}
function w(t, e, i) {
var n = l(t) ? b(t) : {},
r = t.parentnode || t.ownerdocument;
if ("string" == typeof e && (e = {
type: e,
target: t
}), e = x(e), n.dispatcher && n.dispatcher.call(t, e, i), r && !e.ispropagationstopped() && !0 === e.bubbles) w.call(null, r, e, i);
else if (!r && !e.defaultprevented) {
var s = b(e.target);
e.target[e.type] && (s.disabled = !0, "function" == typeof e.target[e.type] && e.target[e.type](), s.disabled = !1)
}
return ! e.defaultprevented
}
function g(t, e, i) {
if (array.isarray(e)) return f(g, t, e, i);
var n = function n() {
v(t, e, n),
i.apply(this, arguments)
};
n.guid = i.guid = i.guid || n(),
y(t, e, n)
}
function q(t, e) {
e && (ni = e),
re.settimeout(ri, t)
}
function u(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
i = e.eventbuskey;
if (i) {
if (!t[i].nodename) throw new error('the eventbuskey "' + i + '" does not refer to an element.');
t.eventbusel_ = t[i]
} else t.eventbusel_ = f("span", {
classname: "vjs-event-bus"
});
return n(t, gi),
t.on("dispose",
function() {
return t.off()
}),
t
}
function k(t, e) {
return n(t, yi),
t.state = n({},
t.state, e),
"function" == typeof t.handlestatechanged && hi(t) && t.on("statechanged", t.handlestatechanged),
t
}
function q(t) {
return "string" != typeof t ? t: t.charat(0).touppercase() + t.slice(1)
}
function $(t, e) {
return q(t) === q(e)
}
function z() {
for (var t = {},
i = arguments.length,
n = array(i), r = 0; r < i; r++) n[r] = arguments[r];
return n.foreach(function(i) {
i && e(i,
function(e, i) {
if (!s(e)) return void(t[i] = e);
s(t[i]) || (t[i] = {}),
t[i] = z(t[i], e)
})
}),
t
}
function j(t, e, i) {
if ("number" != typeof e || e < 0 || e > i) throw new error("failed to execute '" + t + "' on 'timeranges': the index provided (" + e + ") is non-numeric or out of bounds (0-" + i + ").")
}
function tt(t, e, i, n) {
return j(t, n, i.length - 1),
i[n][e]
}
function et(t) {
return void 0 === t || 0 === t.length ? {
length: 0,
start: function() {
throw new error("this timeranges object is empty")
},
end: function() {
throw new error("this timeranges object is empty")
}
}: {
length: t.length,
start: tt.bind(null, "start", 0, t),
end: tt.bind(null, "end", 1, t)
}
}
function it(t, e) {
return array.isarray(t) ? et(t) : void 0 === t || void 0 === e ? et() : et([[t, e]])
}
function nt(t, e) {
var i = 0,
n = void 0,
r = void 0;
if (!e) return 0;
t && t.length || (t = it(0, 0));
for (var s = 0; s < t.length; s++) n = t.start(s),
r = t.end(s),
r > e && (r = e),
i += r - n;
return i / e
}
function rt(t) {
if (t instanceof rt) return t;
"number" == typeof t ? this.code = t: "string" == typeof t ? this.message = t: r(t) && ("number" == typeof t.code && (this.code = t.code), n(this, t)),
this.message || (this.message = rt.defaultmessages[this.code] || "")
}
function st(t, e) {
var i, n = null;
try {
i = json.parse(t, e)
} catch(t) {
n = t
}
return [n, i]
}
function ot(t) {
var e = tn.call(t);
return "[object function]" === e || "function" == typeof t && "[object regexp]" !== e || "undefined" != typeof window && (t === window.settimeout || t === window.alert || t === window.confirm || t === window.prompt)
}
function at(t, e, i) {
if (!ji(e)) throw new typeerror("iterator must be a function");
arguments.length < 3 && (i = this),
"[object array]" === rn.call(t) ? lt(t, e, i) : "string" == typeof t ? ct(t, e, i) : ht(t, e, i)
}
function lt(t, e, i) {
for (var n = 0,
r = t.length; n < r; n++) sn.call(t, n) && e.call(i, t[n], n, t)
}
function ct(t, e, i) {
for (var n = 0,
r = t.length; n < r; n++) e.call(i, t.charat(n), n, t)
}
function ht(t, e, i) {
for (var n in t) sn.call(t, n) && e.call(i, t[n], n, t)
}
function pt() {
for (var t = {},
e = 0; e < arguments.length; e++) {
var i = arguments[e];
for (var n in i) cn.call(i, n) && (t[n] = i[n])
}
return t
}
function ut(t) {
for (var e in t) if (t.hasownproperty(e)) return ! 1;
return ! 0
}
function dt(t, e, i) {
var n = t;
return ji(e) ? (i = e, "string" == typeof t && (n = {
uri: t
})) : n = ln(e, {
uri: t
}),
n.callback = i,
n
}
function ft(t, e, i) {
return e = dt(t, e, i),
mt(e)
}
function mt(t) {
function e() {
4 === a.readystate && settimeout(r, 0)
}
function i() {
var t = void 0;
if (t = a.response ? a.response: a.responsetext || vt(a), v) try {
t = json.parse(t)
} catch(t) {}
return t
}
function n(t) {
return cleartimeout(h),
t instanceof error || (t = new error("" + (t || "unknown xmlhttprequest error"))),
t.statuscode = 0,
o(t, g)
}
function r() {
if (!c) {
var e;
cleartimeout(h),
e = t.usexdr && void 0 === a.status ? 200 : 1223 === a.status ? 204 : a.status;
var n = g,
r = null;
return 0 !== e ? (n = {
body: i(),
statuscode: e,
method: u,
headers: {},
url: p,
rawrequest: a
},
a.getallresponseheaders && (n.headers = an(a.getallresponseheaders()))) : r = new error("internal xmlhttprequest error"),
o(r, n, n.body)
}
}
if (void 0 === t.callback) throw new error("callback argument missing");
var s = !1,
o = function(e, i, n) {
s || (s = !0, t.callback(e, i, n))
},
a = t.xhr || null;
a || (a = t.cors || t.usexdr ? new ft.xdomainrequest: new ft.xmlhttprequest);
var l, c, h, p = a.url = t.uri || t.url,
u = a.method = t.method || "get",
d = t.body || t.data,
f = a.headers = t.headers || {},
m = !!t.sync,
v = !1,
g = {
body: void 0,
headers: {},
statuscode: 0,
method: u,
url: p,
rawrequest: a
};
if ("json" in t && !1 !== t.json && (v = !0, f.accept || f.accept || (f.accept = "application/json"), "get" !== u && "head" !== u && (f["content-type"] || f["content-type"] || (f["content-type"] = "application/json"), d = json.stringify(!0 === t.json ? d: t.json))), a.onreadystatechange = e, a.onload = r, a.onerror = n, a.onprogress = function() {},
a.onabort = function() {
c = !0
},
a.ontimeout = n, a.open(u, p, !m, t.username, t.password), m || (a.withcredentials = !!t.withcredentials), !m && t.timeout > 0 && (h = settimeout(function() {
if (!c) {
c = !0,
a.abort("timeout");
var t = new error("xmlhttprequest timeout");
t.code = "etimedout",
n(t)
}
},
t.timeout)), a.setrequestheader) for (l in f) f.hasownproperty(l) && a.setrequestheader(l, f[l]);
else if (t.headers && !ut(t.headers)) throw new error("headers cannot be set on an xdomainrequest object");
return "responsetype" in t && (a.responsetype = t.responsetype),
"beforesend" in t && "function" == typeof t.beforesend && t.beforesend(a),
a.send(d || null),
a
}
function vt(t) {
if ("document" === t.responsetype) return t.responsexml;
var e = t.responsexml && "parsererror" === t.responsexml.documentelement.nodename;
return "" !== t.responsetype || e ? null: t.responsexml
}
function gt() {}
function yt(t, e) {
this.name = "parsingerror",
this.code = t.code,
this.message = e || t.message
}
function bt(t) {
function e(t, e, i, n) {
return 3600 * (0 | t) + 60 * (0 | e) + (0 | i) + (0 | n) / 1e3
}
var i = t.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);
return i ? i[3] ? e(i[1], i[2], i[3].replace(":", ""), i[4]) : i[1] > 59 ? e(i[1], i[2], 0, i[4]) : e(0, i[1], i[2], i[4]) : null
}
function tt() {
this.values = _n(null)
}
function wt(t, e, i, n) {
var r = n ? t.split(n) : [t];
for (var s in r) if ("string" == typeof r[s]) {
var o = r[s].split(i);
if (2 === o.length) {
var a = o[0],
l = o[1];
e(a, l)
}
}
}
function _t(t, e, i) {
function n() {
var e = bt(t);
if (null === e) throw new yt(yt.errors.badtimestamp, "malformed timestamp: " + s);
return t = t.replace(/^[^\sa-za-z-]+/, ""),
e
}
function r() {
t = t.replace(/^\s+/, "")
}
var s = t;
if (r(), e.starttime = n(), r(), "--\x3e" !== t.substr(0, 3)) throw new yt(yt.errors.badtimestamp, "malformed time stamp (time stamps must be separated by '--\x3e'): " + s);
t = t.substr(3),
r(),
e.endtime = n(),
r(),
function(t, e) {
var n = new tt;
wt(t,
function(t, e) {
switch (t) {
case "region":
for (var r = i.length - 1; r >= 0; r--) if (i[r].id === e) {
n.set(t, i[r].region);
break
}
break;
case "vertical":
n.alt(t, e, ["rl", "lr"]);
break;
case "line":
var s = e.split(","),
o = s[0];
n.integer(t, o),
n.percent(t, o) && n.set("snaptolines", !1),
n.alt(t, o, ["auto"]),
2 === s.length && n.alt("linealign", s[1], ["start", "middle", "end"]);
break;
case "position":
s = e.split(","),
n.percent(t, s[0]),
2 === s.length && n.alt("positionalign", s[1], ["start", "middle", "end"]);
break;
case "size":
n.percent(t, e);
break;
case "align":
n.alt(t, e, ["start", "middle", "end", "left", "right"])
}
},
/:/, /\s/),
e.region = n.get("region", null),
e.vertical = n.get("vertical", ""),
e.line = n.get("line", "auto"),
e.linealign = n.get("linealign", "start"),
e.snaptolines = n.get("snaptolines", !0),
e.size = n.get("size", 100),
e.align = n.get("align", "middle"),
e.position = n.get("position", {
start: 0,
left: 0,
middle: 50,
end: 100,
right: 100
},
e.align),
e.positionalign = n.get("positionalign", {
start: "start",
left: "start",
middle: "middle",
end: "end",
right: "end"
},
e.align)
} (t, e)
}
function ct(t, e) {
function i(t) {
return cn[t]
}
for (var n, r = t.document.createelement("div"), s = r, o = []; null !== (n = function() {
if (!e) return null;
var t = e.match(/^([^<]*)(<[^>]+>?)?/);
return function(t) {
return e = e.substr(t.length),
t
} (t[1] ? t[1] : t[2])
} ());) if ("<" !== n[0]) s.appendchild(t.document.createtextnode(function(t) {
for (; c = t.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);) t = t.replace(c[0], i);
return t
} (n)));
else {
if ("/" === n[1]) {
o.length && o[o.length - 1] === n.substr(2).replace(">", "") && (o.pop(), s = s.parentnode);
continue
}
var a, l = bt(n.substr(1, n.length - 2));
if (l) {
a = t.document.createprocessinginstruction("timestamp", l),
s.appendchild(a);
continue
}
var c = n.match(/^<([^.\s\/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);
if (!c) continue;
if (! (a = function(e, i) {
var n = sn[e];
if (!n) return null;
var r = t.document.createelement(n);
r.localname = n;
var s = xn[e];
return s && i && (r[s] = i.trim()),
r
} (c[1], c[3]))) continue;
if (!
function(t, e) {
return ! kn[e.localname] || kn[e.localname] === t.localname
} (s, a)) continue;
c[2] && (a.classname = c[2].substr(1).replace(".", " ")),
o.push(c[1]),
s.appendchild(a),
s = a
}
return r
}
function st(t) {
for (var e = 0; e < en.length; e++) {
var i = en[e];
if (t >= i[0] && t <= i[1]) return ! 0
}
return ! 1
}
function xt(t) {
function e(t, e) {
for (var i = e.childnodes.length - 1; i >= 0; i--) t.push(e.childnodes[i])
}
function i(t) {
if (!t || !t.length) return null;
var n = t.pop(),
r = n.textcontent || n.innertext;
if (r) {
var s = r.match(/^.*(\n|\r)/);
return s ? (t.length = 0, s[0]) : r
}
return "ruby" === n.tagname ? i(t) : n.childnodes ? (e(t, n), i(t)) : void 0
}
var n, r = [],
s = "";
if (!t || !t.childnodes) return "ltr";
for (e(r, t); s = i(r);) for (var o = 0; o < s.length; o++) if (n = s.charcodeat(o), st(n)) return "rtl";
return "ltr"
}
function kt(t) {
if ("number" == typeof t.line && (t.snaptolines || t.line >= 0 && t.line <= 100)) return t.line;
if (!t.track || !t.track.texttracklist || !t.track.texttracklist.mediaelement) return - 1;
for (var e = t.track,
i = e.texttracklist,
n = 0,
r = 0; r < i.length && i[r] !== e; r++)"showing" === i[r].mode && n++;
return - 1 * ++n
}
function et() {}
function pt(t, e, i) {
var n = /msie\s8\.0/.test(navigator.useragent),
r = "rgba(255, 255, 255, 1)",
s = "rgba(0, 0, 0, 0.8)";
n && (r = "rgb(255, 255, 255)", s = "rgb(0, 0, 0)"),
et.call(this),
this.cue = e,
this.cuediv = ct(t, e.text);
var o = {
color: r,
backgroundcolor: s,
position: "relative",
left: 0,
right: 0,
top: 0,
bottom: 0,
display: "inline"
};
n || (o.writingmode = "" === e.vertical ? "horizontal-tb": "lr" === e.vertical ? "vertical-lr": "vertical-rl", o.unicodebidi = "plaintext"),
this.applystyles(o, this.cuediv),
this.div = t.document.createelement("div"),
o = {
textalign: "middle" === e.align ? "center": e.align,
font: i.font,
whitespace: "pre-line",
position: "absolute"
},
n || (o.direction = xt(this.cuediv), o.writingmode = "" === e.vertical ? "horizontal-tb": "lr" === e.vertical ? "vertical-lr": "vertical-rl".stylesunicodebidi = "plaintext"),
this.applystyles(o),
this.div.appendchild(this.cuediv);
var a = 0;
switch (e.positionalign) {
case "start":
a = e.position;
break;
case "middle":
a = e.position - e.size / 2;
break;
case "end":
a = e.position - e.size
}
"" === e.vertical ? this.applystyles({
left: this.formatstyle(a, "%"),
width: this.formatstyle(e.size, "%")
}) : this.applystyles({
top: this.formatstyle(a, "%"),
height: this.formatstyle(e.size, "%")
}),
this.move = function(t) {
this.applystyles({
top: this.formatstyle(t.top, "px"),
bottom: this.formatstyle(t.bottom, "px"),
left: this.formatstyle(t.left, "px"),
right: this.formatstyle(t.right, "px"),
height: this.formatstyle(t.height, "px"),
width: this.formatstyle(t.width, "px")
})
}
}
function mt(t) {
var e, i, n, r, s = /msie\s8\.0/.test(navigator.useragent);
if (t.div) {
i = t.div.offsetheight,
n = t.div.offsetwidth,
r = t.div.offsettop;
var o = (o = t.div.childnodes) && (o = o[0]) && o.getclientrects && o.getclientrects();
t = t.div.getboundingclientrect(),
e = o ? math.max(o[0] && o[0].height || 0, t.height / o.length) : 0
}
this.left = t.left,
this.right = t.right,
this.top = t.top || r,
this.height = t.height || i,
this.bottom = t.bottom || r + (t.height || i),
this.width = t.width || n,
this.lineheight = void 0 !== e ? e: t.lineheight,
s && !this.lineheight && (this.lineheight = 13)
}
function it(t, e, i, n) {
var r = new mt(e),
s = e.cue,
o = kt(s),
a = [];
if (s.snaptolines) {
var l;
switch (s.vertical) {
case "":
a = ["+y", "-y"],
l = "height";
break;
case "rl":
a = ["+x", "-x"],
l = "width";
break;
case "lr":
a = ["-x", "+x"],
l = "width"
}
var c = r.lineheight,
h = c * math.round(o),
p = i[l] + c,
u = a[0];
math.abs(h) > p && (h = h < 0 ? -1 : 1, h *= math.ceil(p / c) * c),
o < 0 && (h += "" === s.vertical ? i.height: i.width, a = a.reverse()),
r.move(u, h)
} else {
var d = r.lineheight / i.height * 100;
switch (s.linealign) {
case "middle":
o -= d / 2;
break;
case "end":
o -= d
}
switch (s.vertical) {
case "":
e.applystyles({
top:
e.formatstyle(o, "%")
});
break;
case "rl":
e.applystyles({
left:
e.formatstyle(o, "%")
});
break;
case "lr":
e.applystyles({
right:
e.formatstyle(o, "%")
})
}
a = ["+y", "-x", "+x", "-y"],
r = new mt(e)
}
var f = function(t, e) {
for (var r, s = new mt(t), o = 1, a = 0; a < e.length; a++) {
for (; t.overlapsoppositeaxis(i, e[a]) || t.within(i) && t.overlapsany(n);) t.move(e[a]);
if (t.within(i)) return t;
var l = t.intersectpercentage(i);
o > l && (r = new mt(t), o = l),
t = new mt(s)
}
return r || s
} (r, a);
e.move(f.tocsscompatvalues(i))
}
function at() {}
function jt(t) {
return "string" == typeof t && !!in[t.tolowercase()] && t.tolowercase()
}
function dt(t) {
return "string" == typeof t && !!an[t.tolowercase()] && t.tolowercase()
}
function ot(t) {
for (var e = 1; e < arguments.length; e++) {
var i = arguments[e];
for (var n in i) t[n] = i[n]
}
return t
}
function zt(t, e, i) {
var n = this,
r = /msie\s8\.0/.test(navigator.useragent),
s = {};
r ? n = document.createelement("custom") : s.enumerable = !0,
n.hasbeenreset = !1;
var o = "",
a = !1,
l = t,
c = e,
h = i,
p = null,
u = "",
d = !0,
f = "auto",
m = "start",
v = 50,
g = "middle",
y = 50,
b = "middle";
if (object.defineproperty(n, "id", ot({},
s, {
get: function() {
return o
},
set: function(t) {
o = "" + t
}
})), object.defineproperty(n, "pauseonexit", ot({},
s, {
get: function() {
return a
},
set: function(t) {
a = !!t
}
})), object.defineproperty(n, "starttime", ot({},
s, {
get: function() {
return l
},
set: function(t) {
if ("number" != typeof t) throw new typeerror("start time must be set to a number.");
l = t,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "endtime", ot({},
s, {
get: function() {
return c
},
set: function(t) {
if ("number" != typeof t) throw new typeerror("end time must be set to a number.");
c = t,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "text", ot({},
s, {
get: function() {
return h
},
set: function(t) {
h = "" + t,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "region", ot({},
s, {
get: function() {
return p
},
set: function(t) {
p = t,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "vertical", ot({},
s, {
get: function() {
return u
},
set: function(t) {
var e = jt(t);
if (!1 === e) throw new syntaxerror("an invalid or illegal string was specified.");
u = e,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "snaptolines", ot({},
s, {
get: function() {
return d
},
set: function(t) {
d = !!t,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "line", ot({},
s, {
get: function() {
return f
},
set: function(t) {
if ("number" != typeof t && t !== mn) throw new syntaxerror("an invalid number or illegal string was specified.");
f = t,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "linealign", ot({},
s, {
get: function() {
return m
},
set: function(t) {
var e = dt(t);
if (!e) throw new syntaxerror("an invalid or illegal string was specified.");
m = e,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "position", ot({},
s, {
get: function() {
return v
},
set: function(t) {
if (t < 0 || t > 100) throw new error("position must be between 0 and 100.");
v = t,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "positionalign", ot({},
s, {
get: function() {
return g
},
set: function(t) {
var e = dt(t);
if (!e) throw new syntaxerror("an invalid or illegal string was specified.");
g = e,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "size", ot({},
s, {
get: function() {
return y
},
set: function(t) {
if (t < 0 || t > 100) throw new error("size must be between 0 and 100.");
y = t,
this.hasbeenreset = !0
}
})), object.defineproperty(n, "align", ot({},
s, {
get: function() {
return b
},
set: function(t) {
var e = dt(t);
if (!e) throw new syntaxerror("an invalid or illegal string was specified.");
b = e,
this.hasbeenreset = !0
}
})), n.displaystate = void 0, r) return n
}
function nt(t) {
return "string" == typeof t && !!dn[t.tolowercase()] && t.tolowercase()
}
function bt(t) {
return "number" == typeof t && t >= 0 && t <= 100
}
function lt() {
var t = 100,
e = 3,
i = 0,
n = 100,
r = 0,
s = 100,
o = "";
object.defineproperties(this, {
width: {
enumerable: !0,
get: function() {
return t
},
set: function(e) {
if (!bt(e)) throw new error("width must be between 0 and 100.");
t = e
}
},
lines: {
enumerable: !0,
get: function() {
return e
},
set: function(t) {
if ("number" != typeof t) throw new typeerror("lines must be set to a number.");
e = t
}
},
regionanchory: {
enumerable: !0,
get: function() {
return n
},
set: function(t) {
if (!bt(t)) throw new error("regionanchorx must be between 0 and 100.");
n = t
}
},
regionanchorx: {
enumerable: !0,
get: function() {
return i
},
set: function(t) {
if (!bt(t)) throw new error("regionanchory must be between 0 and 100.");
i = t
}
},
viewportanchory: {
enumerable: !0,
get: function() {
return s
},
set: function(t) {
if (!bt(t)) throw new error("viewportanchory must be between 0 and 100.");
s = t
}
},
viewportanchorx: {
enumerable: !0,
get: function() {
return r
},
set: function(t) {
if (!bt(t)) throw new error("viewportanchorx must be between 0 and 100.");
r = t
}
},
scroll: {
enumerable: !0,
get: function() {
return o
},
set: function(t) {
var e = nt(t);
if (!1 === e) throw new syntaxerror("an invalid or illegal string was specified.");
o = e
}
}
})
}
function rt(t, e, i, n) {
var r = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {},
s = t.texttracks();
r.kind = e,
i && (r.label = i),
n && (r.language = n),
r.tech = t;
var o = new wn.text.trackclass(r);
return s.addtrack(o),
o
}
function ht(t, e) {
bn[t] = bn[t] || [],
bn[t].push(e)
}
function ft(t, e, i) {
t.settimeout(function() {
return gt(e, bn[e.type], i, t)
},
1)
}
function xt(t, e) {
t.foreach(function(t) {
return t.settech && t.settech(e)
})
}
function yt(t, e, i) {
return t.reduceright(wt(i), e[i]())
}
function vt(t, e, i, n) {
return e[i](t.reduce(wt(i), n))
}
function wt(t) {
return function(e, i) {
return i[t] ? i[t](e) : e
}
}
function gt() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [],
i = arguments[2],
r = arguments[3],
s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : [],
o = arguments.length > 5 && void 0 !== arguments[5] && arguments[5],
a = e[0],
l = e.slice(1);
if ("string" == typeof a) gt(t, bn[a], i, r, s, o);
else if (a) {
var c = a(r);
c.setsource(n({},
t),
function(e, n) {
if (e) return gt(t, l, i, r, s, o);
s.push(c),
gt(n, t.type === n.type ? l: bn[n.type], i, r, s, o)
})
} else l.length ? gt(t, l, i, r, s, o) : o ? i(t, s) : gt(t, bn["*"], i, r, s, !0)
}
function qt(t, e) {
return "rgba(" + parseint(t[1] + t[1], 16) + "," + parseint(t[2] + t[2], 16) + "," + parseint(t[3] + t[3], 16) + "," + e + ")"
}
function ut(t, e, i) {
try {
t.style[e] = i
} catch(t) {
return
}
}
function kt(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : t;
t = t < 0 ? 0 : t;
var i = math.floor(t % 60),
n = math.floor(t / 60 % 60),
r = math.floor(t / 3600),
s = math.floor(e / 60 % 60),
o = math.floor(e / 3600);
return (isnan(t) || t === 1 / 0) && (r = n = i = "-"),
r = r > 0 || o > 0 ? r + ":": "",
n = ((r || s >= 10) && n < 10 ? "0" + n: n) + ":",
i = i < 10 ? "0" + i: i,
r + n + i
}
function qt(t, e) {
if (e && (t = e(t)), t && "none" !== t) return t
}
function $t(t, e) {
return qt(t.options[t.options.selectedindex].value, e)
}
function zt(t, e, i) {
if (e) for (var n = 0; n < t.options.length; n++) if (qt(t.options[n].value, i) === e) {
t.selectedindex = n;
break
}
}
function jt(t, e, i) {
var n = void 0;
if ("string" == typeof t) {
var s = jt.getplayers();
if (0 === t.indexof("#") && (t = t.slice(1)), s[t]) return e && ve.warn('player "' + t + '" is already initialised. options will not be applied.'),
i && s[t].ready(i),
s[t];
n = qe("#" + t)
} else n = t;
if (!n || !n.nodename) throw new typeerror("the element or id supplied is not valid. (videojs)");
if (n.player || os.players[n.playerid]) return n.player || os.players[n.playerid];
e = e || {},
jt.hooks("beforesetup").foreach(function(t) {
var i = t(n, z(e));
if (!r(i) || array.isarray(i)) return void ve.error("please return an object in beforesetup hooks");
e = z(e, i)
});
var o = bi.getcomponent("player"),
a = new o(n, e, i);
return jt.hooks("setup").foreach(function(t) {
return t(a)
}),
a
}
var te, ee = "6.2.5",
ie = "undefined" != typeof window ? window: "undefined" != typeof global ? global: "undefined" != typeof self ? self: {};
te = "undefined" != typeof window ? window: void 0 !== ie ? ie: "undefined" != typeof self ? self: {};
var ne, re = te,
se = {},
oe = (object.freeze || object)({
default:
se
}),
ae = oe && se || oe,
le = void 0 !== ie ? ie: "undefined" != typeof window ? window: {};
"undefined" != typeof document ? ne = document: (ne = le["__global_document_cache@4"]) || (ne = le["__global_document_cache@4"] = ae);
var ce = ne,
he = re.navigator && re.navigator.useragent || "",
pe = /applewebkit\/([\d.]+)/i.exec(he),
ue = pe ? parsefloat(pe.pop()) : null,
de = /ipad/i.test(he),
fe = /iphone/i.test(he) && !de,
me = /ipod/i.test(he),
ve = fe || de || me,
ge = function() {
var t = he.match(/os (\d+)_/i);
return t && t[1] ? t[1] : null
} (),
ye = /android/i.test(he),
be = function() {
var t = he.match(/android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);
if (!t) return null;
var e = t[1] && parsefloat(t[1]),
i = t[2] && parsefloat(t[2]);
return e && i ? parsefloat(t[1] + "." + t[2]) : e || null
} (),
te = ye && /webkit/i.test(he) && be < 2.3,
we = ye && be < 5 && ue < 537,
_e = /firefox/i.test(he),
ce = /edge/i.test(he),
se = !ce && /chrome/i.test(he),
xe = function() {
var t = he.match(/chrome\/(\d+)/);
return t && t[1] ? parsefloat(t[1]) : null
} (),
ke = /msie\s8\.0/.test(he),
ee = function() {
var t = /msie\s(\d+)\.\d/.exec(he),
e = t && parsefloat(t[1]);
return ! e && /trident\/7.0/i.test(he) && /rv:11.0/.test(he) && (e = 11),
e
} (),
pe = /safari/i.test(he) && !se && !ye && !ce,
me = pe || ve,
ie = p() && ("ontouchstart" in re || re.documenttouch && re.document instanceof re.documenttouch),
ae = p() && "backgroundsize" in re.document.createelement("video").style,
je = (object.freeze || object)({
is_ipad: de,
is_iphone: fe,
is_ipod: me,
is_ios: ve,
ios_version: ge,
is_android: ye,
android_version: be,
is_old_android: te,
is_native_android: we,
is_firefox: _e,
is_edge: ce,
is_chrome: se,
chrome_version: xe,
is_ie8: ke,
ie_version: ee,
is_safari: pe,
is_any_safari: me,
touch_enabled: ie,
background_size_supported: ae
}),
de = "function" == typeof symbol && "symbol" == typeof symbol.iterator ?
function(t) {
return typeof t
}: function(t) {
return t && "function" == typeof symbol && t.constructor === symbol && t !== symbol.prototype ? "symbol": typeof t
},
oe = function(t, e) {
if (! (t instanceof e)) throw new typeerror("cannot call a class as a function")
},
ze = function(t, e) {
if ("function" != typeof e && null !== e) throw new typeerror("super expression must either be null or a function, not " + typeof e);
t.prototype = object.create(e && e.prototype, {
constructor: {
value: t,
enumerable: !1,
writable: !0,
configurable: !0
}
}),
e && (object.setprototypeof ? object.setprototypeof(t, e) : t.__proto__ = e)
},
ne = function(t, e) {
if (!t) throw new referenceerror("this hasn't been initialised - super() hasn't been called");
return ! e || "object" != typeof e && "function" != typeof e ? t: e
},
be = function(t, e) {
return t.raw = e,
t
},
le = object.prototype.tostring,
re = function(t) {
return r(t) ? object.keys(t) : []
},
he = void 0,
fe = "all",
xe = [],
ye = function(t, e) {
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : !!ee && ee < 11,
n = he.levels[fe],
s = new regexp("^(" + n + ")$");
"log" !== t && e.unshift(t.touppercase() + ":"),
xe && xe.push([].concat(e)),
e.unshift("videojs:");
var o = re.console && re.console[t];
o && n && s.test(t) && (i && (e = e.map(function(t) {
if (r(t) || array.isarray(t)) try {
return json.stringify(t)
} catch(e) {
return string(t)
}
return string(t)
}).join(" ")), o.apply ? o[array.isarray(e) ? "apply": "call"](re.console, e) : o(e))
};
he = function() {
for (var t = arguments.length,
e = array(t), i = 0; i < t; i++) e[i] = arguments[i];
ye("log", e)
},
he.levels = {
all: "log|warn|error",
error: "error",
off: "",
warn: "warn|error",
default: fe
},
he.level = function(t) {
if ("string" == typeof t) {
if (!he.levels.hasownproperty(t)) throw new error('"' + t + '" in not a valid log level');
fe = t
}
return fe
},
he.history = function() {
return xe ? [].concat(xe) : []
},
he.history.clear = function() {
xe && (xe.length = 0)
},
he.history.disable = function() {
null !== xe && (xe.length = 0, xe = null)
},
he.history.enable = function() {
null === xe && (xe = [])
},
he.error = function() {
for (var t = arguments.length,
e = array(t), i = 0; i < t; i++) e[i] = arguments[i];
return ye("error", e)
},
he.warn = function() {
for (var t = arguments.length,
e = array(t), i = 0; i < t; i++) e[i] = arguments[i];
return ye("warn", e)
};
var ve = he,
we = function(t) {
for (var e = "",
i = 0; i < arguments.length; i++) e += o(t[i]) + (arguments[i + 1] || "");
return e
},
ge = be(["setting attributes in the second argument of createel()\n has been deprecated. use the third argument instead.\n createel(type, properties, attributes). attempting to set ", " to ", "."], ["setting attributes in the second argument of createel()\n has been deprecated. use the third argument instead.\n createel(type, properties, attributes). attempting to set ", " to ", "."]),
qe = d("queryselector"),
ue = d("queryselectorall"),
ke = (object.freeze || object)({
isreal: p,
isel: u,
createel: f,
textcontent: m,
prependto: v,
hasclass: g,
addclass: y,
removeclass: b,
toggleclass: t,
setattributes: w,
getattributes: _,
getattribute: c,
setattribute: s,
removeattribute: x,
blocktextselection: k,
unblocktextselection: e,
getboundingclientrect: p,
findposition: m,
getpointerposition: i,
istextnode: a,
emptyel: j,
normalizecontent: d,
appendcontent: o,
insertcontent: z,
$: qe,
$$: ue
}),
qe = 1,
$e = {},
ze = "vdata" + (new date).gettime(),
je = !1; !
function() {
try {
var t = object.defineproperty({},
"passive", {
get: function() {
je = !0
}
});
re.addeventlistener("test", null, t)
} catch(t) {}
} ();
var ti = ["touchstart", "touchmove"],
ei = (object.freeze || object)({
fixevent: x,
on: y,
off: v,
trigger: w,
one: g
}),
ii = !1,
ni = void 0,
ri = function() {
if (p()) {
var t = ce.getelementsbytagname("video"),
e = ce.getelementsbytagname("audio"),
i = [];
if (t && t.length > 0) for (var n = 0,
r = t.length; n < r; n++) i.push(t[n]);
if (e && e.length > 0) for (var s = 0,
o = e.length; s < o; s++) i.push(e[s]);
if (i && i.length > 0) for (var a = 0,
l = i.length; a < l; a++) {
var c = i[a];
if (!c || !c.getattribute) {
q(1);
break
}
if (void 0 === c.player) {
var h = c.getattribute("data-setup");
null !== h && ni(c)
}
} else ii || q(1)
}
};
p() && "complete" === ce.readystate ? ii = !0 : g(re, "load",
function() {
ii = !0
});
var si = function(t) {
var e = ce.createelement("style");
return e.classname = t,
e
},
oi = function(t, e) {
t.stylesheet ? t.stylesheet.csstext = e: t.textcontent = e
},
ai = function(t, e, i) {
e.guid || (e.guid = n());
var n = function() {
return e.apply(t, arguments)
};
return n.guid = i ? i + "_" + e.guid: e.guid,
n
},
li = function(t, e) {
var i = date.now();
return function() {
var n = date.now();
n - i >= e && (t.apply(void 0, arguments), i = n)
}
},
ci = function() {};
ci.prototype.allowedevents_ = {},
ci.prototype.on = function(t, e) {
var i = this.addeventlistener;
this.addeventlistener = function() {},
y(this, t, e),
this.addeventlistener = i
},
ci.prototype.addeventlistener = ci.prototype.on,
ci.prototype.off = function(t, e) {
v(this, t, e)
},
ci.prototype.removeeventlistener = ci.prototype.off,
ci.prototype.one = function(t, e) {
var i = this.addeventlistener;
this.addeventlistener = function() {},
g(this, t, e),
this.addeventlistener = i
},
ci.prototype.trigger = function(t) {
var e = t.type || t;
"string" == typeof t && (t = {
type: e
}),
t = x(t),
this.allowedevents_[e] && this["on" + e] && this["on" + e](t),
w(this, t)
},
ci.prototype.dispatchevent = ci.prototype.trigger;
var hi = function(t) {
return t instanceof ci || !!t.eventbusel_ && ["on", "one", "off", "trigger"].every(function(e) {
return "function" == typeof t[e]
})
},
pi = function(t) {
return "string" == typeof t && /\s/.test(t) || array.isarray(t) && !!t.length
},
ui = function(t) {
if (!t.nodename && !hi(t)) throw new error("invalid target; must be a dom node or evented object.")
},
di = function(t) {
if (!pi(t)) throw new error("invalid event type; must be a non-empty string or array.")
},
fi = function(t) {
if ("function" != typeof t) throw new error("invalid listener; must be a function.")
},
mi = function(t, e) {
var i = e.length < 3 || e[0] === t || e[0] === t.eventbusel_,
n = void 0,
r = void 0,
s = void 0;
return i ? (n = t.eventbusel_, e.length >= 3 && e.shift(), r = e[0], s = e[1]) : (n = e[0], r = e[1], s = e[2]),
ui(n),
di(r),
fi(s),
s = ai(t, s),
{
istargetingself: i,
target: n,
type: r,
listener: s
}
},
vi = function(t, e, i, n) {
ui(t),
t.nodename ? ei[e](t, i, n) : t[e](i, n)
},
gi = {
on: function() {
for (var t = this,
e = arguments.length,
i = array(e), n = 0; n < e; n++) i[n] = arguments[n];
var r = mi(this, i),
s = r.istargetingself,
o = r.target,
a = r.type,
l = r.listener;
if (vi(o, "on", a, l), !s) {
var c = function() {
return t.off(o, a, l)
};
c.guid = l.guid;
var h = function() {
return t.off("dispose", c)
};
h.guid = l.guid,
vi(this, "on", "dispose", c),
vi(o, "on", "dispose", h)
}
},
one: function() {
for (var t = this,
e = arguments.length,
i = array(e), n = 0; n < e; n++) i[n] = arguments[n];
var r = mi(this, i),
s = r.istargetingself,
o = r.target,
a = r.type,
l = r.listener;
if (s) vi(o, "one", a, l);
else {
var c = function e() {
for (var i = arguments.length,
n = array(i), r = 0; r < i; r++) n[r] = arguments[r];
t.off(o, a, e),
l.apply(null, n)
};
c.guid = l.guid,
vi(o, "one", a, c)
}
},
off: function(t, e, i) {
if (!t || pi(t)) v(this.eventbusel_, t, e);
else {
var n = t,
r = e;
ui(n),
di(r),
fi(i),
i = ai(this, i),
this.off("dispose", i),
n.nodename ? (v(n, r, i), v(n, "dispose", i)) : hi(n) && (n.off(r, i), n.off("dispose", i))
}
},
trigger: function(t, e) {
return w(this.eventbusel_, t, e)
}
},
yi = {
state: {},
setstate: function(t) {
var i = this;
"function" == typeof t && (t = t());
var n = void 0;
return e(t,
function(t, e) {
i.state[e] !== t && (n = n || {},
n[e] = {
from: i.state[e],
to: t
}),
i.state[e] = t
}),
n && hi(this) && this.trigger({
changes: n,
type: "statechanged"
}),
n
}
},
bi = function() {
function t(e, i, n) {
if (oe(this, t), !e && this.play ? this.player_ = e = this: this.player_ = e, this.options_ = z({},
this.options_), i = this.options_ = z(this.options_, i), this.id_ = i.id || i.el && i.el.id, !this.id_) {
var r = e && e.id && e.id() || "no_player";
this.id_ = r + "_component_" + n()
}
this.name_ = i.name || null,
i.el ? this.el_ = i.el: !1 !== i.createel && (this.el_ = this.createel()),
u(this, {
eventbuskey: this.el_ ? "el_": null
}),
k(this, this.constructor.defaultstate),
this.children_ = [],
this.childindex_ = {},
this.childnameindex_ = {},
!1 !== i.initchildren && this.initchildren(),
this.ready(n),
!1 !== i.reporttouchactivity && this.enabletouchactivity()
}
return t.prototype.dispose = function() {
if (this.trigger({
type: "dispose",
bubbles: !1
}), this.children_) for (var t = this.children_.length - 1; t >= 0; t--) this.children_[t].dispose && this.children_[t].dispose();
this.children_ = null,
this.childindex_ = null,
this.childnameindex_ = null,
this.el_ && (this.el_.parentnode && this.el_.parentnode.removechild(this.el_), r(this.el_), this.el_ = null)
},
t.prototype.player = function() {
return this.player_
},
t.prototype.options = function(t) {
return ve.warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),
t ? (this.options_ = z(this.options_, t), this.options_) : this.options_
},
t.prototype.el = function() {
return this.el_
},
t.prototype.createel = function(t, e, i) {
return f(t, e, i)
},
t.prototype.localize = function(t, e) {
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t,
n = this.player_.language && this.player_.language(),
r = this.player_.languages && this.player_.languages(),
s = r && r[n],
o = n && n.split("-")[0],
a = r && r[o],
l = i;
return s && s[t] ? l = s[t] : a && a[t] && (l = a[t]),
e && (l = l.replace(/\{(\d+)\}/g,
function(t, i) {
var n = e[i - 1],
r = n;
return void 0 === n && (r = t),
r
})),
l
},
t.prototype.contentel = function() {
return this.contentel_ || this.el_
},
t.prototype.id = function() {
return this.id_
},
t.prototype.name = function() {
return this.name_
},
t.prototype.children = function() {
return this.children_
},
t.prototype.getchildbyid = function(t) {
return this.childindex_[t]
},
t.prototype.getchild = function(t) {
if (t) return t = q(t),
this.childnameindex_[t]
},
t.prototype.addchild = function(e) {
var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.children_.length,
r = void 0,
s = void 0;
if ("string" == typeof e) {
s = q(e);
var o = i.componentclass || s;
i.name = s;
var a = t.getcomponent(o);
if (!a) throw new error("component " + o + " does not exist");
if ("function" != typeof a) return null;
r = new a(this.player_ || this, i)
} else r = e;
if (this.children_.splice(n, 0, r), "function" == typeof r.id && (this.childindex_[r.id()] = r), s = s || r.name && q(r.name()), s && (this.childnameindex_[s] = r), "function" == typeof r.el && r.el()) {
var l = this.contentel().children,
c = l[n] || null;
this.contentel().insertbefore(r.el(), c)
}
return r
},
t.prototype.removechild = function(t) {
if ("string" == typeof t && (t = this.getchild(t)), t && this.children_) {
for (var e = !1,
i = this.children_.length - 1; i >= 0; i--) if (this.children_[i] === t) {
e = !0,
this.children_.splice(i, 1);
break
}
if (e) {
this.childindex_[t.id()] = null,
this.childnameindex_[t.name()] = null;
var n = t.el();
n && n.parentnode === this.contentel() && this.contentel().removechild(t.el())
}
}
},
t.prototype.initchildren = function() {
var e = this,
i = this.options_.children;
if (i) {
var n = this.options_,
r = function(t) {
var i = t.name,
r = t.opts;
if (void 0 !== n[i] && (r = n[i]), !1 !== r) { ! 0 === r && (r = {}),
r.playeroptions = e.options_.playeroptions;
var s = e.addchild(i, r);
s && (e[i] = s)
}
},
s = void 0,
o = t.getcomponent("tech");
s = array.isarray(i) ? i: object.keys(i),
s.concat(object.keys(this.options_).filter(function(t) {
return ! s.some(function(e) {
return "string" == typeof e ? t === e: t === e.name
})
})).map(function(t) {
var n = void 0,
r = void 0;
return "string" == typeof t ? (n = t, r = i[n] || e.options_[n] || {}) : (n = t.name, r = t),
{
name: n,
opts: r
}
}).filter(function(e) {
var i = t.getcomponent(e.opts.componentclass || q(e.name));
return i && !o.istech(i)
}).foreach(r)
}
},
t.prototype.buildcssclass = function() {
return ""
},
t.prototype.ready = function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
t && (this.isready_ ? e ? t.call(this) : this.settimeout(t, 1) : (this.readyqueue_ = this.readyqueue_ || [], this.readyqueue_.push(t)))
},
t.prototype.triggerready = function() {
this.isready_ = !0,
this.settimeout(function() {
var t = this.readyqueue_;
this.readyqueue_ = [],
t && t.length > 0 && t.foreach(function(t) {
t.call(this)
},
this),
this.trigger("ready")
},
1)
},
t.prototype.$ = function(t, e) {
return qe(t, e || this.contentel())
},
t.prototype.$$ = function(t, e) {
return ue(t, e || this.contentel())
},
t.prototype.hasclass = function(t) {
return g(this.el_, t)
},
t.prototype.addclass = function(t) {
y(this.el_, t)
},
t.prototype.removeclass = function(t) {
b(this.el_, t)
},
t.prototype.toggleclass = function(t, e) {
t(this.el_, t, e)
},
t.prototype.show = function() {
this.removeclass("vjs-hidden")
},
t.prototype.hide = function() {
this.addclass("vjs-hidden")
},
t.prototype.lockshowing = function() {
this.addclass("vjs-lock-showing")
},
t.prototype.unlockshowing = function() {
this.removeclass("vjs-lock-showing")
},
t.prototype.getattribute = function(t) {
return c(this.el_, t)
},
t.prototype.setattribute = function(t, e) {
s(this.el_, t, e)
},
t.prototype.removeattribute = function(t) {
x(this.el_, t)
},
t.prototype.width = function(t, e) {
return this.dimension("width", t, e)
},
t.prototype.height = function(t, e) {
return this.dimension("height", t, e)
},
t.prototype.dimensions = function(t, e) {
this.width(t, !0),
this.height(e)
},
t.prototype.dimension = function(t, e, i) {
if (void 0 !== e) return null !== e && e === e || (e = 0),
-1 !== ("" + e).indexof("%") || -1 !== ("" + e).indexof("px") ? this.el_.style[t] = e: this.el_.style[t] = "auto" === e ? "": e + "px",
void(i || this.trigger("componentresize"));
if (!this.el_) return 0;
var n = this.el_.style[t],
r = n.indexof("px");
return - 1 !== r ? parseint(n.slice(0, r), 10) : parseint(this.el_["offset" + q(t)], 10)
},
t.prototype.currentdimension = function(t) {
var e = 0;
if ("width" !== t && "height" !== t) throw new error("currentdimension only accepts width or height value");
if ("function" == typeof re.getcomputedstyle) {
var i = re.getcomputedstyle(this.el_);
e = i.getpropertyvalue(t) || i[t]
}
if (0 === (e = parsefloat(e))) {
var n = "offset" + q(t);
e = this.el_[n]
}
return e
},
t.prototype.currentdimensions = function() {
return {
width: this.currentdimension("width"),
height: this.currentdimension("height")
}
},
t.prototype.currentwidth = function() {
return this.currentdimension("width")
},
t.prototype.currentheight = function() {
return this.currentdimension("height")
},
t.prototype.focus = function() {
this.el_.focus()
},
t.prototype.blur = function() {
this.el_.blur()
},
t.prototype.emittapevents = function() {
var t = 0,
e = null,
i = void 0;
this.on("touchstart",
function(n) {
1 === n.touches.length && (e = {
pagex: n.touches[0].pagex,
pagey: n.touches[0].pagey
},
t = (new date).gettime(), i = !0)
}),
this.on("touchmove",
function(t) {
if (t.touches.length > 1) i = !1;
else if (e) {
var n = t.touches[0].pagex - e.pagex,
r = t.touches[0].pagey - e.pagey,
s = math.sqrt(n * n + r * r);
s > 10 && (i = !1)
}
});
var n = function() {
i = !1
};
this.on("touchleave", n),
this.on("touchcancel", n),
this.on("touchend",
function(n) {
e = null,
!0 === i && (new date).gettime() - t < 200 && (n.preventdefault(), this.trigger("tap"))
})
},
t.prototype.enabletouchactivity = function() {
if (this.player() && this.player().reportuseractivity) {
var t = ai(this.player(), this.player().reportuseractivity),
e = void 0;
this.on("touchstart",
function() {
t(),
this.clearinterval(e),
e = this.setinterval(t, 250)
});
var i = function(i) {
t(),
this.clearinterval(e)
};
this.on("touchmove", t),
this.on("touchend", i),
this.on("touchcancel", i)
}
},
t.prototype.settimeout = function(t, e) {
t = ai(this, t);
var i = re.settimeout(t, e),
n = function() {
this.cleartimeout(i)
};
return n.guid = "vjs-timeout-" + i,
this.on("dispose", n),
i
},
t.prototype.cleartimeout = function(t) {
re.cleartimeout(t);
var e = function() {};
return e.guid = "vjs-timeout-" + t,
this.off("dispose", e),
t
},
t.prototype.setinterval = function(t, e) {
t = ai(this, t);
var i = re.setinterval(t, e),
n = function() {
this.clearinterval(i)
};
return n.guid = "vjs-interval-" + i,
this.on("dispose", n),
i
},
t.prototype.clearinterval = function(t) {
re.clearinterval(t);
var e = function() {};
return e.guid = "vjs-interval-" + t,
this.off("dispose", e),
t
},
t.prototype.requestanimationframe = function(t) {
var e = this;
if (this.supportsraf_) {
t = ai(this, t);
var i = re.requestanimationframe(t),
n = function() {
return e.cancelanimationframe(i)
};
return n.guid = "vjs-raf-" + i,
this.on("dispose", n),
i
}
return this.settimeout(t, 1e3 / 60)
},
t.prototype.cancelanimationframe = function(t) {
if (this.supportsraf_) {
re.cancelanimationframe(t);
var e = function() {};
return e.guid = "vjs-raf-" + t,
this.off("dispose", e),
t
}
return this.cleartimeout(t)
},
t.registercomponent = function(e, i) {
if ("string" != typeof e || !e) throw new error('illegal component name, "' + e + '"; must be a non-empty string.');
var n = t.getcomponent("tech"),
r = n && n.istech(i),
s = t === i || t.prototype.isprototypeof(i.prototype);
if (r || !s) {
var o = void 0;
throw o = r ? "techs must be registered using tech.registertech()": "must be a component subclass",
new error('illegal component, "' + e + '"; ' + o + ".")
}
e = q(e),
t.components_ || (t.components_ = {});
var a = t.getcomponent("player");
if ("player" === e && a && a.players) {
var l = a.players,
c = object.keys(l);
if (l && c.length > 0 && c.map(function(t) {
return l[t]
}).every(boolean)) throw new error("can not register player component after player has been created.")
}
return t.components_[e] = i,
i
},
t.getcomponent = function(e) {
if (e) return e = q(e),
t.components_ && t.components_[e] ? t.components_[e] : void 0
},
t
} ();
bi.prototype.supportsraf_ = "function" == typeof re.requestanimationframe && "function" == typeof re.cancelanimationframe,
bi.registercomponent("component", bi);
for (var ti = {},
wi = [["requestfullscreen", "exitfullscreen", "fullscreenelement", "fullscreenenabled", "fullscreenchange", "fullscreenerror"], ["webkitrequestfullscreen", "webkitexitfullscreen", "webkitfullscreenelement", "webkitfullscreenenabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitrequestfullscreen", "webkitcancelfullscreen", "webkitcurrentfullscreenelement", "webkitcancelfullscreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozrequestfullscreen", "mozcancelfullscreen", "mozfullscreenelement", "mozfullscreenenabled", "mozfullscreenchange", "mozfullscreenerror"], ["msrequestfullscreen", "msexitfullscreen", "msfullscreenelement", "msfullscreenenabled", "msfullscreenchange", "msfullscreenerror"]], _i = wi[0], ci = void 0, si = 0; si < wi.length; si++) if (wi[si][1] in ce) {
ci = wi[si];
break
}
if (ci) for (var xi = 0; xi < ci.length; xi++) ti[_i[xi]] = ci[xi];
rt.prototype.code = 0,
rt.prototype.message = "",
rt.prototype.status = null,
rt.errortypes = ["media_err_custom", "media_err_aborted", "media_err_network", "media_err_decode", "media_err_src_not_supported", "media_err_encrypted"],
rt.defaultmessages = {
1 : "you aborted the media playback",
2 : "a network error caused the media download to fail part-way.",
3 : "the media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
4 : "the media could not be loaded, either because the server or network failed or because the format is not supported.",
5 : "the media is encrypted and we do not have the keys to decrypt it."
};
for (var ki = 0; ki < rt.errortypes.length; ki++) rt[rt.errortypes[ki]] = ki,
rt.prototype[rt.errortypes[ki]] = ki;
var ei = st,
pi = function(t) {
return ["kind", "label", "language", "id", "inbandmetadatatrackdispatchtype", "mode", "src"].reduce(function(e, i, n) {
return t[i] && (e[i] = t[i]),
e
},
{
cues: t.cues && array.prototype.map.call(t.cues,
function(t) {
return {
starttime: t.starttime,
endtime: t.endtime,
text: t.text,
id: t.id
}
})
})
},
mi = function(t) {
var e = t.$$("track"),
i = array.prototype.map.call(e,
function(t) {
return t.track
});
return array.prototype.map.call(e,
function(t) {
var e = pi(t.track);
return t.src && (e.src = t.src),
e
}).concat(array.prototype.filter.call(t.texttracks(),
function(t) {
return - 1 === i.indexof(t)
}).map(pi))
},
ii = function(t, e) {
return t.foreach(function(t) {
var i = e.addremotetexttrack(t).track; ! t.src && t.cues && t.cues.foreach(function(t) {
return i.addcue(t)
})
}),
e.texttracks()
},
ai = {
texttrackstojson: mi,
jsontotexttracks: ii,
tracktojson_: pi
},
ji = "vjs-modal-dialog",
di = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.opened_ = r.hasbeenopened_ = r.hasbeenfilled_ = !1,
r.closeable(!r.options_.uncloseable),
r.content(r.options_.content),
r.contentel_ = f("div", {
classname: ji + "-content"
},
{
role: "document"
}),
r.descel_ = f("p", {
classname: ji + "-description vjs-control-text",
id: r.el().getattribute("aria-describedby")
}),
m(r.descel_, r.description()),
r.el_.appendchild(r.descel_),
r.el_.appendchild(r.contentel_),
r
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: this.buildcssclass(),
tabindex: -1
},
{
"aria-describedby": this.id() + "_description",
"aria-hidden": "true",
"aria-label": this.label(),
role: "dialog"
})
},
e.prototype.buildcssclass = function() {
return ji + " vjs-hidden " + t.prototype.buildcssclass.call(this)
},
e.prototype.handlekeypress = function(t) {
27 === t.which && this.closeable() && this.close()
},
e.prototype.label = function() {
return this.localize(this.options_.label || "modal window")
},
e.prototype.description = function() {
var t = this.options_.description || this.localize("this is a modal window.");
return this.closeable() && (t += " " + this.localize("this modal can be closed by pressing the escape key or activating the close button.")),
t
},
e.prototype.open = function() {
if (!this.opened_) {
var t = this.player();
this.trigger("beforemodalopen"),
this.opened_ = !0,
(this.options_.fillalways || !this.hasbeenopened_ && !this.hasbeenfilled_) && this.fill(),
this.wasplaying_ = !t.paused(),
this.options_.pauseonopen && this.wasplaying_ && t.pause(),
this.closeable() && this.on(this.el_.ownerdocument, "keydown", ai(this, this.handlekeypress)),
t.controls(!1),
this.show(),
this.conditionalfocus_(),
this.el().setattribute("aria-hidden", "false"),
this.trigger("modalopen"),
this.hasbeenopened_ = !0
}
},
e.prototype.opened = function(t) {
return "boolean" == typeof t && this[t ? "open": "close"](),
this.opened_
},
e.prototype.close = function() {
if (this.opened_) {
var t = this.player();
this.trigger("beforemodalclose"),
this.opened_ = !1,
this.wasplaying_ && this.options_.pauseonopen && t.play(),
this.closeable() && this.off(this.el_.ownerdocument, "keydown", ai(this, this.handlekeypress)),
t.controls(!0),
this.hide(),
this.el().setattribute("aria-hidden", "true"),
this.trigger("modalclose"),
this.conditionalblur_(),
this.options_.temporary && this.dispose()
}
},
e.prototype.closeable = function(t) {
if ("boolean" == typeof t) {
var e = this.closeable_ = !!t,
i = this.getchild("closebutton");
if (e && !i) {
var n = this.contentel_;
this.contentel_ = this.el_,
i = this.addchild("closebutton", {
controltext: "close modal dialog"
}),
this.contentel_ = n,
this.on(i, "close", this.close)
} ! e && i && (this.off(i, "close", this.close), this.removechild(i), i.dispose())
}
return this.closeable_
},
e.prototype.fill = function() {
this.fillwith(this.content())
},
e.prototype.fillwith = function(t) {
var e = this.contentel(),
i = e.parentnode,
n = e.nextsibling;
this.trigger("beforemodalfill"),
this.hasbeenfilled_ = !0,
i.removechild(e),
this.empty(),
z(e, t),
this.trigger("modalfill"),
n ? i.insertbefore(e, n) : i.appendchild(e);
var r = this.getchild("closebutton");
r && i.appendchild(r.el_)
},
e.prototype.empty = function() {
this.trigger("beforemodalempty"),
j(this.contentel()),
this.trigger("modalempty")
},
e.prototype.content = function(t) {
return void 0 !== t && (this.content_ = t),
this.content_
},
e.prototype.conditionalfocus_ = function() {
var t = ce.activeelement,
e = this.player_.el_;
this.previouslyactiveel_ = null,
(e.contains(t) || e === t) && (this.previouslyactiveel_ = t, this.focus(), this.on(ce, "keydown", this.handlekeydown))
},
e.prototype.conditionalblur_ = function() {
this.previouslyactiveel_ && (this.previouslyactiveel_.focus(), this.previouslyactiveel_ = null),
this.off(ce, "keydown", this.handlekeydown)
},
e.prototype.handlekeydown = function(t) {
if (9 === t.which) {
for (var e = this.focusableels_(), i = this.el_.queryselector(":focus"), n = void 0, r = 0; r < e.length; r++) if (i === e[r]) {
n = r;
break
}
ce.activeelement === this.el_ && (n = 0),
t.shiftkey && 0 === n ? (e[e.length - 1].focus(), t.preventdefault()) : t.shiftkey || n !== e.length - 1 || (e[0].focus(), t.preventdefault())
}
},
e.prototype.focusableels_ = function() {
var t = this.el_.queryselectorall("*");
return array.prototype.filter.call(t,
function(t) {
return (t instanceof re.htmlanchorelement || t instanceof re.htmlareaelement) && t.hasattribute("href") || (t instanceof re.htmlinputelement || t instanceof re.htmlselectelement || t instanceof re.htmltextareaelement || t instanceof re.htmlbuttonelement) && !t.hasattribute("disabled") || t instanceof re.htmliframeelement || t instanceof re.htmlobjectelement || t instanceof re.htmlembedelement || t.hasattribute("tabindex") && -1 !== t.getattribute("tabindex") || t.hasattribute("contenteditable")
})
},
e
} (bi);
di.prototype.options_ = {
pauseonopen: !0,
temporary: !0
},
bi.registercomponent("modaldialog", di);
var oi = function(t) {
function e() {
var i, n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],
r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
oe(this, e);
var s = ne(this, t.call(this));
if (!r && (r = s, ke)) {
r = ce.createelement("custom");
for (var o in e.prototype)"constructor" !== o && (r[o] = e.prototype[o])
}
r.tracks_ = [],
object.defineproperty(r, "length", {
get: function() {
return this.tracks_.length
}
});
for (var a = 0; a < n.length; a++) r.addtrack(n[a]);
return i = r,
ne(s, i)
}
return ze(e, t),
e.prototype.addtrack = function(t) {
var e = this.tracks_.length;
"" + e in this || object.defineproperty(this, e, {
get: function() {
return this.tracks_[e]
}
}),
-1 === this.tracks_.indexof(t) && (this.tracks_.push(t), this.trigger({
track: t,
type: "addtrack"
}))
},
e.prototype.removetrack = function(t) {
for (var e = void 0,
i = 0,
n = this.length; i < n; i++) if (this[i] === t) {
e = this[i],
e.off && e.off(),
this.tracks_.splice(i, 1);
break
}
e && this.trigger({
track: e,
type: "removetrack"
})
},
e.prototype.gettrackbyid = function(t) {
for (var e = null,
i = 0,
n = this.length; i < n; i++) {
var r = this[i];
if (r.id === t) {
e = r;
break
}
}
return e
},
e
} (ci);
oi.prototype.allowedevents_ = {
change: "change",
addtrack: "addtrack",
removetrack: "removetrack"
};
for (var zi in oi.prototype.allowedevents_) oi.prototype["on" + zi] = null;
var ni = function(t, e) {
for (var i = 0; i < t.length; i++) object.keys(t[i]).length && e.id !== t[i].id && (t[i].enabled = !1)
},
bi = function(t) {
function e() {
var i, n, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
oe(this, e);
for (var s = void 0,
o = r.length - 1; o >= 0; o--) if (r[o].enabled) {
ni(r, r[o]);
break
}
if (ke) {
s = ce.createelement("custom");
for (var a in oi.prototype)"constructor" !== a && (s[a] = oi.prototype[a]);
for (var l in e.prototype)"constructor" !== l && (s[l] = e.prototype[l])
}
return s = i = ne(this, t.call(this, r, s)),
s.changing_ = !1,
n = s,
ne(i, n)
}
return ze(e, t),
e.prototype.addtrack = function(e) {
var i = this;
e.enabled && ni(this, e),
t.prototype.addtrack.call(this, e),
e.addeventlistener && e.addeventlistener("enabledchange",
function() {
i.changing_ || (i.changing_ = !0, ni(i, e), i.changing_ = !1, i.trigger("change"))
})
},
e
} (oi),
li = function(t, e) {
for (var i = 0; i < t.length; i++) object.keys(t[i]).length && e.id !== t[i].id && (t[i].selected = !1)
},
ri = function(t) {
function e() {
var i, n, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
oe(this, e);
for (var s = void 0,
o = r.length - 1; o >= 0; o--) if (r[o].selected) {
li(r, r[o]);
break
}
if (ke) {
s = ce.createelement("custom");
for (var a in oi.prototype)"constructor" !== a && (s[a] = oi.prototype[a]);
for (var l in e.prototype)"constructor" !== l && (s[l] = e.prototype[l])
}
return s = i = ne(this, t.call(this, r, s)),
s.changing_ = !1,
object.defineproperty(s, "selectedindex", {
get: function() {
for (var t = 0; t < this.length; t++) if (this[t].selected) return t;
return - 1
},
set: function() {}
}),
n = s,
ne(i, n)
}
return ze(e, t),
e.prototype.addtrack = function(e) {
var i = this;
e.selected && li(this, e),
t.prototype.addtrack.call(this, e),
e.addeventlistener && e.addeventlistener("selectedchange",
function() {
i.changing_ || (i.changing_ = !0, li(i, e), i.changing_ = !1, i.trigger("change"))
})
},
e
} (oi),
hi = function(t) {
function e() {
var i, n, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
oe(this, e);
var s = void 0;
if (ke) {
s = ce.createelement("custom");
for (var o in oi.prototype)"constructor" !== o && (s[o] = oi.prototype[o]);
for (var a in e.prototype)"constructor" !== a && (s[a] = e.prototype[a])
}
return s = i = ne(this, t.call(this, r, s)),
n = s,
ne(i, n)
}
return ze(e, t),
e.prototype.addtrack = function(e) {
t.prototype.addtrack.call(this, e),
e.addeventlistener("modechange", ai(this,
function() {
this.trigger("change")
})),
-1 === ["metadata", "chapters"].indexof(e.kind) && e.addeventlistener("modechange", ai(this,
function() {
this.trigger("selectedlanguagechange")
}))
},
e
} (oi),
fi = function() {
function t() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
oe(this, t);
var i = this;
if (ke) {
i = ce.createelement("custom");
for (var n in t.prototype)"constructor" !== n && (i[n] = t.prototype[n])
}
i.trackelements_ = [],
object.defineproperty(i, "length", {
get: function() {
return this.trackelements_.length
}
});
for (var r = 0,
s = e.length; r < s; r++) i.addtrackelement_(e[r]);
if (ke) return i
}
return t.prototype.addtrackelement_ = function(t) {
var e = this.trackelements_.length;
"" + e in this || object.defineproperty(this, e, {
get: function() {
return this.trackelements_[e]
}
}),
-1 === this.trackelements_.indexof(t) && this.trackelements_.push(t)
},
t.prototype.gettrackelementbytrack_ = function(t) {
for (var e = void 0,
i = 0,
n = this.trackelements_.length; i < n; i++) if (t === this.trackelements_[i].track) {
e = this.trackelements_[i];
break
}
return e
},
t.prototype.removetrackelement_ = function(t) {
for (var e = 0,
i = this.trackelements_.length; e < i; e++) if (t === this.trackelements_[e]) {
this.trackelements_.splice(e, 1);
break
}
},
t
} (),
xi = function() {
function t(e) {
oe(this, t);
var i = this;
if (ke) {
i = ce.createelement("custom");
for (var n in t.prototype)"constructor" !== n && (i[n] = t.prototype[n])
}
if (t.prototype.setcues_.call(i, e), object.defineproperty(i, "length", {
get: function() {
return this.length_
}
}), ke) return i
}
return t.prototype.setcues_ = function(t) {
var e = this.length || 0,
i = 0,
n = t.length;
this.cues_ = t,
this.length_ = t.length;
var r = function(t) {
"" + t in this || object.defineproperty(this, "" + t, {
get: function() {
return this.cues_[t]
}
})
};
if (e < n) for (i = e; i < n; i++) r.call(this, i)
},
t.prototype.getcuebyid = function(t) {
for (var e = null,
i = 0,
n = this.length; i < n; i++) {
var r = this[i];
if (r.id === t) {
e = r;
break
}
}
return e
},
t
} (),
yi = {
alternative: "alternative",
captions: "captions",
main: "main",
sign: "sign",
subtitles: "subtitles",
commentary: "commentary"
},
vi = {
alternative: "alternative",
descriptions: "descriptions",
main: "main",
"main-desc": "main-desc",
translation: "translation",
commentary: "commentary"
},
wi = {
subtitles: "subtitles",
captions: "captions",
descriptions: "descriptions",
chapters: "chapters",
metadata: "metadata"
},
gi = {
disabled: "disabled",
hidden: "hidden",
showing: "showing"
},
qi = function(t) {
function e() {
var i, n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
oe(this, e);
var r = ne(this, t.call(this)),
s = r;
if (ke) {
s = ce.createelement("custom");
for (var o in e.prototype)"constructor" !== o && (s[o] = e.prototype[o])
}
var a = {
id: n.id || "vjs_track_" + n(),
kind: n.kind || "",
label: n.label || "",
language: n.language || ""
};
for (var l in a) !
function(t) {
object.defineproperty(s, t, {
get: function() {
return a[t]
},
set: function() {}
})
} (l);
return i = s,
ne(r, i)
}
return ze(e, t),
e
} (ci),
ui = function(t) {
var e = ["protocol", "hostname", "port", "pathname", "search", "hash", "host"],
i = ce.createelement("a");
i.href = t;
var n = "" === i.host && "file:" !== i.protocol,
r = void 0;
n && (r = ce.createelement("div"), r.innerhtml = '', i = r.firstchild, r.setattribute("style", "display:none; position:absolute;"), ce.body.appendchild(r));
for (var s = {},
o = 0; o < e.length; o++) s[e[o]] = i[e[o]];
return "http:" === s.protocol && (s.host = s.host.replace(/:80$/, "")),
"https:" === s.protocol && (s.host = s.host.replace(/:443$/, "")),
n && ce.body.removechild(r),
s
},
ki = function(t) {
if (!t.match(/^https?:\/\//)) {
var e = ce.createelement("div");
e.innerhtml = 'x',
t = e.firstchild.href
}
return t
},
qi = function(t) {
if ("string" == typeof t) {
var e = /^(\/?)([\s\s]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,
i = e.exec(t);
if (i) return i.pop().tolowercase()
}
return ""
},
$i = function(t) {
var e = re.location,
i = ui(t);
return (":" === i.protocol ? e.protocol: i.protocol) + i.host !== e.protocol + e.host
},
zi = (object.freeze || object)({
parseurl: ui,
getabsoluteurl: ki,
getfileextension: qi,
iscrossorigin: $i
}),
ji = ot,
tn = object.prototype.tostring,
en = t(function(t, e) {
function i(t) {
return t.replace(/^\s*|\s*$/g, "")
}
e = t.exports = i,
e.left = function(t) {
return t.replace(/^\s*/, "")
},
e.right = function(t) {
return t.replace(/\s*$/, "")
}
}),
nn = at,
rn = object.prototype.tostring,
sn = object.prototype.hasownproperty,
on = function(t) {
return "[object array]" === object.prototype.tostring.call(t)
},
an = function(t) {
if (!t) return {};
var e = {};
return nn(en(t).split("\n"),
function(t) {
var i = t.indexof(":"),
n = en(t.slice(0, i)).tolowercase(),
r = en(t.slice(i + 1));
void 0 === e[n] ? e[n] = r: on(e[n]) ? e[n].push(r) : e[n] = [e[n], r]
}),
e
},
ln = pt,
cn = object.prototype.hasownproperty,
hn = ft;
ft.xmlhttprequest = re.xmlhttprequest || gt,
ft.xdomainrequest = "withcredentials" in new ft.xmlhttprequest ? ft.xmlhttprequest: re.xdomainrequest,
function(t, e) {
for (var i = 0; i < t.length; i++) !
function(t) {
ft["delete" === t ? "del": t] = function(e, i, n) {
return i = dt(e, i, n),
i.method = t.touppercase(),
mt(i)
}
} (t[i])
} (["get", "put", "post", "patch", "head", "delete"]);
var pn = function(t, e) {
var i = new re.webvtt.parser(re, re.vttjs, re.webvtt.stringdecoder()),
n = [];
i.oncue = function(t) {
e.addcue(t)
},
i.onparsingerror = function(t) {
n.push(t)
},
i.onflush = function() {
e.trigger({
type: "loadeddata",
target: e
})
},
i.parse(t),
n.length > 0 && (re.console && re.console.groupcollapsed && re.console.groupcollapsed("text track parsing errors for " + e.src), n.foreach(function(t) {
return ve.error(t)
}), re.console && re.console.groupend && re.console.groupend()),
i.flush()
},
un = function(t, e) {
var i = {
uri: t
},
n = $i(t);
n && (i.cors = n),
hn(i, ai(this,
function(t, i, n) {
if (t) return ve.error(t, i);
if (e.loaded_ = !0, "function" != typeof re.webvtt) {
if (e.tech_) {
var r = function() {
return pn(n, e)
};
e.tech_.on("vttjsloaded", r),
e.tech_.on("vttjserror",
function() {
ve.error("vttjs failed to load, stopping trying to process " + e.src),
e.tech_.off("vttjsloaded", r)
})
}
} else pn(n, e)
}))
},
dn = function(t) {
function e() {
var i, n, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
if (oe(this, e), !r.tech) throw new error("a tech was not provided.");
var s = z(r, {
kind: wi[r.kind] || "subtitles",
language: r.language || r.srclang || ""
}),
o = gi[s.mode] || "disabled",
a = s.
default;
"metadata" !== s.kind && "chapters" !== s.kind || (o = "hidden");
var l = i = ne(this, t.call(this, s));
if (l.tech_ = s.tech, ke) for (var c in e.prototype)"constructor" !== c && (l[c] = e.prototype[c]);
l.cues_ = [],
l.activecues_ = [];
var h = new xi(l.cues_),
p = new xi(l.activecues_),
u = !1,
d = ai(l,
function() {
this.activecues,
u && (this.trigger("cuechange"), u = !1)
});
return "disabled" !== o && l.tech_.ready(function() {
l.tech_.on("timeupdate", d)
},
!0),
object.defineproperty(l, "default", {
get: function() {
return a
},
set: function() {}
}),
object.defineproperty(l, "mode", {
get: function() {
return o
},
set: function(t) {
var e = this;
gi[t] && (o = t, "showing" === o && this.tech_.ready(function() {
e.tech_.on("timeupdate", d)
},
!0), this.trigger("modechange"))
}
}),
object.defineproperty(l, "cues", {
get: function() {
return this.loaded_ ? h: null
},
set: function() {}
}),
object.defineproperty(l, "activecues", {
get: function() {
if (!this.loaded_) return null;
if (0 === this.cues.length) return p;
for (var t = this.tech_.currenttime(), e = [], i = 0, n = this.cues.length; i < n; i++) {
var r = this.cues[i];
r.starttime <= t && r.endtime >= t ? e.push(r) : r.starttime === r.endtime && r.starttime <= t && r.starttime + .5 >= t && e.push(r)
}
if (u = !1, e.length !== this.activecues_.length) u = !0;
else for (var s = 0; s < e.length; s++) - 1 === this.activecues_.indexof(e[s]) && (u = !0);
return this.activecues_ = e,
p.setcues_(this.activecues_),
p
},
set: function() {}
}),
s.src ? (l.src = s.src, un(s.src, l)) : l.loaded_ = !0,
n = l,
ne(i, n)
}
return ze(e, t),
e.prototype.addcue = function(t) {
var e = t;
if (re.vttjs && !(t instanceof re.vttjs.vttcue)) {
e = new re.vttjs.vttcue(t.starttime, t.endtime, t.text);
for (var i in t) i in e || (e[i] = t[i]);
e.id = t.id,
e.originalcue_ = t
}
for (var n = this.tech_.texttracks(), r = 0; r < n.length; r++) n[r] !== this && n[r].removecue(e);
this.cues_.push(e),
this.cues.setcues_(this.cues_)
},
e.prototype.removecue = function(t) {
for (var e = this.cues_.length; e--;) {
var i = this.cues_[e];
if (i === t || i.originalcue_ && i.originalcue_ === t) {
this.cues_.splice(e, 1),
this.cues.setcues_(this.cues_);
break
}
}
},
e
} (qi);
dn.prototype.allowedevents_ = {
cuechange: "cuechange"
};
var fn = function(t) {
function e() {
var i, n, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
oe(this, e);
var s = z(r, {
kind: vi[r.kind] || ""
}),
o = i = ne(this, t.call(this, s)),
a = !1;
if (ke) for (var l in e.prototype)"constructor" !== l && (o[l] = e.prototype[l]);
return object.defineproperty(o, "enabled", {
get: function() {
return a
},
set: function(t) {
"boolean" == typeof t && t !== a && (a = t, this.trigger("enabledchange"))
}
}),
s.enabled && (o.enabled = s.enabled),
o.loaded_ = !0,
n = o,
ne(i, n)
}
return ze(e, t),
e
} (qi),
mn = function(t) {
function e() {
var i, n, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
oe(this, e);
var s = z(r, {
kind: yi[r.kind] || ""
}),
o = i = ne(this, t.call(this, s)),
a = !1;
if (ke) for (var l in e.prototype)"constructor" !== l && (o[l] = e.prototype[l]);
return object.defineproperty(o, "selected", {
get: function() {
return a
},
set: function(t) {
"boolean" == typeof t && t !== a && (a = t, this.trigger("selectedchange"))
}
}),
s.selected && (o.selected = s.selected),
n = o,
ne(i, n)
}
return ze(e, t),
e
} (qi),
vn = 0,
gn = 2,
yn = function(t) {
function e() {
var i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
oe(this, e);
var n = ne(this, t.call(this)),
r = void 0,
s = n;
if (ke) {
s = ce.createelement("custom");
for (var o in e.prototype)"constructor" !== o && (s[o] = e.prototype[o])
}
var a = new dn(i);
if (s.kind = a.kind, s.src = a.src, s.srclang = a.language, s.label = a.label, s.
default = a.
default, object.defineproperty(s, "readystate", {
get: function() {
return r
}
}), object.defineproperty(s, "track", {
get: function() {
return a
}
}), r = vn, a.addeventlistener("loadeddata",
function() {
r = gn,
s.trigger({
type: "load",
target: s
})
}), ke) {
var l;
return l = s,
ne(n, l)
}
return n
}
return ze(e, t),
e
} (ci);
yn.prototype.allowedevents_ = {
load: "load"
},
yn.none = vn,
yn.loading = 1,
yn.loaded = gn,
yn.error = 3;
var bn = {
audio: {
listclass: bi,
trackclass: fn,
capitalname: "audio"
},
video: {
listclass: ri,
trackclass: mn,
capitalname: "video"
},
text: {
listclass: hi,
trackclass: dn,
capitalname: "text"
}
};
object.keys(bn).foreach(function(t) {
bn[t].gettername = t + "tracks",
bn[t].privatename = t + "tracks_"
});
var tn = {
remotetext: {
listclass: hi,
trackclass: dn,
capitalname: "remotetext",
gettername: "remotetexttracks",
privatename: "remotetexttracks_"
},
remotetextel: {
listclass: fi,
trackclass: yn,
capitalname: "remotetexttrackels",
gettername: "remotetexttrackels",
privatename: "remotetexttrackels_"
}
},
wn = z(bn, tn);
tn.names = object.keys(tn),
bn.names = object.keys(bn),
wn.names = [].concat(tn.names).concat(bn.names);
var _n = object.create ||
function() {
function t() {}
return function(e) {
if (1 !== arguments.length) throw new error("object.create shim only accepts one parameter.");
return t.prototype = e,
new t
}
} ();
yt.prototype = _n(error.prototype),
yt.prototype.constructor = yt,
yt.errors = {
badsignature: {
code: 0,
message: "malformed webvtt signature."
},
badtimestamp: {
code: 1,
message: "malformed time stamp."
}
},
tt.prototype = {
set: function(t, e) {
this.get(t) || "" === e || (this.values[t] = e)
},
get: function(t, e, i) {
return i ? this.has(t) ? this.values[t] : e[i] : this.has(t) ? this.values[t] : e
},
has: function(t) {
return t in this.values
},
alt: function(t, e, i) {
for (var n = 0; n < i.length; ++n) if (e === i[n]) {
this.set(t, e);
break
}
},
integer: function(t, e) { / ^-?\d + $ / .test(e) && this.set(t, parseint(e, 10))
},
percent: function(t, e) {
return !! (e.match(/^([\d]{1,3})(\.[\d]*)?%$/) && (e = parsefloat(e)) >= 0 && e <= 100) && (this.set(t, e), !0)
}
};
var cn = {
"&": "&",
"<": "<",
">": ">",
"": "",
"": "",
" ": " "
},
sn = {
c: "span",
i: "i",
b: "b",
u: "u",
ruby: "ruby",
rt: "rt",
v: "span",
lang: "span"
},
xn = {
v: "title",
lang: "lang"
},
kn = {
rt: "ruby"
},
en = [[1470, 1470], [1472, 1472], [1475, 1475], [1478, 1478], [1488, 1514], [1520, 1524], [1544, 1544], [1547, 1547], [1549, 1549], [1563, 1563], [1566, 1610], [1645, 1647], [1649, 1749], [1765, 1766], [1774, 1775], [1786, 1805], [1807, 1808], [1810, 1839], [1869, 1957], [1969, 1969], [1984, 2026], [2036, 2037], [2042, 2042], [2048, 2069], [2074, 2074], [2084, 2084], [2088, 2088], [2096, 2110], [2112, 2136], [2142, 2142], [2208, 2208], [2210, 2220], [8207, 8207], [64285, 64285], [64287, 64296], [64298, 64310], [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324], [64326, 64449], [64467, 64829], [64848, 64911], [64914, 64967], [65008, 65020], [65136, 65140], [65142, 65276], [67584, 67589], [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644], [67647, 67669], [67671, 67679], [67840, 67867], [67872, 67897], [67903, 67903], [67968, 68023], [68030, 68031], [68096, 68096], [68112, 68115], [68117, 68119], [68121, 68147], [68160, 68167], [68176, 68184], [68192, 68223], [68352, 68405], [68416, 68437], [68440, 68466], [68472, 68479], [68608, 68680], [126464, 126467], [126469, 126495], [126497, 126498], [126500, 126500], [126503, 126503], [126505, 126514], [126516, 126519], [126521, 126521], [126523, 126523], [126530, 126530], [126535, 126535], [126537, 126537], [126539, 126539], [126541, 126543], [126545, 126546], [126548, 126548], [126551, 126551], [126553, 126553], [126555, 126555], [126557, 126557], [126559, 126559], [126561, 126562], [126564, 126564], [126567, 126570], [126572, 126578], [126580, 126583], [126585, 126588], [126590, 126590], [126592, 126601], [126603, 126619], [126625, 126627], [126629, 126633], [126635, 126651], [1114109, 1114109]];
et.prototype.applystyles = function(t, e) {
e = e || this.div;
for (var i in t) t.hasownproperty(i) && (e.style[i] = t[i])
},
et.prototype.formatstyle = function(t, e) {
return 0 === t ? 0 : t + e
},
pt.prototype = _n(et.prototype),
pt.prototype.constructor = pt,
mt.prototype.move = function(t, e) {
switch (e = void 0 !== e ? e: this.lineheight, t) {
case "+x":
this.left += e,
this.right += e;
break;
case "-x":
this.left -= e,
this.right -= e;
break;
case "+y":
this.top += e,
this.bottom += e;
break;
case "-y":
this.top -= e,
this.bottom -= e
}
},
mt.prototype.overlaps = function(t) {
return this.left < t.right && this.right > t.left && this.top < t.bottom && this.bottom > t.top
},
mt.prototype.overlapsany = function(t) {
for (var e = 0; e < t.length; e++) if (this.overlaps(t[e])) return ! 0;
return ! 1
},
mt.prototype.within = function(t) {
return this.top >= t.top && this.bottom <= t.bottom && this.left >= t.left && this.right <= t.right
},
mt.prototype.overlapsoppositeaxis = function(t, e) {
switch (e) {
case "+x":
return this.left < t.left;
case "-x":
return this.right > t.right;
case "+y":
return this.top < t.top;
case "-y":
return this.bottom > t.bottom
}
},
mt.prototype.intersectpercentage = function(t) {
return math.max(0, math.min(this.right, t.right) - math.max(this.left, t.left)) * math.max(0, math.min(this.bottom, t.bottom) - math.max(this.top, t.top)) / (this.height * this.width)
},
mt.prototype.tocsscompatvalues = function(t) {
return {
top: this.top - t.top,
bottom: t.bottom - this.bottom,
left: this.left - t.left,
right: t.right - this.right,
height: this.height,
width: this.width
}
},
mt.getsimpleboxposition = function(t) {
var e = t.div ? t.div.offsetheight: t.tagname ? t.offsetheight: 0,
i = t.div ? t.div.offsetwidth: t.tagname ? t.offsetwidth: 0,
n = t.div ? t.div.offsettop: t.tagname ? t.offsettop: 0;
return t = t.div ? t.div.getboundingclientrect() : t.tagname ? t.getboundingclientrect() : t,
{
left: t.left,
right: t.right,
top: t.top || n,
height: t.height || e,
bottom: t.bottom || n + (t.height || e),
width: t.width || i
}
},
at.stringdecoder = function() {
return {
decode: function(t) {
if (!t) return "";
if ("string" != typeof t) throw new error("error - expected string data.");
return decodeuricomponent(encodeuricomponent(t))
}
}
},
at.convertcuetodomtree = function(t, e) {
return t && e ? ct(t, e) : null
},
at.processcues = function(t, e, i) {
if (!t || !e || !i) return null;
for (; i.firstchild;) i.removechild(i.firstchild);
var n = t.document.createelement("div");
if (n.style.position = "absolute", n.style.left = "0", n.style.right = "0", n.style.top = "0", n.style.bottom = "0", n.style.margin = "1.5%", i.appendchild(n),
function(t) {
for (var e = 0; e < t.length; e++) if (t[e].hasbeenreset || !t[e].displaystate) return ! 0;
return ! 1
} (e)) {
var r = [],
s = mt.getsimpleboxposition(n),
o = math.round(.05 * s.height * 100) / 100,
a = {
font: o + "px sans-serif"
}; !
function() {
for (var i, o, l = 0; l < e.length; l++) o = e[l],
i = new pt(t, o, a),
n.appendchild(i.div),
it(t, i, s, r),
o.displaystate = i.div,
r.push(mt.getsimpleboxposition(i))
} ()
} else for (var l = 0; l < e.length; l++) n.appendchild(e[l].displaystate)
},
at.parser = function(t, e, i) {
i || (i = e, e = {}),
e || (e = {}),
this.window = t,
this.vttjs = e,
this.state = "initial",
this.buffer = "",
this.decoder = i || new textdecoder("utf8"),
this.regionlist = []
},
at.parser.prototype = {
reportorthrowerror: function(t) {
if (! (t instanceof yt)) throw t;
this.onparsingerror && this.onparsingerror(t)
},
parse: function(t) {
function e() {
for (var t = r.buffer,
e = 0; e < t.length && "\r" !== t[e] && "\n" !== t[e];)++e;
var i = t.substr(0, e);
return "\r" === t[e] && ++e,
"\n" === t[e] && ++e,
r.buffer = t.substr(e),
i
}
function i(t) {
var e = new tt;
if (wt(t,
function(t, i) {
switch (t) {
case "id":
e.set(t, i);
break;
case "width":
e.percent(t, i);
break;
case "lines":
e.integer(t, i);
break;
case "regionanchor":
case "viewportanchor":
var n = i.split(",");
if (2 !== n.length) break;
var r = new tt;
if (r.percent("x", n[0]), r.percent("y", n[1]), !r.has("x") || !r.has("y")) break;
e.set(t + "x", r.get("x")),
e.set(t + "y", r.get("y"));
break;
case "scroll":
e.alt(t, i, ["up"])
}
},
/=/, /\s/), e.has("id")) {
var i = new(r.vttjs.vttregion || r.window.vttregion);
i.width = e.get("width", 100),
i.lines = e.get("lines", 3),
i.regionanchorx = e.get("regionanchorx", 0),
i.regionanchory = e.get("regionanchory", 100),
i.viewportanchorx = e.get("viewportanchorx", 0),
i.viewportanchory = e.get("viewportanchory", 100),
i.scroll = e.get("scroll", ""),
r.onregion && r.onregion(i),
r.regionlist.push({
id: e.get("id"),
region: i
})
}
}
function n(t) {
var e = new tt;
wt(t,
function(t, i) {
switch (t) {
case "mpegt":
e.integer(t + "s", i);
break;
case "loca":
e.set(t + "l", bt(i))
}
},
/[^\d]:/, /,/),
r.ontimestampmap && r.ontimestampmap({
mpegts: e.get("mpegts"),
local: e.get("local")
})
}
var r = this;
t && (r.buffer += r.decoder.decode(t, {
stream: !0
}));
try {
var s;
if ("initial" === r.state) {
if (!/\r\n|\n/.test(r.buffer)) return this;
s = e();
var o = s.match(/^webvtt([ \t].*)?$/);
if (!o || !o[0]) throw new yt(yt.errors.badsignature);
r.state = "header"
}
for (var a = !1; r.buffer;) {
if (!/\r\n|\n/.test(r.buffer)) return this;
switch (a ? a = !1 : s = e(), r.state) {
case "header":
/:/.test(s) ?
function(t) {
t.match(/x-timestamp-map/) ? wt(t,
function(t, e) {
switch (t) {
case "x-timestamp-map":
n(e)
}
},
/=/) : wt(t,
function(t, e) {
switch (t) {
case "region":
i(e)
}
},
/:/)
} (s) : s || (r.state = "id");
continue;
case "note":
s || (r.state = "id");
continue;
case "id":
if (/^note($|[ \t])/.test(s)) {
r.state = "note";
break
}
if (!s) continue;
if (r.cue = new(r.vttjs.vttcue || r.window.vttcue)(0, 0, ""), r.state = "cue", -1 === s.indexof("--\x3e")) {
r.cue.id = s;
continue
}
case "cue":
try {
_t(s, r.cue, r.regionlist)
} catch(t) {
r.reportorthrowerror(t),
r.cue = null,
r.state = "badcue";
continue
}
r.state = "cuetext";
continue;
case "cuetext":
var l = -1 !== s.indexof("--\x3e");
if (!s || l && (a = !0)) {
r.oncue && r.oncue(r.cue),
r.cue = null,
r.state = "id";
continue
}
r.cue.text && (r.cue.text += "\n"),
r.cue.text += s;
continue;
case "badcue":
s || (r.state = "id");
continue
}
}
} catch(t) {
r.reportorthrowerror(t),
"cuetext" === r.state && r.cue && r.oncue && r.oncue(r.cue),
r.cue = null,
r.state = "initial" === r.state ? "badwebvtt": "badcue"
}
return this
},
flush: function() {
var t = this;
try {
if (t.buffer += t.decoder.decode(), (t.cue || "header" === t.state) && (t.buffer += "\n\n", t.parse()), "initial" === t.state) throw new yt(yt.errors.badsignature)
} catch(e) {
t.reportorthrowerror(e)
}
return t.onflush && t.onflush(),
this
}
};
var pn = at,
mn = "auto",
in = {
"": !0,
lr: !0,
rl: !0
},
an = {
start: !0,
middle: !0,
end: !0,
left: !0,
right: !0
};
zt.prototype.getcueashtml = function() {
return webvtt.convertcuetodomtree(window, this.text)
};
var jn = zt,
dn = {
"": !0,
up: !0
},
on = lt,
zn = t(function(t) {
var e = t.exports = {
webvtt: pn,
vttcue: jn,
vttregion: on
};
re.vttjs = e,
re.webvtt = e.webvtt;
var i = e.vttcue,
n = e.vttregion,
r = re.vttcue,
s = re.vttregion;
e.shim = function() {
re.vttcue = i,
re.vttregion = n
},
e.restore = function() {
re.vttcue = r,
re.vttregion = s
},
re.vttcue || e.shim()
}),
nn = function(t) {
function e() {
var i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : function() {};
oe(this, e),
i.reporttouchactivity = !1;
var r = ne(this, t.call(this, null, i, n));
return r.hasstarted_ = !1,
r.on("playing",
function() {
this.hasstarted_ = !0
}),
r.on("loadstart",
function() {
this.hasstarted_ = !1
}),
wn.names.foreach(function(t) {
var e = wn[t];
i && i[e.gettername] && (r[e.privatename] = i[e.gettername])
}),
r.featuresprogressevents || r.manualprogresson(),
r.featurestimeupdateevents || r.manualtimeupdateson(),
["text", "audio", "video"].foreach(function(t) { ! 1 === i["native" + t + "tracks"] && (r["featuresnative" + t + "tracks"] = !1)
}),
!1 === i.nativecaptions || !1 === i.nativetexttracks ? r.featuresnativetexttracks = !1 : !0 !== i.nativecaptions && !0 !== i.nativetexttracks || (r.featuresnativetexttracks = !0),
r.featuresnativetexttracks || r.emulatetexttracks(),
r.autoremotetexttracks_ = new wn.text.listclass,
r.inittracklisteners(),
i.nativecontrolsfortouch || r.emittapevents(),
r.constructor && (r.name_ = r.constructor.name || "unknown tech"),
r
}
return ze(e, t),
e.prototype.manualprogresson = function() {
this.on("durationchange", this.ondurationchange),
this.manualprogress = !0,
this.one("ready", this.trackprogress)
},
e.prototype.manualprogressoff = function() {
this.manualprogress = !1,
this.stoptrackingprogress(),
this.off("durationchange", this.ondurationchange)
},
e.prototype.trackprogress = function(t) {
this.stoptrackingprogress(),
this.progressinterval = this.setinterval(ai(this,
function() {
var t = this.bufferedpercent();
this.bufferedpercent_ !== t && this.trigger("progress"),
this.bufferedpercent_ = t,
1 === t && this.stoptrackingprogress()
}), 500)
},
e.prototype.ondurationchange = function(t) {
this.duration_ = this.duration()
},
e.prototype.buffered = function() {
return it(0, 0)
},
e.prototype.bufferedpercent = function() {
return nt(this.buffered(), this.duration_)
},
e.prototype.stoptrackingprogress = function() {
this.clearinterval(this.progressinterval)
},
e.prototype.manualtimeupdateson = function() {
this.manualtimeupdates = !0,
this.on("play", this.trackcurrenttime),
this.on("pause", this.stoptrackingcurrenttime)
},
e.prototype.manualtimeupdatesoff = function() {
this.manualtimeupdates = !1,
this.stoptrackingcurrenttime(),
this.off("play", this.trackcurrenttime),
this.off("pause", this.stoptrackingcurrenttime)
},
e.prototype.trackcurrenttime = function() {
this.currenttimeinterval && this.stoptrackingcurrenttime(),
this.currenttimeinterval = this.setinterval(function() {
this.trigger({
type: "timeupdate",
target: this,
manuallytriggered: !0
})
},
250)
},
e.prototype.stoptrackingcurrenttime = function() {
this.clearinterval(this.currenttimeinterval),
this.trigger({
type: "timeupdate",
target: this,
manuallytriggered: !0
})
},
e.prototype.dispose = function() {
this.cleartracks(bn.names),
this.manualprogress && this.manualprogressoff(),
this.manualtimeupdates && this.manualtimeupdatesoff(),
t.prototype.dispose.call(this)
},
e.prototype.cleartracks = function(t) {
var e = this;
t = [].concat(t),
t.foreach(function(t) {
for (var i = e[t + "tracks"]() || [], n = i.length; n--;) {
var r = i[n];
"text" === t && e.removeremotetexttrack(r),
i.removetrack(r)
}
})
},
e.prototype.cleanupautotexttracks = function() {
for (var t = this.autoremotetexttracks_ || [], e = t.length; e--;) {
var i = t[e];
this.removeremotetexttrack(i)
}
},
e.prototype.reset = function() {},
e.prototype.error = function(t) {
return void 0 !== t && (this.error_ = new rt(t), this.trigger("error")),
this.error_
},
e.prototype.played = function() {
return this.hasstarted_ ? it(0, 0) : it()
},
e.prototype.setcurrenttime = function() {
this.manualtimeupdates && this.trigger({
type: "timeupdate",
target: this,
manuallytriggered: !0
})
},
e.prototype.inittracklisteners = function() {
var t = this;
bn.names.foreach(function(e) {
var i = bn[e],
n = function() {
t.trigger(e + "trackchange")
},
r = t[i.gettername]();
r.addeventlistener("removetrack", n),
r.addeventlistener("addtrack", n),
t.on("dispose",
function() {
r.removeeventlistener("removetrack", n),
r.removeeventlistener("addtrack", n)
})
})
},
e.prototype.addwebvttscript_ = function() {
var t = this;
if (!re.webvtt) if (ce.body.contains(this.el())) {
if (!this.options_["vtt.js"] && s(zn) && object.keys(zn).length > 0) return void this.trigger("vttjsloaded");
var e = ce.createelement("script");
e.src = this.options_["vtt.js"] || "https://vjs.zencdn.net/vttjs/0.12.4/vtt.min.js",
e.onload = function() {
t.trigger("vttjsloaded")
},
e.onerror = function() {
t.trigger("vttjserror")
},
this.on("dispose",
function() {
e.onload = null,
e.onerror = null
}),
re.webvtt = !0,
this.el().parentnode.appendchild(e)
} else this.ready(this.addwebvttscript_)
},
e.prototype.emulatetexttracks = function() {
var t = this,
e = this.texttracks(),
i = this.remotetexttracks(),
n = function(t) {
return e.addtrack(t.track)
},
r = function(t) {
return e.removetrack(t.track)
};
i.on("addtrack", n),
i.on("removetrack", r),
this.addwebvttscript_();
var s = function() {
return t.trigger("texttrackchange")
},
o = function() {
s();
for (var t = 0; t < e.length; t++) {
var i = e[t];
i.removeeventlistener("cuechange", s),
"showing" === i.mode && i.addeventlistener("cuechange", s)
}
};
o(),
e.addeventlistener("change", o),
e.addeventlistener("addtrack", o),
e.addeventlistener("removetrack", o),
this.on("dispose",
function() {
i.off("addtrack", n),
i.off("removetrack", r),
e.removeeventlistener("change", o),
e.removeeventlistener("addtrack", o),
e.removeeventlistener("removetrack", o);
for (var t = 0; t < e.length; t++) e[t].removeeventlistener("cuechange", s)
})
},
e.prototype.addtexttrack = function(t, e, i) {
if (!t) throw new error("texttrack kind is required but was not provided");
return rt(this, t, e, i)
},
e.prototype.createremotetexttrack = function(t) {
var e = z(t, {
tech: this
});
return new tn.remotetextel.trackclass(e)
},
e.prototype.addremotetexttrack = function() {
var t = this,
e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
i = arguments[1],
n = this.createremotetexttrack(e);
return ! 0 !== i && !1 !== i && (ve.warn('calling addremotetexttrack without explicitly setting the "manualcleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'), i = !0),
this.remotetexttrackels().addtrackelement_(n),
this.remotetexttracks().addtrack(n.track),
!0 !== i && this.ready(function() {
return t.autoremotetexttracks_.addtrack(n.track)
}),
n
},
e.prototype.removeremotetexttrack = function(t) {
var e = this.remotetexttrackels().gettrackelementbytrack_(t);
this.remotetexttrackels().removetrackelement_(e),
this.remotetexttracks().removetrack(t),
this.autoremotetexttracks_.removetrack(t)
},
e.prototype.getvideoplaybackquality = function() {
return {}
},
e.prototype.setposter = function() {},
e.prototype.playsinline = function() {},
e.prototype.setplaysinline = function() {},
e.prototype.canplaytype = function() {
return ""
},
e.canplaytype = function() {
return ""
},
e.canplaysource = function(t, i) {
return e.canplaytype(t.type)
},
e.istech = function(t) {
return t.prototype instanceof e || t instanceof e || t === e
},
e.registertech = function(t, i) {
if (e.techs_ || (e.techs_ = {}), !e.istech(i)) throw new error("tech " + t + " must be a tech");
if (!e.canplaytype) throw new error("techs must have a static canplaytype method on them");
if (!e.canplaysource) throw new error("techs must have a static canplaysource method on them");
return t = q(t),
e.techs_[t] = i,
"tech" !== t && e.defaulttechorder_.push(t),
i
},
e.gettech = function(t) {
if (t) return t = q(t),
e.techs_ && e.techs_[t] ? e.techs_[t] : re && re.videojs && re.videojs[t] ? (ve.warn("the " + t + " tech was added to the videojs object when it should be registered using videojs.registertech(name, tech)"), re.videojs[t]) : void 0
},
e
} (bi);
wn.names.foreach(function(t) {
var e = wn[t];
nn.prototype[e.gettername] = function() {
return this[e.privatename] = this[e.privatename] || new e.listclass,
this[e.privatename]
}
}),
nn.prototype.featuresvolumecontrol = !0,
nn.prototype.featuresfullscreenresize = !1,
nn.prototype.featuresplaybackrate = !1,
nn.prototype.featuresprogressevents = !1,
nn.prototype.featurestimeupdateevents = !1,
nn.prototype.featuresnativetexttracks = !1,
nn.withsourcehandlers = function(t) {
t.registersourcehandler = function(e, i) {
var n = t.sourcehandlers;
n || (n = t.sourcehandlers = []),
void 0 === i && (i = n.length),
n.splice(i, 0, e)
},
t.canplaytype = function(e) {
for (var i = t.sourcehandlers || [], n = void 0, r = 0; r < i.length; r++) if (n = i[r].canplaytype(e)) return n;
return ""
},
t.selectsourcehandler = function(e, i) {
for (var n = t.sourcehandlers || [], r = 0; r < n.length; r++) if (n[r].canhandlesource(e, i)) return n[r];
return null
},
t.canplaysource = function(e, i) {
var n = t.selectsourcehandler(e, i);
return n ? n.canhandlesource(e, i) : ""
},
["seekable", "duration"].foreach(function(t) {
var e = this[t];
"function" == typeof e && (this[t] = function() {
return this.sourcehandler_ && this.sourcehandler_[t] ? this.sourcehandler_[t].apply(this.sourcehandler_, arguments) : e.apply(this, arguments)
})
},
t.prototype),
t.prototype.setsource = function(e) {
var i = t.selectsourcehandler(e, this.options_);
i || (t.nativesourcehandler ? i = t.nativesourcehandler: ve.error("no source hander found for the current source.")),
this.disposesourcehandler(),
this.off("dispose", this.disposesourcehandler),
i !== t.nativesourcehandler && (this.currentsource_ = e),
this.sourcehandler_ = i.handlesource(e, this, this.options_),
this.on("dispose", this.disposesourcehandler)
},
t.prototype.disposesourcehandler = function() {
this.currentsource_ && (this.cleartracks(["audio", "video"]), this.currentsource_ = null),
this.cleanupautotexttracks(),
this.sourcehandler_ && (this.sourcehandler_.dispose && this.sourcehandler_.dispose(), this.sourcehandler_ = null)
}
},
bi.registercomponent("tech", nn),
nn.registertech("tech", nn),
nn.defaulttechorder_ = [];
var bn = {},
ln = {
buffered: 1,
currenttime: 1,
duration: 1,
seekable: 1,
played: 1
},
rn = {
setcurrenttime: 1
},
hn = function t(e) {
if (array.isarray(e)) {
var i = [];
e.foreach(function(e) {
e = t(e),
array.isarray(e) ? i = i.concat(e) : r(e) && i.push(e)
}),
e = i
} else e = "string" == typeof e && e.trim() ? [{
src: e
}] : r(e) && "string" == typeof e.src && e.src && e.src.trim() ? [e] : [];
return e
},
fn = function(t) {
function e(i, n, r) {
oe(this, e);
var s = z({
createel: !1
},
n),
o = ne(this, t.call(this, i, s, r));
if (n.playeroptions.sources && 0 !== n.playeroptions.sources.length) i.src(n.playeroptions.sources);
else for (var a = 0,
l = n.playeroptions.techorder; a < l.length; a++) {
var c = q(l[a]),
h = nn.gettech(c);
if (c || (h = bi.getcomponent(c)), h && h.issupported()) {
i.loadtech_(c);
break
}
}
return o
}
return ze(e, t),
e
} (bi);
bi.registercomponent("medialoader", fn);
var xn = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.emittapevents(),
r.enable(),
r
}
return ze(e, t),
e.prototype.createel = function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "div",
i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
i = n({
innerhtml: '',
classname: this.buildcssclass(),
tabindex: 0
},
i),
"button" === e && ve.error("creating a clickablecomponent with an html element of " + e + " is not supported; use a button instead."),
r = n({
role: "button",
"aria-live": "polite"
},
r),
this.tabindex_ = i.tabindex;
var s = t.prototype.createel.call(this, e, i, r);
return this.createcontroltextel(s),
s
},
e.prototype.createcontroltextel = function(t) {
return this.controltextel_ = f("span", {
classname: "vjs-control-text"
}),
t && t.appendchild(this.controltextel_),
this.controltext(this.controltext_, t),
this.controltextel_
},
e.prototype.controltext = function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.el();
if (!t) return this.controltext_ || "need text";
var i = this.localize(t);
this.controltext_ = t,
m(this.controltextel_, i),
this.noniconcontrol || e.setattribute("title", i)
},
e.prototype.buildcssclass = function() {
return "vjs-control vjs-button " + t.prototype.buildcssclass.call(this)
},
e.prototype.enable = function() {
this.enabled_ || (this.enabled_ = !0, this.removeclass("vjs-disabled"), this.el_.setattribute("aria-disabled", "false"), void 0 !== this.tabindex_ && this.el_.setattribute("tabindex", this.tabindex_), this.on(["tap", "click"], this.handleclick), this.on("focus", this.handlefocus), this.on("blur", this.handleblur))
},
e.prototype.disable = function() {
this.enabled_ = !1,
this.addclass("vjs-disabled"),
this.el_.setattribute("aria-disabled", "true"),
void 0 !== this.tabindex_ && this.el_.removeattribute("tabindex"),
this.off(["tap", "click"], this.handleclick),
this.off("focus", this.handlefocus),
this.off("blur", this.handleblur)
},
e.prototype.handleclick = function(t) {},
e.prototype.handlefocus = function(t) {
y(ce, "keydown", ai(this, this.handlekeypress))
},
e.prototype.handlekeypress = function(e) {
32 === e.which || 13 === e.which ? (e.preventdefault(), this.trigger("click")) : t.prototype.handlekeypress && t.prototype.handlekeypress.call(this, e)
},
e.prototype.handleblur = function(t) {
v(ce, "keydown", ai(this, this.handlekeypress))
},
e
} (bi);
bi.registercomponent("clickablecomponent", xn);
var yn = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.update(),
i.on("posterchange", ai(r, r.update)),
r
}
return ze(e, t),
e.prototype.dispose = function() {
this.player().off("posterchange", this.update),
t.prototype.dispose.call(this)
},
e.prototype.createel = function() {
var t = f("div", {
classname: "vjs-poster",
tabindex: -1
});
return ae || (this.fallbackimg_ = f("img"), t.appendchild(this.fallbackimg_)),
t
},
e.prototype.update = function(t) {
var e = this.player().poster();
this.setsrc(e),
e ? this.show() : this.hide()
},
e.prototype.setsrc = function(t) {
if (this.fallbackimg_) this.fallbackimg_.src = t;
else {
var e = "";
t && (e = 'url("' + t + '")'),
this.el_.style.backgroundimage = e
}
},
e.prototype.handleclick = function(t) {
this.player_.controls() && (this.player_.paused() ? this.player_.play() : this.player_.pause())
},
e
} (xn);
bi.registercomponent("posterimage", yn);
var vn = {
monospace: "monospace",
sansserif: "sans-serif",
serif: "serif",
monospacesansserif: '"andale mono", "lucida console", monospace',
monospaceserif: '"courier new", monospace',
proportionalsansserif: "sans-serif",
proportionalserif: "serif",
casual: '"comic sans ms", impact, fantasy',
script: '"monotype corsiva", cursive',
smallcaps: '"andale mono", "lucida console", monospace, sans-serif'
},
wn = function(t) {
function e(i, n, r) {
oe(this, e);
var s = ne(this, t.call(this, i, n, r));
return i.on("loadstart", ai(s, s.toggledisplay)),
i.on("texttrackchange", ai(s, s.updatedisplay)),
i.on("loadstart", ai(s, s.preselecttrack)),
i.ready(ai(s,
function() {
if (i.tech_ && i.tech_.featuresnativetexttracks) return void this.hide();
i.on("fullscreenchange", ai(this, this.updatedisplay));
for (var t = this.options_.playeroptions.tracks || [], e = 0; e < t.length; e++) this.player_.addremotetexttrack(t[e], !0);
this.preselecttrack()
})),
s
}
return ze(e, t),
e.prototype.preselecttrack = function() {
for (var t = {
captions: 1,
subtitles: 1
},
e = this.player_.texttracks(), i = this.player_.cache_.selectedlanguage, n = void 0, r = void 0, s = void 0, o = 0; o < e.length; o++) {
var a = e[o];
i && i.enabled && i.language === a.language ? a.kind === i.kind ? s = a: s || (s = a) : i && !i.enabled ? (s = null, n = null, r = null) : a.
default && ("descriptions" !== a.kind || n ? a.kind in t && !r && (r = a) : n = a)
}
s ? s.mode = "showing": r ? r.mode = "showing": n && (n.mode = "showing")
},
e.prototype.toggledisplay = function() {
this.player_.tech_ && this.player_.tech_.featuresnativetexttracks ? this.hide() : this.show()
},
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-text-track-display"
},
{
"aria-live": "off",
"aria-atomic": "true"
})
},
e.prototype.cleardisplay = function() {
"function" == typeof re.webvtt && re.webvtt.processcues(re, [], this.el_)
},
e.prototype.updatedisplay = function() {
var t = this.player_.texttracks();
this.cleardisplay();
for (var e = null,
i = null,
n = t.length; n--;) {
var r = t[n];
"showing" === r.mode && ("descriptions" === r.kind ? e = r: i = r)
}
i ? ("off" !== this.getattribute("aria-live") && this.setattribute("aria-live", "off"), this.updatefortrack(i)) : e && ("assertive" !== this.getattribute("aria-live") && this.setattribute("aria-live", "assertive"), this.updatefortrack(e))
},
e.prototype.updatefortrack = function(t) {
if ("function" == typeof re.webvtt && t.activecues) {
for (var e = this.player_.texttracksettings.getvalues(), i = [], n = 0; n < t.activecues.length; n++) i.push(t.activecues[n]);
re.webvtt.processcues(re, i, this.el_);
for (var r = i.length; r--;) {
var s = i[r];
if (s) {
var o = s.displaystate;
if (e.color && (o.firstchild.style.color = e.color), e.textopacity && ut(o.firstchild, "color", qt(e.color || "#fff", e.textopacity)), e.backgroundcolor && (o.firstchild.style.backgroundcolor = e.backgroundcolor), e.backgroundopacity && ut(o.firstchild, "backgroundcolor", qt(e.backgroundcolor || "#000", e.backgroundopacity)), e.windowcolor && (e.windowopacity ? ut(o, "backgroundcolor", qt(e.windowcolor, e.windowopacity)) : o.style.backgroundcolor = e.windowcolor), e.edgestyle && ("dropshadow" === e.edgestyle ? o.firstchild.style.textshadow = "2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px #222": "raised" === e.edgestyle ? o.firstchild.style.textshadow = "1px 1px #222, 2px 2px #222, 3px 3px #222": "depressed" === e.edgestyle ? o.firstchild.style.textshadow = "1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px #222": "uniform" === e.edgestyle && (o.firstchild.style.textshadow = "0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px #222")), e.fontpercent && 1 !== e.fontpercent) {
var a = re.parsefloat(o.style.fontsize);
o.style.fontsize = a * e.fontpercent + "px",
o.style.height = "auto",
o.style.top = "auto",
o.style.bottom = "2px"
}
e.fontfamily && "default" !== e.fontfamily && ("small-caps" === e.fontfamily ? o.firstchild.style.fontvariant = "small-caps": o.firstchild.style.fontfamily = vn[e.fontfamily])
}
}
}
},
e
} (bi);
bi.registercomponent("texttrackdisplay", wn);
var gn = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-loading-spinner",
dir: "ltr"
})
},
e
} (bi);
bi.registercomponent("loadingspinner", gn);
var qn = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.createel = function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
t = "button",
e = n({
innerhtml: '',
classname: this.buildcssclass()
},
e),
i = n({
type: "button",
"aria-live": "polite"
},
i);
var r = bi.prototype.createel.call(this, t, e, i);
return this.createcontroltextel(r),
r
},
e.prototype.addchild = function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
i = this.constructor.name;
return ve.warn("adding an actionable (user controllable) child to a button (" + i + ") is not supported; use a clickablecomponent instead."),
bi.prototype.addchild.call(this, t, e)
},
e.prototype.enable = function() {
t.prototype.enable.call(this),
this.el_.removeattribute("disabled")
},
e.prototype.disable = function() {
t.prototype.disable.call(this),
this.el_.setattribute("disabled", "disabled")
},
e.prototype.handlekeypress = function(e) {
32 !== e.which && 13 !== e.which && t.prototype.handlekeypress.call(this, e)
},
e
} (xn);
bi.registercomponent("button", qn);
var un = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.mouseused_ = !1,
r.on("mousedown", r.handlemousedown),
r
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-big-play-button"
},
e.prototype.handleclick = function(t) {
var e = this.player_.play();
if (! (this.mouseused_ && t.clientx && t.clienty)) {
var i = this.player_.getchild("controlbar"),
n = i && i.getchild("playtoggle");
if (!n) return void this.player_.focus();
var r = function() {
return n.focus()
};
if (e && e.then) {
var s = function() {};
e.then(r, s)
} else this.settimeout(r, 1)
}
},
e.prototype.handlekeypress = function(e) {
this.mouseused_ = !1,
t.prototype.handlekeypress.call(this, e)
},
e.prototype.handlemousedown = function(t) {
this.mouseused_ = !0
},
e
} (qn);
un.prototype.controltext_ = "play video",
bi.registercomponent("bigplaybutton", un);
var kn = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.controltext(n && n.controltext || r.localize("close")),
r
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-close-button " + t.prototype.buildcssclass.call(this)
},
e.prototype.handleclick = function(t) {
this.trigger({
type: "close",
bubbles: !1
})
},
e
} (qn);
bi.registercomponent("closebutton", kn);
var qn = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.on(i, "play", r.handleplay),
r.on(i, "pause", r.handlepause),
r.on(i, "ended", r.handleended),
r
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-play-control " + t.prototype.buildcssclass.call(this)
},
e.prototype.handleclick = function(t) {
this.player_.paused() ? this.player_.play() : this.player_.pause()
},
e.prototype.handleplay = function(t) {
this.removeclass("vjs-ended"),
this.removeclass("vjs-paused"),
this.addclass("vjs-playing"),
this.controltext("pause")
},
e.prototype.handlepause = function(t) {
this.removeclass("vjs-playing"),
this.addclass("vjs-paused"),
this.controltext("play")
},
e.prototype.handleended = function(t) {
this.removeclass("vjs-playing"),
this.addclass("vjs-ended"),
this.controltext("replay")
},
e
} (qn);
qn.prototype.controltext_ = "play",
bi.registercomponent("playtoggle", qn);
var $n = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.throttledupdatecontent = li(ai(r, r.updatecontent), 25),
r.on(i, "timeupdate", r.throttledupdatecontent),
r
}
return ze(e, t),
e.prototype.createel = function() {
var e = t.prototype.createel.call(this, "div", {
classname: "vjs-current-time vjs-time-control vjs-control"
});
return this.contentel_ = f("div", {
classname: "vjs-current-time-display"
},
{
"aria-live": "off"
},
f("span", {
classname: "vjs-control-text",
textcontent: this.localize("current time")
})),
this.updatetextnode_(),
e.appendchild(this.contentel_),
e
},
e.prototype.updatetextnode_ = function() {
this.textnode_ && this.contentel_.removechild(this.textnode_),
this.textnode_ = ce.createtextnode(" " + (this.formattedtime_ || "0:00")),
this.contentel_.appendchild(this.textnode_)
},
e.prototype.updatecontent = function(t) {
var e = this.player_.scrubbing() ? this.player_.getcache().currenttime: this.player_.currenttime(),
i = kt(e, this.player_.duration());
i !== this.formattedtime_ && (this.formattedtime_ = i, this.requestanimationframe(this.updatetextnode_))
},
e
} (bi);
bi.registercomponent("currenttimedisplay", $n);
var zn = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.throttledupdatecontent = li(ai(r, r.updatecontent), 25),
r.on(i, ["durationchange", "loadedmetadata", "timeupdate"], r.throttledupdatecontent),
r
}
return ze(e, t),
e.prototype.createel = function() {
var e = t.prototype.createel.call(this, "div", {
classname: "vjs-duration vjs-time-control vjs-control"
});
return this.contentel_ = f("div", {
classname: "vjs-duration-display"
},
{
"aria-live": "off"
},
f("span", {
classname: "vjs-control-text",
textcontent: this.localize("duration time")
})),
this.updatetextnode_(),
e.appendchild(this.contentel_),
e
},
e.prototype.updatetextnode_ = function() {
this.textnode_ && this.contentel_.removechild(this.textnode_),
this.textnode_ = ce.createtextnode(" " + (this.formattedtime_ || "0:00")),
this.contentel_.appendchild(this.textnode_)
},
e.prototype.updatecontent = function(t) {
var e = this.player_.duration();
e && this.duration_ !== e && (this.duration_ = e, this.formattedtime_ = kt(e), this.requestanimationframe(this.updatetextnode_))
},
e
} (bi);
bi.registercomponent("durationdisplay", zn);
var jn = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-time-control vjs-time-divider",
innerhtml: "/
"
})
},
e
} (bi);
bi.registercomponent("timedivider", jn);
var tr = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.throttledupdatecontent = li(ai(r, r.updatecontent), 25),
r.on(i, ["timeupdate", "durationchange"], r.throttledupdatecontent),
r
}
return ze(e, t),
e.prototype.createel = function() {
var e = t.prototype.createel.call(this, "div", {
classname: "vjs-remaining-time vjs-time-control vjs-control"
});
return this.contentel_ = f("div", {
classname: "vjs-remaining-time-display"
},
{
"aria-live": "off"
},
f("span", {
classname: "vjs-control-text",
textcontent: this.localize("remaining time")
})),
this.updatetextnode_(),
e.appendchild(this.contentel_),
e
},
e.prototype.updatetextnode_ = function() {
this.textnode_ && this.contentel_.removechild(this.textnode_),
this.textnode_ = ce.createtextnode(" -" + (this.formattedtime_ || "0:00")),
this.contentel_.appendchild(this.textnode_)
},
e.prototype.updatecontent = function(t) {
if (this.player_.duration()) {
var e = kt(this.player_.remainingtime());
e !== this.formattedtime_ && (this.formattedtime_ = e, this.requestanimationframe(this.updatetextnode_))
}
},
e
} (bi);
bi.registercomponent("remainingtimedisplay", tr);
var er = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.updateshowing(),
r.on(r.player(), "durationchange", r.updateshowing),
r
}
return ze(e, t),
e.prototype.createel = function() {
var e = t.prototype.createel.call(this, "div", {
classname: "vjs-live-control vjs-control"
});
return this.contentel_ = f("div", {
classname: "vjs-live-display",
innerhtml: '' + this.localize("stream type") + "" + this.localize("live")
},
{
"aria-live": "off"
}),
e.appendchild(this.contentel_),
e
},
e.prototype.updateshowing = function(t) {
this.player().duration() === 1 / 0 ? this.show() : this.hide()
},
e
} (bi);
bi.registercomponent("livedisplay", er);
var ir = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.bar = r.getchild(r.options_.barname),
r.vertical( !! r.options_.vertical),
r.on("mousedown", r.handlemousedown),
r.on("touchstart", r.handlemousedown),
r.on("focus", r.handlefocus),
r.on("blur", r.handleblur),
r.on("click", r.handleclick),
r.on(i, "controlsvisible", r.update),
r.playerevent && r.on(i, r.playerevent, r.update),
r
}
return ze(e, t),
e.prototype.createel = function(e) {
var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
return i.classname = i.classname + " vjs-slider",
i = n({
tabindex: 0
},
i),
r = n({
role: "slider",
"aria-valuenow": 0,
"aria-valuemin": 0,
"aria-valuemax": 100,
tabindex: 0
},
r),
t.prototype.createel.call(this, e, i, r)
},
e.prototype.handlemousedown = function(t) {
var e = this.bar.el_.ownerdocument;
t.preventdefault(),
k(),
this.addclass("vjs-sliding"),
this.trigger("slideractive"),
this.on(e, "mousemove", this.handlemousemove),
this.on(e, "mouseup", this.handlemouseup),
this.on(e, "touchmove", this.handlemousemove),
this.on(e, "touchend", this.handlemouseup),
this.handlemousemove(t)
},
e.prototype.handlemousemove = function(t) {},
e.prototype.handlemouseup = function() {
var t = this.bar.el_.ownerdocument;
e(),
this.removeclass("vjs-sliding"),
this.trigger("sliderinactive"),
this.off(t, "mousemove", this.handlemousemove),
this.off(t, "mouseup", this.handlemouseup),
this.off(t, "touchmove", this.handlemousemove),
this.off(t, "touchend", this.handlemouseup),
this.update()
},
e.prototype.update = function() {
if (this.el_) {
var t = this.getpercent(),
e = this.bar;
if (e) { ("number" != typeof t || t !== t || t < 0 || t === 1 / 0) && (t = 0);
var i = (100 * t).tofixed(2) + "%",
n = e.el().style;
return this.vertical() ? n.height = i: n.width = i,
t
}
}
},
e.prototype.calculatedistance = function(t) {
var e = i(this.el_, t);
return this.vertical() ? e.y: e.x
},
e.prototype.handlefocus = function() {
this.on(this.bar.el_.ownerdocument, "keydown", this.handlekeypress)
},
e.prototype.handlekeypress = function(t) {
37 === t.which || 40 === t.which ? (t.preventdefault(), this.stepback()) : 38 !== t.which && 39 !== t.which || (t.preventdefault(), this.stepforward())
},
e.prototype.handleblur = function() {
this.off(this.bar.el_.ownerdocument, "keydown", this.handlekeypress)
},
e.prototype.handleclick = function(t) {
t.stopimmediatepropagation(),
t.preventdefault()
},
e.prototype.vertical = function(t) {
if (void 0 === t) return this.vertical_ || !1;
this.vertical_ = !!t,
this.vertical_ ? this.addclass("vjs-slider-vertical") : this.addclass("vjs-slider-horizontal")
},
e
} (bi);
bi.registercomponent("slider", ir);
var nr = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.partels_ = [],
r.on(i, "progress", r.update),
r
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-load-progress",
innerhtml: '' + this.localize("loaded") + ": 0%"
})
},
e.prototype.update = function(t) {
var e = this.player_.buffered(),
i = this.player_.duration(),
n = this.player_.bufferedend(),
r = this.partels_,
s = function(t, e) {
var i = t / e || 0;
return 100 * (i >= 1 ? 1 : i) + "%"
};
this.el_.style.width = s(n, i);
for (var o = 0; o < e.length; o++) {
var a = e.start(o),
l = e.end(o),
c = r[o];
c || (c = this.el_.appendchild(f()), r[o] = c),
c.style.left = s(a, n),
c.style.width = s(l - a, n)
}
for (var h = r.length; h > e.length; h--) this.el_.removechild(r[h - 1]);
r.length = e.length
},
e
} (bi);
bi.registercomponent("loadprogressbar", nr);
var rr = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-time-tooltip"
})
},
e.prototype.update = function(t, e, i) {
var n = p(this.el_),
r = p(this.player_.el()),
s = t.width * e;
if (r && n) {
var o = t.left - r.left + s,
a = t.width - s + (r.right - t.right),
l = n.width / 2;
o < l ? l += l - o: a < l && (l = a),
l < 0 ? l = 0 : l > n.width && (l = n.width),
this.el_.style.right = "-" + l + "px",
m(this.el_, i)
}
},
e
} (bi);
bi.registercomponent("timetooltip", rr);
var sr = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-play-progress vjs-slider-bar",
innerhtml: '' + this.localize("progress") + ": 0%"
})
},
e.prototype.update = function(t, e) {
var i = this;
this.rafid_ && this.cancelanimationframe(this.rafid_),
this.rafid_ = this.requestanimationframe(function() {
var n = i.player_.scrubbing() ? i.player_.getcache().currenttime: i.player_.currenttime(),
r = kt(n, i.player_.duration()),
s = i.getchild("timetooltip");
s && s.update(t, e, r)
})
},
e
} (bi);
sr.prototype.options_ = {
children: []
},
ee && !(ee > 8) || ve || ye || sr.prototype.options_.children.push("timetooltip"),
bi.registercomponent("playprogressbar", sr);
var or = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.update = li(ai(r, r.update), 25),
r
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-mouse-display"
})
},
e.prototype.update = function(t, e) {
var i = this;
this.rafid_ && this.cancelanimationframe(this.rafid_),
this.rafid_ = this.requestanimationframe(function() {
var n = i.player_.duration(),
r = kt(e * n, n);
i.el_.style.left = t.width * e + "px",
i.getchild("timetooltip").update(t, e, r)
})
},
e
} (bi);
or.prototype.options_ = {
children: ["timetooltip"]
},
bi.registercomponent("mousetimedisplay", or);
var ar = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.update = li(ai(r, r.update), 50),
r.on(i, ["timeupdate", "ended"], r.update),
r
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-progress-holder"
},
{
"aria-label": this.localize("progress bar")
})
},
e.prototype.update = function() {
var e = t.prototype.update.call(this),
i = this.player_.duration(),
n = this.player_.scrubbing() ? this.player_.getcache().currenttime: this.player_.currenttime();
return this.el_.setattribute("aria-valuenow", (100 * e).tofixed(2)),
this.el_.setattribute("aria-valuetext", this.localize("progress bar timing: currenttime={1} duration={2}", [kt(n, i), kt(i, i)], "{1} of {2}")),
this.bar.update(p(this.el_), e),
e
},
e.prototype.getpercent = function() {
var t = this.player_.scrubbing() ? this.player_.getcache().currenttime: this.player_.currenttime(),
e = t / this.player_.duration();
return e >= 1 ? 1 : e
},
e.prototype.handlemousedown = function(e) {
this.player_.scrubbing(!0),
this.videowasplaying = !this.player_.paused(),
this.player_.pause(),
t.prototype.handlemousedown.call(this, e)
},
e.prototype.handlemousemove = function(t) {
var e = this.calculatedistance(t) * this.player_.duration();
e === this.player_.duration() && (e -= .1),
this.player_.currenttime(e)
},
e.prototype.handlemouseup = function(e) {
t.prototype.handlemouseup.call(this, e),
this.player_.scrubbing(!1),
this.videowasplaying && this.player_.play()
},
e.prototype.stepforward = function() {
this.player_.currenttime(this.player_.currenttime() + 5)
},
e.prototype.stepback = function() {
this.player_.currenttime(this.player_.currenttime() - 5)
},
e.prototype.handleaction = function(t) {
this.player_.paused() ? this.player_.play() : this.player_.pause()
},
e.prototype.handlekeypress = function(e) {
32 === e.which || 13 === e.which ? (e.preventdefault(), this.handleaction(e)) : t.prototype.handlekeypress && t.prototype.handlekeypress.call(this, e)
},
e
} (ir);
ar.prototype.options_ = {
children: ["loadprogressbar", "playprogressbar"],
barname: "playprogressbar"
},
ee && !(ee > 8) || ve || ye || ar.prototype.options_.children.splice(1, 0, "mousetimedisplay"),
ar.prototype.playerevent = "timeupdate",
bi.registercomponent("seekbar", ar);
var lr = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.handlemousemove = li(ai(r, r.handlemousemove), 25),
r.on(r.el_, "mousemove", r.handlemousemove),
r.throttledhandlemouseseek = li(ai(r, r.handlemouseseek), 25),
r.on(["mousedown", "touchstart"], r.handlemousedown),
r
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-progress-control vjs-control"
})
},
e.prototype.handlemousemove = function(t) {
var e = this.getchild("seekbar"),
i = e.getchild("mousetimedisplay"),
n = e.el(),
r = p(n),
s = i(n, t).x;
s > 1 ? s = 1 : s < 0 && (s = 0),
i && i.update(r, s)
},
e.prototype.handlemouseseek = function(t) {
this.getchild("seekbar").handlemousemove(t)
},
e.prototype.handlemousedown = function(t) {
var e = this.el_.ownerdocument;
this.on(e, "mousemove", this.throttledhandlemouseseek),
this.on(e, "touchmove", this.throttledhandlemouseseek),
this.on(e, "mouseup", this.handlemouseup),
this.on(e, "touchend", this.handlemouseup)
},
e.prototype.handlemouseup = function(t) {
var e = this.el_.ownerdocument;
this.off(e, "mousemove", this.throttledhandlemouseseek),
this.off(e, "touchmove", this.throttledhandlemouseseek),
this.off(e, "mouseup", this.handlemouseup),
this.off(e, "touchend", this.handlemouseup)
},
e
} (bi);
lr.prototype.options_ = {
children: ["seekbar"]
},
bi.registercomponent("progresscontrol", lr);
var cr = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.on(i, "fullscreenchange", r.handlefullscreenchange),
r
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-fullscreen-control " + t.prototype.buildcssclass.call(this)
},
e.prototype.handlefullscreenchange = function(t) {
this.player_.isfullscreen() ? this.controltext("non-fullscreen") : this.controltext("fullscreen")
},
e.prototype.handleclick = function(t) {
this.player_.isfullscreen() ? this.player_.exitfullscreen() : this.player_.requestfullscreen()
},
e
} (qn);
cr.prototype.controltext_ = "fullscreen",
bi.registercomponent("fullscreentoggle", cr);
var hr = function(t, e) {
e.tech_ && !e.tech_.featuresvolumecontrol && t.addclass("vjs-hidden"),
t.on(e, "loadstart",
function() {
e.tech_.featuresvolumecontrol ? t.removeclass("vjs-hidden") : t.addclass("vjs-hidden")
})
},
pr = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-volume-level",
innerhtml: ''
})
},
e
} (bi);
bi.registercomponent("volumelevel", pr);
var ur = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.on("slideractive", r.updatelastvolume_),
r.on(i, "volumechange", r.updateariaattributes),
i.ready(function() {
return r.updateariaattributes()
}),
r
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-volume-bar vjs-slider-bar"
},
{
"aria-label": this.localize("volume level"),
"aria-live": "polite"
})
},
e.prototype.handlemousemove = function(t) {
this.checkmuted(),
this.player_.volume(this.calculatedistance(t))
},
e.prototype.checkmuted = function() {
this.player_.muted() && this.player_.muted(!1)
},
e.prototype.getpercent = function() {
return this.player_.muted() ? 0 : this.player_.volume()
},
e.prototype.stepforward = function() {
this.checkmuted(),
this.player_.volume(this.player_.volume() + .1)
},
e.prototype.stepback = function() {
this.checkmuted(),
this.player_.volume(this.player_.volume() - .1)
},
e.prototype.updateariaattributes = function(t) {
var e = this.player_.muted() ? 0 : this.volumeaspercentage_();
this.el_.setattribute("aria-valuenow", e),
this.el_.setattribute("aria-valuetext", e + "%")
},
e.prototype.volumeaspercentage_ = function() {
return math.round(100 * this.player_.volume())
},
e.prototype.updatelastvolume_ = function() {
var t = this,
e = this.player_.volume();
this.one("sliderinactive",
function() {
0 === t.player_.volume() && t.player_.lastvolume_(e)
})
},
e
} (ir);
ur.prototype.options_ = {
children: ["volumelevel"],
barname: "volumelevel"
},
ur.prototype.playerevent = "volumechange",
bi.registercomponent("volumebar", ur);
var dr = function(t) {
function e(i) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
oe(this, e),
n.vertical = n.vertical || !1,
(void 0 === n.volumebar || s(n.volumebar)) && (n.volumebar = n.volumebar || {},
n.volumebar.vertical = n.vertical);
var r = ne(this, t.call(this, i, n));
return hr(r, i),
r.throttledhandlemousemove = li(ai(r, r.handlemousemove), 25),
r.on("mousedown", r.handlemousedown),
r.on("touchstart", r.handlemousedown),
r.on(r.volumebar, ["focus", "slideractive"],
function() {
r.volumebar.addclass("vjs-slider-active"),
r.addclass("vjs-slider-active"),
r.trigger("slideractive")
}),
r.on(r.volumebar, ["blur", "sliderinactive"],
function() {
r.volumebar.removeclass("vjs-slider-active"),
r.removeclass("vjs-slider-active"),
r.trigger("sliderinactive")
}),
r
}
return ze(e, t),
e.prototype.createel = function() {
var e = "vjs-volume-horizontal";
return this.options_.vertical && (e = "vjs-volume-vertical"),
t.prototype.createel.call(this, "div", {
classname: "vjs-volume-control vjs-control " + e
})
},
e.prototype.handlemousedown = function(t) {
var e = this.el_.ownerdocument;
this.on(e, "mousemove", this.throttledhandlemousemove),
this.on(e, "touchmove", this.throttledhandlemousemove),
this.on(e, "mouseup", this.handlemouseup),
this.on(e, "touchend", this.handlemouseup)
},
e.prototype.handlemouseup = function(t) {
var e = this.el_.ownerdocument;
this.off(e, "mousemove", this.throttledhandlemousemove),
this.off(e, "touchmove", this.throttledhandlemousemove),
this.off(e, "mouseup", this.handlemouseup),
this.off(e, "touchend", this.handlemouseup)
},
e.prototype.handlemousemove = function(t) {
this.volumebar.handlemousemove(t)
},
e
} (bi);
dr.prototype.options_ = {
children: ["volumebar"]
},
bi.registercomponent("volumecontrol", dr);
var fr = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return hr(r, i),
r.on(i, ["loadstart", "volumechange"], r.update),
r
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-mute-control " + t.prototype.buildcssclass.call(this)
},
e.prototype.handleclick = function(t) {
var e = this.player_.volume(),
i = this.player_.lastvolume_();
if (0 === e) {
var n = i < .1 ? .1 : i;
this.player_.volume(n),
this.player_.muted(!1)
} else this.player_.muted(!this.player_.muted())
},
e.prototype.update = function(t) {
this.updateicon_(),
this.updatecontroltext_()
},
e.prototype.updateicon_ = function() {
var t = this.player_.volume(),
e = 3;
0 === t || this.player_.muted() ? e = 0 : t < .33 ? e = 1 : t < .67 && (e = 2);
for (var i = 0; i < 4; i++) b(this.el_, "vjs-vol-" + i);
y(this.el_, "vjs-vol-" + e)
},
e.prototype.updatecontroltext_ = function() {
var t = this.player_.muted() || 0 === this.player_.volume(),
e = t ? "unmute": "mute";
this.controltext() !== e && this.controltext(e)
},
e
} (qn);
fr.prototype.controltext_ = "mute",
bi.registercomponent("mutetoggle", fr);
var mr = function(t) {
function e(i) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
oe(this, e),
void 0 !== n.inline ? n.inline = n.inline: n.inline = !0,
(void 0 === n.volumecontrol || s(n.volumecontrol)) && (n.volumecontrol = n.volumecontrol || {},
n.volumecontrol.vertical = !n.inline);
var r = ne(this, t.call(this, i, n));
return hr(r, i),
r.on(r.volumecontrol, ["slideractive"], r.slideractive_),
r.on(r.mutetoggle, "focus", r.slideractive_),
r.on(r.volumecontrol, ["sliderinactive"], r.sliderinactive_),
r.on(r.mutetoggle, "blur", r.sliderinactive_),
r
}
return ze(e, t),
e.prototype.slideractive_ = function() {
this.addclass("vjs-slider-active")
},
e.prototype.sliderinactive_ = function() {
this.removeclass("vjs-slider-active")
},
e.prototype.createel = function() {
var e = "vjs-volume-panel-horizontal";
return this.options_.inline || (e = "vjs-volume-panel-vertical"),
t.prototype.createel.call(this, "div", {
classname: "vjs-volume-panel vjs-control " + e
})
},
e
} (bi);
mr.prototype.options_ = {
children: ["mutetoggle", "volumecontrol"]
},
bi.registercomponent("volumepanel", mr);
var vr = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return n && (r.menubutton_ = n.menubutton),
r.focusedchild_ = -1,
r.on("keydown", r.handlekeypress),
r
}
return ze(e, t),
e.prototype.additem = function(t) {
this.addchild(t),
t.on("click", ai(this,
function(e) {
this.menubutton_ && (this.menubutton_.unpressbutton(), "captionsettingsmenuitem" !== t.name() && this.menubutton_.focus())
}))
},
e.prototype.createel = function() {
var e = this.options_.contenteltype || "ul";
this.contentel_ = f(e, {
classname: "vjs-menu-content"
}),
this.contentel_.setattribute("role", "menu");
var i = t.prototype.createel.call(this, "div", {
append: this.contentel_,
classname: "vjs-menu"
});
return i.appendchild(this.contentel_),
y(i, "click",
function(t) {
t.preventdefault(),
t.stopimmediatepropagation()
}),
i
},
e.prototype.handlekeypress = function(t) {
37 === t.which || 40 === t.which ? (t.preventdefault(), this.stepforward()) : 38 !== t.which && 39 !== t.which || (t.preventdefault(), this.stepback())
},
e.prototype.stepforward = function() {
var t = 0;
void 0 !== this.focusedchild_ && (t = this.focusedchild_ + 1),
this.focus(t)
},
e.prototype.stepback = function() {
var t = 0;
void 0 !== this.focusedchild_ && (t = this.focusedchild_ - 1),
this.focus(t)
},
e.prototype.focus = function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
e = this.children().slice();
e.length && e[0].classname && /vjs-menu-title/.test(e[0].classname) && e.shift(),
e.length > 0 && (t < 0 ? t = 0 : t >= e.length && (t = e.length - 1), this.focusedchild_ = t, e[t].el_.focus())
},
e
} (bi);
bi.registercomponent("menu", vr);
var gr = function(t) {
function e(i) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
oe(this, e);
var r = ne(this, t.call(this, i, n));
r.menubutton_ = new qn(i, n),
r.menubutton_.controltext(r.controltext_),
r.menubutton_.el_.setattribute("aria-haspopup", "true");
var s = qn.prototype.buildcssclass();
return r.menubutton_.el_.classname = r.buildcssclass() + " " + s,
r.menubutton_.removeclass("vjs-control"),
r.addchild(r.menubutton_),
r.update(),
r.enabled_ = !0,
r.on(r.menubutton_, "tap", r.handleclick),
r.on(r.menubutton_, "click", r.handleclick),
r.on(r.menubutton_, "focus", r.handlefocus),
r.on(r.menubutton_, "blur", r.handleblur),
r.on("keydown", r.handlesubmenukeypress),
r
}
return ze(e, t),
e.prototype.update = function() {
var t = this.createmenu();
this.menu && this.removechild(this.menu),
this.menu = t,
this.addchild(t),
this.buttonpressed_ = !1,
this.menubutton_.el_.setattribute("aria-expanded", "false"),
this.items && this.items.length <= this.hidethreshold_ ? this.hide() : this.show()
},
e.prototype.createmenu = function() {
var t = new vr(this.player_, {
menubutton: this
});
if (this.hidethreshold_ = 0, this.options_.title) {
var e = f("li", {
classname: "vjs-menu-title",
innerhtml: q(this.options_.title),
tabindex: -1
});
this.hidethreshold_ += 1,
t.children_.unshift(e),
v(e, t.contentel())
}
if (this.items = this.createitems(), this.items) for (var i = 0; i < this.items.length; i++) t.additem(this.items[i]);
return t
},
e.prototype.createitems = function() {},
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: this.buildwrappercssclass()
},
{})
},
e.prototype.buildwrappercssclass = function() {
var e = "vjs-menu-button";
return ! 0 === this.options_.inline ? e += "-inline": e += "-popup",
"vjs-menu-button " + e + " " + qn.prototype.buildcssclass() + " " + t.prototype.buildcssclass.call(this)
},
e.prototype.buildcssclass = function() {
var e = "vjs-menu-button";
return ! 0 === this.options_.inline ? e += "-inline": e += "-popup",
"vjs-menu-button " + e + " " + t.prototype.buildcssclass.call(this)
},
e.prototype.controltext = function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.menubutton_.el();
return this.menubutton_.controltext(t, e)
},
e.prototype.handleclick = function(t) {
this.one(this.menu.contentel(), "mouseleave", ai(this,
function(t) {
this.unpressbutton(),
this.el_.blur()
})),
this.buttonpressed_ ? this.unpressbutton() : this.pressbutton()
},
e.prototype.focus = function() {
this.menubutton_.focus()
},
e.prototype.blur = function() {
this.menubutton_.blur()
},
e.prototype.handlefocus = function() {
y(ce, "keydown", ai(this, this.handlekeypress))
},
e.prototype.handleblur = function() {
v(ce, "keydown", ai(this, this.handlekeypress))
},
e.prototype.handlekeypress = function(t) {
27 === t.which || 9 === t.which ? (this.buttonpressed_ && this.unpressbutton(), 9 !== t.which && (t.preventdefault(), this.menubutton_.el_.focus())) : 38 !== t.which && 40 !== t.which || this.buttonpressed_ || (this.pressbutton(), t.preventdefault())
},
e.prototype.handlesubmenukeypress = function(t) {
27 !== t.which && 9 !== t.which || (this.buttonpressed_ && this.unpressbutton(), 9 !== t.which && (t.preventdefault(), this.menubutton_.el_.focus()))
},
e.prototype.pressbutton = function() {
this.enabled_ && (this.buttonpressed_ = !0, this.menu.lockshowing(), this.menubutton_.el_.setattribute("aria-expanded", "true"), this.menu.focus())
},
e.prototype.unpressbutton = function() {
this.enabled_ && (this.buttonpressed_ = !1, this.menu.unlockshowing(), this.menubutton_.el_.setattribute("aria-expanded", "false"))
},
e.prototype.disable = function() {
this.unpressbutton(),
this.enabled_ = !1,
this.addclass("vjs-disabled"),
this.menubutton_.disable()
},
e.prototype.enable = function() {
this.enabled_ = !0,
this.removeclass("vjs-disabled"),
this.menubutton_.enable()
},
e
} (bi);
bi.registercomponent("menubutton", gr);
var yr = function(t) {
function e(i, n) {
oe(this, e);
var r = n.tracks,
s = ne(this, t.call(this, i, n));
if (s.items.length <= 1 && s.hide(), !r) return ne(s);
var o = ai(s, s.update);
return r.addeventlistener("removetrack", o),
r.addeventlistener("addtrack", o),
s.player_.on("ready", o),
s.player_.on("dispose",
function() {
r.removeeventlistener("removetrack", o),
r.removeeventlistener("addtrack", o)
}),
s
}
return ze(e, t),
e
} (gr);
bi.registercomponent("trackbutton", yr);
var br = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.selectable = n.selectable,
r.selected(n.selected),
r.selectable ? r.el_.setattribute("role", "menuitemcheckbox") : r.el_.setattribute("role", "menuitem"),
r
}
return ze(e, t),
e.prototype.createel = function(e, i, r) {
return this.noniconcontrol = !0,
t.prototype.createel.call(this, "li", n({
classname: "vjs-menu-item",
innerhtml: '",
tabindex: -1
},
i), r)
},
e.prototype.handleclick = function(t) {
this.selected(!0)
},
e.prototype.selected = function(t) {
this.selectable && (t ? (this.addclass("vjs-selected"), this.el_.setattribute("aria-checked", "true"), this.controltext(", selected")) : (this.removeclass("vjs-selected"), this.el_.setattribute("aria-checked", "false"), this.controltext(" ")))
},
e
} (xn);
bi.registercomponent("menuitem", br);
var tr = function(t) {
function e(i, n) {
oe(this, e);
var r = n.track,
s = i.texttracks();
n.label = r.label || r.language || "unknown",
n.selected = "showing" === r.mode;
var o = ne(this, t.call(this, i, n));
o.track = r;
var a = ai(o, o.handletrackschange),
l = ai(o, o.handleselectedlanguagechange);
if (i.on(["loadstart", "texttrackchange"], a), s.addeventlistener("change", a), s.addeventlistener("selectedlanguagechange", l), o.on("dispose",
function() {
s.removeeventlistener("change", a),
s.removeeventlistener("selectedlanguagechange", l)
}), void 0 === s.onchange) {
var c = void 0;
o.on(["tap", "click"],
function() {
if ("object" !== de(re.event)) try {
c = new re.event("change")
} catch(t) {}
c || (c = ce.createevent("event"), c.initevent("change", !0, !0)),
s.dispatchevent(c)
})
}
return o
}
return ze(e, t),
e.prototype.handleclick = function(e) {
var i = this.track.kind,
n = this.track.kinds,
r = this.player_.texttracks();
if (n || (n = [i]), t.prototype.handleclick.call(this, e), r) for (var s = 0; s < r.length; s++) {
var o = r[s];
o === this.track && n.indexof(o.kind) > -1 ? "showing" !== o.mode && (o.mode = "showing") : "disabled" !== o.mode && (o.mode = "disabled")
}
},
e.prototype.handletrackschange = function(t) {
this.selected("showing" === this.track.mode)
},
e.prototype.handleselectedlanguagechange = function(t) {
if ("showing" === this.track.mode) {
var e = this.player_.cache_.selectedlanguage;
if (e && e.enabled && e.language === this.track.language && e.kind !== this.track.kind) return;
this.player_.cache_.selectedlanguage = {
enabled: !0,
language: this.track.language,
kind: this.track.kind
}
}
},
e
} (br);
bi.registercomponent("texttrackmenuitem", tr);
var wr = function(t) {
function e(i, n) {
oe(this, e),
n.track = {
player: i,
kind: n.kind,
kinds: n.kinds,
default:
!1,
mode: "disabled"
},
n.kinds || (n.kinds = [n.kind]),
n.label ? n.track.label = n.label: n.track.label = n.kinds.join(" and ") + " off",
n.selectable = !0;
var r = ne(this, t.call(this, i, n));
return r.selected(!0),
r
}
return ze(e, t),
e.prototype.handletrackschange = function(t) {
for (var e = this.player().texttracks(), i = !0, n = 0, r = e.length; n < r; n++) {
var s = e[n];
if (this.options_.kinds.indexof(s.kind) > -1 && "showing" === s.mode) {
i = !1;
break
}
}
this.selected(i)
},
e.prototype.handleselectedlanguagechange = function(t) {
for (var e = this.player().texttracks(), i = !0, n = 0, r = e.length; n < r; n++) {
var s = e[n];
if (["captions", "descriptions", "subtitles"].indexof(s.kind) > -1 && "showing" === s.mode) {
i = !1;
break
}
}
i && (this.player_.cache_.selectedlanguage = {
enabled: !1
})
},
e
} (tr);
bi.registercomponent("offtexttrackmenuitem", wr);
var _r = function(t) {
function e(i) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
return oe(this, e),
n.tracks = i.texttracks(),
ne(this, t.call(this, i, n))
}
return ze(e, t),
e.prototype.createitems = function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],
e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : tr,
i = void 0;
this.label_ && (i = this.label_ + " off"),
t.push(new wr(this.player_, {
kinds: this.kinds_,
kind: this.kind_,
label: i
})),
this.hidethreshold_ += 1;
var n = this.player_.texttracks();
array.isarray(this.kinds_) || (this.kinds_ = [this.kind_]);
for (var r = 0; r < n.length; r++) {
var s = n[r];
if (this.kinds_.indexof(s.kind) > -1) {
var o = new e(this.player_, {
track: s,
selectable: !0
});
o.addclass("vjs-" + s.kind + "-menu-item"),
t.push(o)
}
}
return t
},
e
} (yr);
bi.registercomponent("texttrackbutton", _r);
var cr = function(t) {
function e(i, n) {
oe(this, e);
var r = n.track,
s = n.cue,
o = i.currenttime();
n.selectable = !0,
n.label = s.text,
n.selected = s.starttime <= o && o < s.endtime;
var a = ne(this, t.call(this, i, n));
return a.track = r,
a.cue = s,
r.addeventlistener("cuechange", ai(a, a.update)),
a
}
return ze(e, t),
e.prototype.handleclick = function(e) {
t.prototype.handleclick.call(this),
this.player_.currenttime(this.cue.starttime),
this.update(this.cue.starttime)
},
e.prototype.update = function(t) {
var e = this.cue,
i = this.player_.currenttime();
this.selected(e.starttime <= i && i < e.endtime)
},
e
} (br);
bi.registercomponent("chapterstrackmenuitem", cr);
var sr = function(t) {
function e(i, n, r) {
return oe(this, e),
ne(this, t.call(this, i, n, r))
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-chapters-button " + t.prototype.buildcssclass.call(this)
},
e.prototype.buildwrappercssclass = function() {
return "vjs-chapters-button " + t.prototype.buildwrappercssclass.call(this)
},
e.prototype.update = function(e) {
this.track_ && (!e || "addtrack" !== e.type && "removetrack" !== e.type) || this.settrack(this.findchapterstrack()),
t.prototype.update.call(this)
},
e.prototype.settrack = function(t) {
if (this.track_ !== t) {
if (this.updatehandler_ || (this.updatehandler_ = this.update.bind(this)), this.track_) {
var e = this.player_.remotetexttrackels().gettrackelementbytrack_(this.track_);
e && e.removeeventlistener("load", this.updatehandler_),
this.track_ = null
}
if (this.track_ = t, this.track_) {
this.track_.mode = "hidden";
var i = this.player_.remotetexttrackels().gettrackelementbytrack_(this.track_);
i && i.addeventlistener("load", this.updatehandler_)
}
}
},
e.prototype.findchapterstrack = function() {
for (var t = this.player_.texttracks() || [], e = t.length - 1; e >= 0; e--) {
var i = t[e];
if (i.kind === this.kind_) return i
}
},
e.prototype.getmenucaption = function() {
return this.track_ && this.track_.label ? this.track_.label: this.localize(q(this.kind_))
},
e.prototype.createmenu = function() {
return this.options_.title = this.getmenucaption(),
t.prototype.createmenu.call(this)
},
e.prototype.createitems = function() {
var t = [];
if (!this.track_) return t;
var e = this.track_.cues;
if (!e) return t;
for (var i = 0,
n = e.length; i < n; i++) {
var r = e[i],
s = new cr(this.player_, {
track: this.track_,
cue: r
});
t.push(s)
}
return t
},
e
} (_r);
sr.prototype.kind_ = "chapters",
sr.prototype.controltext_ = "chapters",
bi.registercomponent("chaptersbutton", sr);
var xr = function(t) {
function e(i, n, r) {
oe(this, e);
var s = ne(this, t.call(this, i, n, r)),
o = i.texttracks(),
a = ai(s, s.handletrackschange);
return o.addeventlistener("change", a),
s.on("dispose",
function() {
o.removeeventlistener("change", a)
}),
s
}
return ze(e, t),
e.prototype.handletrackschange = function(t) {
for (var e = this.player().texttracks(), i = !1, n = 0, r = e.length; n < r; n++) {
var s = e[n];
if (s.kind !== this.kind_ && "showing" === s.mode) {
i = !0;
break
}
}
i ? this.disable() : this.enable()
},
e.prototype.buildcssclass = function() {
return "vjs-descriptions-button " + t.prototype.buildcssclass.call(this)
},
e.prototype.buildwrappercssclass = function() {
return "vjs-descriptions-button " + t.prototype.buildwrappercssclass.call(this)
},
e
} (_r);
xr.prototype.kind_ = "descriptions",
xr.prototype.controltext_ = "descriptions",
bi.registercomponent("descriptionsbutton", xr);
var kr = function(t) {
function e(i, n, r) {
return oe(this, e),
ne(this, t.call(this, i, n, r))
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-subtitles-button " + t.prototype.buildcssclass.call(this)
},
e.prototype.buildwrappercssclass = function() {
return "vjs-subtitles-button " + t.prototype.buildwrappercssclass.call(this)
},
e
} (_r);
kr.prototype.kind_ = "subtitles",
kr.prototype.controltext_ = "subtitles",
bi.registercomponent("subtitlesbutton", kr);
var er = function(t) {
function e(i, n) {
oe(this, e),
n.track = {
player: i,
kind: n.kind,
label: n.kind + " settings",
selectable: !1,
default:
!1,
mode: "disabled"
},
n.selectable = !1,
n.name = "captionsettingsmenuitem";
var r = ne(this, t.call(this, i, n));
return r.addclass("vjs-texttrack-settings"),
r.controltext(", opens " + n.kind + " settings dialog"),
r
}
return ze(e, t),
e.prototype.handleclick = function(t) {
this.player().getchild("texttracksettings").open()
},
e
} (tr);
bi.registercomponent("captionsettingsmenuitem", er);
var pr = function(t) {
function e(i, n, r) {
return oe(this, e),
ne(this, t.call(this, i, n, r))
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-captions-button " + t.prototype.buildcssclass.call(this)
},
e.prototype.buildwrappercssclass = function() {
return "vjs-captions-button " + t.prototype.buildwrappercssclass.call(this)
},
e.prototype.createitems = function() {
var e = [];
return this.player().tech_ && this.player().tech_.featuresnativetexttracks || (e.push(new er(this.player_, {
kind: this.kind_
})), this.hidethreshold_ += 1),
t.prototype.createitems.call(this, e)
},
e
} (_r);
pr.prototype.kind_ = "captions",
pr.prototype.controltext_ = "captions",
bi.registercomponent("captionsbutton", pr);
var mr = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.createel = function(e, i, r) {
var s = '",
t.prototype.createel.call(this, e, n({
innerhtml: s
},
i), r)
},
e
} (tr);
bi.registercomponent("subscapsmenuitem", mr);
var ir = function(t) {
function e(i) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.label_ = "subtitles",
["en", "en-us", "en-ca", "fr-ca"].indexof(r.player_.language_) > -1 && (r.label_ = "captions"),
r.menubutton_.controltext(q(r.label_)),
r
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-subs-caps-button " + t.prototype.buildcssclass.call(this)
},
e.prototype.buildwrappercssclass = function() {
return "vjs-subs-caps-button " + t.prototype.buildwrappercssclass.call(this)
},
e.prototype.createitems = function() {
var e = [];
return this.player().tech_ && this.player().tech_.featuresnativetexttracks || (e.push(new er(this.player_, {
kind: this.label_
})), this.hidethreshold_ += 1),
e = t.prototype.createitems.call(this, e, mr)
},
e
} (_r);
ir.prototype.kinds_ = ["captions", "subtitles"],
ir.prototype.controltext_ = "subtitles",
bi.registercomponent("subscapsbutton", ir);
var ar = function(t) {
function e(i, n) {
oe(this, e);
var r = n.track,
s = i.audiotracks();
n.label = r.label || r.language || "unknown",
n.selected = r.enabled;
var o = ne(this, t.call(this, i, n));
o.track = r;
var a = ai(o, o.handletrackschange);
return s.addeventlistener("change", a),
o.on("dispose",
function() {
s.removeeventlistener("change", a)
}),
o
}
return ze(e, t),
e.prototype.handleclick = function(e) {
var i = this.player_.audiotracks();
t.prototype.handleclick.call(this, e);
for (var n = 0; n < i.length; n++) {
var r = i[n];
r.enabled = r === this.track
}
},
e.prototype.handletrackschange = function(t) {
this.selected(this.track.enabled)
},
e
} (br);
bi.registercomponent("audiotrackmenuitem", ar);
var jr = function(t) {
function e(i) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
return oe(this, e),
n.tracks = i.audiotracks(),
ne(this, t.call(this, i, n))
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-audio-button " + t.prototype.buildcssclass.call(this)
},
e.prototype.buildwrappercssclass = function() {
return "vjs-audio-button " + t.prototype.buildwrappercssclass.call(this)
},
e.prototype.createitems = function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
this.hidethreshold_ = 1;
for (var e = this.player_.audiotracks(), i = 0; i < e.length; i++) {
var n = e[i];
t.push(new ar(this.player_, {
track: n,
selectable: !0
}))
}
return t
},
e
} (yr);
jr.prototype.controltext_ = "audio track",
bi.registercomponent("audiotrackbutton", jr);
var dr = function(t) {
function e(i, n) {
oe(this, e);
var r = n.rate,
s = parsefloat(r, 10);
n.label = r,
n.selected = 1 === s,
n.selectable = !0;
var o = ne(this, t.call(this, i, n));
return o.label = r,
o.rate = s,
o.on(i, "ratechange", o.update),
o
}
return ze(e, t),
e.prototype.handleclick = function(e) {
t.prototype.handleclick.call(this),
this.player().playbackrate(this.rate)
},
e.prototype.update = function(t) {
this.selected(this.player().playbackrate() === this.rate)
},
e
} (br);
dr.prototype.contenteltype = "button",
bi.registercomponent("playbackratemenuitem", dr);
var or = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.updatevisibility(),
r.updatelabel(),
r.on(i, "loadstart", r.updatevisibility),
r.on(i, "ratechange", r.updatelabel),
r
}
return ze(e, t),
e.prototype.createel = function() {
var e = t.prototype.createel.call(this);
return this.labelel_ = f("div", {
classname: "vjs-playback-rate-value",
innerhtml: 1
}),
e.appendchild(this.labelel_),
e
},
e.prototype.buildcssclass = function() {
return "vjs-playback-rate " + t.prototype.buildcssclass.call(this)
},
e.prototype.buildwrappercssclass = function() {
return "vjs-playback-rate " + t.prototype.buildwrappercssclass.call(this)
},
e.prototype.createmenu = function() {
var t = new vr(this.player()),
e = this.playbackrates();
if (e) for (var i = e.length - 1; i >= 0; i--) t.addchild(new dr(this.player(), {
rate: e[i] + "x"
}));
return t
},
e.prototype.updateariaattributes = function() {
this.el().setattribute("aria-valuenow", this.player().playbackrate())
},
e.prototype.handleclick = function(t) {
for (var e = this.player().playbackrate(), i = this.playbackrates(), n = i[0], r = 0; r < i.length; r++) if (i[r] > e) {
n = i[r];
break
}
this.player().playbackrate(n)
},
e.prototype.playbackrates = function() {
return this.options_.playbackrates || this.options_.playeroptions && this.options_.playeroptions.playbackrates
},
e.prototype.playbackratesupported = function() {
return this.player().tech_ && this.player().tech_.featuresplaybackrate && this.playbackrates() && this.playbackrates().length > 0
},
e.prototype.updatevisibility = function(t) {
this.playbackratesupported() ? this.removeclass("vjs-hidden") : this.addclass("vjs-hidden")
},
e.prototype.updatelabel = function(t) {
this.playbackratesupported() && (this.labelel_.innerhtml = this.player().playbackrate() + "x")
},
e
} (gr);
or.prototype.controltext_ = "playback rate",
bi.registercomponent("playbackratemenubutton", or);
var zr = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-spacer " + t.prototype.buildcssclass.call(this)
},
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: this.buildcssclass()
})
},
e
} (bi);
bi.registercomponent("spacer", zr);
var nr = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-custom-control-spacer " + t.prototype.buildcssclass.call(this)
},
e.prototype.createel = function() {
var e = t.prototype.createel.call(this, {
classname: this.buildcssclass()
});
return e.innerhtml = " ",
e
},
e
} (zr);
bi.registercomponent("customcontrolspacer", nr);
var br = function(t) {
function e() {
return oe(this, e),
ne(this, t.apply(this, arguments))
}
return ze(e, t),
e.prototype.createel = function() {
return t.prototype.createel.call(this, "div", {
classname: "vjs-control-bar",
dir: "ltr"
},
{
role: "group"
})
},
e
} (bi);
br.prototype.options_ = {
children: ["playtoggle", "volumepanel", "currenttimedisplay", "timedivider", "durationdisplay", "progresscontrol", "livedisplay", "remainingtimedisplay", "customcontrolspacer", "playbackratemenubutton", "chaptersbutton", "descriptionsbutton", "subscapsbutton", "audiotrackbutton", "fullscreentoggle"]
},
bi.registercomponent("controlbar", br);
var lr = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n));
return r.on(i, "error", r.open),
r
}
return ze(e, t),
e.prototype.buildcssclass = function() {
return "vjs-error-display " + t.prototype.buildcssclass.call(this)
},
e.prototype.content = function() {
var t = this.player().error();
return t ? this.localize(t.message) : ""
},
e
} (di);
lr.prototype.options_ = z(di.prototype.options_, {
pauseonopen: !1,
fillalways: !0,
temporary: !1,
uncloseable: !0
}),
bi.registercomponent("errordisplay", lr);
var rr = ["#000", "black"],
hr = ["#00f", "blue"],
fr = ["#0ff", "cyan"],
xr = ["#0f0", "green"],
yr = ["#f0f", "magenta"],
vr = ["#f00", "red"],
wr = ["#fff", "white"],
gr = ["#ff0", "yellow"],
qr = ["1", "opaque"],
ur = ["0.5", "semi-transparent"],
kr = ["0", "transparent"],
qr = {
backgroundcolor: {
selector: ".vjs-bg-color > select",
id: "captions-background-color-%s",
label: "color",
options: [rr, wr, vr, xr, hr, gr, yr, fr]
},
backgroundopacity: {
selector: ".vjs-bg-opacity > select",
id: "captions-background-opacity-%s",
label: "transparency",
options: [qr, ur, kr]
},
color: {
selector: ".vjs-fg-color > select",
id: "captions-foreground-color-%s",
label: "color",
options: [wr, rr, vr, xr, hr, gr, yr, fr]
},
edgestyle: {
selector: ".vjs-edge-style > select",
id: "%s",
label: "text edge style",
options: [["none", "none"], ["raised", "raised"], ["depressed", "depressed"], ["uniform", "uniform"], ["dropshadow", "dropshadow"]]
},
fontfamily: {
selector: ".vjs-font-family > select",
id: "captions-font-family-%s",
label: "font family",
options: [["proportionalsansserif", "proportional sans-serif"], ["monospacesansserif", "monospace sans-serif"], ["proportionalserif", "proportional serif"], ["monospaceserif", "monospace serif"], ["casual", "casual"], ["script", "script"], ["small-caps", "small caps"]]
},
fontpercent: {
selector: ".vjs-font-percent > select",
id: "captions-font-size-%s",
label: "font size",
options: [["0.50", "50%"], ["0.75", "75%"], ["1.00", "100%"], ["1.25", "125%"], ["1.50", "150%"], ["1.75", "175%"], ["2.00", "200%"], ["3.00", "300%"], ["4.00", "400%"]],
default:
2,
parser: function(t) {
return "1.00" === t ? null: number(t)
}
},
textopacity: {
selector: ".vjs-text-opacity > select",
id: "captions-foreground-opacity-%s",
label: "transparency",
options: [qr, ur]
},
windowcolor: {
selector: ".vjs-window-color > select",
id: "captions-window-color-%s",
label: "color"
},
windowopacity: {
selector: ".vjs-window-opacity > select",
id: "captions-window-opacity-%s",
label: "transparency",
options: [kr, ur, qr]
}
};
qr.windowcolor.options = qr.backgroundcolor.options;
var $r = function(t) {
function n(i, r) {
oe(this, n),
r.temporary = !1;
var s = ne(this, t.call(this, i, r));
return s.updatedisplay = ai(s, s.updatedisplay),
s.fill(),
s.hasbeenopened_ = s.hasbeenfilled_ = !0,
s.enddialog = f("p", {
classname: "vjs-control-text",
textcontent: s.localize("end of dialog window.")
}),
s.el().appendchild(s.enddialog),
s.setdefaults(),
void 0 === r.persisttexttracksettings && (s.options_.persisttexttracksettings = s.options_.playeroptions.persisttexttracksettings),
s.on(s.$(".vjs-done-button"), "click",
function() {
s.savesettings(),
s.close()
}),
s.on(s.$(".vjs-default-button"), "click",
function() {
s.setdefaults(),
s.updatedisplay()
}),
e(qr,
function(t) {
s.on(s.$(t.selector), "change", s.updatedisplay)
}),
s.options_.persisttexttracksettings && s.restoresettings(),
s
}
return ze(n, t),
n.prototype.createelselect_ = function(t) {
var e = this,
i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "",
n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "label",
r = qr[t],
s = r.id.replace("%s", this.id_);
return ["<" + n + ' id="' + s + '" class="' + ("label" === n ? "vjs-label": "") + '">', this.localize(r.label), "" + n + ">", '").join("")
},
n.prototype.createelfgcolor_ = function() {
var t = "captions-text-legend-" + this.id_;
return ['"].join("")
},
n.prototype.createelbgcolor_ = function() {
var t = "captions-background-" + this.id_;
return ['"].join("")
},
n.prototype.createelwincolor_ = function() {
var t = "captions-window-" + this.id_;
return ['"].join("")
},
n.prototype.createelcolors_ = function() {
return f("div", {
classname: "vjs-track-settings-colors",
innerhtml: [this.createelfgcolor_(), this.createelbgcolor_(), this.createelwincolor_()].join("")
})
},
n.prototype.createelfont_ = function() {
return f("div", {
classname: 'vjs-track-settings-font">',
innerhtml: ['", '", '"].join("")
})
},
n.prototype.createelcontrols_ = function() {
var t = this.localize("restore all settings to the default values");
return f("div", {
classname: "vjs-track-settings-controls",
innerhtml: ['", '"].join("")
})
},
n.prototype.content = function() {
return [this.createelcolors_(), this.createelfont_(), this.createelcontrols_()]
},
n.prototype.label = function() {
return this.localize("caption settings dialog")
},
n.prototype.description = function() {
return this.localize("beginning of dialog window. escape will cancel and close the window.")
},
n.prototype.buildcssclass = function() {
return t.prototype.buildcssclass.call(this) + " vjs-text-track-settings"
},
n.prototype.getvalues = function() {
var t = this;
return i(qr,
function(e, i, n) {
var r = $t(t.$(i.selector), i.parser);
return void 0 !== r && (e[n] = r),
e
},
{})
},
n.prototype.setvalues = function(t) {
var i = this;
e(qr,
function(e, n) {
zt(i.$(e.selector), t[n], e.parser)
})
},
n.prototype.setdefaults = function() {
var t = this;
e(qr,
function(e) {
var i = e.hasownproperty("default") ? e.
default:
0;
t.$(e.selector).selectedindex = i
})
},
n.prototype.restoresettings = function() {
var t = void 0;
try {
t = json.parse(re.localstorage.getitem("vjs-text-track-settings"))
} catch(t) {
ve.warn(t)
}
t && this.setvalues(t)
},
n.prototype.savesettings = function() {
if (this.options_.persisttexttracksettings) {
var t = this.getvalues();
try {
object.keys(t).length ? re.localstorage.setitem("vjs-text-track-settings", json.stringify(t)) : re.localstorage.removeitem("vjs-text-track-settings")
} catch(t) {
ve.warn(t)
}
}
},
n.prototype.updatedisplay = function() {
var t = this.player_.getchild("texttrackdisplay");
t && t.updatedisplay()
},
n.prototype.conditionalblur_ = function() {
this.previouslyactiveel_ = null,
this.off(ce, "keydown", this.handlekeydown);
var t = this.player_.controlbar,
e = t && t.subscapsbutton,
i = t && t.captionsbutton;
e ? e.focus() : i && i.focus()
},
n
} (di);
bi.registercomponent("texttracksettings", $r);
var zr = be(["text tracks are being loaded from another origin but the crossorigin attribute isn't used.\n this may prevent text tracks from loading."], ["text tracks are being loaded from another origin but the crossorigin attribute isn't used.\n this may prevent text tracks from loading."]),
jr = function(t) {
function e(i, n) {
oe(this, e);
var r = ne(this, t.call(this, i, n)),
s = i.source,
o = !1;
if (s && (r.el_.currentsrc !== s.src || i.tag && 3 === i.tag.initnetworkstate_) ? r.setsource(s) : r.handlelateinit_(r.el_), r.el_.haschildnodes()) {
for (var a = r.el_.childnodes,
l = a.length,
c = []; l--;) {
var h = a[l];
"track" === h.nodename.tolowercase() && (r.featuresnativetexttracks ? (r.remotetexttrackels().addtrackelement_(h), r.remotetexttracks().addtrack(h.track), r.texttracks().addtrack(h.track), o || r.el_.hasattribute("crossorigin") || !$i(h.src) || (o = !0)) : c.push(h))
}
for (var p = 0; p < c.length; p++) r.el_.removechild(c[p])
}
return r.proxynativetracks_(),
r.featuresnativetexttracks && o && ve.warn(we(zr)),
(ie || fe || we) && !0 === i.nativecontrolsfortouch && r.setcontrols(!0),
r.proxywebkitfullscreen_(),
r.triggerready(),
r
}
return ze(e, t),
e.prototype.dispose = function() {
e.disposemediaelement(this.el_),
t.prototype.dispose.call(this)
},
e.prototype.proxynativetracks_ = function() {
var t = this;
bn.names.foreach(function(e) {
var i = bn[e],
n = t.el()[i.gettername],
r = t[i.gettername]();
if (t["featuresnative" + i.capitalname + "tracks"] && n && n.addeventlistener) {
var s = {
change: function(t) {
r.trigger({
type: "change",
target: r,
currenttarget: r,
srcelement: r
})
},
addtrack: function(t) {
r.addtrack(t.track)
},
removetrack: function(t) {
r.removetrack(t.track)
}
},
o = function() {
for (var t = [], e = 0; e < r.length; e++) {
for (var i = !1,
s = 0; s < n.length; s++) if (n[s] === r[e]) {
i = !0;
break
}
i || t.push(r[e])
}
for (; t.length;) r.removetrack(t.shift())
};
object.keys(s).foreach(function(e) {
var i = s[e];
n.addeventlistener(e, i),
t.on("dispose",
function(t) {
return n.removeeventlistener(e, i)
})
}),
t.on("loadstart", o),
t.on("dispose",
function(e) {
return t.off("loadstart", o)
})
}
})
},
e.prototype.createel = function() {
var t = this.options_.tag;
if (!t || !this.options_.playerelingest && !this.movingmediaelementindom) {
if (t) {
var i = t.clonenode(!0);
t.parentnode && t.parentnode.insertbefore(i, t),
e.disposemediaelement(t),
t = i
} else {
t = ce.createelement("video");
var r = this.options_.tag && _(this.options_.tag),
s = z({},
r);
ie && !0 === this.options_.nativecontrolsfortouch || delete s.controls,
w(t, n(s, {
id: this.options_.techid,
class: "vjs-tech"
}))
}
t.playerid = this.options_.playerid
}
for (var o = ["autoplay", "preload", "loop", "muted", "playsinline"], a = o.length - 1; a >= 0; a--) {
var l = o[a],
c = {};
void 0 !== this.options_[l] && (c[l] = this.options_[l]),
w(t, c)
}
return t
},
e.prototype.handlelateinit_ = function(t) {
if (0 !== t.networkstate && 3 !== t.networkstate) {
if (0 === t.readystate) {
var e = !1,
i = function() {
e = !0
};
this.on("loadstart", i);
var n = function() {
e || this.trigger("loadstart")
};
return this.on("loadedmetadata", n),
void this.ready(function() {
this.off("loadstart", i),
this.off("loadedmetadata", n),
e || this.trigger("loadstart")
})
}
var r = ["loadstart"];
r.push("loadedmetadata"),
t.readystate >= 2 && r.push("loadeddata"),
t.readystate >= 3 && r.push("canplay"),
t.readystate >= 4 && r.push("canplaythrough"),
this.ready(function() {
r.foreach(function(t) {
this.trigger(t)
},
this)
})
}
},
e.prototype.setcurrenttime = function(t) {
try {
this.el_.currenttime = t
} catch(t) {
ve(t, "video is not ready. (video.js)")
}
},
e.prototype.duration = function() {
var t = this;
if (this.el_.duration === 1 / 0 && ye && se && 0 === this.el_.currenttime) {
var e = function e() {
t.el_.currenttime > 0 && (t.el_.duration === 1 / 0 && t.trigger("durationchange"), t.off("timeupdate", e))
};
return this.on("timeupdate", e),
nan
}
return this.el_.duration || nan
},
e.prototype.width = function() {
return this.el_.offsetwidth
},
e.prototype.height = function() {
return this.el_.offsetheight
},
e.prototype.proxywebkitfullscreen_ = function() {
var t = this;
if ("webkitdisplayingfullscreen" in this.el_) {
var e = function() {
this.trigger("fullscreenchange", {
isfullscreen: !1
})
},
i = function() {
"webkitpresentationmode" in this.el_ && "picture-in-picture" !== this.el_.webkitpresentationmode && (this.one("webkitendfullscreen", e), this.trigger("fullscreenchange", {
isfullscreen: !0
}))
};
this.on("webkitbeginfullscreen", i),
this.on("dispose",
function() {
t.off("webkitbeginfullscreen", i),
t.off("webkitendfullscreen", e)
})
}
},
e.prototype.supportsfullscreen = function() {
if ("function" == typeof this.el_.webkitenterfullscreen) {
var t = re.navigator && re.navigator.useragent || "";
if (/android/.test(t) || !/chrome|mac os x 10.5/.test(t)) return ! 0
}
return ! 1
},
e.prototype.enterfullscreen = function() {
var t = this.el_;
t.paused && t.networkstate <= t.have_metadata ? (this.el_.play(), this.settimeout(function() {
t.pause(),
t.webkitenterfullscreen()
},
0)) : t.webkitenterfullscreen()
},
e.prototype.exitfullscreen = function() {
this.el_.webkitexitfullscreen()
},
e.prototype.src = function(t) {
if (void 0 === t) return this.el_.src;
this.setsrc(t)
},
e.prototype.reset = function() {
e.resetmediaelement(this.el_)
},
e.prototype.currentsrc = function() {
return this.currentsource_ ? this.currentsource_.src: this.el_.currentsrc
},
e.prototype.setcontrols = function(t) {
this.el_.controls = !!t
},
e.prototype.addtexttrack = function(e, i, n) {
return this.featuresnativetexttracks ? this.el_.addtexttrack(e, i, n) : t.prototype.addtexttrack.call(this, e, i, n)
},
e.prototype.createremotetexttrack = function(e) {
if (!this.featuresnativetexttracks) return t.prototype.createremotetexttrack.call(this, e);
var i = ce.createelement("track");
return e.kind && (i.kind = e.kind),
e.label && (i.label = e.label),
(e.language || e.srclang) && (i.srclang = e.language || e.srclang),
e.
default && (i.
default = e.
default),
e.id && (i.id = e.id),
e.src && (i.src = e.src),
i
},
e.prototype.addremotetexttrack = function(e, i) {
var n = t.prototype.addremotetexttrack.call(this, e, i);
return this.featuresnativetexttracks && this.el().appendchild(n),
n
},
e.prototype.removeremotetexttrack = function(e) {
if (t.prototype.removeremotetexttrack.call(this, e), this.featuresnativetexttracks) for (var i = this.$$("track"), n = i.length; n--;) e !== i[n] && e !== i[n].track || this.el().removechild(i[n])
},
e.prototype.playsinline = function() {
return this.el_.hasattribute("playsinline")
},
e.prototype.setplaysinline = function(t) {
t ? this.el_.setattribute("playsinline", "playsinline") : this.el_.removeattribute("playsinline")
},
e.prototype.getvideoplaybackquality = function() {
if ("function" == typeof this.el().getvideoplaybackquality) return this.el().getvideoplaybackquality();
var t = {};
return void 0 !== this.el().webkitdroppedframecount && void 0 !== this.el().webkitdecodedframecount && (t.droppedvideoframes = this.el().webkitdroppedframecount, t.totalvideoframes = this.el().webkitdecodedframecount),
re.performance && "function" == typeof re.performance.now ? t.creationtime = re.performance.now() : re.performance && re.performance.timing && "number" == typeof re.performance.timing.navigationstart && (t.creationtime = re.date.now() - re.performance.timing.navigationstart),
t
},
e
} (nn);
if (p()) {
jr.test_vid = ce.createelement("video");
var ts = ce.createelement("track");
ts.kind = "captions",
ts.srclang = "en",
ts.label = "english",
jr.test_vid.appendchild(ts)
}
jr.issupported = function() {
try {
jr.test_vid.volume = .5
} catch(t) {
return ! 1
}
return ! (!jr.test_vid || !jr.test_vid.canplaytype)
},
jr.canplaytype = function(t) {
return jr.test_vid.canplaytype(t)
},
jr.canplaysource = function(t, e) {
return jr.canplaytype(t.type)
},
jr.cancontrolvolume = function() {
try {
var t = jr.test_vid.volume;
return jr.test_vid.volume = t / 2 + .1,
t !== jr.test_vid.volume
} catch(t) {
return ! 1
}
},
jr.cancontrolplaybackrate = function() {
if (ye && se && xe < 58) return ! 1;
try {
var t = jr.test_vid.playbackrate;
return jr.test_vid.playbackrate = t / 2 + .1,
t !== jr.test_vid.playbackrate
} catch(t) {
return ! 1
}
},
jr.supportsnativetexttracks = function() {
return me
},
jr.supportsnativevideotracks = function() {
return ! (!jr.test_vid || !jr.test_vid.videotracks)
},
jr.supportsnativeaudiotracks = function() {
return ! (!jr.test_vid || !jr.test_vid.audiotracks)
},
jr.events = ["loadstart", "suspend", "abort", "error", "emptied", "stalled", "loadedmetadata", "loadeddata", "canplay", "canplaythrough", "playing", "waiting", "seeking", "seeked", "ended", "durationchange", "timeupdate", "progress", "play", "pause", "ratechange", "resize", "volumechange"],
jr.prototype.featuresvolumecontrol = jr.cancontrolvolume(),
jr.prototype.featuresplaybackrate = jr.cancontrolplaybackrate(),
jr.prototype.movingmediaelementindom = !ve,
jr.prototype.featuresfullscreenresize = !0,
jr.prototype.featuresprogressevents = !0,
jr.prototype.featurestimeupdateevents = !0,
jr.prototype.featuresnativetexttracks = jr.supportsnativetexttracks(),
jr.prototype.featuresnativevideotracks = jr.supportsnativevideotracks(),
jr.prototype.featuresnativeaudiotracks = jr.supportsnativeaudiotracks();
var es = jr.test_vid && jr.test_vid.constructor.prototype.canplaytype,
is = /^application\/(?:x-|vnd\.apple\.)mpegurl/i,
ns = /^video\/mp4/i;
jr.patchcanplaytype = function() {
be >= 4 && !_e ? jr.test_vid.constructor.prototype.canplaytype = function(t) {
return t && is.test(t) ? "maybe": es.call(this, t)
}: te && (jr.test_vid.constructor.prototype.canplaytype = function(t) {
return t && ns.test(t) ? "maybe": es.call(this, t)
})
},
jr.unpatchcanplaytype = function() {
var t = jr.test_vid.constructor.prototype.canplaytype;
return jr.test_vid.constructor.prototype.canplaytype = es,
t
},
jr.patchcanplaytype(),
jr.disposemediaelement = function(t) {
if (t) {
for (t.parentnode && t.parentnode.removechild(t); t.haschildnodes();) t.removechild(t.firstchild);
t.removeattribute("src"),
"function" == typeof t.load &&
function() {
try {
t.load()
} catch(t) {}
} ()
}
},
jr.resetmediaelement = function(t) {
if (t) {
for (var e = t.queryselectorall("source"), i = e.length; i--;) t.removechild(e[i]);
t.removeattribute("src"),
"function" == typeof t.load &&
function() {
try {
t.load()
} catch(t) {}
} ()
}
},
["paused", "currenttime", "buffered", "volume", "muted", "defaultmuted", "poster", "preload", "autoplay", "controls", "loop", "error", "seeking", "seekable", "ended", "defaultmuted", "playbackrate", "defaultplaybackrate", "played", "networkstate", "readystate", "videowidth", "videoheight"].foreach(function(t) {
jr.prototype[t] = function() {
return this.el_[t]
}
}),
["volume", "muted", "defaultmuted", "src", "poster", "preload", "autoplay", "loop", "playbackrate", "defaultplaybackrate"].foreach(function(t) {
jr.prototype["set" + q(t)] = function(e) {
this.el_[t] = e
}
}),
["pause", "load", "play"].foreach(function(t) {
jr.prototype[t] = function() {
return this.el_[t]()
}
}),
nn.withsourcehandlers(jr),
jr.nativesourcehandler = {},
jr.nativesourcehandler.canplaytype = function(t) {
try {
return jr.test_vid.canplaytype(t)
} catch(t) {
return ""
}
},
jr.nativesourcehandler.canhandlesource = function(t, e) {
if (t.type) return jr.nativesourcehandler.canplaytype(t.type);
if (t.src) {
var i = qi(t.src);
return jr.nativesourcehandler.canplaytype("video/" + i)
}
return ""
},
jr.nativesourcehandler.handlesource = function(t, e, i) {
e.setsrc(t.src)
},
jr.nativesourcehandler.dispose = function() {},
jr.registersourcehandler(jr.nativesourcehandler),
nn.registertech("html5", jr);
var rs = be(["\n using the tech directly can be dangerous. i hope you know what you're doing.\n see https://github.com/videojs/video.js/issues/2617 for more info.\n "], ["\n using the tech directly can be dangerous. i hope you know what you're doing.\n see https://github.com/videojs/video.js/issues/2617 for more info.\n "]),
ss = ["progress", "abort", "suspend", "emptied", "stalled", "loadedmetadata", "loadeddata", "timeupdate", "ratechange", "resize", "volumechange", "texttrackchange"],
os = function(t) {
function e(i, r, s) {
if (oe(this, e), i.id = i.id || "vjs_video_" + n(), r = n(e.gettagsettings(i), r), r.initchildren = !1, r.createel = !1, r.reporttouchactivity = !1, !r.language) if ("function" == typeof i.closest) {
var o = i.closest("[lang]");
o && (r.language = o.getattribute("lang"))
} else for (var a = i; a && 1 === a.nodetype;) {
if (_(a).hasownproperty("lang")) {
r.language = a.getattribute("lang");
break
}
a = a.parentnode
}
var l = ne(this, t.call(this, null, r, s));
if (l.isready_ = !1, !l.options_ || !l.options_.techorder || !l.options_.techorder.length) throw new error("no techorder specified. did you overwrite videojs.options instead of just changing the properties you want to override?");
if (l.tag = i, l.tagattributes = i && _(i), l.language(l.options_.language), r.languages) {
var c = {};
object.getownpropertynames(r.languages).foreach(function(t) {
c[t.tolowercase()] = r.languages[t]
}),
l.languages_ = c
} else l.languages_ = e.prototype.options_.languages;
l.cache_ = {},
l.poster_ = r.poster || "",
l.controls_ = !!r.controls,
l.cache_.lastvolume = 1,
i.controls = !1,
l.scrubbing_ = !1,
l.el_ = l.createel(),
u(l, {
eventbuskey: "el_"
});
var h = z(l.options_);
if (r.plugins) {
var p = r.plugins;
object.keys(p).foreach(function(t) {
if ("function" != typeof this[t]) throw new error('plugin "' + t + '" does not exist');
this[t](p[t])
},
l)
}
l.options_.playeroptions = h,
l.middleware_ = [],
l.initchildren(),
l.isaudio("audio" === i.nodename.tolowercase()),
l.controls() ? l.addclass("vjs-controls-enabled") : l.addclass("vjs-controls-disabled"),
l.el_.setattribute("role", "region"),
l.isaudio() ? l.el_.setattribute("aria-label", l.localize("audio player")) : l.el_.setattribute("aria-label", l.localize("video player")),
l.isaudio() && l.addclass("vjs-audio"),
l.flexnotsupported_() && l.addclass("vjs-no-flex"),
ve || l.addclass("vjs-workinghover"),
e.players[l.id_] = l;
var u = ee.split(".")[0];
return l.addclass("vjs-v" + u),
l.useractive(!0),
l.reportuseractivity(),
l.listenforuseractivity_(),
l.on("fullscreenchange", l.handlefullscreenchange_),
l.on("stageclick", l.handlestageclick_),
l.changingsrc_ = !1,
l
}
return ze(e, t),
e.prototype.dispose = function() {
this.trigger("dispose"),
this.off("dispose"),
this.styleel_ && this.styleel_.parentnode && this.styleel_.parentnode.removechild(this.styleel_),
e.players[this.id_] = null,
this.tag && this.tag.player && (this.tag.player = null),
this.el_ && this.el_.player && (this.el_.player = null),
this.tech_ && this.tech_.dispose(),
t.prototype.dispose.call(this)
},
e.prototype.createel = function() {
var e = this.tag,
i = void 0,
n = this.playerelingest_ = e.parentnode && e.parentnode.hasattribute && e.parentnode.hasattribute("data-vjs-player");
i = this.el_ = n ? e.parentnode: t.prototype.createel.call(this, "div"),
e.setattribute("tabindex", "-1"),
e.removeattribute("width"),
e.removeattribute("height");
var r = _(e);
if (object.getownpropertynames(r).foreach(function(t) {
"class" === t ? i.classname += " " + r[t] : i.setattribute(t, r[t])
}), e.playerid = e.id, e.id += "_html5_api", e.classname = "vjs-tech", e.player = i.player = this, this.addclass("vjs-paused"), !0 !== re.videojs_no_dynamic_style) {
this.styleel_ = si("vjs-styles-dimensions");
var s = qe(".vjs-styles-defaults"),
o = qe("head");
o.insertbefore(this.styleel_, s ? s.nextsibling: o.firstchild)
}
this.width(this.options_.width),
this.height(this.options_.height),
this.fluid(this.options_.fluid),
this.aspectratio(this.options_.aspectratio);
for (var a = e.getelementsbytagname("a"), l = 0; l < a.length; l++) {
var c = a.item(l);
y(c, "vjs-hidden"),
c.setattribute("hidden", "hidden")
}
return e.initnetworkstate_ = e.networkstate,
e.parentnode && !n && e.parentnode.insertbefore(i, e),
v(e, i),
this.children_.unshift(e),
this.el_.setattribute("lang", this.language_),
this.el_ = i,
i
},
e.prototype.width = function(t) {
return this.dimension("width", t)
},
e.prototype.height = function(t) {
return this.dimension("height", t)
},
e.prototype.dimension = function(t, e) {
var i = t + "_";
if (void 0 === e) return this[i] || 0;
if ("" === e) this[i] = void 0;
else {
var n = parsefloat(e);
if (isnan(n)) return void ve.error('improper value "' + e + '" supplied for for ' + t);
this[i] = n
}
this.updatestyleel_()
},
e.prototype.fluid = function(t) {
if (void 0 === t) return !! this.fluid_;
this.fluid_ = !!t,
t ? this.addclass("vjs-fluid") : this.removeclass("vjs-fluid"),
this.updatestyleel_()
},
e.prototype.aspectratio = function(t) {
if (void 0 === t) return this.aspectratio_;
if (!/^\d+\:\d+$/.test(t)) throw new error("improper value supplied for aspect ratio. the format should be width:height, for example 16:9.");
this.aspectratio_ = t,
this.fluid(!0),
this.updatestyleel_()
},
e.prototype.updatestyleel_ = function() {
if (!0 === re.videojs_no_dynamic_style) {
var t = "number" == typeof this.width_ ? this.width_: this.options_.width,
e = "number" == typeof this.height_ ? this.height_: this.options_.height,
i = this.tech_ && this.tech_.el();
return void(i && (t >= 0 && (i.width = t), e >= 0 && (i.height = e)))
}
var n = void 0,
r = void 0,
s = void 0,
o = void 0;
s = void 0 !== this.aspectratio_ && "auto" !== this.aspectratio_ ? this.aspectratio_: this.videowidth() > 0 ? this.videowidth() + ":" + this.videoheight() : "16:9";
var a = s.split(":"),
l = a[1] / a[0];
n = void 0 !== this.width_ ? this.width_: void 0 !== this.height_ ? this.height_ / l: this.videowidth() || 300,
r = void 0 !== this.height_ ? this.height_: n * l,
o = /^[^a-za-z]/.test(this.id()) ? "dimensions-" + this.id() : this.id() + "-dimensions",
this.addclass(o),
oi(this.styleel_, "\n ." + o + " {\n width: " + n + "px;\n height: " + r + "px;\n }\n\n ." + o + ".vjs-fluid {\n padding-top: " + 100 * l + "%;\n }\n ")
},
e.prototype.loadtech_ = function(t, e) {
var i = this;
this.tech_ && this.unloadtech_();
var r = q(t),
s = t.charat(0).tolowercase() + t.slice(1);
"html5" !== r && this.tag && (nn.gettech("html5").disposemediaelement(this.tag), this.tag.player = null, this.tag = null),
this.techname_ = r,
this.isready_ = !1;
var o = {
source: e,
nativecontrolsfortouch: this.options_.nativecontrolsfortouch,
playerid: this.id(),
techid: this.id() + "_" + r + "_api",
autoplay: this.options_.autoplay,
playsinline: this.options_.playsinline,
preload: this.options_.preload,
loop: this.options_.loop,
muted: this.options_.muted,
poster: this.poster(),
language: this.language(),
playerelingest: this.playerelingest_ || !1,
"vtt.js": this.options_["vtt.js"]
};
wn.names.foreach(function(t) {
var e = wn[t];
o[e.gettername] = i[e.privatename]
}),
n(o, this.options_[r]),
n(o, this.options_[s]),
n(o, this.options_[t.tolowercase()]),
this.tag && (o.tag = this.tag),
e && e.src === this.cache_.src && this.cache_.currenttime > 0 && (o.starttime = this.cache_.currenttime);
var a = nn.gettech(t);
if (!a) throw new error("no tech named '" + r + "' exists! '" + r + "' should be registered using videojs.registertech()'");
this.tech_ = new a(o),
this.tech_.ready(ai(this, this.handletechready_), !0),
ai.jsontotexttracks(this.texttracksjson_ || [], this.tech_),
ss.foreach(function(t) {
i.on(i.tech_, t, i["handletech" + q(t) + "_"])
}),
this.on(this.tech_, "loadstart", this.handletechloadstart_),
this.on(this.tech_, "waiting", this.handletechwaiting_),
this.on(this.tech_, "canplay", this.handletechcanplay_),
this.on(this.tech_, "canplaythrough", this.handletechcanplaythrough_),
this.on(this.tech_, "playing", this.handletechplaying_),
this.on(this.tech_, "ended", this.handletechended_),
this.on(this.tech_, "seeking", this.handletechseeking_),
this.on(this.tech_, "seeked", this.handletechseeked_),
this.on(this.tech_, "play", this.handletechplay_),
this.on(this.tech_, "firstplay", this.handletechfirstplay_),
this.on(this.tech_, "pause", this.handletechpause_),
this.on(this.tech_, "durationchange", this.handletechdurationchange_),
this.on(this.tech_, "fullscreenchange", this.handletechfullscreenchange_),
this.on(this.tech_, "error", this.handletecherror_),
this.on(this.tech_, "loadedmetadata", this.updatestyleel_),
this.on(this.tech_, "posterchange", this.handletechposterchange_),
this.on(this.tech_, "textdata", this.handletechtextdata_),
this.usingnativecontrols(this.techget_("controls")),
this.controls() && !this.usingnativecontrols() && this.addtechcontrolslisteners_(),
this.tech_.el().parentnode === this.el() || "html5" === r && this.tag || v(this.tech_.el(), this.el()),
this.tag && (this.tag.player = null, this.tag = null)
},
e.prototype.unloadtech_ = function() {
var t = this;
wn.names.foreach(function(e) {
var i = wn[e];
t[i.privatename] = t[i.gettername]()
}),
this.texttracksjson_ = ai.texttrackstojson(this.tech_),
this.isready_ = !1,
this.tech_.dispose(),
this.tech_ = !1
},
e.prototype.tech = function(t) {
return void 0 === t && ve.warn(we(rs)),
this.tech_
},
e.prototype.addtechcontrolslisteners_ = function() {
this.removetechcontrolslisteners_(),
this.on(this.tech_, "mousedown", this.handletechclick_),
this.on(this.tech_, "touchstart", this.handletechtouchstart_),
this.on(this.tech_, "touchmove", this.handletechtouchmove_),
this.on(this.tech_, "touchend", this.handletechtouchend_),
this.on(this.tech_, "tap", this.handletechtap_)
},
e.prototype.removetechcontrolslisteners_ = function() {
this.off(this.tech_, "tap", this.handletechtap_),
this.off(this.tech_, "touchstart", this.handletechtouchstart_),
this.off(this.tech_, "touchmove", this.handletechtouchmove_),
this.off(this.tech_, "touchend", this.handletechtouchend_),
this.off(this.tech_, "mousedown", this.handletechclick_)
},
e.prototype.handletechready_ = function() {
if (this.triggerready(), this.cache_.volume && this.techcall_("setvolume", this.cache_.volume), this.handletechposterchange_(), this.handletechdurationchange_(), (this.src() || this.currentsrc()) && this.tag && this.options_.autoplay && this.paused()) {
try {
delete this.tag.poster
} catch(t) {
ve("deleting tag.poster throws in some browsers", t)
}
this.play()
}
},
e.prototype.handletechloadstart_ = function() {
this.removeclass("vjs-ended"),
this.removeclass("vjs-seeking"),
this.error(null),
this.paused() ? (this.hasstarted(!1), this.trigger("loadstart")) : (this.trigger("loadstart"), this.trigger("firstplay"))
},
e.prototype.hasstarted = function(t) {
return void 0 !== t ? void(this.hasstarted_ !== t && (this.hasstarted_ = t, t ? (this.addclass("vjs-has-started"), this.trigger("firstplay")) : this.removeclass("vjs-has-started"))) : !!this.hasstarted_
},
e.prototype.handletechplay_ = function() {
this.removeclass("vjs-ended"),
this.removeclass("vjs-paused"),
this.addclass("vjs-playing"),
this.hasstarted(!0),
this.trigger("play")
},
e.prototype.handletechwaiting_ = function() {
var t = this;
this.addclass("vjs-waiting"),
this.trigger("waiting"),
this.one("timeupdate",
function() {
return t.removeclass("vjs-waiting")
})
},
e.prototype.handletechcanplay_ = function() {
this.removeclass("vjs-waiting"),
this.trigger("canplay")
},
e.prototype.handletechcanplaythrough_ = function() {
this.removeclass("vjs-waiting"),
this.trigger("canplaythrough")
},
e.prototype.handletechplaying_ = function() {
this.removeclass("vjs-waiting"),
this.trigger("playing")
},
e.prototype.handletechseeking_ = function() {
this.addclass("vjs-seeking"),
this.trigger("seeking")
},
e.prototype.handletechseeked_ = function() {
this.removeclass("vjs-seeking"),
this.trigger("seeked")
},
e.prototype.handletechfirstplay_ = function() {
this.options_.starttime && (ve.warn("passing the `starttime` option to the player will be deprecated in 6.0"), this.currenttime(this.options_.starttime)),
this.addclass("vjs-has-started"),
this.trigger("firstplay")
},
e.prototype.handletechpause_ = function() {
this.removeclass("vjs-playing"),
this.addclass("vjs-paused"),
this.trigger("pause")
},
e.prototype.handletechended_ = function() {
this.addclass("vjs-ended"),
this.options_.loop ? (this.currenttime(0), this.play()) : this.paused() || this.pause(),
this.trigger("ended")
},
e.prototype.handletechdurationchange_ = function() {
this.duration(this.techget_("duration"))
},
e.prototype.handletechclick_ = function(t) {
0 === t.button && this.controls() && (this.paused() ? this.play() : this.pause())
},
e.prototype.handletechtap_ = function() {
this.useractive(!this.useractive())
},
e.prototype.handletechtouchstart_ = function() {
this.userwasactive = this.useractive()
},
e.prototype.handletechtouchmove_ = function() {
this.userwasactive && this.reportuseractivity()
},
e.prototype.handletechtouchend_ = function(t) {
t.preventdefault()
},
e.prototype.handlefullscreenchange_ = function() {
this.isfullscreen() ? this.addclass("vjs-fullscreen") : this.removeclass("vjs-fullscreen")
},
e.prototype.handlestageclick_ = function() {
this.reportuseractivity()
},
e.prototype.handletechfullscreenchange_ = function(t, e) {
e && this.isfullscreen(e.isfullscreen),
this.trigger("fullscreenchange")
},
e.prototype.handletecherror_ = function() {
var t = this.tech_.error();
this.error(t)
},
e.prototype.handletechtextdata_ = function() {
var t = null;
arguments.length > 1 && (t = arguments[1]),
this.trigger("textdata", t)
},
e.prototype.getcache = function() {
return this.cache_
},
e.prototype.techcall_ = function(t, e) {
this.ready(function() {
if (t in rn) return vt(this.middleware_, this.tech_, t, e);
try {
this.tech_ && this.tech_[t](e)
} catch(t) {
throw ve(t),
t
}
},
!0)
},
e.prototype.techget_ = function(t) {
if (this.tech_ && this.tech_.isready_) {
if (t in ln) return yt(this.middleware_, this.tech_, t);
try {
return this.tech_[t]()
} catch(e) {
throw void 0 === this.tech_[t] ? ve("video.js: " + t + " method not defined for " + this.techname_ + " playback technology.", e) : "typeerror" === e.name ? (ve("video.js: " + t + " unavailable on " + this.techname_ + " playback technology element.", e), this.tech_.isready_ = !1) : ve(e),
e
}
}
},
e.prototype.play = function() {
if (this.changingsrc_) this.ready(function() {
var t = this.techget_("play");
void 0 !== t && "function" == typeof t.then && t.then(null,
function(t) {})
});
else {
if (this.isready_ && (this.src() || this.currentsrc())) return this.techget_("play");
this.ready(function() {
this.tech_.one("loadstart",
function() {
var t = this.play();
void 0 !== t && "function" == typeof t.then && t.then(null,
function(t) {})
})
})
}
},
e.prototype.pause = function() {
this.techcall_("pause")
},
e.prototype.paused = function() {
return ! 1 !== this.techget_("paused")
},
e.prototype.played = function() {
return this.techget_("played") || it(0, 0)
},
e.prototype.scrubbing = function(t) {
if (void 0 === t) return this.scrubbing_;
this.scrubbing_ = !!t,
t ? this.addclass("vjs-scrubbing") : this.removeclass("vjs-scrubbing")
},
e.prototype.currenttime = function(t) {
return void 0 !== t ? void this.techcall_("setcurrenttime", t) : (this.cache_.currenttime = this.techget_("currenttime") || 0, this.cache_.currenttime)
},
e.prototype.duration = function(t) {
if (void 0 === t) return void 0 !== this.cache_.duration ? this.cache_.duration: nan;
t = parsefloat(t),
t < 0 && (t = 1 / 0),
t !== this.cache_.duration && (this.cache_.duration = t, t === 1 / 0 ? this.addclass("vjs-live") : this.removeclass("vjs-live"), this.trigger("durationchange"))
},
e.prototype.remainingtime = function() {
return this.duration() - this.currenttime()
},
e.prototype.buffered = function() {
var t = this.techget_("buffered");
return t && t.length || (t = it(0, 0)),
t
},
e.prototype.bufferedpercent = function() {
return nt(this.buffered(), this.duration())
},
e.prototype.bufferedend = function() {
var t = this.buffered(),
e = this.duration(),
i = t.end(t.length - 1);
return i > e && (i = e),
i
},
e.prototype.volume = function(t) {
var e = void 0;
return void 0 !== t ? (e = math.max(0, math.min(1, parsefloat(t))), this.cache_.volume = e, this.techcall_("setvolume", e), void(e > 0 && this.lastvolume_(e))) : (e = parsefloat(this.techget_("volume")), isnan(e) ? 1 : e)
},
e.prototype.muted = function(t) {
return void 0 !== t ? void this.techcall_("setmuted", t) : this.techget_("muted") || !1
},
e.prototype.defaultmuted = function(t) {
return void 0 !== t ? this.techcall_("setdefaultmuted", t) : this.techget_("defaultmuted") || !1
},
e.prototype.lastvolume_ = function(t) {
return void 0 !== t && 0 !== t ? void(this.cache_.lastvolume = t) : this.cache_.lastvolume
},
e.prototype.supportsfullscreen = function() {
return this.techget_("supportsfullscreen") || !1
},
e.prototype.isfullscreen = function(t) {
return void 0 !== t ? void(this.isfullscreen_ = !!t) : !!this.isfullscreen_
},
e.prototype.requestfullscreen = function() {
var t = ti;
this.isfullscreen(!0),
t.requestfullscreen ? (y(ce, t.fullscreenchange, ai(this,
function e(i) {
this.isfullscreen(ce[t.fullscreenelement]),
!1 === this.isfullscreen() && v(ce, t.fullscreenchange, e),
this.trigger("fullscreenchange")
})), this.el_[t.requestfullscreen]()) : this.tech_.supportsfullscreen() ? this.techcall_("enterfullscreen") : (this.enterfullwindow(), this.trigger("fullscreenchange"))
},
e.prototype.exitfullscreen = function() {
var t = ti;
this.isfullscreen(!1),
t.requestfullscreen ? ce[t.exitfullscreen]() : this.tech_.supportsfullscreen() ? this.techcall_("exitfullscreen") : (this.exitfullwindow(), this.trigger("fullscreenchange"))
},
e.prototype.enterfullwindow = function() {
this.isfullwindow = !0,
this.docorigoverflow = ce.documentelement.style.overflow,
y(ce, "keydown", ai(this, this.fullwindowonesckey)),
ce.documentelement.style.overflow = "hidden",
y(ce.body, "vjs-full-window"),
this.trigger("enterfullwindow")
},
e.prototype.fullwindowonesckey = function(t) {
27 === t.keycode && (!0 === this.isfullscreen() ? this.exitfullscreen() : this.exitfullwindow())
},
e.prototype.exitfullwindow = function() {
this.isfullwindow = !1,
v(ce, "keydown", this.fullwindowonesckey),
ce.documentelement.style.overflow = this.docorigoverflow,
b(ce.body, "vjs-full-window"),
this.trigger("exitfullwindow")
},
e.prototype.canplaytype = function(t) {
for (var e = void 0,
i = 0,
n = this.options_.techorder; i < n.length; i++) {
var r = n[i],
s = nn.gettech(r);
if (s || (s = bi.getcomponent(r)), s) {
if (s.issupported() && (e = s.canplaytype(t))) return e
} else ve.error('the "' + r + '" tech is undefined. skipped browser support check for that tech.')
}
return ""
},
e.prototype.selectsource = function(t) {
var e = this,
i = this.options_.techorder.map(function(t) {
return [t, nn.gettech(t)]
}).filter(function(t) {
var e = t[0],
i = t[1];
return i ? i.issupported() : (ve.error('the "' + e + '" tech is undefined. skipped browser support check for that tech.'), !1)
}),
n = function(t, e, i) {
var n = void 0;
return t.some(function(t) {
return e.some(function(e) {
if (n = i(t, e)) return ! 0
})
}),
n
},
r = function(t, i) {
var n = t[0];
if (t[1].canplaysource(i, e.options_[n.tolowercase()])) return {
source: i,
tech: n
}
};
return (this.options_.sourceorder ? n(t, i,
function(t) {
return function(e, i) {
return t(i, e)
}
} (r)) : n(i, t, r)) || !1
},
e.prototype.src = function(t) {
var e = this;
if (void 0 === t) return this.cache_.src;
var i = hn(t);
if (!i.length) return void this.settimeout(function() {
this.error({
code: 4,
message: this.localize(this.options_.notsupportedmessage)
})
},
0);
this.cache_.sources = i,
this.changingsrc_ = !0,
this.cache_.source = i[0],
ft(this, i[0],
function(t, n) {
if (e.middleware_ = n, e.src_(t)) return i.length > 1 ? e.src(i.slice(1)) : (e.settimeout(function() {
this.error({
code: 4,
message: this.localize(this.options_.notsupportedmessage)
})
},
0), void e.triggerready());
e.changingsrc_ = !1,
e.cache_.src = t.src,
xt(n, e.tech_)
})
},
e.prototype.src_ = function(t) {
var e = this.selectsource([t]);
return ! e || ($(e.tech, this.techname_) ? (this.ready(function() {
this.tech_.constructor.prototype.hasownproperty("setsource") ? this.techcall_("setsource", t) : this.techcall_("src", t.src),
"auto" === this.options_.preload && this.load(),
this.options_.autoplay && this.play()
},
!0), !1) : (this.changingsrc_ = !0, this.loadtech_(e.tech, e.source), !1))
},
e.prototype.load = function() {
this.techcall_("load")
},
e.prototype.reset = function() {
this.loadtech_(this.options_.techorder[0], null),
this.techcall_("reset")
},
e.prototype.currentsources = function() {
var t = this.currentsource(),
e = [];
return 0 !== object.keys(t).length && e.push(t),
this.cache_.sources || e
},
e.prototype.currentsource = function() {
return this.cache_.source || {}
},
e.prototype.currentsrc = function() {
return this.currentsource() && this.currentsource().src || ""
},
e.prototype.currenttype = function() {
return this.currentsource() && this.currentsource().type || ""
},
e.prototype.preload = function(t) {
return void 0 !== t ? (this.techcall_("setpreload", t), void(this.options_.preload = t)) : this.techget_("preload")
},
e.prototype.autoplay = function(t) {
return void 0 !== t ? (this.techcall_("setautoplay", t), void(this.options_.autoplay = t)) : this.techget_("autoplay", t)
},
e.prototype.playsinline = function(t) {
return void 0 !== t ? (this.techcall_("setplaysinline", t), this.options_.playsinline = t, this) : this.techget_("playsinline")
},
e.prototype.loop = function(t) {
return void 0 !== t ? (this.techcall_("setloop", t), void(this.options_.loop = t)) : this.techget_("loop")
},
e.prototype.poster = function(t) {
if (void 0 === t) return this.poster_;
t || (t = ""),
this.poster_ = t,
this.techcall_("setposter", t),
this.trigger("posterchange")
},
e.prototype.handletechposterchange_ = function() { ! this.poster_ && this.tech_ && this.tech_.poster && (this.poster_ = this.tech_.poster() || "", this.trigger("posterchange"))
},
e.prototype.controls = function(t) {
return void 0 !== t ? (t = !!t, void(this.controls_ !== t && (this.controls_ = t, this.usingnativecontrols() && this.techcall_("setcontrols", t), t ? (this.removeclass("vjs-controls-disabled"), this.addclass("vjs-controls-enabled"), this.trigger("controlsenabled"), this.usingnativecontrols() || this.addtechcontrolslisteners_()) : (this.removeclass("vjs-controls-enabled"), this.addclass("vjs-controls-disabled"), this.trigger("controlsdisabled"), this.usingnativecontrols() || this.removetechcontrolslisteners_())))) : !!this.controls_
},
e.prototype.usingnativecontrols = function(t) {
return void 0 !== t ? (t = !!t, void(this.usingnativecontrols_ !== t && (this.usingnativecontrols_ = t, t ? (this.addclass("vjs-using-native-controls"), this.trigger("usingnativecontrols")) : (this.removeclass("vjs-using-native-controls"), this.trigger("usingcustomcontrols"))))) : !!this.usingnativecontrols_
},
e.prototype.error = function(t) {
return void 0 === t ? this.error_ || null: null === t ? (this.error_ = t, this.removeclass("vjs-error"), void(this.errordisplay && this.errordisplay.close())) : (this.error_ = new rt(t), this.addclass("vjs-error"), ve.error("(code:" + this.error_.code + " " + rt.errortypes[this.error_.code] + ")", this.error_.message, this.error_), void this.trigger("error"))
},
e.prototype.reportuseractivity = function(t) {
this.useractivity_ = !0
},
e.prototype.useractive = function(t) {
return void 0 !== t ? void((t = !!t) !== this.useractive_ && (this.useractive_ = t, t ? (this.useractivity_ = !0, this.removeclass("vjs-user-inactive"), this.addclass("vjs-user-active"), this.trigger("useractive")) : (this.useractivity_ = !1, this.tech_ && this.tech_.one("mousemove",
function(t) {
t.stoppropagation(),
t.preventdefault()
}), this.removeclass("vjs-user-active"), this.addclass("vjs-user-inactive"), this.trigger("userinactive")))) : this.useractive_
},
e.prototype.listenforuseractivity_ = function() {
var t = void 0,
e = void 0,
i = void 0,
n = ai(this, this.reportuseractivity),
r = function(t) {
t.screenx === e && t.screeny === i || (e = t.screenx, i = t.screeny, n())
},
s = function() {
n(),
this.clearinterval(t),
t = this.setinterval(n, 250)
},
o = function(e) {
n(),
this.clearinterval(t)
};
this.on("mousedown", s),
this.on("mousemove", r),
this.on("mouseup", o),
this.on("keydown", n),
this.on("keyup", n);
var a = void 0;
this.setinterval(function() {
if (this.useractivity_) {
this.useractivity_ = !1,
this.useractive(!0),
this.cleartimeout(a);
var t = this.options_.inactivitytimeout;
t > 0 && (a = this.settimeout(function() {
this.useractivity_ || this.useractive(!1)
},
t))
}
},
250)
},
e.prototype.playbackrate = function(t) {
return void 0 !== t ? void this.techcall_("setplaybackrate", t) : this.tech_ && this.tech_.featuresplaybackrate ? this.techget_("playbackrate") : 1
},
e.prototype.defaultplaybackrate = function(t) {
return void 0 !== t ? this.techcall_("setdefaultplaybackrate", t) : this.tech_ && this.tech_.featuresplaybackrate ? this.techget_("defaultplaybackrate") : 1
},
e.prototype.isaudio = function(t) {
return void 0 !== t ? void(this.isaudio_ = !!t) : !!this.isaudio_
},
e.prototype.addtexttrack = function(t, e, i) {
if (this.tech_) return this.tech_.addtexttrack(t, e, i)
},
e.prototype.addremotetexttrack = function(t, e) {
if (this.tech_) return this.tech_.addremotetexttrack(t, e)
},
e.prototype.removeremotetexttrack = function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
e = t.track,
i = void 0 === e ? arguments[0] : e;
if (this.tech_) return this.tech_.removeremotetexttrack(i)
},
e.prototype.getvideoplaybackquality = function() {
return this.techget_("getvideoplaybackquality")
},
e.prototype.videowidth = function() {
return this.tech_ && this.tech_.videowidth && this.tech_.videowidth() || 0
},
e.prototype.videoheight = function() {
return this.tech_ && this.tech_.videoheight && this.tech_.videoheight() || 0
},
e.prototype.language = function(t) {
if (void 0 === t) return this.language_;
this.language_ = string(t).tolowercase()
},
e.prototype.languages = function() {
return z(e.prototype.options_.languages, this.languages_)
},
e.prototype.tojson = function() {
var t = z(this.options_),
e = t.tracks;
t.tracks = [];
for (var i = 0; i < e.length; i++) {
var n = e[i];
n = z(n),
n.player = void 0,
t.tracks[i] = n
}
return t
},
e.prototype.createmodal = function(t, e) {
var i = this;
e = e || {},
e.content = t || "";
var n = new di(this, e);
return this.addchild(n),
n.on("dispose",
function() {
i.removechild(n)
}),
n.open(),
n
},
e.gettagsettings = function(t) {
var e = {
sources: [],
tracks: []
},
i = _(t),
r = i["data-setup"];
if (g(t, "vjs-fluid") && (i.fluid = !0), null !== r) {
var s = ei(r || "{}"),
o = s[0],
a = s[1];
o && ve.error(o),
n(i, a)
}
if (n(e, i), t.haschildnodes()) for (var l = t.childnodes,
c = 0,
h = l.length; c < h; c++) {
var p = l[c],
u = p.nodename.tolowercase();
"source" === u ? e.sources.push(_(p)) : "track" === u && e.tracks.push(_(p))
}
return e
},
e.prototype.flexnotsupported_ = function() {
var t = ce.createelement("i");
return ! ("flexbasis" in t.style || "webkitflexbasis" in t.style || "mozflexbasis" in t.style || "msflexbasis" in t.style || "msflexorder" in t.style)
},
e
} (bi);
wn.names.foreach(function(t) {
var e = wn[t];
os.prototype[e.gettername] = function() {
return this.tech_ ? this.tech_[e.gettername]() : (this[e.privatename] = this[e.privatename] || new e.listclass, this[e.privatename])
}
}),
os.players = {};
var as = re.navigator;
os.prototype.options_ = {
techorder: nn.defaulttechorder_,
html5: {},
flash: {},
inactivitytimeout: 2e3,
playbackrates: [],
children: ["medialoader", "posterimage", "texttrackdisplay", "loadingspinner", "bigplaybutton", "controlbar", "errordisplay", "texttracksettings"],
language: as && (as.languages && as.languages[0] || as.userlanguage || as.language) || "en",
languages: {},
notsupportedmessage: "no compatible source was found for this media."
},
["ended", "seeking", "seekable", "networkstate", "readystate"].foreach(function(t) {
os.prototype[t] = function() {
return this.techget_(t)
}
}),
ss.foreach(function(t) {
os.prototype["handletech" + q(t) + "_"] = function() {
return this.trigger(t)
}
}),
bi.registercomponent("player", os);
var ls = {},
cs = function(t) {
return ls.hasownproperty(t)
},
hs = function(t) {
return cs(t) ? ls[t] : void 0
},
ps = function(t, e) {
t.activeplugins_ = t.activeplugins_ || {},
t.activeplugins_[e] = !0
},
us = function(t, e, i) {
var n = (i ? "before": "") + "pluginsetup";
t.trigger(n, e),
t.trigger(n + ":" + e.name, e)
},
ds = function(t, e) {
var i = function() {
us(this, {
name: t,
plugin: e,
instance: null
},
!0);
var i = e.apply(this, arguments);
return ps(this, t),
us(this, {
name: t,
plugin: e,
instance: i
}),
i
};
return object.keys(e).foreach(function(t) {
i[t] = e[t]
}),
i
},
fs = function(t, e) {
return e.prototype.name = t,
function() {
us(this, {
name: t,
plugin: e,
instance: null
},
!0);
for (var i = arguments.length,
n = array(i), r = 0; r < i; r++) n[r] = arguments[r];
var s = new(function.prototype.bind.apply(e, [null].concat([this].concat(n))));
return this[t] = function() {
return s
},
us(this, s.geteventhash()),
s
}
},
ms = function() {
function t(e) {
if (oe(this, t), this.constructor === t) throw new error("plugin must be sub-classed; not directly instantiated.");
this.player = e,
u(this),
delete this.trigger,
k(this, this.constructor.defaultstate),
ps(e, this.name),
this.dispose = ai(this, this.dispose),
e.on("dispose", this.dispose)
}
return t.prototype.geteventhash = function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
return t.name = this.name,
t.plugin = this.constructor,
t.instance = this,
t
},
t.prototype.trigger = function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
return w(this.eventbusel_, t, this.geteventhash(e))
},
t.prototype.handlestatechanged = function(t) {},
t.prototype.dispose = function() {
var t = this.name,
e = this.player;
this.trigger("dispose"),
this.off(),
e.off("dispose", this.dispose),
e.activeplugins_[t] = !1,
this.player = this.state = null,
e[t] = fs(t, ls[t])
},
t.isbasic = function(e) {
var i = "string" == typeof e ? hs(e) : e;
return "function" == typeof i && !t.prototype.isprototypeof(i.prototype)
},
t.registerplugin = function(e, i) {
if ("string" != typeof e) throw new error('illegal plugin name, "' + e + '", must be a string, was ' + (void 0 === e ? "undefined": de(e)) + ".");
if (cs(e)) ve.warn('a plugin named "' + e + '" already exists. you may want to avoid re-registering plugins!');
else if (os.prototype.hasownproperty(e)) throw new error('illegal plugin name, "' + e + '", cannot share a name with an existing player method!');
if ("function" != typeof i) throw new error('illegal plugin for "' + e + '", must be a function, was ' + (void 0 === i ? "undefined": de(i)) + ".");
return ls[e] = i,
"plugin" !== e && (t.isbasic(i) ? os.prototype[e] = ds(e, i) : os.prototype[e] = fs(e, i)),
i
},
t.deregisterplugin = function(t) {
if ("plugin" === t) throw new error("cannot de-register base plugin.");
cs(t) && (delete ls[t], delete os.prototype[t])
},
t.getplugins = function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : object.keys(ls),
e = void 0;
return t.foreach(function(t) {
var i = hs(t);
i && (e = e || {},
e[t] = i)
}),
e
},
t.getpluginversion = function(t) {
var e = hs(t);
return e && e.version || ""
},
t
} ();
ms.getplugin = hs,
ms.base_plugin_name = "plugin",
ms.registerplugin("plugin", ms),
os.prototype.usingplugin = function(t) {
return !! this.activeplugins_ && !0 === this.activeplugins_[t]
},
os.prototype.hasplugin = function(t) {
return !! cs(t)
};
var vs = function(t, e) {
if ("function" != typeof e && null !== e) throw new typeerror("super expression must either be null or a function, not " + (void 0 === e ? "undefined": de(e)));
t.prototype = object.create(e && e.prototype, {
constructor: {
value: t,
enumerable: !1,
writable: !0,
configurable: !0
}
}),
e && (t.super_ = e)
},
gs = function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
i = function() {
t.apply(this, arguments)
},
n = {};
"object" === (void 0 === e ? "undefined": de(e)) ? (e.constructor !== object.prototype.constructor && (i = e.constructor), n = e) : "function" == typeof e && (i = e),
vs(i, t);
for (var r in n) n.hasownproperty(r) && (i.prototype[r] = n[r]);
return i
};
if ("undefined" == typeof htmlvideoelement && p() && (ce.createelement("video"), ce.createelement("audio"), ce.createelement("track")), jt.hooks_ = {},
jt.hooks = function(t, e) {
return jt.hooks_[t] = jt.hooks_[t] || [],
e && (jt.hooks_[t] = jt.hooks_[t].concat(e)),
jt.hooks_[t]
},
jt.hook = function(t, e) {
jt.hooks(t, e)
},
jt.removehook = function(t, e) {
var i = jt.hooks(t).indexof(e);
return ! (i <= -1 || (jt.hooks_[t] = jt.hooks_[t].slice(), jt.hooks_[t].splice(i, 1), 0))
},
!0 !== re.videojs_no_dynamic_style && p()) {
var ys = qe(".vjs-styles-defaults");
if (!ys) {
ys = si("vjs-styles-defaults");
var bs = qe("head");
bs && bs.insertbefore(ys, bs.firstchild),
oi(ys, "\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")
}
}
return q(1, jt),
jt.version = ee,
jt.options = os.prototype.options_,
jt.getplayers = function() {
return os.players
},
jt.players = os.players,
jt.getcomponent = bi.getcomponent,
jt.registercomponent = function(t, e) {
nn.istech(e) && ve.warn("the " + t + " tech was registered as a component. it should instead be registered using videojs.registertech(name, tech)"),
bi.registercomponent.call(bi, t, e)
},
jt.gettech = nn.gettech,
jt.registertech = nn.registertech,
jt.use = ht,
jt.browser = je,
jt.touch_enabled = ie,
jt.extend = gs,
jt.mergeoptions = z,
jt.bind = ai,
jt.registerplugin = ms.registerplugin,
jt.plugin = function(t, e) {
return ve.warn("videojs.plugin() is deprecated; use videojs.registerplugin() instead"),
ms.registerplugin(t, e)
},
jt.getplugins = ms.getplugins,
jt.getplugin = ms.getplugin,
jt.getpluginversion = ms.getpluginversion,
jt.addlanguage = function(t, e) {
var i;
return t = ("" + t).tolowercase(),
jt.options.languages = z(jt.options.languages, (i = {},
i[t] = e, i)),
jt.options.languages[t]
},
jt.log = ve,
jt.createtimerange = jt.createtimeranges = it,
jt.formattime = kt,
jt.parseurl = ui,
jt.iscrossorigin = $i,
jt.eventtarget = ci,
jt.on = y,
jt.one = g,
jt.off = v,
jt.trigger = w,
jt.xhr = hn,
jt.texttrack = dn,
jt.audiotrack = fn,
jt.videotrack = mn,
["isel", "istextnode", "createel", "hasclass", "addclass", "removeclass", "toggleclass", "setattributes", "getattributes", "emptyel", "appendcontent", "insertcontent"].foreach(function(t) {
jt[t] = function() {
return ve.warn("videojs." + t + "() is deprecated; use videojs.dom." + t + "() instead"),
ke[t].apply(null, arguments)
}
}),
jt.computedstyle = a,
jt.dom = ke,
jt.url = zi,
jt
}),
function() { !
function(t) {
var e = t && t.videojs;
e && (e.cdn_version = "6.2.5")
} (window),
function(t, e, i, n, r, s, o) {
e && !1 !== e.help_improve_videojs && (r.random() > .01 || (s = e.location, o = e.videojs || {},
t.src = "//www.google-analytics.com/__utm.gif?utmwv=5.4.2&utmac=ua-16505296-3&utmn=1&utmhn=" + n(s.hostname) + "&utmsr=" + e.screen.availwidth + "x" + e.screen.availheight + "&utmul=" + (i.language || i.userlanguage || "").tolowercase() + "&utmr=" + n(s.href) + "&utmp=" + n(s.hostname + s.pathname) + "&utmcc=__utma%3d1." + r.floor(1e10 * r.random()) + ".1.1.1.1%3b&utme=8(vjsv*cdnv)9(" + o.version + "*" + o.cdn_version + ")"))
} (new image, window, navigator, encodeuricomponent, math)
} ();