if (!window.SilverlightVideoLibrary)
	window.SilverlightVideoLibrary = {};

SilverlightVideoLibrary.Page = function() 
{
}

SilverlightVideoLibrary.Page.prototype =
{
	handleLoad: function(control, userContext, rootElement) 
	{
		this.control = control;
		
		// Sample button event hookup: Find the button and then attach event handlers
		this.button = rootElement.children.getItem(0);	
		
	}
}

//---convert time in seconds to "hh:mm:ss"---
function ConvertToTimeSpan(timeinseconds)
{
    if (timeinseconds<0) {
       return ("00:00:00");
    }
    else
    if (timeinseconds<60) {
        var seconds = Math.floor(timeinseconds);
       return ("00:00:" + formatTimeText(seconds));
    } 
    else
    if (timeinseconds<3600)
    {  
       var mins = Math.floor(timeinseconds / 60);
       var seconds = Math.floor(timeinseconds - (mins * 60));
       return ("00:" + formatTimeText(mins) + ":" + formatTimeText(seconds));
    }
    else
    {
       var hrs = Math.floor(timeinseconds / 3600);
       var mins = timeinseconds - (hrs * 3600)
       var seconds = Math.floor(timeinseconds - (hrs * 3600) -  (mins * 60));
       return (formatTimeText(hrs) + formatTimeText(mins) + ":" + formatTimeText(seconds));
    }
}

function formatTimeText(timeInteger)
{
    if(timeInteger < 10)
    {
        return "0" + timeInteger.toString();
    }
    else
    {
        return timeInteger.toString();
    }
}


var dynamicChangedWidth = 0;
// Default controls position values.
var defaultMediaPlayerHeight = 395;
var defaultMediaPlayerWidth = 480;
var defaultProcessBarLeft = 43;
var defaultProcessBarWidth = 284;
//var defaultFullScreenButtonLeft = 448;
var defaultVideoControlerHeight = 31;
var defaultVolControlLeft = 340;
var defaultVolContainerWidth = 255;

var currentDownloadProcess = 0;


var isPlaying;
var duration=0;

function onCanvasLoaded(sender, eventArgs)
{
	isPlaying = false;
	if (clip != null)
        sender.findName('media').source = clip;
	// fullscreen event handling
	var plugin = sender.getHost();
    plugin.content.onfullScreenChange = onFullScreenChanged;
    
    // load images
   // alert(dnn.getVar("iwebsImgPause"))
    sender.findName("btnPlayPause").source = dnn.getVar("iwebsImgPlay");
    sender.findName("CtrlsBG").source = dnn.getVar("iwebsImgCtrlsBG");
    //sender.findName("btnJumpToStart").source = dnn.getVar("iwebsImgJumpToStart");
    sender.findName("btnFullscreen").source = dnn.getVar("iwebsImgFullscreen");
    
    var volControlContainer2 = sender.findName("volControlContainer2");
    var volControlSlider =  sender.findName("volControlSlider");
    var relativePosition = sender.findName('media').volume * (volControlContainer2.width - volControlSlider.width) + volSliderHalfWidth;
    slider_SetValue(sender, relativePosition);
    
    setTimeout('updatePointerPosition()', 50); 
}

function onMediaOpened(sender, eventArgs)
{
    //var theHost = document.getElementById("SilverlightControl");
    //theHost.content.findName('media').width = 100;//dnn.getVar("iwebsSVLWidth");    
    //theHost.content.findName('media').height = 100;//dnn.getVar("iwebsSVLHeight");
    
    resetElementsPositions();    
    
    //var videoControler = theHost.content.findName("VideoControler");
    //videoControler["Canvas.Top"] = 
	//---find duration of movie---
    //if (duration==0)
    //   duration = Math.round(sender.findName("media").NaturalDuration.Seconds * 100) / 100; 
	//sender.findName("sbMediaTimeEndFrame").keyTime = ConvertToTimeSpan(duration);
	//sender.findName("sbMediaTime").begin();
}

function resetElementsPositions()
{

    defaultMediaPlayerWidth = Math.floor(dnn.getVar("iwebsSVLWidth"));
    var mediaElementHeight = dnn.getVar("iwebsSVLHeight");
    defaultMediaPlayerHeight = Math.floor(mediaElementHeight);// + defaultVideoControlerHeight;
    var theHost = document.getElementById("SilverlightControl");
    //alert(defaultMediaPlayerHeight);
    
    theHost.content.findName('Page').width = defaultMediaPlayerWidth;
    theHost.content.findName('Page').height = defaultMediaPlayerHeight;
    
    theHost.content.findName('media').width = defaultMediaPlayerWidth;
    theHost.content.findName('media').height = Math.floor(mediaElementHeight);
    
   var VideoControler = theHost.content.findName("VideoControler");
   VideoControler["Canvas.Top"] = mediaElementHeight - defaultVideoControlerHeight;
   VideoControler.width = defaultMediaPlayerWidth;
   
   theHost.content.findName("CtrlsBG").width = defaultMediaPlayerWidth;
   
   theHost.content.findName("volControlContainer")["Canvas.Left"] = defaultMediaPlayerWidth - defaultVolContainerWidth;    
   
   defaultProcessBarWidth = defaultMediaPlayerWidth - defaultProcessBarLeft - defaultVolContainerWidth;
   theHost.content.findName("mediaTimeBG").width = defaultProcessBarWidth;
   theHost.content.findName("mediaTimeMask").width = defaultProcessBarWidth;   
    
}

