var mediaPositionSlider;
var mediaVolumeSlider;
var updateTimer;
var volumeInitTimer;

function sliderInit() {
	mediaPositionSlider = YAHOO.widget.Slider.getHorizSlider("mediaPositionSliderBGDiv", "mediaPositionSliderHandleDiv", 0, 378);
	mediaPositionSlider.onChange = function(offsetFromStart) {
		if (mediaPositionSlider.userActing()){
			updateTimeDisplayByUser();	
		}
	}

	mediaPositionSlider.onDragEnd = function() {
		document.getElementById('mediaPlayer').controls.currentPosition = mediaPositionSlider.getScaledValue(document.getElementById('mediaPlayer').currentMedia.Duration);
		playerPlay();
	}

	//////TIMERS///////
	var updateTimer = setInterval("updateComponents();",500); 
}

document.onselectstart=new Function('return false');

function updateComponents(){
	setSlidersVisibility();
	updateTimePosition();
	setPlayerStatus();
	updateVolumeDisplay();
	if (!mediaPositionSlider.userActing()){
		updateTimeDisplay();
	}
}

function enableSliders(){
	document.getElementById('mediaPositionSliderHandleDiv').style.visibility = 'visible';
}

function disableSliders(){
	document.getElementById('mediaPositionSliderHandleDiv').style.visibility = 'hidden';
}

function setSlidersVisibility(){
	if (getMediaItemType() == 'clip' || getMediaItemType() == ''){
		enableSliders();
	}
	else {
		disableSliders();
	}
}

function setPlayerStatus(){
	document.getElementById('mediaPlayerStatus').innerHTML = getStatusString();

}

function updateTimePosition(){
	if (document.getElementById('mediaPlayer').controls.isAvailable('currentPosition')){
		if (!mediaPositionSlider.userActing()){
			mediaPositionSlider.setValue(Math.round(document.getElementById('mediaPlayer').controls.currentPosition), true, false, true, document.getElementById('mediaPlayer').currentMedia.Duration);
		}
	}
	else {
		mediaPositionSlider.setValue(0, true, false, true, 1);		
	}
	
}

function updateTimeDisplay(){
	if (userMayControl() && (getMediaItemType() == 'clip' || getMediaItemType() == '')){
		document.getElementById("mediaTime").innerHTML = getTimeDisplay();
	}
	else {
		document.getElementById("mediaTime").innerHTML = '';
	}
	
}
function updateTimeDisplayByUser(){
	if (userMayControl() && document.getElementById('mediaPlayer').controls.isAvailable('currentPosition')){
		document.getElementById("mediaTime").innerHTML = getTimeString(mediaPositionSlider.getScaledValue(document.getElementById('mediaPlayer').currentMedia.Duration))+" | "+getMediaDurationTimeString();
	}
	else {
		document.getElementById("mediaTime").innerHTML = '';
	}
	
}

function updateVolumeDisplay(){
	if (document.getElementById('mediaPlayer').settings.isAvailable('Volume') && document.getElementById('mediaPlayer').settings.isAvailable('Mute')){
		if(document.getElementById('mediaPlayer').settings.Mute){
			document.getElementById('mediaVolume').innerHTML = ml_label_muted;
		}
		else{
			document.getElementById('mediaVolume').innerHTML = document.getElementById('mediaPlayer').settings.Volume+'%';
		}
	}
}

function getTimeDisplay(){
	var strTimedisplay;
	var strTimedisplay = getMediaTimeString()+" | "+getMediaDurationTimeString();
	return strTimedisplay;
}

function getMediaDurationTimeString(){
	return getTimeString(document.getElementById('mediaPlayer').currentMedia.Duration);
}

function getMediaTimeString(){
	return getTimeString(document.getElementById('mediaPlayer').controls.currentPosition);
}

function playerPlay(){
	if (document.getElementById('mediaPlayer').controls.isAvailable('play') && userMayControl()){
		document.getElementById('mediaPlayer').controls.Play()
	}
}

