// Script for NiftyPlayer 1.7, by tvst from varal.org
// Released under the MIT License: http://www.opensource.org/licenses/mit-license.php

var FlashHelper =
{
	movieIsLoaded : function (theMovie) {
		if (typeof(theMovie) != "undefined") return theMovie.PercentLoaded() == 100;
		else return
		false;
  },

	getMovie : function (movieName) {
  	if (navigator.appName.indexOf ("Microsoft") !=-1) return window[movieName];
	  else return document[movieName];
	}
};

function niftyplayer(name) {
	this.obj = FlashHelper.getMovie(name);

	if (!FlashHelper.movieIsLoaded(this.obj)) return;

	this.play = function () {
		this.obj.TCallLabel('/','play');
	};

	this.stop = function () {
		this.obj.TCallLabel('/','stop');
	};

	this.pause = function () {
		this.obj.TCallLabel('/','pause');
	};

	this.playToggle = function () {
		this.obj.TCallLabel('/','playToggle');
	};

	this.reset = function () {
		this.obj.TCallLabel('/','reset');
	};

	this.load = function (url) {
		this.obj.SetVariable('currentSong', url);
		this.obj.TCallLabel('/','load');
	};

	this.loadAndPlay = function (url) {
		this.load(url);
		this.play();
	};

	this.getState = function () {
		var ps = this.obj.GetVariable('playingState');
		var ls = this.obj.GetVariable('loadingState');

		// returns
		//   'empty' if no file is loaded
		//   'loading' if file is loading
		//   'playing' if user has pressed play AND file has loaded
		//   'stopped' if not empty and file is stopped
		//   'paused' if file is paused
		//   'finished' if file has finished playing
		//   'error' if an error occurred
		if (ps == 'playing')
			if (ls == 'loaded') return ps;
			else return ls;

		if (ps == 'stopped')
			if (ls == 'empty') return ls;
			if (ls == 'error') return ls;
			else return ps;

		return ps;

	};

	this.getPlayingState = function () {
		// returns 'playing', 'paused', 'stopped' or 'finished'
		return this.obj.GetVariable('playingState');
	};

	this.getLoadingState = function () {
		// returns 'empty', 'loading', 'loaded' or 'error'
		return this.obj.GetVariable('loadingState');
	};

	this.registerEvent = function (eventName, action) {
		// eventName is a string with one of the following values: onPlay, onStop, onPause, onError, onSongOver, onBufferingComplete, onBufferingStarted
		// action is a string with the javascript code to run.
		//
		// example: niftyplayer('niftyPlayer1').registerEvent('onPlay', 'alert("playing!")');

		this.obj.SetVariable(eventName, action);
	};

	return this;
}

var a = null;
function initAudio() {
	if("Audio" in window) {
		a = new Audio();
	}
}

function PlayInterview(file, img, folder, playin) {
	folder = (folder ? folder : "clips/");
	playin = (playin ? playin : "audio");

	var playtype = "Can\'t Play";
	if(a != null && playin == "audio"){
		if(!!(a.canPlayType && a.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/, ""))) {
			a = new Audio();
			a.src = folder + file + ".ogg";
			playtype = "OGG";
		}
		else if(!!(a.canPlayType && a.canPlayType("audio/mpeg;").replace(/no/, ""))) {
			a.src = folder + file + ".mp3";
			playtype = "MP3";
		}
		else if(!!(a.canPlayType && a.canPlayType('audio/mp4; codecs="mp4a.40.2"').replace(/no/, ""))) {
			a.src = folder + file + ".m4a";
			playtype = "M4A";
		}
		else {
			a.src = folder + file + ".mp3";
			playtype = "MP3";
		}

		a.play();
	}
	else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf(" Flash") != -1 }) && playin == "flash") {
		niftyplayer("niftyPlayer1").loadAndPlay(folder + file + ".mp3");
		playtype = "Mozilla Flash";
	}
	else {
		var isInstalled = false;
		var version = null;
		if (window.ActiveXObject) {
			var control = null;
			try {
				control = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			} catch (e) {
				return;
			}
			if (control) {
				niftyplayer("niftyPlayer1").loadAndPlay(folder + file + ".mp3");
				playtype = "IE Flash";
			}
		}
	}
	//$("PlayType").innerHTML = playtype;
	if (img != false) {
		$(img).siblings()[0].show();
	}
}

function StopInterview(img, playin) {
	playin = (playin ? playin : "audio");
	if(a != null && playin == "audio"){
		a.pause();
	}
	else {
		niftyplayer("niftyPlayer1").stop();
	}
	if (img != false) {
		$(img).siblings()[0].hide();
	}
}
