try { if ($telerik.$) { window.jQuery = $telerik.$ } } catch (err) { } (function (b, f) { "function" === typeof define && define.amd ? define(["jquery"], f) : b.jQuery ? f(b.jQuery) : f(b.Zepto) })(this, function (b, f) { b.fn.jPlayer = function (a) { var c = "string" === typeof a, d = Array.prototype.slice.call(arguments, 1), e = this; a = !c && d.length ? b.extend.apply(null, [!0, a].concat(d)) : a; if (c && "_" === a.charAt(0)) return e; c ? this.each(function () { var c = b(this).data("jPlayer"), h = c && b.isFunction(c[a]) ? c[a].apply(c, d) : c; if (h !== c && h !== f) return e = h, !1 }) : this.each(function () { var c = b(this).data("jPlayer"); c ? c.option(a || {}) : b(this).data("jPlayer", new b.jPlayer(a, this)) }); return e }; b.jPlayer = function (a, c) { if (arguments.length) { this.element = b(c); this.options = b.extend(!0, {}, this.options, a); var d = this; this.element.bind("remove.jPlayer", function () { d.destroy() }); this._init() } }; "function" !== typeof b.fn.stop && (b.fn.stop = function () { }); b.jPlayer.emulateMethods = "load play pause"; b.jPlayer.emulateStatus = "src readyState networkState currentTime duration paused ended playbackRate"; b.jPlayer.emulateOptions = "muted volume"; b.jPlayer.reservedEvent = "ready flashreset resize repeat error warning"; b.jPlayer.event = {}; b.each("ready setmedia flashreset resize repeat click error warning loadstart progress suspend abort emptied stalled play pause loadedmetadata loadeddata waiting playing canplay canplaythrough seeking seeked timeupdate ended ratechange durationchange volumechange".split(" "), function () { b.jPlayer.event[this] = "jPlayer_" + this }); b.jPlayer.htmlEvent = "loadstart abort emptied stalled loadedmetadata loadeddata canplay canplaythrough".split(" "); b.jPlayer.pause = function () { b.each(b.jPlayer.prototype.instances, function (a, c) { c.data("jPlayer").status.srcSet && c.jPlayer("pause") }) }; b.jPlayer.timeFormat = { showHour: !1, showMin: !0, showSec: !0, padHour: !1, padMin: !0, padSec: !0, sepHour: ":", sepMin: ":", sepSec: "" }; var l = function () { this.init() }; l.prototype = { init: function () { this.options = { timeFormat: b.jPlayer.timeFormat } }, time: function (a) { var c = new Date(1E3 * (a && "number" === typeof a ? a : 0)), b = c.getUTCHours(); a = this.options.timeFormat.showHour ? c.getUTCMinutes() : c.getUTCMinutes() + 60 * b; c = this.options.timeFormat.showMin ? c.getUTCSeconds() : c.getUTCSeconds() + 60 * a; b = this.options.timeFormat.padHour && 10 > b ? "0" + b : b; a = this.options.timeFormat.padMin && 10 > a ? "0" + a : a; c = this.options.timeFormat.padSec && 10 > c ? "0" + c : c; b = "" + (this.options.timeFormat.showHour ? b + this.options.timeFormat.sepHour : ""); b += this.options.timeFormat.showMin ? a + this.options.timeFormat.sepMin : ""; return b += this.options.timeFormat.showSec ? c + this.options.timeFormat.sepSec : "" } }; var n = new l; b.jPlayer.convertTime = function (a) { return n.time(a) }; b.jPlayer.uaBrowser = function (a) { a = a.toLowerCase(); var c = /(opera)(?:.*version)?[ \/]([\w.]+)/, b = /(msie) ([\w.]+)/, e = /(mozilla)(?:.*? rv:([\w.]+))?/; a = /(webkit)[ \/]([\w.]+)/.exec(a) || c.exec(a) || b.exec(a) || 0 > a.indexOf("compatible") && e.exec(a) || []; return { browser: a[1] || "", version: a[2] || "0" } }; b.jPlayer.uaPlatform = function (a) { var c = a.toLowerCase(), b = /(android)/, e = /(mobile)/; a = /(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/.exec(c) || []; c = /(ipad|playbook)/.exec(c) || !e.exec(c) && b.exec(c) || []; a[1] && (a[1] = a[1].replace(/\s/g, "_")); return { platform: a[1] || "", tablet: c[1] || "" } }; b.jPlayer.browser = {}; b.jPlayer.platform = {}; var k = b.jPlayer.uaBrowser(navigator.userAgent); k.browser && (b.jPlayer.browser[k.browser] = !0, b.jPlayer.browser.version = k.version); k = b.jPlayer.uaPlatform(navigator.userAgent); k.platform && (b.jPlayer.platform[k.platform] = !0, b.jPlayer.platform.mobile = !k.tablet, b.jPlayer.platform.tablet = !!k.tablet); b.jPlayer.getDocMode = function () { var a; b.jPlayer.browser.msie && (document.documentMode ? a = document.documentMode : (a = 5, document.compatMode && "CSS1Compat" === document.compatMode && (a = 7))); return a }; b.jPlayer.browser.documentMode = b.jPlayer.getDocMode(); b.jPlayer.nativeFeatures = { init: function () { var a = document, c = a.createElement("video"), b = { w3c: "fullscreenEnabled fullscreenElement requestFullscreen exitFullscreen fullscreenchange fullscreenerror".split(" "), moz: "mozFullScreenEnabled mozFullScreenElement mozRequestFullScreen mozCancelFullScreen mozfullscreenchange mozfullscreenerror".split(" "), webkit: " webkitCurrentFullScreenElement webkitRequestFullScreen webkitCancelFullScreen webkitfullscreenchange ".split(" "), webkitVideo: "webkitSupportsFullscreen webkitDisplayingFullscreen webkitEnterFullscreen webkitExitFullscreen ".split(" ") }, e = ["w3c", "moz", "webkit", "webkitVideo"], g, h; this.fullscreen = c = { support: { w3c: !!a[b.w3c[0]], moz: !!a[b.moz[0]], webkit: "function" === typeof a[b.webkit[3]], webkitVideo: "function" === typeof c[b.webkitVideo[2]] }, used: {} }; g = 0; for (h = e.length; g < h; g++) { var f = e[g]; if (c.support[f]) { c.spec = f; c.used[f] = !0; break } } if (c.spec) { var m = b[c.spec]; c.api = { fullscreenEnabled: !0, fullscreenElement: function (c) { c = c ? c : a; return c[m[1]] }, requestFullscreen: function (a) { return a[m[2]]() }, exitFullscreen: function (c) { c = c ? c : a; return c[m[3]]() } }; c.event = { fullscreenchange: m[4], fullscreenerror: m[5] } } else c.api = { fullscreenEnabled: !1, fullscreenElement: function () { return null }, requestFullscreen: function () { }, exitFullscreen: function () { } }, c.event = {} } }; b.jPlayer.nativeFeatures.init(); b.jPlayer.focus = null; b.jPlayer.keyIgnoreElementNames = "INPUT TEXTAREA"; var p = function (a) { var c = b.jPlayer.focus, d; c && (b.each(b.jPlayer.keyIgnoreElementNames.split(/\s+/g), function (c, b) { if (a.target.nodeName.toUpperCase() === b.toUpperCase()) return d = !0, !1 }), d || b.each(c.options.keyBindings, function (d, g) { if (g && a.which === g.key && b.isFunction(g.fn)) return a.preventDefault(), g.fn(c), !1 })) }; b.jPlayer.keys = function (a) { b(document.documentElement).unbind("keydown.jPlayer"); a && b(document.documentElement).bind("keydown.jPlayer", p) }; b.jPlayer.keys(!0); b.jPlayer.prototype = { count: 0, version: { script: "2.6.0", needFlash: "2.6.0", flash: "unknown" }, options: { swfPath: "js", solution: "html, flash", supplied: "mp3", preload: "metadata", volume: 0.8, muted: !1, remainingDuration: !1, toggleDuration: !1, playbackRate: 1, defaultPlaybackRate: 1, minPlaybackRate: 0.5, maxPlaybackRate: 4, wmode: "opaque", backgroundColor: "#000000", cssSelectorAncestor: "#jp_container_1", cssSelector: { videoPlay: ".jp-video-play", play: ".jp-play", pause: ".jp-pause", stop: ".jp-stop", seekBar: ".jp-seek-bar", playBar: ".jp-play-bar", mute: ".jp-mute", unmute: ".jp-unmute", volumeBar: ".jp-volume-bar", volumeBarValue: ".jp-volume-bar-value", volumeMax: ".jp-volume-max", playbackRateBar: ".jp-playback-rate-bar", playbackRateBarValue: ".jp-playback-rate-bar-value", currentTime: ".jp-current-time", duration: ".jp-duration", title: ".jp-title", fullScreen: ".jp-full-screen", restoreScreen: ".jp-restore-screen", repeat: ".jp-repeat", repeatOff: ".jp-repeat-off", gui: ".jp-gui", noSolution: ".jp-no-solution" }, smoothPlayBar: !1, fullScreen: !1, fullWindow: !1, autohide: { restored: !1, full: !0, fadeIn: 200, fadeOut: 600, hold: 1E3 }, loop: !1, repeat: function (a) { a.jPlayer.options.loop ? b(this).unbind(".jPlayerRepeat").bind(b.jPlayer.event.ended + ".jPlayer.jPlayerRepeat", function () { b(this).jPlayer("play") }) : b(this).unbind(".jPlayerRepeat") }, nativeVideoControls: {}, noFullWindow: { msie: /msie [0-6]\./, ipad: /ipad.*?os [0-4]\./, iphone: /iphone/, ipod: /ipod/, android_pad: /android [0-3]\.(?!.*?mobile)/, android_phone: /android.*?mobile/, blackberry: /blackberry/, windows_ce: /windows ce/, iemobile: /iemobile/, webos: /webos/ }, noVolume: { ipad: /ipad/, iphone: /iphone/, ipod: /ipod/, android_pad: /android(?!.*?mobile)/, android_phone: /android.*?mobile/, blackberry: /blackberry/, windows_ce: /windows ce/, iemobile: /iemobile/, webos: /webos/, playbook: /playbook/ }, timeFormat: {}, keyEnabled: !1, audioFullScreen: !1, keyBindings: { play: { key: 32, fn: function (a) { a.status.paused ? a.play() : a.pause() } }, fullScreen: { key: 13, fn: function (a) { (a.status.video || a.options.audioFullScreen) && a._setOption("fullScreen", !a.options.fullScreen) } }, muted: { key: 8, fn: function (a) { a._muted(!a.options.muted) } }, volumeUp: { key: 38, fn: function (a) { a.volume(a.options.volume + 0.1) } }, volumeDown: { key: 40, fn: function (a) { a.volume(a.options.volume - 0.1) } } }, verticalVolume: !1, verticalPlaybackRate: !1, globalVolume: !1, idPrefix: "jp", noConflict: "jQuery", emulateHtml: !1, consoleAlerts: !0, errorAlerts: !1, warningAlerts: !1 }, optionsAudio: { size: { width: "0px", height: "0px", cssClass: "" }, sizeFull: { width: "0px", height: "0px", cssClass: "" } }, optionsVideo: { size: { width: "480px", height: "270px", cssClass: "jp-video-270p" }, sizeFull: { width: "100%", height: "100%", cssClass: "jp-video-full" } }, instances: {}, status: { src: "", media: {}, paused: !0, format: {}, formatType: "", waitForPlay: !0, waitForLoad: !0, srcSet: !1, video: !1, seekPercent: 0, currentPercentRelative: 0, currentPercentAbsolute: 0, currentTime: 0, duration: 0, remaining: 0, videoWidth: 0, videoHeight: 0, readyState: 0, networkState: 0, playbackRate: 1, ended: 0 }, internal: { ready: !1 }, solution: { html: !0, flash: !0 }, format: { mp3: { codec: 'audio/mpeg; codecs="mp3"', flashCanPlay: !0, media: "audio" }, m4a: { codec: 'audio/mp4; codecs="mp4a.40.2"', flashCanPlay: !0, media: "audio" }, m3u8a: { codec: 'application/vnd.apple.mpegurl; codecs="mp4a.40.2"', flashCanPlay: !1, media: "audio" }, m3ua: { codec: "audio/mpegurl", flashCanPlay: !1, media: "audio" }, oga: { codec: 'audio/ogg; codecs="vorbis, opus"', flashCanPlay: !1, media: "audio" }, flac: { codec: "audio/x-flac", flashCanPlay: !1, media: "audio" }, wav: { codec: 'audio/wav; codecs="1"', flashCanPlay: !1, media: "audio" }, webma: { codec: 'audio/webm; codecs="vorbis"', flashCanPlay: !1, media: "audio" }, fla: { codec: "audio/x-flv", flashCanPlay: !0, media: "audio" }, rtmpa: { codec: 'audio/rtmp; codecs="rtmp"', flashCanPlay: !0, media: "audio" }, m4v: { codec: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', flashCanPlay: !0, media: "video" }, m3u8v: { codec: 'application/vnd.apple.mpegurl; codecs="avc1.42E01E, mp4a.40.2"', flashCanPlay: !1, media: "video" }, m3uv: { codec: "audio/mpegurl", flashCanPlay: !1, media: "video" }, ogv: { codec: 'video/ogg; codecs="theora, vorbis"', flashCanPlay: !1, media: "video" }, webmv: { codec: 'video/webm; codecs="vorbis, vp8"', flashCanPlay: !1, media: "video" }, flv: { codec: "video/x-flv", flashCanPlay: !0, media: "video" }, rtmpv: { codec: 'video/rtmp; codecs="rtmp"', flashCanPlay: !0, media: "video" } }, _init: function () { var a = this; this.element.empty(); this.status = b.extend({}, this.status); this.internal = b.extend({}, this.internal); this.options.timeFormat = b.extend({}, b.jPlayer.timeFormat, this.options.timeFormat); this.internal.cmdsIgnored = b.jPlayer.platform.ipad || b.jPlayer.platform.iphone || b.jPlayer.platform.ipod; this.internal.domNode = this.element.get(0); this.options.keyEnabled && !b.jPlayer.focus && (b.jPlayer.focus = this); this.androidFix = { setMedia: !1, play: !1, pause: !1, time: NaN }; b.jPlayer.platform.android && (this.options.preload = "auto" !== this.options.preload ? "metadata" : "auto"); this.formats = []; this.solutions = []; this.require = {}; this.htmlElement = {}; this.html = {}; this.html.audio = {}; this.html.video = {}; this.flash = {}; this.css = {}; this.css.cs = {}; this.css.jq = {}; this.ancestorJq = []; this.options.volume = this._limitValue(this.options.volume, 0, 1); b.each(this.options.supplied.toLowerCase().split(","), function (c, d) { var e = d.replace(/^\s+|\s+$/g, ""); if (a.format[e]) { var f = !1; b.each(a.formats, function (a, c) { if (e === c) return f = !0, !1 }); f || a.formats.push(e) } }); b.each(this.options.solution.toLowerCase().split(","), function (c, d) { var e = d.replace(/^\s+|\s+$/g, ""); if (a.solution[e]) { var f = !1; b.each(a.solutions, function (a, c) { if (e === c) return f = !0, !1 }); f || a.solutions.push(e) } }); this.internal.instance = "jp_" + this.count; this.instances[this.internal.instance] = this.element; this.element.attr("id") || this.element.attr("id", this.options.idPrefix + "_jplayer_" + this.count); this.internal.self = b.extend({}, { id: this.element.attr("id"), jq: this.element }); this.internal.audio = b.extend({}, { id: this.options.idPrefix + "_audio_" + this.count, jq: f }); this.internal.video = b.extend({}, { id: this.options.idPrefix + "_video_" + this.count, jq: f }); this.internal.flash = b.extend({}, { id: this.options.idPrefix + "_flash_" + this.count, jq: f, swf: this.options.swfPath + (".swf" !== this.options.swfPath.toLowerCase().slice(-4) ? (this.options.swfPath && "/" !== this.options.swfPath.slice(-1) ? "/" : "") + "Jplayer.swf" : "") }); this.internal.poster = b.extend({}, { id: this.options.idPrefix + "_poster_" + this.count, jq: f }); b.each(b.jPlayer.event, function (c, b) { a.options[c] !== f && (a.element.bind(b + ".jPlayer", a.options[c]), a.options[c] = f) }); this.require.audio = !1; this.require.video = !1; b.each(this.formats, function (c, b) { a.require[a.format[b].media] = !0 }); this.options = this.require.video ? b.extend(!0, {}, this.optionsVideo, this.options) : b.extend(!0, {}, this.optionsAudio, this.options); this._setSize(); this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls); this.status.noFullWindow = this._uaBlocklist(this.options.noFullWindow); this.status.noVolume = this._uaBlocklist(this.options.noVolume); b.jPlayer.nativeFeatures.fullscreen.api.fullscreenEnabled && this._fullscreenAddEventListeners(); this._restrictNativeVideoControls(); this.htmlElement.poster = document.createElement("img"); this.htmlElement.poster.id = this.internal.poster.id; this.htmlElement.poster.onload = function () { a.status.video && !a.status.waitForPlay || a.internal.poster.jq.show() }; this.element.append(this.htmlElement.poster); this.internal.poster.jq = b("#" + this.internal.poster.id); this.internal.poster.jq.css({ width: this.status.width, height: this.status.height }); this.internal.poster.jq.hide(); this.internal.poster.jq.bind("click.jPlayer", function () { a._trigger(b.jPlayer.event.click) }); this.html.audio.available = !1; this.require.audio && (this.htmlElement.audio = document.createElement("audio"), this.htmlElement.audio.id = this.internal.audio.id, this.html.audio.available = !!this.htmlElement.audio.canPlayType && this._testCanPlayType(this.htmlElement.audio)); this.html.video.available = !1; this.require.video && (this.htmlElement.video = document.createElement("video"), this.htmlElement.video.id = this.internal.video.id, this.html.video.available = !!this.htmlElement.video.canPlayType && this._testCanPlayType(this.htmlElement.video)); this.flash.available = this._checkForFlash(10.1); this.html.canPlay = {}; this.flash.canPlay = {}; b.each(this.formats, function (c, b) { a.html.canPlay[b] = a.html[a.format[b].media].available && "" !== a.htmlElement[a.format[b].media].canPlayType(a.format[b].codec); a.flash.canPlay[b] = a.format[b].flashCanPlay && a.flash.available }); this.html.desired = !1; this.flash.desired = !1; b.each(this.solutions, function (c, d) { if (0 === c) a[d].desired = !0; else { var e = !1, f = !1; b.each(a.formats, function (c, b) { a[a.solutions[0]].canPlay[b] && ("video" === a.format[b].media ? f = !0 : e = !0) }); a[d].desired = a.require.audio && !e || a.require.video && !f } }); this.html.support = {}; this.flash.support = {}; b.each(this.formats, function (c, b) { a.html.support[b] = a.html.canPlay[b] && a.html.desired; a.flash.support[b] = a.flash.canPlay[b] && a.flash.desired }); this.html.used = !1; this.flash.used = !1; b.each(this.solutions, function (c, d) { b.each(a.formats, function (c, b) { if (a[d].support[b]) return a[d].used = !0, !1 }) }); this._resetActive(); this._resetGate(); this._cssSelectorAncestor(this.options.cssSelectorAncestor); this.html.used || this.flash.used ? this.css.jq.noSolution.length && this.css.jq.noSolution.hide() : (this._error({ type: b.jPlayer.error.NO_SOLUTION, context: "{solution:'" + this.options.solution + "', supplied:'" + this.options.supplied + "'}", message: b.jPlayer.errorMsg.NO_SOLUTION, hint: b.jPlayer.errorHint.NO_SOLUTION }), this.css.jq.noSolution.length && this.css.jq.noSolution.show()); if (this.flash.used) { var c, d = "jQuery=" + encodeURI(this.options.noConflict) + "&id=" + encodeURI(this.internal.self.id) + "&vol=" + this.options.volume + "&muted=" + this.options.muted; if (b.jPlayer.browser.msie && (9 > Number(b.jPlayer.browser.version) || 9 > b.jPlayer.browser.documentMode)) { d = ['', '', '', '', '']; c = document.createElement(''); for (var e = 0; e < d.length; e++) c.appendChild(document.createElement(d[e])) } else e = function (a, c, b) { var d = document.createElement("param"); d.setAttribute("name", c); d.setAttribute("value", b); a.appendChild(d) }, c = document.createElement("object"), c.setAttribute("id", this.internal.flash.id), c.setAttribute("name", this.internal.flash.id), c.setAttribute("data", this.internal.flash.swf), c.setAttribute("type", "application/x-shockwave-flash"), c.setAttribute("width", "1"), c.setAttribute("height", "1"), c.setAttribute("tabindex", "-1"), e(c, "flashvars", d), e(c, "allowscriptaccess", "always"), e(c, "bgcolor", this.options.backgroundColor), e(c, "wmode", this.options.wmode); this.element.append(c); this.internal.flash.jq = b(c) } this.status.playbackRateEnabled = this.html.used && !this.flash.used ? this._testPlaybackRate("audio") : !1; this._updatePlaybackRate(); this.html.used && (this.html.audio.available && (this._addHtmlEventListeners(this.htmlElement.audio, this.html.audio), this.element.append(this.htmlElement.audio), this.internal.audio.jq = b("#" + this.internal.audio.id)), this.html.video.available && (this._addHtmlEventListeners(this.htmlElement.video, this.html.video), this.element.append(this.htmlElement.video), this.internal.video.jq = b("#" + this.internal.video.id), this.status.nativeVideoControls ? this.internal.video.jq.css({ width: this.status.width, height: this.status.height }) : this.internal.video.jq.css({ width: "0px", height: "0px" }), this.internal.video.jq.bind("click.jPlayer", function () { a._trigger(b.jPlayer.event.click) }))); this.options.emulateHtml && this._emulateHtmlBridge(); this.html.used && !this.flash.used && setTimeout(function () { a.internal.ready = !0; a.version.flash = "n/a"; a._trigger(b.jPlayer.event.repeat); a._trigger(b.jPlayer.event.ready) }, 100); this._updateNativeVideoControls(); this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(); b.jPlayer.prototype.count++ }, destroy: function () { this.clearMedia(); this._removeUiClass(); this.css.jq.currentTime.length && this.css.jq.currentTime.text(""); this.css.jq.duration.length && this.css.jq.duration.text(""); b.each(this.css.jq, function (a, c) { c.length && c.unbind(".jPlayer") }); this.internal.poster.jq.unbind(".jPlayer"); this.internal.video.jq && this.internal.video.jq.unbind(".jPlayer"); this._fullscreenRemoveEventListeners(); this === b.jPlayer.focus && (b.jPlayer.focus = null); this.options.emulateHtml && this._destroyHtmlBridge(); this.element.removeData("jPlayer"); this.element.unbind(".jPlayer"); this.element.empty(); delete this.instances[this.internal.instance] }, enable: function () { }, disable: function () { }, _testCanPlayType: function (a) { try { return a.canPlayType(this.format.mp3.codec), !0 } catch (c) { return !1 } }, _testPlaybackRate: function (a) { a = document.createElement("string" === typeof a ? a : "audio"); try { return "playbackRate" in a ? (a.playbackRate = 0.5, 0.5 === a.playbackRate) : !1 } catch (c) { return !1 } }, _uaBlocklist: function (a) { var c = navigator.userAgent.toLowerCase(), d = !1; b.each(a, function (a, b) { if (b && b.test(c)) return d = !0, !1 }); return d }, _restrictNativeVideoControls: function () { this.require.audio && this.status.nativeVideoControls && (this.status.nativeVideoControls = !1, this.status.noFullWindow = !0) }, _updateNativeVideoControls: function () { this.html.video.available && this.html.used && (this.htmlElement.video.controls = this.status.nativeVideoControls, this._updateAutohide(), this.status.nativeVideoControls && this.require.video ? (this.internal.poster.jq.hide(), this.internal.video.jq.css({ width: this.status.width, height: this.status.height })) : this.status.waitForPlay && this.status.video && (this.internal.poster.jq.show(), this.internal.video.jq.css({ width: "0px", height: "0px" }))) }, _addHtmlEventListeners: function (a, c) { var d = this; a.preload = this.options.preload; a.muted = this.options.muted; a.volume = this.options.volume; this.status.playbackRateEnabled && (a.defaultPlaybackRate = this.options.defaultPlaybackRate, a.playbackRate = this.options.playbackRate); a.addEventListener("progress", function () { c.gate && (d.internal.cmdsIgnored && 0 < this.readyState && (d.internal.cmdsIgnored = !1), d.androidFix.setMedia = !1, d.androidFix.play && (d.androidFix.play = !1, d.play(d.androidFix.time)), d.androidFix.pause && (d.androidFix.pause = !1, d.pause(d.androidFix.time)), d._getHtmlStatus(a), d._updateInterface(), d._trigger(b.jPlayer.event.progress)) }, !1); a.addEventListener("timeupdate", function () { c.gate && (d._getHtmlStatus(a), d._updateInterface(), d._trigger(b.jPlayer.event.timeupdate)) }, !1); a.addEventListener("durationchange", function () { c.gate && (d._getHtmlStatus(a), d._updateInterface(), d._trigger(b.jPlayer.event.durationchange)) }, !1); a.addEventListener("play", function () { c.gate && (d._updateButtons(!0), d._html_checkWaitForPlay(), d._trigger(b.jPlayer.event.play)) }, !1); a.addEventListener("playing", function () { c.gate && (d._updateButtons(!0), d._seeked(), d._trigger(b.jPlayer.event.playing)) }, !1); a.addEventListener("pause", function () { c.gate && (d._updateButtons(!1), d._trigger(b.jPlayer.event.pause)) }, !1); a.addEventListener("waiting", function () { c.gate && (d._seeking(), d._trigger(b.jPlayer.event.waiting)) }, !1); a.addEventListener("seeking", function () { c.gate && (d._seeking(), d._trigger(b.jPlayer.event.seeking)) }, !1); a.addEventListener("seeked", function () { c.gate && (d._seeked(), d._trigger(b.jPlayer.event.seeked)) }, !1); a.addEventListener("volumechange", function () { c.gate && (d.options.volume = a.volume, d.options.muted = a.muted, d._updateMute(), d._updateVolume(), d._trigger(b.jPlayer.event.volumechange)) }, !1); a.addEventListener("ratechange", function () { c.gate && (d.options.defaultPlaybackRate = a.defaultPlaybackRate, d.options.playbackRate = a.playbackRate, d._updatePlaybackRate(), d._trigger(b.jPlayer.event.ratechange)) }, !1); a.addEventListener("suspend", function () { c.gate && (d._seeked(), d._trigger(b.jPlayer.event.suspend)) }, !1); a.addEventListener("ended", function () { c.gate && (b.jPlayer.browser.webkit || (d.htmlElement.media.currentTime = 0), d.htmlElement.media.pause(), d._updateButtons(!1), d._getHtmlStatus(a, !0), d._updateInterface(), d._trigger(b.jPlayer.event.ended)) }, !1); a.addEventListener("error", function () { c.gate && (d._updateButtons(!1), d._seeked(), d.status.srcSet && (clearTimeout(d.internal.htmlDlyCmdId), d.status.waitForLoad = !0, d.status.waitForPlay = !0, d.status.video && !d.status.nativeVideoControls && d.internal.video.jq.css({ width: "0px", height: "0px" }), d._validString(d.status.media.poster) && !d.status.nativeVideoControls && d.internal.poster.jq.show(), d.css.jq.videoPlay.length && d.css.jq.videoPlay.show(), d._error({ type: b.jPlayer.error.URL, context: d.status.src, message: b.jPlayer.errorMsg.URL, hint: b.jPlayer.errorHint.URL }))) }, !1); b.each(b.jPlayer.htmlEvent, function (e, g) { a.addEventListener(this, function () { c.gate && d._trigger(b.jPlayer.event[g]) }, !1) }) }, _getHtmlStatus: function (a, c) { var b = 0, e = 0, g = 0, f = 0; isFinite(a.duration) && (this.status.duration = a.duration); b = a.currentTime; e = 0 < this.status.duration ? 100 * b / this.status.duration : 0; "object" === typeof a.seekable && 0 < a.seekable.length ? (g = 0 < this.status.duration ? 100 * a.seekable.end(a.seekable.length - 1) / this.status.duration : 100, f = 0 < this.status.duration ? 100 * a.currentTime / a.seekable.end(a.seekable.length - 1) : 0) : (g = 100, f = e); c && (e = f = b = 0); this.status.seekPercent = g; this.status.currentPercentRelative = f; this.status.currentPercentAbsolute = e; this.status.currentTime = b; this.status.remaining = this.status.duration - this.status.currentTime; this.status.videoWidth = a.videoWidth; this.status.videoHeight = a.videoHeight; this.status.readyState = a.readyState; this.status.networkState = a.networkState; this.status.playbackRate = a.playbackRate; this.status.ended = a.ended }, _resetStatus: function () { this.status = b.extend({}, this.status, b.jPlayer.prototype.status) }, _trigger: function (a, c, d) { a = b.Event(a); a.jPlayer = {}; a.jPlayer.version = b.extend({}, this.version); a.jPlayer.options = b.extend(!0, {}, this.options); a.jPlayer.status = b.extend(!0, {}, this.status); a.jPlayer.html = b.extend(!0, {}, this.html); a.jPlayer.flash = b.extend(!0, {}, this.flash); c && (a.jPlayer.error = b.extend({}, c)); d && (a.jPlayer.warning = b.extend({}, d)); this.element.trigger(a) }, jPlayerFlashEvent: function (a, c) { if (a === b.jPlayer.event.ready) if (!this.internal.ready) this.internal.ready = !0, this.internal.flash.jq.css({ width: "0px", height: "0px" }), this.version.flash = c.version, this.version.needFlash !== this.version.flash && this._error({ type: b.jPlayer.error.VERSION, context: this.version.flash, message: b.jPlayer.errorMsg.VERSION + this.version.flash, hint: b.jPlayer.errorHint.VERSION }), this._trigger(b.jPlayer.event.repeat), this._trigger(a); else if (this.flash.gate) { if (this.status.srcSet) { var d = this.status.currentTime, e = this.status.paused; this.setMedia(this.status.media); this.volumeWorker(this.options.volume); 0 < d && (e ? this.pause(d) : this.play(d)) } this._trigger(b.jPlayer.event.flashreset) } if (this.flash.gate) switch (a) { case b.jPlayer.event.progress: this._getFlashStatus(c); this._updateInterface(); this._trigger(a); break; case b.jPlayer.event.timeupdate: this._getFlashStatus(c); this._updateInterface(); this._trigger(a); break; case b.jPlayer.event.play: this._seeked(); this._updateButtons(!0); this._trigger(a); break; case b.jPlayer.event.pause: this._updateButtons(!1); this._trigger(a); break; case b.jPlayer.event.ended: this._updateButtons(!1); this._trigger(a); break; case b.jPlayer.event.click: this._trigger(a); break; case b.jPlayer.event.error: this.status.waitForLoad = !0; this.status.waitForPlay = !0; this.status.video && this.internal.flash.jq.css({ width: "0px", height: "0px" }); this._validString(this.status.media.poster) && this.internal.poster.jq.show(); this.css.jq.videoPlay.length && this.status.video && this.css.jq.videoPlay.show(); this.status.video ? this._flash_setVideo(this.status.media) : this._flash_setAudio(this.status.media); this._updateButtons(!1); this._error({ type: b.jPlayer.error.URL, context: c.src, message: b.jPlayer.errorMsg.URL, hint: b.jPlayer.errorHint.URL }); break; case b.jPlayer.event.seeking: this._seeking(); this._trigger(a); break; case b.jPlayer.event.seeked: this._seeked(); this._trigger(a); break; case b.jPlayer.event.ready: break; default: this._trigger(a) } return !1 }, _getFlashStatus: function (a) { this.status.seekPercent = a.seekPercent; this.status.currentPercentRelative = a.currentPercentRelative; this.status.currentPercentAbsolute = a.currentPercentAbsolute; this.status.currentTime = a.currentTime; this.status.duration = a.duration; this.status.remaining = a.duration - a.currentTime; this.status.videoWidth = a.videoWidth; this.status.videoHeight = a.videoHeight; this.status.readyState = 4; this.status.networkState = 0; this.status.playbackRate = 1; this.status.ended = !1 }, _updateButtons: function (a) { a === f ? a = !this.status.paused : this.status.paused = !a; this.css.jq.play.length && this.css.jq.pause.length && (a ? (this.css.jq.play.hide(), this.css.jq.pause.show()) : (this.css.jq.play.show(), this.css.jq.pause.hide())); this.css.jq.restoreScreen.length && this.css.jq.fullScreen.length && (this.status.noFullWindow ? (this.css.jq.fullScreen.hide(), this.css.jq.restoreScreen.hide()) : this.options.fullWindow ? (this.css.jq.fullScreen.hide(), this.css.jq.restoreScreen.show()) : (this.css.jq.fullScreen.show(), this.css.jq.restoreScreen.hide())); this.css.jq.repeat.length && this.css.jq.repeatOff.length && (this.options.loop ? (this.css.jq.repeat.hide(), this.css.jq.repeatOff.show()) : (this.css.jq.repeat.show(), this.css.jq.repeatOff.hide())) }, _updateInterface: function () { this.css.jq.seekBar.length && this.css.jq.seekBar.width(this.status.seekPercent + "%"); this.css.jq.playBar.length && (this.options.smoothPlayBar ? this.css.jq.playBar.stop().animate({ width: this.status.currentPercentAbsolute + "%" }, 250, "linear") : this.css.jq.playBar.width(this.status.currentPercentRelative + "%")); var a = ""; this.css.jq.currentTime.length && (a = this._convertTime(this.status.currentTime), a !== this.css.jq.currentTime.text() && this.css.jq.currentTime.text(this._convertTime(this.status.currentTime))); var a = "", a = this.status.duration, c = this.status.remaining; this.css.jq.duration.length && ("string" === typeof this.status.media.duration ? a = this.status.media.duration : ("number" === typeof this.status.media.duration && (a = this.status.media.duration, c = a - this.status.currentTime), a = this.options.remainingDuration ? (0 < c ? "-" : "") + this._convertTime(c) : this._convertTime(a)), a !== this.css.jq.duration.text() && this.css.jq.duration.text(a)) }, _convertTime: l.prototype.time, _seeking: function () { this.css.jq.seekBar.length && this.css.jq.seekBar.addClass("jp-seeking-bg") }, _seeked: function () { this.css.jq.seekBar.length && this.css.jq.seekBar.removeClass("jp-seeking-bg") }, _resetGate: function () { this.html.audio.gate = !1; this.html.video.gate = !1; this.flash.gate = !1 }, _resetActive: function () { this.html.active = !1; this.flash.active = !1 }, _escapeHtml: function (a) { return a.split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""") }, _qualifyURL: function (a) { var c = document.createElement("div"); c.innerHTML = 'x'; return c.firstChild.href }, _absoluteMediaUrls: function (a) { var c = this; b.each(a, function (b, e) { e && c.format[b] && (a[b] = c._qualifyURL(e)) }); return a }, setMedia: function (a) { var c = this, d = !1, e = this.status.media.poster !== a.poster; this._resetMedia(); this._resetGate(); this._resetActive(); this.androidFix.setMedia = !1; this.androidFix.play = !1; this.androidFix.pause = !1; a = this._absoluteMediaUrls(a); b.each(this.formats, function (e, f) { var k = "video" === c.format[f].media; b.each(c.solutions, function (e, g) { if (c[g].support[f] && c._validString(a[f])) { var l = "html" === g; k ? (l ? (c.html.video.gate = !0, c._html_setVideo(a), c.html.active = !0) : (c.flash.gate = !0, c._flash_setVideo(a), c.flash.active = !0), c.css.jq.videoPlay.length && c.css.jq.videoPlay.show(), c.status.video = !0) : (l ? (c.html.audio.gate = !0, c._html_setAudio(a), c.html.active = !0, b.jPlayer.platform.android && (c.androidFix.setMedia = !0)) : (c.flash.gate = !0, c._flash_setAudio(a), c.flash.active = !0), c.css.jq.videoPlay.length && c.css.jq.videoPlay.hide(), c.status.video = !1); d = !0; return !1 } }); if (d) return !1 }); d ? (this.status.nativeVideoControls && this.html.video.gate || !this._validString(a.poster) || (e ? this.htmlElement.poster.src = a.poster : this.internal.poster.jq.show()), this.css.jq.title.length && "string" === typeof a.title && (this.css.jq.title.html(a.title), this.htmlElement.audio && this.htmlElement.audio.setAttribute("title", a.title), this.htmlElement.video && this.htmlElement.video.setAttribute("title", a.title)), this.status.srcSet = !0, this.status.media = b.extend({}, a), this._updateButtons(!1), this._updateInterface(), this._trigger(b.jPlayer.event.setmedia)) : this._error({ type: b.jPlayer.error.NO_SUPPORT, context: "{supplied:'" + this.options.supplied + "'}", message: b.jPlayer.errorMsg.NO_SUPPORT, hint: b.jPlayer.errorHint.NO_SUPPORT }) }, _resetMedia: function () { this._resetStatus(); this._updateButtons(!1); this._updateInterface(); this._seeked(); this.internal.poster.jq.hide(); clearTimeout(this.internal.htmlDlyCmdId); this.html.active ? this._html_resetMedia() : this.flash.active && this._flash_resetMedia() }, clearMedia: function () { this._resetMedia(); this.html.active ? this._html_clearMedia() : this.flash.active && this._flash_clearMedia(); this._resetGate(); this._resetActive() }, load: function () { this.status.srcSet ? this.html.active ? this._html_load() : this.flash.active && this._flash_load() : this._urlNotSetError("load") }, focus: function () { this.options.keyEnabled && (b.jPlayer.focus = this) }, play: function (a) { a = "number" === typeof a ? a : NaN; this.status.srcSet ? (this.focus(), this.html.active ? this._html_play(a) : this.flash.active && this._flash_play(a)) : this._urlNotSetError("play") }, videoPlay: function () { this.play() }, pause: function (a) { a = "number" === typeof a ? a : NaN; this.status.srcSet ? this.html.active ? this._html_pause(a) : this.flash.active && this._flash_pause(a) : this._urlNotSetError("pause") }, tellOthers: function (a, c) { var d = this, e = "function" === typeof c, g = Array.prototype.slice.call(arguments); "string" === typeof a && (e && g.splice(1, 1), b.each(this.instances, function () { d.element !== this && (e && !c.call(this.data("jPlayer"), d) || this.jPlayer.apply(this, g)) })) }, pauseOthers: function (a) { this.tellOthers("pause", function () { return this.status.srcSet }, a) }, stop: function () { this.status.srcSet ? this.html.active ? this._html_pause(0) : this.flash.active && this._flash_pause(0) : this._urlNotSetError("stop") }, playHead: function (a) { a = this._limitValue(a, 0, 100); this.status.srcSet ? this.html.active ? this._html_playHead(a) : this.flash.active && this._flash_playHead(a) : this._urlNotSetError("playHead") }, _muted: function (a) { this.mutedWorker(a); this.options.globalVolume && this.tellOthers("mutedWorker", function () { return this.options.globalVolume }, a) }, mutedWorker: function (a) { this.options.muted = a; this.html.used && this._html_setProperty("muted", a); this.flash.used && this._flash_mute(a); this.html.video.gate || this.html.audio.gate || (this._updateMute(a), this._updateVolume(this.options.volume), this._trigger(b.jPlayer.event.volumechange)) }, mute: function (a) { a = a === f ? !0 : !!a; this._muted(a) }, unmute: function (a) { a = a === f ? !0 : !!a; this._muted(!a) }, _updateMute: function (a) { a === f && (a = this.options.muted); this.css.jq.mute.length && this.css.jq.unmute.length && (this.status.noVolume ? (this.css.jq.mute.hide(), this.css.jq.unmute.hide()) : a ? (this.css.jq.mute.hide(), this.css.jq.unmute.show()) : (this.css.jq.mute.show(), this.css.jq.unmute.hide())) }, volume: function (a) { this.volumeWorker(a); this.options.globalVolume && this.tellOthers("volumeWorker", function () { return this.options.globalVolume }, a) }, volumeWorker: function (a) { a = this._limitValue(a, 0, 1); this.options.volume = a; this.html.used && this._html_setProperty("volume", a); this.flash.used && this._flash_volume(a); this.html.video.gate || this.html.audio.gate || (this._updateVolume(a), this._trigger(b.jPlayer.event.volumechange)) }, volumeBar: function (a) { if (this.css.jq.volumeBar.length) { var c = b(a.currentTarget), d = c.offset(), e = a.pageX - d.left, g = c.width(); a = c.height() - a.pageY + d.top; c = c.height(); this.options.verticalVolume ? this.volume(a / c) : this.volume(e / g) } this.options.muted && this._muted(!1) }, _updateVolume: function (a) { a === f && (a = this.options.volume); a = this.options.muted ? 0 : a; this.status.noVolume ? (this.css.jq.volumeBar.length && this.css.jq.volumeBar.hide(), this.css.jq.volumeBarValue.length && this.css.jq.volumeBarValue.hide(), this.css.jq.volumeMax.length && this.css.jq.volumeMax.hide()) : (this.css.jq.volumeBar.length && this.css.jq.volumeBar.show(), this.css.jq.volumeBarValue.length && (this.css.jq.volumeBarValue.show(), this.css.jq.volumeBarValue[this.options.verticalVolume ? "height" : "width"](100 * a + "%")), this.css.jq.volumeMax.length && this.css.jq.volumeMax.show()) }, volumeMax: function () { this.volume(1); this.options.muted && this._muted(!1) }, _cssSelectorAncestor: function (a) { var c = this; this.options.cssSelectorAncestor = a; this._removeUiClass(); this.ancestorJq = a ? b(a) : []; a && 1 !== this.ancestorJq.length && this._warning({ type: b.jPlayer.warning.CSS_SELECTOR_COUNT, context: a, message: b.jPlayer.warningMsg.CSS_SELECTOR_COUNT + this.ancestorJq.length + " found for cssSelectorAncestor.", hint: b.jPlayer.warningHint.CSS_SELECTOR_COUNT }); this._addUiClass(); b.each(this.options.cssSelector, function (a, b) { c._cssSelector(a, b) }); this._updateInterface(); this._updateButtons(); this._updateAutohide(); this._updateVolume(); this._updateMute() }, _cssSelector: function (a, c) { var d = this; "string" === typeof c ? b.jPlayer.prototype.options.cssSelector[a] ? (this.css.jq[a] && this.css.jq[a].length && this.css.jq[a].unbind(".jPlayer"), this.options.cssSelector[a] = c, this.css.cs[a] = this.options.cssSelectorAncestor + " " + c, this.css.jq[a] = c ? b(this.css.cs[a]) : [], this.css.jq[a].length && this[a] && this.css.jq[a].bind("click.jPlayer", function (c) { c.preventDefault(); d[a](c); b(this).blur() }), c && 1 !== this.css.jq[a].length && this._warning({ type: b.jPlayer.warning.CSS_SELECTOR_COUNT, context: this.css.cs[a], message: b.jPlayer.warningMsg.CSS_SELECTOR_COUNT + this.css.jq[a].length + " found for " + a + " method.", hint: b.jPlayer.warningHint.CSS_SELECTOR_COUNT })) : this._warning({ type: b.jPlayer.warning.CSS_SELECTOR_METHOD, context: a, message: b.jPlayer.warningMsg.CSS_SELECTOR_METHOD, hint: b.jPlayer.warningHint.CSS_SELECTOR_METHOD }) : this._warning({ type: b.jPlayer.warning.CSS_SELECTOR_STRING, context: c, message: b.jPlayer.warningMsg.CSS_SELECTOR_STRING, hint: b.jPlayer.warningHint.CSS_SELECTOR_STRING }) }, duration: function (a) { this.options.toggleDuration && this._setOption("remainingDuration", !this.options.remainingDuration) }, seekBar: function (a) { if (this.css.jq.seekBar.length) { var c = b(a.currentTarget), d = c.offset(); a = a.pageX - d.left; c = c.width(); this.playHead(100 * a / c) } }, playbackRate: function (a) { this._setOption("playbackRate", a) }, playbackRateBar: function (a) { if (this.css.jq.playbackRateBar.length) { var c = b(a.currentTarget), d = c.offset(), e = a.pageX - d.left, g = c.width(); a = c.height() - a.pageY + d.top; c = c.height(); this.playbackRate((this.options.verticalPlaybackRate ? a / c : e / g) * (this.options.maxPlaybackRate - this.options.minPlaybackRate) + this.options.minPlaybackRate) } }, _updatePlaybackRate: function () { var a = (this.options.playbackRate - this.options.minPlaybackRate) / (this.options.maxPlaybackRate - this.options.minPlaybackRate); this.status.playbackRateEnabled ? (this.css.jq.playbackRateBar.length && this.css.jq.playbackRateBar.show(), this.css.jq.playbackRateBarValue.length && (this.css.jq.playbackRateBarValue.show(), this.css.jq.playbackRateBarValue[this.options.verticalPlaybackRate ? "height" : "width"](100 * a + "%"))) : (this.css.jq.playbackRateBar.length && this.css.jq.playbackRateBar.hide(), this.css.jq.playbackRateBarValue.length && this.css.jq.playbackRateBarValue.hide()) }, repeat: function () { this._loop(!0) }, repeatOff: function () { this._loop(!1) }, _loop: function (a) { this.options.loop !== a && (this.options.loop = a, this._updateButtons(), this._trigger(b.jPlayer.event.repeat)) }, option: function (a, c) { var d = a; if (0 === arguments.length) return b.extend(!0, {}, this.options); if ("string" === typeof a) { var e = a.split("."); if (c === f) { for (var d = b.extend(!0, {}, this.options), g = 0; g < e.length; g++) if (d[e[g]] !== f) d = d[e[g]]; else return this._warning({ type: b.jPlayer.warning.OPTION_KEY, context: a, message: b.jPlayer.warningMsg.OPTION_KEY, hint: b.jPlayer.warningHint.OPTION_KEY }), f; return d } for (var g = d = {}, h = 0; h < e.length; h++) h < e.length - 1 ? (g[e[h]] = {}, g = g[e[h]]) : g[e[h]] = c } this._setOptions(d); return this }, _setOptions: function (a) { var c = this; b.each(a, function (a, b) { c._setOption(a, b) }); return this }, _setOption: function (a, c) { var d = this; switch (a) { case "volume": this.volume(c); break; case "muted": this._muted(c); break; case "globalVolume": this.options[a] = c; break; case "cssSelectorAncestor": this._cssSelectorAncestor(c); break; case "cssSelector": b.each(c, function (a, c) { d._cssSelector(a, c) }); break; case "playbackRate": this.options[a] = c = this._limitValue(c, this.options.minPlaybackRate, this.options.maxPlaybackRate); this.html.used && this._html_setProperty("playbackRate", c); this._updatePlaybackRate(); break; case "defaultPlaybackRate": this.options[a] = c = this._limitValue(c, this.options.minPlaybackRate, this.options.maxPlaybackRate); this.html.used && this._html_setProperty("defaultPlaybackRate", c); this._updatePlaybackRate(); break; case "minPlaybackRate": this.options[a] = c = this._limitValue(c, 0.1, this.options.maxPlaybackRate - 0.1); this._updatePlaybackRate(); break; case "maxPlaybackRate": this.options[a] = c = this._limitValue(c, this.options.minPlaybackRate + 0.1, 16); this._updatePlaybackRate(); break; case "fullScreen": if (this.options[a] !== c) { var e = b.jPlayer.nativeFeatures.fullscreen.used.webkitVideo; if (!e || e && !this.status.waitForPlay) e || (this.options[a] = c), c ? this._requestFullscreen() : this._exitFullscreen(), e || this._setOption("fullWindow", c) } break; case "fullWindow": this.options[a] !== c && (this._removeUiClass(), this.options[a] = c, this._refreshSize()); break; case "size": this.options.fullWindow || this.options[a].cssClass === c.cssClass || this._removeUiClass(); this.options[a] = b.extend({}, this.options[a], c); this._refreshSize(); break; case "sizeFull": this.options.fullWindow && this.options[a].cssClass !== c.cssClass && this._removeUiClass(); this.options[a] = b.extend({}, this.options[a], c); this._refreshSize(); break; case "autohide": this.options[a] = b.extend({}, this.options[a], c); this._updateAutohide(); break; case "loop": this._loop(c); break; case "remainingDuration": this.options[a] = c; this._updateInterface(); break; case "toggleDuration": this.options[a] = c; break; case "nativeVideoControls": this.options[a] = b.extend({}, this.options[a], c); this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls); this._restrictNativeVideoControls(); this._updateNativeVideoControls(); break; case "noFullWindow": this.options[a] = b.extend({}, this.options[a], c); this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls); this.status.noFullWindow = this._uaBlocklist(this.options.noFullWindow); this._restrictNativeVideoControls(); this._updateButtons(); break; case "noVolume": this.options[a] = b.extend({}, this.options[a], c); this.status.noVolume = this._uaBlocklist(this.options.noVolume); this._updateVolume(); this._updateMute(); break; case "emulateHtml": this.options[a] !== c && ((this.options[a] = c) ? this._emulateHtmlBridge() : this._destroyHtmlBridge()); break; case "timeFormat": this.options[a] = b.extend({}, this.options[a], c); break; case "keyEnabled": this.options[a] = c; c || this !== b.jPlayer.focus || (b.jPlayer.focus = null); break; case "keyBindings": this.options[a] = b.extend(!0, {}, this.options[a], c); break; case "audioFullScreen": this.options[a] = c } return this }, _refreshSize: function () { this._setSize(); this._addUiClass(); this._updateSize(); this._updateButtons(); this._updateAutohide(); this._trigger(b.jPlayer.event.resize) }, _setSize: function () { this.options.fullWindow ? (this.status.width = this.options.sizeFull.width, this.status.height = this.options.sizeFull.height, this.status.cssClass = this.options.sizeFull.cssClass) : (this.status.width = this.options.size.width, this.status.height = this.options.size.height, this.status.cssClass = this.options.size.cssClass); this.element.css({ width: this.status.width, height: this.status.height }) }, _addUiClass: function () { this.ancestorJq.length && this.ancestorJq.addClass(this.status.cssClass) }, _removeUiClass: function () { this.ancestorJq.length && this.ancestorJq.removeClass(this.status.cssClass) }, _updateSize: function () { this.internal.poster.jq.css({ width: this.status.width, height: this.status.height }); !this.status.waitForPlay && this.html.active && this.status.video || this.html.video.available && this.html.used && this.status.nativeVideoControls ? this.internal.video.jq.css({ width: this.status.width, height: this.status.height }) : !this.status.waitForPlay && this.flash.active && this.status.video && this.internal.flash.jq.css({ width: this.status.width, height: this.status.height }) }, _updateAutohide: function () { var a = this, c = function () { a.css.jq.gui.fadeIn(a.options.autohide.fadeIn, function () { clearTimeout(a.internal.autohideId); a.internal.autohideId = setTimeout(function () { a.css.jq.gui.fadeOut(a.options.autohide.fadeOut) }, a.options.autohide.hold) }) }; this.css.jq.gui.length && (this.css.jq.gui.stop(!0, !0), clearTimeout(this.internal.autohideId), this.element.unbind(".jPlayerAutohide"), this.css.jq.gui.unbind(".jPlayerAutohide"), this.status.nativeVideoControls ? this.css.jq.gui.hide() : this.options.fullWindow && this.options.autohide.full || !this.options.fullWindow && this.options.autohide.restored ? (this.element.bind("mousemove.jPlayer.jPlayerAutohide", c), this.css.jq.gui.bind("mousemove.jPlayer.jPlayerAutohide", c), this.css.jq.gui.hide()) : this.css.jq.gui.show()) }, fullScreen: function () { this._setOption("fullScreen", !0) }, restoreScreen: function () { this._setOption("fullScreen", !1) }, _fullscreenAddEventListeners: function () { var a = this, c = b.jPlayer.nativeFeatures.fullscreen; c.api.fullscreenEnabled && c.event.fullscreenchange && ("function" !== typeof this.internal.fullscreenchangeHandler && (this.internal.fullscreenchangeHandler = function () { a._fullscreenchange() }), document.addEventListener(c.event.fullscreenchange, this.internal.fullscreenchangeHandler, !1)) }, _fullscreenRemoveEventListeners: function () { var a = b.jPlayer.nativeFeatures.fullscreen; this.internal.fullscreenchangeHandler && document.removeEventListener(a.event.fullscreenchange, this.internal.fullscreenchangeHandler, !1) }, _fullscreenchange: function () { this.options.fullScreen && !b.jPlayer.nativeFeatures.fullscreen.api.fullscreenElement() && this._setOption("fullScreen", !1) }, _requestFullscreen: function () { var a = this.ancestorJq.length ? this.ancestorJq[0] : this.element[0], c = b.jPlayer.nativeFeatures.fullscreen; c.used.webkitVideo && (a = this.htmlElement.video); c.api.fullscreenEnabled && c.api.requestFullscreen(a) }, _exitFullscreen: function () { var a = b.jPlayer.nativeFeatures.fullscreen, c; a.used.webkitVideo && (c = this.htmlElement.video); a.api.fullscreenEnabled && a.api.exitFullscreen(c) }, _html_initMedia: function (a) { var c = b(this.htmlElement.media).empty(); b.each(a.track || [], function (a, b) { var g = document.createElement("track"); g.setAttribute("kind", b.kind ? b.kind : ""); g.setAttribute("src", b.src ? b.src : ""); g.setAttribute("srclang", b.srclang ? b.srclang : ""); g.setAttribute("label", b.label ? b.label : ""); b.def && g.setAttribute("default", b.def); c.append(g) }); this.htmlElement.media.src = this.status.src; "none" !== this.options.preload && this._html_load(); this._trigger(b.jPlayer.event.timeupdate) }, _html_setFormat: function (a) { var c = this; b.each(this.formats, function (b, e) { if (c.html.support[e] && a[e]) return c.status.src = a[e], c.status.format[e] = !0, c.status.formatType = e, !1 }) }, _html_setAudio: function (a) { this._html_setFormat(a); this.htmlElement.media = this.htmlElement.audio; this._html_initMedia(a) }, _html_setVideo: function (a) { this._html_setFormat(a); this.status.nativeVideoControls && (this.htmlElement.video.poster = this._validString(a.poster) ? a.poster : ""); this.htmlElement.media = this.htmlElement.video; this._html_initMedia(a) }, _html_resetMedia: function () { this.htmlElement.media && (this.htmlElement.media.id !== this.internal.video.id || this.status.nativeVideoControls || this.internal.video.jq.css({ width: "0px", height: "0px" }), this.htmlElement.media.pause()) }, _html_clearMedia: function () { this.htmlElement.media && (this.htmlElement.media.src = "about:blank", this.htmlElement.media.load()) }, _html_load: function () { this.status.waitForLoad && (this.status.waitForLoad = !1, this.htmlElement.media.load()); clearTimeout(this.internal.htmlDlyCmdId) }, _html_play: function (a) { var b = this, d = this.htmlElement.media; this.androidFix.pause = !1; this._html_load(); if (this.androidFix.setMedia) this.androidFix.play = !0, this.androidFix.time = a; else if (isNaN(a)) d.play(); else { this.internal.cmdsIgnored && d.play(); try { if (!d.seekable || "object" === typeof d.seekable && 0 < d.seekable.length) d.currentTime = a, d.play(); else throw 1; } catch (e) { this.internal.htmlDlyCmdId = setTimeout(function () { b.play(a) }, 250); return } } this._html_checkWaitForPlay() }, _html_pause: function (a) { var b = this, d = this.htmlElement.media; this.androidFix.play = !1; 0 < a ? this._html_load() : clearTimeout(this.internal.htmlDlyCmdId); d.pause(); if (this.androidFix.setMedia) this.androidFix.pause = !0, this.androidFix.time = a; else if (!isNaN(a)) try { if (!d.seekable || "object" === typeof d.seekable && 0 < d.seekable.length) d.currentTime = a; else throw 1; } catch (e) { this.internal.htmlDlyCmdId = setTimeout(function () { b.pause(a) }, 250); return } 0 < a && this._html_checkWaitForPlay() }, _html_playHead: function (a) { var b = this, d = this.htmlElement.media; this._html_load(); try { if ("object" === typeof d.seekable && 0 < d.seekable.length) d.currentTime = a * d.seekable.end(d.seekable.length - 1) / 100; else if (0 < d.duration && !isNaN(d.duration)) d.currentTime = a * d.duration / 100; else throw "e"; } catch (e) { this.internal.htmlDlyCmdId = setTimeout(function () { b.playHead(a) }, 250); return } this.status.waitForLoad || this._html_checkWaitForPlay() }, _html_checkWaitForPlay: function () { this.status.waitForPlay && (this.status.waitForPlay = !1, this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), this.status.video && (this.internal.poster.jq.hide(), this.internal.video.jq.css({ width: this.status.width, height: this.status.height }))) }, _html_setProperty: function (a, b) { this.html.audio.available && (this.htmlElement.audio[a] = b); this.html.video.available && (this.htmlElement.video[a] = b) }, _flash_setAudio: function (a) { var c = this; try { b.each(this.formats, function (b, d) { if (c.flash.support[d] && a[d]) { switch (d) { case "m4a": case "fla": c._getMovie().fl_setAudio_m4a(a[d]); break; case "mp3": c._getMovie().fl_setAudio_mp3(a[d]); break; case "rtmpa": c._getMovie().fl_setAudio_rtmp(a[d]) } c.status.src = a[d]; c.status.format[d] = !0; c.status.formatType = d; return !1 } }), "auto" === this.options.preload && (this._flash_load(), this.status.waitForLoad = !1) } catch (d) { this._flashError(d) } }, _flash_setVideo: function (a) { var c = this; try { b.each(this.formats, function (b, d) { if (c.flash.support[d] && a[d]) { switch (d) { case "m4v": case "flv": c._getMovie().fl_setVideo_m4v(a[d]); break; case "rtmpv": c._getMovie().fl_setVideo_rtmp(a[d]) } c.status.src = a[d]; c.status.format[d] = !0; c.status.formatType = d; return !1 } }), "auto" === this.options.preload && (this._flash_load(), this.status.waitForLoad = !1) } catch (d) { this._flashError(d) } }, _flash_resetMedia: function () { this.internal.flash.jq.css({ width: "0px", height: "0px" }); this._flash_pause(NaN) }, _flash_clearMedia: function () { try { this._getMovie().fl_clearMedia() } catch (a) { this._flashError(a) } }, _flash_load: function () { try { this._getMovie().fl_load() } catch (a) { this._flashError(a) } this.status.waitForLoad = !1 }, _flash_play: function (a) { try { this._getMovie().fl_play(a) } catch (b) { this._flashError(b) } this.status.waitForLoad = !1; this._flash_checkWaitForPlay() }, _flash_pause: function (a) { try { this._getMovie().fl_pause(a) } catch (b) { this._flashError(b) } 0 < a && (this.status.waitForLoad = !1, this._flash_checkWaitForPlay()) }, _flash_playHead: function (a) { try { this._getMovie().fl_play_head(a) } catch (b) { this._flashError(b) } this.status.waitForLoad || this._flash_checkWaitForPlay() }, _flash_checkWaitForPlay: function () { this.status.waitForPlay && (this.status.waitForPlay = !1, this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), this.status.video && (this.internal.poster.jq.hide(), this.internal.flash.jq.css({ width: this.status.width, height: this.status.height }))) }, _flash_volume: function (a) { try { this._getMovie().fl_volume(a) } catch (b) { this._flashError(b) } }, _flash_mute: function (a) { try { this._getMovie().fl_mute(a) } catch (b) { this._flashError(b) } }, _getMovie: function () { return document[this.internal.flash.id] }, _getFlashPluginVersion: function () { var a = 0, b; if (window.ActiveXObject) try { if (b = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) { var d = b.GetVariable("$version"); d && (d = d.split(" ")[1].split(","), a = parseInt(d[0], 10) + "." + parseInt(d[1], 10)) } } catch (e) { } else navigator.plugins && 0 < navigator.mimeTypes.length && (b = navigator.plugins["Shockwave Flash"]) && (a = navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/, "$1")); return 1 * a }, _checkForFlash: function (a) { var b = !1; this._getFlashPluginVersion() >= a && (b = !0); return b }, _validString: function (a) { return a && "string" === typeof a }, _limitValue: function (a, b, d) { return a < b ? b : a > d ? d : a }, _urlNotSetError: function (a) { this._error({ type: b.jPlayer.error.URL_NOT_SET, context: a, message: b.jPlayer.errorMsg.URL_NOT_SET, hint: b.jPlayer.errorHint.URL_NOT_SET }) }, _flashError: function (a) { var c; c = this.internal.ready ? "FLASH_DISABLED" : "FLASH"; this._error({ type: b.jPlayer.error[c], context: this.internal.flash.swf, message: b.jPlayer.errorMsg[c] + a.message, hint: b.jPlayer.errorHint[c] }); this.internal.flash.jq.css({ width: "1px", height: "1px" }) }, _error: function (a) { this._trigger(b.jPlayer.event.error, a); this.options.errorAlerts && this._alert("Error!" + (a.message ? "\n" + a.message : "") + (a.hint ? "\n" + a.hint : "") + "\nContext: " + a.context) }, _warning: function (a) { this._trigger(b.jPlayer.event.warning, f, a); this.options.warningAlerts && this._alert("Warning!" + (a.message ? "\n" + a.message : "") + (a.hint ? "\n" + a.hint : "") + "\nContext: " + a.context) }, _alert: function (a) { a = "jPlayer " + this.version.script + " : id='" + this.internal.self.id + "' : " + a; this.options.consoleAlerts ? window.console && window.console.log && window.console.log(a) : alert(a) }, _emulateHtmlBridge: function () { var a = this; b.each(b.jPlayer.emulateMethods.split(/\s+/g), function (b, d) { a.internal.domNode[d] = function (b) { a[d](b) } }); b.each(b.jPlayer.event, function (c, d) { var e = !0; b.each(b.jPlayer.reservedEvent.split(/\s+/g), function (a, b) { if (b === c) return e = !1 }); e && a.element.bind(d + ".jPlayer.jPlayerHtml", function () { a._emulateHtmlUpdate(); var b = document.createEvent("Event"); b.initEvent(c, !1, !0); a.internal.domNode.dispatchEvent(b) }) }) }, _emulateHtmlUpdate: function () { var a = this; b.each(b.jPlayer.emulateStatus.split(/\s+/g), function (b, d) { a.internal.domNode[d] = a.status[d] }); b.each(b.jPlayer.emulateOptions.split(/\s+/g), function (b, d) { a.internal.domNode[d] = a.options[d] }) }, _destroyHtmlBridge: function () { var a = this; this.element.unbind(".jPlayerHtml"); b.each((b.jPlayer.emulateMethods + " " + b.jPlayer.emulateStatus + " " + b.jPlayer.emulateOptions).split(/\s+/g), function (b, d) { delete a.internal.domNode[d] }) } }; b.jPlayer.error = { FLASH: "e_flash", FLASH_DISABLED: "e_flash_disabled", NO_SOLUTION: "e_no_solution", NO_SUPPORT: "e_no_support", URL: "e_url", URL_NOT_SET: "e_url_not_set", VERSION: "e_version" }; b.jPlayer.errorMsg = { FLASH: "jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ", FLASH_DISABLED: "jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ", NO_SOLUTION: "No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.", NO_SUPPORT: "It is not possible to play any media format provided in setMedia() on this browser using your current options.", URL: "Media URL could not be loaded.", URL_NOT_SET: "Attempt to issue media playback commands, while no media url is set.", VERSION: "jPlayer " + b.jPlayer.prototype.version.script + " needs Jplayer.swf version " + b.jPlayer.prototype.version.needFlash + " but found " }; b.jPlayer.errorHint = { FLASH: "Check your swfPath option and that Jplayer.swf is there.", FLASH_DISABLED: "Check that you have not display:none; the jPlayer entity or any ancestor.", NO_SOLUTION: "Review the jPlayer options: support and supplied.", NO_SUPPORT: "Video or audio formats defined in the supplied option are missing.", URL: "Check media URL is valid.", URL_NOT_SET: "Use setMedia() to set the media URL.", VERSION: "Update jPlayer files." }; b.jPlayer.warning = { CSS_SELECTOR_COUNT: "e_css_selector_count", CSS_SELECTOR_METHOD: "e_css_selector_method", CSS_SELECTOR_STRING: "e_css_selector_string", OPTION_KEY: "e_option_key" }; b.jPlayer.warningMsg = { CSS_SELECTOR_COUNT: "The number of css selectors found did not equal one: ", CSS_SELECTOR_METHOD: "The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.", CSS_SELECTOR_STRING: "The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.", OPTION_KEY: "The option requested in jPlayer('option') is undefined." }; b.jPlayer.warningHint = { CSS_SELECTOR_COUNT: "Check your css selector and the ancestor.", CSS_SELECTOR_METHOD: "Check your method name.", CSS_SELECTOR_STRING: "Check your css selector is a string.", OPTION_KEY: "Check your option name." } }); (function ($) { $.fn.slider = function (options, flag) { var EVENT = window.navigator.msPointerEnabled ? 2 : "ontouchend" in document ? 3 : 1; if (window.debug && console) { console.log(EVENT) } function call(f, scope, args) { if (typeof f === "function") { f.call(scope, args) } } var percentage = { to: function (range, value) { value = range[0] < 0 ? value + Math.abs(range[0]) : value - range[0]; return (value * 100) / this._length(range) }, from: function (range, value) { return (value * 100) / this._length(range) }, is: function (range, value) { return ((value * this._length(range)) / 100) + range[0] }, _length: function (range) { return (range[0] > range[1] ? range[0] - range[1] : range[1] - range[0]) } }; function correct(proposal, slider, handle) { var setup = slider.data("setup"), handles = setup.handles, settings = setup.settings, pos = setup.pos; proposal = proposal < 0 ? 0 : proposal > 100 ? 100 : proposal; if (settings.handles == 2) { if (handle.is(":first-child")) { var other = parseFloat(handles[1][0].style[pos]) - settings.margin; proposal = proposal > other ? other : proposal } else { var other = parseFloat(handles[0][0].style[pos]) + settings.margin; proposal = proposal < other ? other : proposal } } if (settings.step) { var per = percentage.from(settings.range, settings.step); proposal = Math.round(proposal / per) * per } return proposal } function client(f) { try { return [(f.clientX || f.originalEvent.clientX || f.originalEvent.touches[0].clientX), (f.clientY || f.originalEvent.clientY || f.originalEvent.touches[0].clientY)] } catch (e) { return ["x", "y"] } } function place(handle, pos) { return parseFloat(handle[0].style[pos]) } var defaults = { handles: 1, serialization: { to: ["", ""], resolution: 0.01 } }; methods = { create: function () { return this.each(function () { function setHandle(handle, to, slider) { handle.css(pos, to + "%").data("input").val(percentage.is(settings.range, to).toFixed(res)) } var settings = $.extend(defaults, options), handlehtml = "", slider = $(this).data("_isnS_", true), handles = [], pos, orientation, classes = "", num = function (e) { return !isNaN(parseFloat(e)) && isFinite(e) }, split = (settings.serialization.resolution = settings.serialization.resolution || 0.01).toString().split("."), res = split[0] == 1 ? 0 : split[1].length; settings.start = num(settings.start) ? [settings.start, 0] : settings.start; $.each(settings, function (a, b) { if (num(b)) { settings[a] = parseFloat(b) } else { if (typeof b == "object" && num(b[0])) { b[0] = parseFloat(b[0]); if (num(b[1])) { b[1] = parseFloat(b[1]) } } } var e = false; b = typeof b == "undefined" ? "x" : b; switch (a) { case "range": case "start": e = b.length != 2 || !num(b[0]) || !num(b[1]); break; case "handles": e = (b < 1 || b > 2 || !num(b)); break; case "connect": e = b != "lower" && b != "upper" && typeof b != "boolean"; break; case "orientation": e = (b != "vertical" && b != "horizontal"); break; case "margin": case "step": e = typeof b != "undefined" && !num(b); break; case "serialization": e = typeof b != "object" || !num(b.resolution) || (typeof b.to == "object" && b.to.length < settings.handles); break; case "slide": e = typeof b != "function"; break } if (e && console) { console.error("Bad input for " + a + " on slider:", slider) } }); settings.margin = settings.margin ? percentage.from(settings.range, settings.margin) : 0; if (settings.serialization.to instanceof $ || typeof settings.serialization.to == "string" || settings.serialization.to === false) { settings.serialization.to = [settings.serialization.to] } if (settings.orientation == "vertical") { classes += "vertical"; pos = "top"; orientation = 1 } else { classes += "horizontal"; pos = "left"; orientation = 0 } classes += settings.connect ? settings.connect == "lower" ? " connect lower" : " connect" : ""; slider.addClass(classes); for (var i = 0; i < settings.handles; i++) { handles[i] = slider.append(handlehtml).children(":last"); var setTo = percentage.to(settings.range, settings.start[i]); handles[i].css(pos, setTo + "%"); if (setTo == 100 && handles[i].is(":first-child")) { handles[i].css("z-index", 2) } var bind = ".slider", onEvent = (EVENT === 1 ? "mousedown" : EVENT === 2 ? "MSPointerDown" : "touchstart") + bind + "X", moveEvent = (EVENT === 1 ? "mousemove" : EVENT === 2 ? "MSPointerMove" : "touchmove") + bind, offEvent = (EVENT === 1 ? "mouseup" : EVENT === 2 ? "MSPointerUp" : "touchend") + bind; handles[i].find("div").on(onEvent, function (e) { $("body").bind("selectstart" + bind, function () { return false }); if (!slider.hasClass("disabled")) { $("body").addClass("TOUCH"); var handle = $(this).addClass("active").parent(), unbind = handle.add($(document)).add("body"), originalPosition = parseFloat(handle[0].style[pos]), originalClick = client(e), previousClick = originalClick, previousProposal = false; $(document).on(moveEvent, function (f) { f.preventDefault(); var currentClick = client(f); if (currentClick[0] == "x") { return } currentClick[0] -= originalClick[0]; currentClick[1] -= originalClick[1]; var movement = [previousClick[0] != currentClick[0], previousClick[1] != currentClick[1]], proposal = originalPosition + ((currentClick[orientation] * 100) / (orientation ? slider.height() : slider.width())); proposal = correct(proposal, slider, handle); if (movement[orientation] && proposal != previousProposal) { handle.css(pos, proposal + "%").data("input").val(percentage.is(settings.range, proposal).toFixed(res)); call(settings.slide, slider.data("_n", true)); previousProposal = proposal; handle.css("z-index", handles.length == 2 && proposal == 100 && handle.is(":first-child") ? 2 : 1) } previousClick = currentClick }).on(offEvent, function () { unbind.off(bind); $("body").removeClass("TOUCH"); if (slider.find(".active").removeClass("active").end().data("_n")) { slider.data("_n", false).change() } }) } }).on("click", function (e) { e.stopPropagation() }) } if (EVENT == 1) { slider.on("click", function (f) { if (!slider.hasClass("disabled")) { var currentClick = client(f), proposal = ((currentClick[orientation] - slider.offset()[pos]) * 100) / (orientation ? slider.height() : slider.width()), handle = handles.length > 1 ? (currentClick[orientation] < (handles[0].offset()[pos] + handles[1].offset()[pos]) / 2 ? handles[0] : handles[1]) : handles[0]; setHandle(handle, correct(proposal, slider, handle), slider); call(settings.slide, slider); slider.change() } }) } for (var i = 0; i < handles.length; i++) { var val = percentage.is(settings.range, place(handles[i], pos)).toFixed(res); if (typeof settings.serialization.to[i] == "string") { handles[i].data("input", slider.append('').find("input:last").val(val).change(function (a) { a.stopPropagation() })) } else { if (settings.serialization.to[i] == false) { handles[i].data("input", { val: function (a) { if (typeof a != "undefined") { this.handle.data("noUiVal", a) } else { return this.handle.data("noUiVal") } }, handle: handles[i] }) } else { handles[i].data("input", settings.serialization.to[i].data("handleNR", i).val(val).change(function () { var arr = [null, null]; arr[$(this).data("handleNR")] = $(this).val(); slider.val(arr) })) } } } $(this).data("setup", { settings: settings, handles: handles, pos: pos, res: res }) }) }, val: function () { if (typeof arguments[0] !== "undefined") { var val = typeof arguments[0] == "number" ? [arguments[0]] : arguments[0]; return this.each(function () { var setup = $(this).data("setup"); for (var i = 0; i < setup.handles.length; i++) { if (val[i] != null) { var proposal = correct(percentage.to(setup.settings.range, val[i]), $(this), setup.handles[i]); setup.handles[i].css(setup.pos, proposal + "%").data("input").val(percentage.is(setup.settings.range, proposal).toFixed(setup.res)) } } }) } else { var handles = $(this).data("setup").handles, re = []; for (var i = 0; i < handles.length; i++) { re.push(parseFloat(handles[i].data("input").val())) } return re.length == 1 ? re[0] : re } }, disabled: function () { return flag ? $(this).addClass("disabled") : $(this).removeClass("disabled") } }; var $_val = $.fn.val; $.fn.val = function () { return this.data("_isnS_") ? methods.val.apply(this, arguments) : $_val.apply(this, arguments) }; return options == "disabled" ? methods.disabled.apply(this) : methods.create.apply(this) } })($); (function ($) { $.fn.videoPlayer = function (extras) { var playerGUI = "#" + $(this).attr('id'); var playerID = "#" + $(this).find('.videoPlayer').attr('id'); try { var settings = $.parseJSON($(this).find('.playerData').text()); } catch (err) { var settings = extras; } $(this).find('.playerData').remove(); $(this).append('
\