function playerStop(){
	if (document.getElementById('mediaPlayer').controls.isAvailable('stop') && userMayControl()){
		document.getElementById('mediaPlayer').controls.Stop()
	}
}

function playerPause(){
	if (document.getElementById('mediaPlayer').controls.isAvailable('pause') && userMayControl()){
		document.getElementById('mediaPlayer').controls.Pause()
	}
}

function playerMute(){
	if (document.getElementById('mediaPlayer').settings.isAvailable('Mute')){
		if (document.getElementById('mediaPlayer').settings.Mute == true){
			document.getElementById('mediaPlayer').settings.Mute = false;
			document.getElementById('mediaPlayerMuteImageOff').style.display = 'none';
			document.getElementById('mediaPlayerMuteImageOn').style.display = 'inline';
		}
		else {
			document.getElementById('mediaPlayer').settings.Mute = true;
			document.getElementById('mediaPlayerMuteImageOff').style.display = 'inline';
			document.getElementById('mediaPlayerMuteImageOn').style.display = 'none';			
		}
	}
}
/*
function playerMute(){
	if (document.getElementById('mediaPlayer').settings.isAvailable('Mute')){
		document.getElementById('mediaPlayer').settings.Mute = true;
	}
}
*/

function playerUnmute(){
	if (document.getElementById('mediaPlayer').settings.isAvailable('Mute')){
		document.getElementById('mediaPlayer').settings.Mute = false;
	}
}

function playerVolumeUp(){
	if (document.getElementById('mediaPlayer').settings.isAvailable('Volume')){
		if (document.getElementById('mediaPlayer').settings.Volume < 100){
			document.getElementById('mediaPlayer').settings.Volume = document.getElementById('mediaPlayer').settings.Volume + 10;	
		}
	}
}

function playerVolumeDown(){
	if (document.getElementById('mediaPlayer').settings.isAvailable('Volume')){
		if (document.getElementById('mediaPlayer').settings.Volume > 10){
			document.getElementById('mediaPlayer').settings.Volume = document.getElementById('mediaPlayer').settings.Volume - 10;	
		}
	}
}


var ml_alert_fullscreen = "";
var fullscreen_alerted_once = false;
function playerFullscreen(){
	if (userMayControl() && document.getElementById('mediaPlayer').playState == 3){
		if (fullscreen_alerted_once == false) alert(ml_alert_fullscreen);
		fullscreen_alerted_once = true;
		document.getElementById('mediaPlayer').fullscreen=true;		
	}
}

function userMayControl(){
	if (getMediaItemType() == 'clip' || getMediaItemType() == 'MediaPlayer' || getMediaItemType() == ''){
		return true
	}
	else {
		return false	
	}
}

function getMediaItemType(){
	var splitArray = mediaPlayer.currentMedia.name.split('#');
	return splitArray[0];	
}

