/*! jplayer 2.9.2 for jquery ~ (c) 2009-2014 happyworm ltd ~ mit license */ ! function(a, b) {
"function" == typeof define && define.amd ? define(["jquery"], b) : b("object" == typeof exports ? require("jquery") : a.jquery ? a.jquery : a.zepto)
}(this, function(a, b) {
a.fn.jplayer = function(c) {
var d = "jplayer",
e = "string" == typeof c,
f = array.prototype.slice.call(arguments, 1),
g = this;
return c = !e && f.length ? a.extend.apply(null, [!0, c].concat(f)) : c, e && "_" === c.charat(0) ? g : (this.each(e ? function() {
var e = a(this).data(d),
h = e && a.isfunction(e[c]) ? e[c].apply(e, f) : e;
return h !== e && h !== b ? (g = h, !1) : void 0
} : function() {
var b = a(this).data(d);
b ? b.option(c || {}) : a(this).data(d, new a.jplayer(c, this))
}), g)
}, a.jplayer = function(b, c) {
if (arguments.length) {
this.element = a(c), this.options = a.extend(!0, {}, this.options, b);
var d = this;
this.element.bind("remove.jplayer", function() {
d.destroy()
}), this._init()
}
}, "function" != typeof a.fn.stop && (a.fn.stop = function() {}), a.jplayer.emulatemethods = "load play pause", a.jplayer.emulatestatus = "src readystate networkstate currenttime duration paused ended playbackrate", a.jplayer.emulateoptions = "muted volume", a.jplayer.reservedevent = "ready flashreset resize repeat error warning", a.jplayer.event = {}, a.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"], function() {
a.jplayer.event[this] = "jplayer_" + this
}), a.jplayer.htmlevent = ["loadstart", "abort", "emptied", "stalled", "loadedmetadata", "canplay", "canplaythrough"], a.jplayer.pause = function() {
a.jplayer.prototype.destroyremoved(), a.each(a.jplayer.prototype.instances, function(a, b) {
b.data("jplayer").status.srcset && b.jplayer("pause")
})
}, a.jplayer.timeformat = {
showhour: !1,
showmin: !0,
showsec: !0,
padhour: !1,
padmin: !0,
padsec: !0,
sephour: ":",
sepmin: ":",
sepsec: ""
};
var c = function() {
this.init()
};
c.prototype = {
init: function() {
this.options = {
timeformat: a.jplayer.timeformat
}
},
time: function(a) {
a = a && "number" == typeof a ? a : 0;
var b = new date(1e3 * a),
c = b.getutchours(),
d = this.options.timeformat.showhour ? b.getutcminutes() : b.getutcminutes() + 60 * c,
e = this.options.timeformat.showmin ? b.getutcseconds() : b.getutcseconds() + 60 * d,
f = this.options.timeformat.padhour && 10 > c ? "0" + c : c,
g = this.options.timeformat.padmin && 10 > d ? "0" + d : d,
h = this.options.timeformat.padsec && 10 > e ? "0" + e : e,
i = "";
return i += this.options.timeformat.showhour ? f + this.options.timeformat.sephour : "", i += this.options.timeformat.showmin ? g + this.options.timeformat.sepmin : "", i += this.options.timeformat.showsec ? h + this.options.timeformat.sepsec : ""
}
};
var d = new c;
a.jplayer.converttime = function(a) {
return d.time(a)
}, a.jplayer.uabrowser = function(a) {
var b = a.tolowercase(),
c = /(webkit)[ \/]([\w.]+)/,
d = /(opera)(?:.*version)?[ \/]([\w.]+)/,
e = /(msie) ([\w.]+)/,
f = /(mozilla)(?:.*? rv:([\w.]+))?/,
g = c.exec(b) || d.exec(b) || e.exec(b) || b.indexof("compatible") < 0 && f.exec(b) || [];
return {
browser: g[1] || "",
version: g[2] || "0"
}
}, a.jplayer.uaplatform = function(a) {
var b = a.tolowercase(),
c = /(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/,
d = /(ipad|playbook)/,
e = /(android)/,
f = /(mobile)/,
g = c.exec(b) || [],
h = d.exec(b) || !f.exec(b) && e.exec(b) || [];
return g[1] && (g[1] = g[1].replace(/\s/g, "_")), {
platform: g[1] || "",
tablet: h[1] || ""
}
}, a.jplayer.browser = {}, a.jplayer.platform = {};
var e = a.jplayer.uabrowser(navigator.useragent);
e.browser && (a.jplayer.browser[e.browser] = !0, a.jplayer.browser.version = e.version);
var f = a.jplayer.uaplatform(navigator.useragent);
f.platform && (a.jplayer.platform[f.platform] = !0, a.jplayer.platform.mobile = !f.tablet, a.jplayer.platform.tablet = !!f.tablet), a.jplayer.getdocmode = function() {
var b;
return a.jplayer.browser.msie && (document.documentmode ? b = document.documentmode : (b = 5, document.compatmode && "css1compat" === document.compatmode && (b = 7))), b
}, a.jplayer.browser.documentmode = a.jplayer.getdocmode(), a.jplayer.nativefeatures = {
init: function() {
var a, b, c, d = document,
e = d.createelement("video"),
f = {
w3c: ["fullscreenenabled", "fullscreenelement", "requestfullscreen", "exitfullscreen", "fullscreenchange", "fullscreenerror"],
moz: ["mozfullscreenenabled", "mozfullscreenelement", "mozrequestfullscreen", "mozcancelfullscreen", "mozfullscreenchange", "mozfullscreenerror"],
webkit: ["", "webkitcurrentfullscreenelement", "webkitrequestfullscreen", "webkitcancelfullscreen", "webkitfullscreenchange", ""],
webkitvideo: ["webkitsupportsfullscreen", "webkitdisplayingfullscreen", "webkitenterfullscreen", "webkitexitfullscreen", "", ""],
ms: ["", "msfullscreenelement", "msrequestfullscreen", "msexitfullscreen", "msfullscreenchange", "msfullscreenerror"]
},
g = ["w3c", "moz", "webkit", "webkitvideo", "ms"];
for (this.fullscreen = a = {
support: {
w3c: !!d[f.w3c[0]],
moz: !!d[f.moz[0]],
webkit: "function" == typeof d[f.webkit[3]],
webkitvideo: "function" == typeof e[f.webkitvideo[2]],
ms: "function" == typeof e[f.ms[2]]
},
used: {}
}, b = 0, c = g.length; c > b; b++) {
var h = g[b];
if (a.support[h]) {
a.spec = h, a.used[h] = !0;
break
}
}
if (a.spec) {
var i = f[a.spec];
a.api = {
fullscreenenabled: !0,
fullscreenelement: function(a) {
return a = a ? a : d, a[i[1]]
},
requestfullscreen: function(a) {
return a[i[2]]()
},
exitfullscreen: function(a) {
return a = a ? a : d, a[i[3]]()
}
}, a.event = {
fullscreenchange: i[4],
fullscreenerror: i[5]
}
} else a.api = {
fullscreenenabled: !1,
fullscreenelement: function() {
return null
},
requestfullscreen: function() {},
exitfullscreen: function() {}
}, a.event = {}
}
}, a.jplayer.nativefeatures.init(), a.jplayer.focus = null, a.jplayer.keyignoreelementnames = "a input textarea select button";
var g = function(b) {
var c, d = a.jplayer.focus;
d && (a.each(a.jplayer.keyignoreelementnames.split(/\s+/g), function(a, d) {
return b.target.nodename.touppercase() === d.touppercase() ? (c = !0, !1) : void 0
}), c || a.each(d.options.keybindings, function(c, e) {
return e && a.isfunction(e.fn) && ("number" == typeof e.key && b.which === e.key || "string" == typeof e.key && b.key === e.key) ? (b.preventdefault(), e.fn(d), !1) : void 0
}))
};
a.jplayer.keys = function(b) {
var c = "keydown.jplayer";
a(document.documentelement).unbind(c), b && a(document.documentelement).bind(c, g)
}, a.jplayer.keys(!0), a.jplayer.prototype = {
count: 0,
version: {
script: "2.9.2",
needflash: "2.9.0",
flash: "unknown"
},
options: {
swfpath: "js",
solution: "html, flash",
supplied: "mp3",
auroraformats: "wav",
preload: "metadata",
volume: .8,
muted: !1,
remainingduration: !1,
toggleduration: !1,
captureduration: !0,
playbackrate: 1,
defaultplaybackrate: 1,
minplaybackrate: .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"
},
stateclass: {
playing: "jp-state-playing",
seeking: "jp-state-seeking",
muted: "jp-state-muted",
looped: "jp-state-looped",
fullscreen: "jp-state-full-screen",
novolume: "jp-state-no-volume"
},
usestateclassskin: !1,
autoblur: !0,
smoothplaybar: !1,
fullscreen: !1,
fullwindow: !1,
autohide: {
restored: !1,
full: !0,
fadein: 200,
fadeout: 600,
hold: 1e3
},
loop: !1,
repeat: function(b) {
b.jplayer.options.loop ? a(this).unbind(".jplayerrepeat").bind(a.jplayer.event.ended + ".jplayer.jplayerrepeat", function() {
a(this).jplayer("play")
}) : a(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)(?!.*chrome)(?=.*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: 80,
fn: function(a) {
a.status.paused ? a.play() : a.pause()
}
},
fullscreen: {
key: 70,
fn: function(a) {
(a.status.video || a.options.audiofullscreen) && a._setoption("fullscreen", !a.options.fullscreen)
}
},
muted: {
key: 77,
fn: function(a) {
a._muted(!a.options.muted)
}
},
volumeup: {
key: 190,
fn: function(a) {
a.volume(a.options.volume + .1)
}
},
volumedown: {
key: 188,
fn: function(a) {
a.volume(a.options.volume - .1)
}
},
loop: {
key: 76,
fn: function(a) {
a._loop(!a.options.loop)
}
}
},
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,
aurora: !0,
flash: !0
},
format: {
mp3: {
codec: "audio/mpeg",
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 c = this;
if (this.element.empty(), this.status = a.extend({}, this.status), this.internal = a.extend({}, this.internal), this.options.timeformat = a.extend({}, a.jplayer.timeformat, this.options.timeformat), this.internal.cmdsignored = a.jplayer.platform.ipad || a.jplayer.platform.iphone || a.jplayer.platform.ipod, this.internal.domnode = this.element.get(0), this.options.keyenabled && !a.jplayer.focus && (a.jplayer.focus = this), this.androidfix = {
setmedia: !1,
play: !1,
pause: !1,
time: 0 / 0
}, a.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.aurora = {}, this.aurora.formats = [], this.aurora.properties = [], this.flash = {}, this.css = {}, this.css.cs = {}, this.css.jq = {}, this.ancestorjq = [], this.options.volume = this._limitvalue(this.options.volume, 0, 1), a.each(this.options.supplied.tolowercase().split(","), function(b, d) {
var e = d.replace(/^\s+|\s+$/g, "");
if (c.format[e]) {
var f = !1;
a.each(c.formats, function(a, b) {
return e === b ? (f = !0, !1) : void 0
}), f || c.formats.push(e)
}
}), a.each(this.options.solution.tolowercase().split(","), function(b, d) {
var e = d.replace(/^\s+|\s+$/g, "");
if (c.solution[e]) {
var f = !1;
a.each(c.solutions, function(a, b) {
return e === b ? (f = !0, !1) : void 0
}), f || c.solutions.push(e)
}
}), a.each(this.options.auroraformats.tolowercase().split(","), function(b, d) {
var e = d.replace(/^\s+|\s+$/g, "");
if (c.format[e]) {
var f = !1;
a.each(c.aurora.formats, function(a, b) {
return e === b ? (f = !0, !1) : void 0
}), f || c.aurora.formats.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 = a.extend({}, {
id: this.element.attr("id"),
jq: this.element
}), this.internal.audio = a.extend({}, {
id: this.options.idprefix + "_audio_" + this.count,
jq: b
}), this.internal.video = a.extend({}, {
id: this.options.idprefix + "_video_" + this.count,
jq: b
}), this.internal.flash = a.extend({}, {
id: this.options.idprefix + "_flash_" + this.count,
jq: b,
swf: this.options.swfpath + (".swf" !== this.options.swfpath.tolowercase().slice(-4) ? (this.options.swfpath && "/" !== this.options.swfpath.slice(-1) ? "/" : "") + "jquery.jplayer.swf" : "")
}), this.internal.poster = a.extend({}, {
id: this.options.idprefix + "_poster_" + this.count,
jq: b
}), a.each(a.jplayer.event, function(a, d) {
c.options[a] !== b && (c.element.bind(d + ".jplayer", c.options[a]), c.options[a] = b)
}), this.require.audio = !1, this.require.video = !1, a.each(this.formats, function(a, b) {
c.require[c.format[b].media] = !0
}), this.options = this.require.video ? a.extend(!0, {}, this.optionsvideo, this.options) : a.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), a.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() {
(!c.status.video || c.status.waitforplay) && c.internal.poster.jq.show()
}, this.element.append(this.htmlelement.poster), this.internal.poster.jq = a("#" + 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() {
c._trigger(a.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.aurora.canplay = {}, this.flash.canplay = {}, a.each(this.formats, function(b, d) {
c.html.canplay[d] = c.html[c.format[d].media].available && "" !== c.htmlelement[c.format[d].media].canplaytype(c.format[d].codec), c.aurora.canplay[d] = a.inarray(d, c.aurora.formats) > -1, c.flash.canplay[d] = c.format[d].flashcanplay && c.flash.available
}), this.html.desired = !1, this.aurora.desired = !1, this.flash.desired = !1, a.each(this.solutions, function(b, d) {
if (0 === b) c[d].desired = !0;
else {
var e = !1,
f = !1;
a.each(c.formats, function(a, b) {
c[c.solutions[0]].canplay[b] && ("video" === c.format[b].media ? f = !0 : e = !0)
}), c[d].desired = c.require.audio && !e || c.require.video && !f
}
}), this.html.support = {}, this.aurora.support = {}, this.flash.support = {}, a.each(this.formats, function(a, b) {
c.html.support[b] = c.html.canplay[b] && c.html.desired, c.aurora.support[b] = c.aurora.canplay[b] && c.aurora.desired, c.flash.support[b] = c.flash.canplay[b] && c.flash.desired
}), this.html.used = !1, this.aurora.used = !1, this.flash.used = !1, a.each(this.solutions, function(b, d) {
a.each(c.formats, function(a, b) {
return c[d].support[b] ? (c[d].used = !0, !1) : void 0
})
}), this._resetactive(), this._resetgate(), this._cssselectorancestor(this.options.cssselectorancestor), this.html.used || this.aurora.used || this.flash.used ? this.css.jq.nosolution.length && this.css.jq.nosolution.hide() : (this._error({
type: a.jplayer.error.no_solution,
context: "{solution:'" + this.options.solution + "', supplied:'" + this.options.supplied + "'}",
message: a.jplayer.errormsg.no_solution,
hint: a.jplayer.errorhint.no_solution
}), this.css.jq.nosolution.length && this.css.jq.nosolution.show()), this.flash.used) {
var d, e = "jquery=" + encodeuri(this.options.noconflict) + "&id=" + encodeuri(this.internal.self.id) + "&vol=" + this.options.volume + "&muted=" + this.options.muted;
if (a.jplayer.browser.msie && (number(a.jplayer.browser.version) < 9 || a.jplayer.browser.documentmode < 9)) {
var f = '',
g = ['', '', '', '', ''];
d = document.createelement(f);
for (var h = 0; h < g.length; h++) d.appendchild(document.createelement(g[h]))
} else {
var i = function(a, b, c) {
var d = document.createelement("param");
d.setattribute("name", b), d.setattribute("value", c), a.appendchild(d)
};
d = document.createelement("object"), d.setattribute("id", this.internal.flash.id), d.setattribute("name", this.internal.flash.id), d.setattribute("data", this.internal.flash.swf), d.setattribute("type", "application/x-shockwave-flash"), d.setattribute("width", "1"), d.setattribute("height", "1"), d.setattribute("tabindex", "-1"), i(d, "flashvars", e), i(d, "allowscriptaccess", "always"), i(d, "bgcolor", this.options.backgroundcolor), i(d, "wmode", this.options.wmode)
}
this.element.append(d), this.internal.flash.jq = a(d)
}
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 = a("#" + 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 = a("#" + this.internal.video.id), this.internal.video.jq.css(this.status.nativevideocontrols ? {
width: this.status.width,
height: this.status.height
} : {
width: "0px",
height: "0px"
}), this.internal.video.jq.bind("click.jplayer", function() {
c._trigger(a.jplayer.event.click)
}))), this.aurora.used, this.options.emulatehtml && this._emulatehtmlbridge(), !this.html.used && !this.aurora.used || this.flash.used || settimeout(function() {
c.internal.ready = !0, c.version.flash = "n/a", c._trigger(a.jplayer.event.repeat), c._trigger(a.jplayer.event.ready)
}, 100), this._updatenativevideocontrols(), this.css.jq.videoplay.length && this.css.jq.videoplay.hide(), a.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(""), a.each(this.css.jq, function(a, b) {
b.length && b.unbind(".jplayer")
}), this.internal.poster.jq.unbind(".jplayer"), this.internal.video.jq && this.internal.video.jq.unbind(".jplayer"), this._fullscreenremoveeventlisteners(), this === a.jplayer.focus && (a.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]
},
destroyremoved: function() {
var b = this;
a.each(this.instances, function(a, c) {
b.element !== c && (c.data("jplayer") || (c.jplayer("destroy"), delete b.instances[a]))
})
},
enable: function() {},
disable: function() {},
_testcanplaytype: function(a) {
try {
return a.canplaytype(this.format.mp3.codec), !0
} catch (b) {
return !1
}
},
_testplaybackrate: function(a) {
var b, c = .5;
a = "string" == typeof a ? a : "audio", b = document.createelement(a);
try {
return "playbackrate" in b ? (b.playbackrate = c, b.playbackrate === c) : !1
} catch (d) {
return !1
}
},
_uablocklist: function(b) {
var c = navigator.useragent.tolowercase(),
d = !1;
return a.each(b, function(a, b) {
return b && b.test(c) ? (d = !0, !1) : void 0
}), 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(b, c) {
var d = this;
b.preload = this.options.preload, b.muted = this.options.muted, b.volume = this.options.volume, this.status.playbackrateenabled && (b.defaultplaybackrate = this.options.defaultplaybackrate, b.playbackrate = this.options.playbackrate), b.addeventlistener("progress", function() {
c.gate && (d.internal.cmdsignored && this.readystate > 0 && (d.internal.cmdsignored = !1), d._gethtmlstatus(b), d._updateinterface(), d._trigger(a.jplayer.event.progress))
}, !1), b.addeventlistener("loadeddata", function() {
c.gate && (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._trigger(a.jplayer.event.loadeddata))
}, !1), b.addeventlistener("timeupdate", function() {
c.gate && (d._gethtmlstatus(b), d._updateinterface(), d._trigger(a.jplayer.event.timeupdate))
}, !1), b.addeventlistener("durationchange", function() {
c.gate && (d._gethtmlstatus(b), d._updateinterface(), d._trigger(a.jplayer.event.durationchange))
}, !1), b.addeventlistener("play", function() {
c.gate && (d._updatebuttons(!0), d._html_checkwaitforplay(), d._trigger(a.jplayer.event.play))
}, !1), b.addeventlistener("playing", function() {
c.gate && (d._updatebuttons(!0), d._seeked(), d._trigger(a.jplayer.event.playing))
}, !1), b.addeventlistener("pause", function() {
c.gate && (d._updatebuttons(!1), d._trigger(a.jplayer.event.pause))
}, !1), b.addeventlistener("waiting", function() {
c.gate && (d._seeking(), d._trigger(a.jplayer.event.waiting))
}, !1), b.addeventlistener("seeking", function() {
c.gate && (d._seeking(), d._trigger(a.jplayer.event.seeking))
}, !1), b.addeventlistener("seeked", function() {
c.gate && (d._seeked(), d._trigger(a.jplayer.event.seeked))
}, !1), b.addeventlistener("volumechange", function() {
c.gate && (d.options.volume = b.volume, d.options.muted = b.muted, d._updatemute(), d._updatevolume(), d._trigger(a.jplayer.event.volumechange))
}, !1), b.addeventlistener("ratechange", function() {
c.gate && (d.options.defaultplaybackrate = b.defaultplaybackrate, d.options.playbackrate = b.playbackrate, d._updateplaybackrate(), d._trigger(a.jplayer.event.ratechange))
}, !1), b.addeventlistener("suspend", function() {
c.gate && (d._seeked(), d._trigger(a.jplayer.event.suspend))
}, !1), b.addeventlistener("ended", function() {
c.gate && (a.jplayer.browser.webkit || (d.htmlelement.media.currenttime = 0), d.htmlelement.media.pause(), d._updatebuttons(!1), d._gethtmlstatus(b, !0), d._updateinterface(), d._trigger(a.jplayer.event.ended))
}, !1), b.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: a.jplayer.error.url,
context: d.status.src,
message: a.jplayer.errormsg.url,
hint: a.jplayer.errorhint.url
})))
}, !1), a.each(a.jplayer.htmlevent, function(e, f) {
b.addeventlistener(this, function() {
c.gate && d._trigger(a.jplayer.event[f])
}, !1)
})
},
_addauroraeventlisteners: function(b, c) {
var d = this;
b.volume = 100 * this.options.volume, b.on("progress", function() {
c.gate && (d.internal.cmdsignored && this.readystate > 0 && (d.internal.cmdsignored = !1), d._getaurorastatus(b), d._updateinterface(), d._trigger(a.jplayer.event.progress), b.duration > 0 && d._trigger(a.jplayer.event.timeupdate))
}, !1), b.on("ready", function() {
c.gate && d._trigger(a.jplayer.event.loadeddata)
}, !1), b.on("duration", function() {
c.gate && (d._getaurorastatus(b), d._updateinterface(), d._trigger(a.jplayer.event.durationchange))
}, !1), b.on("end", function() {
c.gate && (d._updatebuttons(!1), d._getaurorastatus(b, !0), d._updateinterface(), d._trigger(a.jplayer.event.ended))
}, !1), b.on("error", function() {
c.gate && (d._updatebuttons(!1), d._seeked(), d.status.srcset && (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: a.jplayer.error.url,
context: d.status.src,
message: a.jplayer.errormsg.url,
hint: a.jplayer.errorhint.url
})))
}, !1)
},
_gethtmlstatus: function(a, b) {
var c = 0,
d = 0,
e = 0,
f = 0;
isfinite(a.duration) && (this.status.duration = a.duration), c = a.currenttime, d = this.status.duration > 0 ? 100 * c / this.status.duration : 0, "object" == typeof a.seekable && a.seekable.length > 0 ? (e = this.status.duration > 0 ? 100 * a.seekable.end(a.seekable.length - 1) / this.status.duration : 100, f = this.status.duration > 0 ? 100 * a.currenttime / a.seekable.end(a.seekable.length - 1) : 0) : (e = 100, f = d), b && (c = 0, f = 0, d = 0), this.status.seekpercent = e, this.status.currentpercentrelative = f, this.status.currentpercentabsolute = d, this.status.currenttime = c, 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
},
_getaurorastatus: function(a, b) {
var c = 0,
d = 0,
e = 0,
f = 0;
this.status.duration = a.duration / 1e3, c = a.currenttime / 1e3, d = this.status.duration > 0 ? 100 * c / this.status.duration : 0, a.buffered > 0 ? (e = this.status.duration > 0 ? a.buffered * this.status.duration / this.status.duration : 100, f = this.status.duration > 0 ? c / (a.buffered * this.status.duration) : 0) : (e = 100, f = d), b && (c = 0, f = 0, d = 0), this.status.seekpercent = e, this.status.currentpercentrelative = f, this.status.currentpercentabsolute = d, this.status.currenttime = c, this.status.remaining = this.status.duration - this.status.currenttime, this.status.readystate = 4, this.status.networkstate = 0, this.status.playbackrate = 1, this.status.ended = !1
},
_resetstatus: function() {
this.status = a.extend({}, this.status, a.jplayer.prototype.status)
},
_trigger: function(b, c, d) {
var e = a.event(b);
e.jplayer = {}, e.jplayer.version = a.extend({}, this.version), e.jplayer.options = a.extend(!0, {}, this.options), e.jplayer.status = a.extend(!0, {}, this.status), e.jplayer.html = a.extend(!0, {}, this.html), e.jplayer.aurora = a.extend(!0, {}, this.aurora), e.jplayer.flash = a.extend(!0, {}, this.flash), c && (e.jplayer.error = a.extend({}, c)), d && (e.jplayer.warning = a.extend({}, d)), this.element.trigger(e)
},
jplayerflashevent: function(b, c) {
if (b === a.jplayer.event.ready)
if (this.internal.ready) {
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), d > 0 && (e ? this.pause(d) : this.play(d))
}
this._trigger(a.jplayer.event.flashreset)
}
} else 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: a.jplayer.error.version,
context: this.version.flash,
message: a.jplayer.errormsg.version + this.version.flash,
hint: a.jplayer.errorhint.version
}), this._trigger(a.jplayer.event.repeat), this._trigger(b);
if (this.flash.gate) switch (b) {
case a.jplayer.event.progress:
this._getflashstatus(c), this._updateinterface(), this._trigger(b);
break;
case a.jplayer.event.timeupdate:
this._getflashstatus(c), this._updateinterface(), this._trigger(b);
break;
case a.jplayer.event.play:
this._seeked(), this._updatebuttons(!0), this._trigger(b);
break;
case a.jplayer.event.pause:
this._updatebuttons(!1), this._trigger(b);
break;
case a.jplayer.event.ended:
this._updatebuttons(!1), this._trigger(b);
break;
case a.jplayer.event.click:
this._trigger(b);
break;
case a.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: a.jplayer.error.url,
context: c.src,
message: a.jplayer.errormsg.url,
hint: a.jplayer.errorhint.url
});
break;
case a.jplayer.event.seeking:
this._seeking(), this._trigger(b);
break;
case a.jplayer.event.seeked:
this._seeked(), this._trigger(b);
break;
case a.jplayer.event.ready:
break;
default:
this._trigger(b)
}
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 === b ? a = !this.status.paused : this.status.paused = !a, a ? this.addstateclass("playing") : this.removestateclass("playing"), !this.status.nofullwindow && this.options.fullwindow ? this.addstateclass("fullscreen") : this.removestateclass("fullscreen"), this.options.loop ? this.addstateclass("looped") : this.removestateclass("looped"), 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 b = "",
c = this.status.duration,
d = this.status.remaining;
this.css.jq.duration.length && ("string" == typeof this.status.media.duration ? b = this.status.media.duration : ("number" == typeof this.status.media.duration && (c = this.status.media.duration, d = c - this.status.currenttime), b = this.options.remainingduration ? (d > 0 ? "-" : "") + this._converttime(d) : this._converttime(c)), b !== this.css.jq.duration.text() && this.css.jq.duration.text(b))
},
_converttime: c.prototype.time,
_seeking: function() {
this.css.jq.seekbar.length && this.css.jq.seekbar.addclass("jp-seeking-bg"), this.addstateclass("seeking")
},
_seeked: function() {
this.css.jq.seekbar.length && this.css.jq.seekbar.removeclass("jp-seeking-bg"), this.removestateclass("seeking")
},
_resetgate: function() {
this.html.audio.gate = !1, this.html.video.gate = !1, this.aurora.gate = !1, this.flash.gate = !1
},
_resetactive: function() {
this.html.active = !1, this.aurora.active = !1, this.flash.active = !1
},
_escapehtml: function(a) {
return a.split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""")
},
_qualifyurl: function(a) {
var b = document.createelement("div");
return b.innerhtml = 'x', b.firstchild.href
},
_absolutemediaurls: function(b) {
var c = this;
return a.each(b, function(a, d) {
d && c.format[a] && "data:" !== d.substr(0, 5) && (b[a] = c._qualifyurl(d))
}), b
},
addstateclass: function(a) {
this.ancestorjq.length && this.ancestorjq.addclass(this.options.stateclass[a])
},
removestateclass: function(a) {
this.ancestorjq.length && this.ancestorjq.removeclass(this.options.stateclass[a])
},
setmedia: function(b) {
var c = this,
d = !1,
e = this.status.media.poster !== b.poster;
this._resetmedia(), this._resetgate(), this._resetactive(), this.androidfix.setmedia = !1, this.androidfix.play = !1, this.androidfix.pause = !1, b = this._absolutemediaurls(b), a.each(this.formats, function(e, f) {
var g = "video" === c.format[f].media;
return a.each(c.solutions, function(e, h) {
if (c[h].support[f] && c._validstring(b[f])) {
var i = "html" === h,
j = "aurora" === h;
return g ? (i ? (c.html.video.gate = !0, c._html_setvideo(b), c.html.active = !0) : (c.flash.gate = !0, c._flash_setvideo(b), c.flash.active = !0), c.css.jq.videoplay.length && c.css.jq.videoplay.show(), c.status.video = !0) : (i ? (c.html.audio.gate = !0, c._html_setaudio(b), c.html.active = !0, a.jplayer.platform.android && (c.androidfix.setmedia = !0)) : j ? (c.aurora.gate = !0, c._aurora_setaudio(b), c.aurora.active = !0) : (c.flash.gate = !0, c._flash_setaudio(b), c.flash.active = !0), c.css.jq.videoplay.length && c.css.jq.videoplay.hide(), c.status.video = !1), d = !0, !1
}
}), d ? !1 : void 0
}), d ? (this.status.nativevideocontrols && this.html.video.gate || this._validstring(b.poster) && (e ? this.htmlelement.poster.src = b.poster : this.internal.poster.jq.show()), "string" == typeof b.title && (this.css.jq.title.length && this.css.jq.title.html(b.title), this.htmlelement.audio && this.htmlelement.audio.setattribute("title", b.title), this.htmlelement.video && this.htmlelement.video.setattribute("title", b.title)), this.status.srcset = !0, this.status.media = a.extend({}, b), this._updatebuttons(!1), this._updateinterface(), this._trigger(a.jplayer.event.setmedia)) : this._error({
type: a.jplayer.error.no_support,
context: "{supplied:'" + this.options.supplied + "'}",
message: a.jplayer.errormsg.no_support,
hint: a.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.aurora.active ? this._aurora_resetmedia() : this.flash.active && this._flash_resetmedia()
},
clearmedia: function() {
this._resetmedia(), this.html.active ? this._html_clearmedia() : this.aurora.active ? this._aurora_clearmedia() : this.flash.active && this._flash_clearmedia(), this._resetgate(), this._resetactive()
},
load: function() {
this.status.srcset ? this.html.active ? this._html_load() : this.aurora.active ? this._aurora_load() : this.flash.active && this._flash_load() : this._urlnotseterror("load")
},
focus: function() {
this.options.keyenabled && (a.jplayer.focus = this)
},
play: function(a) {
var b = "object" == typeof a;
b && this.options.usestateclassskin && !this.status.paused ? this.pause(a) : (a = "number" == typeof a ? a : 0 / 0, this.status.srcset ? (this.focus(), this.html.active ? this._html_play(a) : this.aurora.active ? this._aurora_play(a) : this.flash.active && this._flash_play(a)) : this._urlnotseterror("play"))
},
videoplay: function() {
this.play()
},
pause: function(a) {
a = "number" == typeof a ? a : 0 / 0, this.status.srcset ? this.html.active ? this._html_pause(a) : this.aurora.active ? this._aurora_pause(a) : this.flash.active && this._flash_pause(a) : this._urlnotseterror("pause")
},
tellothers: function(b, c) {
var d = this,
e = "function" == typeof c,
f = array.prototype.slice.call(arguments);
"string" == typeof b && (e && f.splice(1, 1), a.jplayer.prototype.destroyremoved(), a.each(this.instances, function() {
d.element !== this && (!e || c.call(this.data("jplayer"), d)) && this.jplayer.apply(this, f)
}))
},
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.aurora.active ? this._aurora_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.aurora.active ? this._aurora_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(b) {
this.options.muted = b, this.html.used && this._html_setproperty("muted", b), this.aurora.used && this._aurora_mute(b), this.flash.used && this._flash_mute(b), this.html.video.gate || this.html.audio.gate || (this._updatemute(b), this._updatevolume(this.options.volume), this._trigger(a.jplayer.event.volumechange))
},
mute: function(a) {
var c = "object" == typeof a;
c && this.options.usestateclassskin && this.options.muted ? this._muted(!1) : (a = a === b ? !0 : !!a, this._muted(a))
},
unmute: function(a) {
a = a === b ? !0 : !!a, this._muted(!a)
},
_updatemute: function(a) {
a === b && (a = this.options.muted), a ? this.addstateclass("muted") : this.removestateclass("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(b) {
b = this._limitvalue(b, 0, 1), this.options.volume = b, this.html.used && this._html_setproperty("volume", b), this.aurora.used && this._aurora_volume(b), this.flash.used && this._flash_volume(b), this.html.video.gate || this.html.audio.gate || (this._updatevolume(b), this._trigger(a.jplayer.event.volumechange))
},
volumebar: function(b) {
if (this.css.jq.volumebar.length) {
var c = a(b.currenttarget),
d = c.offset(),
e = b.pagex - d.left,
f = c.width(),
g = c.height() - b.pagey + d.top,
h = c.height();
this.volume(this.options.verticalvolume ? g / h : e / f)
}
this.options.muted && this._muted(!1)
},
_updatevolume: function(a) {
a === b && (a = this.options.volume), a = this.options.muted ? 0 : a, this.status.novolume ? (this.addstateclass("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.removestateclass("novolume"), 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(b) {
var c = this;
this.options.cssselectorancestor = b, this._removeuiclass(), this.ancestorjq = b ? a(b) : [], b && 1 !== this.ancestorjq.length && this._warning({
type: a.jplayer.warning.css_selector_count,
context: b,
message: a.jplayer.warningmsg.css_selector_count + this.ancestorjq.length + " found for cssselectorancestor.",
hint: a.jplayer.warninghint.css_selector_count
}), this._adduiclass(), a.each(this.options.cssselector, function(a, b) {
c._cssselector(a, b)
}), this._updateinterface(), this._updatebuttons(), this._updateautohide(), this._updatevolume(), this._updatemute()
},
_cssselector: function(b, c) {
var d = this;
if ("string" == typeof c)
if (a.jplayer.prototype.options.cssselector[b]) {
if (this.css.jq[b] && this.css.jq[b].length && this.css.jq[b].unbind(".jplayer"), this.options.cssselector[b] = c, this.css.cs[b] = this.options.cssselectorancestor + " " + c, this.css.jq[b] = c ? a(this.css.cs[b]) : [], this.css.jq[b].length && this[b]) {
var e = function(c) {
c.preventdefault(), d[b](c), d.options.autoblur ? a(this).blur() : a(this).focus()
};
this.css.jq[b].bind("click.jplayer", e)
}
c && 1 !== this.css.jq[b].length && this._warning({
type: a.jplayer.warning.css_selector_count,
context: this.css.cs[b],
message: a.jplayer.warningmsg.css_selector_count + this.css.jq[b].length + " found for " + b + " method.",
hint: a.jplayer.warninghint.css_selector_count
})
} else this._warning({
type: a.jplayer.warning.css_selector_method,
context: b,
message: a.jplayer.warningmsg.css_selector_method,
hint: a.jplayer.warninghint.css_selector_method
});
else this._warning({
type: a.jplayer.warning.css_selector_string,
context: c,
message: a.jplayer.warningmsg.css_selector_string,
hint: a.jplayer.warninghint.css_selector_string
})
},
duration: function(a) {
this.options.toggleduration && (this.options.captureduration && a.stoppropagation(), this._setoption("remainingduration", !this.options.remainingduration))
},
seekbar: function(b) {
if (this.css.jq.seekbar.length) {
var c = a(b.currenttarget),
d = c.offset(),
e = b.pagex - d.left,
f = c.width(),
g = 100 * e / f;
this.playhead(g)
}
},
playbackrate: function(a) {
this._setoption("playbackrate", a)
},
playbackratebar: function(b) {
if (this.css.jq.playbackratebar.length) {
var c, d, e = a(b.currenttarget),
f = e.offset(),
g = b.pagex - f.left,
h = e.width(),
i = e.height() - b.pagey + f.top,
j = e.height();
c = this.options.verticalplaybackrate ? i / j : g / h, d = c * (this.options.maxplaybackrate - this.options.minplaybackrate) + this.options.minplaybackrate, this.playbackrate(d)
}
},
_updateplaybackrate: function() {
var a = this.options.playbackrate,
b = (a - 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 * b + "%"))) : (this.css.jq.playbackratebar.length && this.css.jq.playbackratebar.hide(), this.css.jq.playbackratebarvalue.length && this.css.jq.playbackratebarvalue.hide())
},
repeat: function(a) {
var b = "object" == typeof a;
this._loop(b && this.options.usestateclassskin && this.options.loop ? !1 : !0)
},
repeatoff: function() {
this._loop(!1)
},
_loop: function(b) {
this.options.loop !== b && (this.options.loop = b, this._updatebuttons(), this._trigger(a.jplayer.event.repeat))
},
option: function(c, d) {
var e = c;
if (0 === arguments.length) return a.extend(!0, {}, this.options);
if ("string" == typeof c) {
var f = c.split(".");
if (d === b) {
for (var g = a.extend(!0, {}, this.options), h = 0; h < f.length; h++) {
if (g[f[h]] === b) return this._warning({
type: a.jplayer.warning.option_key,
context: c,
message: a.jplayer.warningmsg.option_key,
hint: a.jplayer.warninghint.option_key
}), b;
g = g[f[h]]
}
return g
}
e = {};
for (var i = e, j = 0; j < f.length; j++) j < f.length - 1 ? (i[f[j]] = {}, i = i[f[j]]) : i[f[j]] = d
}
return this._setoptions(e), this
},
_setoptions: function(b) {
var c = this;
return a.each(b, function(a, b) {
c._setoption(a, b)
}), this
},
_setoption: function(b, c) {
var d = this;
switch (b) {
case "volume":
this.volume(c);
break;
case "muted":
this._muted(c);
break;
case "globalvolume":
this.options[b] = c;
break;
case "cssselectorancestor":
this._cssselectorancestor(c);
break;
case "cssselector":
a.each(c, function(a, b) {
d._cssselector(a, b)
});
break;
case "playbackrate":
this.options[b] = 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[b] = 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[b] = c = this._limitvalue(c, .1, this.options.maxplaybackrate - .1), this._updateplaybackrate();
break;
case "maxplaybackrate":
this.options[b] = c = this._limitvalue(c, this.options.minplaybackrate + .1, 16), this._updateplaybackrate();
break;
case "fullscreen":
if (this.options[b] !== c) {
var e = a.jplayer.nativefeatures.fullscreen.used.webkitvideo;
(!e || e && !this.status.waitforplay) && (e || (this.options[b] = c), c ? this._requestfullscreen() : this._exitfullscreen(), e || this._setoption("fullwindow", c))
}
break;
case "fullwindow":
this.options[b] !== c && (this._removeuiclass(), this.options[b] = c, this._refreshsize());
break;
case "size":
this.options.fullwindow || this.options[b].cssclass === c.cssclass || this._removeuiclass(), this.options[b] = a.extend({}, this.options[b], c), this._refreshsize();
break;
case "sizefull":
this.options.fullwindow && this.options[b].cssclass !== c.cssclass && this._removeuiclass(), this.options[b] = a.extend({}, this.options[b], c), this._refreshsize();
break;
case "autohide":
this.options[b] = a.extend({}, this.options[b], c), this._updateautohide();
break;
case "loop":
this._loop(c);
break;
case "remainingduration":
this.options[b] = c, this._updateinterface();
break;
case "toggleduration":
this.options[b] = c;
break;
case "nativevideocontrols":
this.options[b] = a.extend({}, this.options[b], c), this.status.nativevideocontrols = this._uablocklist(this.options.nativevideocontrols), this._restrictnativevideocontrols(), this._updatenativevideocontrols();
break;
case "nofullwindow":
this.options[b] = a.extend({}, this.options[b], 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[b] = a.extend({}, this.options[b], c), this.status.novolume = this._uablocklist(this.options.novolume), this._updatevolume(), this._updatemute();
break;
case "emulatehtml":
this.options[b] !== c && (this.options[b] = c, c ? this._emulatehtmlbridge() : this._destroyhtmlbridge());
break;
case "timeformat":
this.options[b] = a.extend({}, this.options[b], c);
break;
case "keyenabled":
this.options[b] = c, c || this !== a.jplayer.focus || (a.jplayer.focus = null);
break;
case "keybindings":
this.options[b] = a.extend(!0, {}, this.options[b], c);
break;
case "audiofullscreen":
this.options[b] = c;
break;
case "autoblur":
this.options[b] = c
}
return this
},
_refreshsize: function() {
this._setsize(), this._adduiclass(), this._updatesize(), this._updatebuttons(), this._updateautohide(), this._trigger(a.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,
b = "mousemove.jplayer",
c = ".jplayerautohide",
d = b + c,
e = function(b) {
var c, d, e = !1;
"undefined" != typeof a.internal.mouse ? (c = a.internal.mouse.x - b.pagex, d = a.internal.mouse.y - b.pagey, e = math.floor(c) > 0 || math.floor(d) > 0) : e = !0, a.internal.mouse = {
x: b.pagex,
y: b.pagey
}, e && 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), delete this.internal.mouse, this.element.unbind(c), this.css.jq.gui.unbind(c), 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(d, e), this.css.jq.gui.bind(d, e), this.css.jq.gui.hide()) : this.css.jq.gui.show())
},
fullscreen: function(a) {
var b = "object" == typeof a;
b && this.options.usestateclassskin && this.options.fullscreen ? this._setoption("fullscreen", !1) : this._setoption("fullscreen", !0)
},
restorescreen: function() {
this._setoption("fullscreen", !1)
},
_fullscreenaddeventlisteners: function() {
var b = this,
c = a.jplayer.nativefeatures.fullscreen;
c.api.fullscreenenabled && c.event.fullscreenchange && ("function" != typeof this.internal.fullscreenchangehandler && (this.internal.fullscreenchangehandler = function() {
b._fullscreenchange()
}), document.addeventlistener(c.event.fullscreenchange, this.internal.fullscreenchangehandler, !1))
},
_fullscreenremoveeventlisteners: function() {
var b = a.jplayer.nativefeatures.fullscreen;
this.internal.fullscreenchangehandler && document.removeeventlistener(b.event.fullscreenchange, this.internal.fullscreenchangehandler, !1)
},
_fullscreenchange: function() {
this.options.fullscreen && !a.jplayer.nativefeatures.fullscreen.api.fullscreenelement() && this._setoption("fullscreen", !1)
},
_requestfullscreen: function() {
var b = this.ancestorjq.length ? this.ancestorjq[0] : this.element[0],
c = a.jplayer.nativefeatures.fullscreen;
c.used.webkitvideo && (b = this.htmlelement.video), c.api.fullscreenenabled && c.api.requestfullscreen(b)
},
_exitfullscreen: function() {
var b, c = a.jplayer.nativefeatures.fullscreen;
c.used.webkitvideo && (b = this.htmlelement.video), c.api.fullscreenenabled && c.api.exitfullscreen(b)
},
_html_initmedia: function(b) {
var c = a(this.htmlelement.media).empty();
a.each(b.track || [], function(a, b) {
var d = document.createelement("track");
d.setattribute("kind", b.kind ? b.kind : ""), d.setattribute("src", b.src ? b.src : ""), d.setattribute("srclang", b.srclang ? b.srclang : ""), d.setattribute("label", b.label ? b.label : ""), b.def && d.setattribute("default", b.def), c.append(d)
}), this.htmlelement.media.src = this.status.src, "none" !== this.options.preload && this._html_load(), this._trigger(a.jplayer.event.timeupdate)
},
_html_setformat: function(b) {
var c = this;
a.each(this.formats, function(a, d) {
return c.html.support[d] && b[d] ? (c.status.src = b[d], c.status.format[d] = !0, c.status.formattype = d, !1) : void 0
})
},
_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,
c = this.htmlelement.media;
if (this.androidfix.pause = !1, this._html_load(), this.androidfix.setmedia) this.androidfix.play = !0, this.androidfix.time = a;
else if (isnan(a)) c.play();
else {
this.internal.cmdsignored && c.play();
try {
if (c.seekable && !("object" == typeof c.seekable && c.seekable.length > 0)) throw 1;
c.currenttime = a, c.play()
} catch (d) {
return void(this.internal.htmldlycmdid = settimeout(function() {
b.play(a)
}, 250))
}
}
this._html_checkwaitforplay()
},
_html_pause: function(a) {
var b = this,
c = this.htmlelement.media;
if (this.androidfix.play = !1, a > 0 ? this._html_load() : cleartimeout(this.internal.htmldlycmdid), c.pause(), this.androidfix.setmedia) this.androidfix.pause = !0, this.androidfix.time = a;
else if (!isnan(a)) try {
if (c.seekable && !("object" == typeof c.seekable && c.seekable.length > 0)) throw 1;
c.currenttime = a
} catch (d) {
return void(this.internal.htmldlycmdid = settimeout(function() {
b.pause(a)
}, 250))
}
a > 0 && this._html_checkwaitforplay()
},
_html_playhead: function(a) {
var b = this,
c = this.htmlelement.media;
this._html_load();
try {
if ("object" == typeof c.seekable && c.seekable.length > 0) c.currenttime = a * c.seekable.end(c.seekable.length - 1) / 100;
else {
if (!(c.duration > 0) || isnan(c.duration)) throw "e";
c.currenttime = a * c.duration / 100
}
} catch (d) {
return void(this.internal.htmldlycmdid = settimeout(function() {
b.playhead(a)
}, 250))
}
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)
},
_aurora_setaudio: function(b) {
var c = this;
a.each(this.formats, function(a, d) {
return c.aurora.support[d] && b[d] ? (c.status.src = b[d], c.status.format[d] = !0, c.status.formattype = d, !1) : void 0
}), this.aurora.player = new av.player.fromurl(this.status.src), this._addauroraeventlisteners(this.aurora.player, this.aurora), "auto" === this.options.preload && (this._aurora_load(), this.status.waitforload = !1)
},
_aurora_resetmedia: function() {
this.aurora.player && this.aurora.player.stop()
},
_aurora_clearmedia: function() {},
_aurora_load: function() {
this.status.waitforload && (this.status.waitforload = !1, this.aurora.player.preload())
},
_aurora_play: function(b) {
this.status.waitforload || isnan(b) || this.aurora.player.seek(b), this.aurora.player.playing || this.aurora.player.play(), this.status.waitforload = !1, this._aurora_checkwaitforplay(), this._updatebuttons(!0), this._trigger(a.jplayer.event.play)
},
_aurora_pause: function(b) {
isnan(b) || this.aurora.player.seek(1e3 * b), this.aurora.player.pause(), b > 0 && this._aurora_checkwaitforplay(), this._updatebuttons(!1), this._trigger(a.jplayer.event.pause)
},
_aurora_playhead: function(a) {
this.aurora.player.duration > 0 && this.aurora.player.seek(a * this.aurora.player.duration / 100), this.status.waitforload || this._aurora_checkwaitforplay()
},
_aurora_checkwaitforplay: function() {
this.status.waitforplay && (this.status.waitforplay = !1)
},
_aurora_volume: function(a) {
this.aurora.player.volume = 100 * a
},
_aurora_mute: function(a) {
a ? (this.aurora.properties.lastvolume = this.aurora.player.volume, this.aurora.player.volume = 0) : this.aurora.player.volume = this.aurora.properties.lastvolume, this.aurora.properties.muted = a
},
_flash_setaudio: function(b) {
var c = this;
try {
a.each(this.formats, function(a, d) {
if (c.flash.support[d] && b[d]) {
switch (d) {
case "m4a":
case "fla":
c._getmovie().fl_setaudio_m4a(b[d]);
break;
case "mp3":
c._getmovie().fl_setaudio_mp3(b[d]);
break;
case "rtmpa":
c._getmovie().fl_setaudio_rtmp(b[d])
}
return c.status.src = b[d], c.status.format[d] = !0, c.status.formattype = d, !1
}
}), "auto" === this.options.preload && (this._flash_load(), this.status.waitforload = !1)
} catch (d) {
this._flasherror(d)
}
},
_flash_setvideo: function(b) {
var c = this;
try {
a.each(this.formats, function(a, d) {
if (c.flash.support[d] && b[d]) {
switch (d) {
case "m4v":
case "flv":
c._getmovie().fl_setvideo_m4v(b[d]);
break;
case "rtmpv":
c._getmovie().fl_setvideo_rtmp(b[d])
}
return c.status.src = b[d], c.status.format[d] = !0, c.status.formattype = d, !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(0 / 0)
},
_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)
}
a > 0 && (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, b = 0;
if (window.activexobject) try {
if (a = new activexobject("shockwaveflash.shockwaveflash")) {
var c = a.getvariable("$version");
c && (c = c.split(" ")[1].split(","), b = parseint(c[0], 10) + "." + parseint(c[1], 10))
}
} catch (d) {} else navigator.plugins && navigator.mimetypes.length > 0 && (a = navigator.plugins["shockwave flash"], a && (b = navigator.plugins["shockwave flash"].description.replace(/.*\s(\d+\.\d+).*/, "$1")));
return 1 * b
},
_checkforflash: function(a) {
var b = !1;
return this._getflashpluginversion() >= a && (b = !0), b
},
_validstring: function(a) {
return a && "string" == typeof a
},
_limitvalue: function(a, b, c) {
return b > a ? b : a > c ? c : a
},
_urlnotseterror: function(b) {
this._error({
type: a.jplayer.error.url_not_set,
context: b,
message: a.jplayer.errormsg.url_not_set,
hint: a.jplayer.errorhint.url_not_set
})
},
_flasherror: function(b) {
var c;
c = this.internal.ready ? "flash_disabled" : "flash", this._error({
type: a.jplayer.error[c],
context: this.internal.flash.swf,
message: a.jplayer.errormsg[c] + b.message,
hint: a.jplayer.errorhint[c]
}), this.internal.flash.jq.css({
width: "1px",
height: "1px"
})
},
_error: function(b) {
this._trigger(a.jplayer.event.error, b), this.options.erroralerts && this._alert("error!" + (b.message ? "\n" + b.message : "") + (b.hint ? "\n" + b.hint : "") + "\ncontext: " + b.context)
},
_warning: function(c) {
this._trigger(a.jplayer.event.warning, b, c), this.options.warningalerts && this._alert("warning!" + (c.message ? "\n" + c.message : "") + (c.hint ? "\n" + c.hint : "") + "\ncontext: " + c.context)
},
_alert: function(a) {
var b = "jplayer " + this.version.script + " : id='" + this.internal.self.id + "' : " + a;
this.options.consolealerts ? window.console && window.console.log && window.console.log(b) : alert(b)
},
_emulatehtmlbridge: function() {
var b = this;
a.each(a.jplayer.emulatemethods.split(/\s+/g), function(a, c) {
b.internal.domnode[c] = function(a) {
b[c](a)
}
}), a.each(a.jplayer.event, function(c, d) {
var e = !0;
a.each(a.jplayer.reservedevent.split(/\s+/g), function(a, b) {
return b === c ? (e = !1, !1) : void 0
}), e && b.element.bind(d + ".jplayer.jplayerhtml", function() {
b._emulatehtmlupdate();
var a = document.createevent("event");
a.initevent(c, !1, !0), b.internal.domnode.dispatchevent(a)
})
})
},
_emulatehtmlupdate: function() {
var b = this;
a.each(a.jplayer.emulatestatus.split(/\s+/g), function(a, c) {
b.internal.domnode[c] = b.status[c]
}), a.each(a.jplayer.emulateoptions.split(/\s+/g), function(a, c) {
b.internal.domnode[c] = b.options[c]
})
},
_destroyhtmlbridge: function() {
var b = this;
this.element.unbind(".jplayerhtml");
var c = a.jplayer.emulatemethods + " " + a.jplayer.emulatestatus + " " + a.jplayer.emulateoptions;
a.each(c.split(/\s+/g), function(a, c) {
delete b.internal.domnode[c]
})
}
}, a.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"
}, a.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 " + a.jplayer.prototype.version.script + " needs jplayer.swf version " + a.jplayer.prototype.version.needflash + " but found "
}, a.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."
}, a.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"
}, a.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."
}, a.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."
}
});