function updatePointerPosition()
{   
    var theHost = document.getElementById("SilverlightControl");
    var mediaPlayer = theHost.content.findName('media');
    var currentPosition = mediaPlayer.position.seconds;
    var length = mediaPlayer.naturalDuration.seconds;
    var positionPointer = theHost.content.findName("mediaTimePointer");
    var positionBG = theHost.content.findName("mediaTimeBG");
    var relativePosition = (currentPosition/length) * positionBG.width;
    positionPointer.width = relativePosition;
    var mediaTimeText = theHost.content.findName("mediaTimeText");
    mediaTimeText.Text = ConvertToTimeSpan(currentPosition) + "/" + ConvertToTimeSpan(length);
    setTimeout('updatePointerPosition()', 50);
}

function changeMediaPositionClicked(sender, eventArgs)
{
    sender.captureMouse();
    var lastX = eventArgs.getPosition(null).x;
    var theHost = document.getElementById("SilverlightControl");
    var mediaPlayer = theHost.content.findName('media');
    var length = mediaPlayer.naturalDuration.seconds;
    var positionBG = theHost.content.findName("mediaTimeBG");
    var relativePosition = lastX - positionBG["Canvas.Left"];
    
    var positionPointer = theHost.content.findName("mediaTimePointer");
    positionPointer.width = relativePosition;
    
    var currentPosition = (relativePosition/positionBG.width) * length;
    var position = mediaPlayer.position;
    position.seconds = currentPosition;
    mediaPlayer.position = position;
    if(mediaPlayer.CurrentState == "Paused" || mediaPlayer.CurrentState == "Stopped")
    {
        mediaPlayer.play();
        sender.findName("btnPlayPause").source = dnn.getVar("iwebsImgPause");
		isPlaying = true;
    }
}

function onPlayPauseClicked(sender, eventArgs)
{
	if (isPlaying)
	{
		sender.findName("media").pause();
		sender.findName("btnPlayPause").source = dnn.getVar("iwebsImgPlay");
		isPlaying = false;
	}
	else
	{
		sender.findName("media").play();
		sender.findName("btnPlayPause").source = dnn.getVar("iwebsImgPause");
		isPlaying = true;
	}
}

function onJumpToStartClicked(sender, eventArgs)
{
	sender.findName("media").position = "0";
	sender.findName("media").play();
	sender.findName("btnPlayPause").source = dnn.getVar("iwebsImgPause");
	isPlaying = true;
}

function onFullScreenClicked(sender, eventArgs)
{
	// toggle fullscreen
	var silverlightPlugin = sender.getHost();
    silverlightPlugin.content.fullScreen = !silverlightPlugin.content.fullScreen; 
}

function onFullScreenChanged(sender, args)
{
    var silverlightPlugin = sender.getHost();
    var mediaPlayer = sender.findName("media");
    var videoControler = sender.findName("VideoControler");
    var CtrlsBG = sender.findName("CtrlsBG");
    var mediaTimeBG = sender.findName("mediaTimeBG");
    var mediaTimeMask = sender.findName("mediaTimeMask");
    //var btnFullscreen = sender.findName("btnFullscreen");
    var volControlContainer = sender.findName("volControlContainer");
    
    var newProcessBarWidth = 0;
    
	if (silverlightPlugin.content.fullScreen)
	{
	    var fullScreenMediaPlayerWidth = silverlightPlugin.content.actualWidth;
	    dynamicChangedWidth = fullScreenMediaPlayerWidth - defaultMediaPlayerWidth;
		mediaPlayer.width = fullScreenMediaPlayerWidth;
		mediaPlayer.height = silverlightPlugin.content.actualHeight - defaultVideoControlerHeight;
		sender.findName("Page").width = fullScreenMediaPlayerWidth;
		sender.findName("Page").height = silverlightPlugin.content.actualHeight;
		videoControler.width = fullScreenMediaPlayerWidth;
		videoControler.height = defaultVideoControlerHeight;
		videoControler["Canvas.Left"] = 0;
		videoControler["Canvas.Top"] = silverlightPlugin.content.actualHeight - defaultVideoControlerHeight;
		CtrlsBG.width = fullScreenMediaPlayerWidth;
		mediaTimeBG.width += dynamicChangedWidth;
		mediaTimeMask.width += dynamicChangedWidth;
		volControlContainer["Canvas.Left"] += dynamicChangedWidth;
		newProcessBarWidth = defaultProcessBarWidth + dynamicChangedWidth;
	}
	else
	{
		mediaPlayer.width = defaultMediaPlayerWidth;
		mediaPlayer.height = defaultMediaPlayerHeight - defaultVideoControlerHeight;
		sender.findName("Page").width = defaultMediaPlayerWidth;
		sender.findName("Page").height = defaultMediaPlayerHeight;
		videoControler.width = defaultMediaPlayerWidth;
		videoControler.height = defaultVideoControlerHeight;
		videoControler["Canvas.Left"] = 0;
		videoControler["Canvas.Top"] = defaultMediaPlayerHeight - defaultVideoControlerHeight;
		CtrlsBG.width = defaultMediaPlayerWidth;
		mediaTimeMask.width = mediaTimeBG.width = defaultProcessBarWidth;
		volControlContainer["Canvas.Left"] = defaultMediaPlayerWidth - defaultVolContainerWidth;
		newProcessBarWidth = defaultProcessBarWidth;
	}
	
	var mediaDownloadProcessBar = sender.findName("mediaDownloadProcessBar");
    if(mediaDownloadProcessBar)
    {
        mediaDownloadProcessBar.width = newProcessBarWidth * currentDownloadProcess;
    }
}

