var controlsCreated;
var btnPlayPause;
var btnStop;
var btnSound;
var volumeList;
var buttonsList;
var btnCaptions;

var playing;
var sound;
var captions;

function hasClass(el, cl) {
	var arrcl = el.className.split(' ');
	var i;
	for (i=0;i < arrcl.length;i++) {
		if (arrcl[i]===cl) {return true;}
	}
	return false;
}

function addClass(el, cl) {
	if (!hasClass(el, cl)) {
		el.className = [el.className,cl].join(' ');
	}
}

function removeClass(el, cl) {
	var arrcl, i;
	arrcl = el.className.split(' ');
	for (i=0;i < arrcl.length;i++) {
		if (arrcl[i]===cl) { arrcl.splice(i,1); }
	}
	el.className = arrcl.join(' ');
}

var flashMovie;

function getPlayer() {
	if (!flashMovie) {
		flashMovie = document.all ? window["flvplayer"] : document["flvplayer"];
	}
	return flashMovie;
}

function addFlvplayerControls(initialplaying,muted,initialcaptions) {
	if (controlsCreated != true) {
		if (initialplaying == true) {
			playing = true;
			var playpauseinitialclass = "playing";
			var playpauseinitialtext = "pause";
		} else {
			playing = false;
			var playpauseinitialclass = "paused";
			var playpauseinitialtext = "play";
		}
		if (muted == false) {
			sound = true;
			var soundinitialclass = "sound-on";
			var soundinitialtext = "turn sound off";
			var listsoundinitialclass = "list-sound-on"
		} else {
			sound = false;
			var soundinitialclass = "sound-off";
			var soundinitialtext = "turn sound on";
			var listsoundinitialclass = "list-sound-off"
		}
		if (initialcaptions !== "doesnotexist") {
			var captionsexist = true;
		}
		if (initialcaptions == true) {
			captions = true;
			var captionsinitialclass = "captions-on";
			var captionsinitialtext = "turn captions off";
		} else {
			captions = false;
			var captionsinitialclass = "captions-off";
			var captionsinitialtext = "turn captions on";
		}
		var flvWrapper = document.getElementById("flvplayer-wrapper");
		var flvPlayer = document.getElementById("flvplayer");
		var playerControls = document.createElement("div");
		playerControls.setAttribute("id", "flvplayer-controls");
		var playerControlsHTML = "";
		playerControlsHTML += '<button id="flv-playpause" class="' + playpauseinitialclass + '"><span>' + playpauseinitialtext + '</span></button>';
		playerControlsHTML += '<button id="flv-stop"><span>stop</span></button>';
		playerControlsHTML += '<button id="flv-sound" class="' + soundinitialclass + '"><span>' + soundinitialtext + '</span></button>';
		playerControlsHTML += '<fieldset class="' + listsoundinitialclass + '">';
		playerControlsHTML += '<legend><span>Volume</span></legend>';
		playerControlsHTML += '<ul id="flv-volume">';
		playerControlsHTML += '<li><input type="radio" name="volume" id="vol125" value="12.5"/><label for="vol125"><span>12.5%</span></label></li>';
		playerControlsHTML += '<li><input type="radio" name="volume" id="vol250" value="25"/><label for="vol250"><span>25%</span></label></li>';
		playerControlsHTML += '<li><input type="radio" name="volume" id="vol375" value="37.5"/><label for="vol375"><span>37.5%</span></label></li>';
		playerControlsHTML += '<li><input type="radio" name="volume" id="vol500" value="50"/><label for="vol500"><span>50%</span></label></li>';
		playerControlsHTML += '<li><input type="radio" name="volume" id="vol625" value="62.5"/><label for="vol625"><span>62.5%</span></label></li>';
		playerControlsHTML += '<li><input type="radio" name="volume" id="vol750" value="75"/><label for="vol750"><span>75%</span></label></li>';
		playerControlsHTML += '<li><input type="radio" name="volume" id="vol875" value="87.5"/><label for="vol875"><span>87.5%</span></label></li>';
		playerControlsHTML += '<li><input type="radio" name="volume" id="vol1000" value="100" checked="checked"/><label for="vol1000"><span>100%</span></label></li>';
		playerControlsHTML += '</ul>';
		playerControlsHTML += '</fieldset>';
		if (captionsexist == true) {
			playerControlsHTML += '<button id="flv-captions" class="' + captionsinitialclass + '"><span>' + captionsinitialtext + '</span></button>';
		}
		playerControls.innerHTML = playerControlsHTML;
		flvWrapper.appendChild(playerControls);
		
		btnPlayPause = document.getElementById("flv-playpause");
		btnStop = document.getElementById("flv-stop");
		btnSound = document.getElementById("flv-sound");
		btnCaptions = document.getElementById("flv-captions");
		
		btnPlayPause.onclick = flvplayerPlayPause;
		btnStop.onclick = flvplayerStop;
		btnSound.onclick = flvplayerSound;
		if (captionsexist == true) {
			btnCaptions.onclick = flvplayerCaptions;
		}
		
		btnPlayPause.onmouseout = function(){
			this.blur();
		}
		btnStop.onmouseout = function(){
			this.blur();
		}
		btnSound.onmouseout = function(){
			this.blur();
		}
		if (captionsexist == true) {
			btnCaptions.onmouseout = function(){
				this.blur();
			}
		}
		
		volumeList = document.getElementById("flv-volume");
		var volumeSettings = volumeList.getElementsByTagName("input");
		var i;
		for (i = 0; i < volumeSettings.length; i++) {
			volumeSettings[i].onclick = function(){
				flvplayerSetVol(this.value);
			}
			volumeSettings[i].nextSibling.onmouseover = function(){
				addClass(this, "hover");
			}
			volumeSettings[i].nextSibling.onmouseout = function(){
				removeClass(this, "hover");
			}
			volumeSettings[i].onfocus = function(){
				addClass(this.nextSibling, "focus");
			}
			volumeSettings[i].onblur = function(){
				removeClass(this.nextSibling, "focus");
			}
		}
		
		var buttons = playerControls.getElementsByTagName("button");
		var j;
		for (j = 0; j < buttons.length; j++) {
			buttons[j].onmouseover = function(){
				addClass(this.firstChild, "hover");
			}
			buttons[j].onmouseout = function(){
				removeClass(this.firstChild, "hover");
				removeClass(this.firstChild, "focus");
			}
			buttons[j].onfocus = function(){
				addClass(this.firstChild, "focus");
			}
			buttons[j].onblur = function(){
				removeClass(this.firstChild, "focus");
			}
		}
		controlsCreated = true;
	}
}

