﻿if (!window.PlayerJavaScript)
	window.PlayerJavaScript = {};


var m_BRootCanvas = null;
var m_isResizeEnable = false;
var m_isResizeCompleted = true;
var m_ResizeState = true;
var m_BRootCanvasMouseEnter = null;
var m_BRootCanvasMouseLeave = null;

var m_BMedia = null;
var m_mediaIsPlayed = false;
var m_BVideoPlayerRootCanvas = null;
var m_IsMediaBuffering = false;

var m_BVideoPlayerRootCanvasFullScreen = null;
var m_BMediaFullScreen = null;

var m_BPlayPauseButton = null;
var m_BPlayPauseButtonPauseMouseButtonDown = null;
var m_BPlayPauseButtonPauseMouseEnter = null;
var m_BPlayPauseButtonPauseMouseLeave = null;
var m_BPlayPauseButtonPlayMouseButtonDown = null;
var m_BPlayPauseButtonPlayMouseEnter = null;
var m_BPlayPauseButtonPlayMouseLeave = null;

var m_BStopButton = null;
var m_BStopButtonMouseLeave = null;
var m_BStopButtonMouseEnter = null;

var m_BVolume = null;
var m_BSliderVolume = null;
var m_BSliderVolumeIsMouseLeftButtonDown = false;

var m_BSeekBar = null;
var m_BSeekSlider = null;
var m_CanSeek = false;
var m_BMediaIsValid = false;
var m_BSeekSliderIsMouseLeftButtonDown = false;

var m_BFullScreenButton = null;
var m_BFullScreenButtonMouseEnter = null;
var m_BFullScreenButtonMouseLeave = null;

var m_plugin = null;

var m_BGroupCanvas = null;

var m_divHostOffSetTopBackUp = null;
var m_divHostOffSetLeftBackUp = null;

var m_maxWidth = 0;
var m_maxHeight = 0;
var m_minWidth = 0;
var m_minHeight = 0;

var m_BBufferingCanvas = null;

// Convert second to TimeSpan
function ConvertSecondToTimeSpan(sec)
{   
    hours = Math.floor(sec / 3600);
    sec = sec - hours * 3600;
    minutes = Math.floor(sec / 60);
    sec = sec - minutes * 60;
    seconds = Math.floor(sec);
    return "" + hours + ":" + minutes + ":" + seconds;
}

// Update the position of the media
function ChangeMediaElementPosition(sec, mediaElement)
{
    if(mediaElement && mediaElement.CanSeek) 
    {
        sec = Math.max(0, sec);
        sec = Math.min(mediaElement.NaturalDuration.Seconds, sec);
        var position = ConvertSecondToTimeSpan(sec);
        mediaElement.SetValue("Position",position);            
    }
}

function UpdateSliderPosition(barWidth, slider, position)
{
    if (position <  slider.Width / 2 / barWidth)
    {
        slider["Canvas.Left"] = 0;
    }
    else if (position > (barWidth - slider.Width) / barWidth)
    {
        slider["Canvas.Left"] = barWidth - slider.Width;
    }                    
    else
    {               
       slider["Canvas.Left"] = (position * barWidth) - slider.Width / 2;            
    }
}

function ResizeAndMoveHostControl(minWidth, minHeight, maxWidth, maxHeight, grow)
{
    var divHost = document.getElementById("silverlightControlHost");
    var position = FindTopPos(divHost);    
    if (grow)
    {
        m_divHostOffSetTopBackUp = divHost.offsetTop;
        m_divHostOffSetLeftBackUp = divHost.offsetLeft;
        divHost.style.width = maxWidth + "px";
        divHost.style.height = maxHeight + "px";
        position = position - (maxHeight - minHeight);        
        divHost.style.top = position + "px"; 
    }
    else
    {
        divHost.style.width = minWidth + "px";
        divHost.style.height = minHeight + "px";
        divHost.style.top = m_divHostOffSetTopBackUp + "px";
        divHost.style.left = m_divHostOffSetLeftBackUp + "px";
        if (m_BGroupCanvas)
        {
            m_BGroupCanvas.RenderTransform.Children.GetItem(3).Y = 0;
        }
    }
}