function getStatusString(){
	var statusString = '';
	<!--0 Undefined Windows Media Player is in an undefined state. -->
	if (document.getElementById('mediaPlayer').playState == 0) statusString = ml_label_pleasewait;
	
	<!--1 Stopped Playback of the current media item is stopped. --> 
	if (document.getElementById('mediaPlayer').playState == 1) statusString = ml_label_stopped;
	
	<!--2 Paused Playback of the current media item is paused. When a media item is paused, resuming playback begins from the same location. --> 
	if (document.getElementById('mediaPlayer').playState == 2) statusString = ml_label_pause;
	
	<!--3 Playing The current media item is playing. --> 
	if (document.getElementById('mediaPlayer').playState == 3) statusString = currentItemTitle;
	
	<!--4 ScanForward The current media item is fast forwarding. --> 
	if (document.getElementById('mediaPlayer').playState == 4) statusString = ml_label_forward;
	
	<!--5 ScanReverse The current media item is fast rewinding. --> 
	if (document.getElementById('mediaPlayer').playState == 5) statusString = ml_label_reverse;
	
	<!--6 Buffering The current media item is getting additional data from the server. --> 
	if (document.getElementById('mediaPlayer').playState == 6) statusString = "- "+ml_label_loading+": "+document.getElementById('mediaPlayer').network.bufferingProgress+"% ("+ml_label_buffering+")-";
	
	<!--7 Waiting Connection is established, but the server is not sending data. Waiting for session to begin. --> 
	if (document.getElementById('mediaPlayer').playState == 7) statusString = "- "+ml_label_loading+" -";
	
	<!--8 MediaEnded Media item has completed playback. -->  
	if (document.getElementById('mediaPlayer').playState == 8) statusString = "";				
	
	<!--9 Transitioning Preparing new media item. -->
	if (document.getElementById('mediaPlayer').playState == 9) statusString = "- "+ml_label_loading+" -";
	
	<!--10 Ready Ready to begin playing. --> 
	if (document.getElementById('mediaPlayer').playState == 10) statusString = "";
	
	<!--11 Reconnecting Reconnecting to stream. -->
	if (document.getElementById('mediaPlayer').playState == 11) statusString = "- "+ml_label_loading+" -";

	return statusString;
}

function loadVideo(video, forced, loadNewVideo){
	currentItem = video;
	if (userMayControl() || forced == true){
		getXML(setXML, video, true);
	}
}


function loadVideoFile(){
	if(setBitrate == "hi"){
		document.getElementById('mediaPlayer').url = "asx/"+loadedBitrateHi;
	}
	if(setBitrate == "med"){
		document.getElementById('mediaPlayer').url = "asx/"+loadedBitrateMed;
	}
	if(setBitrate == "low"){
		document.getElementById('mediaPlayer').url = "asx/"+loadedBitrateLow;
	}
}

function getQualityString(){
	var qualityString = ml_label_quailty +' ';
	var qualitySeperator = '<font class="bitrateSeperator"> | </font>';
	
	if (setBitrate == 'hi') qualityString = qualityString + '<font class="selectedBitrate">'+ml_label_quality_hi+'</font>';
	else qualityString = qualityString +  '<a class="selectBitrate" href="#" onClick="this.hideFocus=true;javascript:setQuality(\'hi\');return false;">'+ml_label_quality_hi+'</a>';
	
	qualityString = qualityString + qualitySeperator;


	if (setBitrate == 'med') qualityString = qualityString + '<font class="selectedBitrate">'+ml_label_quality_med+'</font>';
	else qualityString = qualityString + '<a class="selectBitrate" href= "#" onClick="this.hideFocus=true; javascript: setQuality(\'med\');return false;">'+ml_label_quality_med+'</a>';


	qualityString = qualityString + qualitySeperator;

	if (setBitrate == 'low') qualityString = qualityString + '<font class="selectedBitrate">'+ml_label_quality_low+'</font>';
	else qualityString = qualityString + '<a class="selectBitrate" href="#" onClick="this.hideFocus=true; javascript: setQuality(\'low\');return false;">'+ml_label_quality_low+'</a>';
	
	return qualityString;
}

function setQuality(quality){
	setBitrate = quality;
	setCookie("quality", setBitrate);
	loadVideoFile();
	document.getElementById('quality').innerHTML = getQualityString();	
}

function jumpTo(val)
{
	if (document.getElementById('mediaPlayer').controls.isAvailable('currentPosition')){
		document.getElementById('mediaPlayer').controls.currentPosition = val;
		document.getElementById('mediaPlayer').controls.Play();
	}
}

function moreInformation(){
	if (document.getElementById('moreInformationWrapper').style.visibility == 'visible')
		document.getElementById('moreInformationWrapper').style.visibility = 'hidden';
	else
		document.getElementById('moreInformationWrapper').style.visibility = 'visible';
}

