/* Version 1.1 */
/* Modifications:
/* 1. Enhance changeBitrate() to changeBitrate2() such that the video will go to the current position even change differnet bitrate.
/*     but the function can only be available to a single video not a list of videos.
/* End Version 1.1 */

/* Version 1.0 */
/* Consoildate most of the media player control and setting functions to a file
/* End Version 1.0 */

/* PPT Sync functions */
var BrowserType=navigator.userAgent; // get what browser user is using 
var EnablePPTSync = true;
var NewWindow = '1';

function OpenZoom() {
    var SlideURL = window.Slide.location;
    SlideURL = window.Slide.location + "&zoom=large";
    //NewWindow = window.open(SlideURL,'SlideWin','width=900,height=675,left=200,top=100,toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No');
    NewWindow = window.open(SlideURL,'SlideWin','width=960,height=720,left=200,top=100');
    return false;
}
function ChangeZoom() {
    var SlideURL = window.Slide.location;
    SlideURL = window.Slide.location + "&zoom=large";
    try {
        //if (NewWindow && NewWindow.open && !NewWindow.closed)
           NewWindow.focus();
           NewWindow.location.href = SlideURL;
        //}
    } catch(e) {
    } 
    return false;	
}
var changeid = 0;

function GoToPosition(position_value) {

    if (position_value == 'other') {
        changeid = 1;
        document.MediaPlayer.URL = 'mms://video4.vcast.tv/Channels/HKITF/Education-2/Keith-Presentation-1M.wmv';
    } else if (EnablePPTSync) {
        if ('<%=particularvideo %>' == 'none' && changeid == 1) {
            document.MediaPlayer.URL = '<%=VideoPath %>'; changeid = 0;
        }
        var SessionStartTime = position_value.slice(0,2)*3600 + position_value.slice(3,5)*60 + position_value.slice(6,8)*1;
        position_value = SessionStartTime;
    	
        if (BrowserType.indexOf("MSIE") == 25) {		
            document.MediaPlayer.Controls.CurrentPosition = position_value ;
            document.MediaPlayer.Controls.Play();
        } 
        else if (-1 != navigator.userAgent.indexOf("Firefox")){
                document.MediaPlayer.controls.currentPosition =position_value;
                document.MediaPlayer.controls.play();
        }
    }
    else{
        EnablePPTSync = true;
        document.MediaPlayer.URL = currentVideo + "-" + bitRate + "k.asx"; //Resume video path to bitrate version
    }
}
/* End PPT Sync functions */

/*play fullversion functions  */
function playFullVersion(bitrate)
{
	var playerObject = document.MediaPlayer; 
//	if(playerObject.playState == 3)
//	{
	    bitRate = bitrate;
	    playerObject.URL = FullVideo + "-" + bitrate +"k.asx" ;       
//	}
}

/* change video language(2video)*/
function switchlanguage(lang,bit)
{
	var playerObject = document.MediaPlayer; 
	if(playerObject.playState == 3)
	{
	    language = lang;
	    playerObject.URL = swiVideo + "-" + language +"-" + bit + "k.asx";       
	}
}


/* Muitl-bitrate functions */
function changeBitrate(bitrate)
{
	var playerObject = document.MediaPlayer; 
	if(playerObject.playState == 3)
	{
	    bitRate = bitrate;
	    playerObject.URL = currentVideo + "-" + bitrate +"k.asx" ;       
	}
}
function changeBitrate2(bitrate)
{    
	var playerObject = document.MediaPlayer; 	

	if(playerObject.playState == 3)
	{
		// get current status of the video
	    var position_value = playerObject.Controls.CurrentPosition;
	    var lang = playerObject.controls.currentAudioLanguageIndex;
	
	    bitRate = bitrate;
	    playerObject.URL = currentVideo + "-" + bitrate +"k.asx" ;       	    
        playerObject.Controls.Play();
        // wait for playing video then change video status to the orginal
        setTimeout("changeVideoStatus("+position_value+",+"+lang+")");
	}
}
function changeVideoStatus(position_value,lang){
	var playerObject = document.MediaPlayer; 
	if (playerObject.playState == 3){	
	    playerObject.Controls.CurrentPosition = position_value ;
	    playerObject.controls.currentAudioLanguageIndex = lang;
	}
	else{
		window.setTimeout("changeVideoStatus("+position_value+",+"+lang+")",100);		
	}
}
function changeVideoPath(path)
{
	var playerObject = document.MediaPlayer; 
	currentVideo = path;
	playerObject.URL = currentVideo + "-" + bitRate + "k.asx";
}
function ChangeToHighlight()
{    
    EnablePPTSync = false; // To ensure user cannot seek the video by clicking chapter links
    
	var playerObject = document.MediaPlayer; 
	playerObject.URL = currentVideo + "-Highlight.asx";	
    
    if (BrowserType.indexOf("MSIE") == 25) {				
        playerObject.Controls.Play();
    } 
    else if (-1 != navigator.userAgent.indexOf("Firefox")){	            	    
         playerObject.controls.play(); 
    }
}
/* End Muitl-bitrate functions*/

