﻿//#############Generic functions that control the mouse states for SL
var mouseOver   = false;
var pressed     = false;
var playActive  = false;
var pauseActive = false;
var volState    = true;

function button_MouseLeftButtonDown(sender,args) {
    sender.captureMouse();
    mouseOver = true;
    pressed = true;
    updateVisuals(sender);
}

function button_MouseLeftButtonUp(sender,args) {
    sender.releaseMouseCapture();
    pressed = false;
    
    updateVisuals(sender);
    
	//Used to change active / mouse over state on Play / Pause buttons
	if (sender.Name == "Play" && playActive) {
		playActive  = false;
		pauseActive = true;
		//Set the colors for the Play button
		sender.findName("PlayButton").fill    = "#FFFFFF";
		sender.findName("PlayIcon").fill      = "#d1d1d1";
		sender.findName("PlayButton").stroke  = "#FFFFFF";
		sender.findName("PlayIcon").stroke    = "#d1d1d1";
		//Set the colors for Pause button
	    sender.findName("PauseIcon").fill     = "#939393";
		sender.findName("PauseIcon1").fill    = "#939393";
		sender.findName("PauseIcon").stroke   = "#939393";
		sender.findName("PauseIcon1").stroke  = "#939393";
		//Fire the player audio functions
		sender.findName("media_demo").play();
	}
    if (sender.Name == "Pause" && pauseActive) {
		playActive  = true;
		pauseActive = false;
		//Set the colors for Pause button
		sender.findName("PauseButton").fill     = "#FFFFFF";
		sender.findName("PauseIcon").fill       = "#d1d1d1";
		sender.findName("PauseIcon1").fill      = "#d1d1d1";
		sender.findName("PauseButton").stroke   = "#FFFFFF";
		sender.findName("PauseIcon").stroke     = "#d1d1d1";
		sender.findName("PauseIcon1").stroke    = "#d1d1d1";
		//Set the colors for the Play button
		sender.findName("PlayIcon").fill        = "#939393";
		sender.findName("PlayIcon").stroke      = "#939393";
		//Fire the player audio functions
		sender.findName("media_demo").pause();

	}
	if(sender.Name == "Low") {
		sender.findName("media_demo").Source = "/wma/playground/audio_demos/LC.net_WMA32.wma";
		sender.findName("VidImg").Source = "/images/playground/audio_demo/sl_plr/wma_low_bandwidth_bg.jpg";
		//Set the colors for Pause button and activate it
		sender.findName("PauseIcon").fill     = "#939393";
		sender.findName("PauseIcon1").fill    = "#939393";
		sender.findName("PauseIcon").stroke   = "#939393";
		sender.findName("PauseIcon1").stroke  = "#939393";
		pauseActive = true;
	}
	if(sender.Name == "Hi") {
		sender.findName("media_demo").Source = "/wma/playground/audio_demos/LC.net_WMA128.wma";
		sender.findName("VidImg").Source = "/images/playground/audio_demo/sl_plr/wma_high_bandwidth_bg.jpg";
		//Set the colors for Pause button and activate it
		sender.findName("PauseIcon").fill     = "#939393";
		sender.findName("PauseIcon1").fill    = "#939393";
		sender.findName("PauseIcon").stroke   = "#939393";
		sender.findName("PauseIcon1").stroke  = "#939393";
		pauseActive = true;
	}
	if (sender.Name == "Vol") {
	
		if (volState) {
		//Muting the player
			volState                              = false;
			sender.findName("volIconOff").opacity = "1";
			sender.findName("media_demo").isMuted = true;
			
		} else {
		//UnMuting the player
		    volState                              = true;
			sender.findName("volIconOff").opacity = "0";
			sender.findName("media_demo").isMuted = false;
		}
	
	}
}

function button_MouseEnter(sender,args) {
    mouseOver = true;
    updateVisuals(sender);
	
	if (sender.Name == "Play" && !playActive) { sender.findName("Play").cursor = "Arrow"; }
	if (sender.Name == "Pause" && !playActive) { sender.findName("Pause").cursor = "Arrow"; }
}

function button_MouseLeave(sender,args) {
    mouseOver = false;
    updateVisuals(sender);
	
	if (sender.Name == "Play" && !playActive) { sender.findName("Play").cursor = "Hand"; }
	if (sender.Name == "Pause" && !playActive) { sender.findName("Pause").cursor = "Hand"; } 
}

