//Event Functions for LivePresenter Player Pages
var checkplay;
var mediaObj;
start_delay = '';

function onMarkerReached(sender, markerEventArgs)
//The LP stream has sent an event, this could be a variety of content types:
{
	try{
		//check type and act accordingly
		var event_type = markerEventArgs.marker.type.toLowerCase();
		var event_data = markerEventArgs.marker.text;
		if (event_type == "caption") {
	    	var contentFrame = document.getElementById("contents");
	    	contentFrame.src =  slide_url + event_data; 
		}else if(event_type=="forward"){
			var popform = document.getElementById('popform');
			popform.action = event_data
			popform.submit();
		}
	}catch(ex){
	}

}
function onMediaStateChange(sender, stateEventArgs)
{
	try{
		mediaObj = sender;
		var status_win = mediaObj.findName("status_window");
		var media = sender.findName("Video");
		status_win.Text = media.CurrentState;
	}catch(ex){
		alert("statechange error");		
	}
}
function onMediaFail(sender, stateEventArgs)
{
	try{
		var dbg_win = document.getElementById('debug_messages');
		dbg_win.innerHTML = 'Silverlight Media Playback Failed';
		//setTimeout("tryplay()", 1000);
	}catch(ex){
	
	}
}
function onBufferChange(sender, bufferEventArgs)
{
	try{
		clearTimeout(checkplay);
		var status_win = mediaObj.findName("status_window");
		var media = sender.findName("Video");
		var bp = media.BufferingProgress;
		status_win.Text = "Buffering: " + Math.floor(bp*100) +"%";
		mediaObj = sender;
	}catch(ex){
		
	}
}
function onMediaEnd(sender, bufferEventArgs)
{
	//alert("Media Ended");
	var status_win = mediaObj.findName("status_window");
	status_win.Text = "Video Complete";
	mediaObj = sender;
}

function tryplay(){
	if(isObject(mediaObj)){
		mediaObj.play();
		checkPlayer();
	}
}
function onMediaOpened(sender, openEventArgs){
	var media = sender.findName("Video");
	sender.findName('positionTick').begin();
	isPlaying = true;
	
	if(media.CanSeek & start_delay != ''){
		move_timeline(sender, start_delay);
	}else{
		//alert("non seeking media");
	}
	
}
function checkPlayer(){
	try{
		var dbg_win = document.getElementById('debug_messages');
		dbg_win.innerHTML += "Check State: " + mediaObj.CurrentState + "\r\n";
	}catch(ex){
	}
}

function move_timeline(sender, newtime){
	var media = sender.findName("Video");
	media.Position = newtime;
}
function update_timer(){
	var pos = mediaObj.Position.Seconds;
	var len = mediaObj.NaturalDuration.Seconds;
	var media_status = document.getElementById("media_status_display");
	media_status.innerHTML = secs_to_time(Math.floor(pos))+" / "+secs_to_time(Math.floor(len));
}
function secs_to_time(secs){
	var hrs = (secs / 3600);
	hrs = Math.floor(hrs);
	secs -= (hrs*3600);
	var mins = (secs / 60);
	mins = Math.floor(mins);
	secs-= (mins*60);
	if (secs<=9){
		secs = "0"+secs;
	}
	return hrs+":"+mins+":"+secs;
}
