/*
 * Copyright(c) 2007-2009 Vusion Inc. All rights reserved,
 * http://www.vusion.com
 */

if(typeof Vusion==="undefined"){var Vusion={}}if(typeof Vusion.InstallConfig==="undefined"){Vusion.InstallConfig={minVersion:700,releaseVersion:"r07",installLocation:null,unsupportedLocation:null,packagesLocation:"http://deploy.vusion.com",ffMode:"xpi",installMode:"integrated",upgradeMode:"integrated"}}if(typeof Vusion=="undefined"){var Vusion={}}Vusion.Install=function(C,A){this.installMode="integrated";this.upgradeMode="integrated";var B;if(Vusion.InstallConfig){for(B in Vusion.InstallConfig){this[B]=Vusion.InstallConfig[B]}}if(C){for(B in C){this[B]=C[B]}}if(this.container&&typeof this.container=="string"){this.container=document.getElementById(this.container)}this.config=C;this.postInstall=A;if(this.version){this._requested=this.versionToBCD(this.version)}this.checkInstallation()};Vusion.Install.prototype={minVersion:501,macSupport:true,oldVersion:0,userAgent:navigator.userAgent.toLowerCase(),usingIE:navigator.userAgent.indexOf("MSIE")!=-1,downloadTimeout:false,startAgent:false,busy:false,checkActiveX:null,versionToBCD:function(A){if(A){var D=""+A;D=D.split(".");if(D&&D!==""){var B=D[0];var C=D[1];var E=D[2];if(!B){B=0}if(!C){C=0}if(!E){E=0}return(B*10000)+(C*100)+(E*1)}}return null},createAXCheck:function(){try{return new ActiveXObject("Jittr.Check")}catch(A){try{return new ActiveXObject("Vusion.Check")}catch(B){return null}}},keepAlive:function(){var A=this;setTimeout(function(){var C=null;if(A.usingIE){C=Vusion.Install.prototype.checkActiveX}else{C=document.getElementById("VusionCheck")}if(C&&C.agentCheck(true)){var B=C.agentVersion}A.keepAlive()},60000)},getInstalledVersion:function(H,C,B){if(!this.usingIE){navigator.plugins.refresh(false)}if(this.startAgent){this.keepAlive()}if(this.usingIE){if(!Vusion.Install.prototype.checkActiveX){Vusion.Install.prototype.checkActiveX=this.createAXCheck()}var F=Vusion.Install.prototype.checkActiveX;if(F&&(!this.startAgent||F.agentCheck(true))){if(F.version<700){return Vusion.Agent.getVersion(this.container,H,C,H)}var A;try{A=F.installedVersionStr}catch(G){}return H((A)?this.versionToBCD(A):F.version)}}else{if(navigator.mimeTypes!==null){var D=navigator.mimeTypes["application/x-jittr-check"];if(!D){D=navigator.mimeTypes["application/x-vusion-check"]}if(D){if(B&&this.userAgent.indexOf("windows")>=0){return Vusion.Agent.getVersion(this.container,H,C,H)}if(this.startAgent&&!document.getElementById("VusionCheck")){var E=document.createElement("div");E.style.width="0px";E.style.height="0px";E.innerHTML='<embed id="VusionCheck" type="application/x-vusion-check" width="0" height="0" startAgent="true"></embed>';document.body.appendChild(E)}return H(this.versionToBCD(D.description))}}}return H(null)},packageURL:function(A){var B=this.packagesLocation+"/p.php?i="+A+"&d="+document.domain+"&ov="+this.oldVersion;if(this.releaseVersion){B+="&r="+this.releaseVersion}return(this.defaultVersionOnInstall)?B+"&v="+this.defaultVersionOnInstall:B},download:function(){if(!this.downloadTimeout){var A="exe";if(this.ffMode=="xpi"&&this.userAgent.indexOf("firefox")!=-1){if(this.userAgent.indexOf("mac")<0){InstallTrigger.install({"Vusion Video Player":this.packageURL(this.ffMode)});this.checkInstalled(null);return }}else{if(this.ieMode&&this.usingIE){A=this.ieMode}}window.location=this.packageURL(A);this.checkInstalled(null);var B=this;this.downloadTimeout=true;setTimeout(function(){B.downloadTimeout=false},1000)}return false},restartPrompt:function(){alert("You must restart your browser for the changes to take effect")},checkPlayerVersion:function(A){if(this.installedVersion&&A.version<this.installedVersion){this.restartPrompt();return false}return true},checkInstalled:function(B){var E=this;if(B===null||(B<this.minVersion)||(this._requested&&B<this._requested)){if(B!==null){this.oldVersion=B}setTimeout(function(){E.getInstalledVersion(function(F){E.checkInstalled(F)},1500,true)},1000);return }this.installedVersion=B;var A=true;if(!this.usingIE&&this.userAgent.indexOf("windows")>=0){navigator.plugins.refresh(false);if(navigator.mimeTypes!==null){var D=navigator.mimeTypes["application/x-vusion-check"];if(D){var C=this.versionToBCD(D.description);if(!(C===null||(C<this.minVersion)||(this._requested&&C<this._requested))){A=false}}}}else{A=false}if(A){this.restartPrompt()}else{setTimeout(function(){E.checkVersion(B)},1000)}},installed:function(){if(this.installMode=="integrated"&&this.container){if(this.installFile){this.container.removeChild("Vusion_installFrame")}else{this.container.innerHTML=""}}else{if(this.installMode=="custom"&&this.customInstall&&this.customInstall.onInstallDone){if(!this.customInstall.onInstallDone(this,true)){return }}}this.postCheck()},install:function(G){var B=(this.userAgent.indexOf("windows")>=0&&(this.userAgent.indexOf("Win64")<0))||(this.macSupport&&this.userAgent.indexOf("mac")>=0);if(this.testUnsupported||!B){if(this.unsupportedLocation===null){this.postCheck();alert("The Vusion video player is not supported on this operating system at this time.")}else{window.location=this.unsupportedLocation}return }else{var D=this.installMode;if(D=="redirect"){window.location=this.installLocation}else{if(D=="window"){window.open(this.installLocation,this.installWindow.name,this.installWindow.features)}else{if(D=="browser"){this.config._cabURL=this.packageURL(this.cabName);this.config._installURL=this.installLocation;this.postCheck()}else{if(D=="integrated"&&this.container){var A;var C;var F;var E=this;if(G){if(this.upgradeFile){C=this.upgradeFile}else{if(this.installFile){C=this.installFile}else{F='<div style="color: #000; background-color: #FFF; font-weight: bold; text-align: center; width: 100%; height: 100%; padding-top: 50px;">A new version of the Vusion player is available!<br /><label style="text-decoration: underline; cursor: pointer;">Upgrade now</label></div>'}}}else{if(this.installFile){C=this.installFile}else{F='<div style="color: #000; background-color: #FFF; font-weight: bold; text-align: center; width: 100%; height: 100%; padding-top: 50px;">The Vusion Video Player needs to be installed<br><label style="text-decoration: underline; cursor: pointer;">Click here to start the installation</label></div>'}}if(C){this.container.innerHTML='<iframe id="Vusion_installFrame" src="'+C+'" width="100%" height="100%" frameborder="no"></iframe>';document.getElementById("Vusion_installFrame").startDownload=function(){E.download()}}else{if(F){this.container.innerHTML=F;this.container.getElementsByTagName("label")[0].onclick=function(){E.download()}}}}else{if(D=="custom"&&this.customInstall&&this.customInstall.onInstall){this.customInstall.onInstall(this)}else{window.location=this.installLocation}}}}}}},continueUpgrade:function(A){if(A===null||(this._requested&&A<this._requested)){var B=this;Vusion.Agent.upgrade(this.container,this._requested,function(){B.upgradeChecking()},function(){B.upgradeInstalling()},function(C){B.upgradeProgress(C)},2000,function(){B.upgradeTimeout()});return }this.upgradeDone()},checkUpgraded:function(){var A=this;setTimeout(function(){A.getInstalledVersion(function(B){A.continueUpgrade(B)},2000,true)},500)},upgradeDone:function(){if(this.upgradeMode=="custom"&&this.customInstall&&this.customInstall.onUpgradeDone){if(!this.customInstall.onUpgradeDone(this,true)){return }}else{if(this.upgradeMode=="integrated"&&this.container){this.container.innerHTML=""}}this.postCheck()},upgradeProgress:function(A){if(this.upgradeMode=="custom"&&this.customInstall&&this.customInstall.onUpgradeProgress){this.customInstall.onUpgradeProgress(this,A)}else{if(this.upgradeMode=="integrated"&&this.container){this.container.innerHTML="Downloading Vusion Video Player update: "+A+"% completed."}}this.checkUpgraded()},upgradeInstalling:function(){if(this.upgradeMode=="custom"&&this.customInstall&&this.customInstall.onUpgradeInstalling){this.customInstall.onUpgradeInstalling(this,p)}else{if(this.upgradeMode=="integrated"&&this.container){this.container.innerHTML="Installing a Vusion Video Player update ..."}}this.checkUpgraded()
},upgradeChecking:function(){if(this.upgradeMode=="custom"&&this.customInstall&&this.customInstall.onUpgradeChecking){this.customInstall.onUpgradeChecking(this,p)}else{if(this.upgradeMode=="integrated"&&this.container){this.container.innerHTML="The Vusion Video Player needs to be updated to play this content.<br>Checking for updates ..."}}this.checkUpgraded()},upgrade:function(A){if(this.upgradeMode=="custom"&&this.customInstall&&this.customInstall.onUpgrade){this.customInstall.onUpgrade(this)}else{if(this.upgradeMode=="integrated"&&this.container){this.container.innerHTML="The Vusion Video Player needs to be updated to play this content."}}this.continueUpgrade()},upgradeTimeout:function(){this.checkUpgraded()},checkVersion:function(A){if(A===null){this.install()}else{if(A<this.minVersion||(this._requested&&A<this._requested)){var B=this.minVersion;if(this._requested&&this._requested>this.minVersion){B=this._requested}if(A>=800){this.upgrade(B)}else{this.install(true)}}else{this.postCheck()}}},checkInstallation:function(){var A=this;if(Vusion.Install.prototype.busy){setTimeout(function(){A.checkInstallation()},500)}else{Vusion.Install.prototype.busy=true;this.getInstalledVersion(function(B){A.checkVersion(B)},2000,false)}},postCheck:function(){Vusion.Install.prototype.busy=false;if(this.postInstall){this.postInstall()}}};Vusion.Agent={stopTimeout:function(){clearTimeout(this.timeoutId)},startRequest:function(E,D,A,B){var C=document.createElement("script");C.src="http://127.0.0.1:6267"+D;C.type="text/javascript";E.appendChild(C);if(A&&B){this.timeoutId=setTimeout(function(){B(null)},A)}},getVersion:function(C,D,A,B){this.versionCallback=D;this.startRequest(C,"/version.js",A,B)},upgrade:function(E,H,G,B,F,A,D){var C=(((H/10000)|0)%100)+"."+(((H/100)|0)%100)+"."+((H|0)%100);this.progress=F;this.checkCallback=G;this.installCallback=B;this.progressCallback=F;this.startRequest(E,"/update.js?version="+C,A,D)},agentCheckingForUpgrade:function(){this.stopTimeout();this.checkCallback()},agentUpgradeProgress:function(A){this.stopTimeout();this.progressCallback(A)},agentInstallingUpgrade:function(){this.stopTimeout();this.installCallback()},agentInvalidRPCCall:function(){this.stopTimeout()},agentVersion:function(A,B,D,C){this.stopTimeout();this.versionCallback(A*10000+B*100+D*1)}};function vusion_checkingForUpdate(){Vusion.Agent.agentCheckingForUpgrade()}function vusion_updateProgress(A){Vusion.Agent.agentUpgradeProgress(A)}function vusion_installingUpdate(){Vusion.Agent.agentInstallingUpgrade()}function vusion_invalidRPCCall(){Vusion.Agent.agentInvalidRPCCall()}function IACD_Version_Info(A,B,D,C){Vusion.Agent.agentVersion(A,B,D,C)}String.format=function(B){var A=Array.prototype.slice.call(arguments,1);return B.replace(/\{(\d+)\}/g,function(C,D){return A[D]})};if(typeof Vusion=="undefined"){var Vusion={}}Vusion.Player=function(C,D,B){Vusion.Player.prototype.instance++;var A={};if(B){for(i in B){A[i]=B[i]}}this.params={};for(i in D){if(i!="scope"&&i!="stateHandler"){this.params[i]=D[i]}}if(!this.params.width){this.params.width="100%"}if(!this.params.height){this.params.height="100%"}this._container=typeof C=="string"?document.getElementById(C):C;if(!this._container){alert("invalid container: "+C);return }if(!A.container){A.container=C}this.config=A;var E=this;this.install=new Vusion.Install(this.config,function(){E.postInstall()})};Vusion.Player.prototype={instance:0,usingIE:navigator.userAgent.indexOf("MSIE")!=-1,set:function(A,B){this.params[A]=B},get:function(A){return this.params[A]},take:function(A){var B=this.get(A);this.set(A,undefined);return B},takeAttribute:function(A){var B=this.take(A);return(B!==undefined&&B!==null)?" "+A+'="'+B+'"':""},takeParam:function(A){var B=this.take(A);return(B!==undefined&&B!==null)?'<param name="'+A+'" value="'+B+'"/>\n':""},makeEmbed:function(){var B="<embed";for(var A in this.params){B+=this.takeAttribute(A)}B+="></embed>\n";return B},makeObject:function(){var B="<object"+this.takeAttribute("id")+this.takeAttribute("classid")+this.takeAttribute("type")+this.takeAttribute("width")+this.takeAttribute("height")+this.takeAttribute("codebase")+">\n";for(var A in this.params){B+=this.takeParam(A)}B+="</object>\n";return B},attachEventHandler:function(D,B,C,A){if(!this.usingIE){if(A){D.addEventListener(evt,fct,false)}else{D["on"+B]=C}}else{D.attachEvent((A?"on":"")+B,C)}},initEventHandler:function(A){var B=this;this.attachEventHandler(A,"State",function(C){B._stateHandler(C)},false)},_stateHandler:function(A){if(this.config.stateHandler){this.config.stateHandler.call(this.config.scope,A)}},initPlayer:function(A){if(this.install&&!this.install.checkPlayerVersion(A)){return }if(this.config.stateHandler){this.config.stateHandler.call(this.config.scope,Vusion.PlayerState.READY)}this.initEventHandler(A);if(this._url){A.url=this._url}},waitForPlayer:function(D,B){var A=document.getElementById(D);if(!A||!A.version||B){var C=this;setTimeout(function(){C.waitForPlayer(D,false)},(B)?1:100);return }this.initPlayer(A)},makeHTML:function(){var B;this._url=this.take("url");var A=this.take("bitrate");if(this._url&&A){this._url+="?jittr_bitrate="+A}this._id=this.get("id");if(!this._id){this._id="_Vusion_player"+this.instance;this.set("id",this._id)}if(this.usingIE){this.set("classid","CLSID:4862BED8-B3BE-4D71-8E12-B0BA44C83E7F");if(this.config._cabURL){this.set("codebase",this.config._cabURL)}return this.makeObject()}else{this.set("type","application/x-jittr-player");if(this.config._installURL){this.set("pluginspage",this.config._installURL)}return this.makeEmbed()}},postInstall:function(){this._container.innerHTML=this.makeHTML();this.waitForPlayer(this._id,true)}};Vusion.PlayerState={READY:0,CLOSED:1,OPENING:2,OPENED:3,BUFFERING:4,PAUSED:5,PLAYING:6,STOPPED:7,ENDED:8};if(typeof Vusion=="undefined"){var Vusion={}}if(typeof Vusion.Players=="undefined"){Vusion.Players={}}Vusion.Players.jtrStates={0:"Ready",1:"Closed",2:"Opening",3:"Opened",4:"Buffering",5:"Paused",6:"Playing",7:"Stopped",8:"Ended"};Vusion.Players.jtr=function(C,B){this._config={id:null,width:"100%",height:"100%",scope:this,stateHandler:null};for(i in B){this._config[i]=B[i]}var A={stateHandler:this._stateUpdate,scope:this};if(typeof B.version!="undefined"){A.version=B.version}if(typeof B.customInstall!="undefined"){A.installMode="custom";A.customInstall=B.customInstall}else{if(typeof B.installFile!="undefined"){A.installMode="integrated";A.installFile=B.installFile;A.upgradeFile=B.upgradeFile}}this._container=typeof C=="string"?document.getElementById(C):C;var D=new Vusion.Player(this._container,this._config,A)};Vusion.Players.jtr.prototype={_currentPosition:-1,setUrl:function(A,B){if(!this._player){return }if(B){this._currentPosition=this._player.position}else{this._player.audioLang="";this._player.subtitleLang=""}if(!A||this._player.url==A){this._player.url=""}this._player.url=A},getUrl:function(){if(!this._player){return null}return this._player.url},setAudioLanguage:function(B){if(!this._player||(this._player.audioLang==B)){return }var A=this._player.url;this._currentPosition=this._player.position;this._player.url="";this._player.audioLang=B;this._player.url=A},setSubtitleLanguage:function(B){if(!this._player||(this._player.subtitleLang==B)){return }var A=this._player.url;this._currentPosition=this._player.position;this._player.url="";this._player.subtitleLang=B;this._player.url=A},setPosition:function(A){if(!this._player){return }if(A<0){A=0}else{if(A>this.getDuration()){A=this.getDuration()}}this._player.position=A},getPosition:function(){if(!this._player){return -1}return this._player.position},getDuration:function(){if(!this._player){return 0}return this._player.duration},setFullscreen:function(A){if(!this._player){return }this._player.fullScreen=A},setMute:function(A){alert("setMute not supported")},setVolume:function(A){if(!this._player){return }this._player.volume=A},getVolume:function(){if(!this._player){return 0}return this._player.volume},getState:function(){if(!this._player){return Vusion.Players.jtrStates[1]
}return Vusion.Players.jtrStates[this._player.state]},play:function(){if(!this._player){return }this._player.play()},stop:function(){if(!this._player){return }this._player.stop()},pause:function(){if(!this._player){return }this._player.pause()},fastForward:function(){alert("fastForward not supported")},fastReverse:function(){alert("fastReverse not supported")},previous:function(){alert("Playlist not defined")},next:function(){alert("Playlist not defined")},_config:null,_player:null,_stateUpdate:function(A){var B=Vusion.Players.jtrStates[A];if(typeof B!="undefined"){if(B=="Ready"){this._player=document.getElementById(this._config.id)}else{if(B=="Opened"&&this._currentPosition>0){this._player.position=this._currentPosition;this._currentPosition=-1}}this._config.stateHandler.call(this._config.scope,B)}}};if(typeof Vusion=="undefined"){var Vusion={}}if(typeof Vusion.Players=="undefined"){Vusion.Players={}}Vusion.Players.wmvIEHtml="        <object id='{0}' width='{1}' height='{2}'            classid='clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6'            codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'            standby='Loading Microsoft Windows Media Player components...' type='application/x-oleobject'>            <param name='url' value='{3}'>            <param name='uiMode' value='none'>            <param name='autoStart' value='true'>            <param name='autoSize' value='true'>        </object>";Vusion.Players.wmvHtml="        <embed id='{0}' classid='clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6'            type='application/x-ms-wmp' width='{1}' height='{2}'            pluginspage='http://microsoft.com/windows/mediaplayer/en/download/'            name='{0}' uiMode='none' autostart='true' src='{3}'>        </embed>";Vusion.Players.wmvEvents="        <script language='JScript' for='{0}' event='PlayStateChange(state)'>           Vusion.Players.wmvPlayStateChange('{0}', state);        <\/script>";Vusion.Players.wmvStates={0:"Closed",1:"Stopped",2:"Paused",3:"Playing",6:"Loading",7:"Waiting",8:"Ended",9:"Opening",10:"Opened"};Vusion.Players.wmvPlayStateChange=function(B,C){var A=document.getElementById(B);if(A._wmvPlayer){A._wmvPlayer._stateUpdate()}};Vusion.Players.wmv=function(B,A){this._config={id:null,width:"100%",height:"100%",scope:this,stateHandler:null,url:null};for(i in A){this._config[i]=A[i]}this._container=typeof B=="string"?document.getElementById(B):B;if(!this._config.container){this._config.container=B}this._config.startAgent=true;var D=this;var C=new Vusion.Install(this._config,function(){D._postInstall()})};Vusion.Players.wmv.prototype={player:null,isReady:false,_currentPosition:-1,setUrl:function(A,B){if(!this._player){return }if(B){this._currentPosition=this._player.position}this._player.URL=A},getUrl:function(){if(!this._player){return null}return this._player.URL},setAudioLanguage:function(A){alert("Not supported by wmv player")},setSubtitleLanguage:function(A){alert("Not supported by wmv player")},setPosition:function(A){if(!this._player){return }if(A<0){A=0}else{if(A>this.getDuration()){A=this.getDuration()}}this._player.controls.currentPosition=A/1000},getPosition:function(){if(!this._player||!this._player.controls){return -1}return this._player.controls.currentPosition*1000},getDuration:function(){if(!this._player){return 0}if(!this._player.currentMedia){return 0}return this._player.currentMedia.duration*1000},setFullscreen:function(A){if(!this._player){return }this._player.fullScreen=A},setMute:function(A){if(!this._player){return }this._player.settings.mute=A},setVolume:function(A){if(!this._player){return }this._player.settings.volume=A},getVolume:function(){if(!this._player){return 0}return this._player.settings.volume},getState:function(){if(!this._player){return Vusion.Players.wmvStates[0]}return Vusion.Players.wmvStates[this._player.playState]},play:function(){if(!this._player){return }this._player.controls.play()},stop:function(){if(!this._player){return }this._player.controls.stop()},pause:function(){if(!this._player){return }this._player.controls.pause()},fastForward:function(){if(!this._player){return }this._player.controls.fastForward()},fastReverse:function(){if(!this._player){return }this._player.controls.fastReverse()},previous:function(){if(!this._player){return }this._player.controls.previous()},next:function(){if(!this._player){return }this._player.controls.next()},resize:function(A,B){if(!this._player){return }this._player.width=A;this._player.height=B},_config:null,_player:null,_stateUpdate:function(){if(!this._player){this._player=document.getElementById(this._config.id)}var A=this.getState();if(typeof A!="undefined"){if(!this.isReady){this._config.stateHandler.call(this._config.scope,"Ready");this.isReady=true}else{if(A=="Opened"&&this._currentPosition>0){this._player.position=this._currentPosition;this._currentPosition=-1}}this._config.stateHandler.call(this._config.scope,A)}},_postInstall:function(){var A=this._config;var B;if(navigator.userAgent.indexOf("MSIE")!=-1){B=String.format(Vusion.Players.wmvIEHtml,A.id,A.width,A.height,A.url)}else{B=String.format(Vusion.Players.wmvHtml,A.id,A.width,A.height,A.url)}this._container.innerHTML=B+String.format(Vusion.Players.wmvEvents,A.id);this._waitForPlayer(true)},_waitForPlayer:function(C){var B=document.getElementById(this._config.id);if(B){B._wmvPlayer=this}if(!B||!B.playState||C){var D=this;setTimeout(function(){D._waitForPlayer()},(C)?1:100);return }this._player=B;var A=this.getState();if(typeof state!="undefined"&&A!="Closed"){this._config.stateHandler.call(this._config.scope,"Ready")}this._config.stateHandler.call(this._config.scope,A)}};