Вход Регистрация
Файл: CloudBox-main/CloudBox/admin_assets/js/media-player/jquery.jplayer.min.js
Строк: 2191
<?php
/*
 * jPlayer Plugin for jQuery JavaScript Library
 * http://www.jplayer.org
 *
 * Copyright (c) 2009 - 2014 Happyworm Ltd
 * Licensed under the MIT license.
 * http://opensource.org/licenses/MIT
 *
 * Author: Mark J Panaghiston
 * Version: 2.6.0
 * Date: 2nd April 2014
 */

(function (bf) {
    
"function" === typeof define && define.amd define(["jquery"], f) : b.jQuery f(b.jQuery) : f(b.Zepto)
})(
this, function (bf) {
    
b.fn.jPlayer = function (a) {
        var 
"string" === typeof a= Array.prototype.slice.call(arguments1), this;
        
= !&& d.length b.extend.apply(null, [!0a].concat(d)) : a;
        if (
&& "_" === a.charAt(0))return e;
        
this.each(function () {
            var 
b(this).data("jPlayer"), && b.isFunction(c[a]) ? c[a].apply(cd) : c;
            if (
!== && !== f)return h, !1
        
}) : this.each(function () {
            var 
b(this).data("jPlayer");
            
c.option(||
            {}) : 
b(this).data("jPlayer", new b.jPlayer(athis))
        });
        return 
e
    
};
    
b.jPlayer = function (ac) {
        if (
arguments.length) {
            
this.element b(c);
            
this.options b.extend(!0, {}, this.optionsa);
            var 
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 (ac) {
            
c.data("jPlayer").status.srcSet && c.jPlayer("pause")
        })
    };
    
b.jPlayer.timeFormat = {showHour: !1showMin: !0showSec: !0padHour: !1padMin: !0padSec: !0sepHour":"sepMin":"sepSec""};
    var 
= function () {
        
this.init()
    };
    
l.prototype = {init: function () {
        
this.options = {timeFormatb.jPlayer.timeFormat}
    }, 
time: function (a) {
        var 
= new Date(1E3 * (&& "number" === typeof a 0)), c.getUTCHours();
        
this.options.timeFormat.showHour c.getUTCMinutes() : c.getUTCMinutes() +
            
60 b;
        
this.options.timeFormat.showMin c.getUTCSeconds() : c.getUTCSeconds() + 60 a;
        
this.options.timeFormat.padHour && 10 "0" b;
        
this.options.timeFormat.padMin && 10 "0" a;
        
this.options.timeFormat.padSec && 10 "0" c;
        
"" + (this.options.timeFormat.showHour this.options.timeFormat.sepHour "");
        
+= this.options.timeFormat.showMin this.options.timeFormat.sepMin "";
        return 
+= this.options.timeFormat.showSec this.options.timeFormat.sepSec ""
    
}};
    var 
= new l;
    
b.jPlayer.convertTime = function (a) {
        return 
n.time(a)
    };
    
b.jPlayer.uaBrowser = function (a) {
        
a.toLowerCase();
        var 
= /(opera)(?:.*version)?[ /]([w.]+)/, = /(msie) ([w.]+)/, = /(mozilla)(?:.*? rv:([w.]+))?/;
        
= /(webkit)[ /]([w.]+)/.exec(a) || c.exec(a) || b.exec(a) || a.indexOf("compatible") && e.exec(a) || [];
        return{
browsera[1] || ""versiona[2] || "0"}
    };
    
b.jPlayer.uaPlatform = function (a) {
        var 
a.toLowerCase(), = /(android)/, = /(mobile)/;
        
= /(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/.exec(c) || [];
        
= /(ipad|playbook)/.exec(c) || !e.exec(c) && b.exec(c) ||
            [];
        
a[1] && (a[1] = a[1].replace(/s/g"_"));
        return{
platforma[1] || ""tabletc[1] || ""}
    };
    
b.jPlayer.browser = {};
    
b.jPlayer.platform = {};
    var 
b.jPlayer.uaBrowser(navigator.userAgent);
    
k.browser && (b.jPlayer.browser[k.browser] = !0b.jPlayer.browser.version k.version);
    
b.jPlayer.uaPlatform(navigator.userAgent);
    
k.platform && (b.jPlayer.platform[k.platform] = !0b.jPlayer.platform.mobile = !k.tabletb.jPlayer.platform.tablet = !!k.tablet);
    
b.jPlayer.getDocMode = function () {
        var 
a;
        
b.jPlayer.browser.msie && (document.documentMode ?
            
document.documentMode : (5document.compatMode && "CSS1Compat" === document.compatMode && (7)));
        return 
a
    
};
    
b.jPlayer.browser.documentMode b.jPlayer.getDocMode();
    
b.jPlayer.nativeFeatures = {init: function () {
        var 
documenta.createElement("video"), = {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(" ")}, = ["w3c""moz""webkit""webkitVideo"], gh;
        
this.fullscreen = {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: {}};
        
0;
        for (
e.lengthhg++) {
            var 
e[g];
            if (
c.support[f]) {
                
c.spec =
                    
f;
                
c.used[f] = !0;
                break
            }
        }
        if (
c.spec) {
            var 
b[c.spec];
            
c.api = {fullscreenEnabled: !0fullscreenElement: function (c) {
                
a;
                return 
c[m[1]]
            }, 
requestFullscreen: function (a) {
                return 
a[m[2]]()
            }, 
exitFullscreen: function (c) {
                
a;
                return 
c[m[3]]()
            }};
            
c.event = {fullscreenchangem[4], fullscreenerrorm[5]}
        } else 
c.api = {fullscreenEnabled: !1fullscreenElement: function () {
            return 
null
        
}, requestFullscreen: function () {
        }, 
exitFullscreen: function () {
        }}, 
c.event = {}
    }};
    
b.jPlayer.nativeFeatures.init();
    
b.jPlayer.focus null;
    
b.jPlayer.keyIgnoreElementNames =
        
"INPUT TEXTAREA";
    var 
= function (a) {
        var 
b.jPlayer.focusd;
        
&& (b.each(b.jPlayer.keyIgnoreElementNames.split(/s+/g), function (cb) {
            if (
a.target.nodeName.toUpperCase() === b.toUpperCase())return = !0, !1
        
}), || b.each(c.options.keyBindings, function (dg) {
            if (
&& 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");
        
&& b(document.documentElement).bind("keydown.jPlayer"p)
    };
    
b.jPlayer.keys(!0);
    
b.jPlayer.prototype =
    {
count0version: {script"2.6.0"needFlash"2.6.0"flash"unknown"}, options: {swfPath"js"solution"html, flash"supplied"mp3"preload"metadata"volume0.8muted: !1remainingDuration: !1toggleDuration: !1playbackRate1defaultPlaybackRate1minPlaybackRate0.5maxPlaybackRate4wmode"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: !1fullScreen: !1fullWindow: !1autohide: {restored: !1full: !0,
        
fadeIn200fadeOut600hold1E3}, loop: !1repeat: 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: !1audioFullScreen: !1keyBindings: {play: {key32fn: function (a) {
            
a.status.paused a.play() : a.pause()
        }}, 
fullScreen: {key13fn: function (a) {
            (
a.status.video || a.options.audioFullScreen) && a._setOption("fullScreen", !a.options.fullScreen)
        }}, 
muted: {key8fn: function (a) {
            
a._muted(!a.options.muted)
        }},
            
volumeUp: {key38fn: function (a) {
                
a.volume(a.options.volume 0.1)
            }}, 
volumeDown: {key40fn: function (a) {
                
a.volume(a.options.volume 0.1)
            }}}, 
verticalVolume: !1verticalPlaybackRate: !1globalVolume: !1idPrefix"jp"noConflict"jQuery"emulateHtml: !1consoleAlerts: !0errorAlerts: !1warningAlerts: !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: !0format: {}, formatType""waitForPlay: !0waitForLoad: !0srcSet: !1video: !1seekPercent0currentPercentRelative0currentPercentAbsolute0currentTime0duration0remaining0videoWidth0videoHeight0readyState0networkState0playbackRate1ended0}, internal: {ready: !1}, solution: {html: !0flash: !0}, format: {mp3: {codec'audio/mpeg; codecs="mp3"'flashCanPlay: !0media"audio"}, m4a: {codec'audio/mp4; codecs="mp4a.40.2"'flashCanPlay: !0,
        
media"audio"}, m3u8a: {codec'application/vnd.apple.mpegurl; codecs="mp4a.40.2"'flashCanPlay: !1media"audio"}, m3ua: {codec"audio/mpegurl"flashCanPlay: !1media"audio"}, oga: {codec'audio/ogg; codecs="vorbis, opus"'flashCanPlay: !1media"audio"}, flac: {codec"audio/x-flac"flashCanPlay: !1media"audio"}, wav: {codec'audio/wav; codecs="1"'flashCanPlay: !1media"audio"}, webma: {codec'audio/webm; codecs="vorbis"'flashCanPlay: !1media"audio"}, fla: {codec"audio/x-flv"flashCanPlay: !0media"audio"},
        
rtmpa: {codec'audio/rtmp; codecs="rtmp"'flashCanPlay: !0media"audio"}, m4v: {codec'video/mp4; codecs="avc1.42E01E, mp4a.40.2"'flashCanPlay: !0media"video"}, m3u8v: {codec'application/vnd.apple.mpegurl; codecs="avc1.42E01E, mp4a.40.2"'flashCanPlay: !1media"video"}, m3uv: {codec"audio/mpegurl"flashCanPlay: !1media"video"}, ogv: {codec'video/ogg; codecs="theora, vorbis"'flashCanPlay: !1media"video"}, webmv: {codec'video/webm; codecs="vorbis, vp8"'flashCanPlay: !1media"video"}, flv: {codec"video/x-flv",
            
flashCanPlay: !0media"video"}, rtmpv: {codec'video/rtmp; codecs="rtmp"'flashCanPlay: !0media"video"}}, _init: function () {
        var 
this;
        
this.element.empty();
        
this.status b.extend({}, this.status);
        
this.internal b.extend({}, this.internal);
        
this.options.timeFormat b.extend({}, b.jPlayer.timeFormatthis.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: !1play: !1pause: !1timeNaN};
        
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.volume01);
        
b.each(this.options.supplied.toLowerCase().split(","), function (cd) {
            var 
d.replace(/^s+|s+$/g,
                
"");
            if (
a.format[e]) {
                var 
= !1;
                
b.each(a.formats, function (ac) {
                    if (
=== c)return = !0, !1
                
});
                
|| a.formats.push(e)
            }
        });
        
b.each(this.options.solution.toLowerCase().split(","), function (cd) {
            var 
d.replace(/^s+|s+$/g"");
            if (
a.solution[e]) {
                var 
= !1;
                
b.each(a.solutions, function (ac) {
                    if (
=== c)return = !0, !1
                
});
                
|| 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({}, {idthis.element.attr("id"), jqthis.element});
        
this.internal.audio b.extend({}, {idthis.options.idPrefix "_audio_" this.countjqf});
        
this.internal.video b.extend({}, {idthis.options.idPrefix "_video_" this.countjqf});
        
this.internal.flash b.extend({}, {idthis.options.idPrefix "_flash_" this.countjqfswfthis.options.swfPath + (".swf" !== this.options.swfPath.toLowerCase().slice(-4) ? (this.options.swfPath && "/" !== this.options.swfPath.slice(-1) ? "/" "") + "Jplayer.swf" "")});
        
this.internal.poster b.extend({}, {idthis.options.idPrefix "_poster_" this.countjqf});
        
b.each(b.jPlayer.event, function (cb) {
            
a.options[c] !== && (a.element.bind(".jPlayer"a.options[c]), a.options[c] = f)
        });
        
this.require.audio = !1;
        
this.require.video = !1;
        
b.each(this.formats, function (cb) {
            
a.require[a.format[b].media] = !0
        
});
        
this.options this.require.video b.extend(!0, {}, this.optionsVideothis.options) : b.extend(!0, {}, this.optionsAudiothis.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({widththis.status.widthheightthis.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.idthis.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.idthis.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 (cb) {
            
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 (cd) {
            if (
=== c)a[d].desired = !0; else {
                var 
= !1= !1;
                
b.each(a.formats, function (cb) {
                    
a[a.solutions[0]].canPlay[b] && ("video" === a.format[b].media = != !0)
                });
                
a[d].desired a.require.audio && !|| a.require.video && !f
            
}
        });
        
this.html.support = {};
        
this.flash.support = {};
        
b.each(this.formats, function (cb) {
            
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 (cd) {
            
b.each(a.formats, function (cb) {
                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({typeb.jPlayer.error.NO_SOLUTIONcontext"{solution:'" this.options.solution "', supplied:'" this.options.supplied "'}"messageb.jPlayer.errorMsg.NO_SOLUTION,
            
hintb.jPlayer.errorHint.NO_SOLUTION}), this.css.jq.noSolution.length && this.css.jq.noSolution.show());
        if (
this.flash.used) {
            var 
c"jQuery=" encodeURI(this.options.noConflict) + "&id=" encodeURI(this.internal.self.id) + "&vol=" this.options.volume "&muted=" this.options.muted;
            if (
b.jPlayer.browser.msie && (Number(b.jPlayer.browser.version) || b.jPlayer.browser.documentMode)) {
                
= ['<param name="movie" value="' this.internal.flash.swf '" />''<param name="FlashVars" value="' '" />''<param name="allowScriptAccess" value="always" />',
                    
'<param name="bgcolor" value="' this.options.backgroundColor '" />''<param name="wmode" value="' this.options.wmode '" />'];
                
document.createElement('<object id="' this.internal.flash.id '" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="0" height="0" tabindex="-1"></object>');
                for (var 
0d.lengthe++)c.appendChild(document.createElement(d[e]))
            } else 
= function (acb) {
                var 
document.createElement("param");
                
d.setAttribute("name"c);
                
d.setAttribute("value"b);
                
a.appendChild(d)
            }, 
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.audiothis.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.videothis.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({widththis.status.widthheightthis.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 (ac) {
            
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) {
        
document.createElement("string" === typeof a "audio");
        try {
            return
"playbackRate"in a ? (a.playbackRate 0.50.5 === a.playbackRate) : !1
        
} catch (c) {
            return!
1
        
}
    },
        
_uaBlocklist: function (a) {
            var 
navigator.userAgent.toLowerCase(), = !1;
            
b.each(a, function (ab) {
                if (
&& b.test(c))return = !0, !1
            
});
            return 
d
        
}, _restrictNativeVideoControls: function () {
        
this.require.audio && this.status.nativeVideoControls && (this.status.nativeVideoControls = !1this.status.noFullWindow = !0)
    }, 
_updateNativeVideoControls: function () {
        
this.html.video.available && this.html.used && (this.htmlElement.video.controls this.status.nativeVideoControlsthis._updateAutohide(), this.status.nativeVideoControls && this.require.video ?
            (
this.internal.poster.jq.hide(), this.internal.video.jq.css({widththis.status.widthheightthis.status.height})) : this.status.waitForPlay && this.status.video && (this.internal.poster.jq.show(), this.internal.video.jq.css({width"0px"height"0px"})))
    }, 
_addHtmlEventListeners: function (ac) {
        var 
this;
        
a.preload this.options.preload;
        
a.muted this.options.muted;
        
a.volume this.options.volume;
        
this.status.playbackRateEnabled && (a.defaultPlaybackRate this.options.defaultPlaybackRatea.playbackRate this.options.playbackRate);
        
a.addEventListener("progress", function () {
            
c.gate && (d.internal.cmdsIgnored && this.readyState && (d.internal.cmdsIgnored = !1), d.androidFix.setMedia = !1d.androidFix.play && (d.androidFix.play = !1d.play(d.androidFix.time)), d.androidFix.pause && (d.androidFix.pause = !1d.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.volumed.options.muted a.mutedd._updateMute(), d._updateVolume(), d._trigger(b.jPlayer.event.volumechange))
        }, !
1);
        
a.addEventListener("ratechange",
            function () {
                
c.gate && (d.options.defaultPlaybackRate a.defaultPlaybackRated.options.playbackRate a.playbackRated._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 = !0d.status.waitForPlay = !0d.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({typeb.jPlayer.error.URLcontextd.status.srcmessageb.jPlayer.errorMsg.URL,
                
hintb.jPlayer.errorHint.URL})))
        }, !
1);
        
b.each(b.jPlayer.htmlEvent, function (eg) {
            
a.addEventListener(this, function () {
                
c.gate && d._trigger(b.jPlayer.event[g])
            }, !
1)
        })
    }, 
_getHtmlStatus: function (ac) {
        var 
0000;
        
isFinite(a.duration) && (this.status.duration a.duration);
        
a.currentTime;
        
this.status.duration 100 this.status.duration 0;
        
"object" === typeof a.seekable && a.seekable.length ? (this.status.duration 100 a.seekable.end(a.seekable.length 1) / this.status.duration 100this.status.duration ?
            
100 a.currentTime a.seekable.end(a.seekable.length 1) : 0) : (100e);
        
&& (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.statusb.jPlayer.prototype.status)
    }, 
_trigger: function (acd) {
        
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);
        
&& (a.jPlayer.error b.extend({}, c));
        
&& (a.jPlayer.warning b.extend({}, d));
        
this.element.trigger(a)
    }, 
jPlayerFlashEvent: function (ac) {
        if (
=== b.jPlayer.event.ready)if (!this.internal.ready)this.internal.ready = !0this.internal.flash.jq.css({width"0px"height"0px"}), this.version.flash c.versionthis.version.needFlash !== this.version.flash && this._error({typeb.jPlayer.error.VERSIONcontextthis.version.flashmessageb.jPlayer.errorMsg.VERSION this.version.flashhintb.jPlayer.errorHint.VERSION}), this._trigger(b.jPlayer.event.repeat), this._trigger(a); else if (this.flash.gate) {
            if (
this.status.srcSet) {
                var 
this.status.currentTimethis.status.paused;
                
this.setMedia(this.status.media);
                
this.volumeWorker(this.options.volume);
                
&& (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({typeb.jPlayer.error.URLcontextc.srcmessageb.jPlayer.errorMsg.URLhintb.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) {
        
=== = !this.status.paused this.status.paused = !a;
        
this.css.jq.play.length && this.css.jq.pause.length && (? (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({widththis.status.currentPercentAbsolute "%"}, 250"linear") : this.css.jq.playBar.width(this.status.currentPercentRelative "%"));
            var 
"";
            
this.css.jq.currentTime.length && (this._convertTime(this.status.currentTime), !== this.css.jq.currentTime.text() && this.css.jq.currentTime.text(this._convertTime(this.status.currentTime)));
            var 
""this.status.durationthis.status.remaining;
            
this.css.jq.duration.length && ("string" === typeof this.status.media.duration this.status.media.duration : ("number" === typeof this.status.media.duration && (this.status.media.durationthis.status.currentTime), this.options.remainingDuration ? ("-" "") + this._convertTime(c) : this._convertTime(a)), !== this.css.jq.duration.text() && this.css.jq.duration.text(a))
        }, 
_convertTimel.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("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&quot;")
    }, 
_qualifyURL: function (a) {
        var 
document.createElement("div");
        
c.innerHTML '<a href="' this._escapeHtml(a) + '">x</a>';
        return 
c.firstChild.href
    
},
        
_absoluteMediaUrls: function (a) {
            var 
this;
            
b.each(a, function (be) {
                
&& c.format[b] && (a[b] = c._qualifyURL(e))
            });
            return 
a
        
}, setMedia: function (a) {
        var 
this= !1this.status.media.poster !== a.poster;
        
this._resetMedia();
        
this._resetGate();
        
this._resetActive();
        
this.androidFix.setMedia = !1;
        
this.androidFix.play = !1;
        
this.androidFix.pause = !1;
        
this._absoluteMediaUrls(a);
        
b.each(this.formats, function (ef) {
            var 
"video" === c.format[f].media;
            
b.each(c.solutions, function (eg) {
                if (
c[g].support[f] && c._validString(a[f])) {
                    var 
=
                        
"html" === g;
                    
? (? (c.html.video.gate = !0c._html_setVideo(a), c.html.active = !0) : (c.flash.gate = !0c._flash_setVideo(a), c.flash.active = !0), c.css.jq.videoPlay.length && c.css.jq.videoPlay.show(), c.status.video = !0) : (? (c.html.audio.gate = !0c._html_setAudio(a), c.html.active = !0b.jPlayer.platform.android && (c.androidFix.setMedia = !0)) : (c.flash.gate = !0c._flash_setAudio(a), c.flash.active = !0), c.css.jq.videoPlay.length && c.css.jq.videoPlay.hide(), c.status.video = !1);
                    
= !0;
                    return!
1
                
}
            });
            if (
d)return!1
        
});
        
? (this.status.nativeVideoControls &&
            
this.html.video.gate || !this._validString(a.poster) || (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 = !0this.status.media b.extend({}, a), this._updateButtons(!1), this._updateInterface(), this._trigger(b.jPlayer.event.setmedia)) :
            
this._error({typeb.jPlayer.error.NO_SUPPORTcontext"{supplied:'" this.options.supplied "'}"messageb.jPlayer.errorMsg.NO_SUPPORThintb.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) {
        
"number" === typeof 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) {
            
"number" === typeof a NaN;
            
this.status.srcSet this.html.active this._html_pause(a) : this.flash.active && this._flash_pause(a) : this._urlNotSetError("pause")
        }, 
tellOthers: function (ac) {
        var 
this"function" === typeof c= Array.prototype.slice.call(arguments);
        
"string" === typeof a && (&& g.splice(11), b.each(this.instances, function () {
            
d.element !== this && (&& !c.call(this.data("jPlayer"), d) || this.jPlayer.apply(thisg))
        }))
    }, 
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) {
        
this._limitValue(a0100);
        
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;
        
this._muted(a)
    }, 
unmute: function (a) {
        
=== ? !: !!a;
        
this._muted(!a)
    }, 
_updateMute: function (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()) :
            
? (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) {
        
this._limitValue(a01);
        
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 
b(a.currentTarget), c.offset(), a.pageX d.leftc.width();
                
c.height() - a.pageY d.top;
                
c.height();
                
this.options.verticalVolume this.volume(c) : this.volume(g)
            }
            
this.options.muted && this._muted(!1)
        }, 
_updateVolume: function (a) {
        
=== && (this.options.volume);
        
this.options.muted 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 "%")), 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 
this;
        
this.options.cssSelectorAncestor a;
        
this._removeUiClass();
        
this.ancestorJq b(a) :
            [];
        
&& !== this.ancestorJq.length && this._warning({typeb.jPlayer.warning.CSS_SELECTOR_COUNTcontextamessageb.jPlayer.warningMsg.CSS_SELECTOR_COUNT this.ancestorJq.length " found for cssSelectorAncestor."hintb.jPlayer.warningHint.CSS_SELECTOR_COUNT});
        
this._addUiClass();
        
b.each(this.options.cssSelector, function (ab) {
            
c._cssSelector(ab)
        });
        
this._updateInterface();
        
this._updateButtons();
        
this._updateAutohide();
        
this._updateVolume();
        
this._updateMute()
    }, 
_cssSelector: function (ac) {
        var 
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] = cthis.css.cs[a] = this.options.cssSelectorAncestor " " cthis.css.jq[a] = 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()
            }), 
&& !== this.css.jq[a].length && this._warning({typeb.jPlayer.warning.CSS_SELECTOR_COUNTcontextthis.css.cs[a], messageb.jPlayer.warningMsg.CSS_SELECTOR_COUNT +
                
this.css.jq[a].length " found for " " method."hintb.jPlayer.warningHint.CSS_SELECTOR_COUNT})) : this._warning({typeb.jPlayer.warning.CSS_SELECTOR_METHODcontextamessageb.jPlayer.warningMsg.CSS_SELECTOR_METHODhintb.jPlayer.warningHint.CSS_SELECTOR_METHOD}) : this._warning({typeb.jPlayer.warning.CSS_SELECTOR_STRINGcontextcmessageb.jPlayer.warningMsg.CSS_SELECTOR_STRINGhintb.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 
b(a.currentTarget), c.offset();
            
a.pageX d.left;
            
c.width();
            
this.playHead(100 c)
        }
    }, 
playbackRate: function (a) {
        
this._setOption("playbackRate"a)
    }, 
playbackRateBar: function (a) {
        if (
this.css.jq.playbackRateBar.length) {
            var 
b(a.currentTarget), c.offset(), a.pageX d.leftc.width();
            
c.height() - a.pageY d.top;
            
c.height();
            
this.playbackRate((this.options.verticalPlaybackRate g) * (this.options.maxPlaybackRate -
                
this.options.minPlaybackRate) + this.options.minPlaybackRate)
        }
    }, 
_updatePlaybackRate: function () {
        var 
= (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 "%"))) : (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 !== && (this.options.loop athis._updateButtons(), this._trigger(b.jPlayer.event.repeat))
    }, 
option: function (ac) {
        var 
a;
        if (
=== arguments.length)return b.extend(!0, {}, this.options);
        if (
"string" === typeof a) {
            var 
a.split(".");
            if (
=== f) {
                for (var 
b.extend(!0, {}, this.options), 0e.lengthg++)if (d[e[g]] !==
                    
f)d[e[g]]; else return this._warning({typeb.jPlayer.warning.OPTION_KEYcontextamessageb.jPlayer.warningMsg.OPTION_KEYhintb.jPlayer.warningHint.OPTION_KEY}), f;
                return 
d
            
}
            for (var 
= {}, 0e.lengthh++)e.length ? (g[e[h]] = {}, g[e[h]]) : g[e[h]] = c
        
}
        
this._setOptions(d);
        return 
this
    
}, _setOptions: function (a) {
        var 
this;
        
b.each(a, function (ab) {
            
c._setOption(ab)
        });
        return 
this
    
}, _setOption: function (ac) {
        var 
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 (ac) {
                    
d._cssSelector(ac)
                });
                break;
            case 
"playbackRate":
                
this.options[a] = this._limitValue(cthis.options.minPlaybackRatethis.options.maxPlaybackRate);
                
this.html.used && this._html_setProperty("playbackRate"c);
                
this._updatePlaybackRate();
                break;
            case 
"defaultPlaybackRate":
                
this.options[a] = this._limitValue(cthis.options.minPlaybackRatethis.options.maxPlaybackRate);
                
this.html.used && this._html_setProperty("defaultPlaybackRate",
                    
c);
                
this._updatePlaybackRate();
                break;
            case 
"minPlaybackRate":
                
this.options[a] = this._limitValue(c0.1this.options.maxPlaybackRate 0.1);
                
this._updatePlaybackRate();
                break;
            case 
"maxPlaybackRate":
                
this.options[a] = this._limitValue(cthis.options.minPlaybackRate 0.116);
                
this._updatePlaybackRate();
                break;
            case 
"fullScreen":
                if (
this.options[a] !== c) {
                    var 
b.jPlayer.nativeFeatures.fullscreen.used.webkitVideo;
                    if (!
|| && !this.status.waitForPlay)|| (this.options[a] = c), this._requestFullscreen() : this._exitFullscreen(),
                        
|| this._setOption("fullWindow"c)
                }
                break;
            case 
"fullWindow":
                
this.options[a] !== && (this._removeUiClass(), this.options[a] = cthis._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] !== && ((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;
                
|| 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.widththis.status.height this.options.sizeFull.heightthis.status.cssClass this.options.sizeFull.cssClass) : (this.status.width this.options.size.widththis.status.height this.options.size.heightthis.status.cssClass this.options.size.cssClass);
        
this.element.css({widththis.status.widthheightthis.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({widththis.status.widthheightthis.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({widththis.status.widthheightthis.status.height}) : !this.status.waitForPlay && this.flash.active && this.status.video && this.internal.flash.jq.css({widththis.status.widthheightthis.status.height})
        }, 
_updateAutohide: function () {
        var 
this,
            
= 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 
thisb.jPlayer.nativeFeatures.fullscreen;
        
c.api.fullscreenEnabled && c.event.fullscreenchange && ("function" !== typeof this.internal.fullscreenchangeHandler &&
            (
this.internal.fullscreenchangeHandler = function () {
                
a._fullscreenchange()
            }), 
document.addEventListener(c.event.fullscreenchangethis.internal.fullscreenchangeHandler, !1))
    }, 
_fullscreenRemoveEventListeners: function () {
        var 
b.jPlayer.nativeFeatures.fullscreen;
        
this.internal.fullscreenchangeHandler && document.removeEventListener(a.event.fullscreenchangethis.internal.fullscreenchangeHandler, !1)
    }, 
_fullscreenchange: function () {
        
this.options.fullScreen && !b.jPlayer.nativeFeatures.fullscreen.api.fullscreenElement() &&
        
this._setOption("fullScreen", !1)
    }, 
_requestFullscreen: function () {
        var 
this.ancestorJq.length this.ancestorJq[0] : this.element[0], b.jPlayer.nativeFeatures.fullscreen;
        
c.used.webkitVideo && (this.htmlElement.video);
        
c.api.fullscreenEnabled && c.api.requestFullscreen(a)
    }, 
_exitFullscreen: function () {
        var 
b.jPlayer.nativeFeatures.fullscreenc;
        
a.used.webkitVideo && (this.htmlElement.video);
        
a.api.fullscreenEnabled && a.api.exitFullscreen(c)
    }, 
_html_initMedia: function (a) {
        var 
b(this.htmlElement.media).empty();
        
b.each(a.track || [], function (ab) {
            var 
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 
this;
        
b.each(this.formats, function (be) {
            if (
c.html.support[e] &&
                
a[e])return c.status.src a[e], c.status.format[e] = !0c.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 = !1this.htmlElement.media.load());
        
clearTimeout(this.internal.htmlDlyCmdId)
    }, 
_html_play: function (a) {
        var 
thisthis.htmlElement.media;
        
this.androidFix.pause = !1;
        
this._html_load();
        if (
this.androidFix.setMedia)this.androidFix.play = !0this.androidFix.time a; else if (isNaN(a))d.play(); else {
            
this.internal.cmdsIgnored && d.play();
            try {
                if (!
d.seekable || "object" === typeof d.seekable && d.seekable.length)d.currentTime ad.play(); else throw 1;
            } catch (
e) {
                
this.internal.htmlDlyCmdId setTimeout(function () {
                    
b.play(a)
                }, 
250);
                return
            }
        }
        
this._html_checkWaitForPlay()
    }, 
_html_pause: function (a) {
        var 
thisthis.htmlElement.media;
        
this.androidFix.play = !1;
        
this._html_load() : clearTimeout(this.internal.htmlDlyCmdId);
        
d.pause();
        if (
this.androidFix.setMedia)this.androidFix.pause = !0this.androidFix.time a; else if (!isNaN(a))try {
            if (!
d.seekable || "object" === typeof d.seekable && d.seekable.length)d.currentTime a; else throw 1;
        } catch (
e) {
            
this.internal.htmlDlyCmdId setTimeout(function () {
                
b.pause(a)
            }, 
250);
            return
        }
        
&& this._html_checkWaitForPlay()
    }, 
_html_playHead: function (a) {
        var 
thisthis.htmlElement.media;
        
this._html_load();
        try {
            if (
"object" === typeof d.seekable && d.seekable.length)d.currentTime d.seekable.end(d.seekable.length -
                
1) / 100; else if (d.duration && !isNaN(d.duration))d.currentTime 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 = !1this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), this.status.video && (this.internal.poster.jq.hide(), this.internal.video.jq.css({widththis.status.widthheightthis.status.height})))
    },
        
_html_setProperty: function (ab) {
            
this.html.audio.available && (this.htmlElement.audio[a] = b);
            
this.html.video.available && (this.htmlElement.video[a] = b)
        }, 
_flash_setAudio: function (a) {
        var 
this;
        try {
            
b.each(this.formats, function (bd) {
                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 
this;
        try {
            
b.each(this.formats, function (bd) {
                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)
        }
        
<
            
&& (this.status.waitForLoad = !1this._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 = !1this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), this.status.video && (this.internal.poster.jq.hide(), this.internal.flash.jq.css({widththis.status.widthheightthis.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 
0b;
        if (
window.ActiveXObject)try {
            if (
= new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) {
                var 
b.GetVariable("$version");
                
&& (d.split(" ")[1].split(","), parseInt(d[0], 10) + "." parseInt(d[1], 10))
            }
        } catch (
e) {
        } else 
navigator.plugins && navigator.mimeTypes.length && (navigator.plugins["Shockwave Flash"]) && (navigator.plugins["Shockwave Flash"].description.replace(/.*s(d+.d+).*/,
            
"$1"));
        return 
a
    
}, _checkForFlash: function (a) {
        var 
= !1;
        
this._getFlashPluginVersion() >= && (= !0);
        return 
b
    
}, _validString: function (a) {
        return 
&& "string" === typeof a
    
}, _limitValue: function (abd) {
        return 
a
    
}, _urlNotSetError: function (a) {
        
this._error({typeb.jPlayer.error.URL_NOT_SETcontextamessageb.jPlayer.errorMsg.URL_NOT_SEThintb.jPlayer.errorHint.URL_NOT_SET})
    }, 
_flashError: function (a) {
        var 
c;
        
this.internal.ready "FLASH_DISABLED" "FLASH";
        
this._error({typeb.jPlayer.error[c], contextthis.internal.flash.swf,
            
messageb.jPlayer.errorMsg[c] + a.messagehintb.jPlayer.errorHint[c]});
        
this.internal.flash.jq.css({width"1px"height"1px"})
    }, 
_error: function (a) {
        
this._trigger(b.jPlayer.event.errora);
        
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.warningfa);
        
this.options.warningAlerts && this._alert("Warning!" + (a.message "n" a.message "") + (a.hint "n" a.hint "") + "nContext: " a.context)
    },
        
_alert: function (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 
this;
        
b.each(b.jPlayer.emulateMethods.split(/s+/g), function (bd) {
            
a.internal.domNode[d] = function (b) {
                
a[d](b)
            }
        });
        
b.each(b.jPlayer.event, function (cd) {
            var 
= !0;
            
b.each(b.jPlayer.reservedEvent.split(/s+/g), function (ab) {
                if (
=== c)return = !1
            
});
            
&& a.element.bind(".jPlayer.jPlayerHtml",
                function () {
                    
a._emulateHtmlUpdate();
                    var 
document.createEvent("Event");
                    
b.initEvent(c, !1, !0);
                    
a.internal.domNode.dispatchEvent(b)
                })
        })
    }, 
_emulateHtmlUpdate: function () {
        var 
this;
        
b.each(b.jPlayer.emulateStatus.split(/s+/g), function (bd) {
            
a.internal.domNode[d] = a.status[d]
        });
        
b.each(b.jPlayer.emulateOptions.split(/s+/g), function (bd) {
            
a.internal.domNode[d] = a.options[d]
        })
    }, 
_destroyHtmlBridge: function () {
        var 
this;
        
this.element.unbind(".jPlayerHtml");
        
b.each((b.jPlayer.emulateMethods " " b.jPlayer.emulateStatus +
            
" " b.jPlayer.emulateOptions).split(/s+/g), function (bd) {
            
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."}
});
?>
Онлайн: 0
Реклама