/* Speed Control functions*/
function changeSpeed(s)
{
	var playerObject = document.MediaPlayer; 
    if(playerObject.playState == 3)
	{
		switch(s)
		{
			case 1: // Speed Up
			{
				if (playerObject.settings.rate >= 1.75){
		            // do nothing if the rate is higher 1.75
	            }
	            else{
                    playerObject.settings.rate += 0.1;		
                }		
				break;
			}
			case 0: // Speed Down
			{	
				if (playerObject.settings.rate <= 0.55){	
				    // do nothing if the rate is below 0.55
	            }
                else{
	                playerObject.settings.rate = 	playerObject.settings.rate - 0.1;
                }
				break;
			}
            case 2: // Restore to normal
			{	
                playerObject.settings.rate = 1;
                break;
			}	
		}
		document.getElementById("playSpeed").innerHTML = playerObject.settings.rate.toFixed(1) + "X";
	}
}
function fastForward()
{
	var playerObject = document.MediaPlayer; 
    if (playerObject.controls.isAvailable('FastForward'))
        playerObject.controls.fastForward();
    document.getElementById("playSpeed").innerHTML = playerObject.settings.rate.toFixed(1) + "X";        
}
function fastReverse()
{
	var playerObject = document.MediaPlayer; 
    if (playerObject.controls.isAvailable('FastReverse'))
        playerObject.controls.fastReverse();
    document.getElementById("playSpeed").innerHTML = playerObject.settings.rate.toFixed(1) + "X";        
}
/* End Speed Control functions*/

function changeFullscreen()
{
	var playerObject = document.MediaPlayer; 
	if(playerObject.playState == 3)
		playerObject.fullScreen = true;
	else
	    alert("Full Screen feature is only available when video is playing.");
}

/* Multilingual functions */
function changeLanguage(lang)
{
	var playerObject = document.MediaPlayer; 
    if(playerObject.playState == 3 && playerObject.controls.audioLanguageCount>2)
	{
		playerObject.controls.currentAudioLanguageIndex = lang;
        //alert(playerObject.controls.currentAudioLanguageIndex);
	}	
}
function getAudioLanguage()
{     
   	var playerObject = document.MediaPlayer; 
   	document.getElementById("languageChannel").innerHTML = "";
    for(var i =1; i<=playerObject.controls.audioLanguageCount;i++)
   	{
   	    var localeID = playerObject.controls.getAudioLanguageID(i);
        document.getElementById("languageChannel").innerHTML += "" + i + ".&nbsp;&nbsp;<a href=\"#\" onclick=\"changeLanguage("+i+")\">"+playerObject.controls.getLanguageName(localeID)+"</a><br/>";
    }
}
/* End Multilingual functions */

/* init functions */
function waitForStart(){
	var playerObject = document.MediaPlayer; 
	if (playerObject.playState == 3){
	
	    // Display Multilingual language list
		if (playerObject.controls.audioLanguageCount>2)
		    getAudioLanguage();
		else
		    document.getElementById("languageChannel").innerHTML = "There is no other language."
	}
	else{
		window.setTimeout("waitForStart()",500);
		document.getElementById("languageChannel").innerHTML = "Loading..."
	}
}

function startUp(){	
    // wait for media player loading the video
	window.setTimeout('waitForStart()');
}
/* End init functions */
