"undefined" == typeof jwplayer && (jwplayer = function (h) { if (jwplayer.api)return jwplayer.api.selectPlayer(h) }, jwplayer.version = "6.10.4906", jwplayer.vid = document.createElement("video"), jwplayer.audio = document.createElement("audio"), jwplayer.source = document.createElement("source"), function (h) { function c(f) { return function () { return a(f) } } function l(f, a, k, m, d) { return function () { var b, c; if (d)k(f); else { try { if (b = f.responseXML)if (c = b.firstChild, b.lastChild && "parsererror" === b.lastChild.nodeName) { m && m("Invalid XML", a, f); return } } catch (g) { } if (b && c)return k(f); (b = e.parseXML(f.responseText)) && b.firstChild ? (f = e.extend({}, f, {responseXML: b}), k(f)) : m && m(f.responseText ? "Invalid XML" : a, a, f) } } } var j = document, g = window, b = navigator, e = h.utils = {}; e.exists = function (f) { switch (typeof f) { case "string": return 0 < f.length; case "object": return null !== f; case "undefined": return !1 } return !0 }; e.styleDimension = function (f) { return f + (0 < f.toString().indexOf("%") ? "" : "px") }; e.getAbsolutePath = function (f, a) { e.exists(a) || (a = j.location.href); if (e.exists(f)) { var k; if (e.exists(f)) { k = f.indexOf("://"); var m = f.indexOf("?"); k = 0 < k && (0 > m || m > k) } else k = void 0; if (k)return f; k = a.substring(0, a.indexOf("://") + 3); var m = a.substring(k.length, a.indexOf("/", k.length + 1)), b; 0 === f.indexOf("/") ? b = f.split("/") : (b = a.split("?")[0], b = b.substring(k.length + m.length + 1, b.lastIndexOf("/")), b = b.split("/").concat(f.split("/"))); for (var d = [], c = 0; c < b.length; c++)b[c] && (e.exists(b[c]) && "." != b[c]) && (".." == b[c] ? d.pop() : d.push(b[c])); return k + m + "/" + d.join("/") } }; e.extend = function () { var f = Array.prototype.slice.call(arguments, 0); if (1 < f.length) { for (var a = f[0], k = function (f, m) { void 0 !== m && null !== m && (a[f] = m) }, m = 1; m < f.length; m++)e.foreach(f[m], k); return a } return null }; var n = window.console = window.console || { log: function () { } }; e.log = function () { var f = Array.prototype.slice.call(arguments, 0); "object" === typeof n.log ? n.log(f) : n.log.apply(n, f) }; var a = e.userAgentMatch = function (f) { return null !== b.userAgent.toLowerCase().match(f) }; e.isFF = c(/firefox/i); e.isChrome = c(/chrome/i); e.isIPod = c(/iP(hone|od)/i); e.isIPad = c(/iPad/i); e.isSafari602 = c(/Macintosh.*Mac OS X 10_8.*6\.0\.\d* Safari/i); e.isIETrident = function (f) { return f ? (f = parseFloat(f).toFixed(1), a(RegExp("trident/.+rv:\\s*" + f, "i"))) : a(/trident/i) }; e.isMSIE = function (f) { return f ? (f = parseFloat(f).toFixed(1), a(RegExp("msie\\s*" + f, "i"))) : a(/msie/i) }; e.isIE = function (f) { return f ? (f = parseFloat(f).toFixed(1), 11 <= f ? e.isIETrident(f) : e.isMSIE(f)) : e.isMSIE() || e.isIETrident() }; e.isSafari = function () { return a(/safari/i) && !a(/chrome/i) && !a(/chromium/i) && !a(/android/i) }; e.isIOS = function (f) { return f ? a(RegExp("iP(hone|ad|od).+\\sOS\\s" + f, "i")) : a(/iP(hone|ad|od)/i) }; e.isAndroidNative = function (f) { return e.isAndroid(f, !0) }; e.isAndroid = function (f, b) { return b && a(/chrome\/[123456789]/i) && !a(/chrome\/18/) ? !1 : f ? (e.isInt(f) && !/\./.test(f) && (f = "" + f + "."), a(RegExp("Android\\s*" + f, "i"))) : a(/Android/i) }; e.isMobile = function () { return e.isIOS() || e.isAndroid() }; e.saveCookie = function (f, a) { j.cookie = "jwplayer." + f + "\x3d" + a + "; path\x3d/" }; e.getCookies = function () { for (var f = {}, a = j.cookie.split("; "), k = 0; k < a.length; k++) { var m = a[k].split("\x3d"); 0 === m[0].indexOf("jwplayer.") && (f[m[0].substring(9, m[0].length)] = m[1]) } return f }; e.isInt = function (f) { return 0 === f % 1 }; e.typeOf = function (f) { var a = typeof f; return "object" === a ? !f ? "null" : f instanceof Array ? "array" : a : a }; e.translateEventResponse = function (f, a) { var k = e.extend({}, a); if (f == h.events.JWPLAYER_FULLSCREEN && !k.fullscreen)k.fullscreen = "true" === k.message, delete k.message; else if ("object" == typeof k.data) { var m = k.data; delete k.data; k = e.extend(k, m) } else"object" == typeof k.metadata && e.deepReplaceKeyName(k.metadata, ["__dot__", "__spc__", "__dsh__", "__default__"], [".", " ", "-", "default"]); e.foreach(["position", "duration", "offset"], function (f, m) { k[m] && (k[m] = Math.round(1E3 * k[m]) / 1E3) }); return k }; e.flashVersion = function () { if (e.isAndroid())return 0; var f = b.plugins, a; try { if ("undefined" !== f && (a = f["Shockwave Flash"]))return parseInt(a.description.replace(/\D+(\d+)\..*/, "$1"), 10) } catch (k) { } if ("undefined" != typeof g.ActiveXObject)try { if (a = new g.ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return parseInt(a.GetVariable("$version").split(" ")[1].split(",")[0], 10) } catch (m) { } return 0 }; e.getScriptPath = function (f) { for (var a = j.getElementsByTagName("script"), k = 0; k < a.length; k++) { var m = a[k].src; if (m && 0 <= m.indexOf(f))return m.substr(0, m.indexOf(f)) } return "" }; e.deepReplaceKeyName = function (f, a, k) { switch (h.utils.typeOf(f)) { case "array": for (var m = 0; m < f.length; m++)f[m] = h.utils.deepReplaceKeyName(f[m], a, k); break; case "object": e.foreach(f, function (m, b) { var e; if (a instanceof Array && k instanceof Array) { if (a.length != k.length)return; e = a } else e = [a]; for (var d = m, c = 0; c < e.length; c++)d = d.replace(RegExp(a[c], "g"), k[c]); f[d] = h.utils.deepReplaceKeyName(b, a, k); m != d && delete f[m] }) } return f }; var d = e.pluginPathType = {ABSOLUTE: 0, RELATIVE: 1, CDN: 2}; e.getPluginPathType = function (f) { if ("string" == typeof f) { f = f.split("?")[0]; var a = f.indexOf("://"); if (0 < a)return d.ABSOLUTE; var k = f.indexOf("/"); f = e.extension(f); return 0 > a && 0 > k && (!f || !isNaN(f)) ? d.CDN : d.RELATIVE } }; e.getPluginName = function (f) { return f.replace(/^(.*\/)?([^-]*)-?.*\.(swf|js)$/, "$2") }; e.getPluginVersion = function (f) { return f.replace(/[^-]*-?([^\.]*).*$/, "$1") }; e.isYouTube = function (f) { return /^(http|\/\/).*(youtube\.com|youtu\.be)\/.+/.test(f) }; e.youTubeID = function (f) { try { return /v[=\/]([^?&]*)|youtu\.be\/([^?]*)|^([\w-]*)$/i.exec(f).slice(1).join("").replace("?", "") } catch (a) { return "" } }; e.isRtmp = function (f, a) { return 0 === f.indexOf("rtmp") || "rtmp" == a }; e.foreach = function (f, a) { var k, m; for (k in f)"function" == e.typeOf(f.hasOwnProperty) ? f.hasOwnProperty(k) && (m = f[k], a(k, m)) : (m = f[k], a(k, m)) }; e.isHTTPS = function () { return 0 === g.location.href.indexOf("https") }; e.repo = function () { var f = "http://localhost/" + h.version.split(/\W/).splice(0, 2).join("/") + "/"; try { e.isHTTPS() && (f = f.replace("http://", "https://ssl.")) } catch (a) { } return f }; e.versionCheck = function (f) { f = ("0" + f).split(/\W/); var a = h.version.split(/\W/), k = parseFloat(f[0]), m = parseFloat(a[0]); return k > m || k === m && parseFloat("0" + f[1]) > parseFloat(a[1]) ? !1 : !0 }; e.ajax = function (f, a, k, m) { var b, d = !1; 0 < f.indexOf("#") && (f = f.replace(/#.*$/, "")); if (f && 0 <= f.indexOf("://") && f.split("/")[2] != g.location.href.split("/")[2] && e.exists(g.XDomainRequest))b = new g.XDomainRequest, b.onload = l(b, f, a, k, m), b.ontimeout = b.onprogress = function () { }, b.timeout = 5E3; else if (e.exists(g.XMLHttpRequest)) { var c = b = new g.XMLHttpRequest, j = f; b.onreadystatechange = function () { if (4 === c.readyState)switch (c.status) { case 200: l(c, j, a, k, m)(); break; case 404: k("File not found", j, c) } } } else return k && k("", f, b), b; b.overrideMimeType && b.overrideMimeType("text/xml"); var n = f, h = b; b.onerror = function () { k("Error loading file", n, h) }; try { b.open("GET", f, !0) } catch (G) { d = !0 } setTimeout(function () { if (d)k && k(f, f, b); else try { b.send() } catch (a) { k && k(f, f, b) } }, 0); return b }; e.parseXML = function (a) { var b; try { if (g.DOMParser) { if (b = (new g.DOMParser).parseFromString(a, "text/xml"), b.childNodes && b.childNodes.length && "parsererror" == b.childNodes[0].firstChild.nodeName)return } else b = new g.ActiveXObject("Microsoft.XMLDOM"), b.async = "false", b.loadXML(a) } catch (k) { return } return b }; e.filterPlaylist = function (a, b, k) { var m = [], d, c, g, j; for (d = 0; d < a.length; d++)if (c = e.extend({}, a[d]), c.sources = e.filterSources(c.sources, !1, k), 0 < c.sources.length) { for (g = 0; g < c.sources.length; g++)j = c.sources[g], j.label || (j.label = g.toString()); m.push(c) } if (b && 0 === m.length)for (d = 0; d < a.length; d++)if (c = e.extend({}, a[d]), c.sources = e.filterSources(c.sources, !0, k), 0 < c.sources.length) { for (g = 0; g < c.sources.length; g++)j = c.sources[g], j.label || (j.label = g.toString()); m.push(c) } return m }; e.between = function (a, b, d) { return Math.max(Math.min(a, d), b) }; e.filterSources = function (a, b, d) { var m, c; if (a) { c = []; for (var g = 0; g < a.length; g++) { var j = e.extend({}, a[g]), n = j.file, l = j.type; n && (j.file = n = e.trim("" + n), l || (l = e.extension(n), j.type = l = e.extensionmap.extType(l)), b ? h.embed.flashCanPlay(n, l) && (m || (m = l), l == m && c.push(j)) : h.embed.html5CanPlay(n, l, d) && (m || (m = l), l == m && c.push(j))) } } return c }; e.canPlayHTML5 = function (a) { a = e.extensionmap.types[a]; return !!a && !!h.vid.canPlayType && !!h.vid.canPlayType(a) }; e.seconds = function (a) { a = a.replace(",", "."); var b = a.split(":"), d = 0; "s" == a.slice(-1) ? d = parseFloat(a) : "m" == a.slice(-1) ? d = 60 * parseFloat(a) : "h" == a.slice(-1) ? d = 3600 * parseFloat(a) : 1 < b.length ? (d = parseFloat(b[b.length - 1]), d += 60 * parseFloat(b[b.length - 2]), 3 == b.length && (d += 3600 * parseFloat(b[b.length - 3]))) : d = parseFloat(a); return d }; e.serialize = function (a) { return null === a ? null : "true" == a.toString().toLowerCase() ? !0 : "false" == a.toString().toLowerCase() ? !1 : isNaN(Number(a)) || 5 < a.length || 0 === a.length ? a : Number(a) }; e.addClass = function (a, b) { a.className = a.className + " " + b }; e.removeClass = function (a, b) { a.className = a.className.replace(RegExp(" *" + b, "g"), " ") } }(jwplayer), function (h) { function c(a) { var b = document.createElement("style"); a && b.appendChild(document.createTextNode(a)); b.type = "text/css"; document.getElementsByTagName("head")[0].appendChild(b); return b } function l(a, m, d) { if (!b.exists(m))return ""; d = d ? " !important" : ""; return "string" === typeof m && isNaN(m) ? /png|gif|jpe?g/i.test(m) && 0 > m.indexOf("url") ? "url(" + m + ")" : m + d : 0 === m || "z-index" === a || "opacity" === a ? "" + m + d : /color/i.test(a) ? "#" + b.pad(m.toString(16).replace(/^0x/i, ""), 6) + d : Math.ceil(m) + "px" + d } function j(a, b) { for (var d = 0; d < a.length; d++) { var f = a[d], c, e; if (void 0 !== f && null !== f)for (c in b) { e = c; e = e.split("-"); for (var g = 1; g < e.length; g++)e[g] = e[g].charAt(0).toUpperCase() + e[g].slice(1); e = e.join(""); f.style[e] !== b[c] && (f.style[e] = b[c]) } } } function g(b) { var m = e[b].sheet, d, c, g; if (m) { d = m.cssRules; c = f[b]; g = b; var j = a[g]; g += " { "; for (var n in j)g += n + ": " + j[n] + "; "; g += "}"; if (void 0 !== c && c < d.length && d[c].selectorText === b) { if (g === d[c].cssText)return; m.deleteRule(c) } else c = d.length, f[b] = c; try { m.insertRule(g, c) } catch (h) { } } } var b = h.utils, e = {}, n, a = {}, d = null, f = {}; b.cssKeyframes = function (a, b) { var d = e.keyframes; d || (d = c(), e.keyframes = d); var d = d.sheet, f = "@keyframes " + a + " { " + b + " }"; try { d.insertRule(f, d.cssRules.length) } catch (g) { } f = f.replace(/(keyframes|transform)/g, "-webkit-$1"); try { d.insertRule(f, d.cssRules.length) } catch (j) { } }; var q = b.css = function (b, m, f) { a[b] || (a[b] = {}); var j = a[b]; f = f || !1; var h = !1, q, p; for (q in m)p = l(q, m[q], f), "" !== p ? p !== j[q] && (j[q] = p, h = !0) : void 0 !== j[q] && (delete j[q], h = !0); if (h) { if (!e[b]) { m = n && n.sheet && n.sheet.cssRules && n.sheet.cssRules.length || 0; if (!n || 5E4 < m)n = c(); e[b] = n } null !== d ? d.styleSheets[b] = a[b] : g(b) } }; q.style = function (a, b, f) { if (!(void 0 === a || null === a)) { void 0 === a.length && (a = [a]); var c = {}, e; for (e in b)c[e] = l(e, b[e]); if (null !== d && !f) { b = (b = a.__cssRules) || {}; for (var g in c)b[g] = c[g]; a.__cssRules = b; 0 > d.elements.indexOf(a) && d.elements.push(a) } else j(a, c) } }; q.block = function (a) { null === d && (d = {id: a, styleSheets: {}, elements: []}) }; q.unblock = function (a) { if (d && (!a || d.id === a)) { for (var b in d.styleSheets)g(b); for (a = 0; a < d.elements.length; a++)b = d.elements[a], j(b, b.__cssRules); d = null } }; b.clearCss = function (b) { for (var d in a)0 <= d.indexOf(b) && delete a[d]; for (var c in e)0 <= c.indexOf(b) && g(c) }; b.transform = function (a, b) { var d = {}; b = b || ""; d.transform = b; d["-webkit-transform"] = b; d["-ms-transform"] = b; d["-moz-transform"] = b; d["-o-transform"] = b; "string" === typeof a ? q(a, d) : q.style(a, d) }; b.dragStyle = function (a, b) { q(a, { "-webkit-user-select": b, "-moz-user-select": b, "-ms-user-select": b, "-webkit-user-drag": b, "user-select": b, "user-drag": b }) }; b.transitionStyle = function (a, b) { navigator.userAgent.match(/5\.\d(\.\d)? safari/i) || q(a, {"-webkit-transition": b, "-moz-transition": b, "-o-transition": b, transition: b}) }; b.rotate = function (a, d) { b.transform(a, "rotate(" + d + "deg)") }; b.rgbHex = function (a) { a = String(a).replace("#", ""); 3 === a.length && (a = a[0] + a[0] + a[1] + a[1] + a[2] + a[2]); return "#" + a.substr(-6) }; b.hexToRgba = function (a, b) { var d = "rgb", c = [parseInt(a.substr(1, 2), 16), parseInt(a.substr(3, 2), 16), parseInt(a.substr(5, 2), 16)]; void 0 !== b && 100 !== b && (d += "a", c.push(b / 100)); return d + "(" + c.join(",") + ")" } }(jwplayer), function (h) { var c = h.foreach, l = { mp4: "video/mp4", ogg: "video/ogg", oga: "audio/ogg", vorbis: "audio/ogg", webm: "video/webm", aac: "audio/mp4", mp3: "audio/mpeg", hls: "application/vnd.apple.mpegurl" }, j = { mp4: l.mp4, f4v: l.mp4, m4v: l.mp4, mov: l.mp4, m4a: l.aac, f4a: l.aac, aac: l.aac, mp3: l.mp3, ogv: l.ogg, ogg: l.ogg, oga: l.vorbis, vorbis: l.vorbis, webm: l.webm, m3u8: l.hls, m3u: l.hls, hls: l.hls }, g = h.extensionmap = {}; c(j, function (b, c) { g[b] = {html5: c} }); c({ flv: "video", f4v: "video", mov: "video", m4a: "video", m4v: "video", mp4: "video", aac: "video", f4a: "video", mp3: "sound", smil: "rtmp", m3u8: "hls", hls: "hls" }, function (b, c) { g[b] || (g[b] = {}); g[b].flash = c }); g.types = l; g.mimeType = function (b) { var e; c(l, function (c, a) { !e && a == b && (e = c) }); return e }; g.extType = function (b) { return g.mimeType(j[b]) } }(jwplayer.utils), function (h) { var c = h.loaderstatus = {NEW: 0, LOADING: 1, ERROR: 2, COMPLETE: 3}, l = document; h.scriptloader = function (j) { function g(b) { a = c.ERROR; n.sendEvent(e.ERROR, b) } function b(b) { a = c.COMPLETE; n.sendEvent(e.COMPLETE, b) } var e = jwplayer.events, n = h.extend(this, new e.eventdispatcher), a = c.NEW; this.load = function () { if (a == c.NEW) { var d = h.scriptloader.loaders[j]; if (d && (a = d.getStatus(), 2 > a)) { d.addEventListener(e.ERROR, g); d.addEventListener(e.COMPLETE, b); return } var f = l.createElement("script"); f.addEventListener ? (f.onload = b, f.onerror = g) : f.readyState && (f.onreadystatechange = function (a) { ("loaded" == f.readyState || "complete" == f.readyState) && b(a) }); l.getElementsByTagName("head")[0].appendChild(f); f.src = j; a = c.LOADING; h.scriptloader.loaders[j] = this } }; this.getStatus = function () { return a } }; h.scriptloader.loaders = {} }(jwplayer.utils), function (h) { h.trim = function (c) { return c.replace(/^\s*/, "").replace(/\s*$/, "") }; h.pad = function (c, h, j) { for (j || (j = "0"); c.length < h;)c = j + c; return c }; h.xmlAttribute = function (c, h) { for (var j = 0; j < c.attributes.length; j++)if (c.attributes[j].name && c.attributes[j].name.toLowerCase() == h.toLowerCase())return c.attributes[j].value.toString(); return "" }; h.extension = function (c) { if (!c || "rtmp" == c.substr(0, 4))return ""; var h; h = c.match(/manifest\(format=(.*),audioTrack/); h = !h || !h[1] ? !1 : h[1].split("-")[0]; if (h)return h; c = c.substring(c.lastIndexOf("/") + 1, c.length).split("?")[0].split("#")[0]; if (-1 < c.lastIndexOf("."))return c.substr(c.lastIndexOf(".") + 1, c.length).toLowerCase() }; h.stringToColor = function (c) { c = c.replace(/(#|0x)?([0-9A-F]{3,6})$/gi, "$2"); 3 == c.length && (c = c.charAt(0) + c.charAt(0) + c.charAt(1) + c.charAt(1) + c.charAt(2) + c.charAt(2)); return parseInt(c, 16) } }(jwplayer.utils), function (h) { var c = "touchmove", l = "touchstart"; h.touch = function (j) { function g(d) { d.type == l ? (a = !0, f = e(k.DRAG_START, d)) : d.type == c ? a && (q || (b(k.DRAG_START, d, f), q = !0), b(k.DRAG, d)) : (a && (q ? b(k.DRAG_END, d) : (d.cancelBubble = !0, b(k.TAP, d))), a = q = !1, f = null) } function b(a, b, c) { if (d[a] && (b.preventManipulation && b.preventManipulation(), b.preventDefault && b.preventDefault(), b = c ? c : e(a, b)))d[a](b) } function e(a, b) { var d = null; b.touches && b.touches.length ? d = b.touches[0] : b.changedTouches && b.changedTouches.length && (d = b.changedTouches[0]); if (!d)return null; var c = n.getBoundingClientRect(), d = { type: a, target: n, x: d.pageX - window.pageXOffset - c.left, y: d.pageY, deltaX: 0, deltaY: 0 }; a != k.TAP && f && (d.deltaX = d.x - f.x, d.deltaY = d.y - f.y); return d } var n = j, a = !1, d = {}, f = null, q = !1, k = h.touchEvents; document.addEventListener(c, g); document.addEventListener("touchend", function (d) { a && q && b(k.DRAG_END, d); a = q = !1; f = null }); document.addEventListener("touchcancel", g); j.addEventListener(l, g); j.addEventListener("touchend", g); this.addEventListener = function (a, b) { d[a] = b }; this.removeEventListener = function (a) { delete d[a] }; return this } }(jwplayer.utils), function (h) { h.touchEvents = { DRAG: "jwplayerDrag", DRAG_START: "jwplayerDragStart", DRAG_END: "jwplayerDragEnd", TAP: "jwplayerTap" } }(jwplayer.utils), function (h) { h.key = function (c) { var l, j, g; this.edition = function () { return g && g.getTime() < (new Date).getTime() ? "invalid" : l }; this.token = function () { return j }; h.exists(c) || (c = ""); try { c = h.tea.decrypt(c, "36QXq4W@GSBV^teR"); var b = c.split("/"); (l = b[0]) ? /^(free|pro|premium|enterprise|ads)$/i.test(l) ? (j = b[1], b[2] && 0 < parseInt(b[2]) && (g = new Date, g.setTime(String(b[2])))) : l = "invalid" : l = "free" } catch (e) { l = "invalid" } } }(jwplayer.utils), function (h) { var c = h.tea = {}; c.encrypt = function (g, b) { if (0 == g.length)return ""; var e = c.strToLongs(j.encode(g)); 1 >= e.length && (e[1] = 0); for (var n = c.strToLongs(j.encode(b).slice(0, 16)), a = e.length, d = e[a - 1], f = e[0], h, k = Math.floor(6 + 52 / a), m = 0; 0 < k--;) { m += 2654435769; h = m >>> 2 & 3; for (var r = 0; r < a; r++)f = e[(r + 1) % a], d = (d >>> 5 ^ f << 2) + (f >>> 3 ^ d << 4) ^ (m ^ f) + (n[r & 3 ^ h] ^ d), d = e[r] += d } e = c.longsToStr(e); return l.encode(e) }; c.decrypt = function (g, b) { if (0 == g.length)return ""; for (var e = c.strToLongs(l.decode(g)), h = c.strToLongs(j.encode(b).slice(0, 16)), a = e.length, d = e[a - 1], f = e[0], q, k = 2654435769 * Math.floor(6 + 52 / a); 0 != k;) { q = k >>> 2 & 3; for (var m = a - 1; 0 <= m; m--)d = e[0 < m ? m - 1 : a - 1], d = (d >>> 5 ^ f << 2) + (f >>> 3 ^ d << 4) ^ (k ^ f) + (h[m & 3 ^ q] ^ d), f = e[m] -= d; k -= 2654435769 } e = c.longsToStr(e); e = e.replace(/\0+$/, ""); return j.decode(e) }; c.strToLongs = function (c) { for (var b = Array(Math.ceil(c.length / 4)), e = 0; e < b.length; e++)b[e] = c.charCodeAt(4 * e) + (c.charCodeAt(4 * e + 1) << 8) + (c.charCodeAt(4 * e + 2) << 16) + (c.charCodeAt(4 * e + 3) << 24); return b }; c.longsToStr = function (c) { for (var b = Array(c.length), e = 0; e < c.length; e++)b[e] = String.fromCharCode(c[e] & 255, c[e] >>> 8 & 255, c[e] >>> 16 & 255, c[e] >>> 24 & 255); return b.join("") }; var l = { code: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d", encode: function (c, b) { var e, h, a, d, f = [], q = "", k, m, r = l.code; m = ("undefined" == typeof b ? 0 : b) ? j.encode(c) : c; k = m.length % 3; if (0 < k)for (; 3 > k++;)q += "\x3d", m += "\x00"; for (k = 0; k < m.length; k += 3)e = m.charCodeAt(k), h = m.charCodeAt(k + 1), a = m.charCodeAt(k + 2), d = e << 16 | h << 8 | a, e = d >> 18 & 63, h = d >> 12 & 63, a = d >> 6 & 63, d &= 63, f[k / 3] = r.charAt(e) + r.charAt(h) + r.charAt(a) + r.charAt(d); f = f.join(""); return f = f.slice(0, f.length - q.length) + q }, decode: function (c, b) { b = "undefined" == typeof b ? !1 : b; var e, h, a, d, f, q = [], k, m = l.code; k = b ? j.decode(c) : c; for (var r = 0; r < k.length; r += 4)e = m.indexOf(k.charAt(r)), h = m.indexOf(k.charAt(r + 1)), d = m.indexOf(k.charAt(r + 2)), f = m.indexOf(k.charAt(r + 3)), a = e << 18 | h << 12 | d << 6 | f, e = a >>> 16 & 255, h = a >>> 8 & 255, a &= 255, q[r / 4] = String.fromCharCode(e, h, a), 64 == f && (q[r / 4] = String.fromCharCode(e, h)), 64 == d && (q[r / 4] = String.fromCharCode(e)); d = q.join(""); return b ? j.decode(d) : d } }, j = { encode: function (c) { c = c.replace(/[\u0080-\u07ff]/g, function (b) { b = b.charCodeAt(0); return String.fromCharCode(192 | b >> 6, 128 | b & 63) }); return c = c.replace(/[\u0800-\uffff]/g, function (b) { b = b.charCodeAt(0); return String.fromCharCode(224 | b >> 12, 128 | b >> 6 & 63, 128 | b & 63) }) }, decode: function (c) { c = c.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, function (b) { b = (b.charCodeAt(0) & 15) << 12 | (b.charCodeAt(1) & 63) << 6 | b.charCodeAt(2) & 63; return String.fromCharCode(b) }); return c = c.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g, function (b) { b = (b.charCodeAt(0) & 31) << 6 | b.charCodeAt(1) & 63; return String.fromCharCode(b) }) } } }(jwplayer.utils), function (h) { h.events = { COMPLETE: "COMPLETE", ERROR: "ERROR", API_READY: "jwplayerAPIReady", JWPLAYER_READY: "jwplayerReady", JWPLAYER_FULLSCREEN: "jwplayerFullscreen", JWPLAYER_RESIZE: "jwplayerResize", JWPLAYER_ERROR: "jwplayerError", JWPLAYER_SETUP_ERROR: "jwplayerSetupError", JWPLAYER_MEDIA_BEFOREPLAY: "jwplayerMediaBeforePlay", JWPLAYER_MEDIA_BEFORECOMPLETE: "jwplayerMediaBeforeComplete", JWPLAYER_COMPONENT_SHOW: "jwplayerComponentShow", JWPLAYER_COMPONENT_HIDE: "jwplayerComponentHide", JWPLAYER_MEDIA_BUFFER: "jwplayerMediaBuffer", JWPLAYER_MEDIA_BUFFER_FULL: "jwplayerMediaBufferFull", JWPLAYER_MEDIA_ERROR: "jwplayerMediaError", JWPLAYER_MEDIA_LOADED: "jwplayerMediaLoaded", JWPLAYER_MEDIA_COMPLETE: "jwplayerMediaComplete", JWPLAYER_MEDIA_SEEK: "jwplayerMediaSeek", JWPLAYER_MEDIA_TIME: "jwplayerMediaTime", JWPLAYER_MEDIA_VOLUME: "jwplayerMediaVolume", JWPLAYER_MEDIA_META: "jwplayerMediaMeta", JWPLAYER_MEDIA_MUTE: "jwplayerMediaMute", JWPLAYER_MEDIA_LEVELS: "jwplayerMediaLevels", JWPLAYER_MEDIA_LEVEL_CHANGED: "jwplayerMediaLevelChanged", JWPLAYER_CAPTIONS_CHANGED: "jwplayerCaptionsChanged", JWPLAYER_CAPTIONS_LIST: "jwplayerCaptionsList", JWPLAYER_CAPTIONS_LOADED: "jwplayerCaptionsLoaded", JWPLAYER_PLAYER_STATE: "jwplayerPlayerState", state: {BUFFERING: "BUFFERING", IDLE: "IDLE", PAUSED: "PAUSED", PLAYING: "PLAYING"}, JWPLAYER_PLAYLIST_LOADED: "jwplayerPlaylistLoaded", JWPLAYER_PLAYLIST_ITEM: "jwplayerPlaylistItem", JWPLAYER_PLAYLIST_COMPLETE: "jwplayerPlaylistComplete", JWPLAYER_DISPLAY_CLICK: "jwplayerViewClick", JWPLAYER_VIEW_TAB_FOCUS: "jwplayerViewTabFocus", JWPLAYER_CONTROLS: "jwplayerViewControls", JWPLAYER_USER_ACTION: "jwplayerUserAction", JWPLAYER_INSTREAM_CLICK: "jwplayerInstreamClicked", JWPLAYER_INSTREAM_DESTROYED: "jwplayerInstreamDestroyed", JWPLAYER_AD_TIME: "jwplayerAdTime", JWPLAYER_AD_ERROR: "jwplayerAdError", JWPLAYER_AD_CLICK: "jwplayerAdClicked", JWPLAYER_AD_COMPLETE: "jwplayerAdComplete", JWPLAYER_AD_IMPRESSION: "jwplayerAdImpression", JWPLAYER_AD_COMPANIONS: "jwplayerAdCompanions", JWPLAYER_AD_SKIPPED: "jwplayerAdSkipped", JWPLAYER_AD_PLAY: "jwplayerAdPlay", JWPLAYER_AD_PAUSE: "jwplayerAdPause", JWPLAYER_AD_META: "jwplayerAdMeta", JWPLAYER_CAST_AVAILABLE: "jwplayerCastAvailable", JWPLAYER_CAST_SESSION: "jwplayerCastSession", JWPLAYER_CAST_AD_CHANGED: "jwplayerCastAdChanged" } }(jwplayer), function (h) { var c = h.utils; h.events.eventdispatcher = function (l, j) { function g(b, a, d) { if (b)for (var f = 0; f < b.length; f++) { var e = b[f]; if (e) { null !== e.count && 0 === --e.count && delete b[f]; try { e.listener(a) } catch (g) { c.log('Error handling "' + d + '" event listener [' + f + "]: " + g.toString(), e.listener, a) } } } } var b, e; this.resetEventListeners = function () { b = {}; e = [] }; this.resetEventListeners(); this.addEventListener = function (e, a, d) { try { c.exists(b[e]) || (b[e] = []), "string" == c.typeOf(a) && (a = (new Function("return " + a))()), b[e].push({ listener: a, count: d || null }) } catch (f) { c.log("error", f) } return !1 }; this.removeEventListener = function (e, a) { if (b[e]) { try { if (void 0 === a) { b[e] = []; return } for (var d = 0; d < b[e].length; d++)if (b[e][d].listener.toString() == a.toString()) { b[e].splice(d, 1); break } } catch (f) { c.log("error", f) } return !1 } }; this.addGlobalListener = function (b, a) { try { "string" == c.typeOf(b) && (b = (new Function("return " + b))()), e.push({ listener: b, count: a || null }) } catch (d) { c.log("error", d) } return !1 }; this.removeGlobalListener = function (b) { if (b) { try { for (var a = e.length; a--;)e[a].listener.toString() == b.toString() && e.splice(a, 1) } catch (d) { c.log("error", d) } return !1 } }; this.sendEvent = function (n, a) { c.exists(a) || (a = {}); c.extend(a, {id: l, version: h.version, type: n}); j && c.log(n, a); g(b[n], a, n); g(e, a, n) } } }(window.jwplayer), function (h) { var c = {}, l = {}; h.plugins = function () { }; h.plugins.loadPlugins = function (j, g) { l[j] = new h.plugins.pluginloader(new h.plugins.model(c), g); return l[j] }; h.plugins.registerPlugin = function (j, g, b, e) { var n = h.utils.getPluginName(j); c[n] || (c[n] = new h.plugins.plugin(j)); c[n].registerPlugin(j, g, b, e) } }(jwplayer), function (h) { h.plugins.model = function (c) { this.addPlugin = function (l) { var j = h.utils.getPluginName(l); c[j] || (c[j] = new h.plugins.plugin(l)); return c[j] }; this.getPlugins = function () { return c } } }(jwplayer), function (h) { var c = jwplayer.utils, l = jwplayer.events; h.pluginmodes = {FLASH: 0, JAVASCRIPT: 1, HYBRID: 2}; h.plugin = function (j) { function g() { switch (c.getPluginPathType(j)) { case c.pluginPathType.ABSOLUTE: return j; case c.pluginPathType.RELATIVE: return c.getAbsolutePath(j, window.location.href) } } function b() { q = setTimeout(function () { n = c.loaderstatus.COMPLETE; k.sendEvent(l.COMPLETE) }, 1E3) } function e() { n = c.loaderstatus.ERROR; k.sendEvent(l.ERROR) } var n = c.loaderstatus.NEW, a, d, f, q, k = new l.eventdispatcher; c.extend(this, k); this.load = function () { if (n == c.loaderstatus.NEW)if (0 < j.lastIndexOf(".swf"))a = j, n = c.loaderstatus.COMPLETE, k.sendEvent(l.COMPLETE); else if (c.getPluginPathType(j) == c.pluginPathType.CDN)n = c.loaderstatus.COMPLETE, k.sendEvent(l.COMPLETE); else { n = c.loaderstatus.LOADING; var d = new c.scriptloader(g()); d.addEventListener(l.COMPLETE, b); d.addEventListener(l.ERROR, e); d.load() } }; this.registerPlugin = function (b, e, g, j) { q && (clearTimeout(q), q = void 0); f = e; g && j ? (a = j, d = g) : "string" == typeof g ? a = g : "function" == typeof g ? d = g : !g && !j && (a = b); n = c.loaderstatus.COMPLETE; k.sendEvent(l.COMPLETE) }; this.getStatus = function () { return n }; this.getPluginName = function () { return c.getPluginName(j) }; this.getFlashPath = function () { if (a)switch (c.getPluginPathType(a)) { case c.pluginPathType.ABSOLUTE: return a; case c.pluginPathType.RELATIVE: return 0 < j.lastIndexOf(".swf") ? c.getAbsolutePath(a, window.location.href) : c.getAbsolutePath(a, g()) } return null }; this.getJS = function () { return d }; this.getTarget = function () { return f }; this.getPluginmode = function () { if ("undefined" != typeof a && "undefined" != typeof d)return h.pluginmodes.HYBRID; if ("undefined" != typeof a)return h.pluginmodes.FLASH; if ("undefined" != typeof d)return h.pluginmodes.JAVASCRIPT }; this.getNewInstance = function (a, b, c) { return new d(a, b, c) }; this.getURL = function () { return j } } }(jwplayer.plugins), function (h) { var c = h.utils, l = h.events, j = c.foreach; h.plugins.pluginloader = function (g, b) { function e() { f && m.sendEvent(l.ERROR, {message: q}); d || (d = !0, a = c.loaderstatus.COMPLETE, m.sendEvent(l.COMPLETE)) } function h() { k || e(); if (!d && !f) { var a = 0, b = g.getPlugins(); c.foreach(k, function (d) { d = c.getPluginName(d); var m = b[d]; d = m.getJS(); var g = m.getTarget(), m = m.getStatus(); m == c.loaderstatus.LOADING || m == c.loaderstatus.NEW ? a++ : d && !c.versionCheck(g) && (f = !0, q = "Incompatible player version", e()) }); 0 === a && e() } } var a = c.loaderstatus.NEW, d = !1, f = !1, q, k = b, m = new l.eventdispatcher; c.extend(this, m); this.setupPlugins = function (a, b, d) { var e = {length: 0, plugins: {}}, f = 0, m = {}, h = g.getPlugins(); j(b.plugins, function (g, j) { var k = c.getPluginName(g), n = h[k], l = n.getFlashPath(), q = n.getJS(), I = n.getURL(); l && (e.plugins[l] = c.extend({}, j), e.plugins[l].pluginmode = n.getPluginmode(), e.length++); try { if (q && b.plugins && b.plugins[I]) { var r = document.createElement("div"); r.id = a.id + "_" + k; r.style.position = "absolute"; r.style.top = 0; r.style.zIndex = f + 10; m[k] = n.getNewInstance(a, c.extend({}, b.plugins[I]), r); f++; a.onReady(d(m[k], r, !0)); a.onResize(d(m[k], r)) } } catch (P) { c.log("ERROR: Failed to load " + k + ".") } }); a.plugins = m; return e }; this.load = function () { if (!(c.exists(b) && "object" != c.typeOf(b))) { a = c.loaderstatus.LOADING; j(b, function (a) { c.exists(a) && (a = g.addPlugin(a), a.addEventListener(l.COMPLETE, h), a.addEventListener(l.ERROR, r)) }); var d = g.getPlugins(); j(d, function (a, b) { b.load() }) } h() }; this.destroy = function () { m && (m.resetEventListeners(), m = null) }; var r = this.pluginFailed = function () { f || (f = !0, q = "File not found", e()) }; this.getStatus = function () { return a } } }(jwplayer), function (h) { h.parsers = { localName: function (c) { return c ? c.localName ? c.localName : c.baseName ? c.baseName : "" : "" }, textContent: function (c) { return c ? c.textContent ? h.utils.trim(c.textContent) : c.text ? h.utils.trim(c.text) : "" : "" }, getChildNode: function (c, h) { return c.childNodes[h] }, numChildren: function (c) { return c.childNodes ? c.childNodes.length : 0 } } }(jwplayer), function (h) { var c = h.parsers; (c.jwparser = function () { }).parseEntry = function (l, j) { for (var g = [], b = [], e = h.utils.xmlAttribute, n = 0; n < l.childNodes.length; n++) { var a = l.childNodes[n]; if ("jwplayer" == a.prefix) { var d = c.localName(a); "source" == d ? (delete j.sources, g.push({ file: e(a, "file"), "default": e(a, "default"), label: e(a, "label"), type: e(a, "type") })) : "track" == d ? (delete j.tracks, b.push({ file: e(a, "file"), "default": e(a, "default"), kind: e(a, "kind"), label: e(a, "label") })) : (j[d] = h.utils.serialize(c.textContent(a)), "file" == d && j.sources && delete j.sources) } j.file || (j.file = j.link) } if (g.length) { j.sources = []; for (n = 0; n < g.length; n++)0 < g[n].file.length && (g[n]["default"] = "true" == g[n]["default"] ? !0 : !1, g[n].label.length || delete g[n].label, j.sources.push(g[n])) } if (b.length) { j.tracks = []; for (n = 0; n < b.length; n++)0 < b[n].file.length && (b[n]["default"] = "true" == b[n]["default"] ? !0 : !1, b[n].kind = !b[n].kind.length ? "captions" : b[n].kind, b[n].label.length || delete b[n].label, j.tracks.push(b[n])) } return j } }(jwplayer), function (h) { var c = jwplayer.utils, l = c.xmlAttribute, j = h.localName, g = h.textContent, b = h.numChildren, e = h.mediaparser = function () { }; e.parseGroup = function (h, a) { var d, f, q = []; for (f = 0; f < b(h); f++)if (d = h.childNodes[f], "media" == d.prefix && j(d))switch (j(d).toLowerCase()) { case "content": l(d, "duration") && (a.duration = c.seconds(l(d, "duration"))); 0 < b(d) && (a = e.parseGroup(d, a)); l(d, "url") && (a.sources || (a.sources = []), a.sources.push({ file: l(d, "url"), type: l(d, "type"), width: l(d, "width"), label: l(d, "label") })); break; case "title": a.title = g(d); break; case "description": a.description = g(d); break; case "guid": a.mediaid = g(d); break; case "thumbnail": a.image || (a.image = l(d, "url")); break; case "group": e.parseGroup(d, a); break; case "subtitle": var k = {}; k.file = l(d, "url"); k.kind = "captions"; if (0 < l(d, "lang").length) { var m = k; d = l(d, "lang"); var r = { zh: "Chinese", nl: "Dutch", en: "English", fr: "French", de: "German", it: "Italian", ja: "Japanese", pt: "Portuguese", ru: "Russian", es: "Spanish" }; d = r[d] ? r[d] : d; m.label = d } q.push(k) } a.hasOwnProperty("tracks") || (a.tracks = []); for (f = 0; f < q.length; f++)a.tracks.push(q[f]); return a } }(jwplayer.parsers), function (h) { function c(b) { for (var a = {}, d = 0; d < b.childNodes.length; d++) { var c = b.childNodes[d], g = e(c); if (g)switch (g.toLowerCase()) { case "enclosure": a.file = l.xmlAttribute(c, "url"); break; case "title": a.title = j(c); break; case "guid": a.mediaid = j(c); break; case "pubdate": a.date = j(c); break; case "description": a.description = j(c); break; case "link": a.link = j(c); break; case "category": a.tags = a.tags ? a.tags + j(c) : j(c) } } a = h.mediaparser.parseGroup(b, a); a = h.jwparser.parseEntry(b, a); return new jwplayer.playlist.item(a) } var l = jwplayer.utils, j = h.textContent, g = h.getChildNode, b = h.numChildren, e = h.localName; h.rssparser = {}; h.rssparser.parse = function (j) { for (var a = [], d = 0; d < b(j); d++) { var f = g(j, d); if ("channel" == e(f).toLowerCase())for (var h = 0; h < b(f); h++) { var k = g(f, h); "item" == e(k).toLowerCase() && a.push(c(k)) } } return a } }(jwplayer.parsers), function (h) { h.playlist = function (c) { var l = []; if ("array" == h.utils.typeOf(c))for (var j = 0; j < c.length; j++)l.push(new h.playlist.item(c[j])); else l.push(new h.playlist.item(c)); return l } }(jwplayer), function (h) { var c = h.item = function (l) { var j = jwplayer.utils, g = j.extend({}, c.defaults, l), b, e; g.tracks = l && j.exists(l.tracks) ? l.tracks : []; 0 === g.sources.length && (g.sources = [new h.source(g)]); for (b = 0; b < g.sources.length; b++)e = g.sources[b]["default"], g.sources[b]["default"] = e ? "true" == e.toString() : !1, g.sources[b] = new h.source(g.sources[b]); if (g.captions && !j.exists(l.tracks)) { for (l = 0; l < g.captions.length; l++)g.tracks.push(g.captions[l]); delete g.captions } for (b = 0; b < g.tracks.length; b++)g.tracks[b] = new h.track(g.tracks[b]); return g }; c.defaults = {description: void 0, image: void 0, mediaid: void 0, title: void 0, sources: [], tracks: []} }(jwplayer.playlist), function (h) { var c = jwplayer, l = c.utils, j = c.events, g = c.parsers; h.loader = function () { function b(b) { try { var c = b.responseXML.childNodes; b = ""; for (var e = 0; e < c.length && !(b = c[e], 8 != b.nodeType); e++); "xml" == g.localName(b) && (b = b.nextSibling); if ("rss" != g.localName(b))n("Not a valid RSS feed"); else { var k = new h(g.rssparser.parse(b)); a.sendEvent(j.JWPLAYER_PLAYLIST_LOADED, {playlist: k}) } } catch (m) { n() } } function c(a) { n(a.match(/invalid/i) ? "Not a valid RSS feed" : "") } function n(b) { a.sendEvent(j.JWPLAYER_ERROR, {message: b ? b : "Error loading file"}) } var a = new j.eventdispatcher; l.extend(this, a); this.load = function (a) { l.ajax(a, b, c) } } }(jwplayer.playlist), function (h) { var c = jwplayer.utils, l = {file: void 0, label: void 0, type: void 0, "default": void 0}; h.source = function (j) { var g = c.extend({}, l); c.foreach(l, function (b) { c.exists(j[b]) && (g[b] = j[b], delete j[b]) }); g.type && 0 < g.type.indexOf("/") && (g.type = c.extensionmap.mimeType(g.type)); "m3u8" == g.type && (g.type = "hls"); "smil" == g.type && (g.type = "rtmp"); return g } }(jwplayer.playlist), function (h) { var c = jwplayer.utils, l = {file: void 0, label: void 0, kind: "captions", "default": !1}; h.track = function (j) { var g = c.extend({}, l); j || (j = {}); c.foreach(l, function (b) { c.exists(j[b]) && (g[b] = j[b], delete j[b]) }); return g } }(jwplayer.playlist), function (h) { var c = h.cast = {}, l = h.utils; c.adprovider = function (j, g) { function b() { f = {message: q, position: 0, duration: -1} } function e(a, b) { var d = {command: a}; void 0 !== b && (d.args = b); g.sendMessage(j, d, n, function (a) { c.error("message send error", a) }) } function n() { } var a = new c.provider(j, g), d = l.extend(this, a), f, q = "Loading ad", k = 0; d.init = function () { a.init(); b() }; d.destroy = function () { a.destroy() }; d.updateModel = function (d, e) { (d.tag || d.newstate || d.sequence || d.companions) && c.log("received ad change:", d); d.tag && (f.tag && d.tag !== f.tag) && (c.error("ad messages not received in order. new model:", d, "old model:", f), b()); h.utils.extend(f, d); a.updateModel(d, e) }; d.getAdModel = function () { var a = l.extend({}, f); a.message = 0 < f.duration ? this.getAdMessage() : q; return a }; d.resetAdModel = function () { b() }; d.getAdMessage = function () { var a = f.message.replace(/xx/gi, "" + Math.min(f.duration | 0, Math.ceil(f.duration - f.position))); f.podMessage && 1 < f.podcount && (a = f.podMessage.replace(/__AD_POD_CURRENT__/g, "" + f.sequence).replace(/__AD_POD_LENGTH__/g, "" + f.podcount) + a); return a }; d.skipAd = function (a) { e("skipAd", {tag: a.tag}) }; d.clickAd = function (a) { k = 1 * new Date; e("clickAd", {tag: a.tag}) }; d.timeSinceClick = function () { return 1 * new Date - k } } }(window.jwplayer), function (h, c) { function l(a, b) { a[b] && (a[b] = g.getAbsolutePath(a[b])) } var j = c.cast, g = c.utils, b = c.events, e = b.state, n = {}; j.NS = "urn:x-cast:com.longtailvideo.jwplayer"; j.availability = null; j.available = function (a) { a = a || j.availability; var b = h.chrome, c = "available"; b.cast && b.cast.ReceiverAvailability && (c = b.cast.ReceiverAvailability.AVAILABLE); return a === c }; j.controller = function (a, d) { var f, q; function k(a, b) { var d = {command: a}; void 0 !== b && (d.args = b); w.sendMessage(j.NS, d, O, function (a) { j.log("error message", a); "Invalid namespace" === a.description && A() }) } function m(a) { a = !!j.available(a.availability); N.available !== a && (N.available = a, t(b.JWPLAYER_CAST_AVAILABLE)) } function r(a) { j.log("existing session", a); w || (K = a.session, K.addMessageListener(j.NS, x)) } function x(e, f) { var g = JSON.parse(f); if (!g)throw"Message not proper JSON"; if (g.reconcile) { K.removeMessageListener(j.NS, x); var m = g.diff, h = K; if (!m.id || !g.appid || !g.pageUrl)m.id = c().id, g.appid = J.appid, g.pageUrl = Q, K = w = null; m.id === a.id && (g.appid === J.appid && g.pageUrl === Q) && (w || (a.jwInstreamState() && a.jwInstreamDestroy(!0), v(h), d.sendEvent(b.JWPLAYER_PLAYER_STATE, { oldstate: m.oldstate, newstate: m.newstate })), H(g)); K = null } } function u(a) { N.active = !!a; a = N; var d; d = w && w.receiver ? w.receiver.friendlyName : ""; a.deviceName = d; t(b.JWPLAYER_CAST_SESSION, {}) } function t(a) { var b = g.extend({}, N); d.sendEvent(a, b) } function p(a) { var b = h.chrome; a.code !== b.cast.ErrorCode.CANCEL && (j.log("Cast Session Error:", a, w), a.code === b.cast.ErrorCode.SESSION_ERROR && A()) } function A() { w ? (B(), w.stop(F, G)) : F() } function G(a) { j.error("Cast Session Stop error:", a, w); F() } function v(m) { w = m; w.addMessageListener(j.NS, D); w.addUpdateListener(C); a.jwPause(!0); a.jwSetFullscreen(!1); M = d.getVideo(); f = d.volume; q = d.mute; z = new j.provider(k); z.init(); d.setVideo(z); a.jwPlay = function (a) { !1 === a ? z.pause() : z.play() }; a.jwPause = function (b) { a.jwPlay(!!b) }; a.jwLoad = function (a) { "number" === g.typeOf(a) && d.setItem(a); z.load(a) }; a.jwPlaylistItem = function (a) { "number" === g.typeOf(a) && d.setItem(a); z.playlistItem(a) }; a.jwPlaylistNext = function () { a.jwPlaylistItem(d.item + 1) }; a.jwPlaylistPrev = function () { a.jwPlaylistItem(d.item - 1) }; a.jwSetVolume = function (a) { g.exists(a) && (a = Math.min(Math.max(0, a), 100) | 0, R(a) && (a = Math.max(0, Math.min(a / 100, 1)), w.setReceiverVolumeLevel(a, I, function (a) { j.error("set volume error", a); I() }))) }; a.jwSetMute = function (a) { g.exists(a) || (a = !L.mute); P(a) && w.setReceiverMuted(!!a, I, function (a) { j.error("set muted error", a); I() }) }; a.jwGetVolume = function () { return L.volume | 0 }; a.jwGetMute = function () { return !!L.mute }; a.jwIsBeforePlay = function () { return !1 }; var l = a.jwSetCurrentCaptions; a.jwSetCurrentCaptions = function (a) { l(a); z.sendCommand("caption", a) }; a.jwSkipAd = function (a) { y && (y.skipAd(a), a = y.getAdModel(), a.complete = !0, d.sendEvent(b.JWPLAYER_CAST_AD_CHANGED, a)) }; a.jwClickAd = function (f) { if (y && 300 < y.timeSinceClick() && (y.clickAd(f), d.state !== e.PAUSED)) { var g = {tag: f.tag}; f.sequence && (g.sequence = f.sequence); f.podcount && (g.podcount = f.podcount); c(a.id).dispatchEvent(b.JWPLAYER_AD_CLICK, g); h.open(f.clickthrough) } }; a.jwPlayAd = a.jwPauseAd = a.jwSetControls = a.jwForceState = a.jwReleaseState = a.jwSetFullscreen = a.jwDetachMedia = a.jwAttachMedia = O; var n = c(a.id).plugins; n.vast && n.vast.jwPauseAd !== O && (S = { jwPlayAd: n.vast.jwPlayAd, jwPauseAd: n.vast.jwPauseAd }, n.vast.jwPlayAd = n.vast.jwPauseAd = O); I(); u(!0); m !== K && z.setup(E(), d) } function C(a) { j.log("Cast Session status", a); a ? I() : (z.sendEvent(b.JWPLAYER_PLAYER_STATE, {oldstate: d.state, newstate: e.BUFFERING}), F()) } function F() { w && (B(), w = null); if (M) { delete a.jwSkipAd; delete a.jwClickAd; a.initializeAPI(); var m = c(a.id).plugins; m.vast && g.extend(m.vast, S); d.volume = f; d.mute = q; d.setVideo(M); d.duration = 0; z && (z.destroy(), z = null); y && (y.destroy(), y = null); d.state !== e.IDLE ? g.isIPad() || g.isIPod() ? (a.jwStop(!0), M.sendEvent(b.JWPLAYER_PLAYER_STATE, { oldstate: e.BUFFERING, newstate: e.IDLE })) : (d.state = e.IDLE, a.jwPlay(!0), a.jwSeek(d.position)) : M.sendEvent(b.JWPLAYER_PLAYER_STATE, { oldstate: e.BUFFERING, newstate: e.IDLE }); M = null } u(!1) } function B() { w.removeUpdateListener(C); w.removeMessageListener(j.NS, D) } function D(a, b) { var d = JSON.parse(b); if (!d)throw"Message not proper JSON"; H(d) } function H(c) { if ("state" === c.type) { if (y && (c.diff.newstate || c.diff.position))y.destroy(), y = null, d.setVideo(z), d.sendEvent(b.JWPLAYER_CAST_AD_CHANGED, {done: !0}); z.updateModel(c.diff, c.type); c = c.diff; void 0 !== c.item && d.item !== c.item && (d.item = c.item, d.sendEvent(b.JWPLAYER_PLAYLIST_ITEM, {index: d.item})) } else if ("ad" === c.type) { null === y && (y = new j.adprovider(j.NS, w), y.init(), d.setVideo(y)); y.updateModel(c.diff, c.type); var e = y.getAdModel(); c.diff.clickthrough && (e.onClick = a.jwClickAd); c.diff.skipoffset && (e.onSkipAd = a.jwSkipAd); d.sendEvent(b.JWPLAYER_CAST_AD_CHANGED, e); c.diff.complete && y.resetAdModel() } else"connection" === c.type ? !0 === c.closed && A() : j.error("received unhandled message", c.type, c) } function E() { var a = g.extend({}, d.config); a.cast = g.extend({pageUrl: Q}, J); for (var b = "base autostart controls fallback fullscreen width height mobilecontrols modes playlistlayout playlistposition playlistsize primary stretching sharing related ga skin logo listbar".split(" "), c = b.length; c--;)delete a[b[c]]; b = a.plugins; delete a.plugins; for (var e in b)if (b.hasOwnProperty(e)) { var f = b[e]; if (f.client && (/[\.\/]/.test(f.client) && l(f, "client"), -1 < f.client.indexOf("vast"))) { c = a; f = g.extend({}, f); f.client = "vast"; delete f.companiondiv; if (f.schedule) { var m = void 0; for (m in f.schedule)f.schedule.hasOwnProperty(m) && l(f.schedule[m].ad || f.schedule[m], "tag") } l(f, "tag"); c.advertising = f } } d.position && (a.position = d.position); 0 < d.item && (a.item = d.item); a.captionLabel = g.getCookies().captionLabel; return a } function I() { if (w && w.receiver) { var a = w.receiver.volume; if (a) { var b = 100 * a.level | 0; P(!!a.muted); R(b) } } } function R(a) { var c = L.volume !== a; c && (L.volume = a, z.sendEvent(b.JWPLAYER_MEDIA_VOLUME, {volume: a})); return c } function P(a) { var c = L.mute !== a; c && (L.mute = a, z.sendEvent(b.JWPLAYER_MEDIA_MUTE, {mute: a})); return c } function O() { } var w = null, N = {available: !1, active: !1, deviceName: ""}, L = { volume: null, mute: null }, Q = g.getAbsolutePath(h.location.href), J, z = null, y = null, M = null; f = d.volume; q = d.mute; var K = null, S = null; J = g.extend({}, n, d.cast); l(J, "loadscreen"); l(J, "endscreen"); l(J, "logo"); if (J.appid && (!h.cast || !h.cast.receiver))j.loader.addEventListener("availability", m), j.loader.addEventListener("session", r), j.loader.initialize(J.appid); this.startCasting = function () { w || a.jwInstreamState() || h.chrome.cast.requestSession(v, p) }; this.stopCasting = A }; j.log = function () { if (j.debug) { var a = Array.prototype.slice.call(arguments, 0); console.log.apply(console, a) } }; j.error = function () { var a = Array.prototype.slice.call(arguments, 0); console.error.apply(console, a) } }(window, jwplayer), function (h, c) { function l() { c && c.cast && c.cast.isAvailable && !a.apiConfig ? (a.apiConfig = new c.cast.ApiConfig(new c.cast.SessionRequest(m), e, n, c.cast.AutoJoinPolicy.ORIGIN_SCOPED), c.cast.initialize(a.apiConfig, b, g)) : 15 > k++ && setTimeout(l, 1E3) } function j() { q && (q.resetEventListeners(), q = null) } function g() { a.apiConfig = null } function b() { } function e(b) { a.loader.sendEvent("session", {session: b}); b.sendMessage(a.NS, {whoami: 1}) } function n(b) { a.availability = b; a.loader.sendEvent("availability", {availability: b}) } window.chrome = c; var a = h.cast, d = h.utils, f = h.events, q, k = 0, m = null; a.loader = d.extend({ initialize: function (b) { m = b; null !== a.availability ? a.loader.sendEvent("availability", {availability: a.availability}) : c && c.cast ? l() : q || (q = new d.scriptloader("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"), q.addEventListener(f.ERROR, j), q.addEventListener(f.COMPLETE, l), q.load()) } }, new f.eventdispatcher("cast.loader")) }(window.jwplayer, window.chrome || {}), function (h) { function c(b) { return function () { return b } } function l() { } var j = h.cast, g = h.utils, b = h.events, e = b.state; j.provider = function (h) { function a(a) { q.oldstate = q.newstate; q.newstate = a; d.sendEvent(b.JWPLAYER_PLAYER_STATE, {oldstate: q.oldstate, newstate: q.newstate}) } var d = g.extend(this, new b.eventdispatcher("cast.provider")), f = -1, q = { newstate: e.IDLE, oldstate: e.IDLE, buffer: 0, position: 0, duration: -1, audioMode: !1 }; d.isCaster = !0; d.init = function () { }; d.destroy = function () { clearTimeout(f); _castSession = null }; d.updateModel = function (a, c) { a.newstate && (q.newstate = a.newstate, q.oldstate = a.oldstate || q.oldstate, d.sendEvent(b.JWPLAYER_PLAYER_STATE, { oldstate: q.oldstate, newstate: q.newstate })); if ("ad" !== c) { if (void 0 !== a.position || void 0 !== a.duration)void 0 !== a.position && (q.position = a.position), void 0 !== a.duration && (q.duration = a.duration), d.sendEvent(b.JWPLAYER_MEDIA_TIME, { position: q.position, duration: q.duration }); void 0 !== a.buffer && (q.buffer = a.buffer, d.sendEvent(b.JWPLAYER_MEDIA_BUFFER, {bufferPercent: q.buffer})) } }; d.supportsFullscreen = function () { return !1 }; d.setup = function (b, c) { c.state && (q.newstate = c.state); void 0 !== c.buffer && (q.buffer = c.buffer); void 0 !== b.position && (q.position = b.position); void 0 !== b.duration && (q.duration = b.duration); a(e.BUFFERING); h("setup", b) }; d.playlistItem = function (b) { a(e.BUFFERING); h("item", b) }; d.load = function (b) { a(e.BUFFERING); h("load", b) }; d.stop = function () { clearTimeout(f); f = setTimeout(function () { a(e.IDLE); h("stop") }, 0) }; d.play = function () { h("play") }; d.pause = function () { a(e.PAUSED); h("pause") }; d.seek = function (c) { a(e.BUFFERING); d.sendEvent(b.JWPLAYER_MEDIA_SEEK, {position: q.position, offset: c}); h("seek", c) }; d.audioMode = function () { return q.audioMode }; d.sendCommand = function (a, b) { h(a, b) }; d.detachMedia = function () { j.error("detachMedia called while casting"); return document.createElement("video") }; d.attachMedia = function () { j.error("attachMedia called while casting") }; var k; d.setContainer = function (a) { k = a }; d.getContainer = function () { return k }; d.volume = d.mute = d.setControls = d.setCurrentQuality = d.remove = d.resize = d.seekDrag = d.addCaptions = d.resetCaptions = d.setVisibility = d.fsCaptions = l; d.setFullScreen = d.getFullScreen = d.checkComplete = c(!1); d.getWidth = d.getHeight = d.getCurrentQuality = c(0); d.getQualityLevels = c(["Auto"]) } }(window.jwplayer), function (h) { function c(a, b) { j.foreach(b, function (b, c) { var e = a[b]; "function" == typeof e && e.call(a, c) }) } function l(a, b, c) { var e = a.style; e.backgroundColor = "#000"; e.color = "#FFF"; e.width = j.styleDimension(c.width); e.height = j.styleDimension(c.height); e.display = "table"; e.opacity = 1; c = document.createElement("p"); e = c.style; e.verticalAlign = "middle"; e.textAlign = "center"; e.display = "table-cell"; e.font = "15px/20px Arial, Helvetica, sans-serif"; c.innerHTML = b.replace(":", ":\x3cbr\x3e"); a.innerHTML = ""; a.appendChild(c) } var j = h.utils, g = h.events, b = !0, e = !1, n = document, a = h.embed = function (d) { function f() { if (!B)if ("array" === j.typeOf(u.playlist) && 2 > u.playlist.length && (0 === u.playlist.length || !u.playlist[0].sources || 0 === u.playlist[0].sources.length))m(); else if (!F)if ("string" === j.typeOf(u.playlist))C = new h.playlist.loader, C.addEventListener(g.JWPLAYER_PLAYLIST_LOADED, function (a) { u.playlist = a.playlist; F = e; f() }), C.addEventListener(g.JWPLAYER_ERROR, function (a) { F = e; m(a) }), F = b, C.load(u.playlist); else if (v.getStatus() == j.loaderstatus.COMPLETE) { for (var k = 0; k < u.modes.length; k++)if (u.modes[k].type && a[u.modes[k].type]) { var l = j.extend({}, u), n = new a[u.modes[k].type](E, u.modes[k], l, v, d); if (n.supportsConfig())return n.addEventListener(g.ERROR, q), n.embed(), j.css("object.jwswf, .jwplayer:focus", {outline: "none"}), j.css(".jw-tab-focus:focus", {outline: "solid 2px #0B7EF4"}), c(d, l.events), d } var p; u.fallback ? (p = "No suitable players found and fallback enabled", D = setTimeout(function () { r(p, b) }, 10), j.log(p), new a.download(E, u, m)) : (p = "No suitable players found and fallback disabled", r(p, e), j.log(p), E.parentNode.replaceChild(H, E)) } } function q(a) { x(A + a.message) } function k(a) { d.dispatchEvent(g.JWPLAYER_ERROR, {message: "Could not load plugin: " + a.message}) } function m(a) { a && a.message ? x("Error loading playlist: " + a.message) : x(A + "No playable sources found") } function r(a, b) { D && (clearTimeout(D), D = null); D = setTimeout(function () { D = null; d.dispatchEvent(g.JWPLAYER_SETUP_ERROR, {message: a, fallback: b}) }, 0) } function x(a) { B || (u.fallback ? (B = b, l(E, a, u), r(a, b)) : r(a, e)) } var u = new a.config(d.config), t = u.width, p = u.height, A = "Error loading player: ", G = n.getElementById(d.id), v = h.plugins.loadPlugins(d.id, u.plugins), C, F = e, B = e, D = null, H = null; u.fallbackDiv && (H = u.fallbackDiv, delete u.fallbackDiv); u.id = d.id; u.aspectratio ? d.config.aspectratio = u.aspectratio : delete d.config.aspectratio; var E = n.createElement("div"); E.id = G.id; E.style.width = 0 < t.toString().indexOf("%") ? t : t + "px"; E.style.height = 0 < p.toString().indexOf("%") ? p : p + "px"; G.parentNode.replaceChild(E, G); this.embed = function () { B || (v.addEventListener(g.COMPLETE, f), v.addEventListener(g.ERROR, k), v.load()) }; this.destroy = function () { v && (v.destroy(), v = null); C && (C.resetEventListeners(), C = null) }; this.errorScreen = x; return this }; h.embed.errorScreen = l }(jwplayer), function (h) { function c(b) { if (b.playlist)for (var c = 0; c < b.playlist.length; c++)b.playlist[c] = new g(b.playlist[c]); else { var h = {}; j.foreach(g.defaults, function (a) { l(b, h, a) }); h.sources || (b.levels ? (h.sources = b.levels, delete b.levels) : (c = {}, l(b, c, "file"), l(b, c, "type"), h.sources = c.file ? [c] : [])); b.playlist = [new g(h)] } } function l(b, c, g) { j.exists(b[g]) && (c[g] = b[g], delete b[g]) } var j = h.utils, g = h.playlist.item; (h.embed.config = function (b) { var e = { fallback: !0, height: 270, primary: "html5", width: 480, base: b.base ? b.base : j.getScriptPath("jwplayer.js"), aspectratio: "" }; b = j.extend(e, h.defaults, b); var e = {type: "html5", src: b.base + "jwplayer.html5.js"}, g = {type: "flash", src: b.base + "jwplayer.flash.swf"}; b.modes = "flash" == b.primary ? [g, e] : [e, g]; b.listbar && (b.playlistsize = b.listbar.size, b.playlistposition = b.listbar.position, b.playlistlayout = b.listbar.layout); b.flashplayer && (g.src = b.flashplayer); b.html5player && (e.src = b.html5player); c(b); g = b.aspectratio; if ("string" != typeof g || !j.exists(g))e = 0; else { var a = g.indexOf(":"); -1 == a ? e = 0 : (e = parseFloat(g.substr(0, a)), g = parseFloat(g.substr(a + 1)), e = 0 >= e || 0 >= g ? 0 : 100 * (g / e) + "%") } -1 == b.width.toString().indexOf("%") ? delete b.aspectratio : e ? b.aspectratio = e : delete b.aspectratio; return b }).addConfig = function (b, e) { c(e); return j.extend(b, e) } }(jwplayer), function (h) { var c = h.utils, l = document; h.embed.download = function (j, g, b) { function e(a, b) { for (var d = l.querySelectorAll(a), e = 0; e < d.length; e++)c.foreach(b, function (a, b) { d[e].style[a] = b }) } function h(a, b, c) { a = l.createElement(a); b && (a.className = "jwdownload" + b); c && c.appendChild(a); return a } var a = c.extend({}, g), d = a.width ? a.width : 480, f = a.height ? a.height : 320, q; g = g.logo ? g.logo : { prefix: c.repo(), file: "logo.png", margin: 10 }; var k, m, r, a = a.playlist, x, u = ["mp4", "aac", "mp3"]; if (a && a.length) { x = a[0]; q = x.sources; for (a = 0; a < q.length; a++) { var t = q[a], p = t.type ? t.type : c.extensionmap.extType(c.extension(t.file)); t.file && c.foreach(u, function (a) { p == u[a] ? (k = t.file, m = x.image) : c.isYouTube(t.file) && (r = t.file) }) } k ? (q = k, b = m, j && (a = h("a", "display", j), h("div", "icon", a), h("div", "logo", a), q && a.setAttribute("href", c.getAbsolutePath(q))), a = "#" + j.id + " .jwdownload", j.style.width = "", j.style.height = "", e(a + "display", { width: c.styleDimension(Math.max(320, d)), height: c.styleDimension(Math.max(180, f)), background: "black center no-repeat " + (b ? "url(" + b + ")" : ""), backgroundSize: "contain", position: "relative", border: "none", display: "block" }), e(a + "display div", { position: "absolute", width: "100%", height: "100%" }), e(a + "logo", { top: g.margin + "px", right: g.margin + "px", background: "top right no-repeat url(" + g.prefix + g.file + ")" }), e(a + "icon", {background: "center no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAgNJREFUeNrs28lqwkAYB/CZqNVDDj2r6FN41QeIy8Fe+gj6BL275Q08u9FbT8ZdwVfotSBYEPUkxFOoks4EKiJdaDuTjMn3wWBO0V/+sySR8SNSqVRKIR8qaXHkzlqS9jCfzzWcTCYp9hF5o+59sVjsiRzcegSckFzcjT+ruN80TeSlAjCAAXzdJSGPFXRpAAMYwACGZQkSdhG4WCzehMNhqV6vG6vVSrirKVEw66YoSqDb7cqlUilE8JjHd/y1MQefVzqdDmiaJpfLZWHgXMHn8F6vJ1cqlVAkEsGuAn83J4gAd2RZymQygX6/L1erVQt+9ZPWb+CDwcCC2zXGJaewl/DhcHhK3DVj+KfKZrMWvFarcYNLomAv4aPRSFZVlTlcSPA5fDweW/BoNIqFnKV53JvncjkLns/n/cLdS+92O7RYLLgsKfv9/t8XlDn4eDyiw+HA9Jyz2eyt0+kY2+3WFC5hluej0Ha7zQQq9PPwdDq1Et1sNsx/nFBgCqWJ8oAK1aUptNVqcYWewE4nahfU0YQnk4ntUEfGMIU2m01HoLaCKbTRaDgKtaVLk9tBYaBcE/6Artdr4RZ5TB6/dC+9iIe/WgAMYADDpAUJAxjAAAYwgGFZgoS/AtNNTF7Z2bL0BYPBV3Jw5xFwwWcYxgtBP5OkE8i9G7aWGOOCruvauwADALMLMEbKf4SdAAAAAElFTkSuQmCC)"})) : r ? (g = r, j = h("iframe", "", j), j.src = "http://www.youtube.com/embed/" + c.youTubeID(g), j.width = d, j.height = f, j.style.border = "none") : b() } } }(jwplayer), function (h) { var c = h.utils, l = h.events, j = {}; (h.embed.flash = function (b, e, n, a, d) { function f(a, b, c) { var d = document.createElement("param"); d.setAttribute("name", b); d.setAttribute("value", c); a.appendChild(d) } function q(a, b, c) { return function () { try { c && document.getElementById(d.id + "_wrapper").appendChild(b); var e = document.getElementById(d.id).getPluginConfig("display"); "function" == typeof a.resize && a.resize(e.width, e.height); b.style.left = e.x; b.style.top = e.h } catch (f) { } } } function k(a) { if (!a)return {}; var b = {}, d = []; c.foreach(a, function (a, e) { var f = c.getPluginName(a); d.push(a); c.foreach(e, function (a, c) { b[f + "." + a] = c }) }); b.plugins = d.join(","); return b } var m = new h.events.eventdispatcher, r = c.flashVersion(); c.extend(this, m); this.embed = function () { n.id = d.id; if (10 > r)return m.sendEvent(l.ERROR, {message: "Flash version must be 10.0 or greater"}), !1; var g, h, t = d.config.listbar, p = c.extend({}, n); if (b.id + "_wrapper" == b.parentNode.id)g = document.getElementById(b.id + "_wrapper"); else { g = document.createElement("div"); h = document.createElement("div"); h.style.display = "none"; h.id = b.id + "_aspect"; g.id = b.id + "_wrapper"; g.style.position = "relative"; g.style.display = "block"; g.style.width = c.styleDimension(p.width); g.style.height = c.styleDimension(p.height); if (d.config.aspectratio) { var A = parseFloat(d.config.aspectratio); h.style.display = "block"; h.style.marginTop = d.config.aspectratio; g.style.height = "auto"; g.style.display = "inline-block"; t && ("bottom" == t.position ? h.style.paddingBottom = t.size + "px" : "right" == t.position && (h.style.marginBottom = -1 * t.size * (A / 100) + "px")) } b.parentNode.replaceChild(g, b); g.appendChild(b); g.appendChild(h) } g = a.setupPlugins(d, p, q); 0 < g.length ? c.extend(p, k(g.plugins)) : delete p.plugins; "undefined" != typeof p["dock.position"] && "false" == p["dock.position"].toString().toLowerCase() && (p.dock = p["dock.position"], delete p["dock.position"]); g = p.wmode ? p.wmode : p.height && 40 >= p.height ? "transparent" : "opaque"; h = "height width modes events primary base fallback volume".split(" "); for (t = 0; t < h.length; t++)delete p[h[t]]; h = c.getCookies(); c.foreach(h, function (a, b) { "undefined" == typeof p[a] && (p[a] = b) }); h = window.location.href.split("/"); h.splice(h.length - 1, 1); h = h.join("/"); p.base = h + "/"; j[b.id] = p; c.isMSIE() ? (h = '\x3cobject classid\x3d"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" " width\x3d"100%" height\x3d"100%"id\x3d"' + b.id + '" name\x3d"' + b.id + '" tabindex\x3d0""\x3e', h += '\x3cparam name\x3d"movie" value\x3d"' + e.src + '"\x3e', h += '\x3cparam name\x3d"allowfullscreen" value\x3d"true"\x3e\x3cparam name\x3d"allowscriptaccess" value\x3d"always"\x3e', h += '\x3cparam name\x3d"seamlesstabbing" value\x3d"true"\x3e', h += '\x3cparam name\x3d"wmode" value\x3d"' + g + '"\x3e', h += '\x3cparam name\x3d"bgcolor" value\x3d"#000000"\x3e', h += "\x3c/object\x3e", b.outerHTML = h, g = document.getElementById(b.id)) : (h = document.createElement("object"), h.setAttribute("type", "application/x-shockwave-flash"), h.setAttribute("data", e.src), h.setAttribute("width", "100%"), h.setAttribute("height", "100%"), h.setAttribute("bgcolor", "#000000"), h.setAttribute("id", b.id), h.setAttribute("name", b.id), h.className = "jwswf", f(h, "allowfullscreen", "true"), f(h, "allowscriptaccess", "always"), f(h, "seamlesstabbing", "true"), f(h, "wmode", g), b.parentNode.replaceChild(h, b), g = h); d.config.aspectratio && (g.style.position = "absolute"); d.container = g; d.setPlayer(g, "flash") }; this.supportsConfig = function () { if (r)if (n) { if ("string" == c.typeOf(n.playlist))return !0; try { var a = n.playlist[0].sources; if ("undefined" == typeof a)return !0; for (var b = 0; b < a.length; b++)if (a[b].file && g(a[b].file, a[b].type))return !0 } catch (d) { } } else return !0; return !1 } }).getVars = function (b) { return j[b] }; var g = h.embed.flashCanPlay = function (b, e) { if (c.isYouTube(b) || c.isRtmp(b, e) || "hls" == e)return !0; var g = c.extensionmap[e ? e : c.extension(b)]; return !g ? !1 : !!g.flash } }(jwplayer), function (h) { function c(b, c, g) { if (null !== navigator.userAgent.match(/BlackBerry/i))return !1; if ("youtube" === c || l.isYouTube(b))return !0; var a = l.extension(b); c = c || j.extType(a); if ("hls" === c)if (g) { g = l.isAndroidNative; if (g(2) || g(3) || g("4.0"))return !1; if (l.isAndroid())return !0 } else if (l.isAndroid())return !1; if (l.isRtmp(b, c))return !1; b = j[c] || j[a]; if (!b || b.flash && !b.html5)return !1; var d; a:if (b = b.html5) { try { d = !!h.vid.canPlayType(b); break a } catch (f) { } d = !1 } else d = !0; return d } var l = h.utils, j = l.extensionmap, g = h.events; h.embed.html5 = function (b, e, j, a, d) { function f(a, c, d) { return function () { try { var e = document.querySelector("#" + b.id + " .jwmain"); d && e.appendChild(c); "function" == typeof a.resize && (a.resize(e.clientWidth, e.clientHeight), setTimeout(function () { a.resize(e.clientWidth, e.clientHeight) }, 400)); c.left = e.style.left; c.top = e.style.top } catch (f) { } } } function q(a) { k.sendEvent(a.type, {message: "HTML5 player not found"}) } var k = this, m = new g.eventdispatcher; l.extend(k, m); k.embed = function () { if (h.html5) { a.setupPlugins(d, j, f); b.innerHTML = ""; var c = h.utils.extend({}, j); delete c.volume; c = new h.html5.player(c); d.container = document.getElementById(d.id); d.setPlayer(c, "html5") } else c = new l.scriptloader(e.src), c.addEventListener(g.ERROR, q), c.addEventListener(g.COMPLETE, k.embed), c.load() }; k.supportsConfig = function () { if (h.vid.canPlayType)try { if ("string" == l.typeOf(j.playlist))return !0; for (var a = j.playlist[0].sources, b = 0; b < a.length; b++)if (c(a[b].file, a[b].type, j.androidhls))return !0 } catch (d) { } return !1 } }; h.embed.html5CanPlay = c }(jwplayer), function (h) { var c = h.embed, l = h.utils, j = /\.(js|swf)$/; h.embed = l.extend(function (g) { function b() { t = "Adobe SiteCatalyst Error: Could not find Media Module" } var e = l.repo(), n = l.extend({}, h.defaults), a = l.extend({}, n, g.config), d = g.config, f = a.plugins, q = a.analytics, k = e + "jwpsrv.js", m = e + "sharing.js", r = e + "related.js", x = e + "gapro.js", n = h.key ? h.key : n.key, u = (new h.utils.key(n)).edition(), t, f = f ? f : {}; "ads" == u && a.advertising && (j.test(a.advertising.client) ? f[a.advertising.client] = a.advertising : f[e + a.advertising.client + ".js"] = a.advertising); delete d.advertising; d.key = n; a.analytics && j.test(a.analytics.client) && (k = a.analytics.client); delete d.analytics; q && !("ads" === u || "enterprise" === u) && delete q.enabled; if ("free" == u || !q || !1 !== q.enabled)f[k] = q ? q : {}; delete f.sharing; delete f.related; switch (u) { case "ads": case "enterprise": if (d.sitecatalyst)try { window.s && window.s.hasOwnProperty("Media") ? new h.embed.sitecatalyst(g) : b() } catch (p) { b() } case "premium": a.related && (j.test(a.related.client) && (r = a.related.client), f[r] = a.related), a.ga && (j.test(a.ga.client) && (x = a.ga.client), f[x] = a.ga); case "pro": a.sharing && (j.test(a.sharing.client) && (m = a.sharing.client), f[m] = a.sharing), a.skin && (d.skin = a.skin.replace(/^(beelden|bekle|five|glow|modieus|roundster|stormtrooper|vapor)$/i, l.repo() + "skins/$1.xml")) } d.plugins = f; g.config = d; g = new c(g); t && g.errorScreen(t); return g }, h.embed) }(jwplayer), function (h) { var c = jwplayer.utils; h.sitecatalyst = function (h) { function j(b) { a.debug && c.log(b) } function g(a) { a = a.split("/"); a = a[a.length - 1]; a = a.split("?"); return a[0] } function b() { if (!m) { m = !0; var a = n.getPosition(); j("stop: " + f + " : " + a); s.Media.stop(f, a) } } function e() { r || (b(), r = !0, j("close: " + f), s.Media.close(f), x = !0, k = 0) } var n = h, a = c.extend({}, n.config.sitecatalyst), d = { onPlay: function () { if (!x) { var a = n.getPosition(); m = !1; j("play: " + f + " : " + a); s.Media.play(f, a) } }, onPause: b, onBuffer: b, onIdle: e, onPlaylistItem: function (b) { try { x = !0; e(); k = 0; var d; if (a.mediaName)d = a.mediaName; else { var h = n.getPlaylistItem(b.index); d = h.title ? h.title : h.file ? g(h.file) : h.sources && h.sources.length ? g(h.sources[0].file) : "" } f = d; q = a.playerName ? a.playerName : n.id } catch (j) { c.log(j) } }, onTime: function () { if (x) { var a = n.getDuration(); if (-1 == a)return; r = m = x = !1; j("open: " + f + " : " + a + " : " + q); s.Media.open(f, a, q); j("play: " + f + " : 0"); s.Media.play(f, 0) } a = n.getPosition(); if (3 <= Math.abs(a - k)) { var b = k; j("seek: " + b + " to " + a); j("stop: " + f + " : " + b); s.Media.stop(f, b); j("play: " + f + " : " + a); s.Media.play(f, a) } k = a }, onComplete: e }, f, q, k, m = !0, r = !0, x; c.foreach(d, function (a) { n[a](d[a]) }) } }(jwplayer.embed), function (h, c) { var l = [], j = h.utils, g = h.events, b = g.state, e = document, n = "getBuffer getCaptionsList getControls getCurrentCaptions getCurrentQuality getDuration getFullscreen getHeight getLockState getMute getPlaylistIndex getSafeRegion getPosition getQualityLevels getState getVolume getWidth isBeforeComplete isBeforePlay releaseState".split(" "), a = "playlistNext stop forceState playlistPrev seek setCurrentCaptions setControls setCurrentQuality setVolume".split(" "), d = { onBufferChange: g.JWPLAYER_MEDIA_BUFFER, onBufferFull: g.JWPLAYER_MEDIA_BUFFER_FULL, onError: g.JWPLAYER_ERROR, onSetupError: g.JWPLAYER_SETUP_ERROR, onFullscreen: g.JWPLAYER_FULLSCREEN, onMeta: g.JWPLAYER_MEDIA_META, onMute: g.JWPLAYER_MEDIA_MUTE, onPlaylist: g.JWPLAYER_PLAYLIST_LOADED, onPlaylistItem: g.JWPLAYER_PLAYLIST_ITEM, onPlaylistComplete: g.JWPLAYER_PLAYLIST_COMPLETE, onReady: g.API_READY, onResize: g.JWPLAYER_RESIZE, onComplete: g.JWPLAYER_MEDIA_COMPLETE, onSeek: g.JWPLAYER_MEDIA_SEEK, onTime: g.JWPLAYER_MEDIA_TIME, onVolume: g.JWPLAYER_MEDIA_VOLUME, onBeforePlay: g.JWPLAYER_MEDIA_BEFOREPLAY, onBeforeComplete: g.JWPLAYER_MEDIA_BEFORECOMPLETE, onDisplayClick: g.JWPLAYER_DISPLAY_CLICK, onControls: g.JWPLAYER_CONTROLS, onQualityLevels: g.JWPLAYER_MEDIA_LEVELS, onQualityChange: g.JWPLAYER_MEDIA_LEVEL_CHANGED, onCaptionsList: g.JWPLAYER_CAPTIONS_LIST, onCaptionsChange: g.JWPLAYER_CAPTIONS_CHANGED, onAdError: g.JWPLAYER_AD_ERROR, onAdClick: g.JWPLAYER_AD_CLICK, onAdImpression: g.JWPLAYER_AD_IMPRESSION, onAdTime: g.JWPLAYER_AD_TIME, onAdComplete: g.JWPLAYER_AD_COMPLETE, onAdCompanions: g.JWPLAYER_AD_COMPANIONS, onAdSkipped: g.JWPLAYER_AD_SKIPPED, onAdPlay: g.JWPLAYER_AD_PLAY, onAdPause: g.JWPLAYER_AD_PAUSE, onAdMeta: g.JWPLAYER_AD_META, onCast: g.JWPLAYER_CAST_SESSION }, f = {onBuffer: b.BUFFERING, onPause: b.PAUSED, onPlay: b.PLAYING, onIdle: b.IDLE}; h.api = function (l) { function k(a, b) { j.foreach(a, function (a, c) { p[a] = function (a) { return b(c, a) } }) } function m(a, b) { var c = "jw" + b.charAt(0).toUpperCase() + b.slice(1); p[b] = function () { var b = t.apply(this, [c].concat(Array.prototype.slice.call(arguments, 0))); return a ? p : b } } function r(a) { F = []; D && D.destroy && D.destroy(); h.api.destroyPlayer(a.id) } function x(a, b) { try { a.jwAddEventListener(b, 'function(dat) { jwplayer("' + p.id + '").dispatchEvent("' + b + '", dat); }') } catch (c) { j.log("Could not add internal listener") } } function u(a, b) { A[a] || (A[a] = [], v && C && x(v, a)); A[a].push(b); return p } function t() { if (C) { if (v) { var a = Array.prototype.slice.call(arguments, 0), b = a.shift(); if ("function" === typeof v[b]) { switch (a.length) { case 6: return v[b](a[0], a[1], a[2], a[3], a[4], a[5]); case 5: return v[b](a[0], a[1], a[2], a[3], a[4]); case 4: return v[b](a[0], a[1], a[2], a[3]); case 3: return v[b](a[0], a[1], a[2]); case 2: return v[b](a[0], a[1]); case 1: return v[b](a[0]) } return v[b]() } } return null } F.push(arguments) } var p = this, A = {}, G = {}, v, C = !1, F = [], B, D, H = {}, E = {}; p.container = l; p.id = l.id; p.setup = function (a) { if (h.embed) { var b = e.getElementById(p.id); b && (a.fallbackDiv = b); r(p); b = h(p.id); b.config = a; D = new h.embed(b); D.embed(); return b } return p }; p.getContainer = function () { return p.container }; p.addButton = function (a, b, c, d) { try { E[d] = c, t("jwDockAddButton", a, b, "jwplayer('" + p.id + "').callback('" + d + "')", d) } catch (e) { j.log("Could not add dock button" + e.message) } }; p.removeButton = function (a) { t("jwDockRemoveButton", a) }; p.callback = function (a) { if (E[a])E[a]() }; p.getMeta = function () { return p.getItemMeta() }; p.getPlaylist = function () { var a = t("jwGetPlaylist"); "flash" == p.renderingMode && j.deepReplaceKeyName(a, ["__dot__", "__spc__", "__dsh__", "__default__"], [".", " ", "-", "default"]); return a }; p.getPlaylistItem = function (a) { j.exists(a) || (a = p.getPlaylistIndex()); return p.getPlaylist()[a] }; p.getRenderingMode = function () { return p.renderingMode }; p.setFullscreen = function (a) { j.exists(a) ? t("jwSetFullscreen", a) : t("jwSetFullscreen", !t("jwGetFullscreen")); return p }; p.setMute = function (a) { j.exists(a) ? t("jwSetMute", a) : t("jwSetMute", !t("jwGetMute")); return p }; p.lock = function () { return p }; p.unlock = function () { return p }; p.load = function (a) { t("jwInstreamDestroy"); h(p.id).plugins.googima && t("jwDestroyGoogima"); t("jwLoad", a); return p }; p.playlistItem = function (a) { t("jwPlaylistItem", parseInt(a, 10)); return p }; p.resize = function (a, b) { if ("flash" !== p.renderingMode)t("jwResize", a, b); else { var c = e.getElementById(p.id + "_wrapper"), d = e.getElementById(p.id + "_aspect"); d && (d.style.display = "none"); c && (c.style.display = "block", c.style.width = j.styleDimension(a), c.style.height = j.styleDimension(b)) } return p }; p.play = function (a) { if (a !== c)return t("jwPlay", a), p; a = p.getState(); var d = B && B.getState(); d ? d === b.IDLE || d === b.PLAYING || d === b.BUFFERING ? t("jwInstreamPause") : t("jwInstreamPlay") : a == b.PLAYING || a == b.BUFFERING ? t("jwPause") : t("jwPlay"); return p }; p.pause = function (a) { a === c ? (a = p.getState(), a == b.PLAYING || a == b.BUFFERING ? t("jwPause") : t("jwPlay")) : t("jwPause", a); return p }; p.createInstream = function () { return new h.api.instream(this, v) }; p.setInstream = function (a) { return B = a }; p.loadInstream = function (a, b) { B = p.setInstream(p.createInstream()).init(b); B.loadItem(a); return B }; p.destroyPlayer = function () { t("jwPlayerDestroy") }; p.playAd = function (a) { var b = h(p.id).plugins; b.vast ? b.vast.jwPlayAd(a) : t("jwPlayAd", a) }; p.pauseAd = function () { var a = h(p.id).plugins; a.vast ? a.vast.jwPauseAd() : t("jwPauseAd") }; k(f, function (a, b) { G[a] || (G[a] = [], u(g.JWPLAYER_PLAYER_STATE, function (b) { var c = b.newstate; b = b.oldstate; if (c == a) { var d = G[c]; if (d)for (var e = 0; e < d.length; e++) { var f = d[e]; "function" == typeof f && f.call(this, {oldstate: b, newstate: c}) } } })); G[a].push(b); return p }); k(d, u); j.foreach(n, function (a, b) { m(!1, b) }); j.foreach(a, function (a, b) { m(!0, b) }); p.remove = function () { if (!C)throw"Cannot call remove() before player is ready"; r(this) }; p.registerPlugin = function (a, b, c, d) { h.plugins.registerPlugin(a, b, c, d) }; p.setPlayer = function (a, b) { v = a; p.renderingMode = b }; p.detachMedia = function () { if ("html5" == p.renderingMode)return t("jwDetachMedia") }; p.attachMedia = function (a) { if ("html5" == p.renderingMode)return t("jwAttachMedia", a) }; p.removeEventListener = function (a, b) { var c = A[a]; if (c)for (var d = c.length; d--;)c[d] === b && c.splice(d, 1) }; p.dispatchEvent = function (a, b) { var c = A[a]; if (c)for (var c = c.slice(0), d = j.translateEventResponse(a, b), e = 0; e < c.length; e++) { var f = c[e]; if ("function" === typeof f)try { a === g.JWPLAYER_PLAYLIST_LOADED && j.deepReplaceKeyName(d.playlist, ["__dot__", "__spc__", "__dsh__", "__default__"], [".", " ", "-", "default"]), f.call(this, d) } catch (h) { j.log("There was an error calling back an event handler") } } }; p.dispatchInstreamEvent = function (a) { B && B.dispatchEvent(a, arguments) }; p.callInternal = t; p.playerReady = function (a) { C = !0; v || p.setPlayer(e.getElementById(a.id)); p.container = e.getElementById(p.id); j.foreach(A, function (a) { x(v, a) }); u(g.JWPLAYER_PLAYLIST_ITEM, function () { H = {} }); u(g.JWPLAYER_MEDIA_META, function (a) { j.extend(H, a.metadata) }); u(g.JWPLAYER_VIEW_TAB_FOCUS, function (a) { var b = p.getContainer(); !0 === a.hasFocus ? j.addClass(b, "jw-tab-focus") : j.removeClass(b, "jw-tab-focus") }); for (p.dispatchEvent(g.API_READY); 0 < F.length;)t.apply(this, F.shift()) }; p.getItemMeta = function () { return H }; return p }; h.playerReady = function (a) { var b = h.api.playerById(a.id); b ? b.playerReady(a) : h.api.selectPlayer(a.id).playerReady(a) }; h.api.selectPlayer = function (a) { var b; j.exists(a) || (a = 0); a.nodeType ? b = a : "string" == typeof a && (b = e.getElementById(a)); return b ? (a = h.api.playerById(b.id)) ? a : h.api.addPlayer(new h.api(b)) : "number" == typeof a ? l[a] : null }; h.api.playerById = function (a) { for (var b = 0; b < l.length; b++)if (l[b].id == a)return l[b]; return null }; h.api.addPlayer = function (a) { for (var b = 0; b < l.length; b++)if (l[b] == a)return a; l.push(a); return a }; h.api.destroyPlayer = function (a) { var b, d, f; j.foreach(l, function (c, e) { e.id === a && (b = c, d = e) }); if (b === c || d === c)return null; j.clearCss("#" + d.id); if (f = e.getElementById(d.id + ("flash" == d.renderingMode ? "_wrapper" : ""))) { "html5" === d.renderingMode && d.destroyPlayer(); var g = e.createElement("div"); g.id = d.id; f.parentNode.replaceChild(g, f) } l.splice(b, 1); return null } }(window.jwplayer), function (h) { var c = h.events, l = h.utils, j = c.state; h.api.instream = function (g, b) { function e(a, c) { f[a] || (f[a] = [], b.jwInstreamAddEventListener(a, 'function(dat) { jwplayer("' + g.id + '").dispatchInstreamEvent("' + a + '", dat); }')); f[a].push(c); return this } function h(a, b) { q[a] || (q[a] = [], e(c.JWPLAYER_PLAYER_STATE, function (b) { var c = b.newstate, d = b.oldstate; if (c == a) { var e = q[c]; if (e)for (var f = 0; f < e.length; f++) { var g = e[f]; "function" == typeof g && g.call(this, {oldstate: d, newstate: c, type: b.type}) } } })); q[a].push(b); return this } var a, d, f = {}, q = {}, k = this; k.type = "instream"; k.init = function () { g.callInternal("jwInitInstream"); return k }; k.loadItem = function (b, c) { a = b; d = c || {}; "array" == l.typeOf(b) ? g.callInternal("jwLoadArrayInstream", a, d) : g.callInternal("jwLoadItemInstream", a, d) }; k.removeEvents = function () { f = q = {} }; k.removeEventListener = function (a, b) { var c = f[a]; if (c)for (var d = c.length; d--;)c[d] === b && c.splice(d, 1) }; k.dispatchEvent = function (a, b) { var c = f[a]; if (c)for (var c = c.slice(0), d = l.translateEventResponse(a, b[1]), e = 0; e < c.length; e++) { var g = c[e]; "function" == typeof g && g.call(this, d) } }; k.onError = function (a) { return e(c.JWPLAYER_ERROR, a) }; k.onMediaError = function (a) { return e(c.JWPLAYER_MEDIA_ERROR, a) }; k.onFullscreen = function (a) { return e(c.JWPLAYER_FULLSCREEN, a) }; k.onMeta = function (a) { return e(c.JWPLAYER_MEDIA_META, a) }; k.onMute = function (a) { return e(c.JWPLAYER_MEDIA_MUTE, a) }; k.onComplete = function (a) { return e(c.JWPLAYER_MEDIA_COMPLETE, a) }; k.onPlaylistComplete = function (a) { return e(c.JWPLAYER_PLAYLIST_COMPLETE, a) }; k.onPlaylistItem = function (a) { return e(c.JWPLAYER_PLAYLIST_ITEM, a) }; k.onTime = function (a) { return e(c.JWPLAYER_MEDIA_TIME, a) }; k.onBuffer = function (a) { return h(j.BUFFERING, a) }; k.onPause = function (a) { return h(j.PAUSED, a) }; k.onPlay = function (a) { return h(j.PLAYING, a) }; k.onIdle = function (a) { return h(j.IDLE, a) }; k.onClick = function (a) { return e(c.JWPLAYER_INSTREAM_CLICK, a) }; k.onInstreamDestroyed = function (a) { return e(c.JWPLAYER_INSTREAM_DESTROYED, a) }; k.onAdSkipped = function (a) { return e(c.JWPLAYER_AD_SKIPPED, a) }; k.play = function (a) { b.jwInstreamPlay(a) }; k.pause = function (a) { b.jwInstreamPause(a) }; k.hide = function () { g.callInternal("jwInstreamHide") }; k.destroy = function () { k.removeEvents(); g.callInternal("jwInstreamDestroy") }; k.setText = function (a) { b.jwInstreamSetText(a ? a : "") }; k.getState = function () { return b.jwInstreamState() }; k.setClick = function (a) { b.jwInstreamClick && b.jwInstreamClick(a) } } }(window.jwplayer), function (h) { var c = h.api, l = c.selectPlayer; c.selectPlayer = function (c) { return (c = l(c)) ? c : { registerPlugin: function (c, b, e) { h.plugins.registerPlugin(c, b, e) } } } }(jwplayer));