
var videoJSPlayers=new Array();(function(){var initializing=false,fnTest=/xyz/.test(function(){xyz;})?/\b_super\b/:/.*/;this.Class=function(){};Class.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this();initializing=false;for(var name in prop){prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?(function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);this._super=tmp;return ret;};})(name,prop[name]):prop[name];}function Class(){if(!initializing&&this.init)this.init.apply(this,arguments);}Class.prototype=prototype;Class.constructor=Class;Class.extend=arguments.callee;return Class;};})();var VideoJS=Class.extend({init:function(element,setOptions){this.video=element;this.video.controls=false;this.options={num:0,controlsBelow:false,controlsHiding:true,defaultVolume:0.85,flashVersion:9,linksHiding:true};if(typeof setOptions=="object")_V_.merge(this.options,setOptions);this.box=this.video.parentNode;this.flashFallback=this.getFlashFallback();this.linksFallback=this.getLinksFallback();if(VideoJS.browserSupportsVideo()||((this.flashFallback||VideoJS.isIE())&&this.flashVersionSupported())){this.hideLinksFallback();}
if(VideoJS.browserSupportsVideo()){if(this.canPlaySource()==false){this.replaceWithFlash();return;}}else{return;}
if(VideoJS.isIpad()){this.options.controlsBelow=true;this.options.controlsHiding=false;}
if(this.options.controlsBelow){_V_.addClass(this.box,"vjs-controls-below");}
this.percentLoaded=0;this.buildPoster();this.showPoster();this.buildController();this.showController();this.video.addEventListener("loadeddata",this.onLoadedData.context(this),false);this.video.addEventListener("play",this.onPlay.context(this),false);this.video.addEventListener("pause",this.onPause.context(this),false);this.video.addEventListener("ended",this.onEnded.context(this),false);this.video.addEventListener('volumechange',this.onVolumeChange.context(this),false);this.video.addEventListener('error',this.onError.context(this),false);this.video.addEventListener('progress',this.onProgress.context(this),false);this.watchBuffer=setInterval(this.updateBufferedTotal.context(this),33);this.video.addEventListener('timeupdate',this.onTimeUpdate.context(this),false);this.playControl.addEventListener("click",this.onPlayControlClick.context(this),false);this.video.addEventListener("click",this.onPlayControlClick.context(this),false);if(this.poster)this.poster.addEventListener("click",this.onPlayControlClick.context(this),false);this.progressHolder.addEventListener("mousedown",this.onProgressHolderMouseDown.context(this),false);this.progressHolder.addEventListener("mouseup",this.onProgressHolderMouseUp.context(this),false);this.setVolume(localStorage.volume||this.options.defaultVolume);this.volumeControl.addEventListener("mousedown",this.onVolumeControlMouseDown.context(this),false);this.volumeControl.addEventListener("mouseup",this.onVolumeControlMouseUp.context(this),false);this.updateVolumeDisplay();this.fullscreenControl.addEventListener("click",this.onFullscreenControlClick.context(this),false);this.video.addEventListener("mousemove",this.onVideoMouseMove.context(this),false);this.video.addEventListener("mouseout",this.onVideoMouseOut.context(this),false);if(this.poster)this.poster.addEventListener("mousemove",this.onVideoMouseMove.context(this),false);if(this.poster)this.poster.addEventListener("mouseout",this.onVideoMouseOut.context(this),false);this.controls.addEventListener("mouseout",this.onVideoMouseOut.context(this),false);this.onEscKey=function(event){if(event.keyCode==27){this.fullscreenOff();}}.context(this);this.onWindowResize=function(event){this.positionController();}.context(this);this.fixPreloading();this.subtitlesSource=this.video.getAttribute("data-subtitles");if(this.subtitlesSource!=null){this.loadSubtitles();this.buildSubtitles();}},fixPreloading:function(){if(typeof this.video.hasAttribute=="function"&&this.video.hasAttribute("preload")){this.video.autobuffer=true;}},buildController:function(){this.controls=_V_.createElement("ul",{className:"vjs-controls"});this.video.parentNode.appendChild(this.controls);this.playControl=_V_.createElement("li",{className:"vjs-play-control vjs-play",innerHTML:"<span></span>"});this.controls.appendChild(this.playControl);this.progressControl=_V_.createElement("li",{className:"vjs-progress-control"});this.controls.appendChild(this.progressControl);this.progressHolder=_V_.createElement("ul",{className:"vjs-progress-holder"});this.progressControl.appendChild(this.progressHolder);this.loadProgress=_V_.createElement("li",{className:"vjs-load-progress"});this.progressHolder.appendChild(this.loadProgress)
this.playProgress=_V_.createElement("li",{className:"vjs-play-progress"});this.progressHolder.appendChild(this.playProgress);this.timeControl=_V_.createElement("li",{className:"vjs-time-control"});this.controls.appendChild(this.timeControl);this.currentTimeDisplay=_V_.createElement("span",{className:"vjs-current-time-display",innerHTML:"00:00"});this.timeControl.appendChild(this.currentTimeDisplay);this.timeSeparator=_V_.createElement("span",{innerHTML:" / "});this.timeControl.appendChild(this.timeSeparator);this.durationDisplay=_V_.createElement("span",{className:"vjs-duration-display",innerHTML:"00:00"});this.timeControl.appendChild(this.durationDisplay);this.volumeControl=_V_.createElement("li",{className:"vjs-volume-control",innerHTML:"<ul><li></li><li></li><li></li><li></li><li></li><li></li></ul>"});this.controls.appendChild(this.volumeControl);this.volumeDisplay=this.volumeControl.children[0]
this.fullscreenControl=_V_.createElement("li",{className:"vjs-fullscreen-control",innerHTML:"<ul><li></li><li></li><li></li><li></li></ul>"});this.controls.appendChild(this.fullscreenControl);},getLinksFallback:function(){return this.box.getElementsByTagName("P")[0];},hideLinksFallback:function(){if(this.options.linksHiding&&this.linksFallback)this.linksFallback.style.display="none";},getFlashFallback:function(){if(VideoJS.isIE())return;var children=this.box.getElementsByClassName("vjs-flash-fallback");for(var i=0,j=children.length;i<j;i++){if(children[i].tagName.toUpperCase()=="OBJECT"){return children[i];}}},replaceWithFlash:function(){if(this.flashFallback){this.box.insertBefore(this.flashFallback,this.video);this.video.style.display="none";}},showController:function(){this.controls.style.display="block";this.positionController();},positionController:function(){if(this.controls.style.display=='none')return;if(this.videoIsFullScreen){this.box.style.width="";}else{this.box.style.width=this.video.offsetWidth+"px";}
if(this.options.controlsBelow){if(this.videoIsFullScreen){this.box.style.height="";this.video.style.height=(this.box.offsetHeight-this.controls.offsetHeight)+"px";}else{this.video.style.height="";this.box.style.height=this.video.offsetHeight+this.controls.offsetHeight+"px";}
this.controls.style.top=this.video.offsetHeight+"px";}else{this.controls.style.top=(this.video.offsetHeight-this.controls.offsetHeight)+"px";}
this.sizeProgressBar();},hideController:function(){if(this.options.controlsHiding)this.controls.style.display="none";},updatePosterSource:function(){if(!this.video.poster){var images=this.video.getElementsByTagName("img");if(images.length>0)this.video.poster=images[0].src;}},buildPoster:function(){this.updatePosterSource();if(this.video.poster){this.poster=document.createElement("img");this.video.parentNode.appendChild(this.poster);this.poster.src=this.video.poster;this.poster.className="vjs-poster";}else{this.poster=false;}},showPoster:function(){if(!this.poster)return;this.poster.style.display="block";this.positionPoster();},positionPoster:function(){if(this.poster==false||this.poster.style.display=='none')return;this.poster.style.height=this.video.offsetHeight+"px";this.poster.style.width=this.video.offsetWidth+"px";},hidePoster:function(){if(!this.poster)return;this.poster.style.display="none";},canPlaySource:function(){var children=this.video.children;for(var i=0,j=children.length;i<j;i++){if(children[i].tagName.toUpperCase()=="SOURCE"){var canPlay=this.video.canPlayType(children[i].type);if(canPlay=="probably"||canPlay=="maybe"){return true;}}}
return false;},onPlay:function(event){this.playControl.className="vjs-play-control vjs-pause";this.hidePoster();this.trackPlayProgress();},onPause:function(event){this.playControl.className="vjs-play-control vjs-play";this.stopTrackingPlayProgress();},onEnded:function(event){this.video.pause();this.onPause();},onVolumeChange:function(event){this.updateVolumeDisplay();},onError:function(event){console.log(event);console.log(this.video.error);},onLoadedData:function(event){this.showController();},onProgress:function(event){if(event.total>0){this.setLoadProgress(event.loaded/event.total);}},updateBufferedTotal:function(){if(this.video.buffered){if(this.video.buffered.length>=1){this.setLoadProgress(this.video.buffered.end(0)/this.video.duration);if(this.video.buffered.end(0)==this.video.duration){clearInterval(this.watchBuffer);}}}else{clearInterval(this.watchBuffer);}},setLoadProgress:function(percentAsDecimal){if(percentAsDecimal>this.percentLoaded){this.percentLoaded=percentAsDecimal;this.updateLoadProgress();}},updateLoadProgress:function(){if(this.controls.style.display=='none')return;this.loadProgress.style.width=(this.percentLoaded*(_V_.getComputedStyleValue(this.progressHolder,"width").replace("px","")))+"px";},onPlayControlClick:function(event){if(this.video.paused){this.video.play();}else{this.video.pause();}},onProgressHolderMouseDown:function(event){this.stopTrackingPlayProgress();if(this.video.paused){this.videoWasPlaying=false;}else{this.videoWasPlaying=true;this.video.pause();}
_V_.blockTextSelection();document.onmousemove=function(event){this.setPlayProgressWithEvent(event);}.context(this);document.onmouseup=function(event){_V_.unblockTextSelection();document.onmousemove=null;document.onmouseup=null;if(this.videoWasPlaying){this.video.play();this.trackPlayProgress();}}.context(this);},onProgressHolderMouseUp:function(event){this.setPlayProgressWithEvent(event);if(this.video.paused){this.onPause();}else{this.onPlay();}},onVolumeControlMouseDown:function(event){_V_.blockTextSelection();document.onmousemove=function(event){this.setVolumeWithEvent(event);}.context(this);document.onmouseup=function(){_V_.unblockTextSelection();document.onmousemove=null;document.onmouseup=null;}.context(this);},onVolumeControlMouseUp:function(event){this.setVolumeWithEvent(event);},onFullscreenControlClick:function(event){if(!this.videoIsFullScreen){this.fullscreenOn();}else{this.fullscreenOff();}},onVideoMouseMove:function(event){this.showController();clearInterval(this.mouseMoveTimeout);this.mouseMoveTimeout=setTimeout(function(){this.hideController();}.context(this),4000);},onVideoMouseOut:function(event){var parent=event.relatedTarget;while(parent&&parent!==this.video&&parent!==this.controls){parent=parent.parentNode;}
if(parent!==this.video&&parent!==this.controls){this.hideController();}},sizeProgressBar:function(){this.updatePlayProgress();this.updateLoadProgress();},getControlsPadding:function(){return _V_.findPosX(this.playControl)-_V_.findPosX(this.controls)},getControlBorderAdjustment:function(){var leftBorder=parseInt(_V_.getComputedStyleValue(this.playControl,"border-left-width").replace("px",""));var rightBorder=parseInt(_V_.getComputedStyleValue(this.playControl,"border-right-width").replace("px",""));return leftBorder+rightBorder;},trackPlayProgress:function(){if(this.playProgressInterval)clearInterval(this.playProgressInterval);this.playProgressInterval=setInterval(function(){this.updatePlayProgress();}.context(this),33);},stopTrackingPlayProgress:function(){clearInterval(this.playProgressInterval);},updatePlayProgress:function(){if(this.controls.style.display=='none')return;this.playProgress.style.width=((this.video.currentTime/this.video.duration)*(_V_.getComputedStyleValue(this.progressHolder,"width").replace("px","")))+"px";this.updateTimeDisplay();},setPlayProgress:function(newProgress){this.video.currentTime=newProgress*this.video.duration;this.playProgress.style.width=newProgress*(_V_.getComputedStyleValue(this.progressHolder,"width").replace("px",""))+"px";this.updateTimeDisplay();if(this.subtitles!=null){this.currentSubtitlePosition=0;}},setPlayProgressWithEvent:function(event){var newProgress=_V_.getRelativePosition(event.pageX,this.progressHolder);this.setPlayProgress(newProgress);},updateTimeDisplay:function(){this.currentTimeDisplay.innerHTML=_V_.formatTime(this.video.currentTime);if(this.video.duration)this.durationDisplay.innerHTML=_V_.formatTime(this.video.duration);},setVolume:function(newVol){this.video.volume=parseFloat(newVol);localStorage.volume=this.video.volume;},setVolumeWithEvent:function(event){var newVol=_V_.getRelativePosition(event.pageX,this.volumeControl.children[0]);this.setVolume(newVol);},updateVolumeDisplay:function(){var volNum=Math.ceil(this.video.volume*6);for(var i=0;i<6;i++){if(i<volNum){_V_.addClass(this.volumeDisplay.children[i],"vjs-volume-level-on")}else{_V_.removeClass(this.volumeDisplay.children[i],"vjs-volume-level-on");}}},fullscreenOn:function(){if(!this.nativeFullscreenOn()){this.videoIsFullScreen=true;this.docOrigOverflow=document.documentElement.style.overflow;document.addEventListener("keydown",this.onEscKey,false);window.addEventListener("resize",this.onWindowResize,false);document.documentElement.style.overflow='hidden';_V_.addClass(this.box,"vjs-fullscreen");this.positionController();this.positionPoster();}},nativeFullscreenOn:function(){if(typeof this.video.webkitEnterFullScreen=='function'&&false){if(!navigator.userAgent.match("Chrome")){this.video.webkitEnterFullScreen();return true;}}},fullscreenOff:function(){this.videoIsFullScreen=false;document.removeEventListener("keydown",this.onEscKey,false);window.removeEventListener("resize",this.onWindowResize,false);document.documentElement.style.overflow=this.docOrigOverflow;_V_.removeClass(this.box,"vjs-fullscreen");this.positionController();this.positionPoster();},flashVersionSupported:function(){return VideoJS.getFlashVersion()>=this.options.flashVersion;},loadSubtitles:function(){if(typeof XMLHttpRequest=="undefined"){XMLHttpRequest=function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0");}
catch(e){}
try{return new ActiveXObject("Msxml2.XMLHTTP.3.0");}
catch(e){}
try{return new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){}
throw new Error("This browser does not support XMLHttpRequest.");};}
var request=new XMLHttpRequest();request.open("GET",this.subtitlesSource);request.onreadystatechange=function(){if(request.readyState==4&&request.status==200){this.parseSubtitles(request.responseText);}}.context(this);request.send();},parseSubtitles:function(text){var lines=text.replace("\r",'').split("\n");this.subtitles=new Array();this.currentSubtitlePosition=0;var i=0;while(i<lines.length){var subtitle={};subtitle.id=lines[i++];if(subtitle.id==""){break;}
var time=lines[i++].split(" --> ");subtitle.startTime=this.parseSubtitleTime(time[0]);subtitle.endTime=this.parseSubtitleTime(time[1]);var text=new Array();while(lines[i].length>0&&lines[i]!="\r"){text.push(lines[i++]);}
subtitle.text=text.join('<br/>');this.subtitles.push(subtitle);i++;}},parseSubtitleTime:function(timeText){var parts=timeText.split(':');var time=0;time+=parseInt(parts[0])*60*60;time+=parseInt(parts[1])*60;var seconds=parts[2].split(',');time+=parseInt(seconds[0]);time=time+parseInt(seconds[1])/1000;return time;},buildSubtitles:function(){this.subtitlesDiv=_V_.createElement("div",{className:'vjs-subtitles'});this.video.parentNode.appendChild(this.subtitlesDiv);},onTimeUpdate:function(){if(this.subtitles!=null){var x=this.currentSubtitlePosition;while(x<this.subtitles.length&&this.video.currentTime>this.subtitles[x].endTime){if(this.subtitles[x].showing){this.subtitles[x].showing=false;this.subtitlesDiv.innerHTML="";}
this.currentSubtitlePosition++;x=this.currentSubtitlePosition;}
if(this.currentSubtitlePosition>=this.subtitles.length)
return;if(this.video.currentTime>=this.subtitles[x].startTime&&this.video.currentTime<=this.subtitles[x].endTime){this.subtitlesDiv.innerHTML=this.subtitles[x].text;this.subtitles[x].showing=true;}}}})
var _V_={addClass:function(element,classToAdd){if(element.className.split(/\s+/).lastIndexOf(classToAdd)==-1){element.className=element.className==""?classToAdd:element.className+" "+classToAdd;}},removeClass:function(element,classToRemove){if(element.className.indexOf(classToRemove)==-1)return;var classNames=element.className.split(/\s+/);classNames.splice(classNames.lastIndexOf(classToRemove),1);element.className=classNames.join(" ");},merge:function(obj1,obj2){for(attrname in obj2){obj1[attrname]=obj2[attrname];}return obj1;},createElement:function(tagName,attributes){return _V_.merge(document.createElement(tagName),attributes);},blockTextSelection:function(){document.body.focus();document.onselectstart=function(){return false;};},unblockTextSelection:function(){document.onselectstart=function(){return true;};},formatTime:function(seconds){seconds=Math.round(seconds);minutes=Math.floor(seconds/60);minutes=(minutes>=10)?minutes:"0"+minutes;seconds=Math.floor(seconds%60);seconds=(seconds>=10)?seconds:"0"+seconds;return minutes+":"+seconds;},getRelativePosition:function(x,relativeElement){return Math.max(0,Math.min(1,(x-_V_.findPosX(relativeElement))/relativeElement.offsetWidth));},findPosX:function(obj){var curleft=obj.offsetLeft;while(obj=obj.offsetParent){curleft+=obj.offsetLeft;}
return curleft;},getComputedStyleValue:function(element,style){return window.getComputedStyle(element,null).getPropertyValue(style);}}
VideoJS.setup=function(options){var elements=document.getElementsByTagName("video");for(var i=0,j=elements.length;i<j;i++){videoTag=elements[i];if(videoTag.className.indexOf("video-js")!=-1){options=(options)?_V_.merge(options,{num:i}):options;videoJSPlayers[i]=new VideoJS(videoTag,options);}}}
VideoJS.addVideos=function(videos,options){videos=videos instanceof Array?videos:[videos];var videoTag;for(var i=0;i<videos.length;i++){if(typeof videos[i]=='string'){videoTag=document.getElementById(videos[i]);}else{videoTag=videos[i];}
options=(options)?_V_.merge(options,{num:videoJSPlayers.length}):options;videoJSPlayers.push(new VideoJS(videoTag,options));}}
VideoJS.browserSupportsVideo=function(){if(typeof VideoJS.videoSupport!="undefined")return VideoJS.videoSupport;return VideoJS.videoSupport=!!document.createElement('video').canPlayType;}
VideoJS.getFlashVersion=function(){if(typeof VideoJS.flashVersion!="undefined")return VideoJS.flashVersion;var version=0;if(typeof navigator.plugins!="undefined"&&typeof navigator.plugins["Shockwave Flash"]=="object"){desc=navigator.plugins["Shockwave Flash"].description;if(desc&&!(typeof navigator.mimeTypes!="undefined"&&navigator.mimeTypes["application/x-shockwave-flash"]&&!navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)){version=parseInt(desc.match(/^.*\s+([^\s]+)\.[^\s]+\s+[^\s]+$/)[1]);}}else if(typeof window.ActiveXObject!="undefined"){try{var testObject=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(testObject){version=parseInt(testObject.GetVariable("$version").match(/^[^\s]+\s(\d+)/)[1]);}}
catch(e){}}
return VideoJS.flashVersion=version;}
VideoJS.isIE=function(){return!+"\v1";}
VideoJS.isIpad=function(){return navigator.userAgent.match(/iPad/i)!=null;}
Function.prototype.context=function(obj){var method=this
temp=function(){return method.apply(obj,arguments)}
return temp}
