// Flashmp3alizer 0.4 by tvst from varal.org
// Released under the MIT License: http://www.opensource.org/licenses/mit-license.php

var FMr = 
{
	all : new Array(),
	
	playlist : new Array(),
	current : 0,

	playerId : false,
	playlistId : false,	
	
	isPopup : false,
	popupIsLoaded : false,
	popupWindow : false,

	run : function() 
	{
		
		var c = window.FMrConf;
		var id = (c && c.playerId)? c.playerId : "FMrPlayer";
		var plid = (c && c.playlistId)? c.playlistId : "FMrPlaylist";
		
		FMr.playerId = id;
		FMr.playlistId = plid;
		//var a = document.getElementById(FMr.playlistId).getElementsByTagName("a");
		var a = document.getElementsByTagName("a");
		var all = FMr.all;
		
		FMr.playlist = new Array();
		
		var len = a.length;
		
		// go thru and make each .mp3 link a js onclick link
		for (i = 0; i < len; i++)
		{
			//alert( i);
			if (a[i].href.indexOf(".mp3") == a[i].href.length - 4) 
			{
				all[all.length] = a[i].href;
				FMr.enqueue(a[i]);
			}
		}
	},

	enqueue : function (link)
	{		
		
		var p = FMr.playlist;	
		var n = niftyplayer(FMr.playerId)
		var s = n.getPlayingState();
		//var l = document.createElement('a');
		//var li = document.createElement('li');
		var i = p.length;

		n.registerEvent("onSongOver", "window.FMr.onSongOver()");
		n.registerEvent("onPlay", "window.FMr.onPlay()");
		
		//document.getElementById(FMr.playlistId).appendChild(li);
		//li.appendChild(l);
		
		p[i] = link;
		p[i].playlistIndex = i;
		
		
		
		p[i].onclick = function ()
		{	
			FMr.skipTo(this.playlistIndex);
			return false;
			
		};
		
		//if (s == "finished" || s == "stopped") FMr.skipTo(i);
	},
	
	next : function ()
	{
		if (FMr.popupIsLoaded && !FMr.popupWindow.closed) 
			if (FMr.isPopup) FMr.skipTo(FMr.current+1);
			else FMr.skipTo(FMr.current+1);
	},
	
	prev : function ()
	{
		if (FMr.popupIsLoaded && !FMr.popupWindow.closed) 
			if (FMr.isPopup) FMr.skipTo(FMr.current-1);
			else FMr.skipTo(FMr.current-1);
	},
	
	playToggle : function ()
	{
		var n = niftyplayer(FMr.playerId);
		n.playToggle() ;
		
		var s = n.getPlayingState();
		var c = FMr.current;		
		var p = FMr.playlist;
		if( s == "playing" ) {
			p[c].childNodes[0].src = '/sites/all/themes/zen/sfcv/images/pause.gif'	
		} else {
			p[c].childNodes[0].src = '/sites/all/themes/zen/sfcv/images/play.gif'	
		}
	},
	
	skipTo : function (i)
	{
		var c = FMr.current;		
		var p = FMr.playlist;
		var n = niftyplayer(FMr.playerId);
		
		if (i >= p.length || i < 0) return;
		
		// set current node state
		p[c].childNodes[0].src = '/sites/all/themes/zen/sfcv/images/play.gif'
		p[c].onclick = function ()
		{	
			FMr.skipTo(this.playlistIndex);
			return false;
		};
		
		// set selected node state
		//p[i].parentNode.className = 'playing';
		p[i].childNodes[0].src = '/sites/all/themes/zen/sfcv/images/pause.gif'
		p[i].onclick = function ()
		{	
			FMr.playToggle();
			return false;
		};
		
		
		FMr.current = i;
		n.loadAndPlay(p[i]);
	},
	
	openPopup : function ()
	{
		var c = window.FMrConf;
		var url = (c && c.playlistFile)? c.playlistFile : "playlist.html";
		var w = (c && c.popupWidth)? c.popupWidth : "250";
		var h = (c && c.popupHeight)? c.popupHeight : "400";
		var opt = "width="+w+", height="+h+", locationbar=no, directories=no, menubar=no, toobar=no, resizable";
		
		//FMr.popupWindow = window.open("", "FMr_playWin", opt);
		
		if (FMr && FMr.playlist.length > 0)
		{
			FMr.enqueue(FMr.playlist[FMr.playlist.length-1]);
			return;
		}

		
		FMr.popupWindow = window.open(url, "FMr_playWin", opt);
	},
	
	syncPopup : function()
	{
		var f = FMr;
		f.playlist = FMr.playlist;
		f.current = FMr.current;
		f.playerId = FMr.playerId;
		f.playlistId = FMr.playlistId;		
	},
	
	syncOpener : function()
	{
		var f = window.opener.FMr;
		f.playlist = FMr.playlist;
		f.current = FMr.current;	
	},
	
	popupOnLoad : function ()
	{
		FMr.popupIsLoaded = true;
		FMr.syncPopup();
		
		FMr.enqueue(FMr.playlist[FMr.playlist.length-1]);
	},
	
	errorMsg : function (str)
	{
		alert("FlashMp3alizer Error: " + str);
	},
	
	onPlay : function () 
	{
		
	},
	
	onSongOver : function () 
	{
		var c = FMr.current;	
		var p = FMr.playlist;
		var n = niftyplayer(FMr.playerId);
		
		// set current node state
		p[c].childNodes[0].src = '/sites/all/themes/zen/sfcv/images/play.gif'
		p[c].onclick = function ()
		{	
			FMr.skipTo(this.playlistIndex);
			return false;
		};
	}
	
};


// "onparse" setup code - should go before any window.onloads!
if (document.getElementsByTagName && !window.ParseCtl)
{
	window.appendHandler = function(eventStr, f) {var f0 = eval("window."+eventStr); eval("window."+eventStr+" = function () {f0(); f();}");};
	window.onparse = function() {};
	
	window.ParseCtl =
	{
		complete : false, timer : null,
		
		callOnParse : function () 
		{
			if (this.complete || !document.body || !document.getElementsByTagName('body')) return;
			clearInterval(this.timer);
			this.complete = true; 
			window.onparse();
		}
	};

	if 	(navigator.appName.indexOf('Netscape') != -1 
		&& eval(navigator.appVersion.substring(0,navigator.appVersion.indexOf('('))) >= 5 
		&& navigator.userAgent.indexOf('KHTML') == -1) 
		document.addEventListener("DOMContentLoaded", window.ParseCtl.callOnParse, null);

	else ParseCtl.timer = setInterval('ParseCtl.callOnParse()', 1);
	window.onload = ParseCtl.callOnParse;
};

// run
if (document.getElementsByTagName) 
{

		FMr.isPopup = true;
		FMr.popupIsLoaded = true;
		FMr.popupWindow = window;
		
		// use timeout because of onload bugs! niftyplayer isn't recognized otherwise!
		window.onload = function () {window.setTimeout("FMr.run()", 500);};

}

