diff --git a/Gruntfile.js b/Gruntfile.js
index bf40ce856..5c870e515 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -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;
diff --git a/src/js/component.js b/src/js/component.js
index ef151d09c..464453bd5 100644
--- a/src/js/component.js
+++ b/src/js/component.js
@@ -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 {
diff --git a/src/js/controls.js b/src/js/controls.js
index a3fd19765..7df6b8689 100644
--- a/src/js/controls.js
+++ b/src/js/controls.js
@@ -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 = '
';
@@ -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
diff --git a/src/js/core.js b/src/js/core.js
index cf7bf5221..9f8429d99 100644
--- a/src/js/core.js
+++ b/src/js/core.js
@@ -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
diff --git a/src/js/media.flash.js b/src/js/media.flash.js
index d569604a2..d4af14b15 100644
--- a/src/js/media.flash.js
+++ b/src/js/media.flash.js
@@ -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);
};
diff --git a/src/js/media.html5.js b/src/js/media.html5.js
index d223f5c60..5e4ca79b9 100644
--- a/src/js/media.html5.js
+++ b/src/js/media.html5.js
@@ -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 ---------------------------------------------------- */
diff --git a/src/js/media.js b/src/js/media.js
index 44d1e37c8..32eea30af 100644
--- a/src/js/media.js
+++ b/src/js/media.js
@@ -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();
}
}
};
diff --git a/src/js/player.js b/src/js/player.js
index 8fa699c92..1133c016d 100644
--- a/src/js/player.js
+++ b/src/js/player.js
@@ -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();
});
};
diff --git a/src/js/setup.js b/src/js/setup.js
index 07cbb3a32..c530e9c25 100644
--- a/src/js/setup.js
+++ b/src/js/setup.js
@@ -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.
diff --git a/src/js/tracks.js b/src/js/tracks.js
index 0d826e708..4c711bacb 100644
--- a/src/js/tracks.js
+++ b/src/js/tracks.js
@@ -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 (;ie?"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:'x'}).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&&0Google Chrome or download the latest Adobe Flash Player.'}))}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'+(this.L||"Need Text")+"",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:""})};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=''):(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:"/
"})};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:'Loaded: 0%'})};
-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:'Progress: 0%'})};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:'00:00'})};
-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:''})};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:''})};
-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:'Mute
'})};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'});e=u.s({data:a,width:"100%",height:"100%"},e);u.Y(e,function(a,b){m+=a+'="'+b+'" '});return'"};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");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.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'+a[d].text+"";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&&0e.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;be?"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:'x'}).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&&0Google Chrome or download the latest Adobe Flash Player.'}))}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'+(this.K||"Need Text")+"",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:""})};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=''):(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:"/
"})};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:'Loaded: 0%'})};
+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:'Progress: 0%'})};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:'00:00'})};
+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:''})};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:''})};
+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:'Mute
'})};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'});e=u.t({data:a,width:"100%",height:"100%"},e);u.S(e,function(a,b){j+=a+'="'+b+'" '});return'"};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");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.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'+a[d].text+"";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&&0e.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