//Globals:
var isPlaying 		= false;
var posIsDragging 	= false;
var slidersize 		= 371;
var posOffset 		= 8;
var timeSpanVal 	= "";
var volIsDragging 	= false;


if (!window.vidPlayer)
	vidPlayer = {};

vidPlayer.Page = function() 
{
}

vidPlayer.Page.prototype =
{
	handleLoad: function(control, userContext, rootElement) 
	{
		this.control = control;
		
		// Sample event hookup:	
		rootElement.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleMouseDown));
	},
	
	// Sample event handler
	handleMouseDown: function(sender, eventArgs) 
	{
		// default from MS, but i prefer to put my events in the XAML
	}
}

function createSilverlight(source) {
	var w = 480;
	var h = 385;
	var scene = new vidPlayer.Page();
	var vidsource = "/plr/inc/archiveplayer.xaml.php?eventkey="+source;
	//var vidsource = "vidPlayer/Page.xaml";
	
	Silverlight.createObjectEx({
		source: vidsource,
		parentElement: document.getElementById("mediaElement"),
		id: "SilverlightControl",
		properties: {
			width: w,
			height: h,
			version: "2.0"
		},
		events: {
			onLoad: Silverlight.createDelegate(scene, scene.handleLoad),
			onError: function(sender, args) {
				var errorDiv = document.getElementById("errorLocation");
				if (errorDiv != null) {
					var errorText = args.errorType + "- " + args.errorMessage;
							
					if (args.ErrorType == "ParserError") {
						errorText += "<br>File: " + args.xamlFile;
						errorText += ", line " + args.lineNumber;
						errorText += " character " + args.charPosition;
					}
					else if (args.ErrorType == "RuntimeError") {
						errorText += "<br>line " + args.lineNumber;
						errorText += " character " +  args.charPosition;
					}
					errorDiv.innerHTML = errorText;
				}	
			}
		}
	});
}


if (!window.Silverlight) 
	Silverlight = {};

Silverlight.createDelegate = function(instance, method) {
	return function() {
		return method.apply(instance, arguments);
	}
}

function button_MouseLeftButtonDown(sender,args) {
    sender.captureMouse();
}

function button_MouseLeftButtonUp(sender,args) {
    sender.releaseMouseCapture();
	
	//alert(sender.Name);
        
	//Used to change active / mouse over state on Play / Pause buttons
	if (sender.Name == "activeBtn") {
		
		isPlaying = true;
	
		sender.opacity = 0;
		sender.IsHitTestVisible = false;
		sender.findName("Video").play();
		//sender.findName('screenshotImg').opacity = 0;
		
		sender.findName('playbtn').opacity = 0;
		sender.findName('playbtn').IsHitTestVisible = false;
		sender.findName('stopbtn').opacity = 1;
		sender.findName('stopbtn').IsHitTestVisible = true;
		
		//sender.findName('positionTick').begin();		

	}
	
	
    if (sender.Name == "stopbtn") {
		
		isPlaying = false;
	
		sender.findName("Video").pause();
		
		sender.opacity = 0;
		sender.IsHitTestVisible = false;
		sender.findName('playbtn').opacity = 1;
		sender.findName('playbtn').IsHitTestVisible = true;

	}
	
	if (sender.Name == "playbtn") {
		
		isPlaying = true;
		sender.findName('positionTick').begin();

		sender.findName("Video").play();
		//sender.findName('screenshotImg').opacity = 0;
		sender.findName("activeBtn").IsHitTestVisible = false;
		sender.findName("activeBtn").opacity = 0;
		
		sender.opacity = 0;
		sender.IsHitTestVisible = false;
		sender.findName('stopbtn').opacity = 1;
		sender.findName('stopbtn').IsHitTestVisible = true;
		
		
	}
}

//position slider functions


function posDragDown(sender, args) {
	posIsDragging = true;
}

function posTick(sender,args) {
		
	if(isPlaying == true && posIsDragging == false) {
			
		var media = sender.findName('Video'); 
		var mediaDuration = media.NaturalDuration.seconds;
		var mediaPos = media.position.seconds;
				
		 var posRatio = mediaPos/mediaDuration;
		 				 
		 var posVal = posRatio*slidersize;
		 		 
		 sender.findName('posSlider')["Canvas.Left"] = posVal-posOffset;
		 
		 sender.findName('positionTick').begin();
		 
 		var status_win = mediaObj.findName("status_window");
		status_win.Text = "Playing " +secs_to_time(Math.floor(mediaPos))+" / "+secs_to_time(Math.floor(mediaDuration))
		 
		 
	//	 sender.findName('output').Text = isPlaying.toString();
	}

}

/*
function pad(int) {
	
		if(int<10) {
			int = "0"+int;	
		}
		
		return int;
}*/


function posDragger(sender, args) {
	if(posIsDragging == true) {
		var position = args.GetPosition(sender).X;
		
		var media = sender.findName('Video'); 
		var mediaDuration = media.NaturalDuration.seconds;

		var status_win = mediaObj.findName("status_window");

		if(position > 0 && position < slidersize && isPlaying == true) {
		sender.findName('posSlider')["Canvas.Left"] = position-posOffset;
		//sender.findName('posSlider')["Canvas.Left"] = position;
		var posRatio = position/slidersize;
		
		var posVal = posRatio*mediaDuration;			 
		
		timeSpanVal = posVal;
		status_win.Text = posVal;
		
		//sender.findName('output').Text =  posVal.toString();
		
		
		}
	}
}


// vol slider functions


function volDragDown(sender,args) {
     volIsDragging = true;
}

function volDragger(sender, args) {
	
        if(volIsDragging == true) {
            var position = args.GetPosition(sender).X;
			  
			if(position > 0 && position < 230) {
			  sender.findName('slider')["Canvas.Left"] = position-22.5;
			  var posRatio = position/slidersize;
			  sender.findName('Video').Volume = posRatio;
			}
         }
		
}


function dragUp(sender, args) {
	volIsDragging = false;
	posIsDragging = false;
	if(timeSpanVal != "") {
		var position = sender.findName('Video').position;
		position.seconds = timeSpanVal;
		sender.findName('Video').position = position;
		timeSpanVal = "";
		sender.findName('positionTick').begin();
	}
}


function mediaComplete(sender,args) {
	sender.findName("activeBtn").IsHitTestVisible = true;
	sender.findName("activeBtn").opacity = 1;
	sender.findName('screenshotImg').opacity = 1;
	
	sender.findName('playbtn').opacity = 1;
	sender.findName('playbtn').IsHitTestVisible = true;
	sender.findName('stopbtn').opacity = 0;
	sender.findName('stopbtn').IsHitTestVisible = false;
}
