if (typeof jwplayer == "undefined") { var jwplayer = function(a) { if (jwplayer.api) { return jwplayer.api.selectPlayer(a) } }; var $jw = jwplayer; jwplayer.version = "5.10.2295"; jwplayer.vid = document.createElement("video"); jwplayer.audio = document.createElement("audio"); jwplayer.source = document.createElement("source"); (function(b) { b.utils = function() { }; b.utils.typeOf = function(d) { var c = typeof d; if (c === "object") { if (d) { if (d instanceof Array) { c = "array" } } else { c = "null" } } return c }; b.utils.extend = function() { var c = b.utils.extend["arguments"]; if (c.length > 1) { for ( var e = 1; e < c.length; e++) { for ( var d in c[e]) { c[0][d] = c[e][d] } } return c[0] } return null }; b.utils.clone = function(f) { var c; var d = b.utils.clone["arguments"]; if (d.length == 1) { switch (b.utils.typeOf(d[0])) { case "object": c = {}; for ( var e in d[0]) { c[e] = b.utils.clone(d[0][e]) } break; case "array": c = []; for ( var e in d[0]) { c[e] = b.utils.clone(d[0][e]) } break; default: return d[0]; break } } return c }; b.utils.extension = function(c) { if (!c) { return "" } c = c.substring(c.lastIndexOf("/") + 1, c.length); c = c.split("?")[0]; if (c.lastIndexOf(".") > -1) { return c.substr(c.lastIndexOf(".") + 1, c.length).toLowerCase() } return }; b.utils.html = function(c, d) { c.innerHTML = d }; b.utils.wrap = function(c, d) { if (c.parentNode) { c.parentNode.replaceChild(d, c) } d.appendChild(c) }; b.utils.ajax = function(g, f, c) { var e; if (window.XMLHttpRequest) { e = new XMLHttpRequest() } else { e = new ActiveXObject("Microsoft.XMLHTTP") } e.onreadystatechange = function() { if (e.readyState === 4) { if (e.status === 200) { if (f) { if (!b.utils.exists(e.responseXML)) { try { if (window.DOMParser) { var h = (new DOMParser()) .parseFromString( e.responseText, "text/xml"); if (h) { e = b.utils.extend( {}, e, { responseXML : h }) } } else { h = new ActiveXObject( "Microsoft.XMLDOM"); h.async = "false"; h.loadXML(e.responseText); e = b.utils.extend( {}, e, { responseXML : h }) } } catch (j) { if (c) { c(g) } } } f(e) } } else { if (c) { c(g) } } } }; try { e.open("GET", g, true); e.send(null) } catch (d) { if (c) { c(g) } } return e }; b.utils.load = function(d, e, c) { d.onreadystatechange = function() { if (d.readyState === 4) { if (d.status === 200) { if (e) { e() } } else { if (c) { c() } } } } }; b.utils.find = function(d, c) { return d.getElementsByTagName(c) }; b.utils.append = function(c, d) { c.appendChild(d) }; b.utils.isIE = function() { return ((!+"\v1") || (typeof window.ActiveXObject != "undefined")) }; b.utils.userAgentMatch = function(d) { var c = navigator.userAgent.toLowerCase(); return (c.match(d) !== null) }; b.utils.isIOS = function() { return b.utils.userAgentMatch(/iP(hone|ad|od)/i) }; b.utils.isIPad = function() { return b.utils.userAgentMatch(/iPad/i) }; b.utils.isIPod = function() { return b.utils.userAgentMatch(/iP(hone|od)/i) }; b.utils.isAndroid = function() { return b.utils.userAgentMatch(/android/i) }; b.utils.isLegacyAndroid = function() { return b.utils.userAgentMatch(/android 2.[012]/i) }; b.utils.isBlackberry = function() { return b.utils.userAgentMatch(/blackberry/i) }; b.utils.isMobile = function() { return b.utils.userAgentMatch(/(iP(hone|ad|od))|android/i) }; b.utils.getFirstPlaylistItemFromConfig = function(c) { var d = {}; var e; if (c.playlist && c.playlist.length) { e = c.playlist[0] } else { e = c } d.file = e.file; d.levels = e.levels; d.streamer = e.streamer; d.playlistfile = e.playlistfile; d.provider = e.provider; if (!d.provider) { if (d.file && (d.file.toLowerCase().indexOf("youtube.com") > -1 || d.file .toLowerCase().indexOf("youtu.be") > -1)) { d.provider = "youtube" } if (d.streamer && d.streamer.toLowerCase().indexOf("rtmp://") == 0) { d.provider = "rtmp" } if (e.type) { d.provider = e.type.toLowerCase() } } if (d.provider == "audio") { d.provider = "sound" } return d }; b.utils.getOuterHTML = function(c) { if (c.outerHTML) { return c.outerHTML } else { try { return new XMLSerializer().serializeToString(c) } catch (d) { return "" } } }; b.utils.setOuterHTML = function(f, e) { if (f.outerHTML) { f.outerHTML = e } else { var g = document.createElement("div"); g.innerHTML = e; var c = document.createRange(); c.selectNodeContents(g); var d = c.extractContents(); f.parentNode.insertBefore(d, f); f.parentNode.removeChild(f) } }; b.utils.hasFlash = function() { if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] != "undefined") { return true } if (typeof window.ActiveXObject != "undefined") { try { new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); return true } catch (c) { } } return false }; b.utils.getPluginName = function(c) { if (c.lastIndexOf("/") >= 0) { c = c.substring(c.lastIndexOf("/") + 1, c.length) } if (c.lastIndexOf("-") >= 0) { c = c.substring(0, c.lastIndexOf("-")) } if (c.lastIndexOf(".swf") >= 0) { c = c.substring(0, c.lastIndexOf(".swf")) } if (c.lastIndexOf(".js") >= 0) { c = c.substring(0, c.lastIndexOf(".js")) } return c }; b.utils.getPluginVersion = function(c) { if (c.lastIndexOf("-") >= 0) { if (c.lastIndexOf(".js") >= 0) { return c.substring(c.lastIndexOf("-") + 1, c .lastIndexOf(".js")) } else { if (c.lastIndexOf(".swf") >= 0) { return c.substring(c.lastIndexOf("-") + 1, c .lastIndexOf(".swf")) } else { return c.substring(c.lastIndexOf("-") + 1) } } } return "" }; b.utils.getAbsolutePath = function(j, h) { if (!b.utils.exists(h)) { h = document.location.href } if (!b.utils.exists(j)) { return undefined } if (a(j)) { return j } var k = h.substring(0, h.indexOf("://") + 3); var g = h.substring(k.length, h.indexOf("/", k.length + 1)); var d; if (j.indexOf("/") === 0) { d = j.split("/") } else { var e = h.split("?")[0]; e = e.substring(k.length + g.length + 1, e.lastIndexOf("/")); d = e.split("/").concat(j.split("/")) } var c = []; for ( var f = 0; f < d.length; f++) { if (!d[f] || !b.utils.exists(d[f]) || d[f] == ".") { continue } else { if (d[f] == "..") { c.pop() } else { c.push(d[f]) } } } return k + g + "/" + c.join("/") }; function a(d) { if (!b.utils.exists(d)) { return } var e = d.indexOf("://"); var c = d.indexOf("?"); return (e > 0 && (c < 0 || (c > e))) } b.utils.pluginPathType = { ABSOLUTE : "ABSOLUTE", RELATIVE : "RELATIVE", CDN : "CDN" }; b.utils.getPluginPathType = function(d) { if (typeof d != "string") { return } d = d.split("?")[0]; var e = d.indexOf("://"); if (e > 0) { return b.utils.pluginPathType.ABSOLUTE } var c = d.indexOf("/"); var f = b.utils.extension(d); if (e < 0 && c < 0 && (!f || !isNaN(f))) { return b.utils.pluginPathType.CDN } return b.utils.pluginPathType.RELATIVE }; b.utils.mapEmpty = function(c) { for ( var d in c) { return false } return true }; b.utils.mapLength = function(d) { var c = 0; for ( var e in d) { c++ } return c }; b.utils.log = function(d, c) { if (typeof console != "undefined" && typeof console.log != "undefined") { if (c) { console.log(d, c) } else { console.log(d) } } }; b.utils.css = function(d, g, c) { if (b.utils.exists(d)) { for ( var e in g) { try { if (typeof g[e] === "undefined") { continue } else { if (typeof g[e] == "number" && !(e == "zIndex" || e == "opacity")) { if (isNaN(g[e])) { continue } if (e.match(/color/i)) { g[e] = "#" + b.utils.strings.pad(g[e] .toString(16), 6) } else { g[e] = Math.ceil(g[e]) + "px" } } } d.style[e] = g[e] } catch (f) { } } } }; b.utils.isYouTube = function(c) { return (c.indexOf("youtube.com") > -1 || c.indexOf("youtu.be") > -1) }; b.utils.transform = function(e, d, c, g, h) { if (!b.utils.exists(d)) { d = 1 } if (!b.utils.exists(c)) { c = 1 } if (!b.utils.exists(g)) { g = 0 } if (!b.utils.exists(h)) { h = 0 } if (d == 1 && c == 1 && g == 0 && h == 0) { e.style.webkitTransform = ""; e.style.MozTransform = ""; e.style.OTransform = "" } else { var f = "scale(" + d + "," + c + ") translate(" + g + "px," + h + "px)"; e.style.webkitTransform = f; e.style.MozTransform = f; e.style.OTransform = f } }; b.utils.stretch = function(k, q, p, g, n, h) { if (typeof p == "undefined" || typeof g == "undefined" || typeof n == "undefined" || typeof h == "undefined") { return } var d = p / n; var f = g / h; var m = 0; var l = 0; var e = false; var c = {}; if (q.parentElement) { q.parentElement.style.overflow = "hidden" } b.utils.transform(q); switch (k.toUpperCase()) { case b.utils.stretching.NONE: c.width = n; c.height = h; c.top = (g - c.height) / 2; c.left = (p - c.width) / 2; break; case b.utils.stretching.UNIFORM: if (d > f) { c.width = n * f; c.height = h * f; if (c.width / p > 0.95) { e = true; d = Math.ceil(100 * p / c.width) / 100; f = 1; c.width = p } } else { c.width = n * d; c.height = h * d; if (c.height / g > 0.95) { e = true; d = 1; f = Math.ceil(100 * g / c.height) / 100; c.height = g } } c.top = (g - c.height) / 2; c.left = (p - c.width) / 2; break; case b.utils.stretching.FILL: if (d > f) { c.width = n * d; c.height = h * d } else { c.width = n * f; c.height = h * f } c.top = (g - c.height) / 2; c.left = (p - c.width) / 2; break; case b.utils.stretching.EXACTFIT: c.width = n; c.height = h; var o = Math.round((n / 2) * (1 - 1 / d)); var j = Math.round((h / 2) * (1 - 1 / f)); e = true; c.top = c.left = 0; break; default: break } if (e) { b.utils.transform(q, d, f, o, j) } b.utils.css(q, c) }; b.utils.stretching = { NONE : "NONE", FILL : "FILL", UNIFORM : "UNIFORM", EXACTFIT : "EXACTFIT" }; b.utils.deepReplaceKeyName = function(k, e, c) { switch (b.utils.typeOf(k)) { case "array": for ( var g = 0; g < k.length; g++) { k[g] = b.utils.deepReplaceKeyName(k[g], e, c) } break; case "object": for ( var f in k) { var j, h; if (e instanceof Array && c instanceof Array) { if (e.length != c.length) { continue } else { j = e; h = c } } else { j = [ e ]; h = [ c ] } var d = f; for ( var g = 0; g < j.length; g++) { d = d.replace(new RegExp(e[g], "g"), c[g]) } k[d] = b.utils.deepReplaceKeyName(k[f], e, c); if (f != d) { delete k[f] } } break } return k }; b.utils.isInArray = function(e, d) { if (!(e) || !(e instanceof Array)) { return false } for ( var c = 0; c < e.length; c++) { if (d === e[c]) { return true } } return false }; b.utils.exists = function(c) { switch (typeof (c)) { case "string": return (c.length > 0); break; case "object": return (c !== null); case "undefined": return false } return true }; b.utils.empty = function(c) { if (typeof c.hasChildNodes == "function") { while (c.hasChildNodes()) { c.removeChild(c.firstChild) } } }; b.utils.parseDimension = function(c) { if (typeof c == "string") { if (c === "") { return 0 } else { if (c.lastIndexOf("%") > -1) { return c } else { return parseInt(c.replace("px", ""), 10) } } } return c }; b.utils.getDimensions = function(c) { if (c && c.style) { return { x : b.utils.parseDimension(c.style.left), y : b.utils.parseDimension(c.style.top), width : b.utils.parseDimension(c.style.width), height : b.utils.parseDimension(c.style.height) } } else { return {} } }; b.utils.getElementWidth = function(c) { if (!c) { return null } else { if (c == document.body) { return b.utils.parentNode(c).clientWidth } else { if (c.clientWidth > 0) { return c.clientWidth } else { if (c.style) { return b.utils.parseDimension(c.style.width) } else { return null } } } } }; b.utils.getElementHeight = function(c) { if (!c) { return null } else { if (c == document.body) { return b.utils.parentNode(c).clientHeight } else { if (c.clientHeight > 0) { return c.clientHeight } else { if (c.style) { return b.utils.parseDimension(c.style.height) } else { return null } } } } }; b.utils.timeFormat = function(c) { str = "00:00"; if (c > 0) { str = Math.floor(c / 60) < 10 ? "0" + Math.floor(c / 60) + ":" : Math.floor(c / 60) + ":"; str += Math.floor(c % 60) < 10 ? "0" + Math.floor(c % 60) : Math.floor(c % 60) } return str }; b.utils.useNativeFullscreen = function() { return (navigator && navigator.vendor && navigator.vendor .indexOf("Apple") == 0) }; b.utils.parentNode = function(c) { if (!c) { return document.body } else { if (c.parentNode) { return c.parentNode } else { if (c.parentElement) { return c.parentElement } else { return c } } } }; b.utils.getBoundingClientRect = function(c) { if (typeof c.getBoundingClientRect == "function") { return c.getBoundingClientRect() } else { return { left : c.offsetLeft + document.body.scrollLeft, top : c.offsetTop + document.body.scrollTop, width : c.offsetWidth, height : c.offsetHeight } } }; b.utils.translateEventResponse = function(e, c) { var g = b.utils.extend( {}, c); if (e == b.api.events.JWPLAYER_FULLSCREEN && !g.fullscreen) { g.fullscreen = g.message == "true" ? true : false; delete g.message } else { if (typeof g.data == "object") { g = b.utils.extend(g, g.data); delete g.data } else { if (typeof g.metadata == "object") { b.utils.deepReplaceKeyName(g.metadata, [ "__dot__", "__spc__", "__dsh__" ], [ ".", " ", "-" ]) } } } var d = [ "position", "duration", "offset" ]; for ( var f in d) { if (g[d[f]]) { g[d[f]] = Math.round(g[d[f]] * 1000) / 1000 } } return g }; b.utils.saveCookie = function(c, d) { document.cookie = "jwplayer." + c + "=" + d + "; path=/" }; b.utils.getCookies = function() { var f = {}; var e = document.cookie.split("; "); for ( var d = 0; d < e.length; d++) { var c = e[d].split("="); if (c[0].indexOf("jwplayer.") == 0) { f[c[0].substring(9, c[0].length)] = c[1] } } return f }; b.utils.readCookie = function(c) { return b.utils.getCookies()[c] } })(jwplayer); (function(a) { a.events = function() { }; a.events.COMPLETE = "COMPLETE"; a.events.ERROR = "ERROR" })(jwplayer); (function(jwplayer) { jwplayer.events.eventdispatcher = function(debug) { var _debug = debug; var _listeners; var _globallisteners; this.resetEventListeners = function() { _listeners = {}; _globallisteners = [] }; this.resetEventListeners(); this.addEventListener = function(type, listener, count) { try { if (!jwplayer.utils.exists(_listeners[type])) { _listeners[type] = [] } if (typeof (listener) == "string") { eval("listener = " + listener) } _listeners[type].push( { listener : listener, count : count }) } catch (err) { jwplayer.utils.log("error", err) } return false }; this.removeEventListener = function(type, listener) { if (!_listeners[type]) { return } try { for ( var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { if (_listeners[type][listenerIndex].listener.toString() == listener .toString()) { _listeners[type].splice(listenerIndex, 1); break } } } catch (err) { jwplayer.utils.log("error", err) } return false }; this.addGlobalListener = function(listener, count) { try { if (typeof (listener) == "string") { eval("listener = " + listener) } _globallisteners.push( { listener : listener, count : count }) } catch (err) { jwplayer.utils.log("error", err) } return false }; this.removeGlobalListener = function(listener) { if (!listener) { return } try { for ( var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { if (_globallisteners[globalListenerIndex].listener .toString() == listener.toString()) { _globallisteners.splice(globalListenerIndex, 1); break } } } catch (err) { jwplayer.utils.log("error", err) } return false }; this.sendEvent = function(type, data) { if (!jwplayer.utils.exists(data)) { data = {} } if (_debug) { jwplayer.utils.log(type, data) } if (typeof _listeners[type] != "undefined") { for ( var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { try { _listeners[type][listenerIndex].listener(data) } catch (err) { jwplayer.utils.log( "There was an error while handling a listener: " + err.toString(), _listeners[type][listenerIndex].listener) } if (_listeners[type][listenerIndex]) { if (_listeners[type][listenerIndex].count === 1) { delete _listeners[type][listenerIndex] } else { if (_listeners[type][listenerIndex].count > 0) { _listeners[type][listenerIndex].count = _listeners[type][listenerIndex].count - 1 } } } } } for ( var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { try { _globallisteners[globalListenerIndex].listener(data) } catch (err) { jwplayer.utils.log( "There was an error while handling a listener: " + err.toString(), _globallisteners[globalListenerIndex].listener) } if (_globallisteners[globalListenerIndex]) { if (_globallisteners[globalListenerIndex].count === 1) { delete _globallisteners[globalListenerIndex] } else { if (_globallisteners[globalListenerIndex].count > 0) { _globallisteners[globalListenerIndex].count = _globallisteners[globalListenerIndex].count - 1 } } } } } } })(jwplayer); (function(a) { var b = {}; a.utils.animations = function() { }; a.utils.animations.transform = function(c, d) { c.style.webkitTransform = d; c.style.MozTransform = d; c.style.OTransform = d; c.style.msTransform = d }; a.utils.animations.transformOrigin = function(c, d) { c.style.webkitTransformOrigin = d; c.style.MozTransformOrigin = d; c.style.OTransformOrigin = d; c.style.msTransformOrigin = d }; a.utils.animations.rotate = function(c, d) { a.utils.animations.transform(c, [ "rotate(", d, "deg)" ].join("")) }; a.utils.cancelAnimation = function(c) { delete b[c.id] }; a.utils.fadeTo = function(m, f, e, j, h, d) { if (b[m.id] != d && a.utils.exists(d)) { return } if (m.style.opacity == f) { return } var c = new Date().getTime(); if (d > c) { setTimeout(function() { a.utils.fadeTo(m, f, e, j, 0, d) }, d - c) } if (m.style.display == "none") { m.style.display = "block" } if (!a.utils.exists(j)) { j = m.style.opacity === "" ? 1 : m.style.opacity } if (m.style.opacity == f && m.style.opacity !== "" && a.utils.exists(d)) { if (f === 0) { m.style.display = "none" } return } if (!a.utils.exists(d)) { d = c; b[m.id] = d } if (!a.utils.exists(h)) { h = 0 } var k = (e > 0) ? ((c - d) / (e * 1000)) : 0; k = k > 1 ? 1 : k; var l = f - j; var g = j + (k * l); if (g > 1) { g = 1 } else { if (g < 0) { g = 0 } } m.style.opacity = g; if (h > 0) { b[m.id] = d + h * 1000; a.utils.fadeTo(m, f, e, j, 0, b[m.id]); return } setTimeout(function() { a.utils.fadeTo(m, f, e, j, 0, d) }, 10) } })(jwplayer); (function(a) { a.utils.arrays = function() { }; a.utils.arrays.indexOf = function(c, d) { for ( var b = 0; b < c.length; b++) { if (c[b] == d) { return b } } return -1 }; a.utils.arrays.remove = function(c, d) { var b = a.utils.arrays.indexOf(c, d); if (b > -1) { c.splice(b, 1) } } })(jwplayer); (function(a) { a.utils.extensionmap = { "3gp" : { html5 : "video/3gpp", flash : "video" }, "3gpp" : { html5 : "video/3gpp" }, "3g2" : { html5 : "video/3gpp2", flash : "video" }, "3gpp2" : { html5 : "video/3gpp2" }, flv : { flash : "video" }, f4a : { html5 : "audio/mp4" }, f4b : { html5 : "audio/mp4", flash : "video" }, f4v : { html5 : "video/mp4", flash : "video" }, mov : { html5 : "video/quicktime", flash : "video" }, m4a : { html5 : "audio/mp4", flash : "video" }, m4b : { html5 : "audio/mp4" }, m4p : { html5 : "audio/mp4" }, m4v : { html5 : "video/mp4", flash : "video" }, mp4 : { html5 : "video/mp4", flash : "video" }, rbs : { flash : "sound" }, aac : { html5 : "audio/aac", flash : "video" }, mp3 : { html5 : "audio/mp3", flash : "sound" }, ogg : { html5 : "audio/ogg" }, oga : { html5 : "audio/ogg" }, ogv : { html5 : "video/ogg" }, webm : { html5 : "video/webm" }, m3u8 : { html5 : "audio/x-mpegurl" }, gif : { flash : "image" }, jpeg : { flash : "image" }, jpg : { flash : "image" }, swf : { flash : "image" }, png : { flash : "image" }, wav : { html5 : "audio/x-wav" } } })(jwplayer); (function(e) { e.utils.mediaparser = function() { }; var g = { element : { width : "width", height : "height", id : "id", "class" : "className", name : "name" }, media : { src : "file", preload : "preload", autoplay : "autostart", loop : "repeat", controls : "controls" }, source : { src : "file", type : "type", media : "media", "data-jw-width" : "width", "data-jw-bitrate" : "bitrate" }, video : { poster : "image" } }; var f = {}; e.utils.mediaparser.parseMedia = function(j) { return d(j) }; function c(k, j) { if (!e.utils.exists(j)) { j = g[k] } else { e.utils.extend(j, g[k]) } return j } function d(n, j) { if (f[n.tagName.toLowerCase()] && !e.utils.exists(j)) { return f[n.tagName.toLowerCase()](n) } else { j = c("element", j); var o = {}; for ( var k in j) { if (k != "length") { var m = n.getAttribute(k); if (e.utils.exists(m)) { o[j[k]] = m } } } var l = n.style["#background-color"]; if (l && !(l == "transparent" || l == "rgba(0, 0, 0, 0)")) { o.screencolor = l } return o } } function h(n, k) { k = c("media", k); var l = []; var j = e.utils.selectors("source", n); for ( var m in j) { if (!isNaN(m)) { l.push(a(j[m])) } } var o = d(n, k); if (e.utils.exists(o.file)) { l[0] = { file : o.file } } o.levels = l; return o } function a(l, k) { k = c("source", k); var j = d(l, k); j.width = j.width ? j.width : 0; j.bitrate = j.bitrate ? j.bitrate : 0; return j } function b(l, k) { k = c("video", k); var j = h(l, k); return j } f.media = h; f.audio = h; f.source = a; f.video = b })(jwplayer); (function(a) { a.utils.loaderstatus = { NEW : "NEW", LOADING : "LOADING", ERROR : "ERROR", COMPLETE : "COMPLETE" }; a.utils.scriptloader = function(c) { var d = a.utils.loaderstatus.NEW; var b = new a.events.eventdispatcher(); a.utils.extend(this, b); this.load = function() { if (d == a.utils.loaderstatus.NEW) { d = a.utils.loaderstatus.LOADING; var e = document.createElement("script"); e.onload = function(f) { d = a.utils.loaderstatus.COMPLETE; b.sendEvent(a.events.COMPLETE) }; e.onerror = function(f) { d = a.utils.loaderstatus.ERROR; b.sendEvent(a.events.ERROR) }; e.onreadystatechange = function() { if (e.readyState == "loaded" || e.readyState == "complete") { d = a.utils.loaderstatus.COMPLETE; b.sendEvent(a.events.COMPLETE) } }; document.getElementsByTagName("head")[0].appendChild(e); e.src = c } }; this.getStatus = function() { return d } } })(jwplayer); (function(a) { a.utils.selectors = function(b, e) { if (!a.utils.exists(e)) { e = document } b = a.utils.strings.trim(b); var c = b.charAt(0); if (c == "#") { return e.getElementById(b.substr(1)) } else { if (c == ".") { if (e.getElementsByClassName) { return e.getElementsByClassName(b.substr(1)) } else { return a.utils.selectors.getElementsByTagAndClass("*", b.substr(1)) } } else { if (b.indexOf(".") > 0) { var d = b.split("."); return a.utils.selectors.getElementsByTagAndClass(d[0], d[1]) } else { return e.getElementsByTagName(b) } } } return null }; a.utils.selectors.getElementsByTagAndClass = function(e, h, g) { var j = []; if (!a.utils.exists(g)) { g = document } var f = g.getElementsByTagName(e); for ( var d = 0; d < f.length; d++) { if (a.utils.exists(f[d].className)) { var c = f[d].className.split(" "); for ( var b = 0; b < c.length; b++) { if (c[b] == h) { j.push(f[d]) } } } } return j } })(jwplayer); (function(a) { a.utils.strings = function() { }; a.utils.strings.trim = function(b) { return b.replace(/^\s*/, "").replace(/\s*$/, "") }; a.utils.strings.pad = function(c, d, b) { if (!b) { b = "0" } while (c.length < d) { c = b + c } return c }; a.utils.strings.serialize = function(b) { if (b == null) { return null } else { if (b == "true") { return true } else { if (b == "false") { return false } else { if (isNaN(Number(b)) || b.length > 5 || b.length == 0) { return b } else { return Number(b) } } } } }; a.utils.strings.seconds = function(d) { d = d.replace(",", "."); var b = d.split(":"); var c = 0; if (d.substr(-1) == "s") { c = Number(d.substr(0, d.length - 1)) } else { if (d.substr(-1) == "m") { c = Number(d.substr(0, d.length - 1)) * 60 } else { if (d.substr(-1) == "h") { c = Number(d.substr(0, d.length - 1)) * 3600 } else { if (b.length > 1) { c = Number(b[b.length - 1]); c += Number(b[b.length - 2]) * 60; if (b.length == 3) { c += Number(b[b.length - 3]) * 3600 } } else { c = Number(d) } } } } return c }; a.utils.strings.xmlAttribute = function(b, c) { for ( var d = 0; d < b.attributes.length; d++) { if (b.attributes[d].name && b.attributes[d].name.toLowerCase() == c .toLowerCase()) { return b.attributes[d].value.toString() } } return "" }; a.utils.strings.jsonToString = function(f) { var h = h || {}; if (h && h.stringify) { return h.stringify(f) } var c = typeof (f); if (c != "object" || f === null) { if (c == "string") { f = '"' + f.replace(/"/g, '\\"') + '"' } else { return String(f) } } else { var g = [], b = (f && f.constructor == Array); for ( var d in f) { var e = f[d]; switch (typeof (e)) { case "string": e = '"' + e.replace(/"/g, '\\"') + '"'; break; case "object": if (a.utils.exists(e)) { e = a.utils.strings.jsonToString(e) } break } if (b) { if (typeof (e) != "function") { g.push(String(e)) } } else { if (typeof (e) != "function") { g.push('"' + d + '":' + String(e)) } } } if (b) { return "[" + String(g) + "]" } else { return "{" + String(g) + "}" } } } })(jwplayer); (function(c) { var d = new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/); c.utils.typechecker = function(g, f) { f = !c.utils.exists(f) ? b(g) : f; return e(g, f) }; function b(f) { var g = [ "true", "false", "t", "f" ]; if (g.toString().indexOf(f.toLowerCase().replace(" ", "")) >= 0) { return "boolean" } else { if (d.test(f)) { return "color" } else { if (!isNaN(parseInt(f, 10)) && parseInt(f, 10).toString().length == f.length) { return "integer" } else { if (!isNaN(parseFloat(f)) && parseFloat(f).toString().length == f.length) { return "float" } } } } return "string" } function e(g, f) { if (!c.utils.exists(f)) { return g } switch (f) { case "color": if (g.length > 0) { return a(g) } return null; case "integer": return parseInt(g, 10); case "float": return parseFloat(g); case "boolean": if (g.toLowerCase() == "true") { return true } else { if (g == "1") { return true } } return false } return g } function a(f) { switch (f.toLowerCase()) { case "blue": return parseInt("0000FF", 16); case "green": return parseInt("00FF00", 16); case "red": return parseInt("FF0000", 16); case "cyan": return parseInt("00FFFF", 16); case "magenta": return parseInt("FF00FF", 16); case "yellow": return parseInt("FFFF00", 16); case "black": return parseInt("000000", 16); case "white": return parseInt("FFFFFF", 16); default: f = f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi, "$2"); if (f.length == 3) { f = f.charAt(0) + f.charAt(0) + f.charAt(1) + f.charAt(1) + f.charAt(2) + f.charAt(2) } return parseInt(f, 16) } return parseInt("000000", 16) } })(jwplayer); (function(a) { a.utils.parsers = function() { }; a.utils.parsers.localName = function(b) { if (!b) { return "" } else { if (b.localName) { return b.localName } else { if (b.baseName) { return b.baseName } else { return "" } } } }; a.utils.parsers.textContent = function(b) { if (!b) { return "" } else { if (b.textContent) { return b.textContent } else { if (b.text) { return b.text } else { return "" } } } } })(jwplayer); (function(a) { a.utils.parsers.jwparser = function() { }; a.utils.parsers.jwparser.PREFIX = "jwplayer"; a.utils.parsers.jwparser.parseEntry = function(c, d) { for ( var b = 0; b < c.childNodes.length; b++) { if (c.childNodes[b].prefix == a.utils.parsers.jwparser.PREFIX) { d[a.utils.parsers.localName(c.childNodes[b])] = a.utils.strings .serialize(a.utils.parsers .textContent(c.childNodes[b])); if (a.utils.parsers.localName(c.childNodes[b]) == "file" && d.levels) { delete d.levels } } if (!d.file && String(d.link).toLowerCase().indexOf("youtube") > -1) { d.file = d.link } } return d }; a.utils.parsers.jwparser.getProvider = function(c) { if (c.type) { return c.type } else { if (c.file.indexOf("youtube.com/w") > -1 || c.file.indexOf("youtube.com/v") > -1 || c.file.indexOf("youtu.be/") > -1) { return "youtube" } else { if (c.streamer && c.streamer.indexOf("rtmp") == 0) { return "rtmp" } else { if (c.streamer && c.streamer.indexOf("http") == 0) { return "http" } else { var b = a.utils.strings.extension(c.file); if (extensions.hasOwnProperty(b)) { return extensions[b] } } } } } return "" } })(jwplayer); (function(a) { a.utils.parsers.mediaparser = function() { }; a.utils.parsers.mediaparser.PREFIX = "media"; a.utils.parsers.mediaparser.parseGroup = function(d, f) { var e = false; for ( var c = 0; c < d.childNodes.length; c++) { if (d.childNodes[c].prefix == a.utils.parsers.mediaparser.PREFIX) { if (!a.utils.parsers.localName(d.childNodes[c])) { continue } switch (a.utils.parsers.localName(d.childNodes[c]) .toLowerCase()) { case "content": if (!e) { f.file = a.utils.strings.xmlAttribute( d.childNodes[c], "url") } if (a.utils.strings.xmlAttribute(d.childNodes[c], "duration")) { f.duration = a.utils.strings .seconds(a.utils.strings.xmlAttribute( d.childNodes[c], "duration")) } if (a.utils.strings.xmlAttribute(d.childNodes[c], "start")) { f.start = a.utils.strings.seconds(a.utils.strings .xmlAttribute(d.childNodes[c], "start")) } if (d.childNodes[c].childNodes && d.childNodes[c].childNodes.length > 0) { f = a.utils.parsers.mediaparser.parseGroup( d.childNodes[c], f) } if (a.utils.strings.xmlAttribute(d.childNodes[c], "width") || a.utils.strings.xmlAttribute( d.childNodes[c], "bitrate") || a.utils.strings.xmlAttribute( d.childNodes[c], "url")) { if (!f.levels) { f.levels = [] } f.levels.push( { width : a.utils.strings.xmlAttribute( d.childNodes[c], "width"), bitrate : a.utils.strings.xmlAttribute( d.childNodes[c], "bitrate"), file : a.utils.strings.xmlAttribute( d.childNodes[c], "url") }) } break; case "title": f.title = a.utils.parsers.textContent(d.childNodes[c]); break; case "description": f.description = a.utils.parsers .textContent(d.childNodes[c]); break; case "keywords": f.tags = a.utils.parsers.textContent(d.childNodes[c]); break; case "thumbnail": f.image = a.utils.strings.xmlAttribute(d.childNodes[c], "url"); break; case "credit": f.author = a.utils.parsers.textContent(d.childNodes[c]); break; case "player": var b = d.childNodes[c].url; if (b.indexOf("youtube.com") >= 0 || b.indexOf("youtu.be") >= 0) { e = true; f.file = a.utils.strings.xmlAttribute( d.childNodes[c], "url") } break; case "group": a.utils.parsers.mediaparser.parseGroup(d.childNodes[c], f); break } } } return f } })(jwplayer); (function(b) { b.utils.parsers.rssparser = function() { }; b.utils.parsers.rssparser.parse = function(f) { var c = []; for ( var e = 0; e < f.childNodes.length; e++) { if (b.utils.parsers.localName(f.childNodes[e]).toLowerCase() == "channel") { for ( var d = 0; d < f.childNodes[e].childNodes.length; d++) { if (b.utils.parsers.localName( f.childNodes[e].childNodes[d]).toLowerCase() == "item") { c.push(a(f.childNodes[e].childNodes[d])) } } } } return c }; function a(d) { var e = {}; for ( var c = 0; c < d.childNodes.length; c++) { if (!b.utils.parsers.localName(d.childNodes[c])) { continue } switch (b.utils.parsers.localName(d.childNodes[c]) .toLowerCase()) { case "enclosure": e.file = b.utils.strings.xmlAttribute(d.childNodes[c], "url"); break; case "title": e.title = b.utils.parsers.textContent(d.childNodes[c]); break; case "pubdate": e.date = b.utils.parsers.textContent(d.childNodes[c]); break; case "description": e.description = b.utils.parsers .textContent(d.childNodes[c]); break; case "link": e.link = b.utils.parsers.textContent(d.childNodes[c]); break; case "category": if (e.tags) { e.tags += b.utils.parsers.textContent(d.childNodes[c]) } else { e.tags = b.utils.parsers.textContent(d.childNodes[c]) } break } } e = b.utils.parsers.mediaparser.parseGroup(d, e); e = b.utils.parsers.jwparser.parseEntry(d, e); return new b.html5.playlistitem(e) } })(jwplayer); (function(a) { var c = {}; var b = {}; a.plugins = function() { }; a.plugins.loadPlugins = function(e, d) { b[e] = new a.plugins.pluginloader(new a.plugins.model(c), d); return b[e] }; a.plugins.registerPlugin = function(h, f, e) { var d = a.utils.getPluginName(h); if (c[d]) { c[d].registerPlugin(h, f, e) } else { a.utils .log("A plugin (" + h + ") was registered with the player that was not loaded. Please check your configuration."); for ( var g in b) { b[g].pluginFailed() } } } })(jwplayer); (function(a) { a.plugins.model = function(b) { this.addPlugin = function(c) { var d = a.utils.getPluginName(c); if (!b[d]) { b[d] = new a.plugins.plugin(c) } return b[d] } } })(jwplayer); (function(a) { a.plugins.pluginmodes = { FLASH : "FLASH", JAVASCRIPT : "JAVASCRIPT", HYBRID : "HYBRID" }; a.plugins.plugin = function(b) { var d = "http://plugins.longtailvideo.com"; var j = a.utils.loaderstatus.NEW; var k; var h; var l; var c = new a.events.eventdispatcher(); a.utils.extend(this, c); function e() { switch (a.utils.getPluginPathType(b)) { case a.utils.pluginPathType.ABSOLUTE: return b; case a.utils.pluginPathType.RELATIVE: return a.utils.getAbsolutePath(b, window.location.href); case a.utils.pluginPathType.CDN: var o = a.utils.getPluginName(b); var n = a.utils.getPluginVersion(b); var m = (window.location.href.indexOf("https://") == 0) ? d .replace("http://", "https://secure") : d; return m + "/" + a.version.split(".")[0] + "/" + o + "/" + o + (n !== "" ? ("-" + n) : "") + ".js" } } function g(m) { l = setTimeout(function() { j = a.utils.loaderstatus.COMPLETE; c.sendEvent(a.events.COMPLETE) }, 1000) } function f(m) { j = a.utils.loaderstatus.ERROR; c.sendEvent(a.events.ERROR) } this.load = function() { if (j == a.utils.loaderstatus.NEW) { if (b.lastIndexOf(".swf") > 0) { k = b; j = a.utils.loaderstatus.COMPLETE; c.sendEvent(a.events.COMPLETE); return } j = a.utils.loaderstatus.LOADING; var m = new a.utils.scriptloader(e()); m.addEventListener(a.events.COMPLETE, g); m.addEventListener(a.events.ERROR, f); m.load() } }; this.registerPlugin = function(o, n, m) { if (l) { clearTimeout(l); l = undefined } if (n && m) { k = m; h = n } else { if (typeof n == "string") { k = n } else { if (typeof n == "function") { h = n } else { if (!n && !m) { k = o } } } } j = a.utils.loaderstatus.COMPLETE; c.sendEvent(a.events.COMPLETE) }; this.getStatus = function() { return j }; this.getPluginName = function() { return a.utils.getPluginName(b) }; this.getFlashPath = function() { if (k) { switch (a.utils.getPluginPathType(k)) { case a.utils.pluginPathType.ABSOLUTE: return k; case a.utils.pluginPathType.RELATIVE: if (b.lastIndexOf(".swf") > 0) { return a.utils.getAbsolutePath(k, window.location.href) } return a.utils.getAbsolutePath(k, e()); case a.utils.pluginPathType.CDN: if (k.indexOf("-") > -1) { return k + "h" } return k + "-h" } } return null }; this.getJS = function() { return h }; this.getPluginmode = function() { if (typeof k != "undefined" && typeof h != "undefined") { return a.plugins.pluginmodes.HYBRID } else { if (typeof k != "undefined") { return a.plugins.pluginmodes.FLASH } else { if (typeof h != "undefined") { return a.plugins.pluginmodes.JAVASCRIPT } } } }; this.getNewInstance = function(n, m, o) { return new h(n, m, o) }; this.getURL = function() { return b } } })(jwplayer); (function(a) { a.plugins.pluginloader = function(h, e) { var g = {}; var k = a.utils.loaderstatus.NEW; var d = false; var b = false; var c = new a.events.eventdispatcher(); a.utils.extend(this, c); function f() { if (!b) { b = true; k = a.utils.loaderstatus.COMPLETE; c.sendEvent(a.events.COMPLETE) } } function j() { if (!b) { var m = 0; for (plugin in g) { var l = g[plugin].getStatus(); if (l == a.utils.loaderstatus.LOADING || l == a.utils.loaderstatus.NEW) { m++ } } if (m == 0) { f() } } } this.setupPlugins = function(n, l, s) { var m = { length : 0, plugins : {} }; var p = { length : 0, plugins : {} }; for ( var o in g) { var q = g[o].getPluginName(); if (g[o].getFlashPath()) { m.plugins[g[o].getFlashPath()] = l.plugins[o]; m.plugins[g[o].getFlashPath()].pluginmode = g[o] .getPluginmode(); m.length++ } if (g[o].getJS()) { var r = document.createElement("div"); r.id = n.id + "_" + q; r.style.position = "absolute"; r.style.zIndex = p.length + 10; p.plugins[q] = g[o].getNewInstance(n, l.plugins[o], r); p.length++; if (typeof p.plugins[q].resize != "undefined") { n.onReady(s(p.plugins[q], r, true)); n.onResize(s(p.plugins[q], r)) } } } n.plugins = p.plugins; return m }; this.load = function() { k = a.utils.loaderstatus.LOADING; d = true; for ( var l in e) { if (a.utils.exists(l)) { g[l] = h.addPlugin(l); g[l].addEventListener(a.events.COMPLETE, j); g[l].addEventListener(a.events.ERROR, j) } } for (l in g) { g[l].load() } d = false; j() }; this.pluginFailed = function() { f() }; this.getStatus = function() { return k } } })(jwplayer); (function(b) { var a = []; b.api = function(d) { this.container = d; this.id = d.id; var m = {}; var t = {}; var p = {}; var c = []; var g = undefined; var k = false; var h = []; var r = undefined; var o = b.utils.getOuterHTML(d); var s = {}; var j = {}; this.getBuffer = function() { return this.callInternal("jwGetBuffer") }; this.getContainer = function() { return this.container }; function e(v, u) { return function(A, w, x, y) { if (v.renderingMode == "flash" || v.renderingMode == "html5") { var z; if (w) { j[A] = w; z = "jwplayer('" + v.id + "').callback('" + A + "')" } else { if (!w && j[A]) { delete j[A] } } g.jwDockSetButton(A, z, x, y) } return u } } this.getPlugin = function(u) { var w = this; var v = {}; if (u == "dock") { return b.utils.extend(v, { setButton : e(w, v), show : function() { w.callInternal("jwDockShow"); return v }, hide : function() { w.callInternal("jwDockHide"); return v }, onShow : function(x) { w.componentListener("dock", b.api.events.JWPLAYER_COMPONENT_SHOW, x); return v }, onHide : function(x) { w.componentListener("dock", b.api.events.JWPLAYER_COMPONENT_HIDE, x); return v } }) } else { if (u == "controlbar") { return b.utils .extend( v, { show : function() { w .callInternal("jwControlbarShow"); return v }, hide : function() { w .callInternal("jwControlbarHide"); return v }, onShow : function(x) { w .componentListener( "controlbar", b.api.events.JWPLAYER_COMPONENT_SHOW, x); return v }, onHide : function(x) { w .componentListener( "controlbar", b.api.events.JWPLAYER_COMPONENT_HIDE, x); return v } }) } else { if (u == "display") { return b.utils .extend( v, { show : function() { w .callInternal("jwDisplayShow"); return v }, hide : function() { w .callInternal("jwDisplayHide"); return v }, onShow : function(x) { w .componentListener( "display", b.api.events.JWPLAYER_COMPONENT_SHOW, x); return v }, onHide : function(x) { w .componentListener( "display", b.api.events.JWPLAYER_COMPONENT_HIDE, x); return v } }) } else { return this.plugins[u] } } } }; this.callback = function(u) { if (j[u]) { return j[u]() } }; this.getDuration = function() { return this.callInternal("jwGetDuration") }; this.getFullscreen = function() { return this.callInternal("jwGetFullscreen") }; this.getHeight = function() { return this.callInternal("jwGetHeight") }; this.getLockState = function() { return this.callInternal("jwGetLockState") }; this.getMeta = function() { return this.getItemMeta() }; this.getMute = function() { return this.callInternal("jwGetMute") }; this.getPlaylist = function() { var v = this.callInternal("jwGetPlaylist"); if (this.renderingMode == "flash") { b.utils.deepReplaceKeyName(v, [ "__dot__", "__spc__", "__dsh__" ], [ ".", " ", "-" ]) } for ( var u = 0; u < v.length; u++) { if (!b.utils.exists(v[u].index)) { v[u].index = u } } return v }; this.getPlaylistItem = function(u) { if (!b.utils.exists(u)) { u = this.getCurrentItem() } return this.getPlaylist()[u] }; this.getPosition = function() { return this.callInternal("jwGetPosition") }; this.getRenderingMode = function() { return this.renderingMode }; this.getState = function() { return this.callInternal("jwGetState") }; this.getVolume = function() { return this.callInternal("jwGetVolume") }; this.getWidth = function() { return this.callInternal("jwGetWidth") }; this.setFullscreen = function(u) { if (!b.utils.exists(u)) { this.callInternal("jwSetFullscreen", !this .callInternal("jwGetFullscreen")) } else { this.callInternal("jwSetFullscreen", u) } return this }; this.setMute = function(u) { if (!b.utils.exists(u)) { this.callInternal("jwSetMute", !this .callInternal("jwGetMute")) } else { this.callInternal("jwSetMute", u) } return this }; this.lock = function() { return this }; this.unlock = function() { return this }; this.load = function(u) { this.callInternal("jwLoad", u); return this }; this.playlistItem = function(u) { this.callInternal("jwPlaylistItem", u); return this }; this.playlistPrev = function() { this.callInternal("jwPlaylistPrev"); return this }; this.playlistNext = function() { this.callInternal("jwPlaylistNext"); return this }; this.resize = function(v, u) { if (this.renderingMode == "html5") { g.jwResize(v, u) } else { this.container.width = v; this.container.height = u; var w = document.getElementById(this.id + "_wrapper"); if (w) { w.style.width = v + "px"; w.style.height = u + "px" } } return this }; this.play = function(u) { if (typeof u == "undefined") { u = this.getState(); if (u == b.api.events.state.PLAYING || u == b.api.events.state.BUFFERING) { this.callInternal("jwPause") } else { this.callInternal("jwPlay") } } else { this.callInternal("jwPlay", u) } return this }; this.pause = function(u) { if (typeof u == "undefined") { u = this.getState(); if (u == b.api.events.state.PLAYING || u == b.api.events.state.BUFFERING) { this.callInternal("jwPause") } else { this.callInternal("jwPlay") } } else { this.callInternal("jwPause", u) } return this }; this.stop = function() { this.callInternal("jwStop"); return this }; this.seek = function(u) { this.callInternal("jwSeek", u); return this }; this.setVolume = function(u) { this.callInternal("jwSetVolume", u); return this }; this.loadInstream = function(v, u) { r = new b.api.instream(this, g, v, u); return r }; this.onBufferChange = function(u) { return this .eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER, u) }; this.onBufferFull = function(u) { return this.eventListener( b.api.events.JWPLAYER_MEDIA_BUFFER_FULL, u) }; this.onError = function(u) { return this.eventListener(b.api.events.JWPLAYER_ERROR, u) }; this.onFullscreen = function(u) { return this.eventListener(b.api.events.JWPLAYER_FULLSCREEN, u) }; this.onMeta = function(u) { return this.eventListener(b.api.events.JWPLAYER_MEDIA_META, u) }; this.onMute = function(u) { return this.eventListener(b.api.events.JWPLAYER_MEDIA_MUTE, u) }; this.onPlaylist = function(u) { return this.eventListener( b.api.events.JWPLAYER_PLAYLIST_LOADED, u) }; this.onPlaylistItem = function(u) { return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM, u) }; this.onReady = function(u) { return this.eventListener(b.api.events.API_READY, u) }; this.onResize = function(u) { return this.eventListener(b.api.events.JWPLAYER_RESIZE, u) }; this.onComplete = function(u) { return this.eventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE, u) }; this.onSeek = function(u) { return this.eventListener(b.api.events.JWPLAYER_MEDIA_SEEK, u) }; this.onTime = function(u) { return this.eventListener(b.api.events.JWPLAYER_MEDIA_TIME, u) }; this.onVolume = function(u) { return this .eventListener(b.api.events.JWPLAYER_MEDIA_VOLUME, u) }; this.onBeforePlay = function(u) { return this.eventListener( b.api.events.JWPLAYER_MEDIA_BEFOREPLAY, u) }; this.onBeforeComplete = function(u) { return this.eventListener( b.api.events.JWPLAYER_MEDIA_BEFORECOMPLETE, u) }; this.onBuffer = function(u) { return this.stateListener(b.api.events.state.BUFFERING, u) }; this.onPause = function(u) { return this.stateListener(b.api.events.state.PAUSED, u) }; this.onPlay = function(u) { return this.stateListener(b.api.events.state.PLAYING, u) }; this.onIdle = function(u) { return this.stateListener(b.api.events.state.IDLE, u) }; this.remove = function() { if (!k) { throw "Cannot call remove() before player is ready"; return } q(this) }; function q(u) { h = []; if (b.utils.getOuterHTML(u.container) != o) { b.api.destroyPlayer(u.id, o) } } this.setup = function(v) { if (b.embed) { var u = this.id; q(this); var w = b(u); w.config = v; return new b.embed(w) } return this }; this.registerPlugin = function(w, v, u) { b.plugins.registerPlugin(w, v, u) }; this.setPlayer = function(u, v) { g = u; this.renderingMode = v }; this.stateListener = function(u, v) { if (!t[u]) { t[u] = []; this .eventListener(b.api.events.JWPLAYER_PLAYER_STATE, f(u)) } t[u].push(v); return this }; this.detachMedia = function() { if (this.renderingMode == "html5") { return this.callInternal("jwDetachMedia") } }; this.attachMedia = function() { if (this.renderingMode == "html5") { return this.callInternal("jwAttachMedia") } }; function f(u) { return function(w) { var v = w.newstate, y = w.oldstate; if (v == u) { var x = t[v]; if (x) { for ( var z = 0; z < x.length; z++) { if (typeof x[z] == "function") { x[z].call(this, { oldstate : y, newstate : v }) } } } } } } this.componentListener = function(u, v, w) { if (!p[u]) { p[u] = {} } if (!p[u][v]) { p[u][v] = []; this.eventListener(v, l(u, v)) } p[u][v].push(w); return this }; function l(u, v) { return function(x) { if (u == x.component) { var w = p[u][v]; if (w) { for ( var y = 0; y < w.length; y++) { if (typeof w[y] == "function") { w[y].call(this, x) } } } } } } this.addInternalListener = function(u, v) { try { u .jwAddEventListener(v, 'function(dat) { jwplayer("' + this.id + '").dispatchEvent("' + v + '", dat); }') } catch (w) { b.utils.log("Could not add internal listener") } }; this.eventListener = function(u, v) { if (!m[u]) { m[u] = []; if (g && k) { this.addInternalListener(g, u) } } m[u].push(v); return this }; this.dispatchEvent = function(w) { if (m[w]) { var v = _utils.translateEventResponse(w, arguments[1]); for ( var u = 0; u < m[w].length; u++) { if (typeof m[w][u] == "function") { m[w][u].call(this, v) } } } }; this.dispatchInstreamEvent = function(u) { if (r) { r.dispatchEvent(u, arguments) } }; this.callInternal = function() { if (k) { var w = arguments[0], u = []; for ( var v = 1; v < arguments.length; v++) { u.push(arguments[v]) } if (typeof g != "undefined" && typeof g[w] == "function") { if (u.length == 2) { return (g[w])(u[0], u[1]) } else { if (u.length == 1) { return (g[w])(u[0]) } else { return (g[w])() } } } return null } else { h.push(arguments) } }; this.playerReady = function(v) { k = true; if (!g) { this.setPlayer(document.getElementById(v.id)) } this.container = document.getElementById(this.id); for ( var u in m) { this.addInternalListener(g, u) } this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM, function(w) { s = {} }); this.eventListener(b.api.events.JWPLAYER_MEDIA_META, function(w) { b.utils.extend(s, w.metadata) }); this.dispatchEvent(b.api.events.API_READY); while (h.length > 0) { this.callInternal.apply(this, h.shift()) } }; this.getItemMeta = function() { return s }; this.getCurrentItem = function() { return this.callInternal("jwGetPlaylistIndex") }; function n(w, y, x) { var u = []; if (!y) { y = 0 } if (!x) { x = w.length - 1 } for ( var v = y; v <= x; v++) { u.push(w[v]) } return u } return this }; b.api.selectPlayer = function(d) { var c; if (!b.utils.exists(d)) { d = 0 } if (d.nodeType) { c = d } else { if (typeof d == "string") { c = document.getElementById(d) } } if (c) { var e = b.api.playerById(c.id); if (e) { return e } else { return b.api.addPlayer(new b.api(c)) } } else { if (typeof d == "number") { return b.getPlayers()[d] } } return null }; b.api.events = { API_READY : "jwplayerAPIReady", JWPLAYER_READY : "jwplayerReady", JWPLAYER_FULLSCREEN : "jwplayerFullscreen", JWPLAYER_RESIZE : "jwplayerResize", JWPLAYER_ERROR : "jwplayerError", 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_PLAYER_STATE : "jwplayerPlayerState", JWPLAYER_PLAYLIST_LOADED : "jwplayerPlaylistLoaded", JWPLAYER_PLAYLIST_ITEM : "jwplayerPlaylistItem", JWPLAYER_INSTREAM_CLICK : "jwplayerInstreamClicked", JWPLAYER_INSTREAM_DESTROYED : "jwplayerInstreamDestroyed" }; b.api.events.state = { BUFFERING : "BUFFERING", IDLE : "IDLE", PAUSED : "PAUSED", PLAYING : "PLAYING" }; b.api.playerById = function(d) { for ( var c = 0; c < a.length; c++) { if (a[c].id == d) { return a[c] } } return null }; b.api.addPlayer = function(c) { for ( var d = 0; d < a.length; d++) { if (a[d] == c) { return c } } a.push(c); return c }; b.api.destroyPlayer = function(h, d) { var g = -1; for ( var l = 0; l < a.length; l++) { if (a[l].id == h) { g = l; continue } } if (g >= 0) { try { a[g].callInternal("jwDestroy") } catch (k) { } var c = document.getElementById(a[g].id); if (document.getElementById(a[g].id + "_wrapper")) { c = document.getElementById(a[g].id + "_wrapper") } if (c) { if (d) { b.utils.setOuterHTML(c, d) } else { var j = document.createElement("div"); var f = c.id; if (c.id.indexOf("_wrapper") == c.id.length - 8) { newID = c.id.substring(0, c.id.length - 8) } j.setAttribute("id", f); c.parentNode.replaceChild(j, c) } } a.splice(g, 1) } return null }; b.getPlayers = function() { return a.slice(0) } })(jwplayer); var _userPlayerReady = (typeof playerReady == "function") ? playerReady : undefined; playerReady = function(b) { var a = jwplayer.api.playerById(b.id); if (a) { a.playerReady(b) } else { jwplayer.api.selectPlayer(b.id).playerReady(b) } if (_userPlayerReady) { _userPlayerReady.call(this, b) } }; (function(a) { a.api.instream = function(c, j, n, q) { var h = c; var b = j; var g = n; var k = q; var e = {}; var p = {}; function f() { h.callInternal("jwLoadInstream", n, q) } function m(r, s) { b.jwInstreamAddEventListener(s, 'function(dat) { jwplayer("' + h.id + '").dispatchInstreamEvent("' + s + '", dat); }') } function d(r, s) { if (!e[r]) { e[r] = []; m(b, r) } e[r].push(s); return this } function o(r, s) { if (!p[r]) { p[r] = []; d(a.api.events.JWPLAYER_PLAYER_STATE, l(r)) } p[r].push(s); return this } function l(r) { return function(t) { var s = t.newstate, v = t.oldstate; if (s == r) { var u = p[s]; if (u) { for ( var w = 0; w < u.length; w++) { if (typeof u[w] == "function") { u[w].call(this, { oldstate : v, newstate : s, type : t.type }) } } } } } } this.dispatchEvent = function(u, t) { if (e[u]) { var s = _utils.translateEventResponse(u, t[1]); for ( var r = 0; r < e[u].length; r++) { if (typeof e[u][r] == "function") { e[u][r].call(this, s) } } } }; this.onError = function(r) { return d(a.api.events.JWPLAYER_ERROR, r) }; this.onFullscreen = function(r) { return d(a.api.events.JWPLAYER_FULLSCREEN, r) }; this.onMeta = function(r) { return d(a.api.events.JWPLAYER_MEDIA_META, r) }; this.onMute = function(r) { return d(a.api.events.JWPLAYER_MEDIA_MUTE, r) }; this.onComplete = function(r) { return d(a.api.events.JWPLAYER_MEDIA_COMPLETE, r) }; this.onSeek = function(r) { return d(a.api.events.JWPLAYER_MEDIA_SEEK, r) }; this.onTime = function(r) { return d(a.api.events.JWPLAYER_MEDIA_TIME, r) }; this.onVolume = function(r) { return d(a.api.events.JWPLAYER_MEDIA_VOLUME, r) }; this.onBuffer = function(r) { return o(a.api.events.state.BUFFERING, r) }; this.onPause = function(r) { return o(a.api.events.state.PAUSED, r) }; this.onPlay = function(r) { return o(a.api.events.state.PLAYING, r) }; this.onIdle = function(r) { return o(a.api.events.state.IDLE, r) }; this.onInstreamClick = function(r) { return d(a.api.events.JWPLAYER_INSTREAM_CLICK, r) }; this.onInstreamDestroyed = function(r) { return d(a.api.events.JWPLAYER_INSTREAM_DESTROYED, r) }; this.play = function(r) { b.jwInstreamPlay(r) }; this.pause = function(r) { b.jwInstreamPause(r) }; this.seek = function(r) { b.jwInstreamSeek(r) }; this.destroy = function() { b.jwInstreamDestroy() }; this.getState = function() { return b.jwInstreamGetState() }; this.getDuration = function() { return b.jwInstreamGetDuration() }; this.getPosition = function() { return b.jwInstreamGetPosition() }; f() } })(jwplayer); (function(a) { var c = a.utils; a.embed = function(h) { var k = { width : 400, height : 300, components : { controlbar : { position : "over" } } }; var g = c.mediaparser.parseMedia(h.container); var f = new a.embed.config(c.extend(k, g, h.config), this); if (!f.plugins) { f.plugins = {} } f.plugins["http://content.longtailvideo.com/js/ping.js"] = { token : "playerdc" }; var j = a.plugins.loadPlugins(h.id, f.plugins); function d(n, m) { for ( var l in m) { if (typeof n[l] == "function") { (n[l]).call(n, m[l]) } } } function e() { if (j.getStatus() == c.loaderstatus.COMPLETE) { for ( var n = 0; n < f.modes.length; n++) { if (f.modes[n].type && a.embed[f.modes[n].type]) { var p = f.modes[n].config; var t = f; if (p) { t = c.extend(c.clone(f), p); var s = [ "file", "levels", "playlist" ]; for ( var m = 0; m < s.length; m++) { var q = s[m]; if (c.exists(p[q])) { for ( var l = 0; l < s.length; l++) { if (l != m) { var o = s[l]; if (c.exists(t[o]) && !c.exists(p[o])) { delete t[o] } } } } } } var r = new a.embed[f.modes[n].type](document .getElementById(h.id), f.modes[n], t, j, h); if (r.supportsConfig()) { r.embed(); d(h, f.events); return h } } } c.log("No suitable players found"); new a.embed.logo(c.extend( { hide : true }, f.components.logo), "none", h.id) } } j.addEventListener(a.events.COMPLETE, e); j.addEventListener(a.events.ERROR, e); j.load(); return h }; function b() { if (!document.body) { return setTimeout(b, 15) } var d = c.selectors.getElementsByTagAndClass("video", "jwplayer"); for ( var e = 0; e < d.length; e++) { var f = d[e]; if (f.id == "") { f.id = "jwplayer_" + Math.round(Math.random() * 100000) } a(f.id).setup( {}) } } b() })(jwplayer); (function(e) { var k = e.utils; function h(m) { var l = [ { type : "flash", src : m ? m : "/jwplayer/player.swf" }, { type : "html5" }, { type : "download" } ]; if (k.isAndroid()) { l[0] = l.splice(1, 1, l[0])[0] } return l } var a = { players : "modes", autoplay : "autostart" }; function b(o) { var n = o.toLowerCase(); var m = [ "left", "right", "top", "bottom" ]; for ( var l = 0; l < m.length; l++) { if (n == m[l]) { return true } } return false } function c(m) { var l = false; l = (m instanceof Array) || (typeof m == "object" && !m.position && !m.size); return l } function j(l) { if (typeof l == "string") { if (parseInt(l).toString() == l || l.toLowerCase().indexOf("px") > -1) { return parseInt(l) } } return l } var g = [ "playlist", "dock", "controlbar", "logo", "display" ]; function f(l) { var o = {}; switch (k.typeOf(l.plugins)) { case "object": for ( var n in l.plugins) { o[k.getPluginName(n)] = n } break; case "string": var p = l.plugins.split(","); for ( var m = 0; m < p.length; m++) { o[k.getPluginName(p[m])] = p[m] } break } return o } function d(p, o, n, l) { if (k.typeOf(p[o]) != "object") { p[o] = {} } var m = p[o][n]; if (k.typeOf(m) != "object") { p[o][n] = m = {} } if (l) { if (o == "plugins") { var q = k.getPluginName(n); m[l] = p[q + "." + l]; delete p[q + "." + l] } else { m[l] = p[n + "." + l]; delete p[n + "." + l] } } } e.embed.deserialize = function(m) { var n = f(m); for ( var l in n) { d(m, "plugins", n[l]) } for ( var q in m) { if (q.indexOf(".") > -1) { var p = q.split("."); var o = p[0]; var q = p[1]; if (k.isInArray(g, o)) { d(m, "components", o, q) } else { if (n[o]) { d(m, "plugins", n[o], q) } } } } return m }; e.embed.config = function(l, v) { var u = k.extend( {}, l); var s; if (c(u.playlist)) { s = u.playlist; delete u.playlist } u = e.embed.deserialize(u); u.height = j(u.height); u.width = j(u.width); if (typeof u.plugins == "string") { var m = u.plugins.split(","); if (typeof u.plugins != "object") { u.plugins = {} } for ( var q = 0; q < m.length; q++) { var r = k.getPluginName(m[q]); if (typeof u[r] == "object") { u.plugins[m[q]] = u[r]; delete u[r] } else { u.plugins[m[q]] = {} } } } for ( var t = 0; t < g.length; t++) { var p = g[t]; if (k.exists(u[p])) { if (typeof u[p] != "object") { if (!u.components[p]) { u.components[p] = {} } if (p == "logo") { u.components[p].file = u[p] } else { u.components[p].position = u[p] } delete u[p] } else { if (!u.components[p]) { u.components[p] = {} } k.extend(u.components[p], u[p]); delete u[p] } } if (typeof u[p + "size"] != "undefined") { if (!u.components[p]) { u.components[p] = {} } u.components[p].size = u[p + "size"]; delete u[p + "size"] } } if (typeof u.icons != "undefined") { if (!u.components.display) { u.components.display = {} } u.components.display.icons = u.icons; delete u.icons } for ( var o in a) { if (u[o]) { if (!u[a[o]]) { u[a[o]] = u[o] } delete u[o] } } var n; if (u.flashplayer && !u.modes) { n = h(u.flashplayer); delete u.flashplayer } else { if (u.modes) { if (typeof u.modes == "string") { n = h(u.modes) } else { if (u.modes instanceof Array) { n = u.modes } else { if (typeof u.modes == "object" && u.modes.type) { n = [ u.modes ] } } } delete u.modes } else { n = h() } } u.modes = n; if (s) { u.playlist = s } return u } })(jwplayer); (function(a) { a.embed.download = function(c, g, b, d, f) { this.embed = function() { var k = a.utils.extend( {}, b); var q = {}; var j = b.width ? b.width : 480; if (typeof j != "number") { j = parseInt(j, 10) } var m = b.height ? b.height : 320; if (typeof m != "number") { m = parseInt(m, 10) } var u, o, n; var s = {}; if (b.playlist && b.playlist.length) { s.file = b.playlist[0].file; o = b.playlist[0].image; s.levels = b.playlist[0].levels } else { s.file = b.file; o = b.image; s.levels = b.levels } if (s.file) { u = s.file } else { if (s.levels && s.levels.length) { u = s.levels[0].file } } n = u ? "pointer" : "auto"; var l = { display : { style : { cursor : n, width : j, height : m, backgroundColor : "#000", position : "relative", textDecoration : "none", border : "none", display : "block" } }, display_icon : { style : { cursor : n, position : "absolute", display : u ? "block" : "none", top : 0, left : 0, border : 0, margin : 0, padding : 0, zIndex : 3, width : 50, height : 50, backgroundImage : "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg==)" } }, display_iconBackground : { style : { cursor : n, position : "absolute", display : u ? "block" : "none", top : ((m - 50) / 2), left : ((j - 50) / 2), border : 0, width : 50, height : 50, margin : 0, padding : 0, zIndex : 2, backgroundImage : "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC)" } }, display_image : { style : { width : j, height : m, display : o ? "block" : "none", position : "absolute", cursor : n, left : 0, top : 0, margin : 0, padding : 0, textDecoration : "none", zIndex : 1, border : "none" } } }; var h = function(v, x, y) { var w = document.createElement(v); if (y) { w.id = y } else { w.id = c.id + "_jwplayer_" + x } a.utils.css(w, l[x].style); return w }; q.display = h("a", "display", c.id); if (u) { q.display.setAttribute("href", a.utils.getAbsolutePath(u)) } q.display_image = h("img", "display_image"); q.display_image.setAttribute("alt", "Click to download..."); if (o) { q.display_image.setAttribute("src", a.utils .getAbsolutePath(o)) } if (true) { q.display_icon = h("div", "display_icon"); q.display_iconBackground = h("div", "display_iconBackground"); q.display.appendChild(q.display_image); q.display_iconBackground.appendChild(q.display_icon); q.display.appendChild(q.display_iconBackground) } _css = a.utils.css; _hide = function(v) { _css(v, { display : "none" }) }; function r(v) { _imageWidth = q.display_image.naturalWidth; _imageHeight = q.display_image.naturalHeight; t() } function t() { a.utils.stretch(a.utils.stretching.UNIFORM, q.display_image, j, m, _imageWidth, _imageHeight) } q.display_image.onerror = function(v) { _hide(q.display_image) }; q.display_image.onload = r; c.parentNode.replaceChild(q.display, c); var p = (b.plugins && b.plugins.logo) ? b.plugins.logo : {}; q.display.appendChild(new a.embed.logo(b.components.logo, "download", c.id)); f.container = document.getElementById(f.id); f.setPlayer(q.display, "download") }; this.supportsConfig = function() { if (b) { var j = a.utils.getFirstPlaylistItemFromConfig(b); if (typeof j.file == "undefined" && typeof j.levels == "undefined") { return true } else { if (j.file) { return e(j.file, j.provider, j.playlistfile) } else { if (j.levels && j.levels.length) { for ( var h = 0; h < j.levels.length; h++) { if (j.levels[h].file && e(j.levels[h].file, j.provider, j.playlistfile)) { return true } } } } } } else { return true } }; function e(j, l, h) { if (h) { return false } var k = [ "image", "sound", "youtube", "http" ]; if (l && (k.toString().indexOf(l) > -1)) { return true } if (!l || (l && l == "video")) { var m = a.utils.extension(j); if (m && a.utils.extensionmap[m]) { return true } } return false } } })(jwplayer); (function(a) { a.embed.flash = function(f, g, l, e, j) { function m(o, n, p) { var q = document.createElement("param"); q.setAttribute("name", n); q.setAttribute("value", p); o.appendChild(q) } function k(o, p, n) { return function(q) { if (n) { document.getElementById(j.id + "_wrapper").appendChild( p) } var s = document.getElementById(j.id).getPluginConfig( "display"); o.resize(s.width, s.height); var r = { left : s.x, top : s.y }; a.utils.css(p, r) } } function d(p) { if (!p) { return {} } var r = {}; for ( var o in p) { var n = p[o]; for ( var q in n) { r[o + "." + q] = n[q] } } return r } function h(q, p) { if (q[p]) { var s = q[p]; for ( var o in s) { var n = s[o]; if (typeof n == "string") { if (!q[o]) { q[o] = n } } else { for ( var r in n) { if (!q[o + "." + r]) { q[o + "." + r] = n[r] } } } } delete q[p] } } function b(q) { if (!q) { return {} } var t = {}, s = []; for ( var n in q) { var p = a.utils.getPluginName(n); var o = q[n]; s.push(n); for ( var r in o) { t[p + "." + r] = o[r] } } t.plugins = s.join(","); return t } function c(p) { var n = p.netstreambasepath ? "" : "netstreambasepath=" + encodeURIComponent(window.location.href .split("#")[0]) + "&"; for ( var o in p) { if (typeof (p[o]) == "object") { n += o + "=" + encodeURIComponent("[[JSON]]" + a.utils.strings.jsonToString(p[o])) + "&" } else { n += o + "=" + encodeURIComponent(p[o]) + "&" } } return n.substring(0, n.length - 1) } this.embed = function() { l.id = j.id; var A; var r = a.utils.extend( {}, l); var o = r.width; var y = r.height; if (f.id + "_wrapper" == f.parentNode.id) { A = document.getElementById(f.id + "_wrapper") } else { A = document.createElement("div"); A.id = f.id + "_wrapper"; a.utils.wrap(f, A); a.utils.css(A, { position : "relative", width : o, height : y }) } var p = e.setupPlugins(j, r, k); if (p.length > 0) { a.utils.extend(r, b(p.plugins)) } else { delete r.plugins } var s = [ "height", "width", "modes", "events" ]; for ( var v = 0; v < s.length; v++) { delete r[s[v]] } var q = "opaque"; if (r.wmode) { q = r.wmode } h(r, "components"); h(r, "providers"); if (typeof r["dock.position"] != "undefined") { if (r["dock.position"].toString().toLowerCase() == "false") { r.dock = r["dock.position"]; delete r["dock.position"] } } var x = a.utils.getCookies(); for ( var n in x) { if (typeof (r[n]) == "undefined") { r[n] = x[n] } } var z = "#000000"; var u; if (a.utils.isIE()) { var w = ''; w += ''; w += ''; w += ''; w += ''; w += ''; w += ''; w += ""; a.utils.setOuterHTML(f, w); u = document.getElementById(f.id) } else { var t = document.createElement("object"); t.setAttribute("type", "application/x-shockwave-flash"); t.setAttribute("data", g.src); t.setAttribute("width", "100%"); t.setAttribute("height", "100%"); t.setAttribute("bgcolor", "#000000"); t.setAttribute("id", f.id); t.setAttribute("name", f.id); t.setAttribute("tabindex", 0); m(t, "allowfullscreen", "true"); m(t, "allowscriptaccess", "always"); m(t, "seamlesstabbing", "true"); m(t, "wmode", q); m(t, "flashvars", c(r)); f.parentNode.replaceChild(t, f); u = t } j.container = u; j.setPlayer(u, "flash") }; this.supportsConfig = function() { if (a.utils.hasFlash()) { if (l) { var o = a.utils.getFirstPlaylistItemFromConfig(l); if (typeof o.file == "undefined" && typeof o.levels == "undefined") { return true } else { if (o.file) { return flashCanPlay(o.file, o.provider) } else { if (o.levels && o.levels.length) { for ( var n = 0; n < o.levels.length; n++) { if (o.levels[n].file && flashCanPlay( o.levels[n].file, o.provider)) { return true } } } } } } else { return true } } return false }; flashCanPlay = function(n, p) { var o = [ "video", "http", "sound", "image" ]; if (p && (o.toString().indexOf(p) < 0)) { return true } var q = a.utils.extension(n); if (!q) { return true } if (a.utils.exists(a.utils.extensionmap[q]) && !a.utils.exists(a.utils.extensionmap[q].flash)) { return false } return true } } })(jwplayer); (function(a) { a.embed.html5 = function(c, g, b, d, f) { function e(j, k, h) { return function(l) { var m = document.getElementById(c.id + "_displayarea"); if (h) { m.appendChild(k) } j.resize(m.clientWidth, m.clientHeight); k.left = m.style.left; k.top = m.style.top } } this.embed = function() { if (a.html5) { d.setupPlugins(f, b, e); c.innerHTML = ""; var j = a.utils.extend( { screencolor : "0x000000" }, b); var h = [ "plugins", "modes", "events" ]; for ( var k = 0; k < h.length; k++) { delete j[h[k]] } if (j.levels && !j.sources) { j.sources = b.levels } if (j.skin && j.skin.toLowerCase().indexOf(".zip") > 0) { j.skin = j.skin.replace(/\.zip/i, ".xml") } var l = new (a.html5(c)).setup(j); f.container = document.getElementById(f.id); f.setPlayer(l, "html5") } else { return null } }; this.supportsConfig = function() { if (!!a.vid.canPlayType) { if (b) { var j = a.utils.getFirstPlaylistItemFromConfig(b); if (typeof j.file == "undefined" && typeof j.levels == "undefined") { return true } else { if (j.file) { return html5CanPlay(a.vid, j.file, j.provider, j.playlistfile) } else { if (j.levels && j.levels.length) { for ( var h = 0; h < j.levels.length; h++) { if (j.levels[h].file && html5CanPlay(a.vid, j.levels[h].file, j.provider, j.playlistfile)) { return true } } } } } } else { return true } } return false }; html5CanPlay = function(k, j, l, h) { if (h) { return false } if (l && l == "youtube") { return true } if (l && l != "video" && l != "http" && l != "sound") { return false } if (navigator.userAgent.match(/BlackBerry/i) !== null) { return false } var m = a.utils.extension(j); if (!a.utils.exists(m) || !a.utils.exists(a.utils.extensionmap[m])) { return true } if (!a.utils.exists(a.utils.extensionmap[m].html5)) { return false } if (a.utils.isLegacyAndroid() && m.match(/m4v|mp4/)) { return true } return browserCanPlay(k, a.utils.extensionmap[m].html5) }; browserCanPlay = function(j, h) { if (!h) { return true } if (j.canPlayType(h)) { return true } else { if (h == "audio/mp3" && navigator.userAgent.match(/safari/i)) { return j.canPlayType("audio/mpeg") } else { return false } } } } })(jwplayer); (function(a) { a.embed.logo = function(m, l, d) { var j = { prefix : "http://l.longtailvideo.com/" + l + "/", file : "logo.png", link : "http://www.longtailvideo.com/players/jw-flv-player/", linktarget : "_top", margin : 8, out : 0.5, over : 1, timeout : 5, hide : false, position : "bottom-left" }; _css = a.utils.css; var b; var h; k(); function k() { o(); c(); f() } function o() { if (j.prefix) { var q = a.version.split(/\W/).splice(0, 2).join("/"); if (j.prefix.indexOf(q) < 0) { j.prefix += q + "/" } } h = a.utils.extend( {}, j) } function p() { var s = { border : "none", textDecoration : "none", position : "absolute", cursor : "pointer", zIndex : 10 }; s.display = h.hide ? "none" : "block"; var r = h.position.toLowerCase().split("-"); for ( var q in r) { s[r[q]] = h.margin } return s } function c() { b = document.createElement("img"); b.id = d + "_jwplayer_logo"; b.style.display = "none"; b.onload = function(q) { _css(b, p()); e() }; if (!h.file) { return } if (h.file.indexOf("http://") === 0) { b.src = h.file } else { b.src = h.prefix + h.file } } if (!h.file) { return } function f() { if (h.link) { b.onmouseover = g; b.onmouseout = e; b.onclick = n } else { this.mouseEnabled = false } } function n(q) { if (typeof q != "undefined") { q.preventDefault(); q.stopPropagation() } if (h.link) { window.open(h.link, h.linktarget) } return } function e(q) { if (h.link) { b.style.opacity = h.out } return } function g(q) { if (h.hide) { b.style.opacity = h.over } return } return b } })(jwplayer); (function(a) { a.html5 = function(b) { var c = b; this.setup = function(d) { a.utils.extend(this, new a.html5.api(c, d)); return this }; return this } })(jwplayer); (function(a) { var d = a.utils; var b = d.css; var c = d.isIOS(); a.html5.view = function(n, H, h) { var m = n; var y = H; var j = h; var R; var g; var t; var o; var F; var P; var O; var E = false; var x = false; var A, N; var f, S, u; function L() { R = document.createElement("div"); R.id = y.id; R.className = y.className; _videowrapper = document.createElement("div"); _videowrapper.id = R.id + "_video_wrapper"; y.id = R.id + "_video"; b(R, { position : "relative", height : j.height, width : j.width, padding : 0, backgroundColor : U(), zIndex : 0 }); function U() { if (m.skin.getComponentSettings("display") && m.skin.getComponentSettings("display").backgroundcolor) { return m.skin.getComponentSettings("display").backgroundcolor } return parseInt("000000", 16) } b(y, { width : "100%", height : "100%", top : 0, left : 0, zIndex : 1, margin : "auto", display : "block" }); b(_videowrapper, { overflow : "hidden", position : "absolute", top : 0, left : 0, bottom : 0, right : 0 }); d.wrap(y, R); d.wrap(y, _videowrapper); o = document.createElement("div"); o.id = R.id + "_displayarea"; R.appendChild(o); _instreamArea = document.createElement("div"); _instreamArea.id = R.id + "_instreamarea"; b(_instreamArea, { overflow : "hidden", position : "absolute", top : 0, left : 0, bottom : 0, right : 0, zIndex : 100, background : "000000", display : "none" }); R.appendChild(_instreamArea) } function K() { for ( var U = 0; U < j.plugins.order.length; U++) { var V = j.plugins.order[U]; if (d.exists(j.plugins.object[V].getDisplayElement)) { j.plugins.object[V].height = d .parseDimension(j.plugins.object[V] .getDisplayElement().style.height); j.plugins.object[V].width = d .parseDimension(j.plugins.object[V] .getDisplayElement().style.width); j.plugins.config[V].currentPosition = j.plugins.config[V].position } } v() } function s(U) { x = j.fullscreen } function p(U) { if (S) { return } switch (U.newstate) { case a.api.events.state.PLAYING: if (j.getMedia() && j.getMedia().hasChrome()) { o.style.display = "none" } break; default: o.style.display = "block"; break } l() } function v(V) { var X = j.getMedia() ? j.getMedia().getDisplayElement() : null; if (d.exists(X)) { if (O != X) { if (O && O.parentNode) { O.parentNode.replaceChild(X, O) } O = X } for ( var U = 0; U < j.plugins.order.length; U++) { var W = j.plugins.order[U]; if (d.exists(j.plugins.object[W].getDisplayElement)) { j.plugins.config[W].currentPosition = j.plugins.config[W].position } } } G(j.width, j.height) } this.setup = function() { if (j && j.getMedia()) { y = j.getMedia().getDisplayElement() } L(); K(); m.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, p); m.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_LOADED, v); m.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_BEFOREPLAY, s); m.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_META, function(V) { l() }); var U; if (d.exists(window.onresize)) { U = window.onresize } window.onresize = function(V) { if (d.exists(U)) { try { U(V) } catch (X) { } } if (m.jwGetFullscreen()) { if (!B()) { var W = d.getBoundingClientRect(document.body); j.width = Math.abs(W.left) + Math.abs(W.right); j.height = window.innerHeight; G(j.width, j.height) } } else { G(j.width, j.height) } } }; function M(U) { switch (U.keyCode) { case 27: if (m.jwGetFullscreen()) { m.jwSetFullscreen(false) } break; case 32: if (m.jwGetState() != a.api.events.state.IDLE && m.jwGetState() != a.api.events.state.PAUSED) { m.jwPause() } else { m.jwPlay() } break } } function G(U, ad) { if (R.style.display == "none") { return } var X = [].concat(j.plugins.order); X.reverse(); F = X.length + 2; if (x && B()) { try { if (j.fullscreen && !j.getMedia().getDisplayElement().webkitDisplayingFullscreen) { j.fullscreen = false } } catch (aa) { } } if (!j.fullscreen) { g = U; t = ad; if (typeof U == "string" && U.indexOf("%") > 0) { g = d.getElementWidth(d.parentNode(R)) * parseInt(U.replace("%"), "") / 100 } else { g = U } if (typeof ad == "string" && ad.indexOf("%") > 0) { t = d.getElementHeight(d.parentNode(R)) * parseInt(ad.replace("%"), "") / 100 } else { t = ad } var Y = { top : 0, bottom : 0, left : 0, right : 0, width : g, height : t, position : "absolute" }; b(o, Y); var ae = {}; var ab; try { ab = j.plugins.object.display.getDisplayElement() } catch (aa) { } if (ab) { ae.width = d.parseDimension(ab.style.width); ae.height = d.parseDimension(ab.style.height) } var ac = d.extend( {}, Y, ae, { zIndex : _instreamArea.style.zIndex, display : _instreamArea.style.display }); b(_instreamArea, ac); b(R, { height : t, width : g }); var Z = w(I, X); if (Z.length > 0) { F += Z.length; var W = Z.indexOf("playlist"), V = Z .indexOf("controlbar"); if (W >= 0 && V >= 0) { Z[W] = Z.splice(V, 1, Z[W])[0] } w(q, Z, true) } A = d.getElementWidth(o); N = d.getElementHeight(o) } else { if (!B() && !c) { w(e, X, true) } } l() } var r; function w(ab, X, Y) { r = 0; var Z = []; for ( var W = 0; W < X.length; W++) { var aa = X[W]; if (d.exists(j.plugins.object[aa].getDisplayElement)) { if (j.plugins.config[aa].currentPosition != a.html5.view.positions.NONE) { var U = ab(aa, F--); if (!U) { Z.push(aa) } else { var V = U.width; var ac = U.height; if (Y) { delete U.width; delete U.height } b(j.plugins.object[aa].getDisplayElement(), U); j.plugins.object[aa].resize(V, ac) } } else { b(j.plugins.object[aa].getDisplayElement(), { display : "none" }) } } } return Z } function I(V, W) { if (d.exists(j.plugins.object[V].getDisplayElement)) { if (j.plugins.config[V].position && T(j.plugins.config[V].position)) { if (!d .exists(j.plugins.object[V].getDisplayElement().parentNode)) { R.appendChild(j.plugins.object[V] .getDisplayElement()) } var U = z(V); U.zIndex = W; return U } } return false } function q(U, V) { if (!d .exists(j.plugins.object[U].getDisplayElement().parentNode)) { o.appendChild(j.plugins.object[U].getDisplayElement()) } return { position : "absolute", width : (d.getElementWidth(o) - d .parseDimension(o.style.right)), height : (d.getElementHeight(o) - d .parseDimension(o.style.bottom)), zIndex : V } } function e(U, V) { return { position : "fixed", width : j.width, height : j.height, zIndex : V } } var l = this.resizeMedia = function() { o.style.position = "absolute"; var W = j.getMedia() ? j.getMedia().getDisplayElement() : u; if (!W) { return } if (W && W.tagName.toLowerCase() == "video") { if (!W.videoWidth || !W.videoHeight) { W.style.width = o.style.width; W.style.height = o.style.height; return } W.style.position = "absolute"; d.fadeTo(W, 1, 0.25); if (W.parentNode) { W.parentNode.style.left = o.style.left; W.parentNode.style.top = o.style.top } if (j.fullscreen && m.jwGetStretching() == a.utils.stretching.EXACTFIT && !d.isMobile()) { var U = document.createElement("div"); d.stretch(a.utils.stretching.UNIFORM, U, d .getElementWidth(o), d.getElementHeight(o), A, N); d.stretch(a.utils.stretching.EXACTFIT, W, d .parseDimension(U.style.width), d .parseDimension(U.style.height), W.videoWidth ? W.videoWidth : 400, W.videoHeight ? W.videoHeight : 300); b(W, { left : U.style.left, top : U.style.top }) } else { if (!c) { d.stretch(m.jwGetStretching(), W, d .getElementWidth(o), d.getElementHeight(o), W.videoWidth ? W.videoWidth : 400, W.videoHeight ? W.videoHeight : 300) } } } else { var V = j.plugins.object.display.getDisplayElement(); if (V) { j.getMedia().resize(d.parseDimension(V.style.width), d.parseDimension(V.style.height)) } else { j.getMedia().resize(d.parseDimension(o.style.width), d.parseDimension(o.style.height)) } } }; var z = this.getComponentPosition = function(V) { var W = { position : "absolute", margin : 0, padding : 0, top : null }; var U = j.plugins.config[V].currentPosition.toLowerCase(); switch (U.toUpperCase()) { case a.html5.view.positions.TOP: W.top = d.parseDimension(o.style.top); W.left = d.parseDimension(o.style.left); W.width = d.getElementWidth(o) - d.parseDimension(o.style.left) - d.parseDimension(o.style.right); W.height = j.plugins.object[V].height; o.style[U] = d.parseDimension(o.style[U]) + j.plugins.object[V].height + "px"; o.style.height = d.getElementHeight(o) - W.height + "px"; break; case a.html5.view.positions.RIGHT: W.top = d.parseDimension(o.style.top); W.right = d.parseDimension(o.style.right); W.width = j.plugins.object[V].width; W.height = d.getElementHeight(o) - d.parseDimension(o.style.top) - d.parseDimension(o.style.bottom); o.style.width = d.getElementWidth(o) - W.width + "px"; break; case a.html5.view.positions.BOTTOM: W.left = d.parseDimension(o.style.left); W.width = d.getElementWidth(o) - d.parseDimension(o.style.left) - d.parseDimension(o.style.right); W.height = j.plugins.object[V].height; W.bottom = d.parseDimension(o.style.bottom + r); r += W.height; o.style.height = d.getElementHeight(o) - W.height + "px"; break; case a.html5.view.positions.LEFT: W.top = d.parseDimension(o.style.top); W.left = d.parseDimension(o.style.left); W.width = j.plugins.object[V].width; W.height = d.getElementHeight(o) - d.parseDimension(o.style.top) - d.parseDimension(o.style.bottom); o.style[U] = d.parseDimension(o.style[U]) + j.plugins.object[V].width + "px"; o.style.width = d.getElementWidth(o) - W.width + "px"; break; default: break } return W }; this.resize = G; var J, k, Q; var C = this.fullscreen = function(W) { if (c) { return } var Y; try { Y = j.getMedia().getDisplayElement() } catch (X) { } if (W) { k = j.width; Q = j.height } var aa = { position : "fixed", width : "100%", height : "100%", top : 0, left : 0, zIndex : 2147483000 }, Z = { position : "relative", height : k, width : Q, zIndex : 0 }; if (B() && Y && Y.webkitSupportsFullscreen) { if (W && !Y.webkitDisplayingFullscreen) { try { b(Y, aa); d.transform(Y); J = o.style.display; o.style.display = "none"; Y.webkitEnterFullscreen() } catch (V) { } } else { if (!W) { b(Y, Z); l(); if (Y.webkitDisplayingFullscreen) { try { Y.webkitExitFullscreen() } catch (V) { } } o.style.display = J } } E = false } else { if (W) { document.onkeydown = M; clearInterval(P); var U = d.getBoundingClientRect(document.body); j.width = Math.abs(U.left) + Math.abs(U.right); j.height = window.innerHeight; b(R, aa); aa.zIndex = 1; if (j.getMedia() && j.getMedia().getDisplayElement()) { b(j.getMedia().getDisplayElement(), aa) } aa.zIndex = 2; b(o, aa); E = true } else { document.onkeydown = ""; j.width = g; j.height = t; b(R, Z); E = false } G(j.width, j.height) } }; function T(U) { return ( [ a.html5.view.positions.TOP, a.html5.view.positions.RIGHT, a.html5.view.positions.BOTTOM, a.html5.view.positions.LEFT ].toString().indexOf( U.toUpperCase()) > -1) } function B() { if (m.jwGetState() != a.api.events.state.IDLE && !E && (j.getMedia() && j.getMedia().getDisplayElement() && j .getMedia().getDisplayElement().webkitSupportsFullscreen) && d.useNativeFullscreen()) { return true } return false } this.setupInstream = function(U, V) { d.css(_instreamArea, { display : "block", position : "absolute" }); o.style.display = "none"; _instreamArea.appendChild(U); u = V; S = true }; var D = this.destroyInstream = function() { _instreamArea.style.display = "none"; _instreamArea.innerHTML = ""; o.style.display = "block"; u = null; S = false; G(j.width, j.height) } }; a.html5.view.positions = { TOP : "TOP", RIGHT : "RIGHT", BOTTOM : "BOTTOM", LEFT : "LEFT", OVER : "OVER", NONE : "NONE" } })(jwplayer); (function(a) { var b = { backgroundcolor : "", margin : 10, font : "Arial,sans-serif", fontsize : 10, fontcolor : parseInt("000000", 16), fontstyle : "normal", fontweight : "bold", buttoncolor : parseInt("ffffff", 16), position : a.html5.view.positions.BOTTOM, idlehide : false, hideplaylistcontrols : false, forcenextprev : false, layout : { left : { position : "left", elements : [ { name : "play", type : "button" }, { name : "divider", type : "divider" }, { name : "prev", type : "button" }, { name : "divider", type : "divider" }, { name : "next", type : "button" }, { name : "divider", type : "divider" }, { name : "elapsed", type : "text" } ] }, center : { position : "center", elements : [ { name : "time", type : "slider" } ] }, right : { position : "right", elements : [ { name : "duration", type : "text" }, { name : "blank", type : "button" }, { name : "divider", type : "divider" }, { name : "mute", type : "button" }, { name : "volume", type : "slider" }, { name : "divider", type : "divider" }, { name : "fullscreen", type : "button" } ] } } }; _utils = a.utils; _css = _utils.css; _hide = function(c) { _css(c, { display : "none" }) }; _show = function(c) { _css(c, { display : "block" }) }; a.html5.controlbar = function(m, Y) { window.controlbar = this; var l = m; var D = _utils.extend( {}, b, l.skin .getComponentSettings("controlbar"), Y); if (D.position == a.html5.view.positions.NONE || typeof a.html5.view.positions[D.position] == "undefined") { return } if (_utils.mapLength(l.skin.getComponentLayout("controlbar")) > 0) { D.layout = l.skin.getComponentLayout("controlbar") } var ag; var R; var af; var E; var w = "none"; var h; var k; var ah; var g; var f; var z; var S = {}; var q = false; var c = {}; var Q = -1; var ac; var j = false; var p; var d; var V = false; var G = false; var H; var aa = new a.html5.eventdispatcher(); _utils.extend(this, aa); function K() { if (!ac) { ac = l.skin.getSkinElement("controlbar", "background"); if (!ac) { ac = { width : 0, height : 0, src : null } } } return ac } function O() { af = 0; E = 0; R = 0; if (!q) { var ap = { height : K().height, backgroundColor : D.backgroundcolor }; ag = document.createElement("div"); ag.id = l.id + "_jwplayer_controlbar"; _css(ag, ap) } var ao = (l.skin.getSkinElement("controlbar", "capLeft")); var an = (l.skin.getSkinElement("controlbar", "capRight")); if (ao) { y("capLeft", "left", false, ag) } ad("background", ag, { position : "absolute", height : K().height, left : (ao ? ao.width : 0), zIndex : 0 }, "img"); if (K().src) { S.background.src = K().src } ad("elements", ag, { position : "relative", height : K().height, zIndex : 1 }); if (an) { y("capRight", "right", false, ag) } } this.getDisplayElement = function() { return ag }; this.resize = function(ap, an) { T(); _utils.cancelAnimation(ag); f = ap; z = an; if (G != l.jwGetFullscreen()) { G = l.jwGetFullscreen(); if (!G) { Z() } d = undefined } var ao = x(); J( { id : l.id, duration : ah, position : k }); v( { id : l.id, bufferPercent : g }); return ao }; this.show = function() { if (j) { j = false; _show(ag); W() } }; this.hide = function() { if (!j) { j = true; _hide(ag); ae() } }; function r() { var ao = [ "timeSlider", "volumeSlider", "timeSliderRail", "volumeSliderRail" ]; for ( var ap in ao) { var an = ao[ap]; if (typeof S[an] != "undefined") { c[an] = _utils.getBoundingClientRect(S[an]) } } } var e; function Z(an) { if (j) { return } clearTimeout(p); if (D.position == a.html5.view.positions.OVER || l.jwGetFullscreen()) { switch (l.jwGetState()) { case a.api.events.state.PAUSED: case a.api.events.state.IDLE: if (ag && ag.style.opacity < 1 && (!D.idlehide || _utils.exists(an))) { e = false; setTimeout(function() { if (!e) { X() } }, 100) } if (D.idlehide) { p = setTimeout(function() { A() }, 2000) } break; default: e = true; if (an) { X() } p = setTimeout(function() { A() }, 2000); break } } else { X() } } function A() { if (!j) { ae(); if (ag.style.opacity == 1) { _utils.cancelAnimation(ag); _utils.fadeTo(ag, 0, 0.1, 1, 0) } } } function X() { if (!j) { W(); if (ag.style.opacity == 0) { _utils.cancelAnimation(ag); _utils.fadeTo(ag, 1, 0.1, 0, 0) } } } function I(an) { return function() { if (V && d != an) { d = an; aa.sendEvent(an, { component : "controlbar", boundingRect : P() }) } } } var W = I(a.api.events.JWPLAYER_COMPONENT_SHOW); var ae = I(a.api.events.JWPLAYER_COMPONENT_HIDE); function P() { if (D.position == a.html5.view.positions.OVER || l.jwGetFullscreen()) { return _utils.getDimensions(ag) } else { return { x : 0, y : 0, width : 0, height : 0 } } } function ad(ar, aq, ap, an) { var ao; if (!q) { if (!an) { an = "div" } ao = document.createElement(an); S[ar] = ao; ao.id = ag.id + "_" + ar; aq.appendChild(ao) } else { ao = document.getElementById(ag.id + "_" + ar) } if (_utils.exists(ap)) { _css(ao, ap) } return ao } function N() { if (l.jwGetHeight() <= 40) { D.layout = _utils.clone(D.layout); for ( var an = 0; an < D.layout.left.elements.length; an++) { if (D.layout.left.elements[an].name == "fullscreen") { D.layout.left.elements.splice(an, 1) } } for (an = 0; an < D.layout.right.elements.length; an++) { if (D.layout.right.elements[an].name == "fullscreen") { D.layout.right.elements.splice(an, 1) } } o() } am(D.layout.left); am(D.layout.center); am(D.layout.right) } function am(aq, an) { var ar = aq.position == "right" ? "right" : "left"; var ap = _utils.extend( [], aq.elements); if (_utils.exists(an)) { ap.reverse() } var aq = ad(aq.position + "Group", S.elements, { "float" : "left", styleFloat : "left", cssFloat : "left", height : "100%" }); for ( var ao = 0; ao < ap.length; ao++) { C(ap[ao], ar, aq) } } function L() { return R++ } function C(ar, au, aw) { var aq, ao, ap, an, ax; if (!aw) { aw = S.elements } if (ar.type == "divider") { y("divider" + L(), au, true, aw, undefined, ar.width, ar.element); return } switch (ar.name) { case "play": y("playButton", au, false, aw); y("pauseButton", au, true, aw); U("playButton", "jwPlay"); U("pauseButton", "jwPause"); break; case "prev": y("prevButton", au, true, aw); U("prevButton", "jwPlaylistPrev"); break; case "stop": y("stopButton", au, true, aw); U("stopButton", "jwStop"); break; case "next": y("nextButton", au, true, aw); U("nextButton", "jwPlaylistNext"); break; case "elapsed": y("elapsedText", au, true, aw, null, null, l.skin .getSkinElement("controlbar", "elapsedBackground")); break; case "time": ao = !_utils.exists(l.skin.getSkinElement("controlbar", "timeSliderCapLeft")) ? 0 : l.skin.getSkinElement( "controlbar", "timeSliderCapLeft").width; ap = !_utils.exists(l.skin.getSkinElement("controlbar", "timeSliderCapRight")) ? 0 : l.skin.getSkinElement( "controlbar", "timeSliderCapRight").width; aq = au == "left" ? ao : ap; ax = { height : K().height, position : "relative", "float" : "left", styleFloat : "left", cssFloat : "left" }; var at = ad("timeSlider", aw, ax); y("timeSliderCapLeft", au, true, at, "relative"); y("timeSliderRail", au, false, at, "relative"); y("timeSliderBuffer", au, false, at, "absolute"); y("timeSliderProgress", au, false, at, "absolute"); y("timeSliderThumb", au, false, at, "absolute"); y("timeSliderCapRight", au, true, at, "relative"); ab("time"); break; case "fullscreen": y("fullscreenButton", au, false, aw); y("normalscreenButton", au, true, aw); U("fullscreenButton", "jwSetFullscreen", true); U("normalscreenButton", "jwSetFullscreen", false); break; case "volume": ao = !_utils.exists(l.skin.getSkinElement("controlbar", "volumeSliderCapLeft")) ? 0 : l.skin.getSkinElement("controlbar", "volumeSliderCapLeft").width; ap = !_utils.exists(l.skin.getSkinElement("controlbar", "volumeSliderCapRight")) ? 0 : l.skin .getSkinElement("controlbar", "volumeSliderCapRight").width; aq = au == "left" ? ao : ap; an = l.skin .getSkinElement("controlbar", "volumeSliderRail").width + ao + ap; ax = { height : K().height, position : "relative", width : an, "float" : "left", styleFloat : "left", cssFloat : "left" }; var av = ad("volumeSlider", aw, ax); y("volumeSliderCapLeft", au, false, av, "relative"); y("volumeSliderRail", au, false, av, "relative"); y("volumeSliderProgress", au, false, av, "absolute"); y("volumeSliderThumb", au, false, av, "absolute"); y("volumeSliderCapRight", au, false, av, "relative"); ab("volume"); break; case "mute": y("muteButton", au, false, aw); y("unmuteButton", au, true, aw); U("muteButton", "jwSetMute", true); U("unmuteButton", "jwSetMute", false); break; case "duration": y("durationText", au, true, aw, null, null, l.skin .getSkinElement("controlbar", "durationBackground")); break } } function y(aq, au, ao, ax, ar, an, ap) { if (_utils.exists(l.skin.getSkinElement("controlbar", aq)) || aq.indexOf("Text") > 0 || aq.indexOf("divider") === 0) { var at = { height : "100%", position : ar ? ar : "relative", display : "block", "float" : "left", styleFloat : "left", cssFloat : "left" }; if ((aq.indexOf("next") === 0 || aq.indexOf("prev") === 0) && (l.jwGetPlaylist().length < 2 || D.hideplaylistcontrols .toString() == "true")) { if (D.forcenextprev.toString() != "true") { ao = false; at.display = "none" } } var ay; if (aq.indexOf("Text") > 0) { aq.innerhtml = "00:00"; at.font = D.fontsize + "px/" + (K().height + 1) + "px " + D.font; at.color = D.fontcolor; at.textAlign = "center"; at.fontWeight = D.fontweight; at.fontStyle = D.fontstyle; at.cursor = "default"; if (ap) { at.background = "url(" + ap.src + ") no-repeat center"; at.backgroundSize = "100% " + K().height + "px" } at.padding = "0 5px" } else { if (aq.indexOf("divider") === 0) { if (an) { if (!isNaN(parseInt(an))) { ay = parseInt(an) } } else { if (ap) { var av = l.skin.getSkinElement( "controlbar", ap); if (av) { at.background = "url(" + av.src + ") repeat-x center left"; ay = av.width } } else { at.background = "url(" + l.skin.getSkinElement( "controlbar", "divider").src + ") repeat-x center left"; ay = l.skin.getSkinElement("controlbar", "divider").width } } } else { at.background = "url(" + l.skin.getSkinElement("controlbar", aq).src + ") repeat-x center left"; ay = l.skin.getSkinElement("controlbar", aq).width } } if (au == "left") { if (ao) { af += ay } } else { if (au == "right") { if (ao) { E += ay } } } if (_utils.typeOf(ax) == "undefined") { ax = S.elements } at.width = ay; if (q) { _css(S[aq], at) } else { var aw = ad(aq, ax, at); if (_utils.exists(l.skin.getSkinElement("controlbar", aq + "Over"))) { aw.onmouseover = function(az) { aw.style.backgroundImage = [ "url(", l.skin.getSkinElement("controlbar", aq + "Over").src, ")" ].join("") }; aw.onmouseout = function(az) { aw.style.backgroundImage = [ "url(", l.skin.getSkinElement("controlbar", aq).src, ")" ].join("") } } if (aq.indexOf("divider") == 0) { aw.setAttribute("class", "divider") } aw.innerHTML = " " } } } function F() { l.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, B); l.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM, t); l.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_BUFFER, v); l.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, s); l.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_TIME, J); l.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE, al); l.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_VOLUME, n); l.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_COMPLETE, M) } function B() { if (!D.hideplaylistcontrols) { if (l.jwGetPlaylist().length > 1 || D.forcenextprev.toString() == "true") { _show(S.nextButton); _show(S.prevButton) } else { _hide(S.nextButton); _hide(S.prevButton) } x(); ai() } } function t(an) { ah = l.jwGetPlaylist()[an.index].duration; Q = -1; J( { id : l.id, duration : ah, position : 0 }); v( { id : l.id, bufferProgress : 0 }) } function ai() { J( { id : l.id, duration : l.jwGetDuration(), position : 0 }); v( { id : l.id, bufferProgress : 0 }); al( { id : l.id, mute : l.jwGetMute() }); s( { id : l.id, newstate : a.api.events.state.IDLE }); n( { id : l.id, volume : l.jwGetVolume() }) } function U(ap, aq, ao) { if (q) { return } if (_utils.exists(l.skin.getSkinElement("controlbar", ap))) { var an = S[ap]; if (_utils.exists(an)) { _css(an, { cursor : "pointer" }); if (aq == "fullscreen") { an.onmouseup = function(ar) { ar.stopPropagation(); l.jwSetFullscreen(!l.jwGetFullscreen()) } } else { an.onmouseup = function(ar) { ar.stopPropagation(); if (_utils.exists(ao)) { l[aq](ao) } else { l[aq]() } } } } } } function ab(an) { if (q) { return } var ao = S[an + "Slider"]; _css(S.elements, { cursor : "pointer" }); _css(ao, { cursor : "pointer" }); ao.onmousedown = function(ap) { w = an }; ao.onmouseup = function(ap) { ap.stopPropagation(); ak(ap.pageX) }; ao.onmousemove = function(ap) { if (w == "time") { h = true; var aq = ap.pageX - c[an + "Slider"].left - window.pageXOffset; _css(S[w + "SliderThumb"], { left : aq }) } } } function ak(ao) { h = false; var an; if (w == "time") { an = ao - c.timeSliderRail.left + window.pageXOffset; var aq = an / c.timeSliderRail.width * ah; if (aq < 0) { aq = 0 } else { if (aq > ah) { aq = ah - 3 } } if (l.jwGetState() == a.api.events.state.PAUSED || l.jwGetState() == a.api.events.state.IDLE) { l.jwPlay() } l.jwSeek(aq) } else { if (w == "volume") { an = ao - c.volumeSliderRail.left - window.pageXOffset; var ap = Math .round(an / c.volumeSliderRail.width * 100); if (ap < 10) { ap = 0 } else { if (ap > 100) { ap = 100 } } if (l.jwGetMute()) { l.jwSetMute(false) } l.jwSetVolume(ap) } } w = "none" } function v(ao) { if (_utils.exists(ao.bufferPercent)) { g = ao.bufferPercent } if (c.timeSliderRail) { var aq = l.skin.getSkinElement("controlbar", "timeSliderCapLeft"); var ap = c.timeSliderRail.width; var an = isNaN(Math.round(ap * g / 100)) ? 0 : Math .round(ap * g / 100); _css(S.timeSliderBuffer, { width : an, left : aq ? aq.width : 0 }) } } function al(an) { if (an.mute) { _hide(S.muteButton); _show(S.unmuteButton); _hide(S.volumeSliderProgress) } else { _show(S.muteButton); _hide(S.unmuteButton); _show(S.volumeSliderProgress) } } function s(an) { if (an.newstate == a.api.events.state.BUFFERING || an.newstate == a.api.events.state.PLAYING) { _show(S.pauseButton); _hide(S.playButton) } else { _hide(S.pauseButton); _show(S.playButton) } Z(); if (an.newstate == a.api.events.state.IDLE) { _hide(S.timeSliderBuffer); _hide(S.timeSliderProgress); _hide(S.timeSliderThumb); J( { id : l.id, duration : l.jwGetDuration(), position : 0 }) } else { _show(S.timeSliderBuffer); if (an.newstate != a.api.events.state.BUFFERING) { _show(S.timeSliderProgress); _show(S.timeSliderThumb) } } } function M(an) { v( { bufferPercent : 0 }); J(_utils.extend(an, { position : 0, duration : ah })) } function J(at) { if (_utils.exists(at.position)) { k = at.position } var ao = false; if (_utils.exists(at.duration) && at.duration != ah) { ah = at.duration; ao = true } var aq = (k === ah === 0) ? 0 : k / ah; var av = c.timeSliderRail; if (av) { var ap = isNaN(Math.round(av.width * aq)) ? 0 : Math .round(av.width * aq); var au = l.skin.getSkinElement("controlbar", "timeSliderCapLeft"); var ar = ap + (au ? au.width : 0); if (S.timeSliderProgress) { _css(S.timeSliderProgress, { width : ap, left : au ? au.width : 0 }); if (!h) { if (S.timeSliderThumb) { S.timeSliderThumb.style.left = ar + "px" } } } } if (S.durationText) { S.durationText.innerHTML = _utils.timeFormat(ah) } if (S.elapsedText) { var an = _utils.timeFormat(k); S.elapsedText.innerHTML = an; if (Q != an.length) { ao = true; Q = an.length } } if (ao) { x() } } function o() { var an = S.elements.childNodes; var at, aq; for ( var ap = 0; ap < an.length; ap++) { var ar = an[ap].childNodes; for ( var ao in ar) { if (isNaN(parseInt(ao, 10))) { continue } if (ar[ao].id.indexOf(ag.id + "_divider") === 0 && aq && aq.id.indexOf(ag.id + "_divider") === 0 && ar[ao].style.backgroundImage == aq.style.backgroundImage) { ar[ao].style.display = "none" } else { if (ar[ao].id.indexOf(ag.id + "_divider") === 0 && at && at.style.display != "none") { ar[ao].style.display = "block" } } if (ar[ao].style.display != "none") { aq = ar[ao] } at = ar[ao] } } } function aj() { if (l.jwGetFullscreen()) { _show(S.normalscreenButton); _hide(S.fullscreenButton) } else { _hide(S.normalscreenButton); _show(S.fullscreenButton) } if (l.jwGetState() == a.api.events.state.BUFFERING || l.jwGetState() == a.api.events.state.PLAYING) { _show(S.pauseButton); _hide(S.playButton) } else { _hide(S.pauseButton); _show(S.playButton) } if (l.jwGetMute() == true) { _hide(S.muteButton); _show(S.unmuteButton); _hide(S.volumeSliderProgress) } else { _show(S.muteButton); _hide(S.unmuteButton); _show(S.volumeSliderProgress) } } function x() { o(); aj(); var ap = { width : f }; var ax = { "float" : "left", styleFloat : "left", cssFloat : "left" }; if (D.position == a.html5.view.positions.OVER || l.jwGetFullscreen()) { ap.left = D.margin; ap.width -= 2 * D.margin; ap.top = z - K().height - D.margin; ap.height = K().height } var ar = l.skin.getSkinElement("controlbar", "capLeft"); var av = l.skin.getSkinElement("controlbar", "capRight"); ax.width = ap.width - (ar ? ar.width : 0) - (av ? av.width : 0); var aq = _utils.getBoundingClientRect(S.leftGroup).width; var au = _utils.getBoundingClientRect(S.rightGroup).width; var at = ax.width - aq - au - 1; var ao = at; var an = l.skin.getSkinElement("controlbar", "timeSliderCapLeft"); var aw = l.skin.getSkinElement("controlbar", "timeSliderCapRight"); if (_utils.exists(an)) { ao -= an.width } if (_utils.exists(aw)) { ao -= aw.width } S.timeSlider.style.width = at + "px"; S.timeSliderRail.style.width = ao + "px"; _css(ag, ap); _css(S.elements, ax); _css(S.background, ax); r(); return ap } function n(at) { if (_utils.exists(S.volumeSliderRail)) { var ap = isNaN(at.volume / 100) ? 1 : at.volume / 100; var aq = _utils .parseDimension(S.volumeSliderRail.style.width); var an = isNaN(Math.round(aq * ap)) ? 0 : Math.round(aq * ap); var au = _utils .parseDimension(S.volumeSliderRail.style.right); var ao = (!_utils.exists(l.skin.getSkinElement( "controlbar", "volumeSliderCapLeft"))) ? 0 : l.skin.getSkinElement("controlbar", "volumeSliderCapLeft").width; _css(S.volumeSliderProgress, { width : an, left : ao }); if (S.volumeSliderThumb) { var ar = (an - Math .round(_utils .parseDimension(S.volumeSliderThumb.style.width) / 2)); ar = Math .min( Math.max(ar, 0), aq - _utils .parseDimension(S.volumeSliderThumb.style.width)); _css(S.volumeSliderThumb, { left : ar }) } if (_utils.exists(S.volumeSliderCapLeft)) { _css(S.volumeSliderCapLeft, { left : 0 }) } } } function T() { try { var ao = (l.id.indexOf("_instream") > 0 ? l.id.replace( "_instream", "") : l.id); H = document.getElementById(ao); H.addEventListener("mousemove", Z) } catch (an) { _utils.log("Could not add mouse listeners to controlbar: " + an) } } function u() { O(); N(); r(); q = true; F(); D.idlehide = (D.idlehide.toString().toLowerCase() == "true"); if (D.position == a.html5.view.positions.OVER && D.idlehide) { ag.style.opacity = 0; V = true } else { ag.style.opacity = 1; setTimeout((function() { V = true; W() }), 1) } T(); ai() } u(); return this } })(jwplayer); (function(b) { var a = [ "width", "height", "state", "playlist", "item", "position", "buffer", "duration", "volume", "mute", "fullscreen" ]; var c = b.utils; b.html5.controller = function(o, K, f, h) { var n = o, m = f, j = h, y = K, M = true, G = -1, A = false, d = false, P, C = [], q = false; var D = (c.exists(m.config.debug) && (m.config.debug.toString() .toLowerCase() == "console")), N = new b.html5.eventdispatcher( y.id, D); c.extend(this, N); function L(T) { if (q) { N.sendEvent(T.type, T) } else { C.push(T) } } function s(T) { if (!q) { q = true; N.sendEvent(b.api.events.JWPLAYER_READY, T); if (b.utils.exists(window.playerReady)) { playerReady(T) } if (b.utils.exists(window[f.config.playerReady])) { window[f.config.playerReady](T) } while (C.length > 0) { var V = C.shift(); N.sendEvent(V.type, V) } if (f.config.autostart && !b.utils.isIOS()) { O() } while (x.length > 0) { var U = x.shift(); B(U.method, U.arguments) } } } m.addGlobalListener(L); m.addEventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL, function() { m.getMedia().play() }); m.addEventListener(b.api.events.JWPLAYER_MEDIA_TIME, function(T) { if (T.position >= m.playlist[m.item].start && G >= 0) { m.playlist[m.item].start = G; G = -1 } }); m.addEventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE, function(T) { setTimeout(E, 25) }); m.addEventListener(b.api.events.JWPLAYER_PLAYLIST_LOADED, O); m.addEventListener(b.api.events.JWPLAYER_FULLSCREEN, p); function F() { try { P = F; if (!A) { A = true; N.sendEvent(b.api.events.JWPLAYER_MEDIA_BEFOREPLAY); A = false; if (d) { d = false; P = null; return } } v(m.item); if (m.playlist[m.item].levels[0].file.length > 0) { if (M || m.state == b.api.events.state.IDLE) { m.getMedia().load(m.playlist[m.item]); M = false } else { if (m.state == b.api.events.state.PAUSED) { m.getMedia().play() } } } return true } catch (T) { N.sendEvent(b.api.events.JWPLAYER_ERROR, T); P = null } return false } function e() { try { if (m.playlist[m.item].levels[0].file.length > 0) { switch (m.state) { case b.api.events.state.PLAYING: case b.api.events.state.BUFFERING: if (m.getMedia()) { m.getMedia().pause() } break; default: if (A) { d = true } } } return true } catch (T) { N.sendEvent(b.api.events.JWPLAYER_ERROR, T) } return false } function z(T) { try { if (m.playlist[m.item].levels[0].file.length > 0) { if (typeof T != "number") { T = parseFloat(T) } switch (m.state) { case b.api.events.state.IDLE: if (G < 0) { G = m.playlist[m.item].start; m.playlist[m.item].start = T } if (!A) { F() } break; case b.api.events.state.PLAYING: case b.api.events.state.PAUSED: case b.api.events.state.BUFFERING: m.seek(T); break } } return true } catch (U) { N.sendEvent(b.api.events.JWPLAYER_ERROR, U) } return false } function w(T) { P = null; if (!c.exists(T)) { T = true } try { if ((m.state != b.api.events.state.IDLE || T) && m.getMedia()) { m.getMedia().stop(T) } if (A) { d = true } return true } catch (U) { N.sendEvent(b.api.events.JWPLAYER_ERROR, U) } return false } function k() { try { if (m.playlist[m.item].levels[0].file.length > 0) { if (m.config.shuffle) { v(S()) } else { if (m.item + 1 == m.playlist.length) { v(0) } else { v(m.item + 1) } } } if (m.state != b.api.events.state.IDLE) { var U = m.state; m.state = b.api.events.state.IDLE; N.sendEvent(b.api.events.JWPLAYER_PLAYER_STATE, { oldstate : U, newstate : b.api.events.state.IDLE }) } F(); return true } catch (T) { N.sendEvent(b.api.events.JWPLAYER_ERROR, T) } return false } function I() { try { if (m.playlist[m.item].levels[0].file.length > 0) { if (m.config.shuffle) { v(S()) } else { if (m.item === 0) { v(m.playlist.length - 1) } else { v(m.item - 1) } } } if (m.state != b.api.events.state.IDLE) { var U = m.state; m.state = b.api.events.state.IDLE; N.sendEvent(b.api.events.JWPLAYER_PLAYER_STATE, { oldstate : U, newstate : b.api.events.state.IDLE }) } F(); return true } catch (T) { N.sendEvent(b.api.events.JWPLAYER_ERROR, T) } return false } function S() { var T = null; if (m.playlist.length > 1) { while (!c.exists(T)) { T = Math.floor(Math.random() * m.playlist.length); if (T == m.item) { T = null } } } else { T = 0 } return T } function H(U) { if (!m.playlist || !m.playlist[U]) { return false } try { if (m.playlist[U].levels[0].file.length > 0) { var V = m.state; if (V !== b.api.events.state.IDLE) { if (m.playlist[m.item] && m.playlist[m.item].provider == m.playlist[U].provider) { w(false) } else { w() } } v(U); F() } return true } catch (T) { N.sendEvent(b.api.events.JWPLAYER_ERROR, T) } return false } function v(T) { if (!m.playlist[T]) { return } m.setActiveMediaProvider(m.playlist[T]); if (m.item != T) { m.item = T; M = true; N.sendEvent(b.api.events.JWPLAYER_PLAYLIST_ITEM, { index : T }) } } function g(U) { try { v(m.item); var V = m.getMedia(); switch (typeof (U)) { case "number": V.volume(U); break; case "string": V.volume(parseInt(U, 10)); break } m.setVolume(U); return true } catch (T) { N.sendEvent(b.api.events.JWPLAYER_ERROR, T) } return false } function r(U) { try { v(m.item); var V = m.getMedia(); if (typeof U == "undefined") { V.mute(!m.mute); m.setMute(!m.mute) } else { if (U.toString().toLowerCase() == "true") { V.mute(true); m.setMute(true) } else { V.mute(false); m.setMute(false) } } return true } catch (T) { N.sendEvent(b.api.events.JWPLAYER_ERROR, T) } return false } function J(U, T) { try { m.width = U; m.height = T; j.resize(U, T); N.sendEvent(b.api.events.JWPLAYER_RESIZE, { width : m.width, height : m.height }); return true } catch (V) { N.sendEvent(b.api.events.JWPLAYER_ERROR, V) } return false } function u(U, V) { try { if (typeof U == "undefined") { U = !m.fullscreen } if (typeof V == "undefined") { V = true } if (U != m.fullscreen) { m.fullscreen = (U.toString().toLowerCase() == "true"); j.fullscreen(m.fullscreen); if (V) { N.sendEvent(b.api.events.JWPLAYER_FULLSCREEN, { fullscreen : m.fullscreen }) } N.sendEvent(b.api.events.JWPLAYER_RESIZE, { width : m.width, height : m.height }) } return true } catch (T) { N.sendEvent(b.api.events.JWPLAYER_ERROR, T) } return false } function R(T) { try { w(); if (A) { d = false } m.loadPlaylist(T); if (m.playlist[m.item].provider) { v(m.item); if (m.config.autostart.toString().toLowerCase() == "true" && !c.isIOS() && !A) { F() } return true } else { return false } } catch (U) { N.sendEvent(b.api.events.JWPLAYER_ERROR, U) } return false } function O(T) { if (!c.isIOS()) { v(m.item); if (m.config.autostart.toString().toLowerCase() == "true" && !c.isIOS()) { F() } } } function p(T) { u(T.fullscreen, false) } function t() { try { return m.getMedia().detachMedia() } catch (T) { return null } } function l() { try { var T = m.getMedia().attachMedia(); if (typeof P == "function") { P() } } catch (U) { return null } } b.html5.controller.repeatoptions = { LIST : "LIST", ALWAYS : "ALWAYS", SINGLE : "SINGLE", NONE : "NONE" }; function E() { if (m.state != b.api.events.state.IDLE) { return } P = E; switch (m.config.repeat.toUpperCase()) { case b.html5.controller.repeatoptions.SINGLE: F(); break; case b.html5.controller.repeatoptions.ALWAYS: if (m.item == m.playlist.length - 1 && !m.config.shuffle) { H(0) } else { k() } break; case b.html5.controller.repeatoptions.LIST: if (m.item == m.playlist.length - 1 && !m.config.shuffle) { w(); v(0) } else { k() } break; default: w(); break } } var x = []; function Q(T) { return function() { if (q) { B(T, arguments) } else { x.push( { method : T, arguments : arguments }) } } } function B(V, U) { var T = []; for (i = 0; i < U.length; i++) { T.push(U[i]) } V.apply(this, T) } this.play = Q(F); this.pause = Q(e); this.seek = Q(z); this.stop = Q(w); this.next = Q(k); this.prev = Q(I); this.item = Q(H); this.setVolume = Q(g); this.setMute = Q(r); this.resize = Q(J); this.setFullscreen = Q(u); this.load = Q(R); this.playerReady = s; this.detachMedia = t; this.attachMedia = l; this.beforePlay = function() { return A }; this.destroy = function() { if (m.getMedia()) { m.getMedia().destroy() } } } })(jwplayer); (function(a) { a.html5.defaultSkin = function() { this.text = '