function onMediaStateChanged(sender, eventArgs)
{
    var silverlightPlugin = sender.getHost();
    var mediaPlayer = sender.findName("media");
    if(mediaPlayer.CurrentState == "Playing")
    {
    updatePointerPosition();
    }
    if(mediaPlayer.CurrentState == "Paused")
    {
        var currentPosition = mediaPlayer.position.seconds;
         var length = mediaPlayer.naturalDuration.seconds;
         if(currentPosition == length)
         {
            mediaPlayer.position = "0";
            silverlightPlugin.content.findName("btnPlayPause").source = dnn.getVar("iwebsImgPlay");
            isPlaying = false;
         }
    }
}

var isMovingSlider = false;
var mouseDownPosition = 0;
var mouseDownValue = -1;
var volSliderHalfWidth = 8;

function volControlSliderMouseDown(sender, eventArgs)
{
    isMovingSlider = true;
    
    var theHost = document.getElementById("SilverlightControl");
    var mediaPlayer = theHost.content.findName('media');
    var volControlSlider = theHost.content.findName('volControlSlider');
    sender.captureMouse();
    mouseDownValue = slider_GetValue(volControlSlider);
    mouseDownPosition = eventArgs.getPosition(null).x;
}

function volControlSliderMouseMove(sender, eventArgs)
{
    if(isMovingSlider == true)
    {
        var theHost = document.getElementById("SilverlightControl");
        var mediaPlayer = theHost.content.findName('media');
        var volControlSlider = theHost.content.findName('volControlSlider');    
        var lastX = eventArgs.getPosition(null).x;
        var volControlContainer = theHost.content.findName("volControlContainer");
        var volControlContainer2 = theHost.content.findName("volControlContainer2");
        var newValue = lastX - volControlContainer["Canvas.Left"] - volControlContainer2["Canvas.Left"];
        slider_SetValue(volControlSlider, newValue);
    }
}

function volControlSliderMouseUp(sender, eventArgs)
{
    isMovingSlider = false;
    var theHost = document.getElementById("SilverlightControl");
    var mediaPlayer = theHost.content.findName('media');
    var volControlSlider = theHost.content.findName('volControlSlider');
    var lastX = eventArgs.getPosition(null).x;
    var volControlContainer = theHost.content.findName("volControlContainer");
    var volControlContainer2 = theHost.content.findName("volControlContainer2");
    var volBarLength = volControlContainer2.width;
    var relativePosition = lastX - volControlContainer["Canvas.Left"] - volControlContainer2["Canvas.Left"];
    slider_SetValue(sender, relativePosition);
    var newVolume = Math.round(10 * (relativePosition/volBarLength)) / 10;
    mediaPlayer.volume = newVolume.toString(); 
}

function slider_GetValue(sender) {
    var volControlSlider = sender.findName("volControlSlider");
    return volControlSlider["Canvas.Left"]; 
}

function slider_SetValue(sender, newValue) {
    var theHost = document.getElementById("SilverlightControl");
    var volControlContainer2 = theHost.content.findName("volControlContainer2");
    var volBarLength = volControlContainer2.width;
    if (newValue > volBarLength - volSliderHalfWidth) {
        newValue = volBarLength - volSliderHalfWidth;
        mouseDownValue = -1;
    }
    if (newValue < volSliderHalfWidth) {
        newValue = volSliderHalfWidth;
        mouseDownValue = -1;
    }
    var volControlSlider = sender.findName("volControlSlider");
    
    volControlSlider["Canvas.Left"] = newValue - volSliderHalfWidth;
}

function onMediaDownloadProgressChanged(sender, eventArgs)
{
    var theHost = document.getElementById("SilverlightControl");
    var mediaDownloadProcessBar = theHost.content.findName("mediaDownloadProcessBar");
    var mediaTimeBG = theHost.content.findName("mediaTimeBG");
    if(mediaDownloadProcessBar)
    {
        currentDownloadProcess = sender.DownloadProgress;
        mediaDownloadProcessBar.width = mediaTimeBG.width * currentDownloadProcess;
    }
}