1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-27 02:43:45 +02:00

Changed this.player to this.player_ to be more consistent with other private vars.

This commit is contained in:
Steve Heffernan 2013-01-16 20:24:38 -05:00
parent e17d1a2d85
commit 0b3e240999
13 changed files with 231 additions and 223 deletions

View File

@ -50,8 +50,8 @@ module.exports = function(grunt) {
grunt.registerTask('default', ['build', 'jshint', 'compile', 'dist']);
// Development watch task
grunt.registerTask('dev', ['jshint','build']);
grunt.registerTask('test', ['jshint','compile','qunit']);
grunt.registerTask('test', ['jshint','build','qunit']);
var fs = require('fs'),
gzip = require('zlib').gzip;

View File

@ -15,7 +15,7 @@ goog.require('vjs.dom');
* @constructor
*/
vjs.Component = function(player, options, ready){
this.player = player;
this.player_ = player;
// // Allow for overridding default component options
options = this.options = this.mergeOptions(this.options, options);
@ -68,6 +68,13 @@ vjs.Component.prototype.dispose = function(){
this.el_ = null;
};
/**
* Reference to main player instance.
* @type {vjs.Player}
* @private
*/
vjs.Component.prototype.player_;
/**
* Component options object.
* @type {Object}
@ -275,10 +282,10 @@ vjs.Component.prototype.addChild = function(child, options){
options.name = componentName;
// Create a new object & element for this controls set
// If there's no .player, this is a player
// If there's no .player_, this is a player
// Closure Compiler throws an 'incomplete alias' warning if we use the vjs variable directly.
// Every class should be exported, so this should never be a problem here.
component = new window['videojs'][componentClass](this.player || this, options);
component = new window['videojs'][componentClass](this.player_ || this, options);
// child is a component instance
} else {

102
src/js/controls.js vendored
View File

@ -36,8 +36,8 @@ vjs.ControlBar = function(player, options){
player.one('play', vjs.bind(this, function(){
this.fadeIn();
this.player.on('mouseover', vjs.bind(this, this.fadeIn));
this.player.on('mouseout', vjs.bind(this, this.fadeOut));
this.player_.on('mouseover', vjs.bind(this, this.fadeIn));
this.player_.on('mouseout', vjs.bind(this, this.fadeOut));
}));
};
goog.inherits(vjs.ControlBar, vjs.Component);
@ -65,12 +65,12 @@ vjs.ControlBar.prototype.createEl = function(){
vjs.ControlBar.prototype.fadeIn = function(){
goog.base(this, 'fadeIn');
this.player.trigger('controlsvisible');
this.player_.trigger('controlsvisible');
};
vjs.ControlBar.prototype.fadeOut = function(){
goog.base(this, 'fadeOut');
this.player.trigger('controlshidden');
this.player_.trigger('controlshidden');
};
vjs.ControlBar.prototype.lockShowing = function(){
@ -148,7 +148,7 @@ vjs.PlayButton.prototype.buildCSSClass = function(){
};
vjs.PlayButton.prototype.onClick = function(){
this.player.play();
this.player_.play();
};
/* Pause Button
@ -171,7 +171,7 @@ vjs.PauseButton.prototype.buildCSSClass = function(){
};
vjs.PauseButton.prototype.onClick = function(){
this.player.pause();
this.player_.pause();
};
/* Play Toggle - Play or Pause Media
@ -198,10 +198,10 @@ vjs.PlayToggle.prototype.buildCSSClass = function(){
// OnClick - Toggle between play and pause
vjs.PlayToggle.prototype.onClick = function(){
if (this.player.paused()) {
this.player.play();
if (this.player_.paused()) {
this.player_.play();
} else {
this.player.pause();
this.player_.pause();
}
};
@ -238,10 +238,10 @@ vjs.FullscreenToggle.prototype.buildCSSClass = function(){
};
vjs.FullscreenToggle.prototype.onClick = function(){
if (!this.player.isFullScreen) {
this.player.requestFullScreen();
if (!this.player_.isFullScreen) {
this.player_.requestFullScreen();
} else {
this.player.cancelFullScreen();
this.player_.cancelFullScreen();
}
};
@ -272,10 +272,10 @@ vjs.BigPlayButton.prototype.createEl = function(){
vjs.BigPlayButton.prototype.onClick = function(){
// Go back to the beginning if big play button is showing at the end.
// Have to check for current time otherwise it might throw a 'not ready' error.
if(this.player.currentTime()) {
this.player.currentTime(0);
if(this.player_.currentTime()) {
this.player_.currentTime(0);
}
this.player.play();
this.player_.play();
};
/* Loading Spinner
@ -314,10 +314,10 @@ goog.inherits(vjs.LoadingSpinner, vjs.Component);
vjs.LoadingSpinner.prototype.createEl = function(){
var classNameSpinner, innerHtmlSpinner;
if ( typeof this.player.el().style.WebkitBorderRadius == 'string'
|| typeof this.player.el().style.MozBorderRadius == 'string'
|| typeof this.player.el().style.KhtmlBorderRadius == 'string'
|| typeof this.player.el().style.borderRadius == 'string')
if ( typeof this.player_.el().style.WebkitBorderRadius == 'string'
|| typeof this.player_.el().style.MozBorderRadius == 'string'
|| typeof this.player_.el().style.KhtmlBorderRadius == 'string'
|| typeof this.player_.el().style.borderRadius == 'string')
{
classNameSpinner = 'vjs-loading-spinner';
innerHtmlSpinner = '<div class="ball1"></div><div class="ball2"></div><div class="ball3"></div><div class="ball4"></div><div class="ball5"></div><div class="ball6"></div><div class="ball7"></div><div class="ball8"></div>';
@ -364,8 +364,8 @@ vjs.CurrentTimeDisplay.prototype.createEl = function(){
vjs.CurrentTimeDisplay.prototype.updateContent = function(){
// Allows for smooth scrubbing, when player can't keep up.
var time = (this.player.scrubbing) ? this.player.getCache().currentTime : this.player.currentTime();
this.content.innerHTML = vjs.formatTime(time, this.player.duration());
var time = (this.player_.scrubbing) ? this.player_.getCache().currentTime : this.player_.currentTime();
this.content.innerHTML = vjs.formatTime(time, this.player_.duration());
};
/**
@ -396,7 +396,7 @@ vjs.DurationDisplay.prototype.createEl = function(){
};
vjs.DurationDisplay.prototype.updateContent = function(){
if (this.player.duration()) { this.content.innerHTML = vjs.formatTime(this.player.duration()); }
if (this.player_.duration()) { this.content.innerHTML = vjs.formatTime(this.player_.duration()); }
};
/**
@ -446,11 +446,11 @@ vjs.RemainingTimeDisplay.prototype.createEl = function(){
};
vjs.RemainingTimeDisplay.prototype.updateContent = function(){
if (this.player.duration()) { this.content.innerHTML = '-'+vjs.formatTime(this.player.remainingTime()); }
if (this.player_.duration()) { this.content.innerHTML = '-'+vjs.formatTime(this.player_.remainingTime()); }
// Allows for smooth scrubbing, when player can't keep up.
// var time = (this.player.scrubbing) ? this.player.getCache().currentTime : this.player.currentTime();
// this.content.innerHTML = vjs.formatTime(time, this.player.duration());
// var time = (this.player_.scrubbing) ? this.player_.getCache().currentTime : this.player_.currentTime();
// this.content.innerHTML = vjs.formatTime(time, this.player_.duration());
};
/* Slider
@ -476,10 +476,10 @@ vjs.Slider = function(player, options){
this.on('focus', this.onFocus);
this.on('blur', this.onBlur);
this.player.on('controlsvisible', vjs.bind(this, this.update));
this.player_.on('controlsvisible', vjs.bind(this, this.update));
// This is actually to fix the volume handle position. http://twitter.com/#!/gerritvanaaken/status/159046254519787520
// this.player.one('timeupdate', vjs.bind(this, this.update));
// this.player_.one('timeupdate', vjs.bind(this, this.update));
player.ready(vjs.bind(this, this.update));
};
@ -518,7 +518,7 @@ vjs.Slider.prototype.onMouseUp = function() {
vjs.Slider.prototype.update = function(){
// If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.
// On HTML5 browsers scrubbing is really smooth, but some flash players are slow, so we might want to utilize this later.
// var progress = (this.player.scrubbing) ? this.player.getCache().currentTime / this.player.duration() : this.player.currentTime() / this.player.duration();
// var progress = (this.player_.scrubbing) ? this.player_.getCache().currentTime / this.player_.duration() : this.player_.currentTime() / this.player_.duration();
var barProgress,
progress = this.getPercent(),
@ -654,43 +654,43 @@ vjs.SeekBar.prototype.createEl = function(){
};
vjs.SeekBar.prototype.getPercent = function(){
return this.player.currentTime() / this.player.duration();
return this.player_.currentTime() / this.player_.duration();
};
vjs.SeekBar.prototype.onMouseDown = function(event){
goog.base(this, 'onMouseDown', event);
this.player.scrubbing = true;
this.player_.scrubbing = true;
this.videoWasPlaying = !this.player.paused();
this.player.pause();
this.videoWasPlaying = !this.player_.paused();
this.player_.pause();
};
vjs.SeekBar.prototype.onMouseMove = function(event){
var newTime = this.calculateDistance(event) * this.player.duration();
var newTime = this.calculateDistance(event) * this.player_.duration();
// Don't let video end while scrubbing.
if (newTime == this.player.duration()) { newTime = newTime - 0.1; }
if (newTime == this.player_.duration()) { newTime = newTime - 0.1; }
// Set new time (tell player to seek to new time)
this.player.currentTime(newTime);
this.player_.currentTime(newTime);
};
vjs.SeekBar.prototype.onMouseUp = function(event){
goog.base(this, 'onMouseUp', event);
this.player.scrubbing = false;
this.player_.scrubbing = false;
if (this.videoWasPlaying) {
this.player.play();
this.player_.play();
}
};
vjs.SeekBar.prototype.stepForward = function(){
this.player.currentTime(this.player.currentTime() + 1);
this.player_.currentTime(this.player_.currentTime() + 1);
};
vjs.SeekBar.prototype.stepBack = function(){
this.player.currentTime(this.player.currentTime() - 1);
this.player_.currentTime(this.player_.currentTime() - 1);
};
@ -714,7 +714,7 @@ vjs.LoadProgressBar.prototype.createEl = function(){
};
vjs.LoadProgressBar.prototype.update = function(){
if (this.el_.style) { this.el_.style.width = vjs.round(this.player.bufferedPercent() * 100, 2) + '%'; }
if (this.el_.style) { this.el_.style.width = vjs.round(this.player_.bufferedPercent() * 100, 2) + '%'; }
};
@ -807,19 +807,19 @@ vjs.VolumeBar.prototype.createEl = function(){
};
vjs.VolumeBar.prototype.onMouseMove = function(event) {
this.player.volume(this.calculateDistance(event));
this.player_.volume(this.calculateDistance(event));
};
vjs.VolumeBar.prototype.getPercent = function(){
return this.player.volume();
return this.player_.volume();
};
vjs.VolumeBar.prototype.stepForward = function(){
this.player.volume(this.player.volume() + 0.1);
this.player_.volume(this.player_.volume() + 0.1);
};
vjs.VolumeBar.prototype.stepBack = function(){
this.player.volume(this.player.volume() - 0.1);
this.player_.volume(this.player_.volume() - 0.1);
};
/**
@ -881,14 +881,14 @@ vjs.MuteToggle.prototype.createEl = function(){
};
vjs.MuteToggle.prototype.onClick = function(){
this.player.muted( this.player.muted() ? false : true );
this.player_.muted( this.player_.muted() ? false : true );
};
vjs.MuteToggle.prototype.update = function(){
var vol = this.player.volume(),
var vol = this.player_.volume(),
level = 3;
if (vol === 0 || this.player.muted()) {
if (vol === 0 || this.player_.muted()) {
level = 0;
} else if (vol < 0.33) {
level = 1;
@ -914,7 +914,7 @@ vjs.MuteToggle.prototype.update = function(){
vjs.PosterImage = function(player, options){
goog.base(this, player, options);
if (!this.player.options.poster) {
if (!this.player_.options.poster) {
this.hide();
}
@ -931,14 +931,14 @@ vjs.PosterImage.prototype.createEl = function(){
});
// src throws errors if no poster was defined.
if (this.player.options.poster) {
el.src = this.player.options.poster;
if (this.player_.options.poster) {
el.src = this.player_.options.poster;
}
return el;
};
vjs.PosterImage.prototype.onClick = function(){
this.player.play();
this.player_.play();
};
/* Menu

View File

@ -50,7 +50,7 @@ vjs = function(id, options, ready){
// Element may have a player attr referring to an already created player instance.
// If not, set up a new player and return the instance.
return tag.player || new vjs.Player(tag, options, ready);
return tag['player'] || new vjs.Player(tag, options, ready);
};
// Extended name, also available externally, window.videojs

View File

@ -173,16 +173,16 @@ vjs.Flash = function(player, options, ready){
// Setting variables on the window needs to come after the doc write because otherwise they can get reset in some browsers
// So far no issues with swf ready event being called before it's set on the window.
iWin.player = this.player;
iWin['player'] = this.player_;
// Create swf ready function for iFrame window
iWin.ready = vjs.bind(this.player, function(currSwf){
iWin['ready'] = vjs.bind(this.player_, function(currSwf){
var el = iDoc.getElementById(currSwf),
player = this,
tech = player.tech;
// Update reference to playback technology element
tech.el = el;
tech.el_ = el;
// Now that the element is ready, make a click on the swf play the video
vjs.on(el, 'click', tech.bind(tech.onClick));
@ -192,7 +192,7 @@ vjs.Flash = function(player, options, ready){
});
// Create event listener for all swf events
iWin.events = vjs.bind(this.player, function(swfID, eventName){
iWin['events'] = vjs.bind(this.player_, function(swfID, eventName){
var player = this;
if (player && player.techName === 'flash') {
player.trigger(eventName);
@ -200,7 +200,7 @@ vjs.Flash = function(player, options, ready){
});
// Create error listener for all swf errors
iWin.errors = vjs.bind(this.player, function(swfID, eventName){
iWin['errors'] = vjs.bind(this.player_, function(swfID, eventName){
vjs.log('Flash Error', eventName);
});
@ -237,7 +237,7 @@ vjs.Flash.prototype.src = function(src){
// Currently the SWF doesn't autoplay if you load a source later.
// e.g. Load player w/ no source, wait 2s, set src.
if (this.player.autoplay()) {
if (this.player_.autoplay()) {
var tech = this;
setTimeout(function(){ tech.play(); }, 0);
}
@ -332,11 +332,11 @@ vjs.Flash['onReady'] = function(currSwf){
// Get player from box
// On firefox reloads, el might already have a player
var player = el.player || el.parentNode.player,
var player = el['player'] || el.parentNode['player'],
tech = player.tech;
// Reference player on tech element
el.player = player;
el['player'] = player;
// Update reference to playback technology element
tech.el_ = el;
@ -369,13 +369,13 @@ vjs.Flash.checkReady = function(tech){
// Trigger events from the swf on the player
vjs.Flash['onEvent'] = function(swfID, eventName){
var player = vjs.el(swfID).player;
var player = vjs.el(swfID)['player'];
player.trigger(eventName);
};
// Log errors from the swf
vjs.Flash['onError'] = function(swfID, err){
var player = vjs.el(swfID).player;
var player = vjs.el(swfID)['player'];
player.trigger('error');
vjs.log('Flash Error', err, swfID);
};

View File

@ -48,14 +48,14 @@ vjs.Html5 = function(player, options, ready){
goog.inherits(vjs.Html5, vjs.MediaTechController);
vjs.Html5.prototype.dispose = function(){
// this.player.tag = false;
// this.player_.tag = false;
this.removeTriggers();
goog.base(this, 'dispose');
};
vjs.Html5.prototype.createEl = function(){
var player = this.player,
var player = this.player_,
// If possible, reuse original tag for HTML5 playback technology element
el = player.tag,
newEl;
@ -96,12 +96,12 @@ vjs.Html5.prototype.createEl = function(){
// May seem verbose here, but makes other APIs possible.
vjs.Html5.prototype.setupTriggers = function(){
for (var i = vjs.Html5.Events.length - 1; i >= 0; i--) {
vjs.on(this.el_, vjs.Html5.Events[i], vjs.bind(this.player, this.eventHandler));
vjs.on(this.el_, vjs.Html5.Events[i], vjs.bind(this.player_, this.eventHandler));
}
};
vjs.Html5.prototype.removeTriggers = function(){
for (var i = vjs.Html5.Events.length - 1; i >= 0; i--) {
vjs.off(this.el_, vjs.Html5.Events[i], vjs.bind(this.player, this.eventHandler));
vjs.off(this.el_, vjs.Html5.Events[i], vjs.bind(this.player_, this.eventHandler));
}
// console.log('removeTriggers', vjs.getData(this.el_));
};
@ -197,7 +197,7 @@ vjs.Html5.prototype.ended = function(){ return this.el_.ended; };
// playbackRate: function(){ return this.el_.playbackRate; },
// mediaGroup: function(){ return this.el_.mediaGroup; },
// controller: function(){ return this.el_.controller; },
vjs.Html5.prototype.controls = function(){ return this.player.options.controls; };
vjs.Html5.prototype.controls = function(){ return this.player_.options.controls; };
vjs.Html5.prototype.defaultMuted = function(){ return this.el_.defaultMuted; };
/* HTML5 Support Testing ---------------------------------------------------- */

View File

@ -29,11 +29,11 @@ goog.inherits(vjs.MediaTechController, vjs.Component);
* Handle a click on the media element. By default will play the media.
*/
vjs.MediaTechController.prototype.onClick = function(){
if (this.player.options.controls) {
if (this.player.paused()) {
this.player.play();
if (this.player_.options.controls) {
if (this.player_.paused()) {
this.player_.play();
} else {
this.player.pause();
this.player_.pause();
}
}
};

View File

@ -47,8 +47,8 @@ vjs.Player.prototype.dispose = function(){
// Kill reference to this player
vjs.players[this.id_] = null;
if (this.tag && this.tag.player) { this.tag.player = null; }
if (this.el_ && this.el_.player) { this.el_.player = null; }
if (this.tag && this.tag['player']) { this.tag['player'] = null; }
if (this.el_ && this.el_['player']) { this.el_['player'] = null; }
// Ensure that tracking progress and time progress will stop and plater deleted
this.stopTrackingProgress();
@ -133,7 +133,7 @@ vjs.Player.prototype.createEl = function(){
tag.className = 'vjs-tech';
// Make player findable on elements
tag.player = el.player = this;
tag['player'] = el['player'] = this;
// Default state of video is paused
this.addClass('vjs-paused');
@ -175,16 +175,16 @@ vjs.Player.prototype.loadTech = function(techName, source){
this.isReady_ = false;
var techReady = function(){
this.player.triggerReady();
this.player_.triggerReady();
// Manually track progress in cases where the browser/flash player doesn't report it.
if (!this.features.progressEvents) {
this.player.manualProgressOn();
this.player_.manualProgressOn();
}
// Manually track timeudpates in cases where the browser/flash player doesn't report it.
if (!this.features.timeupdateEvents) {
this.player.manualTimeUpdatesOn();
this.player_.manualTimeUpdatesOn();
}
};
@ -250,7 +250,7 @@ vjs.Player.prototype.manualProgressOn = function(){
this.features.progressEvents = true;
// Turn off manual progress tracking
this.player.manualProgressOff();
this.player_.manualProgressOff();
});
};
@ -288,7 +288,7 @@ vjs.Player.prototype.manualTimeUpdatesOn = function(){
// Update known progress support for this playback technology
this.features.timeupdateEvents = true;
// Turn off manual progress tracking
this.player.manualTimeUpdatesOff();
this.player_.manualTimeUpdatesOff();
});
};

View File

@ -24,7 +24,7 @@ vjs.autoSetup = function(){
if (vid && vid.getAttribute) {
// Make sure this player hasn't already been set up.
if (vid.player === undefined) {
if (vid['player'] === undefined) {
options = vid.getAttribute('data-setup');
// Check if data-setup attr exists.

View File

@ -373,14 +373,14 @@ vjs.TextTrack.prototype.activate = function(){
if (this.mode_ === 0) {
// Update current cue on timeupdate
// Using unique ID for bind function so other tracks don't remove listener
this.player.on('timeupdate', vjs.bind(this, this.update, this.id_));
this.player_.on('timeupdate', vjs.bind(this, this.update, this.id_));
// Reset cue time on media end
this.player.on('ended', vjs.bind(this, this.reset, this.id_));
this.player_.on('ended', vjs.bind(this, this.reset, this.id_));
// Add to display
if (this.kind_ === 'captions' || this.kind_ === 'subtitles') {
this.player.getChild('textTrackDisplay').addChild(this);
this.player_.getChild('textTrackDisplay').addChild(this);
}
}
};
@ -390,12 +390,12 @@ vjs.TextTrack.prototype.activate = function(){
*/
vjs.TextTrack.prototype.deactivate = function(){
// Using unique ID for bind function so other tracks don't remove listener
this.player.off('timeupdate', vjs.bind(this, this.update, this.id_));
this.player.off('ended', vjs.bind(this, this.reset, this.id_));
this.player_.off('timeupdate', vjs.bind(this, this.update, this.id_));
this.player_.off('ended', vjs.bind(this, this.reset, this.id_));
this.reset(); // Reset
// Remove from display
this.player.getChild('textTrackDisplay').removeChild(this);
this.player_.getChild('textTrackDisplay').removeChild(this);
};
// A readiness state
@ -529,14 +529,14 @@ vjs.TextTrack.prototype.update = function(){
if (this.cues_.length > 0) {
// Get curent player time
var time = this.player.currentTime();
var time = this.player_.currentTime();
// Check if the new time is outside the time box created by the the last update.
if (this.prevChange === undefined || time < this.prevChange || this.nextChange <= time) {
var cues = this.cues_,
// Create a new time box for this state.
newNextChange = this.player.duration(), // Start at beginning of the timeline
newNextChange = this.player_.duration(), // Start at beginning of the timeline
newPrevChange = 0, // Start at end
reverse = false, // Set the direction of the loop through the cues. Optimized the cue check.
@ -648,7 +648,7 @@ vjs.TextTrack.prototype.updateDisplay = function(){
// Set all loop helper values back
vjs.TextTrack.prototype.reset = function(){
this.nextChange = 0;
this.prevChange = this.player.duration();
this.prevChange = this.player_.duration();
this.firstActiveIndex = 0;
this.lastActiveIndex = 0;
};
@ -699,7 +699,7 @@ vjs.TextTrackDisplay = function(player, options, ready){
// Should probably be moved to an external track loader when we support
// tracks that don't need a display.
if (player.options['tracks'] && player.options['tracks'].length > 0) {
this.player.addTextTracks(player.options['tracks']);
this.player_.addTextTracks(player.options['tracks']);
}
};
goog.inherits(vjs.TextTrackDisplay, vjs.Component);
@ -724,13 +724,13 @@ vjs.TextTrackMenuItem = function(player, options){
options['selected'] = track.dflt();
goog.base(this, player, options);
this.player.on(track.kind() + 'trackchange', vjs.bind(this, this.update));
this.player_.on(track.kind() + 'trackchange', vjs.bind(this, this.update));
};
goog.inherits(vjs.TextTrackMenuItem, vjs.MenuItem);
vjs.TextTrackMenuItem.prototype.onClick = function(){
goog.base(this, 'onClick');
this.player.showTextTrack(this.track.id(), this.track.kind());
this.player_.showTextTrack(this.track.id(), this.track.kind());
};
vjs.TextTrackMenuItem.prototype.update = function(){
@ -760,11 +760,11 @@ goog.inherits(vjs.OffTextTrackMenuItem, vjs.TextTrackMenuItem);
vjs.OffTextTrackMenuItem.prototype.onClick = function(){
goog.base(this, 'onClick');
this.player.showTextTrack(this.track.id(), this.track.kind());
this.player_.showTextTrack(this.track.id(), this.track.kind());
};
vjs.OffTextTrackMenuItem.prototype.update = function(){
var tracks = this.player.textTracks(),
var tracks = this.player_.textTracks(),
i=0, j=tracks.length, track,
off = true;
@ -799,7 +799,7 @@ vjs.TextTrackButton = function(player, options){
goog.inherits(vjs.TextTrackButton, vjs.Button);
vjs.TextTrackButton.prototype.createMenu = function(){
var menu = new vjs.Menu(this.player);
var menu = new vjs.Menu(this.player_);
// Add a title list item to the top
menu.el().appendChild(vjs.createEl('li', {
@ -808,7 +808,7 @@ vjs.TextTrackButton.prototype.createMenu = function(){
}));
// Add an OFF menu item to turn all tracks off
menu.addItem(new vjs.OffTextTrackMenuItem(this.player, { 'kind': this.kind_ }));
menu.addItem(new vjs.OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));
this.items = this.createItems();
@ -827,10 +827,10 @@ vjs.TextTrackButton.prototype.createMenu = function(){
vjs.TextTrackButton.prototype.createItems = function(){
var items = [], track;
for (var i = 0; i < this.player.textTracks().length; i++) {
track = this.player.textTracks()[i];
for (var i = 0; i < this.player_.textTracks().length; i++) {
track = this.player_.textTracks()[i];
if (track.kind() === this.kind_) {
items.push(new vjs.TextTrackMenuItem(this.player, {
items.push(new vjs.TextTrackMenuItem(this.player_, {
'track': track
}));
}
@ -906,10 +906,10 @@ vjs.ChaptersButton.prototype.className = 'vjs-chapters-button';
vjs.ChaptersButton.prototype.createItems = function(){
var items = [], track;
for (var i = 0; i < this.player.textTracks().length; i++) {
track = this.player.textTracks()[i];
for (var i = 0; i < this.player_.textTracks().length; i++) {
track = this.player_.textTracks()[i];
if (track.kind() === this.kind_) {
items.push(new vjs.TextTrackMenuItem(this.player, {
items.push(new vjs.TextTrackMenuItem(this.player_, {
'track': track
}));
}
@ -919,7 +919,7 @@ vjs.ChaptersButton.prototype.createItems = function(){
};
vjs.ChaptersButton.prototype.createMenu = function(){
var tracks = this.player.textTracks(),
var tracks = this.player_.textTracks(),
i = 0,
j = tracks.length,
track, chaptersTrack,
@ -939,7 +939,7 @@ vjs.ChaptersButton.prototype.createMenu = function(){
}
}
var menu = this.menu = new vjs.Menu(this.player);
var menu = this.menu = new vjs.Menu(this.player_);
menu.el_.appendChild(vjs.createEl('li', {
className: 'vjs-menu-title',
@ -954,7 +954,7 @@ vjs.ChaptersButton.prototype.createMenu = function(){
for (;i<j;i++) {
cue = cues[i];
mi = new vjs.ChaptersTrackMenuItem(this.player, {
mi = new vjs.ChaptersTrackMenuItem(this.player_, {
'track': chaptersTrack,
'cue': cue
});
@ -995,13 +995,13 @@ goog.inherits(vjs.ChaptersTrackMenuItem, vjs.MenuItem);
vjs.ChaptersTrackMenuItem.prototype.onClick = function(){
goog.base(this, 'onClick');
this.player.currentTime(this.cue.startTime);
this.player_.currentTime(this.cue.startTime);
this.update(this.cue.startTime);
};
vjs.ChaptersTrackMenuItem.prototype.update = function(){
var cue = this.cue,
currentTime = this.player.currentTime();
currentTime = this.player_.currentTime();
// vjs.log(currentTime, cue.startTime);
if (cue.startTime <= currentTime && currentTime < cue.endTime) {

View File

@ -50,7 +50,6 @@ test('should do a deep merge of child options', function(){
var children = mergedOptions['children'];
ok(children['childOne']['foo'] === 'baz', 'value three levels deep overridden');
console.log(children['childOne']['asdf'])
ok(children['childOne']['asdf'] === 'fdsa', 'value three levels deep maintained');
ok(children['childOne']['abc'] === '123', 'value three levels deep added');
ok(children['childTwo'], 'object two levels deep maintained');

View File

@ -119,14 +119,14 @@ test('should get tag, source, and track settings', function(){
ok(player.el().className.indexOf('video-js') !== -1, 'transferred class from tag to player div');
ok(player.el().id === 'example_1', 'transferred id from tag to player div');
ok(tag.player === player, 'player referenceable on original tag');
ok(tag['player'] === player, 'player referenceable on original tag');
ok(vjs.players[player.id()] === player, 'player referenceable from global list');
ok(tag.id !== player.id, 'tag ID no longer is the same as player ID');
ok(tag.className !== player.el().className, 'tag classname updated');
player.dispose();
ok(tag.player === null, 'tag player ref killed')
ok(tag['player'] === null, 'tag player ref killed')
ok(!vjs.players['example_1'], 'global player ref killed')
ok(player.el() === null, 'player el killed')
});

View File

@ -1,117 +1,119 @@
(function() {var c=void 0,f=!0,h=null,j=!1;function k(a){return function(){return this[a]}}function l(a){return function(){return a}}var n,aa=this;aa.$b=f;function s(a,b){var d=a.split("."),e=aa;!(d[0]in e)&&e.execScript&&e.execScript("var "+d[0]);for(var g;d.length&&(g=d.shift());)!d.length&&b!==c?e[g]=b:e=e[g]?e[g]:e[g]={}}function t(a,b){function d(){}d.prototype=b.prototype;a.h=b.prototype;a.prototype=new d;a.prototype.constructor=a};document.createElement("video");document.createElement("audio");function u(a,b,d){if("string"===typeof a){0===a.indexOf("#")&&(a=a.slice(1));if(u.P[a])return u.P[a];a=u.f(a)}if(!a||!a.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return a.a||new v(a,b,d)}var x=u;
u.options={techOrder:["html5","flash"],html5:{},flash:{sc:"http://vjs.zencdn.net/c/video-js.swf"},width:300,height:150,defaultVolume:0,children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{}}};u.P={};u.zb={};u.e=function(a,b,d){var e=u.getData(a);e.q||(e.q={});e.q[b]||(e.q[b]=[]);d.p||(d.p=u.p++);e.q[b].push(d);e.J||(e.disabled=j,e.J=function(b){if(!e.disabled){b=u.Ua(b);var d=e.q[b.type];if(d){for(var m=[],r=0,p=d.length;r<p;r++)m[r]=d[r];d=0;for(r=m.length;d<r;d++)m[d].call(a,b)}}});1==e.q[b].length&&(document.addEventListener?a.addEventListener(b,e.J,j):document.attachEvent&&a.attachEvent("on"+b,e.J))};
u.j=function(a,b,d){if(u.Ya(a)){var e=u.getData(a);if(e.q)if(b){var g=e.q[b];if(g){if(d){if(d.p)for(e=0;e<g.length;e++)g[e].p===d.p&&g.splice(e--,1)}else e.q[b]=[];u.Qa(a,b)}}else for(g in e.q)b=g,e.q[b]=[],u.Qa(a,b)}};u.Qa=function(a,b){var d=u.getData(a);0===d.q[b].length&&(delete d.q[b],document.removeEventListener?a.removeEventListener(b,d.J,j):document.detachEvent&&a.detachEvent("on"+b,d.J));u.ja(d.q)&&(delete d.q,delete d.J,delete d.disabled);u.ja(d)&&u.Ma(a)};
u.Ua=function(a){function b(){return f}function d(){return j}if(!a||!a.Da){var e=a||window.event,g;for(g in e)a[g]=e[g];a.target||(a.target=a.srcElement||document);a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;a.preventDefault=function(){a.returnValue=j;a.Za=b};a.Za=d;a.stopPropagation=function(){a.cancelBubble=f;a.Da=b};a.Da=d;a.stopImmediatePropagation=function(){a.Db=b;a.stopPropagation()};a.Db=d;a.clientX!=h&&(e=document.documentElement,g=document.body,a.pageX=a.clientX+(e&&
(function() {var c=void 0,f=!0,h=null,k=!1;function l(a){return function(){return this[a]}}function m(a){return function(){return a}}var n,aa=this;aa.Yb=f;function s(a,b){var d=a.split("."),e=aa;!(d[0]in e)&&e.execScript&&e.execScript("var "+d[0]);for(var g;d.length&&(g=d.shift());)!d.length&&b!==c?e[g]=b:e=e[g]?e[g]:e[g]={}}function t(a,b){function d(){}d.prototype=b.prototype;a.h=b.prototype;a.prototype=new d;a.prototype.constructor=a};document.createElement("video");document.createElement("audio");function u(a,b,d){if("string"===typeof a){0===a.indexOf("#")&&(a=a.slice(1));if(u.O[a])return u.O[a];a=u.f(a)}if(!a||!a.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return a.player||new v(a,b,d)}var x=u;
u.options={techOrder:["html5","flash"],html5:{},flash:{rc:"http://vjs.zencdn.net/c/video-js.swf"},width:300,height:150,defaultVolume:0,children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{}}};u.O={};u.hc={};u.e=function(a,b,d){var e=u.getData(a);e.q||(e.q={});e.q[b]||(e.q[b]=[]);d.p||(d.p=u.p++);e.q[b].push(d);e.I||(e.disabled=k,e.I=function(b){if(!e.disabled){b=u.Ta(b);var d=e.q[b.type];if(d){for(var j=[],r=0,q=d.length;r<q;r++)j[r]=d[r];d=0;for(r=j.length;d<r;d++)j[d].call(a,b)}}});1==e.q[b].length&&(document.addEventListener?a.addEventListener(b,e.I,k):document.attachEvent&&a.attachEvent("on"+b,e.I))};
u.j=function(a,b,d){if(u.Xa(a)){var e=u.getData(a);if(e.q)if(b){var g=e.q[b];if(g){if(d){if(d.p)for(e=0;e<g.length;e++)g[e].p===d.p&&g.splice(e--,1)}else e.q[b]=[];u.Pa(a,b)}}else for(g in e.q)b=g,e.q[b]=[],u.Pa(a,b)}};u.Pa=function(a,b){var d=u.getData(a);0===d.q[b].length&&(delete d.q[b],document.removeEventListener?a.removeEventListener(b,d.I,k):document.detachEvent&&a.detachEvent("on"+b,d.I));u.ia(d.q)&&(delete d.q,delete d.I,delete d.disabled);u.ia(d)&&u.La(a)};
u.Ta=function(a){function b(){return f}function d(){return k}if(!a||!a.Ca){var e=a||window.event,g;for(g in e)a[g]=e[g];a.target||(a.target=a.srcElement||document);a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;a.preventDefault=function(){a.returnValue=k;a.Ya=b};a.Ya=d;a.stopPropagation=function(){a.cancelBubble=f;a.Ca=b};a.Ca=d;a.stopImmediatePropagation=function(){a.Bb=b;a.stopPropagation()};a.Bb=d;a.clientX!=h&&(e=document.documentElement,g=document.body,a.pageX=a.clientX+(e&&
e.scrollLeft||g&&g.scrollLeft||0)-(e&&e.clientLeft||g&&g.clientLeft||0),a.pageY=a.clientY+(e&&e.scrollTop||g&&g.scrollTop||0)-(e&&e.clientTop||g&&g.clientTop||0));a.which=a.charCode||a.keyCode;a.button!=h&&(a.button=a.button&1?0:a.button&4?1:a.button&2?2:0)}return a};
u.g=function(a,b){var d=u.Ya(a)?u.getData(a):{},e=a.parentNode||a.ownerDocument;"string"===typeof b&&(b={type:b,target:a});b=u.Ua(b);d.J&&d.J.call(a,b);if(e&&!b.Da())u.g(e,b);else if(!e&&!b.Za()&&(d=u.getData(b.target),b.target[b.type])){d.disabled=f;if("function"===typeof b.target[b.type])b.target[b.type]();d.disabled=j}};u.z=function(a,b,d){u.e(a,b,function(){u.j(a,b,arguments.callee);d.apply(this,arguments)})};u.ic={};u.d=function(a,b){var d=document.createElement(a||"div"),e;for(e in b)b.hasOwnProperty(e)&&(d[e]=b[e]);return d};u.I=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};u.Y=function(a,b){if(a)for(var d in a)a.hasOwnProperty(d)&&b.call(this,d,a[d])};u.s=function(a,b){if(!b)return a;for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a};u.bind=function(a,b,d){function e(){return b.apply(a,arguments)}b.p||(b.p=u.p++);e.p=d?d+"_"+b.p:b.p;return e};u.M={};u.p=1;u.expando="vdata"+(new Date).getTime();
u.getData=function(a){var b=a[u.expando];b||(b=a[u.expando]=u.p++,u.M[b]={});return u.M[b]};u.Ya=function(a){a=a[u.expando];return!(!a||u.ja(u.M[a]))};u.Ma=function(a){var b=a[u.expando];if(b){delete u.M[b];try{delete a[u.expando]}catch(d){a.removeAttribute?a.removeAttribute(u.expando):a[u.expando]=h}}};u.ja=function(a){for(var b in a)if(a[b]!==h)return j;return f};u.m=function(a,b){-1==(" "+a.className+" ").indexOf(" "+b+" ")&&(a.className=""===a.className?b:a.className+" "+b)};
u.u=function(a,b){if(-1!=a.className.indexOf(b)){var d=a.className.split(" ");d.splice(d.indexOf(b),1);a.className=d.join(" ")}};u.qb=u.d("video");u.A=navigator.userAgent;u.ob=!!u.A.match(/iPad/i);u.nb=!!u.A.match(/iPhone/i);u.pb=!!u.A.match(/iPod/i);u.mb=u.ob||u.nb||u.pb;var ba=u,ca;var da=u.A.match(/OS (\d+)_/i);ca=da&&da[1]?da[1]:c;ba.bc=ca;u.kb=!!u.A.match(/Android.*AppleWebKit/i);var ea=u,fa=u.A.match(/Android (\d+)\./i);ea.jb=fa&&fa[1]?fa[1]:h;u.lb=function(){return!!u.A.match("Firefox")};
u.N=function(a){var b={};if(a&&a.attributes&&0<a.attributes.length)for(var d=a.attributes,e,g,q=d.length-1;0<=q;q--){e=d[q].name;g=d[q].value;if("boolean"===typeof a[e]||-1!==",autoplay,controls,loop,muted,default,".indexOf(","+e+","))g=g!==h?f:j;b[e]=g}return b};
u.Ca=function(a,b){var d="";document.defaultView&&document.defaultView.getComputedStyle?d=document.defaultView.getComputedStyle(a,"").getPropertyValue(b):a.currentStyle&&(b=b.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),d=a.currentStyle[b]);return d};u.$=function(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)};u.Na={};u.f=function(a){0===a.indexOf("#")&&(a=a.slice(1));return document.getElementById(a)};
u.o=function(a,b){b=b||a;var d=Math.floor(a%60),e=Math.floor(a/60%60),g=Math.floor(a/3600),q=Math.floor(b/60%60),m=Math.floor(b/3600),g=0<g||0<m?g+":":"";return g+(((g||10<=q)&&10>e?"0"+e:e)+":")+(10>d?"0"+d:d)};u.ub=function(){document.body.focus();document.onselectstart=l(j)};u.Wb=function(){document.onselectstart=l(f)};u.trim=function(a){return a.toString().replace(/^\s+/,"").replace(/\s+$/,"")};u.round=function(a,b){b||(b=0);return Math.round(a*Math.pow(10,b))/Math.pow(10,b)};
u.ya=function(a){return{length:1,start:l(0),end:function(){return a}}};
u.get=function(a,b,d){var e=0===a.indexOf("file:")||0===window.location.href.indexOf("file:")&&-1===a.indexOf("http");"undefined"===typeof XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new window.ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new window.ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(b){}try{return new window.ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw Error("This browser does not support XMLHttpRequest.");});var g=new XMLHttpRequest;try{g.open("GET",a)}catch(q){d(q)}g.onreadystatechange=
function(){4===g.readyState&&(200===g.status||e&&0===g.status?b(g.responseText):d&&d())};try{g.send()}catch(m){d&&d(m)}};u.Rb=function(a){var b=window.localStorage||j;if(b)try{b.volume=a}catch(d){22==d.code||1014==d.code?u.log("LocalStorage Full (VideoJS)",d):u.log("LocalStorage Error (VideoJS)",d)}};u.ia=function(a){a.match(/^https?:\/\//)||(a=u.d("div",{innerHTML:'<a href="'+a+'">x</a>'}).firstChild.href);return a};
u.log=function(){u.log.history=u.log.history||[];u.log.history.push(arguments);window.console&&window.console.log(Array.prototype.slice.call(arguments))};u.Ab="getBoundingClientRect"in document.documentElement?function(a){var b;try{b=a.getBoundingClientRect()}catch(d){}if(!b)return 0;a=document.body;return b.left+(window.pageXOffset||a.scrollLeft)-(document.documentElement.clientLeft||a.clientLeft||0)}:function(a){for(var b=a.offsetLeft;a=a.offsetParent;)b+=a.offsetLeft;return b};function y(a,b,d){this.a=a;b=this.options=u.s(this.options||{},b);this.K=b.id||(b.f&&b.f.id?b.f.id:a.id+"_component_"+u.p++);this.Hb=b.name||h;this.b=b.f?b.f:this.d();this.B=[];this.ga={};this.D={};if((a=this.options)&&a.children){var e=this;u.Y(a.children,function(a,b){b!==j&&!b.Fb&&(e[a]=e.C(a,b))})}this.G(d)}n=y.prototype;
n.l=function(){if(this.B)for(var a=this.B.length-1;0<=a;a--)this.B[a].l();this.D=this.ga=this.B=h;this.j();this.b.parentNode&&this.b.parentNode.removeChild(this.b);u.Ma(this.b);this.b=h};n.d=function(a,b){return u.d(a,b)};n.f=k("b");n.id=k("K");n.name=k("Hb");n.children=k("B");
n.C=function(a,b){var d,e,g;"string"===typeof a?(e=a,b=b||{},d=b.hc||u.I(e),b.name=e,d=new window.videojs[d](this.a||this,b)):d=a;e=d.name();g=d.id();this.B.push(d);g&&(this.ga[g]=d);e&&(this.D[e]=d);this.b.appendChild(d.f());return d};n.removeChild=function(a){"string"===typeof a&&(a=this.D[a]);if(a&&this.B){for(var b=j,d=this.B.length-1;0<=d;d--)if(this.B[d]===a){b=f;this.B.splice(d,1);break}b&&(this.ga[a.id]=h,this.D[a.name]=h,(b=a.f())&&b.parentNode===this.b&&this.b.removeChild(a.f()))}};
n.v=l("");n.e=function(a,b){u.e(this.b,a,u.bind(this,b));return this};n.j=function(a,b){u.j(this.b,a,b);return this};n.z=function(a,b){u.z(this.b,a,u.bind(this,b));return this};n.g=function(a,b){u.g(this.b,a,b);return this};n.G=function(a){a&&(this.U?a.call(this):(this.qa===c&&(this.qa=[]),this.qa.push(a)));return this};function z(a){a.U=f;var b=a.qa;if(b&&0<b.length){for(var d=0,e=b.length;d<e;d++)b[d].call(a);a.qa=[];a.g("ready")}}n.m=function(a){u.m(this.b,a);return this};
n.u=function(a){u.u(this.b,a);return this};n.show=function(){this.b.style.display="block";return this};n.t=function(){this.b.style.display="none";return this};n.ha=function(){this.u("vjs-fade-out");this.m("vjs-fade-in");return this};n.Aa=function(){this.u("vjs-fade-in");this.m("vjs-fade-out");return this};n.$a=function(){var a=this.b.style;a.display="block";a.opacity=1;a.Yb="visible";return this};function ga(a){a=a.b.style;a.display="";a.opacity="";a.Yb=""}
n.width=function(a,b){return ha(this,"width",a,b)};n.height=function(a,b){return ha(this,"height",a,b)};n.xb=function(a,b){return this.width(a,f).height(b)};function ha(a,b,d,e){if(d!==c)return a.b.style[b]=-1!==(""+d).indexOf("%")||-1!==(""+d).indexOf("px")?d:d+"px",e||a.g("resize"),a;if(!a.b)return 0;d=a.b.style[b];e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(a.b["offset"+u.I(b)],10)};function v(a,b,d){this.H=a;var e={};u.s(e,u.options);u.s(e,ia(a));u.s(e,b);this.n={};y.call(this,this,e,d);this.e("ended",this.Jb);this.e("play",this.Ka);this.e("pause",this.Ja);this.e("progress",this.Kb);this.e("durationchange",this.Ib);this.e("error",this.Ha);u.P[this.K]=this}t(v,y);n=v.prototype;n.l=function(){u.P[this.K]=h;this.H&&this.H.a&&(this.H.a=h);this.b&&this.b.a&&(this.b.a=h);clearInterval(this.pa);this.i&&this.i.l();v.h.l.call(this)};
function ia(a){var b={sources:[],tracks:[]};u.s(b,u.N(a));if(a.hasChildNodes())for(var d,e=a.childNodes,g=0,q=e.length;g<q;g++)a=e[g],d=a.nodeName.toLowerCase(),"source"===d?b.sources.push(u.N(a)):"track"===d&&b.tracks.push(u.N(a));return b}
n.d=function(){var a=this.b=v.h.d.call(this,"div"),b=this.H;b.removeAttribute("controls");b.removeAttribute("poster");b.removeAttribute("width");b.removeAttribute("height");if(b.hasChildNodes())for(var d=b.childNodes.length,e=0,g=b.childNodes;e<d;e++)("source"==g[0].nodeName.toLowerCase()||"track"==g[0].nodeName.toLowerCase())&&b.removeChild(g[0]);b.id=b.id||"vjs_video_"+u.p++;a.id=b.id;a.className=b.className;b.id+="_html5_api";b.className="vjs-tech";b.a=a.a=this;this.m("vjs-paused");this.width(this.options.width,
f);this.height(this.options.height,f);b.parentNode&&b.parentNode.insertBefore(a,b);u.$(b,a);return a};
function ja(a,b,d){a.i?ka(a):"Html5"!==b&&a.H&&(a.b.removeChild(a.H),a.H=h);a.Q=b;a.U=j;var e=u.s({source:d,Lb:a.b},a.options[b.toLowerCase()]);d&&(d.src==a.n.src&&0<a.n.currentTime&&(e.startTime=a.n.currentTime),a.n.src=d.src);a.i=new window.videojs[b](a,e);a.i.G(function(){z(this.a);if(!this.F.bb){var a=this.a;a.Fa=f;a.pa=setInterval(u.bind(a,function(){this.n.wa<this.buffered().end(0)?this.g("progress"):1==la(this)&&(clearInterval(this.pa),this.g("progress"))}),500);a.i.z("progress",function(){this.F.bb=
f;var a=this.a;a.Fa=j;clearInterval(a.pa)})}this.F.hb||(a=this.a,a.Ga=f,a.e("play",a.ib),a.e("pause",a.sa),a.i.z("timeupdate",function(){this.F.hb=f;ma(this.a)}))})}function ka(a){a.i.l();a.Fa&&(a.Fa=j,clearInterval(a.pa));a.Ga&&ma(a);a.i=j}function ma(a){a.Ga=j;a.sa();a.j("play",a.ib);a.j("pause",a.sa)}n.ib=function(){this.Sa&&this.sa();this.Sa=setInterval(u.bind(this,function(){this.g("timeupdate")}),250)};n.sa=function(){clearInterval(this.Sa)};
n.Jb=function(){this.options.loop&&(this.currentTime(0),this.play())};n.Ka=function(){u.u(this.b,"vjs-paused");u.m(this.b,"vjs-playing")};n.Ja=function(){u.u(this.b,"vjs-playing");u.m(this.b,"vjs-paused")};n.Kb=function(){1==la(this)&&this.g("loadedalldata")};n.Ib=function(){this.duration(A(this,"duration"))};n.Ha=function(a){u.log("Video Error",a)};function B(a,b,d){if(a.i.U)try{a.i[b](d)}catch(e){u.log(e)}else a.i.G(function(){this[b](d)})}
function A(a,b){if(a.i.U)try{return a.i[b]()}catch(d){if(a.i[b]===c)u.log("Video.js: "+b+" method not defined for "+a.Q+" playback technology.",d);else{if("TypeError"==d.name)throw u.log("Video.js: "+b+" unavailable on "+a.Q+" playback technology element.",d),a.i.U=j,d;u.log(d)}}}n.play=function(){B(this,"play");return this};n.pause=function(){B(this,"pause");return this};n.paused=function(){return A(this,"paused")===j?j:f};
n.currentTime=function(a){return a!==c?(this.n.pc=a,B(this,"setCurrentTime",a),this.Ga&&this.g("timeupdate"),this):this.n.currentTime=A(this,"currentTime")||0};n.duration=function(a){return a!==c?(this.n.duration=parseFloat(a),this):this.n.duration};n.buffered=function(){var a=A(this,"buffered"),b=this.n.wa=this.n.wa||0;a&&(0<a.length&&a.end(0)!==b)&&(b=a.end(0),this.n.wa=b);return u.ya(b)};function la(a){return a.duration()?a.buffered().end(0)/a.duration():0}
n.volume=function(a){if(a!==c)return a=Math.max(0,Math.min(1,parseFloat(a))),this.n.volume=a,B(this,"setVolume",a),u.Rb(a),this;a=parseFloat(A(this,"volume"));return isNaN(a)?1:a};n.muted=function(a){return a!==c?(B(this,"setMuted",a),this):A(this,"muted")||j};n.ta=function(){return A(this,"supportsFullScreen")||j};
n.ra=function(){var a=u.Na.ra;this.O=f;a?(u.e(document,a.T,u.bind(this,function(){this.O=document[a.O];this.O===j&&u.j(document,a.T,arguments.callee);this.g("fullscreenchange")})),this.i.F.Wa===j&&this.options.flash.iFrameMode!==f&&(this.pause(),ka(this),u.e(document,a.T,u.bind(this,function(){u.j(document,a.T,arguments.callee);ja(this,this.Q,{src:this.n.src})}))),this.b[a.Nb]()):this.i.ta()?(this.g("fullscreenchange"),B(this,"enterFullScreen")):(this.g("fullscreenchange"),this.Cb=f,this.yb=document.documentElement.style.overflow,
u.e(document,"keydown",u.bind(this,this.Va)),document.documentElement.style.overflow="hidden",u.m(document.body,"vjs-full-window"),u.m(this.b,"vjs-fullscreen"),this.g("enterFullWindow"));return this};function na(a){var b=u.Na.ra;a.O=j;b?(a.i.F.Wa===j&&a.options.flash.iFrameMode!==f&&(a.pause(),ka(a),u.e(document,b.T,u.bind(a,function(){u.j(document,b.T,arguments.callee);ja(this,this.Q,{src:this.n.src})}))),document[b.vb]()):(a.i.ta()?B(a,"exitFullScreen"):oa(a),a.g("fullscreenchange"))}
n.Va=function(a){27===a.keyCode&&(this.O===f?na(this):oa(this))};function oa(a){a.Cb=j;u.j(document,"keydown",a.Va);document.documentElement.style.overflow=a.yb;u.u(document.body,"vjs-full-window");u.u(a.b,"vjs-fullscreen");a.g("exitFullWindow")}
n.src=function(a){if(a instanceof Array){var b;a:{b=a;for(var d=0,e=this.options.techOrder;d<e.length;d++){var g=u.I(e[d]),q=window.videojs[g];if(q.isSupported())for(var m=0,r=b;m<r.length;m++){var p=r[m];if(q.canPlaySource(p)){b={source:p,i:g};break a}}}b=j}b?(a=b.source,b=b.i,b==this.Q?this.src(a):ja(this,b,a)):this.b.appendChild(u.d("p",{innerHTML:'Sorry, no compatible source and playback technology were found for this video. Try using another browser like <a href="http://www.google.com/chrome">Google Chrome</a> or download the latest <a href="http://get.adobe.com/flashplayer/">Adobe Flash Player</a>.'}))}else a instanceof
Object?window.videojs[this.Q].canPlaySource(a)?this.src(a.src):this.src([a]):(this.n.src=a,this.U?(B(this,"src",a),"auto"==this.options.preload&&this.load(),this.options.autoplay&&this.play()):this.G(function(){this.src(a)}));return this};n.load=function(){B(this,"load");return this};n.currentSrc=function(){return A(this,"currentSrc")||this.n.src||""};n.ca=function(a){return a!==c?(B(this,"setPreload",a),this.options.preload=a,this):A(this,"preload")};
n.autoplay=function(a){return a!==c?(B(this,"setAutoplay",a),this.options.autoplay=a,this):A(this,"autoplay")};n.loop=function(a){return a!==c?(B(this,"setLoop",a),this.options.loop=a,this):A(this,"loop")};n.controls=function(){return this.options.controls};n.poster=function(){return A(this,"poster")};n.error=function(){return A(this,"error")};var pa,qa,ra,sa;
if(document.fc!==c)pa="requestFullscreen",qa="exitFullscreen",ra="fullscreenchange",sa="fullScreen";else for(var ta=["moz","webkit"],ua=ta.length-1;0<=ua;ua--){var C=ta[ua];if(("moz"!=C||document.mozFullScreenEnabled)&&document[C+"CancelFullScreen"]!==c)pa=C+"RequestFullScreen",qa=C+"CancelFullScreen",ra=C+"fullscreenchange",sa="webkit"==C?C+"IsFullScreen":C+"FullScreen"}pa&&(u.Na.ra={Nb:pa,vb:qa,T:ra,O:sa});
function va(a,b,d){y.call(this,a,b,d);if(!a.options.sources||0===a.options.sources.length){b=0;for(d=a.options.techOrder;b<d.length;b++){var e=u.I(d[b]),g=window.videojs[e];if(g&&g.isSupported()){ja(a,e);break}}}else a.src(a.options.sources)}t(va,y);function D(a,b){y.call(this,a,b)}t(D,y);D.prototype.v=function(){return"vjs-control "+D.h.v.call(this)};function E(a,b){y.call(this,a,b);a.z("play",u.bind(this,function(){this.ha();this.a.e("mouseover",u.bind(this,this.ha));this.a.e("mouseout",u.bind(this,this.Aa))}))}t(E,y);n=E.prototype;n.options={Fb:"play",children:{playToggle:{},fullscreenToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},progressControl:{},volumeControl:{},muteToggle:{}}};
n.d=function(){return u.d("div",{className:"vjs-control-bar"})};n.ha=function(){E.h.ha.call(this);this.a.g("controlsvisible")};n.Aa=function(){E.h.Aa.call(this);this.a.g("controlshidden")};n.$a=function(){this.b.style.opacity="1"};function F(a,b){y.call(this,a,b);this.e("click",this.k);this.e("focus",this.ma);this.e("blur",this.la)}t(F,D);n=F.prototype;
n.d=function(a,b){b=u.s({className:this.v(),innerHTML:'<div><span class="vjs-control-text">'+(this.L||"Need Text")+"</span></div>",Ob:"button",tabIndex:0},b);return F.h.d.call(this,a,b)};n.k=function(){};n.ma=function(){u.e(document,"keyup",u.bind(this,this.ba))};n.ba=function(a){if(32==a.which||13==a.which)a.preventDefault(),this.k()};n.la=function(){u.j(document,"keyup",u.bind(this,this.ba))};function G(a,b){F.call(this,a,b)}t(G,F);G.prototype.L="Play";
G.prototype.v=function(){return"vjs-play-button "+G.h.v.call(this)};G.prototype.k=function(){this.a.play()};function H(a,b){F.call(this,a,b)}t(H,F);H.prototype.L="Play";H.prototype.v=function(){return"vjs-pause-button "+H.h.v.call(this)};H.prototype.k=function(){this.a.pause()};function wa(a,b){F.call(this,a,b);a.e("play",u.bind(this,this.Ka));a.e("pause",u.bind(this,this.Ja))}t(wa,F);n=wa.prototype;n.L="Play";n.v=function(){return"vjs-play-control "+wa.h.v.call(this)};
n.k=function(){this.a.paused()?this.a.play():this.a.pause()};n.Ka=function(){u.u(this.b,"vjs-paused");u.m(this.b,"vjs-playing")};n.Ja=function(){u.u(this.b,"vjs-playing");u.m(this.b,"vjs-paused")};function I(a,b){F.call(this,a,b)}t(I,F);I.prototype.L="Fullscreen";I.prototype.v=function(){return"vjs-fullscreen-control "+I.h.v.call(this)};I.prototype.k=function(){this.a.O?na(this.a):this.a.ra()};function J(a,b){F.call(this,a,b);a.e("play",u.bind(this,this.t));a.e("ended",u.bind(this,this.show))}
t(J,F);J.prototype.d=function(){return J.h.d.call(this,"div",{className:"vjs-big-play-button",innerHTML:"<span></span>"})};J.prototype.k=function(){this.a.currentTime()&&this.a.currentTime(0);this.a.play()};
function K(a,b){y.call(this,a,b);a.e("canplay",u.bind(this,this.t));a.e("canplaythrough",u.bind(this,this.t));a.e("playing",u.bind(this,this.t));a.e("seeked",u.bind(this,this.t));a.e("seeking",u.bind(this,this.show));a.e("seeked",u.bind(this,this.t));a.e("error",u.bind(this,this.show));a.e("waiting",u.bind(this,this.show))}t(K,y);
K.prototype.d=function(){var a,b;"string"==typeof this.a.f().style.WebkitBorderRadius||"string"==typeof this.a.f().style.MozBorderRadius||"string"==typeof this.a.f().style.cc||"string"==typeof this.a.f().style.ec?(a="vjs-loading-spinner",b='<div class="ball1"></div><div class="ball2"></div><div class="ball3"></div><div class="ball4"></div><div class="ball5"></div><div class="ball6"></div><div class="ball7"></div><div class="ball8"></div>'):(a="vjs-loading-spinner-fallback",b="");return K.h.d.call(this,
"div",{className:a,innerHTML:b})};function L(a,b){y.call(this,a,b);a.e("timeupdate",u.bind(this,this.ea))}t(L,y);L.prototype.d=function(){var a=L.h.d.call(this,"div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.content=u.d("div",{className:"vjs-current-time-display",innerHTML:"0:00"});a.appendChild(u.d("div").appendChild(this.content));return a};L.prototype.ea=function(){var a=this.a.cb?this.a.n.currentTime:this.a.currentTime();this.content.innerHTML=u.o(a,this.a.duration())};
function M(a,b){y.call(this,a,b);a.e("timeupdate",u.bind(this,this.ea))}t(M,y);M.prototype.d=function(){var a=M.h.d.call(this,"div",{className:"vjs-duration vjs-time-controls vjs-control"});this.content=u.d("div",{className:"vjs-duration-display",innerHTML:"0:00"});a.appendChild(u.d("div").appendChild(this.content));return a};M.prototype.ea=function(){this.a.duration()&&(this.content.innerHTML=u.o(this.a.duration()))};function xa(a,b){y.call(this,a,b)}t(xa,y);
xa.prototype.d=function(){return xa.h.d.call(this,"div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})};function N(a,b){y.call(this,a,b);a.e("timeupdate",u.bind(this,this.ea))}t(N,y);N.prototype.d=function(){var a=N.h.d.call(this,"div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.content=u.d("div",{className:"vjs-remaining-time-display",innerHTML:"-0:00"});a.appendChild(u.d("div").appendChild(this.content));return a};
N.prototype.ea=function(){this.a.duration()&&(this.content.innerHTML="-"+u.o(this.a.duration()-this.a.currentTime()))};function O(a,b){y.call(this,a,b);this.tb=this.D[this.options.barName];this.handle=this.D[this.options.handleName];a.e(this.ab,u.bind(this,this.update));this.e("mousedown",this.Ia);this.e("focus",this.ma);this.e("blur",this.la);this.a.e("controlsvisible",u.bind(this,this.update));a.G(u.bind(this,this.update))}t(O,y);n=O.prototype;
n.d=function(a,b){b=u.s({Ob:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},b);return O.h.d.call(this,a,b)};n.Ia=function(a){a.preventDefault();u.ub();u.e(document,"mousemove",u.bind(this,this.na));u.e(document,"mouseup",u.bind(this,this.oa));this.na(a)};n.oa=function(){u.Wb();u.j(document,"mousemove",this.na,j);u.j(document,"mouseup",this.oa,j);this.update()};
n.update=function(){var a,b=this.Xa(),d=this.handle,e=this.tb;isNaN(b)&&(b=0);a=b;if(d){a=this.b.offsetWidth;var g=d.f().offsetWidth;a=g?g/a:0;b*=1-a;a=b+a/2;d.f().style.left=u.round(100*b,2)+"%"}e.f().style.width=u.round(100*a,2)+"%"};function ya(a,b){var d=a.b,e=u.Ab(d),d=d.offsetWidth,g=a.handle;g&&(g=g.f().offsetWidth,e+=g/2,d-=g);return Math.max(0,Math.min(1,(b.pageX-e)/d))}n.ma=function(){u.e(document,"keyup",u.bind(this,this.ba))};
n.ba=function(a){37==a.which?(a.preventDefault(),this.fb()):39==a.which&&(a.preventDefault(),this.gb())};n.la=function(){u.j(document,"keyup",u.bind(this,this.ba))};function P(a,b){y.call(this,a,b)}t(P,y);P.prototype.options={children:{seekBar:{}}};P.prototype.d=function(){return P.h.d.call(this,"div",{className:"vjs-progress-control vjs-control"})};function Q(a,b){O.call(this,a,b)}t(Q,O);n=Q.prototype;
n.options={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"};n.ab="timeupdate";n.d=function(){return Q.h.d.call(this,"div",{className:"vjs-progress-holder"})};n.Xa=function(){return this.a.currentTime()/this.a.duration()};n.Ia=function(a){Q.h.Ia.call(this,a);this.a.cb=f;this.Xb=!this.a.paused();this.a.pause()};n.na=function(a){a=ya(this,a)*this.a.duration();a==this.a.duration()&&(a-=0.1);this.a.currentTime(a)};
n.oa=function(a){Q.h.oa.call(this,a);this.a.cb=j;this.Xb&&this.a.play()};n.gb=function(){this.a.currentTime(this.a.currentTime()+1)};n.fb=function(){this.a.currentTime(this.a.currentTime()-1)};function za(a,b){y.call(this,a,b);a.e("progress",u.bind(this,this.update))}t(za,y);za.prototype.d=function(){return za.h.d.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text">Loaded: 0%</span>'})};
za.prototype.update=function(){this.b.style&&(this.b.style.width=u.round(100*la(this.a),2)+"%")};function Aa(a,b){y.call(this,a,b)}t(Aa,y);Aa.prototype.d=function(){return Aa.h.d.call(this,"div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text">Progress: 0%</span>'})};function Ba(a,b){y.call(this,a,b)}t(Ba,y);Ba.prototype.d=function(){return Ba.h.d.call(this,"div",{className:"vjs-seek-handle",innerHTML:'<span class="vjs-control-text">00:00</span>'})};
function Ca(a,b){y.call(this,a,b)}t(Ca,y);Ca.prototype.options={children:{volumeBar:{}}};Ca.prototype.d=function(){return Ca.h.d.call(this,"div",{className:"vjs-volume-control vjs-control"})};function Da(a,b){O.call(this,a,b)}t(Da,O);n=Da.prototype;n.options={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"};n.ab="volumechange";n.d=function(){return Da.h.d.call(this,"div",{className:"vjs-volume-bar"})};n.na=function(a){this.a.volume(ya(this,a))};n.Xa=function(){return this.a.volume()};
n.gb=function(){this.a.volume(this.a.volume()+0.1)};n.fb=function(){this.a.volume(this.a.volume()-0.1)};function Ea(a,b){y.call(this,a,b)}t(Ea,y);Ea.prototype.d=function(){return Ea.h.d.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})};function Fa(a,b){y.call(this,a,b)}t(Fa,y);Fa.prototype.d=function(){return Fa.h.d.call(this,"div",{className:"vjs-volume-handle",innerHTML:'<span class="vjs-control-text"></span>'})};
function R(a,b){F.call(this,a,b);a.e("volumechange",u.bind(this,this.update))}t(R,F);R.prototype.d=function(){return R.h.d.call(this,"div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute</span></div>'})};R.prototype.k=function(){this.a.muted(this.a.muted()?j:f)};R.prototype.update=function(){var a=this.a.volume(),b=3;0===a||this.a.muted()?b=0:0.33>a?b=1:0.67>a&&(b=2);for(a=0;4>a;a++)u.u(this.b,"vjs-vol-"+a);u.m(this.b,"vjs-vol-"+b)};
function Ga(a,b){F.call(this,a,b);this.a.options.poster||this.t();a.e("play",u.bind(this,this.t))}t(Ga,F);Ga.prototype.d=function(){var a=u.d("img",{className:"vjs-poster",tabIndex:-1});this.a.options.poster&&(a.src=this.a.options.poster);return a};Ga.prototype.k=function(){this.a.play()};function S(a,b){y.call(this,a,b)}t(S,y);function Ha(a,b){a.C(b);b.e("click",u.bind(a,function(){ga(this)}))}S.prototype.d=function(){return S.h.d.call(this,"ul",{className:"vjs-menu"})};
function T(a,b){F.call(this,a,b);b.selected&&this.m("vjs-selected")}t(T,F);T.prototype.d=function(a,b){return T.h.d.call(this,"li",u.s({className:"vjs-menu-item",innerHTML:this.options.label},b))};T.prototype.k=function(){this.selected(f)};T.prototype.selected=function(a){a?this.m("vjs-selected"):this.u("vjs-selected")};function U(a,b,d){y.call(this,a,b,d)}t(U,y);U.prototype.k=function(){this.a.options.controls&&(this.a.paused()?this.a.play():this.a.pause())};u.media={};u.media.ua="play pause paused currentTime setCurrentTime duration buffered volume setVolume muted setMuted width height supportsFullScreen enterFullScreen src load currentSrc preload setPreload autoplay setAutoplay loop setLoop error networkState readyState seeking initialTime startOffsetTime played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks defaultPlaybackRate playbackRate mediaGroup controller controls defaultMuted".split(" ");
function Ia(){var a=u.media.ua[i];return function(){throw Error('The "'+a+"\" method is not available on the playback technology's API");}}for(var i=u.media.ua.length-1;0<=i;i--)U.prototype[u.media.ua[i]]=Ia();function V(a,b,d){y.call(this,a,b,d);(b=b.source)&&this.b.currentSrc==b.src?a.g("loadstart"):b&&(this.b.src=b.src);a.G(function(){this.options.autoplay&&this.paused()&&(this.H.poster=h,this.play())});this.e("click",this.k);for(a=Ja.length-1;0<=a;a--)u.e(this.b,Ja[a],u.bind(this.a,this.Ta));z(this)}t(V,U);n=V.prototype;n.l=function(){for(var a=Ja.length-1;0<=a;a--)u.j(this.b,Ja[a],u.bind(this.a,this.Ta));V.h.l.call(this)};
n.d=function(){var a=this.a,b=a.H;if(!b||this.F.Gb===j)b&&a.f().removeChild(b),b=u.createElement("video",{id:b.id||a.id+"_html5_api",className:b.className||"vjs-tech"}),u.$(b,a.f);for(var d=["autoplay","preload","loop","muted"],e=d.length-1;0<=e;e--){var g=d[e];a.options[g]!==h&&(b[g]=a.options[g])}return b};n.Ta=function(a){this.g(a);a.stopPropagation()};n.play=function(){this.b.play()};n.pause=function(){this.b.pause()};n.paused=function(){return this.b.paused};n.currentTime=function(){return this.b.currentTime};
n.Qb=function(a){try{this.b.currentTime=a}catch(b){u.log(b,"Video is not ready. (Video.js)")}};n.duration=function(){return this.b.duration||0};n.buffered=function(){return this.b.buffered};n.volume=function(){return this.b.volume};n.Vb=function(a){this.b.volume=a};n.muted=function(){return this.b.muted};n.Tb=function(a){this.b.muted=a};n.width=function(){return this.b.offsetWidth};n.height=function(){return this.b.offsetHeight};
n.ta=function(){return"function"==typeof this.b.webkitEnterFullScreen&&!navigator.userAgent.match("Chrome")&&!navigator.userAgent.match("Mac OS X 10.5")?f:j};n.src=function(a){this.b.src=a};n.load=function(){this.b.load()};n.currentSrc=function(){return this.b.currentSrc};n.ca=function(){return this.b.ca};n.Ub=function(a){this.b.ca=a};n.autoplay=function(){return this.b.autoplay};n.Pb=function(a){this.b.autoplay=a};n.loop=function(){return this.b.loop};n.Sb=function(a){this.b.loop=a};n.error=function(){return this.b.error};
n.controls=function(){return this.a.options.controls};var Ja="loadstart suspend abort error emptied stalled loadedmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate progress play pause ratechange volumechange".split(" ");V.prototype.F={kc:u.qb.webkitEnterFullScreen?!u.A.match("Chrome")&&!u.A.match("Mac OS X 10.5")?f:j:j,Gb:!u.mb};
u.kb&&3>u.jb&&(document.createElement("video").constructor.prototype.canPlayType=function(a){return a&&-1!=a.toLowerCase().indexOf("video/mp4")?"maybe":""});function W(a,b,d){y.call(this,a,b,d);var e=b.source,g=b.Lb;d=this.b=u.d("div",{id:a.id()+"_temp_flash"});var q=a.id()+"_flash_api";a=a.options;var m=u.s({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.ca,loop:a.loop,muted:a.muted},b.flashVars),r=u.s({wmode:"opaque",bgcolor:"#000000"},b.params),p=u.s({id:q,name:q,"class":"vjs-tech"},b.attributes);e&&(m.src=encodeURIComponent(u.ia(e.src)));
u.$(d,g);b.startTime&&this.G(function(){this.load();this.play();this.currentTime(b.startTime)});if(b.nc===f&&!u.lb){var w=u.d("iframe",{id:q+"_iframe",name:q+"_iframe",className:"vjs-tech",scrolling:"no",marginWidth:0,marginHeight:0,frameBorder:0});m.readyFunction="ready";m.eventProxyFunction="events";m.errorEventProxyFunction="errors";u.e(w,"load",u.bind(this,function(){var a,d=w.contentWindow;a=w.contentDocument?w.contentDocument:w.contentWindow.document;a.write(Ka(b.swf,m,r,p));d.a=this.a;d.G=
u.bind(this.a,function(b){b=a.getElementById(b);var d=this.i;d.f=b;u.e(b,"click",d.bind(d.k));La(d)});d.zb=u.bind(this.a,function(a,b){this&&"flash"===this.Q&&this.g(b)});d.jc=u.bind(this.a,function(a,b){u.log("Flash Error",b)})}));d.parentNode.replaceChild(w,d)}else{a=Ka(b.swf,m,r,p);a=u.d("div",{innerHTML:a}).childNodes[0];e=d.parentNode;d.parentNode.replaceChild(a,d);var eb=e.childNodes[0];setTimeout(function(){eb.style.display="block"},1E3)}}t(W,U);n=W.prototype;n.l=function(){W.h.l.call(this)};
n.play=function(){this.b.vjs_play()};n.pause=function(){this.b.vjs_pause()};n.src=function(a){a=u.ia(a);this.b.vjs_src(a);if(this.a.autoplay()){var b=this;setTimeout(function(){b.play()},0)}};n.load=function(){this.b.vjs_load()};n.poster=function(){this.b.vjs_getProperty("poster")};n.buffered=function(){return u.ya(this.b.vjs_getProperty("buffered"))};n.ta=l(j);
var Ma=W.prototype,Na="preload currentTime defaultPlaybackRate playbackRate autoplay loop mediaGroup controller controls volume muted defaultMuted".split(" "),Oa="error currentSrc networkState readyState seeking initialTime duration startOffsetTime paused played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks".split(" ");function Pa(){var a=Na[i],b=a.charAt(0).toUpperCase()+a.slice(1);Ma["set"+b]=function(b){return this.b.vjs_setProperty(a,b)}}
function Qa(a){Ma[a]=function(){return this.b.vjs_getProperty(a)}}for(i=0;i<Na.length;i++)Qa(Na[i]),Pa();for(i=0;i<Oa.length;i++)Qa(Oa[i]);W.prototype.F={Bb:{"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},bb:j,hb:j,Wa:j,qc:!u.A.match("Firefox")};W.onReady=function(a){a=u.f(a);var b=a.a||a.parentNode.a,d=b.i;a.a=b;d.b=a;d.e("click",d.k);La(d)};function La(a){a.f().vjs_getProperty?z(a):setTimeout(function(){La(a)},50)}W.onEvent=function(a,b){u.f(a).a.g(b)};
W.onError=function(a,b){u.f(a).a.g("error");u.log("Flash Error",b,a)};function Ka(a,b,d,e){var g="",q="",m="";b&&u.Y(b,function(a,b){g+=a+"="+b+"&amp;"});d=u.s({movie:a,flashvars:g,allowScriptAccess:"always",allowNetworking:"all"},d);u.Y(d,function(a,b){q+='<param name="'+a+'" value="'+b+'" />'});e=u.s({data:a,width:"100%",height:"100%"},e);u.Y(e,function(a,b){m+=a+'="'+b+'" '});return'<object type="application/x-shockwave-flash"'+m+">"+q+"</object>"};function X(a){a.da=a.da||[];return a.da}function Ra(a,b,d){for(var e=a.da,g=0,q=e.length,m,r;g<q;g++)m=e[g],m.id()===b?(m.show(),r=m):d&&(m.w()==d&&0<m.mode())&&m.disable();(b=r?r.w():d?d:j)&&a.g(b+"trackchange")}function Y(a,b){y.call(this,a,b);this.K=b.id||"vjs_"+b.kind+"_"+b.language+"_"+u.p++;this.eb=b.src;this.wb=b["default"]||b.dflt;this.tc=b.title;this.oc=b.srclang;this.Eb=b.label;this.S=[];this.Oa=[];this.W=this.X=0}t(Y,y);n=Y.prototype;n.w=k("r");n.src=k("eb");n.za=k("wb");n.label=k("Eb");
n.readyState=k("X");n.mode=k("W");n.d=function(){return Y.h.d.call(this,"div",{className:"vjs-"+this.r+" vjs-text-track"})};n.show=function(){Sa(this);this.W=2;Y.h.show.call(this)};n.t=function(){Sa(this);this.W=1;Y.h.t.call(this)};n.disable=function(){2==this.W&&this.t();this.a.j("timeupdate",u.bind(this,this.update,this.K));this.a.j("ended",u.bind(this,this.reset,this.K));this.reset();this.a.D.textTrackDisplay.removeChild(this);this.W=0};
function Sa(a){0===a.X&&a.load();0===a.W&&(a.a.e("timeupdate",u.bind(a,a.update,a.K)),a.a.e("ended",u.bind(a,a.reset,a.K)),("captions"===a.r||"subtitles"===a.r)&&a.a.D.textTrackDisplay.C(a))}n.load=function(){0===this.X&&(this.X=1,u.get(this.eb,u.bind(this,this.Mb),u.bind(this,this.Ha)))};n.Ha=function(a){this.error=a;this.X=3;this.g("error")};
n.Mb=function(a){var b,d;a=a.split("\n");for(var e="",g=1,q=a.length;g<q;g++)if(e=u.trim(a[g])){-1==e.indexOf("--\x3e")?(b=e,e=u.trim(a[++g])):b=this.S.length;b={id:b,index:this.S.length};d=e.split(" --\x3e ");b.startTime=Ta(d[0]);b.Z=Ta(d[1]);for(d=[];a[++g]&&(e=u.trim(a[g]));)d.push(e);b.text=d.join("<br/>");this.S.push(b)}this.X=2;this.g("loaded")};
function Ta(a){var b=a.split(":");a=0;var d,e,g;3==b.length?(d=b[0],e=b[1],b=b[2]):(d=0,e=b[0],b=b[1]);b=b.split(/\s+/);b=b.splice(0,1)[0];b=b.split(/\.|,/);g=parseFloat(b[1]);b=b[0];a+=3600*parseFloat(d);a+=60*parseFloat(e);a+=parseFloat(b);g&&(a+=g/1E3);return a}
n.update=function(){if(0<this.S.length){var a=this.a.currentTime();if(this.La===c||a<this.La||this.ka<=a){var b=this.S,d=this.a.duration(),e=0,g=j,q=[],m,r,p,w;a>=this.ka||this.ka===c?w=this.Ba!==c?this.Ba:0:(g=f,w=this.Ea!==c?this.Ea:b.length-1);for(;;){p=b[w];if(p.Z<=a)e=Math.max(e,p.Z),p.fa&&(p.fa=j);else if(a<p.startTime){if(d=Math.min(d,p.startTime),p.fa&&(p.fa=j),!g)break}else g?(q.splice(0,0,p),r===c&&(r=w),m=w):(q.push(p),m===c&&(m=w),r=w),d=Math.min(d,p.Z),e=Math.max(e,p.startTime),p.fa=
f;if(g)if(0===w)break;else w--;else if(w===b.length-1)break;else w++}this.Oa=q;this.ka=d;this.La=e;this.Ba=m;this.Ea=r;a=this.Oa;b="";d=0;for(e=a.length;d<e;d++)b+='<span class="vjs-tt-cue">'+a[d].text+"</span>";this.b.innerHTML=b;this.g("cuechange")}}};n.reset=function(){this.ka=0;this.La=this.a.duration();this.Ea=this.Ba=0};function Ua(a,b){Y.call(this,a,b)}t(Ua,Y);Ua.prototype.r="captions";function Va(a,b){Y.call(this,a,b)}t(Va,Y);Va.prototype.r="subtitles";function Wa(a,b){Y.call(this,a,b)}
t(Wa,Y);Wa.prototype.r="chapters";function Xa(a,b,d){y.call(this,a,b,d);if(a.options.tracks&&0<a.options.tracks.length){b=this.a;a=a.options.tracks;var e;for(d=0;d<a.length;d++){e=a[d];var g=b,q=e.kind,m=e.label,r=e.language,p=e;e=g.da=g.da||[];p=p||{};p.kind=q;p.label=m;p.language=r;q=u.I(q||"subtitles");g=new window.videojs[q+"Track"](g,p);e.push(g)}}}t(Xa,y);Xa.prototype.d=function(){return Xa.h.d.call(this,"div",{className:"vjs-text-track-display"})};
function Z(a,b){var d=this.R=b.track;b.label=d.label();b.selected=d.za();T.call(this,a,b);this.a.e(d.w()+"trackchange",u.bind(this,this.update))}t(Z,T);Z.prototype.k=function(){Z.h.k.call(this);Ra(this.a,this.R.id(),this.R.w())};Z.prototype.update=function(){2==this.R.mode()?this.selected(f):this.selected(j)};function Ya(a,b){b.track={w:function(){return b.kind},a:a,label:l("Off"),za:l(j),mode:l(j)};Z.call(this,a,b)}t(Ya,Z);Ya.prototype.k=function(){Ya.h.k.call(this);Ra(this.a,this.R.id(),this.R.w())};
Ya.prototype.update=function(){for(var a=X(this.a),b=0,d=a.length,e,g=f;b<d;b++)e=a[b],e.w()==this.R.w()&&2==e.mode()&&(g=j);g?this.selected(f):this.selected(j)};function $(a,b){F.call(this,a,b);this.V=this.xa();0===this.aa.length&&this.t()}t($,F);n=$.prototype;n.xa=function(){var a=new S(this.a);a.f().appendChild(u.d("li",{className:"vjs-menu-title",innerHTML:u.I(this.r)}));Ha(a,new Ya(this.a,{kind:this.r}));this.aa=this.Ra();for(var b=0;b<this.aa.length;b++)Ha(a,this.aa[b]);this.C(a);return a};
n.Ra=function(){for(var a=[],b,d=0;d<X(this.a).length;d++)b=X(this.a)[d],b.w()===this.r&&a.push(new Z(this.a,{track:b}));return a};n.v=function(){return this.className+" vjs-menu-button "+$.h.v.call(this)};n.ma=function(){this.V.$a();u.z(this.V.b.childNodes[this.V.b.childNodes.length-1],"blur",u.bind(this,function(){ga(this.V)}))};n.la=function(){};n.k=function(){this.z("mouseout",u.bind(this,function(){ga(this.V);this.b.blur()}))};function Za(a,b){$.call(this,a,b)}t(Za,$);Za.prototype.r="captions";
Za.prototype.L="Captions";Za.prototype.className="vjs-captions-button";function $a(a,b){$.call(this,a,b)}t($a,$);$a.prototype.r="subtitles";$a.prototype.L="Subtitles";$a.prototype.className="vjs-subtitles-button";function ab(a,b){$.call(this,a,b)}t(ab,$);n=ab.prototype;n.r="chapters";n.L="Chapters";n.className="vjs-chapters-button";n.Ra=function(){for(var a=[],b,d=0;d<X(this.a).length;d++)b=X(this.a)[d],b.w()===this.r&&a.push(new Z(this.a,{track:b}));return a};
n.xa=function(){for(var a=X(this.a),b=0,d=a.length,e,g,q=this.aa=[];b<d;b++)if(e=a[b],e.w()==this.r&&e.za()){if(2>e.readyState()){this.gc=e;e.e("loaded",u.bind(this,this.xa));return}g=e;break}a=this.V=new S(this.a);a.b.appendChild(u.d("li",{className:"vjs-menu-title",innerHTML:u.I(this.r)}));if(g){e=g.S;for(var m,b=0,d=e.length;b<d;b++)m=e[b],m=new bb(this.a,{track:g,cue:m}),q.push(m),a.C(m)}this.C(a);0<this.aa.length&&this.show();return a};
function bb(a,b){var d=this.R=b.track,e=this.cue=b.cue,g=a.currentTime();b.label=e.text;b.selected=e.startTime<=g&&g<e.Z;T.call(this,a,b);d.e("cuechange",u.bind(this,this.update))}t(bb,T);bb.prototype.k=function(){bb.h.k.call(this);this.a.currentTime(this.cue.startTime);this.update(this.cue.startTime)};bb.prototype.update=function(){var a=this.cue,b=this.a.currentTime();a.startTime<=b&&b<a.Z?this.selected(f):this.selected(j)};
u.s(E.prototype.options.children,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});if(JSON&&"function"===JSON.parse)u.JSON=JSON;else{u.JSON={};var cb=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;u.JSON.parse=function(a,b){function d(a,e){var m,r,p=a[e];if(p&&"object"===typeof p)for(m in p)Object.prototype.hasOwnProperty.call(p,m)&&(r=d(p,m),r!==c?p[m]=r:delete p[m]);return b.call(a,e,p)}var e;a=String(a);cb.lastIndex=0;cb.test(a)&&(a=a.replace(cb,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?d({"":e},""):e;throw new SyntaxError("JSON.parse");}};u.va=function(){var a,b,d=document.getElementsByTagName("video");if(d&&0<d.length)for(var e=0,g=d.length;e<g;e++)if((b=d[e])&&b.getAttribute)b.a===c&&(a=b.getAttribute("data-setup"),a!==h&&(a=u.JSON.parse(a||"{}"),x(b,a)));else{u.Pa();break}else u.Zb||u.Pa()};u.Pa=function(){setTimeout(u.va,1)};u.z(window,"load",function(){u.Zb=f});u.va();s("videojs",u);s("_V_",u);s("videojs.options",u.options);s("videojs.cache",u.M);s("videojs.Component",y);y.prototype.dispose=y.prototype.l;y.prototype.createEl=y.prototype.d;y.prototype.getEl=y.prototype.mc;y.prototype.addChild=y.prototype.C;y.prototype.getChildren=y.prototype.lc;y.prototype.on=y.prototype.e;y.prototype.off=y.prototype.j;y.prototype.one=y.prototype.z;y.prototype.trigger=y.prototype.g;y.prototype.show=y.prototype.show;y.prototype.hide=y.prototype.t;y.prototype.width=y.prototype.width;
y.prototype.height=y.prototype.height;y.prototype.dimensions=y.prototype.xb;s("videojs.Player",v);s("videojs.MediaLoader",va);s("videojs.PosterImage",Ga);s("videojs.LoadingSpinner",K);s("videojs.BigPlayButton",J);s("videojs.ControlBar",E);s("videojs.TextTrackDisplay",Xa);s("videojs.Control",D);s("videojs.ControlBar",E);s("videojs.Button",F);s("videojs.PlayButton",G);s("videojs.PauseButton",H);s("videojs.PlayToggle",wa);s("videojs.FullscreenToggle",I);s("videojs.BigPlayButton",J);
s("videojs.LoadingSpinner",K);s("videojs.CurrentTimeDisplay",L);s("videojs.DurationDisplay",M);s("videojs.TimeDivider",xa);s("videojs.RemainingTimeDisplay",N);s("videojs.Slider",O);s("videojs.ProgressControl",P);s("videojs.SeekBar",Q);s("videojs.LoadProgressBar",za);s("videojs.PlayProgressBar",Aa);s("videojs.SeekHandle",Ba);s("videojs.VolumeControl",Ca);s("videojs.VolumeBar",Da);s("videojs.VolumeLevel",Ea);s("videojs.VolumeHandle",Fa);s("videojs.MuteToggle",R);s("videojs.PosterImage",Ga);
s("videojs.Menu",S);s("videojs.MenuItem",T);s("videojs.SubtitlesButton",$a);s("videojs.CaptionsButton",Za);s("videojs.ChaptersButton",ab);s("videojs.MediaTechController",U);s("videojs.Html5",V);V.Events=Ja;V.isSupported=function(){return!!document.createElement("video").canPlayType};V.canPlaySource=function(a){return!!document.createElement("video").canPlayType(a.type)};V.prototype.setCurrentTime=V.prototype.Qb;V.prototype.setVolume=V.prototype.Vb;V.prototype.setMuted=V.prototype.Tb;
V.prototype.setPreload=V.prototype.Ub;V.prototype.setAutoplay=V.prototype.Pb;V.prototype.setLoop=V.prototype.Sb;s("videojs.Flash",W);W.Events=W.ac;
W.isSupported=function(){var a="0,0,0";try{a=(new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(d){}}return 10<=a.split(",")[0]};W.canPlaySource=function(a){if(a.type in W.prototype.F.Bb)return"maybe"};
W.onReady=W.onReady;s("videojs.TextTrack",Y);Y.prototype.label=Y.prototype.label;s("videojs.CaptionsTrack",Ua);s("videojs.SubtitlesTrack",Va);s("videojs.ChaptersTrack",Wa);s("videojs.autoSetup",u.va);module("Component");test("should create an element",function(){var a=new y({},{});ok(a.f().nodeName)});test("should add a child component",function(){var a=new y({}),b=a.C("component");ok(1===a.children().length);ok(a.children()[0]===b);ok(a.f().childNodes[0]===b.f());ok(a.D.component===b);var d=ok,e=b.id();d(a.ga[e]===b)});test("should init child coponents from options",function(){var a=new y({},{children:{component:f}});ok(1===a.children().length);ok(1===a.f().childNodes.length)});
test("should dispose of component and children",function(){var a=new y({}),b=a.C("Component");ok(1===a.children().length);a.e("click",l(f));var d=u.getData(a.f()),e=a.f()[u.expando];a.l();ok(!a.children(),"component children were deleted");ok(!a.f(),"component element was deleted");ok(!b.children(),"child children were deleted");ok(!b.f(),"child element was deleted");ok(!u.M[e],"listener cache nulled");ok(u.ja(d),"original listener cache object was emptied")});
u.g=function(a,b){var d=u.Xa(a)?u.getData(a):{},e=a.parentNode||a.ownerDocument;"string"===typeof b&&(b={type:b,target:a});b=u.Ta(b);d.I&&d.I.call(a,b);if(e&&!b.Ca())u.g(e,b);else if(!e&&!b.Ya()&&(d=u.getData(b.target),b.target[b.type])){d.disabled=f;if("function"===typeof b.target[b.type])b.target[b.type]();d.disabled=k}};u.z=function(a,b,d){u.e(a,b,function(){u.j(a,b,arguments.callee);d.apply(this,arguments)})};u.gc={};u.d=function(a,b){var d=document.createElement(a||"div"),e;for(e in b)b.hasOwnProperty(e)&&(d[e]=b[e]);return d};u.H=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};u.S=function(a,b){if(a)for(var d in a)a.hasOwnProperty(d)&&b.call(this,d,a[d])};u.t=function(a,b){if(!b)return a;for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a};u.bind=function(a,b,d){function e(){return b.apply(a,arguments)}b.p||(b.p=u.p++);e.p=d?d+"_"+b.p:b.p;return e};u.L={};u.p=1;u.expando="vdata"+(new Date).getTime();
u.getData=function(a){var b=a[u.expando];b||(b=a[u.expando]=u.p++,u.L[b]={});return u.L[b]};u.Xa=function(a){a=a[u.expando];return!(!a||u.ia(u.L[a]))};u.La=function(a){var b=a[u.expando];if(b){delete u.L[b];try{delete a[u.expando]}catch(d){a.removeAttribute?a.removeAttribute(u.expando):a[u.expando]=h}}};u.ia=function(a){for(var b in a)if(a[b]!==h)return k;return f};u.m=function(a,b){-1==(" "+a.className+" ").indexOf(" "+b+" ")&&(a.className=""===a.className?b:a.className+" "+b)};
u.u=function(a,b){if(-1!=a.className.indexOf(b)){var d=a.className.split(" ");d.splice(d.indexOf(b),1);a.className=d.join(" ")}};u.pb=u.d("video");u.A=navigator.userAgent;u.nb=!!u.A.match(/iPad/i);u.mb=!!u.A.match(/iPhone/i);u.ob=!!u.A.match(/iPod/i);u.lb=u.nb||u.mb||u.ob;var ba=u,ca;var da=u.A.match(/OS (\d+)_/i);ca=da&&da[1]?da[1]:c;ba.$b=ca;u.jb=!!u.A.match(/Android.*AppleWebKit/i);var ea=u,fa=u.A.match(/Android (\d+)\./i);ea.ib=fa&&fa[1]?fa[1]:h;u.kb=function(){return!!u.A.match("Firefox")};
u.M=function(a){var b={};if(a&&a.attributes&&0<a.attributes.length)for(var d=a.attributes,e,g,p=d.length-1;0<=p;p--){e=d[p].name;g=d[p].value;if("boolean"===typeof a[e]||-1!==",autoplay,controls,loop,muted,default,".indexOf(","+e+","))g=g!==h?f:k;b[e]=g}return b};
u.Ba=function(a,b){var d="";document.defaultView&&document.defaultView.getComputedStyle?d=document.defaultView.getComputedStyle(a,"").getPropertyValue(b):a.currentStyle&&(b=b.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),d=a.currentStyle[b]);return d};u.Z=function(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)};u.Ma={};u.f=function(a){0===a.indexOf("#")&&(a=a.slice(1));return document.getElementById(a)};
u.o=function(a,b){b=b||a;var d=Math.floor(a%60),e=Math.floor(a/60%60),g=Math.floor(a/3600),p=Math.floor(b/60%60),j=Math.floor(b/3600),g=0<g||0<j?g+":":"";return g+(((g||10<=p)&&10>e?"0"+e:e)+":")+(10>d?"0"+d:d)};u.tb=function(){document.body.focus();document.onselectstart=m(k)};u.Ub=function(){document.onselectstart=m(f)};u.trim=function(a){return a.toString().replace(/^\s+/,"").replace(/\s+$/,"")};u.round=function(a,b){b||(b=0);return Math.round(a*Math.pow(10,b))/Math.pow(10,b)};
u.xa=function(a){return{length:1,start:m(0),end:function(){return a}}};
u.get=function(a,b,d){var e=0===a.indexOf("file:")||0===window.location.href.indexOf("file:")&&-1===a.indexOf("http");"undefined"===typeof XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new window.ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new window.ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(b){}try{return new window.ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw Error("This browser does not support XMLHttpRequest.");});var g=new XMLHttpRequest;try{g.open("GET",a)}catch(p){d(p)}g.onreadystatechange=
function(){4===g.readyState&&(200===g.status||e&&0===g.status?b(g.responseText):d&&d())};try{g.send()}catch(j){d&&d(j)}};u.Pb=function(a){var b=window.localStorage||k;if(b)try{b.volume=a}catch(d){22==d.code||1014==d.code?u.log("LocalStorage Full (VideoJS)",d):u.log("LocalStorage Error (VideoJS)",d)}};u.ha=function(a){a.match(/^https?:\/\//)||(a=u.d("div",{innerHTML:'<a href="'+a+'">x</a>'}).firstChild.href);return a};
u.log=function(){u.log.history=u.log.history||[];u.log.history.push(arguments);window.console&&window.console.log(Array.prototype.slice.call(arguments))};u.yb="getBoundingClientRect"in document.documentElement?function(a){var b;try{b=a.getBoundingClientRect()}catch(d){}if(!b)return 0;a=document.body;return b.left+(window.pageXOffset||a.scrollLeft)-(document.documentElement.clientLeft||a.clientLeft||0)}:function(a){for(var b=a.offsetLeft;a=a.offsetParent;)b+=a.offsetLeft;return b};function y(a,b,d){this.a=a;b=this.options=ga(this,this.options,b);this.J=b.id||(b.f&&b.f.id?b.f.id:a.id+"_component_"+u.p++);this.Fb=b.name||h;this.b=b.f?b.f:this.d();this.B=[];this.fa={};this.D={};if((a=this.options)&&a.children){var e=this;u.S(a.children,function(a,b){b!==k&&!b.Db&&(e[a]=e.C(a,b))})}z(this,d)}n=y.prototype;
n.l=function(){if(this.B)for(var a=this.B.length-1;0<=a;a--)this.B[a].l();this.D=this.fa=this.B=h;this.j();this.b.parentNode&&this.b.parentNode.removeChild(this.b);u.La(this.b);this.b=h};function ga(a,b,d){var e,g,p,j,r;p=Object.prototype.hasOwnProperty;g=Object.prototype.toString;b=b||{};e={};u.S(b,function(a,b){e[a]=b});if(!d)return e;for(j in d)p.call(d,j)&&(b=e[j],r=d[j],e[j]="[object Object]"===g.call(b)&&"[object Object]"===g.call(r)?ga(a,b,r):d[j]);return e}n.d=function(a,b){return u.d(a,b)};
n.f=l("b");n.id=l("J");n.name=l("Fb");n.children=l("B");n.C=function(a,b){var d,e,g;"string"===typeof a?(e=a,b=b||{},d=b.fc||u.H(e),b.name=e,d=new window.videojs[d](this.a||this,b)):d=a;e=d.name();g=d.id();this.B.push(d);g&&(this.fa[g]=d);e&&(this.D[e]=d);this.b.appendChild(d.f());return d};
n.removeChild=function(a){"string"===typeof a&&(a=this.D[a]);if(a&&this.B){for(var b=k,d=this.B.length-1;0<=d;d--)if(this.B[d]===a){b=f;this.B.splice(d,1);break}b&&(this.fa[a.id]=h,this.D[a.name]=h,(b=a.f())&&b.parentNode===this.b&&this.b.removeChild(a.f()))}};n.v=m("");n.e=function(a,b){u.e(this.b,a,u.bind(this,b));return this};n.j=function(a,b){u.j(this.b,a,b);return this};n.z=function(a,b){u.z(this.b,a,u.bind(this,b));return this};n.g=function(a,b){u.g(this.b,a,b);return this};
function z(a,b){b&&(a.U?b.call(a):(a.pa===c&&(a.pa=[]),a.pa.push(b)))}function A(a){a.U=f;var b=a.pa;if(b&&0<b.length){for(var d=0,e=b.length;d<e;d++)b[d].call(a);a.pa=[];a.g("ready")}}n.m=function(a){u.m(this.b,a);return this};n.u=function(a){u.u(this.b,a);return this};n.show=function(){this.b.style.display="block";return this};n.s=function(){this.b.style.display="none";return this};n.ga=function(){this.u("vjs-fade-out");this.m("vjs-fade-in");return this};
n.za=function(){this.u("vjs-fade-in");this.m("vjs-fade-out");return this};n.Za=function(){var a=this.b.style;a.display="block";a.opacity=1;a.Wb="visible";return this};function ha(a){a=a.b.style;a.display="";a.opacity="";a.Wb=""}n.width=function(a,b){return ia(this,"width",a,b)};n.height=function(a,b){return ia(this,"height",a,b)};n.wb=function(a,b){return this.width(a,f).height(b)};
function ia(a,b,d,e){if(d!==c)return a.b.style[b]=-1!==(""+d).indexOf("%")||-1!==(""+d).indexOf("px")?d:d+"px",e||a.g("resize"),a;if(!a.b)return 0;d=a.b.style[b];e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(a.b["offset"+u.H(b)],10)};function v(a,b,d){this.G=a;var e={};u.t(e,u.options);u.t(e,ja(a));u.t(e,b);this.n={};y.call(this,this,e,d);this.e("ended",this.Hb);this.e("play",this.Ja);this.e("pause",this.Ia);this.e("progress",this.Ib);this.e("durationchange",this.Gb);this.e("error",this.Ga);u.O[this.J]=this}t(v,y);n=v.prototype;n.l=function(){u.O[this.J]=h;this.G&&this.G.player&&(this.G.player=h);this.b&&this.b.player&&(this.b.player=h);clearInterval(this.oa);this.i&&this.i.l();v.h.l.call(this)};
function ja(a){var b={sources:[],tracks:[]};u.t(b,u.M(a));if(a.hasChildNodes())for(var d,e=a.childNodes,g=0,p=e.length;g<p;g++)a=e[g],d=a.nodeName.toLowerCase(),"source"===d?b.sources.push(u.M(a)):"track"===d&&b.tracks.push(u.M(a));return b}
n.d=function(){var a=this.b=v.h.d.call(this,"div"),b=this.G;b.removeAttribute("controls");b.removeAttribute("poster");b.removeAttribute("width");b.removeAttribute("height");if(b.hasChildNodes())for(var d=b.childNodes.length,e=0,g=b.childNodes;e<d;e++)("source"==g[0].nodeName.toLowerCase()||"track"==g[0].nodeName.toLowerCase())&&b.removeChild(g[0]);b.id=b.id||"vjs_video_"+u.p++;a.id=b.id;a.className=b.className;b.id+="_html5_api";b.className="vjs-tech";b.player=a.player=this;this.m("vjs-paused");this.width(this.options.width,
f);this.height(this.options.height,f);b.parentNode&&b.parentNode.insertBefore(a,b);u.Z(b,a);return a};
function ka(a,b,d){a.i?la(a):"Html5"!==b&&a.G&&(a.b.removeChild(a.G),a.G=h);a.P=b;a.U=k;var e=u.t({source:d,Jb:a.b},a.options[b.toLowerCase()]);d&&(d.src==a.n.src&&0<a.n.currentTime&&(e.startTime=a.n.currentTime),a.n.src=d.src);a.i=new window.videojs[b](a,e);z(a.i,function(){A(this.a);if(!this.F.ab){var a=this.a;a.Ea=f;a.oa=setInterval(u.bind(a,function(){this.n.va<this.buffered().end(0)?this.g("progress"):1==ma(this)&&(clearInterval(this.oa),this.g("progress"))}),500);a.i.z("progress",function(){this.F.ab=
f;var a=this.a;a.Ea=k;clearInterval(a.oa)})}this.F.gb||(a=this.a,a.Fa=f,a.e("play",a.hb),a.e("pause",a.ra),a.i.z("timeupdate",function(){this.F.gb=f;na(this.a)}))})}function la(a){a.i.l();a.Ea&&(a.Ea=k,clearInterval(a.oa));a.Fa&&na(a);a.i=k}function na(a){a.Fa=k;a.ra();a.j("play",a.hb);a.j("pause",a.ra)}n.hb=function(){this.Ra&&this.ra();this.Ra=setInterval(u.bind(this,function(){this.g("timeupdate")}),250)};n.ra=function(){clearInterval(this.Ra)};
n.Hb=function(){this.options.loop&&(this.currentTime(0),this.play())};n.Ja=function(){u.u(this.b,"vjs-paused");u.m(this.b,"vjs-playing")};n.Ia=function(){u.u(this.b,"vjs-playing");u.m(this.b,"vjs-paused")};n.Ib=function(){1==ma(this)&&this.g("loadedalldata")};n.Gb=function(){this.duration(B(this,"duration"))};n.Ga=function(a){u.log("Video Error",a)};function C(a,b,d){if(a.i.U)try{a.i[b](d)}catch(e){u.log(e)}else z(a.i,function(){this[b](d)})}
function B(a,b){if(a.i.U)try{return a.i[b]()}catch(d){if(a.i[b]===c)u.log("Video.js: "+b+" method not defined for "+a.P+" playback technology.",d);else{if("TypeError"==d.name)throw u.log("Video.js: "+b+" unavailable on "+a.P+" playback technology element.",d),a.i.U=k,d;u.log(d)}}}n.play=function(){C(this,"play");return this};n.pause=function(){C(this,"pause");return this};n.paused=function(){return B(this,"paused")===k?k:f};
n.currentTime=function(a){return a!==c?(this.n.nc=a,C(this,"setCurrentTime",a),this.Fa&&this.g("timeupdate"),this):this.n.currentTime=B(this,"currentTime")||0};n.duration=function(a){return a!==c?(this.n.duration=parseFloat(a),this):this.n.duration};n.buffered=function(){var a=B(this,"buffered"),b=this.n.va=this.n.va||0;a&&(0<a.length&&a.end(0)!==b)&&(b=a.end(0),this.n.va=b);return u.xa(b)};function ma(a){return a.duration()?a.buffered().end(0)/a.duration():0}
n.volume=function(a){if(a!==c)return a=Math.max(0,Math.min(1,parseFloat(a))),this.n.volume=a,C(this,"setVolume",a),u.Pb(a),this;a=parseFloat(B(this,"volume"));return isNaN(a)?1:a};n.muted=function(a){return a!==c?(C(this,"setMuted",a),this):B(this,"muted")||k};n.sa=function(){return B(this,"supportsFullScreen")||k};
n.qa=function(){var a=u.Ma.qa;this.N=f;a?(u.e(document,a.T,u.bind(this,function(){this.N=document[a.N];this.N===k&&u.j(document,a.T,arguments.callee);this.g("fullscreenchange")})),this.i.F.Va===k&&this.options.flash.iFrameMode!==f&&(this.pause(),la(this),u.e(document,a.T,u.bind(this,function(){u.j(document,a.T,arguments.callee);ka(this,this.P,{src:this.n.src})}))),this.b[a.Lb]()):this.i.sa()?(this.g("fullscreenchange"),C(this,"enterFullScreen")):(this.g("fullscreenchange"),this.Ab=f,this.xb=document.documentElement.style.overflow,
u.e(document,"keydown",u.bind(this,this.Ua)),document.documentElement.style.overflow="hidden",u.m(document.body,"vjs-full-window"),u.m(this.b,"vjs-fullscreen"),this.g("enterFullWindow"));return this};function oa(a){var b=u.Ma.qa;a.N=k;b?(a.i.F.Va===k&&a.options.flash.iFrameMode!==f&&(a.pause(),la(a),u.e(document,b.T,u.bind(a,function(){u.j(document,b.T,arguments.callee);ka(this,this.P,{src:this.n.src})}))),document[b.ub]()):(a.i.sa()?C(a,"exitFullScreen"):pa(a),a.g("fullscreenchange"))}
n.Ua=function(a){27===a.keyCode&&(this.N===f?oa(this):pa(this))};function pa(a){a.Ab=k;u.j(document,"keydown",a.Ua);document.documentElement.style.overflow=a.xb;u.u(document.body,"vjs-full-window");u.u(a.b,"vjs-fullscreen");a.g("exitFullWindow")}
n.src=function(a){if(a instanceof Array){var b;a:{b=a;for(var d=0,e=this.options.techOrder;d<e.length;d++){var g=u.H(e[d]),p=window.videojs[g];if(p.isSupported())for(var j=0,r=b;j<r.length;j++){var q=r[j];if(p.canPlaySource(q)){b={source:q,i:g};break a}}}b=k}b?(a=b.source,b=b.i,b==this.P?this.src(a):ka(this,b,a)):this.b.appendChild(u.d("p",{innerHTML:'Sorry, no compatible source and playback technology were found for this video. Try using another browser like <a href="http://www.google.com/chrome">Google Chrome</a> or download the latest <a href="http://get.adobe.com/flashplayer/">Adobe Flash Player</a>.'}))}else a instanceof
Object?window.videojs[this.P].canPlaySource(a)?this.src(a.src):this.src([a]):(this.n.src=a,this.U?(C(this,"src",a),"auto"==this.options.preload&&this.load(),this.options.autoplay&&this.play()):z(this,function(){this.src(a)}));return this};n.load=function(){C(this,"load");return this};n.currentSrc=function(){return B(this,"currentSrc")||this.n.src||""};n.ba=function(a){return a!==c?(C(this,"setPreload",a),this.options.preload=a,this):B(this,"preload")};
n.autoplay=function(a){return a!==c?(C(this,"setAutoplay",a),this.options.autoplay=a,this):B(this,"autoplay")};n.loop=function(a){return a!==c?(C(this,"setLoop",a),this.options.loop=a,this):B(this,"loop")};n.controls=function(){return this.options.controls};n.poster=function(){return B(this,"poster")};n.error=function(){return B(this,"error")};var qa,ra,sa,ta;
if(document.dc!==c)qa="requestFullscreen",ra="exitFullscreen",sa="fullscreenchange",ta="fullScreen";else for(var ua=["moz","webkit"],va=ua.length-1;0<=va;va--){var D=ua[va];if(("moz"!=D||document.mozFullScreenEnabled)&&document[D+"CancelFullScreen"]!==c)qa=D+"RequestFullScreen",ra=D+"CancelFullScreen",sa=D+"fullscreenchange",ta="webkit"==D?D+"IsFullScreen":D+"FullScreen"}qa&&(u.Ma.qa={Lb:qa,ub:ra,T:sa,N:ta});
function wa(a,b,d){y.call(this,a,b,d);if(!a.options.sources||0===a.options.sources.length){b=0;for(d=a.options.techOrder;b<d.length;b++){var e=u.H(d[b]),g=window.videojs[e];if(g&&g.isSupported()){ka(a,e);break}}}else a.src(a.options.sources)}t(wa,y);function E(a,b){y.call(this,a,b)}t(E,y);E.prototype.v=function(){return"vjs-control "+E.h.v.call(this)};function F(a,b){y.call(this,a,b);a.z("play",u.bind(this,function(){this.ga();this.a.e("mouseover",u.bind(this,this.ga));this.a.e("mouseout",u.bind(this,this.za))}))}t(F,y);n=F.prototype;n.options={Db:"play",children:{playToggle:{},fullscreenToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},progressControl:{},volumeControl:{},muteToggle:{}}};
n.d=function(){return u.d("div",{className:"vjs-control-bar"})};n.ga=function(){F.h.ga.call(this);this.a.g("controlsvisible")};n.za=function(){F.h.za.call(this);this.a.g("controlshidden")};n.Za=function(){this.b.style.opacity="1"};function G(a,b){y.call(this,a,b);this.e("click",this.k);this.e("focus",this.la);this.e("blur",this.ka)}t(G,E);n=G.prototype;
n.d=function(a,b){b=u.t({className:this.v(),innerHTML:'<div><span class="vjs-control-text">'+(this.K||"Need Text")+"</span></div>",Mb:"button",tabIndex:0},b);return G.h.d.call(this,a,b)};n.k=function(){};n.la=function(){u.e(document,"keyup",u.bind(this,this.aa))};n.aa=function(a){if(32==a.which||13==a.which)a.preventDefault(),this.k()};n.ka=function(){u.j(document,"keyup",u.bind(this,this.aa))};function H(a,b){G.call(this,a,b)}t(H,G);H.prototype.K="Play";
H.prototype.v=function(){return"vjs-play-button "+H.h.v.call(this)};H.prototype.k=function(){this.a.play()};function I(a,b){G.call(this,a,b)}t(I,G);I.prototype.K="Play";I.prototype.v=function(){return"vjs-pause-button "+I.h.v.call(this)};I.prototype.k=function(){this.a.pause()};function xa(a,b){G.call(this,a,b);a.e("play",u.bind(this,this.Ja));a.e("pause",u.bind(this,this.Ia))}t(xa,G);n=xa.prototype;n.K="Play";n.v=function(){return"vjs-play-control "+xa.h.v.call(this)};
n.k=function(){this.a.paused()?this.a.play():this.a.pause()};n.Ja=function(){u.u(this.b,"vjs-paused");u.m(this.b,"vjs-playing")};n.Ia=function(){u.u(this.b,"vjs-playing");u.m(this.b,"vjs-paused")};function J(a,b){G.call(this,a,b)}t(J,G);J.prototype.K="Fullscreen";J.prototype.v=function(){return"vjs-fullscreen-control "+J.h.v.call(this)};J.prototype.k=function(){this.a.N?oa(this.a):this.a.qa()};function K(a,b){G.call(this,a,b);a.e("play",u.bind(this,this.s));a.e("ended",u.bind(this,this.show))}
t(K,G);K.prototype.d=function(){return K.h.d.call(this,"div",{className:"vjs-big-play-button",innerHTML:"<span></span>"})};K.prototype.k=function(){this.a.currentTime()&&this.a.currentTime(0);this.a.play()};
function L(a,b){y.call(this,a,b);a.e("canplay",u.bind(this,this.s));a.e("canplaythrough",u.bind(this,this.s));a.e("playing",u.bind(this,this.s));a.e("seeked",u.bind(this,this.s));a.e("seeking",u.bind(this,this.show));a.e("seeked",u.bind(this,this.s));a.e("error",u.bind(this,this.show));a.e("waiting",u.bind(this,this.show))}t(L,y);
L.prototype.d=function(){var a,b;"string"==typeof this.a.f().style.WebkitBorderRadius||"string"==typeof this.a.f().style.MozBorderRadius||"string"==typeof this.a.f().style.ac||"string"==typeof this.a.f().style.cc?(a="vjs-loading-spinner",b='<div class="ball1"></div><div class="ball2"></div><div class="ball3"></div><div class="ball4"></div><div class="ball5"></div><div class="ball6"></div><div class="ball7"></div><div class="ball8"></div>'):(a="vjs-loading-spinner-fallback",b="");return L.h.d.call(this,
"div",{className:a,innerHTML:b})};function M(a,b){y.call(this,a,b);a.e("timeupdate",u.bind(this,this.da))}t(M,y);M.prototype.d=function(){var a=M.h.d.call(this,"div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.content=u.d("div",{className:"vjs-current-time-display",innerHTML:"0:00"});a.appendChild(u.d("div").appendChild(this.content));return a};M.prototype.da=function(){var a=this.a.bb?this.a.n.currentTime:this.a.currentTime();this.content.innerHTML=u.o(a,this.a.duration())};
function N(a,b){y.call(this,a,b);a.e("timeupdate",u.bind(this,this.da))}t(N,y);N.prototype.d=function(){var a=N.h.d.call(this,"div",{className:"vjs-duration vjs-time-controls vjs-control"});this.content=u.d("div",{className:"vjs-duration-display",innerHTML:"0:00"});a.appendChild(u.d("div").appendChild(this.content));return a};N.prototype.da=function(){this.a.duration()&&(this.content.innerHTML=u.o(this.a.duration()))};function ya(a,b){y.call(this,a,b)}t(ya,y);
ya.prototype.d=function(){return ya.h.d.call(this,"div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})};function O(a,b){y.call(this,a,b);a.e("timeupdate",u.bind(this,this.da))}t(O,y);O.prototype.d=function(){var a=O.h.d.call(this,"div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.content=u.d("div",{className:"vjs-remaining-time-display",innerHTML:"-0:00"});a.appendChild(u.d("div").appendChild(this.content));return a};
O.prototype.da=function(){this.a.duration()&&(this.content.innerHTML="-"+u.o(this.a.duration()-this.a.currentTime()))};function P(a,b){y.call(this,a,b);this.sb=this.D[this.options.barName];this.handle=this.D[this.options.handleName];a.e(this.$a,u.bind(this,this.update));this.e("mousedown",this.Ha);this.e("focus",this.la);this.e("blur",this.ka);this.a.e("controlsvisible",u.bind(this,this.update));z(a,u.bind(this,this.update))}t(P,y);n=P.prototype;
n.d=function(a,b){b=u.t({Mb:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},b);return P.h.d.call(this,a,b)};n.Ha=function(a){a.preventDefault();u.tb();u.e(document,"mousemove",u.bind(this,this.ma));u.e(document,"mouseup",u.bind(this,this.na));this.ma(a)};n.na=function(){u.Ub();u.j(document,"mousemove",this.ma,k);u.j(document,"mouseup",this.na,k);this.update()};
n.update=function(){var a,b=this.Wa(),d=this.handle,e=this.sb;isNaN(b)&&(b=0);a=b;if(d){a=this.b.offsetWidth;var g=d.f().offsetWidth;a=g?g/a:0;b*=1-a;a=b+a/2;d.f().style.left=u.round(100*b,2)+"%"}e.f().style.width=u.round(100*a,2)+"%"};function za(a,b){var d=a.b,e=u.yb(d),d=d.offsetWidth,g=a.handle;g&&(g=g.f().offsetWidth,e+=g/2,d-=g);return Math.max(0,Math.min(1,(b.pageX-e)/d))}n.la=function(){u.e(document,"keyup",u.bind(this,this.aa))};
n.aa=function(a){37==a.which?(a.preventDefault(),this.eb()):39==a.which&&(a.preventDefault(),this.fb())};n.ka=function(){u.j(document,"keyup",u.bind(this,this.aa))};function Aa(a,b){y.call(this,a,b)}t(Aa,y);Aa.prototype.options={children:{seekBar:{}}};Aa.prototype.d=function(){return Aa.h.d.call(this,"div",{className:"vjs-progress-control vjs-control"})};function Q(a,b){P.call(this,a,b)}t(Q,P);n=Q.prototype;
n.options={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"};n.$a="timeupdate";n.d=function(){return Q.h.d.call(this,"div",{className:"vjs-progress-holder"})};n.Wa=function(){return this.a.currentTime()/this.a.duration()};n.Ha=function(a){Q.h.Ha.call(this,a);this.a.bb=f;this.Vb=!this.a.paused();this.a.pause()};n.ma=function(a){a=za(this,a)*this.a.duration();a==this.a.duration()&&(a-=0.1);this.a.currentTime(a)};
n.na=function(a){Q.h.na.call(this,a);this.a.bb=k;this.Vb&&this.a.play()};n.fb=function(){this.a.currentTime(this.a.currentTime()+1)};n.eb=function(){this.a.currentTime(this.a.currentTime()-1)};function Ba(a,b){y.call(this,a,b);a.e("progress",u.bind(this,this.update))}t(Ba,y);Ba.prototype.d=function(){return Ba.h.d.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text">Loaded: 0%</span>'})};
Ba.prototype.update=function(){this.b.style&&(this.b.style.width=u.round(100*ma(this.a),2)+"%")};function Ca(a,b){y.call(this,a,b)}t(Ca,y);Ca.prototype.d=function(){return Ca.h.d.call(this,"div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text">Progress: 0%</span>'})};function Da(a,b){y.call(this,a,b)}t(Da,y);Da.prototype.d=function(){return Da.h.d.call(this,"div",{className:"vjs-seek-handle",innerHTML:'<span class="vjs-control-text">00:00</span>'})};
function Ea(a,b){y.call(this,a,b)}t(Ea,y);Ea.prototype.options={children:{volumeBar:{}}};Ea.prototype.d=function(){return Ea.h.d.call(this,"div",{className:"vjs-volume-control vjs-control"})};function Fa(a,b){P.call(this,a,b)}t(Fa,P);n=Fa.prototype;n.options={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"};n.$a="volumechange";n.d=function(){return Fa.h.d.call(this,"div",{className:"vjs-volume-bar"})};n.ma=function(a){this.a.volume(za(this,a))};n.Wa=function(){return this.a.volume()};
n.fb=function(){this.a.volume(this.a.volume()+0.1)};n.eb=function(){this.a.volume(this.a.volume()-0.1)};function Ga(a,b){y.call(this,a,b)}t(Ga,y);Ga.prototype.d=function(){return Ga.h.d.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})};function Ha(a,b){y.call(this,a,b)}t(Ha,y);Ha.prototype.d=function(){return Ha.h.d.call(this,"div",{className:"vjs-volume-handle",innerHTML:'<span class="vjs-control-text"></span>'})};
function R(a,b){G.call(this,a,b);a.e("volumechange",u.bind(this,this.update))}t(R,G);R.prototype.d=function(){return R.h.d.call(this,"div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute</span></div>'})};R.prototype.k=function(){this.a.muted(this.a.muted()?k:f)};R.prototype.update=function(){var a=this.a.volume(),b=3;0===a||this.a.muted()?b=0:0.33>a?b=1:0.67>a&&(b=2);for(a=0;4>a;a++)u.u(this.b,"vjs-vol-"+a);u.m(this.b,"vjs-vol-"+b)};
function Ia(a,b){G.call(this,a,b);this.a.options.poster||this.s();a.e("play",u.bind(this,this.s))}t(Ia,G);Ia.prototype.d=function(){var a=u.d("img",{className:"vjs-poster",tabIndex:-1});this.a.options.poster&&(a.src=this.a.options.poster);return a};Ia.prototype.k=function(){this.a.play()};function S(a,b){y.call(this,a,b)}t(S,y);function Ja(a,b){a.C(b);b.e("click",u.bind(a,function(){ha(this)}))}S.prototype.d=function(){return S.h.d.call(this,"ul",{className:"vjs-menu"})};
function T(a,b){G.call(this,a,b);b.selected&&this.m("vjs-selected")}t(T,G);T.prototype.d=function(a,b){return T.h.d.call(this,"li",u.t({className:"vjs-menu-item",innerHTML:this.options.label},b))};T.prototype.k=function(){this.selected(f)};T.prototype.selected=function(a){a?this.m("vjs-selected"):this.u("vjs-selected")};function U(a,b,d){y.call(this,a,b,d)}t(U,y);U.prototype.k=function(){this.a.options.controls&&(this.a.paused()?this.a.play():this.a.pause())};u.media={};u.media.ta="play pause paused currentTime setCurrentTime duration buffered volume setVolume muted setMuted width height supportsFullScreen enterFullScreen src load currentSrc preload setPreload autoplay setAutoplay loop setLoop error networkState readyState seeking initialTime startOffsetTime played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks defaultPlaybackRate playbackRate mediaGroup controller controls defaultMuted".split(" ");
function Ka(){var a=u.media.ta[i];return function(){throw Error('The "'+a+"\" method is not available on the playback technology's API");}}for(var i=u.media.ta.length-1;0<=i;i--)U.prototype[u.media.ta[i]]=Ka();function V(a,b,d){y.call(this,a,b,d);(b=b.source)&&this.b.currentSrc==b.src?a.g("loadstart"):b&&(this.b.src=b.src);z(a,function(){this.options.autoplay&&this.paused()&&(this.G.poster=h,this.play())});this.e("click",this.k);for(a=La.length-1;0<=a;a--)u.e(this.b,La[a],u.bind(this.a,this.Sa));A(this)}t(V,U);n=V.prototype;n.l=function(){for(var a=La.length-1;0<=a;a--)u.j(this.b,La[a],u.bind(this.a,this.Sa));V.h.l.call(this)};
n.d=function(){var a=this.a,b=a.G;if(!b||this.F.Eb===k)b&&a.f().removeChild(b),b=u.createElement("video",{id:b.id||a.id+"_html5_api",className:b.className||"vjs-tech"}),u.Z(b,a.f);for(var d=["autoplay","preload","loop","muted"],e=d.length-1;0<=e;e--){var g=d[e];a.options[g]!==h&&(b[g]=a.options[g])}return b};n.Sa=function(a){this.g(a);a.stopPropagation()};n.play=function(){this.b.play()};n.pause=function(){this.b.pause()};n.paused=function(){return this.b.paused};n.currentTime=function(){return this.b.currentTime};
n.Ob=function(a){try{this.b.currentTime=a}catch(b){u.log(b,"Video is not ready. (Video.js)")}};n.duration=function(){return this.b.duration||0};n.buffered=function(){return this.b.buffered};n.volume=function(){return this.b.volume};n.Tb=function(a){this.b.volume=a};n.muted=function(){return this.b.muted};n.Rb=function(a){this.b.muted=a};n.width=function(){return this.b.offsetWidth};n.height=function(){return this.b.offsetHeight};
n.sa=function(){return"function"==typeof this.b.webkitEnterFullScreen&&!navigator.userAgent.match("Chrome")&&!navigator.userAgent.match("Mac OS X 10.5")?f:k};n.src=function(a){this.b.src=a};n.load=function(){this.b.load()};n.currentSrc=function(){return this.b.currentSrc};n.ba=function(){return this.b.ba};n.Sb=function(a){this.b.ba=a};n.autoplay=function(){return this.b.autoplay};n.Nb=function(a){this.b.autoplay=a};n.loop=function(){return this.b.loop};n.Qb=function(a){this.b.loop=a};n.error=function(){return this.b.error};
n.controls=function(){return this.a.options.controls};var La="loadstart suspend abort error emptied stalled loadedmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate progress play pause ratechange volumechange".split(" ");V.prototype.F={ic:u.pb.webkitEnterFullScreen?!u.A.match("Chrome")&&!u.A.match("Mac OS X 10.5")?f:k:k,Eb:!u.lb};
u.jb&&3>u.ib&&(document.createElement("video").constructor.prototype.canPlayType=function(a){return a&&-1!=a.toLowerCase().indexOf("video/mp4")?"maybe":""});function W(a,b,d){y.call(this,a,b,d);var e=b.source,g=b.Jb;d=this.b=u.d("div",{id:a.id()+"_temp_flash"});var p=a.id()+"_flash_api";a=a.options;var j=u.t({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.ba,loop:a.loop,muted:a.muted},b.flashVars),r=u.t({wmode:"opaque",bgcolor:"#000000"},b.params),q=u.t({id:p,name:p,"class":"vjs-tech"},b.attributes);e&&(j.src=encodeURIComponent(u.ha(e.src)));
u.Z(d,g);b.startTime&&z(this,function(){this.load();this.play();this.currentTime(b.startTime)});if(b.lc===f&&!u.kb){var w=u.d("iframe",{id:p+"_iframe",name:p+"_iframe",className:"vjs-tech",scrolling:"no",marginWidth:0,marginHeight:0,frameBorder:0});j.readyFunction="ready";j.eventProxyFunction="events";j.errorEventProxyFunction="errors";u.e(w,"load",u.bind(this,function(){var a,d=w.contentWindow;a=w.contentDocument?w.contentDocument:w.contentWindow.document;a.write(Ma(b.swf,j,r,q));d.player=this.a;
d.ready=u.bind(this.a,function(b){b=a.getElementById(b);var d=this.i;d.b=b;u.e(b,"click",d.bind(d.k));Na(d)});d.events=u.bind(this.a,function(a,b){this&&"flash"===this.P&&this.g(b)});d.errors=u.bind(this.a,function(a,b){u.log("Flash Error",b)})}));d.parentNode.replaceChild(w,d)}else{a=Ma(b.swf,j,r,q);a=u.d("div",{innerHTML:a}).childNodes[0];e=d.parentNode;d.parentNode.replaceChild(a,d);var gb=e.childNodes[0];setTimeout(function(){gb.style.display="block"},1E3)}}t(W,U);n=W.prototype;n.l=function(){W.h.l.call(this)};
n.play=function(){this.b.vjs_play()};n.pause=function(){this.b.vjs_pause()};n.src=function(a){a=u.ha(a);this.b.vjs_src(a);if(this.a.autoplay()){var b=this;setTimeout(function(){b.play()},0)}};n.load=function(){this.b.vjs_load()};n.poster=function(){this.b.vjs_getProperty("poster")};n.buffered=function(){return u.xa(this.b.vjs_getProperty("buffered"))};n.sa=m(k);
var Oa=W.prototype,Pa="preload currentTime defaultPlaybackRate playbackRate autoplay loop mediaGroup controller controls volume muted defaultMuted".split(" "),Qa="error currentSrc networkState readyState seeking initialTime duration startOffsetTime paused played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks".split(" ");function Ra(){var a=Pa[i],b=a.charAt(0).toUpperCase()+a.slice(1);Oa["set"+b]=function(b){return this.b.vjs_setProperty(a,b)}}
function Sa(a){Oa[a]=function(){return this.b.vjs_getProperty(a)}}for(i=0;i<Pa.length;i++)Sa(Pa[i]),Ra();for(i=0;i<Qa.length;i++)Sa(Qa[i]);W.prototype.F={zb:{"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},ab:k,gb:k,Va:k,oc:!u.A.match("Firefox")};W.onReady=function(a){a=u.f(a);var b=a.player||a.parentNode.player,d=b.i;a.player=b;d.b=a;d.e("click",d.k);Na(d)};function Na(a){a.f().vjs_getProperty?A(a):setTimeout(function(){Na(a)},50)}W.onEvent=function(a,b){u.f(a).player.g(b)};
W.onError=function(a,b){u.f(a).player.g("error");u.log("Flash Error",b,a)};function Ma(a,b,d,e){var g="",p="",j="";b&&u.S(b,function(a,b){g+=a+"="+b+"&amp;"});d=u.t({movie:a,flashvars:g,allowScriptAccess:"always",allowNetworking:"all"},d);u.S(d,function(a,b){p+='<param name="'+a+'" value="'+b+'" />'});e=u.t({data:a,width:"100%",height:"100%"},e);u.S(e,function(a,b){j+=a+'="'+b+'" '});return'<object type="application/x-shockwave-flash"'+j+">"+p+"</object>"};function X(a){a.ca=a.ca||[];return a.ca}function Ta(a,b,d){for(var e=a.ca,g=0,p=e.length,j,r;g<p;g++)j=e[g],j.id()===b?(j.show(),r=j):d&&(j.w()==d&&0<j.mode())&&j.disable();(b=r?r.w():d?d:k)&&a.g(b+"trackchange")}function Y(a,b){y.call(this,a,b);this.J=b.id||"vjs_"+b.kind+"_"+b.language+"_"+u.p++;this.cb=b.src;this.vb=b["default"]||b.dflt;this.sc=b.title;this.mc=b.srclang;this.Cb=b.label;this.R=[];this.Na=[];this.W=this.X=0}t(Y,y);n=Y.prototype;n.w=l("r");n.src=l("cb");n.ya=l("vb");n.label=l("Cb");
n.readyState=l("X");n.mode=l("W");n.d=function(){return Y.h.d.call(this,"div",{className:"vjs-"+this.r+" vjs-text-track"})};n.show=function(){Ua(this);this.W=2;Y.h.show.call(this)};n.s=function(){Ua(this);this.W=1;Y.h.s.call(this)};n.disable=function(){2==this.W&&this.s();this.a.j("timeupdate",u.bind(this,this.update,this.J));this.a.j("ended",u.bind(this,this.reset,this.J));this.reset();this.a.D.textTrackDisplay.removeChild(this);this.W=0};
function Ua(a){0===a.X&&a.load();0===a.W&&(a.a.e("timeupdate",u.bind(a,a.update,a.J)),a.a.e("ended",u.bind(a,a.reset,a.J)),("captions"===a.r||"subtitles"===a.r)&&a.a.D.textTrackDisplay.C(a))}n.load=function(){0===this.X&&(this.X=1,u.get(this.cb,u.bind(this,this.Kb),u.bind(this,this.Ga)))};n.Ga=function(a){this.error=a;this.X=3;this.g("error")};
n.Kb=function(a){var b,d;a=a.split("\n");for(var e="",g=1,p=a.length;g<p;g++)if(e=u.trim(a[g])){-1==e.indexOf("--\x3e")?(b=e,e=u.trim(a[++g])):b=this.R.length;b={id:b,index:this.R.length};d=e.split(" --\x3e ");b.startTime=Va(d[0]);b.Y=Va(d[1]);for(d=[];a[++g]&&(e=u.trim(a[g]));)d.push(e);b.text=d.join("<br/>");this.R.push(b)}this.X=2;this.g("loaded")};
function Va(a){var b=a.split(":");a=0;var d,e,g;3==b.length?(d=b[0],e=b[1],b=b[2]):(d=0,e=b[0],b=b[1]);b=b.split(/\s+/);b=b.splice(0,1)[0];b=b.split(/\.|,/);g=parseFloat(b[1]);b=b[0];a+=3600*parseFloat(d);a+=60*parseFloat(e);a+=parseFloat(b);g&&(a+=g/1E3);return a}
n.update=function(){if(0<this.R.length){var a=this.a.currentTime();if(this.Ka===c||a<this.Ka||this.ja<=a){var b=this.R,d=this.a.duration(),e=0,g=k,p=[],j,r,q,w;a>=this.ja||this.ja===c?w=this.Aa!==c?this.Aa:0:(g=f,w=this.Da!==c?this.Da:b.length-1);for(;;){q=b[w];if(q.Y<=a)e=Math.max(e,q.Y),q.ea&&(q.ea=k);else if(a<q.startTime){if(d=Math.min(d,q.startTime),q.ea&&(q.ea=k),!g)break}else g?(p.splice(0,0,q),r===c&&(r=w),j=w):(p.push(q),j===c&&(j=w),r=w),d=Math.min(d,q.Y),e=Math.max(e,q.startTime),q.ea=
f;if(g)if(0===w)break;else w--;else if(w===b.length-1)break;else w++}this.Na=p;this.ja=d;this.Ka=e;this.Aa=j;this.Da=r;a=this.Na;b="";d=0;for(e=a.length;d<e;d++)b+='<span class="vjs-tt-cue">'+a[d].text+"</span>";this.b.innerHTML=b;this.g("cuechange")}}};n.reset=function(){this.ja=0;this.Ka=this.a.duration();this.Da=this.Aa=0};function Wa(a,b){Y.call(this,a,b)}t(Wa,Y);Wa.prototype.r="captions";function Xa(a,b){Y.call(this,a,b)}t(Xa,Y);Xa.prototype.r="subtitles";function Ya(a,b){Y.call(this,a,b)}
t(Ya,Y);Ya.prototype.r="chapters";function Za(a,b,d){y.call(this,a,b,d);if(a.options.tracks&&0<a.options.tracks.length){b=this.a;a=a.options.tracks;var e;for(d=0;d<a.length;d++){e=a[d];var g=b,p=e.kind,j=e.label,r=e.language,q=e;e=g.ca=g.ca||[];q=q||{};q.kind=p;q.label=j;q.language=r;p=u.H(p||"subtitles");g=new window.videojs[p+"Track"](g,q);e.push(g)}}}t(Za,y);Za.prototype.d=function(){return Za.h.d.call(this,"div",{className:"vjs-text-track-display"})};
function Z(a,b){var d=this.Q=b.track;b.label=d.label();b.selected=d.ya();T.call(this,a,b);this.a.e(d.w()+"trackchange",u.bind(this,this.update))}t(Z,T);Z.prototype.k=function(){Z.h.k.call(this);Ta(this.a,this.Q.id(),this.Q.w())};Z.prototype.update=function(){2==this.Q.mode()?this.selected(f):this.selected(k)};function $a(a,b){b.track={w:function(){return b.kind},pc:a,label:m("Off"),ya:m(k),mode:m(k)};Z.call(this,a,b)}t($a,Z);$a.prototype.k=function(){$a.h.k.call(this);Ta(this.a,this.Q.id(),this.Q.w())};
$a.prototype.update=function(){for(var a=X(this.a),b=0,d=a.length,e,g=f;b<d;b++)e=a[b],e.w()==this.Q.w()&&2==e.mode()&&(g=k);g?this.selected(f):this.selected(k)};function $(a,b){G.call(this,a,b);this.V=this.wa();0===this.$.length&&this.s()}t($,G);n=$.prototype;n.wa=function(){var a=new S(this.a);a.f().appendChild(u.d("li",{className:"vjs-menu-title",innerHTML:u.H(this.r)}));Ja(a,new $a(this.a,{kind:this.r}));this.$=this.Qa();for(var b=0;b<this.$.length;b++)Ja(a,this.$[b]);this.C(a);return a};
n.Qa=function(){for(var a=[],b,d=0;d<X(this.a).length;d++)b=X(this.a)[d],b.w()===this.r&&a.push(new Z(this.a,{track:b}));return a};n.v=function(){return this.className+" vjs-menu-button "+$.h.v.call(this)};n.la=function(){this.V.Za();u.z(this.V.b.childNodes[this.V.b.childNodes.length-1],"blur",u.bind(this,function(){ha(this.V)}))};n.ka=function(){};n.k=function(){this.z("mouseout",u.bind(this,function(){ha(this.V);this.b.blur()}))};function ab(a,b){$.call(this,a,b)}t(ab,$);ab.prototype.r="captions";
ab.prototype.K="Captions";ab.prototype.className="vjs-captions-button";function bb(a,b){$.call(this,a,b)}t(bb,$);bb.prototype.r="subtitles";bb.prototype.K="Subtitles";bb.prototype.className="vjs-subtitles-button";function cb(a,b){$.call(this,a,b)}t(cb,$);n=cb.prototype;n.r="chapters";n.K="Chapters";n.className="vjs-chapters-button";n.Qa=function(){for(var a=[],b,d=0;d<X(this.a).length;d++)b=X(this.a)[d],b.w()===this.r&&a.push(new Z(this.a,{track:b}));return a};
n.wa=function(){for(var a=X(this.a),b=0,d=a.length,e,g,p=this.$=[];b<d;b++)if(e=a[b],e.w()==this.r&&e.ya()){if(2>e.readyState()){this.ec=e;e.e("loaded",u.bind(this,this.wa));return}g=e;break}a=this.V=new S(this.a);a.b.appendChild(u.d("li",{className:"vjs-menu-title",innerHTML:u.H(this.r)}));if(g){e=g.R;for(var j,b=0,d=e.length;b<d;b++)j=e[b],j=new db(this.a,{track:g,cue:j}),p.push(j),a.C(j)}this.C(a);0<this.$.length&&this.show();return a};
function db(a,b){var d=this.Q=b.track,e=this.cue=b.cue,g=a.currentTime();b.label=e.text;b.selected=e.startTime<=g&&g<e.Y;T.call(this,a,b);d.e("cuechange",u.bind(this,this.update))}t(db,T);db.prototype.k=function(){db.h.k.call(this);this.a.currentTime(this.cue.startTime);this.update(this.cue.startTime)};db.prototype.update=function(){var a=this.cue,b=this.a.currentTime();a.startTime<=b&&b<a.Y?this.selected(f):this.selected(k)};
u.t(F.prototype.options.children,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});if(JSON&&"function"===JSON.parse)u.JSON=JSON;else{u.JSON={};var eb=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;u.JSON.parse=function(a,b){function d(a,e){var j,r,q=a[e];if(q&&"object"===typeof q)for(j in q)Object.prototype.hasOwnProperty.call(q,j)&&(r=d(q,j),r!==c?q[j]=r:delete q[j]);return b.call(a,e,q)}var e;a=String(a);eb.lastIndex=0;eb.test(a)&&(a=a.replace(eb,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?d({"":e},""):e;throw new SyntaxError("JSON.parse");}};u.ua=function(){var a,b,d=document.getElementsByTagName("video");if(d&&0<d.length)for(var e=0,g=d.length;e<g;e++)if((b=d[e])&&b.getAttribute)b.player===c&&(a=b.getAttribute("data-setup"),a!==h&&(a=u.JSON.parse(a||"{}"),x(b,a)));else{u.Oa();break}else u.Xb||u.Oa()};u.Oa=function(){setTimeout(u.ua,1)};u.z(window,"load",function(){u.Xb=f});u.ua();s("videojs",u);s("_V_",u);s("videojs.options",u.options);s("videojs.cache",u.L);s("videojs.Component",y);y.prototype.dispose=y.prototype.l;y.prototype.createEl=y.prototype.d;y.prototype.getEl=y.prototype.kc;y.prototype.addChild=y.prototype.C;y.prototype.getChildren=y.prototype.jc;y.prototype.on=y.prototype.e;y.prototype.off=y.prototype.j;y.prototype.one=y.prototype.z;y.prototype.trigger=y.prototype.g;y.prototype.show=y.prototype.show;y.prototype.hide=y.prototype.s;y.prototype.width=y.prototype.width;
y.prototype.height=y.prototype.height;y.prototype.dimensions=y.prototype.wb;s("videojs.Player",v);s("videojs.MediaLoader",wa);s("videojs.PosterImage",Ia);s("videojs.LoadingSpinner",L);s("videojs.BigPlayButton",K);s("videojs.ControlBar",F);s("videojs.TextTrackDisplay",Za);s("videojs.Control",E);s("videojs.ControlBar",F);s("videojs.Button",G);s("videojs.PlayButton",H);s("videojs.PauseButton",I);s("videojs.PlayToggle",xa);s("videojs.FullscreenToggle",J);s("videojs.BigPlayButton",K);
s("videojs.LoadingSpinner",L);s("videojs.CurrentTimeDisplay",M);s("videojs.DurationDisplay",N);s("videojs.TimeDivider",ya);s("videojs.RemainingTimeDisplay",O);s("videojs.Slider",P);s("videojs.ProgressControl",Aa);s("videojs.SeekBar",Q);s("videojs.LoadProgressBar",Ba);s("videojs.PlayProgressBar",Ca);s("videojs.SeekHandle",Da);s("videojs.VolumeControl",Ea);s("videojs.VolumeBar",Fa);s("videojs.VolumeLevel",Ga);s("videojs.VolumeHandle",Ha);s("videojs.MuteToggle",R);s("videojs.PosterImage",Ia);
s("videojs.Menu",S);s("videojs.MenuItem",T);s("videojs.SubtitlesButton",bb);s("videojs.CaptionsButton",ab);s("videojs.ChaptersButton",cb);s("videojs.MediaTechController",U);s("videojs.Html5",V);V.Events=La;V.isSupported=function(){return!!document.createElement("video").canPlayType};V.canPlaySource=function(a){return!!document.createElement("video").canPlayType(a.type)};V.prototype.setCurrentTime=V.prototype.Ob;V.prototype.setVolume=V.prototype.Tb;V.prototype.setMuted=V.prototype.Rb;
V.prototype.setPreload=V.prototype.Sb;V.prototype.setAutoplay=V.prototype.Nb;V.prototype.setLoop=V.prototype.Qb;s("videojs.Flash",W);W.Events=W.Zb;
W.isSupported=function(){var a="0,0,0";try{a=(new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(d){}}return 10<=a.split(",")[0]};W.canPlaySource=function(a){if(a.type in W.prototype.F.zb)return"maybe"};
W.onReady=W.onReady;s("videojs.TextTrack",Y);Y.prototype.label=Y.prototype.label;s("videojs.CaptionsTrack",Wa);s("videojs.SubtitlesTrack",Xa);s("videojs.ChaptersTrack",Ya);s("videojs.autoSetup",u.ua);module("Component");test("should create an element",function(){var a=new y({},{});ok(a.f().nodeName)});test("should add a child component",function(){var a=new y({}),b=a.C("component");ok(1===a.children().length);ok(a.children()[0]===b);ok(a.f().childNodes[0]===b.f());ok(a.D.component===b);var d=ok,e=b.id();d(a.fa[e]===b)});test("should init child coponents from options",function(){var a=new y({},{children:{component:f}});ok(1===a.children().length);ok(1===a.f().childNodes.length)});
test("should do a deep merge of child options",function(){var a=ga(y.prototype,{children:{childOne:{foo:"bar",asdf:"fdsa"},childTwo:{},childThree:{}}},{children:{childOne:{foo:"baz",abc:"123"},childThree:h,childFour:{}}}).children;ok("baz"===a.childOne.foo,"value three levels deep overridden");ok("fdsa"===a.childOne.asdf,"value three levels deep maintained");ok("123"===a.childOne.abc,"value three levels deep added");ok(a.childTwo,"object two levels deep maintained");ok(a.childThree===h,"object two levels deep removed");
ok(a.childFour,"object two levels deep added")});test("should dispose of component and children",function(){var a=new y({}),b=a.C("Component");ok(1===a.children().length);a.e("click",m(f));var d=u.getData(a.f()),e=a.f()[u.expando];a.l();ok(!a.children(),"component children were deleted");ok(!a.f(),"component element was deleted");ok(!b.children(),"child children were deleted");ok(!b.f(),"child element was deleted");ok(!u.L[e],"listener cache nulled");ok(u.ia(d),"original listener cache object was emptied")});
test("should add and remove event listeners to element",function(){function a(){ok(f,"fired event once");ok(this===b,"listener has the component as context")}var b=new y({},{});expect(2);b.e("test-event",a);b.g("test-event");b.j("test-event",a);b.g("test-event")});test("should trigger a listener once using one()",function(){var a=new y({},{});expect(1);a.z("test-event",function(){ok(f,"fired event once")});a.g("test-event");a.g("test-event")});
test("should trigger a listener when ready",function(){expect(2);var a=new y({},{},function(){ok(f,"options listener fired")});z(a);a.G(function(){ok(f,"ready method listener fired")});z(a)});test("should add and remove a CSS class",function(){var a=new y({},{});a.m("test-class");ok(-1!==a.f().className.indexOf("test-class"));a.u("test-class");ok(-1===a.f().className.indexOf("test-class"))});
test("should show and hide an element",function(){var a=new y({},{});a.t();ok("none"===a.f().style.display);a.show();ok("block"===a.f().style.display)});
test("should change the width and height of a component",function(){var a=document.createElement("div"),b=new y({},{}),d=b.f();document.getElementById("qunit-fixture").appendChild(a);a.appendChild(d);a.style.width="1000px";a.style.height="1000px";b.width("50%");b.height("123px");ok(500===b.width(),"percent values working");ok(u.Ca(d,"width")===b.width()+"px","matches computed style");ok(123===b.height(),"px values working");b.width(321);ok(321===b.width(),"integer values working")});module("Core");test("should create a video tag and have access children in old IE",function(){document.getElementById("qunit-fixture").innerHTML+="<video id='test_vid_id'><source type='video/mp4'></video>";vid=document.getElementById("test_vid_id");ok(1===vid.childNodes.length);ok("video/mp4"===vid.childNodes[0].getAttribute("type"))});
test("should return a video player instance",function(){document.getElementById("qunit-fixture").innerHTML+="<video id='test_vid_id'></video><video id='test_vid_id2'></video>";var a=x("test_vid_id");ok(a,"created player from tag");ok("test_vid_id"===a.id());ok(x.P.test_vid_id===a,"added player to global reference");var b=x("test_vid_id");ok(a===b,"did not create a second player from same tag");a=x(document.getElementById("test_vid_id2"));ok("test_vid_id2"===a.id(),"created player from element")});module("Events");test("should add and remove an event listener to an element",function(){function a(){ok(f,"Click Triggered")}expect(1);var b=document.createElement("div");u.e(b,"click",a);u.g(b,"click");u.j(b,"click",a);u.g(b,"click")});test("should remove all listeners of a type",function(){var a=document.createElement("div"),b=0;u.e(a,"click",function(){b++});u.e(a,"click",function(){b++});u.g(a,"click");ok(2===b,"both click listeners fired");u.j(a,"click");u.g(a,"click");ok(2===b,"no click listeners fired")});
test("should remove all listeners from an element",function(){expect(2);var a=document.createElement("div");u.e(a,"fake1",function(){ok(f,"Fake1 Triggered")});u.e(a,"fake2",function(){ok(f,"Fake2 Triggered")});u.g(a,"fake1");u.g(a,"fake2");u.j(a);u.g(a,"fake1");u.g(a,"fake2")});test("should listen only once",function(){expect(1);var a=document.createElement("div");u.z(a,"click",function(){ok(f,"Click Triggered")});u.g(a,"click");u.g(a,"click")});module("Lib");test("should create an element",function(){var a=u.d(),b=u.d("span",{"data-test":"asdf",innerHTML:"fdsa"});ok("DIV"===a.nodeName);ok("SPAN"===b.nodeName);ok("asdf"===b["data-test"]);ok("fdsa"===b.innerHTML)});test("should make a string start with an uppercase letter",function(){var a=u.I("bar");ok("Bar"===a)});test("should loop through each property on an object",function(){var a={rb:1,sb:2,c:3};u.Y(a,function(b,d){a[b]=d+3});deepEqual(a,{rb:4,sb:5,c:6})});
test("should trigger a listener when ready",function(){expect(2);var a=new y({},{},function(){ok(f,"options listener fired")});A(a);z(a,function(){ok(f,"ready method listener fired")});A(a)});test("should add and remove a CSS class",function(){var a=new y({},{});a.m("test-class");ok(-1!==a.f().className.indexOf("test-class"));a.u("test-class");ok(-1===a.f().className.indexOf("test-class"))});
test("should show and hide an element",function(){var a=new y({},{});a.s();ok("none"===a.f().style.display);a.show();ok("block"===a.f().style.display)});
test("should change the width and height of a component",function(){var a=document.createElement("div"),b=new y({},{}),d=b.f();document.getElementById("qunit-fixture").appendChild(a);a.appendChild(d);a.style.width="1000px";a.style.height="1000px";b.width("50%");b.height("123px");ok(500===b.width(),"percent values working");ok(u.Ba(d,"width")===b.width()+"px","matches computed style");ok(123===b.height(),"px values working");b.width(321);ok(321===b.width(),"integer values working")});module("Core");test("should create a video tag and have access children in old IE",function(){document.getElementById("qunit-fixture").innerHTML+="<video id='test_vid_id'><source type='video/mp4'></video>";vid=document.getElementById("test_vid_id");ok(1===vid.childNodes.length);ok("video/mp4"===vid.childNodes[0].getAttribute("type"))});
test("should return a video player instance",function(){document.getElementById("qunit-fixture").innerHTML+="<video id='test_vid_id'></video><video id='test_vid_id2'></video>";var a=x("test_vid_id");ok(a,"created player from tag");ok("test_vid_id"===a.id());ok(x.O.test_vid_id===a,"added player to global reference");var b=x("test_vid_id");ok(a===b,"did not create a second player from same tag");a=x(document.getElementById("test_vid_id2"));ok("test_vid_id2"===a.id(),"created player from element")});module("Events");test("should add and remove an event listener to an element",function(){function a(){ok(f,"Click Triggered")}expect(1);var b=document.createElement("div");u.e(b,"click",a);u.g(b,"click");u.j(b,"click",a);u.g(b,"click")});test("should remove all listeners of a type",function(){var a=document.createElement("div"),b=0;u.e(a,"click",function(){b++});u.e(a,"click",function(){b++});u.g(a,"click");ok(2===b,"both click listeners fired");u.j(a,"click");u.g(a,"click");ok(2===b,"no click listeners fired")});
test("should remove all listeners from an element",function(){expect(2);var a=document.createElement("div");u.e(a,"fake1",function(){ok(f,"Fake1 Triggered")});u.e(a,"fake2",function(){ok(f,"Fake2 Triggered")});u.g(a,"fake1");u.g(a,"fake2");u.j(a);u.g(a,"fake1");u.g(a,"fake2")});test("should listen only once",function(){expect(1);var a=document.createElement("div");u.z(a,"click",function(){ok(f,"Click Triggered")});u.g(a,"click");u.g(a,"click")});module("Lib");test("should create an element",function(){var a=u.d(),b=u.d("span",{"data-test":"asdf",innerHTML:"fdsa"});ok("DIV"===a.nodeName);ok("SPAN"===b.nodeName);ok("asdf"===b["data-test"]);ok("fdsa"===b.innerHTML)});test("should make a string start with an uppercase letter",function(){var a=u.H("bar");ok("Bar"===a)});test("should loop through each property on an object",function(){var a={qb:1,rb:2,c:3};u.S(a,function(b,d){a[b]=d+3});deepEqual(a,{qb:4,rb:5,c:6})});
test("should add context to a function",function(){var a={test:"obj"};u.bind(a,function(){ok(this===a)})()});test("should add and remove a class name on an element",function(){var a=document.createElement("div");u.m(a,"test-class");ok("test-class"===a.className,"class added");u.m(a,"test-class");ok("test-class"===a.className,"same class not duplicated");u.m(a,"test-class2");ok("test-class test-class2"===a.className,"added second class");u.u(a,"test-class");ok("test-class2"===a.className,"removed first class")});
test("should get and remove data from an element",function(){var a=document.createElement("div"),b=u.getData(a),d=a[u.expando];ok("object"===typeof b,"data object created");var e={dc:"fdsa"};b.test=e;ok(u.getData(a).test===e,"data added");u.Ma(a);ok(!u.M[d],"cached item nulled");ok(a[u.expando]===h||a[u.expando]===c,"element data id removed")});
test("should get and remove data from an element",function(){var a=document.createElement("div"),b=u.getData(a),d=a[u.expando];ok("object"===typeof b,"data object created");var e={bc:"fdsa"};b.test=e;ok(u.getData(a).test===e,"data added");u.La(a);ok(!u.L[d],"cached item nulled");ok(a[u.expando]===h||a[u.expando]===c,"element data id removed")});
test("should read tag attributes from elements, including HTML5 in all browsers",function(){var a=document.createElement("div"),b;b='<video id="vid1" controls autoplay loop muted preload="none" src="http://google.com" poster="http://www2.videojs.com/img/video-js-html5-video-player.png" data-test="asdf" data-empty-string=""></video><video id="vid2"><source id="source" src="http://google.com" type="video/mp4" media="fdsa" title="test" >';b+='<track id="track" default src="http://google.com" kind="captions" srclang="en" label="testlabel" title="test" >';
a.innerHTML+=b;document.getElementById("qunit-fixture").appendChild(a);a=u.N(document.getElementById("vid2"));b=u.N(document.getElementById("source"));var d=u.N(document.getElementById("track"));deepEqual(u.N(document.getElementById("vid1")),{autoplay:f,controls:f,"data-test":"asdf","data-empty-string":"",id:"vid1",loop:f,muted:f,poster:"http://www2.videojs.com/img/video-js-html5-video-player.png",preload:"none",src:"http://google.com"});deepEqual(a,{id:"vid2"});deepEqual(b,{title:"test",media:"fdsa",
a.innerHTML+=b;document.getElementById("qunit-fixture").appendChild(a);a=u.M(document.getElementById("vid2"));b=u.M(document.getElementById("source"));var d=u.M(document.getElementById("track"));deepEqual(u.M(document.getElementById("vid1")),{autoplay:f,controls:f,"data-test":"asdf","data-empty-string":"",id:"vid1",loop:f,muted:f,poster:"http://www2.videojs.com/img/video-js-html5-video-player.png",preload:"none",src:"http://google.com"});deepEqual(a,{id:"vid2"});deepEqual(b,{title:"test",media:"fdsa",
type:"video/mp4",src:"http://google.com",id:"source"});deepEqual(d,{"default":f,id:"track",kind:"captions",label:"testlabel",src:"http://google.com",srclang:"en",title:"test"})});
test("should get the right style values for an element",function(){var a=document.createElement("div"),b=document.createElement("div"),d=document.getElementById("qunit-fixture");b.appendChild(a);d.appendChild(b);b.style.width="1000px";b.style.height="1000px";a.style.height="100%";a.style.width="123px";ok("1000px"===u.Ca(a,"height"));ok("123px"===u.Ca(a,"width"))});
test("should insert an element first in another",function(){var a=document.createElement("div"),b=document.createElement("div"),d=document.createElement("div");u.$(a,d);ok(d.firstChild===a,"inserts first into empty parent");u.$(b,d);ok(d.firstChild===b,"inserts first into parent with child")});
test("should get the right style values for an element",function(){var a=document.createElement("div"),b=document.createElement("div"),d=document.getElementById("qunit-fixture");b.appendChild(a);d.appendChild(b);b.style.width="1000px";b.style.height="1000px";a.style.height="100%";a.style.width="123px";ok("1000px"===u.Ba(a,"height"));ok("123px"===u.Ba(a,"width"))});
test("should insert an element first in another",function(){var a=document.createElement("div"),b=document.createElement("div"),d=document.createElement("div");u.Z(a,d);ok(d.firstChild===a,"inserts first into empty parent");u.Z(b,d);ok(d.firstChild===b,"inserts first into parent with child")});
test("should return the element with the ID",function(){var a=document.createElement("div"),b=document.createElement("div"),d=document.getElementById("qunit-fixture");d.appendChild(a);d.appendChild(b);a.id="test_id1";b.id="test_id2";ok(u.f("test_id1")===a,"found element for ID");ok(u.f("#test_id2")===b,"found element for CSS ID")});test("should trim whitespace from a string",function(){ok("asdf asdf asdf"===u.trim(" asdf asdf asdf \t\n\r"))});
test("should round a number",function(){ok(1===u.round(1.01));ok(2===u.round(1.5));ok(1.55===u.round(1.55,2));ok(10.55===u.round(10.551,2))});
test("should format time as a string",function(){ok("0:01"===u.o(1));ok("0:10"===u.o(10));ok("1:00"===u.o(60));ok("10:00"===u.o(600));ok("1:00:00"===u.o(3600));ok("10:00:00"===u.o(36E3));ok("100:00:00"===u.o(36E4));ok("0:01"===u.o(1,1));ok("0:01"===u.o(1,10));ok("0:01"===u.o(1,60));ok("00:01"===u.o(1,600));ok("0:00:01"===u.o(1,3600));ok("0:00:01"===u.o(1,36E3));ok("0:00:01"===u.o(1,36E4))});test("should create a fake timerange",function(){var a=u.ya(10);ok(0===a.start());ok(10===a.end())});
test("should get an absolute URL",function(){ok("http://asdf.com"===u.ia("http://asdf.com"));ok("https://asdf.com/index.html"===u.ia("https://asdf.com/index.html"))});module("HTML5");module("Player");function db(){var a=document.createElement("video");a.id="example_1";a.className="video-js vjs-default-skin";return a}function fb(a){var b=db();document.getElementById("qunit-fixture").appendChild(b);return player=new v(b,a)}test("should create player instance that inherits from component and dispose it",function(){var a=fb();ok("DIV"===a.f().nodeName);ok(a.e,"component function exists");a.l();ok(a.f()===h,"element disposed")});
test("should accept options from multiple sources and override in correct order",function(){u.options.attr=1;var a=db(),a=new v(a);ok(1===a.options.attr,"global option was set");a.l();a=db();a.setAttribute("attr","asdf");a=new v(a);ok("asdf"===a.options.attr,"Tag options overrode global options");a.l();a=db();a.setAttribute("attr","asdf");a=new v(a,{attr:"fdsa"});ok("fdsa"===a.options.attr,"Init options overrode tag and global options");a.l()});
test("should format time as a string",function(){ok("0:01"===u.o(1));ok("0:10"===u.o(10));ok("1:00"===u.o(60));ok("10:00"===u.o(600));ok("1:00:00"===u.o(3600));ok("10:00:00"===u.o(36E3));ok("100:00:00"===u.o(36E4));ok("0:01"===u.o(1,1));ok("0:01"===u.o(1,10));ok("0:01"===u.o(1,60));ok("00:01"===u.o(1,600));ok("0:00:01"===u.o(1,3600));ok("0:00:01"===u.o(1,36E3));ok("0:00:01"===u.o(1,36E4))});test("should create a fake timerange",function(){var a=u.xa(10);ok(0===a.start());ok(10===a.end())});
test("should get an absolute URL",function(){ok("http://asdf.com"===u.ha("http://asdf.com"));ok("https://asdf.com/index.html"===u.ha("https://asdf.com/index.html"))});module("HTML5");module("Player");function fb(){var a=document.createElement("video");a.id="example_1";a.className="video-js vjs-default-skin";return a}function hb(a){var b=fb();document.getElementById("qunit-fixture").appendChild(b);return player=new v(b,a)}test("should create player instance that inherits from component and dispose it",function(){var a=hb();ok("DIV"===a.f().nodeName);ok(a.e,"component function exists");a.l();ok(a.f()===h,"element disposed")});
test("should accept options from multiple sources and override in correct order",function(){u.options.attr=1;var a=fb(),a=new v(a);ok(1===a.options.attr,"global option was set");a.l();a=fb();a.setAttribute("attr","asdf");a=new v(a);ok("asdf"===a.options.attr,"Tag options overrode global options");a.l();a=fb();a.setAttribute("attr","asdf");a=new v(a,{attr:"fdsa"});ok("fdsa"===a.options.attr,"Init options overrode tag and global options");a.l()});
test("should get tag, source, and track settings",function(){var a=document.getElementById("qunit-fixture"),b;b='<video id="example_1" class="video-js" autoplay preload="metadata"><source src="http://google.com" type="video/mp4"><source src="http://google.com" type="video/webm">';b+='<track src="http://google.com" kind="captions" default>';b+="</video>";a.innerHTML+=b;a=document.getElementById("example_1");b=new v(a);ok(b.options.autoplay===f);ok("metadata"===b.options.preload);ok("example_1"===b.options.id);
ok(2===b.options.sources.length);ok("http://google.com"===b.options.sources[0].src);ok("video/mp4"===b.options.sources[0].type);ok("video/webm"===b.options.sources[1].type);ok(1===b.options.tracks.length);ok("captions"===b.options.tracks[0].kind);ok(b.options.tracks[0]["default"]===f);ok(-1!==b.f().className.indexOf("video-js"),"transferred class from tag to player div");ok("example_1"===b.f().id,"transferred id from tag to player div");ok(a.a===b,"player referenceable on original tag");ok(u.P[b.id()]===
b,"player referenceable from global list");ok(a.id!==b.id,"tag ID no longer is the same as player ID");ok(a.className!==b.f().className,"tag classname updated");b.l();ok(a.a===h,"tag player ref killed");ok(!u.P.example_1,"global player ref killed");ok(b.f()===h,"player el killed")});
test("should set the width and height of the player",function(){var a=fb({width:123,height:"100%"});ok(123===a.width());ok("123px"===a.f().style.width);var b=document.getElementById("qunit-fixture"),d=document.createElement("div");b.appendChild(d);d.appendChild(a.f());d.style.height="1000px";ok(1E3===a.height());a.l()});
test("should accept options from multiple sources and override in correct order",function(){var a=db(),b=document.createElement("div"),d=document.getElementById("qunit-fixture");b.appendChild(a);d.appendChild(b);var d=new v(a),e=d.f();ok(e.parentNode===b,"player placed at same level as tag");ok(a.parentNode!==b,"tag removed from original place");d.l()});
test("should load a media controller",function(){var a=fb({ca:"none",rc:[{src:"http://google.com",type:"video/mp4"},{src:"http://google.com",type:"video/webm"}]});ok(-1!==a.f().children[0].className.indexOf("vjs-tech"),"media controller loaded");a.l()});module("Setup");})();//@ sourceMappingURL=video.js.map
ok(2===b.options.sources.length);ok("http://google.com"===b.options.sources[0].src);ok("video/mp4"===b.options.sources[0].type);ok("video/webm"===b.options.sources[1].type);ok(1===b.options.tracks.length);ok("captions"===b.options.tracks[0].kind);ok(b.options.tracks[0]["default"]===f);ok(-1!==b.f().className.indexOf("video-js"),"transferred class from tag to player div");ok("example_1"===b.f().id,"transferred id from tag to player div");ok(a.player===b,"player referenceable on original tag");ok(u.O[b.id()]===
b,"player referenceable from global list");ok(a.id!==b.id,"tag ID no longer is the same as player ID");ok(a.className!==b.f().className,"tag classname updated");b.l();ok(a.player===h,"tag player ref killed");ok(!u.O.example_1,"global player ref killed");ok(b.f()===h,"player el killed")});
test("should set the width and height of the player",function(){var a=hb({width:123,height:"100%"});ok(123===a.width());ok("123px"===a.f().style.width);var b=document.getElementById("qunit-fixture"),d=document.createElement("div");b.appendChild(d);d.appendChild(a.f());d.style.height="1000px";ok(1E3===a.height());a.l()});
test("should accept options from multiple sources and override in correct order",function(){var a=fb(),b=document.createElement("div"),d=document.getElementById("qunit-fixture");b.appendChild(a);d.appendChild(b);var d=new v(a),e=d.f();ok(e.parentNode===b,"player placed at same level as tag");ok(a.parentNode!==b,"tag removed from original place");d.l()});
test("should load a media controller",function(){var a=hb({ba:"none",qc:[{src:"http://google.com",type:"video/mp4"},{src:"http://google.com",type:"video/webm"}]});ok(-1!==a.f().children[0].className.indexOf("vjs-tech"),"media controller loaded");a.l()});module("Setup");})();//@ sourceMappingURL=video.js.map