﻿
function audioInit(xaml, parentElement)
{  
    Silverlight.createObject(
        xaml,                  // Source property value.
        parentElement,                  // DOM reference to hosting DIV tag.
        "dvAudio",                      // Unique plug-in ID value.
        {                               // Per-instance properties.
            width:'165',               // Width of rectangular region of plug-in area in pixels.
            height:'32',               // Height of rectangular region of  plug-in area in pixels.
            inplaceInstallPrompt:true, // Determines whether to display in-place install prompt if invalid version detected.
            background:'white',       // Background color of plug-in.
            isWindowless:'false',       // Determines whether to display plug-in  in Windowless mode.
            framerate:'24',             // MaxFrameRate property value.
            version:'1.0'               // Silverlight version to use.
        },
        {
            onError:null,               // OnError property value -- 
                                        // event handler function name.
            onLoad:setAudio                 // OnLoad property value -- 
                                        // event handler function name.
        },
        null);                          // Context value -- event handler function name.
}
function setAudio(control, context, rootElement)
{
    //rootElement.findName("media").source = document.getElementById('hdAudio').value //'sample.mp3';
    rootElement.findName("media").source = sAudio;
    rootElement.findName("media").AddEventListener("MediaEnded", media_stop);
}

function media_begin(sender, args) {
    sender["Canvas.ZIndex"] = 0
    sender.findName("media").play();
    sender.findName("an_play_hide").begin();
    sender.findName("an_pause_show").begin();
    sender.findName("an_stop_show").begin();
}
function media_pause(sender, args) {
    sender.findName("media").pause(); 
    sender.findName("play")["Canvas.ZIndex"] = 1;
    sender.findName("an_pause_hide").begin();   
    sender.findName("an_play_show").begin();
}
function media_stop(sender, args) {
    sender.findName("media").stop();
    sender.findName("play")["Canvas.ZIndex"] = 1;  
    sender.findName("an_play_show").begin();
    sender.findName("an_pause_hide").begin();  
    sender.findName("an_stop_hide").begin();  
}

//function media_state_changed(){
//add progress bar?
//}

/* volume functions */
var mouseDownPosition = 0;
var mouseDownValue = -1;

function slider_Loaded(sender, args) {
    slider_SetValue(sender, 0);
}
function slider_MouseLeftButtonDown(sender, args) {    
    var coordinate = args.getPosition(null).x;
    var slider = sender.findName("slider");
    coordinate -= slider["Canvas.Left"];
    slider_SetValue(slider, coordinate );  
}
function slider_thumb_MouseLeftButtonDown(sender, args) {
    var slider = sender.findName("slider");
    sender.captureMouse();
    mouseDownValue = slider_GetValue(slider);
    mouseDownPosition = args.getPosition(null).x;
}
function slider_thumb_MouseLeftButtonUp(sender, args) {
    var slider = sender.findName("slider");
    slider.releaseMouseCapture();
    mouseDownValue = -1;
    setVol(sender);
}
function slider_thumb_MouseMove(sender, args) {
    var slider = sender.findName("slider");
    if (mouseDownValue != -1) {
        var newValue = mouseDownValue + (args.getPosition(null).x - mouseDownPosition);    
        slider_SetValue(slider, newValue);
        setVol(sender);
    }   
}
function slider_GetValue(sender) {
    return sender.findName("slider_thumb")["Canvas.Left"];    
}
function slider_SetValue(sender, newValue) {    
    if (newValue > sender.width ) {
        newValue = sender.width;
        mouseDownValue = -1;
    }
    if (newValue == 0) {mouseDownValue = -1}    
    sender.findName("slider_thumb")["Canvas.Left"] = newValue;
}
function setVol(sender){
sender.findName("media").volume=(sender.findName("slider_thumb")["Canvas.Left"]/100);
}
/* end volume functions */

/* Video Only Functions  */
function videoInit(xaml, parentElement)
{  
    Silverlight.createObject(
        xaml,                  // Source property value.
        parentElement,                  // DOM reference to hosting DIV tag.
        "dvVideo",                      // Unique plug-in ID value.
        {                               // Per-instance properties.
            width:'640',               // Width of rectangular region of plug-in area in pixels.
            height:'510',               // Height of rectangular region of  plug-in area in pixels.
            inplaceInstallPrompt:true, // Determines whether to display in-place install prompt if invalid version detected.
            background:'white',       // Background color of plug-in.
            isWindowless:'false',       // Determines whether to display plug-in  in Windowless mode.
            framerate:'24',             // MaxFrameRate property value.
            version:'1.0'               // Silverlight version to use.
        },
        {
            onError:null,               // OnError property value -- 
                                        // event handler function name.
            onLoad:setVideo                 // OnLoad property value -- 
                                        // event handler function name.
        },
        null);                          // Context value -- event handler function name.
}
function setVideo(control, context, rootElement)
{
    //rootElement.findName("media").source = document.getElementById('hdVideo').value //'sample.mp3';
    rootElement.findName("media").source = sVideo;
    rootElement.findName("media").AddEventListener("MediaEnded", media_stop);
    rootElement.getHost().content.onfullScreenChange = onFullScreenChanged;
    
}
function media_full(sender, args) {
  sender.getHost().content.fullScreen = true; 
}

function onFullScreenChanged(sender, args)
{   
    var silverlightPlugin = sender.getHost();
    var buttonPanel = sender.findName("controls");
    var mediaPlayer = sender.findName("media");
    
    if (silverlightPlugin.content.fullScreen == true){
        buttonPanel.opacity = 0;
        mediaPlayer.width = silverlightPlugin.content.actualWidth;
        mediaPlayer.height = silverlightPlugin.content.actualHeight;
    }
    else{
        buttonPanel.opacity = 1;  
        mediaPlayer.width = 640;
        mediaPlayer.height = 480;        
    }
}    
/* end Video Only Functions  */