function flvplayerPlayPause() {
	getPlayer().playPauseControl();
}

function changePlayPauseState() {
	if(playing == false) {
		removeClass(btnPlayPause, "paused");
		addClass(btnPlayPause, "playing");
		btnPlayPause.firstChild.innerHTML = "pause";
		playing = true;
	} else {
		removeClass(btnPlayPause, "playing");
		addClass(btnPlayPause, "paused");
		btnPlayPause.firstChild.innerHTML = "play";
		playing = false;
	}
}

function flvplayerStop() {
	getPlayer().stopControl();
	removeClass(btnPlayPause, "playing");
	addClass(btnPlayPause, "paused");
	btnPlayPause.firstChild.innerHTML = "play";
	playing = false;
}

function flvplayerSound(){
	getPlayer().soundControl();
}
	
function changeSoundState(){
	if(sound == true) {
		removeClass(btnSound, "sound-on")
		addClass(btnSound, "sound-off");
		btnSound.firstChild.innerHTML = "turn sound on";
		btnSound.nextSibling.className = "list-sound-off";
		sound = false;
	}
	else {
		removeClass(btnSound, "sound-off")
		addClass(btnSound, "sound-on");
		btnSound.firstChild.innerHTML = "turn sound off";
		btnSound.nextSibling.className = "list-sound-on";
		sound = true;
	}
}

function flvplayerSetVol(vol) {
	getPlayer().volumeControl(vol);
	volumeList.className = "vol" + (vol * 10);
}

function flvplayerCaptions(){
	getPlayer().captionsControl();
}
	
function changeCaptionsState() {
	if(captions === true) {
		removeClass(btnCaptions, "captions-on");
		addClass(btnCaptions, "captions-off");
		btnCaptions.firstChild.innerHTML = "turn captions on";
		captions = false;
	}
	else {
		removeClass(btnCaptions, "captions-off");
		addClass(btnCaptions, "captions-on");
		btnCaptions.firstChild.innerHTML = "turn captions off";
		captions = true;
	}
}

swfobject.embedSWF(flvplayerpath, "flvplayer-content", "350", "221", "8.0.0", false, flashvars, params, attributes);

