function canvas_loaded(sender, args)
{
    var silverlightPlugin = sender.getHost();
    silverlightPlugin.width = "100%";
    silverlightPlugin.height = "100%";
    silverlightPlugin.content.onfullScreenChange = onFullScreenChanged;
    silverlightPlugin.content.onResize = onResized;
    
    hideButtonPanel(sender,args);
    
    // EVENTS
    var canvasroot = sender.findName("root");
    canvasroot.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.SilverLight_MouseEnter));
    canvasroot.addEventListener("MouseLeave", Silverlight.createDelegate(this, this.SilverLight_MouseLeave));
    
    var mediaPlayer = sender.findName("media");
    mediaPlayer.addEventListener("CurrentStateChanged", Silverlight.createDelegate(this, this.media_state_changed));
    
    
    var buttonPlayStop = sender.findName("buttonPlayStop");
    var buttonPlayStopBG = sender.findName("buttonPlayStopBG");
    new button(buttonPlayStop, buttonPlayStopBG, "#FF6D6D6D", "#FF595959", Silverlight.createDelegate(this, this.media_PlayStop));
    
    var buttonMute = sender.findName("buttonMute");
    var buttonMuteBG = sender.findName("buttonMuteBG");
    new button(buttonMute, buttonMuteBG, "#FF6D6D6D", "#FF595959", Silverlight.createDelegate(this, this.media_Mute));
    
    var buttonVolumeDown = sender.findName("buttonVolumeDown");
    var buttonVolumeDownBG = sender.findName("buttonVolumeDownBG");
    new button(buttonVolumeDown, buttonVolumeDownBG, "#FF6D6D6D", "#FF595959", Silverlight.createDelegate(this, this.media_VolumeDown));
    
    var buttonVolumeUp = sender.findName("buttonVolumeUp");
    var buttonVolumeUpBG = sender.findName("buttonVolumeUpBG");
    new button(buttonVolumeUp, buttonVolumeUpBG, "#FF6D6D6D", "#FF595959", Silverlight.createDelegate(this, this.media_VolumeUp));
    
    var buttonFullScreen = sender.findName("buttonFullScreen");
    var buttonFullScreenBG = sender.findName("buttonFullScreenBG");
    new button(buttonFullScreen, buttonFullScreenBG, "#FF6D6D6D", "#FF595959", Silverlight.createDelegate(this, this.media_FullScreen));
}

function media_PlayStop(sender, args) {
    var mediaPlayer = sender.findName("media");   
    if(mediaPlayer.CurrentState == "Stopped") {
        mediaPlayer.play();
    }
    else if(mediaPlayer.CurrentState == "Playing") {
        mediaPlayer.stop();
    }
}

function media_Mute(sender, args)
{
    var mediaPlayer = sender.findName("media");
    if (mediaPlayer.ismuted == true){
        mediaPlayer.ismuted = false
        sender.findName("muteIcon").visibility = "collapsed";
    }
    else{
        mediaPlayer.isMuted = true
        sender.findName("muteIcon").visibility = "visible";
    }
}

function media_VolumeDown(sender, args)
{
    var mediaPlayer = sender.findName("media");
    if (mediaPlayer.volume > 0) {
        mediaPlayer.volume = mediaPlayer.volume - 0.1;
    }
}

function media_VolumeUp(sender, args)
{
    var mediaPlayer = sender.findName("media");
    if (mediaPlayer.volume < 100) {
        mediaPlayer.volume = mediaPlayer.volume + 0.1;
    }
}

function media_state_changed(sender, args)
{
    var mediaPlayer = sender.findName("media");
    if (mediaPlayer.CurrentState == "Stopped"){
        sender.findName("statusPanel").visibility = "collapsed"
        sender.findName("playIcon").visibility = "visible"
        sender.findName("stopIcon").visibility = "collapsed"
        showButtonPanel(sender,args);
    }
    else if (mediaPlayer.CurrentState == "Playing"){
        sender.findName("statusPanel").visibility = "collapsed"
        sender.findName("playIcon").visibility = "collapsed"
        sender.findName("stopIcon").visibility = "visible"
        hideButtonPanel(sender,args);
    }
    else{
        sender.findName("statusPanel").visibility = "visible"
        showButtonPanel(sender,args);
    }
}

function media_FullScreen(sender, args)
{
    var silverlightPlugin = sender.getHost();
    silverlightPlugin.content.fullScreen = !silverlightPlugin.content.fullScreen;  
}

function onResized(sender, args)
{
    resizeMediaPlayer(sender,args);
    moveButtonPanel(sender,args); 
    moveStatusPanel(sender,args);
}

function onFullScreenChanged(sender, args)
{
    var silverlightPlugin = sender.getHost();  
    if (silverlightPlugin.content.fullScreen == true)
    {
        hideButtonPanel(sender,args);
    }
    else 
    {
        showButtonPanel(sender,args);
    }  
    resizeMediaPlayer(sender,args);
    moveStatusPanel(sender,args);
}

function SilverLight_MouseEnter(sender, args)
{
    var silverlightPlugin = sender.getHost();
    if (silverlightPlugin.content.fullScreen == false)
    {
        showButtonPanel(sender,args);
    }
}

function SilverLight_MouseLeave(sender, args)
{
    var mediaPlayer = sender.findName("media");
    if (mediaPlayer.CurrentState == "Playing"){
        hideButtonPanel(sender,args);
    }
}


function resizeMediaPlayer(sender, args)
{
    var silverlightPlugin = sender.getHost();
    var mediaPlayer = sender.findName("media");
    mediaPlayer.width = silverlightPlugin.content.actualWidth;
    mediaPlayer.height = silverlightPlugin.content.actualHeight;
}

function moveStatusPanel(sender, args)
{
    var silverlightPlugin = sender.getHost();
    var statusPanel = sender.findName("statusPanel");  
    statusPanel["Canvas.Left"] = silverlightPlugin.content.actualWidth/2 - 25;
    statusPanel["Canvas.Top"] = silverlightPlugin.content.actualHeight/2 - 25;
}

function moveButtonPanel(sender, args)
{
    var silverlightPlugin = sender.getHost();
    var buttonPanel = sender.findName("buttonPanel");
    buttonPanel["Canvas.Left"] = silverlightPlugin.content.actualWidth/2 - 51;
    buttonPanel["Canvas.Top"] = silverlightPlugin.content.actualHeight - 20;
}

function showButtonPanel(sender, args)
{
    sender.findName("buttonPanel").opacity = 1;
}

function hideButtonPanel(sender, args)
{
    sender.findName("buttonPanel").opacity = 0;
}

