// 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 : 1,

	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.getElementsByTagName("a");
		var all = FMr.all;

		for (i = 0; i < a.length; i++)
		{
			if (a[i].href.indexOf(".mp3") == a[i].href.length - 4) 
			{
				all[all.length] = a[i].href;
				
				a[i].onclick = function () 
				{
					
					// open popup if needed
					if (!FMr.popupIsLoaded || FMr.popupWindow.closed) {
						FMr.playlist = new Array();
						FMr.playlist[0] = this;
						FMr.openPopup();
						return false;
					}
					
					FMr.popupWindow.FMr.enqueue(this);
					FMr.popupWindow.focus();
					return false;
				};
				
			}
		}
		
	},

	enqueue : function (link)
	{		
		var p = FMr.playlist;	
		var i = p.length;
		var add = 1;
		var g = 0;
		
		if(i>1){
			for (x = 0; x < i; x++ ) {
				//p[x].className = '';
				if(link.href==p[x].href){add=0;g=x;}
			}
		}
		
		var n 		= niftyplayer(FMr.playerId);
		var s 		= n.getPlayingState();
		var l 		= document.createElement('a');
		var play 	= document.createElement('a');
		var del 	= document.createElement('a');
		var li 		= document.createElement('li');
		
		if(add==0){
			
			n.loadAndPlay(p[g]);
			p[g].className = 'playing';
			FMr.current=g;
			
		}else{

			n.registerEvent("onSongOver", "window.FMr.next()");
			
			document.getElementById(FMr.playlistId).appendChild(li);
			li.appendChild(l);
			li.appendChild(play);
			li.appendChild(del);

			p[i] = l;
			
			l.innerHTML = "<div class='track'>"+link.title+"</div>"; // for ie, since clonenode and appendchild aren't working wtf
			l.href = link.href;
			l.playlistIndex = i;
			l.onclick = function ()
			{
				//FMr.skipTo(l.playlistIndex);
				for(var gg = FMr.playlist.length; gg >= 1; gg--){  
					if(FMr.playlist[gg] == l.href){    
						for (x = 0; x <= FMr.playlist.length; x++ ) {
							if(FMr.playlist[x]!=undefined){
								FMr.playlist[x].className = '';
							}
						}          
						n.loadAndPlay(FMr.playlist[gg]);   
						FMr.playlist[gg].className = 'playing';    
						FMr.current=gg;         
					}
				}
				return false;
			};
			
			play.className = "apri_mp3";
			play.innerHTML = "<img src='/img/player_cart.gif'>";
			play.onclick = function ()
			{
				self.opener.location="/prodotto.asp?idp="+link.id
				return false;
			};
			
			del.className = "del_mp3";
			del.innerHTML = "x";
			del.title = link.href;
			del.onclick = function ()
			{	
				document.getElementById(FMr.playlistId).removeChild(li);
				for(var gg = FMr.playlist.length; gg >= 1; gg--){  
					if(FMr.playlist[gg] == del.title){              
						FMr.playlist.splice(gg,1);                 
					}
				}
				if(FMr.playlist.length==1){window.close();}
			};
			
			var c = FMr.current;
			if(p[c]!=undefined){p[c].className = '';}
			n.loadAndPlay(p[i]);
			p[i].className = 'playing';
			FMr.current=i;
			
			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.popupWindow.FMr.skipTo(FMr.current+1);
	},
	
	prev : function ()
	{
		
		if (FMr.popupIsLoaded && !FMr.popupWindow.closed) {
			if(FMr.current-1>0){
				if (FMr.isPopup) FMr.skipTo(FMr.current-1);
				else FMr.popupWindow.FMr.skipTo(FMr.current-1);
			}
		}
	},
	
	skipTo : function (i)
	{
		var c = FMr.current;		
		var p = FMr.playlist;
		var n = niftyplayer(FMr.playerId);

		if (i >= p.length || i < 0) return;

		if(p[c]!=undefined){p[c].className = '';}
		
		if (window.opener && window.opener.FMr) FMr.syncOpener();		
	
		p[i].className = 'playing';
		FMr.current = i;
		n.loadAndPlay(p[i]);
	},
	
	openPopup : function ()
	{

		var screen_width = parseInt(screen.width);
		var left_position = screen_width-290;
		var c = window.FMrConf;
		var url = (c && c.playlistFile)? c.playlistFile : "playlist.html";
		var w = "250";
		var h = "460";
		var opt = "width="+w+", height="+h+", locationbar=no, directories=no, menubar=no, toolbar=no, resizable=no, top=100,left="+left_position;
		FMr.popupWindow = window.open("", "FMr_playWin", opt);
		
		
		
		if (FMr.popupWindow.FMr && FMr.popupWindow.FMr.playlist.length > 0)
		{
			FMr.popupWindow.FMr.enqueue(FMr.playlist[FMr.playlist.length-1]);
			return;
		}

		
		FMr.popupWindow = window.open(url, "FMr_playWin", opt);
	},
	
	syncPopup : function()
	{
		var f = FMr.popupWindow.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.popupWindow.FMr.enqueue(FMr.playlist[FMr.playlist.length-1]);
	},
	
	errorMsg : function (str)
	{
		alert("FlashMp3alizer Error: " + str);
	}
	
};


// "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) 
{
	if (!window.opener || !window.opener.FMr)
	{
		// optionally use window.onload for compatibility
		var c = window.FMrConf;
		if (c && c.useOnLoad) window.onload = FMr.run;
		else window.appendHandler("onparse", FMr.run);
	}
	else // if this is the popup window
	{
		FMr.isPopup = true;
		FMr.popupIsLoaded = true;
		FMr.popupWindow = window;
		
		// use timeout because of onload bugs! niftyplayer isn't recognized otherwise!
		window.onload = function () {window.opener.setTimeout("FMr.popupOnLoad()", 500);};
	}
}

