/**
 * flowplayer.playlist.js 3.0.5. Flowplayer JavaScript plugin.
 * 
 * This file is part of Flowplayer, http://flowplayer.org
 *
 * Author: Tero Piirainen, <support@flowplayer.org>
 * Copyright (c) 2008 Flowplayer Ltd
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * SEE: http://www.opensource.org/licenses
 * 
 * Version: 3.0.5 - Tue Feb 24 2009 11:42:22 GMT-0000 (GMT+00:00)
 */
(function($)
{
	$f.addPlugin("playlist",function(wrap,options)
	
	{var self=this;var opts={playingClass:'playing',pausedClass:'paused',progressClass:'progress',template:'<a href="${url}">${title}</a>',loop:false,playOnClick:true,manual:false};
	
	$.extend(opts,options);
	wrap=$(wrap);
	
	var manual=self.getPlaylist().length<=1||opts.manual;
	var els=null;
	if(!manual)
	{
		var template=wrap.is(":empty")?opts.template:wrap.html();
		wrap.empty();
		$.each(self.getPlaylist(),function()
		{
			if(this.duration===0)
			{
				//return false;
			}
			else{

			
			var el=template;
			var self=this;
			$.each(this,function(key,val)
			{
				if(!$.isFunction(val))
				{
					el=el.replace("$\{"+key+"\}",val).replace("$%7B"+key+"%7D",val);
				}
			}
			

		);
			}
		wrap.append(el);
	}
);

els=wrap.children().click(function()
{
	return play($(this),els.index(this));
});

}
else
{
	els=wrap.children();
	if(els.eq(0).hasClass("__scrollable"))
	{
		els=els.children();
	}
	if($.isFunction(els.live))
	{
		$(wrap.selector+"> *").live("click",function()
		{
			var el=$(this);
			return play(el,el.attr("href"));
		}
	);
}
else
{
	els.click(function()
	{
		var el=$(this);
		return play(el,el.attr("href"));
	}
);
}

var clip=self.getClip(0);
if(!clip.url&&opts.playOnClick)
{
	clip.update({url:els.eq(0).attr("href")});
}
}
function play(el,clip)
{
	if(el.hasClass(opts.playingClass)||el.hasClass(opts.pausedClass))
	{
		self.toggle();
	}
	else
	{
		el.addClass(opts.progressClass);
		self.play(clip);
	}
	return false;
}

function clearCSS(){if(manual)
{
	els=wrap.children();
}
els.removeClass(opts.playingClass);
els.removeClass(opts.pausedClass);
els.removeClass(opts.progressClass);
}

function getEl(clip)
{
	return(manual)?els.filter("[href="+clip.url+"]"):els.eq(clip.index);
}
self.onBegin(function(clip)
{
	clearCSS();
	getEl(clip).addClass(opts.playingClass);
}
);

self.onPause(function(clip)
{
	getEl(clip).removeClass(opts.playingClass).addClass(opts.pausedClass);
});
self.onResume(function(clip)
{
	getEl(clip).removeClass(opts.pausedClass).addClass(opts.playingClass);
	}
);
if(!opts.loop&&!manual)
{
	self.onBeforeFinish(function(clip)
	{
		if(clip.index<els.length-1)
		{
			return false;
		}
	}
);
}
if(manual&&opts.loop)
{
	self.onBeforeFinish(function(clip)
	{
		var el=getEl(clip);
		if(el.next().length)
		{
			el.next().click();
		}
		else
		{
			els.eq(0).click();
		}
		return false;
	}
);
}
self.onUnload(function()
{
	clearCSS();
}
);
return self;

});})(jQuery);