function SetBufferingCanvasPosition(isLargeMedia)
{
    if (isLargeMedia)
    {
        m_BBufferingCanvas["Canvas.Left"] = m_maxWidth / 2 - m_BBufferingCanvas.width / 2;
        m_BBufferingCanvas["Canvas.Top"] = m_maxHeight / 2 - m_BBufferingCanvas.height / 2;
    }
    else
    {    
        m_BBufferingCanvas["Canvas.Left"] = m_minWidth / 2 - m_BBufferingCanvas.width / 2;;
        m_BBufferingCanvas["Canvas.Top"] = m_minHeight / 2 - m_BBufferingCanvas.height / 2;;
    }
}

function FindTopPos(obj) 
{
	var curtop = 0;
	if (obj.offsetParent) {
		do {
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return curtop;
}

function FindLeftPos(obj) 
{
	var curleft = 0;
	if (obj.offsetParent) {
		do {
			curtop += obj.offsetLeft;
		} while (obj = obj.offsetParent);
	}
	return curleft;
}

PlayerJavaScript.Page = function() 
{
}

PlayerJavaScript.Page.prototype =
{
    // Load Function
    handleLoad: function(control, userContext, rootElement) 
    {
        this.control = control;
        m_plugin = control;
        
        var divHost = document.getElementById("silverlightControlHost");
        m_divHostOffSetTopBackUp = divHost.offsetTop;
        m_divHostOffSetLeftBackUp = divHost.offsetLeft;
        m_minWidth = userContext[0];
        m_minHeight = userContext[1];
        m_maxWidth = userContext[2];
        m_maxHeight = userContext[3];
        m_isResizeEnable = userContext[4];
        m_mediaSourceURL = userContext[5];         
        
        m_BRootCanvas = control.content.FindName("BRootCanvas");
        m_BRootCanvasMouseLeave = control.content.FindName("BRootCanvas_MouseLeave");
        m_BRootCanvasMouseLeave.addEventListener("Completed", Silverlight.createDelegate(this, function() {
                if (m_BMedia && m_BMediaIsValid == true)
                {
                    this.m_BRootCanvasMouseLeaveOnCompleted();
                }
            })); 
        m_BRootCanvas.addEventListener("MouseEnter", Silverlight.createDelegate(m_BRootCanvas, this.RootCanvas_MouseEnter));        
        m_BRootCanvasMouseEnter = control.content.FindName("BRootCanvas_MouseEnter");
        m_BRootCanvasMouseEnter.addEventListener("Completed", Silverlight.createDelegate(this, function() {
                if (m_BMedia && m_BMediaIsValid == true)
                {
                    this.m_BRootCanvasMouseEnterOnCompleted();
                }
            })); 
        
        m_BFullScreenButton = control.content.FindName("BFullScreenButton");
        m_BFullScreenButton.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(m_BFullScreenButton, this.m_BFullScreenButton_MouseLeftButtonDown));
        m_BFullScreenButton.addEventListener("MouseEnter", Silverlight.createDelegate(m_BFullScreenButton, this.Button_MouseEnter));
        m_BFullScreenButtonMouseEnter = control.content.FindName("BFullScreenButton_MouseEnter");
        m_BFullScreenButton.addEventListener("MouseEnter", Silverlight.createDelegate(m_BFullScreenButton, function() {
                if (m_BMedia && m_BMediaIsValid == true)
                {
                    m_BFullScreenButtonMouseEnter.Begin();
                }
            }));
        m_BFullScreenButton.addEventListener("MouseLeave", Silverlight.createDelegate(m_BFullScreenButton, this.Button_MouseLeave));
        m_BFullScreenButtonMouseLeave = control.content.FindName("BFullScreenButton_MouseLeave");
        m_BFullScreenButton.addEventListener("MouseLeave", Silverlight.createDelegate(m_BFullScreenButton, function() {
                if (m_BMedia && m_BMediaIsValid == true)
                {
                    m_BFullScreenButtonMouseLeave.Begin();
                }
            }));
        
        m_plugin.content.onFullScreenChange = Silverlight.createDelegate(this, this.onFullScreenChanged);
        if (m_plugin.addEventListener)
        {
            m_BRootCanvas.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.m_plugin_OnMouseOver));
            m_BRootCanvas.addEventListener("MouseLeave", Silverlight.createDelegate(m_BRootCanvas, this.RootCanvas_MouseLeave));
        }
        else if (m_plugin.attachEvent)
        {
            m_plugin.attachEvent('onmouseover', this.m_plugin_OnMouseOver);
            m_plugin.attachEvent('onmouseout', this.m_plugin_OnMouseLeave);
        }
        
        m_BVideoPlayerRootCanvas = control.content.FindName("BVideoPlayerRootCanvas");        
        m_BVideoPlayerRootCanvasFullScreen = control.content.FindName("BVideoPlayerRootCanvasFullScreen");
        m_BMedia = control.content.FindName("BMedia");
        if (m_BMedia)
        {
        m_BMedia.Source = m_mediaSourceURL;
        m_BMedia.addEventListener("MediaOpened", Silverlight.createDelegate(this, function() {
                if (m_BMedia.CanSeek)
                {
                    m_CanSeek = true;
                }
                m_BMedia.Volume = 0.8;
                m_BMediaIsValid = true;
            }));
        m_BMedia.addEventListener("MediaEnded", Silverlight.createDelegate(this, function() {
        	        m_BPlayPauseButtonPlayMouseButtonDown.Begin();
                    m_BPlayPauseButtonPauseMouseButtonDown.Begin();
                    m_mediaIsPlayed = false;
                    UpdateSliderPosition(m_BSeekBar.width, m_BSeekSlider, 0);
	                m_BMedia.Stop();
                }));
        m_BMedia.addEventListener("DownloadProgressChanged", Silverlight.createDelegate(this, function() {
        	        m_IsMediaBuffering = true;
        	        if (m_BMedia && m_BMedia.DownloadProgress == 1)
        	        {
        	            m_IsMediaBuffering = false;
        	        }
                }));
        m_BMedia.addEventListener("BufferingProgressChanged", Silverlight.createDelegate(this, function() {
        	        m_IsMediaBuffering = true;
        	        try {
                        if (m_BMedia && m_BMedia.BufferingProgress == 1)
            	        {
            	            m_IsMediaBuffering = false;
            	        }
                    }
                    catch(e) {}
                }));                
        m_BMedia.addEventListener("CurrentStateChanged", Silverlight.createDelegate(this, function() {
                    if (m_BMedia && (m_BMedia.CurrentState == "Buffering" || m_BMedia.DownloadProgress != 1))
                    {
                        m_IsMediaBuffering = true;
                        m_BBufferingCanvas.Visibility = "Visible";
                    }
                    else if (m_BMedia && m_BMedia.CurrentState == "Paused")        	        
                    {
                        m_mediaIsPlayed = false;
                    }
                    else if (m_BMedia && m_BMedia.CurrentState == "Playing")        	        
                    {
                        m_mediaIsPlayed = true;
                    }
                    else if (m_BMedia && m_BMedia.CurrentState == "Stopped")        	        
                    {
                        m_mediaIsPlayed = false;
                    }
                    else if (m_BMedia && m_BMedia.CurrentState == "Closed" || m_BMedia.CurrentState == "Error")        	        
                    {
                        m_mediaIsPlayed = false;
                        m_BMediaIsValid = false;
                    }
                }));
        }
        m_BPlayPauseButton = control.content.FindName("BPlayPauseButton");
        m_BPlayPauseButtonPauseMouseButtonDown = control.content.FindName("BPlayPauseButtonPause_MouseButtonDown");
        m_BPlayPauseButtonPauseMouseEnter = control.content.FindName("BPlayPauseButtonPause_MouseEnter");                
        m_BPlayPauseButtonPauseMouseLeave = control.content.FindName("BPlayPauseButtonPause_MouseLeave");                
        m_BPlayPauseButtonPlayMouseButtonDown = control.content.FindName("BPlayPauseButtonPlay_MouseButtonDown");
        m_BPlayPauseButtonPlayMouseEnter = control.content.FindName("BPlayPauseButtonPlay_MouseEnter");
        m_BPlayPauseButtonPlayMouseLeave = control.content.FindName("BPlayPauseButtonPlay_MouseLeave");
        m_BPlayPauseButton.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, function() {
            if (m_BMedia && m_BMediaIsValid == true)
            {
                if (m_mediaIsPlayed)
                {
                    m_BMedia.Pause();
                    m_BPlayPauseButtonPauseMouseButtonDown.Begin();
                }
                else
                {
                   m_BMedia.Play();
                   m_BPlayPauseButtonPlayMouseButtonDown.Begin();
                }
            }
            }));		                                
        
        m_BPlayPauseButton.addEventListener("MouseEnter", Silverlight.createDelegate(m_BPlayPauseButton, this.Button_MouseEnter));
        m_BPlayPauseButton.addEventListener("MouseEnter", Silverlight.createDelegate(this, function() {
            if (m_BMedia && m_BMediaIsValid == true)
            {
                if (m_mediaIsPlayed)
                {
                    m_BPlayPauseButtonPauseMouseEnter.Begin();
                }
                else
                {
                   m_BPlayPauseButtonPlayMouseEnter.Begin();
                }
            }
            }));		             
        m_BPlayPauseButton.addEventListener("MouseLeave", Silverlight.createDelegate(m_BPlayPauseButton, this.Button_MouseLeave));
        m_BPlayPauseButton.addEventListener("MouseLeave", Silverlight.createDelegate(this, function() {
            if (m_BMedia && m_BMediaIsValid == true)
            {
                if (m_mediaIsPlayed)
                {
                    m_BPlayPauseButtonPauseMouseLeave.Begin();
                }
                else
                {
                   m_BPlayPauseButtonPlayMouseLeave.Begin();
                }
            }
            }));
        m_BPlayPauseButtonPlayMouseButtonDown.Begin();            

        m_BStopButton = control.content.FindName("BStopButton");
        m_BStopButtonMouseEnter = control.content.FindName("BStopButton_MouseEnter");        
        m_BStopButton.addEventListener("MouseEnter", Silverlight.createDelegate(m_BStopButton, function() {
            m_BStopButtonMouseEnter.Begin();
            }));
        m_BStopButtonMouseLeave = control.content.FindName("BStopButton_MouseLeave");        
        m_BStopButton.addEventListener("MouseLeave", Silverlight.createDelegate(m_BStopButton, function() {
                m_BStopButtonMouseLeave.Begin();
            }));
        m_BStopButton.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, function() {
            m_BMedia.Stop();
            m_BSeekSlider["Canvas.Left"] = 0;
            m_BPlayPauseButtonPauseMouseButtonDown.Begin();
            }));

        m_BStopButton.addEventListener("MouseEnter", Silverlight.createDelegate(m_BStopButton, this.Button_MouseEnter));
        m_BStopButton.addEventListener("MouseLeave", Silverlight.createDelegate(m_BStopButton, this.Button_MouseLeave));

        m_BVolume = control.content.FindName("BVolume");
        m_BSliderVolume = control.content.FindName("BSliderVolume");

        m_BVolume.addEventListener("MouseEnter", Silverlight.createDelegate(m_BVolume, this.Button_MouseEnter));
        m_BVolume.addEventListener("MouseLeave", Silverlight.createDelegate(m_BVolume, this.Button_MouseLeave))
        m_BVolume.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(m_BVolume, this.m_BVolume_MouseLeftButtonDown));
      
        m_BSliderVolume.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(m_BVolume, this.m_BSliderVolume_MouseLeftButtonDown));
        m_BSliderVolume.addEventListener("MouseLeftButtonUp", Silverlight.createDelegate(m_BVolume, this.m_BSliderVolume_MouseLeftButtonUp));
        m_BSliderVolume.addEventListener("MouseMove", Silverlight.createDelegate(m_BVolume, this.m_BSliderVolume_MouseMove));                

        m_BSeekBar = control.content.FindName("BSeekBar");
        m_BSeekSlider = control.content.FindName("BSeekSlider");

        m_BSeekBar.addEventListener("MouseEnter", Silverlight.createDelegate(m_BSeekBar, this.Button_MouseEnter));
        m_BSeekBar.addEventListener("MouseLeave", Silverlight.createDelegate(m_BSeekBar, this.Button_MouseLeave))

        m_BSeekBar.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(m_BSeekBar, this.m_BSeekBar_MouseLeftButtonDown));
        m_BSeekSlider.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(m_BSeekSlider, this.m_BSeekSlider_MouseLeftButtonDown));
        m_BSeekSlider.addEventListener("MouseLeftButtonUp", Silverlight.createDelegate(m_BSeekSlider, this.m_BSeekSlider_MouseLeftButtonUp));
        m_BSeekSlider.addEventListener("MouseMove", Silverlight.createDelegate(m_BSeekSlider, this.m_BSeekSlider_MouseMove));                       
        
        m_BGroupCanvas = control.content.FindName("BGroupCanvas");
        m_BBufferingCanvas = control.content.FindName("BBufferingCanvas");  
        window.setInterval(this.ShowMediaProgress, 5);
    },   
    
    m_plugin_OnMouseOver: function (sender, mouseEventArgs)
    {
        if (m_BMedia && m_BMediaIsValid && !m_IsMediaBuffering && m_ResizeState && m_isResizeCompleted && m_isResizeEnable)
        {
           m_isResizeCompleted = false;
           ResizeAndMoveHostControl(m_minWidth, m_minHeight, m_maxWidth, m_maxHeight, true);
           m_BRootCanvasMouseEnter.Begin();
           SetBufferingCanvasPosition(true);
        }  
    },
    
    RootCanvas_MouseEnter: function (sender, mouseEventArgs)
    {
    }, 
    
    m_BRootCanvasMouseEnterOnCompleted: function ()
    {
        if (m_BMedia && m_BMediaIsValid && m_isResizeEnable)
        {
            m_isResizeCompleted = true;
            m_ResizeState = false;
        }    
    },
    
    m_BRootCanvasMouseLeaveOnCompleted: function ()
    {        
        if (m_BMedia && m_BMediaIsValid && m_isResizeEnable)
        {
            m_ResizeState = true;
            ResizeAndMoveHostControl(m_minWidth, m_minHeight, m_maxWidth, m_maxHeight, false);
            m_isResizeCompleted = true;
        }
    },
    
    RootCanvas_MouseLeave: function (sender, mouseEventArgs)
    {   
        if (m_BMedia && m_BMediaIsValid && !m_IsMediaBuffering && !m_ResizeState && m_isResizeCompleted && m_isResizeEnable)
        {            
            m_isResizeCompleted = false;          
            m_BRootCanvasMouseLeave.begin();
            SetBufferingCanvasPosition(false);
        }
    },
    
    m_plugin_OnMouseLeave: function (sender, mouseEventArgs)
    {
        if (m_BMedia && m_BMediaIsValid && !m_IsMediaBuffering && !m_ResizeState && m_isResizeCompleted && m_isResizeEnable)
        {            
            m_isResizeCompleted = false;          
            m_BRootCanvasMouseLeave.begin();
            SetBufferingCanvasPosition(false);
        }
    },
    
	// Handle MouseEnter event for Buttons
	Button_MouseEnter: function (sender, mouseEventArgs)
	{	    
	    sender.Cursor = "Hand";
	},	
	// Handle MouseEnter event for Buttons
	Button_MouseLeave: function (sender, eventArgs)
	{	    
	    sender.Cursor = "Default";
	},
	
	// Handle MouseLeftButtonDown event for m_BVolume
	m_BVolume_MouseLeftButtonDown: function (sender, mouseEventArgs)
	{
	    m_BSliderVolumeIsMouseLeftButtonDown = true;
        m_BSliderVolume.CaptureMouse();
	    var position = mouseEventArgs.getPosition(m_BVolume).x / m_BVolume.Width;
	    UpdateSliderPosition(m_BVolume.Width, m_BSliderVolume, position);
	    m_BMedia.Volume = position;
	},
	
	// Handle MouseLeftButtonDown event for m_BSliderVolume
	m_BSliderVolume_MouseLeftButtonDown: function (sender, mouseEventArgs)
	{
        m_BSliderVolumeIsMouseLeftButtonDown = true;
        m_BSliderVolume.CaptureMouse();
	},
	
	// Handle MouseLeftButtonUp event for m_BSliderVolume
	m_BSliderVolume_MouseLeftButtonUp: function (sender, mouseEventArgs)
	{
        m_BSliderVolumeIsMouseLeftButtonDown = false;
        m_BSliderVolume.ReleaseMouseCapture();
	},
	// Handle MouseMove event for m_BSliderVolume
	m_BSliderVolume_MouseMove: function (sender, mouseEventArgs)
	{
	    if (m_BSliderVolumeIsMouseLeftButtonDown)
	    {
            var position = mouseEventArgs.getPosition(m_BVolume).x / m_BVolume.Width;
            UpdateSliderPosition(m_BVolume.Width, m_BSliderVolume, position);
            m_BMedia.Volume = position;
        }
	},
		
	// Handle MouseLeftButtonDown event for m_BSeekBar
	m_BSeekBar_MouseLeftButtonDown: function (sender, mouseEventArgs)
	{
	    if (m_BMedia && m_CanSeek && m_isResizeCompleted && m_BMedia.CurrentState != "Stopped")
	    {
	        m_BSeekSlider.CaptureMouse();
	        m_BSeekSliderIsMouseLeftButtonDown = true;
	        var position = mouseEventArgs.getPosition(m_BSeekBar).x / m_BSeekBar.Width;
	        UpdateSliderPosition(m_BSeekBar.Width, m_BSeekSlider, position);
	        var seconds = position * m_BMedia.NaturalDuration.Seconds;
	        ChangeMediaElementPosition(seconds, m_BMedia);
        }
	},
	// Handle MouseLeftButtonDown event for m_BSeekSlider
	m_BSeekSlider_MouseLeftButtonDown: function (sender, mouseEventArgs)
	{
	    if (m_BMedia && m_CanSeek && m_isResizeCompleted && m_BMedia.CurrentState != "Stopped")
	    {
	        m_BSeekSliderIsMouseLeftButtonDown = true;
	        m_BSeekSlider.CaptureMouse();
	    }
	},
	
	// Handle MouseLeftButtonUp event for m_BSeekSlider
	m_BSeekSlider_MouseLeftButtonUp: function (sender, mouseEventArgs)
	{
	    if (m_BMedia && m_CanSeek)
	    {
	        m_BSeekSliderIsMouseLeftButtonDown = false;
	        var position = mouseEventArgs.getPosition(m_BSeekBar).x / m_BSeekBar.Width;
	        UpdateSliderPosition(m_BSeekBar.Width, m_BSeekSlider, position);
	        var seconds = position * m_BMedia.NaturalDuration.Seconds;
	        ChangeMediaElementPosition(seconds, m_BMedia);
	        m_BSeekSlider.ReleaseMouseCapture();
	    }
	},
	// Handle MouseMove event for m_BSeekSlider
	m_BSeekSlider_MouseMove: function (sender, mouseEventArgs)
	{
	    if (m_BMedia && m_CanSeek && m_BSeekSliderIsMouseLeftButtonDown && m_isResizeCompleted)
	    {
	        var position = mouseEventArgs.getPosition(m_BSeekBar).x / m_BSeekBar.Width;
	        UpdateSliderPosition(m_BSeekBar.Width, m_BSeekSlider, position);
	    }
	},
	
	// Handle MouseLeftButtonDown event for m_BFullScreenButton
	m_BFullScreenButton_MouseLeftButtonDown: function (sender, mouseEventArgs)
	{
	    if (m_BMedia && m_BMediaIsValid)
	    {
	        m_plugin.content.fullscreen = !m_plugin.content.fullscreen;
	    }
	},
	
	m_plugin_OnMouseOut: function (sender, eventArgs)
	{
	    m_BSliderVolumeIsMouseLeftButtonDown = false;        
        m_BSeekSliderIsMouseLeftButtonDown = false;
        m_BSeekSlider.ReleaseMouseCapture();
        m_BSliderVolume.ReleaseMouseCapture();
	},
	
	// Handle FullScreenChanged on Plugin
	onFullScreenChanged: function (sender, eventArgs)
    {    
        m_BRootCanvasMouseEnter.stop();
        m_BRootCanvasMouseLeave.stop();    
        m_isResizeCompleted = true;   
        if (m_plugin.content.fullscreen)
        {
            m_BVideoPlayerRootCanvasFullScreen.height = m_plugin.content.actualHeight;
            m_BVideoPlayerRootCanvasFullScreen.width = m_plugin.content.actualWidth;
        }
        else
        {   
            var divHost = document.getElementById("silverlightControlHost");
            var position = FindTopPos(divHost);                      
            divHost.style.width = m_minWidth + "px";
            divHost.style.height = m_minHeight + "px";
            divHost.style.top = m_divHostOffSetTopBackUp + "px";
            divHost.style.left = m_divHostOffSetLeftBackUp + "px";
            if (m_BGroupCanvas != null)
            {
                m_BGroupCanvas.RenderTransform.Children.GetItem(3).Y = 0;
            }
            m_ResizeState = true;                                    
            m_BVideoPlayerRootCanvasFullScreen.height = 0;
            m_BVideoPlayerRootCanvasFullScreen.width = 0;
        }
    },
	
	// Handle progress of the media when it is playing
	ShowMediaProgress: function()
	{
	  if (!m_BSeekSliderIsMouseLeftButtonDown)
	  {
	    if (m_BMedia.CurrentState == "Buffering")
	    {
	        m_BBufferingCanvas.Visibility = "Visible";
	    }	    	   
	    else
	    {
	        m_BBufferingCanvas.Visibility = "Collapsed";
	    }
	   
        var value = 0;
            if (m_BMedia.NaturalDuration.Seconds > 0)
            {
                value = m_BMedia.Position.Seconds / m_BMedia.NaturalDuration.Seconds;	            
                UpdateSliderPosition(m_BSeekBar.Width, m_BSeekSlider, value);
            }
	  }  
	}
}