//#############Mouse over controls
function updateVisuals(sender) {
	//Play and Pause Code
	if (sender.Name == "Play" && playActive) {
	
	    if (mouseOver || pressed) {
	        sender.findName("PlayButton").fill   = "#fe8d09";
			sender.findName("PlayIcon").fill     = "#FFFFFF";
			sender.findName("PlayButton").stroke = "#fe8d09";
			sender.findName("PlayIcon").stroke   = "#FFFFFF";
	    } else {
	        sender.findName("PlayButton").fill   = "#FFFFFF";
			sender.findName("PlayIcon").fill     = "#939393";
			sender.findName("PlayButton").stroke = "#FFFFFF";
			sender.findName("PlayIcon").stroke   = "#939393";
	    }
	} else if (sender.Name == "Pause" && pauseActive) {
	
	    if (mouseOver || pressed) {
	        sender.findName("PauseButton").fill   = "#fe8d09";
			sender.findName("PauseIcon").fill     = "#FFFFFF";
			sender.findName("PauseIcon1").fill    = "#FFFFFF";
			sender.findName("PauseButton").stroke = "#fe8d09";
			sender.findName("PauseIcon").stroke   = "#FFFFFF";
			sender.findName("PauseIcon1").stroke  = "#FFFFFF";
	    } else {
	        sender.findName("PauseButton").fill   = "#FFFFFF";
			sender.findName("PauseIcon").fill     = "#939393";
			sender.findName("PauseIcon1").fill    = "#939393";
			sender.findName("PauseButton").stroke = "#FFFFFF";
			sender.findName("PauseIcon").stroke   = "#939393";
			sender.findName("PauseIcon1").stroke  = "#939393";
	    }
	} else if (sender.Name == "Low") {
	
		if (mouseOver || pressed) {
			sender.findName("LowButton").fill   = "#43a5d9";
			sender.findName("LowButton").stroke = "#43a5d9";
		} else {
			sender.findName("LowButton").fill   = "#a7c513";
			sender.findName("LowButton").stroke = "#a7c513";
		}
	
	} else if (sender.Name == "Hi") {
	
		if (mouseOver || pressed) {
			sender.findName("HiButton").fill   = "#43a5d9";
			sender.findName("HiButton").stroke = "#43a5d9";
			//turn off vol as VolOff stage is behind
			sender.findName("slider_thumb").opacity   = "0";
			sender.findName("slider_line").opacity    = "0";
			sender.findName("slider_line").opacity    = "0";
		} else {
			sender.findName("HiButton").fill   = "#fe8d09";
			sender.findName("HiButton").stroke = "#fe8d09";
		}
	
	} else if (sender.Name == "Vol") {
	
		if (mouseOver) {
			sender.findName("slider_thumb").opacity   = "1";
			sender.findName("slider_line").opacity    = "1";
			sender.findName("slider_line").opacity    = "1";
			
		} 		
	} else if (sender.Name == "VolOff" || sender.Name == "VolOff1") {
	
		if (!mouseOver) {
			sender.findName("slider_thumb").opacity   = "0";
			sender.findName("slider_line").opacity    = "0";
			sender.findName("slider_line").opacity    = "0";
			
		} 		
	} 
}

//#############Volume Slider Controls##########################
var mouseDownPosition = 0;
var mouseDownValue = -1;
var thumbCenter = 0;

function slider_Loaded(sender, args) {
    slider_SetValue(sender, 0);
}

function slider_MouseLeftButtonDown(sender, args) {
    
    var coordinate = args.getPosition(null).y;
    var slider = sender.findName("slider");
	//alert(coordinate);
    coordinate -= slider["Canvas.Top"];
	//alert(slider);
	//alert(coordinate);
	
    slider_SetValue(slider, coordinate - thumbCenter);  
}

function slider_thumb_MouseLeftButtonDown(sender, args) {
    var slider = sender.findName("slider");
    sender.captureMouse();
    mouseDownValue = slider_GetValue(slider);
    mouseDownPosition = args.getPosition(null).y;
	
}

function slider_thumb_MouseLeftButtonUp(sender, args) {
    var slider = sender.findName("slider");
    slider.releaseMouseCapture();
    mouseDownValue = -1;
}

function slider_thumb_MouseMove(sender, args) {
    var slider = sender.findName("slider");
    if (mouseDownValue != -1) {
        var newValue = mouseDownValue + (args.getPosition(null).y - mouseDownPosition);    
        slider_SetValue(slider, newValue);
    }   
}

function slider_GetValue(sender) {
    var thumb = sender.findName("slider_thumb");
    return thumb["Canvas.Top"]; 
}

function slider_SetValue(sender, newValue) {
    
    if (newValue > sender.height ) {
        newValue = sender.height;
        mouseDownValue = -1;
		
    }
    if (newValue < - thumbCenter) {
        newValue = - thumbCenter;
        mouseDownValue = -1;
		
    }
	if (!volState) {
		volState                              = true;
		sender.findName("volIconOff").opacity = "0";
		sender.findName("media_demo").isMuted = false;
	}
    var thumb = sender.findName("slider_thumb");
	newValue = newValue;
    thumb["Canvas.Top"] = newValue;
	newValue = 50 - newValue;
	setVol(sender, newValue);
	
}
//######################Player Controls###############################
function setVol(sender, vol) {
	
	vol = (vol * 2) / 100;
	sender.findName("media_demo").Volume = vol;
	
}
//######################Play head controls############################

//Getting total file duration
function stateChange(sender, args) {
	
	if (sender.findName("media_demo").CurrentState == "Playing") { 
		
		dur = sender.findName("media_demo").NaturalDuration;
		dur = dur.Seconds;
	
	}
}
//Buffering progress
function stateBuffering(sender, args) {
	
	var buffer = sender.findName("media_demo").BufferingProgress;
	buffer = buffer * 181;

	//turn on the progress bar
	if (sender.findName("BufferProgress").Opacity == "0") {
		sender.findName("BufferProgress").Opacity = "1";
	}
	//Set the download indicatior based on buffer percentage
	
	sender.findName("BufferProgress").Width = buffer;

} 
//Download progress
function stateDownload(sender, args) {
	
	var download = sender.findName("media_demo").DownloadProgress;
	download = download * 181;

	//turn on the progress bar
	if (sender.findName("BufferProgress").Opacity == "0") {
		sender.findName("BufferProgress").Opacity = "1";
	}
	//Set the download indicatior based on buffer percentage
	
	sender.findName("BufferProgress").Width = download;

}
//On Demand Files End
function mediaEnd(sender, args) {
	
}