/*
 * flowplayer.playlist 3.0.8. Flowplayer JavaScript plugin.
 * 
 * This file is part of Flowplayer, http://flowplayer.org
 *
 * Author: Tero Piirainen, <info@flowplayer.org>
 * Copyright (c) 2008-2010 Flowplayer Ltd
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * SEE: http://www.opensource.org/licenses
 * 
 * Date: 2010-05-04 05:33:23 +0000 (Tue, 04 May 2010)
 * Revision: 3405 
 */
(function(a){
		  $f.addPlugin("playlist",function(d,q){
			var o=this;
			var b={playingClass:"playing",pausedClass:"paused",progressClass:"progress",template:'<a href="${url}">${title}</a>',loop:false,playOnClick:true,manual:false};
			a.extend(b,q);
			d=a(d);
			var j=o.getPlaylist().length<=1||b.manual;var k=null;
			function e(s){
				var r=n;
				a.each(s,function(t,u){
					if(!a.isFunction(u)){
						r=r.replace("${"+t+"}",u).replace("$%7B"+t+"%7D",u)
					}
				}
			);
			return r
		}
		function i(){k=p().unbind("click.playlist").bind("click.playlist",function(){
			return h(a(this),k.index(this))
		}
	)
}

function c(){
	d.empty();
	a.each(o.getPlaylist(),function(){d.append(e(this))
}
);
i()
}

function h(r,s){
	if(r.hasClass(b.playingClass)||r.hasClass(b.pausedClass)){
		o.toggle()
	}else{
		r.addClass(b.progressClass);
		o.play(s)
	}return false
}

function m(){
	if(j){
		k=p()}k.removeClass(b.playingClass);
		k.removeClass(b.pausedClass);
		k.removeClass(b.progressClass)
	}
	function f(r){
		return(j)?k.filter("[href="+r.originalUrl+"]"):k.eq(r.index)
	}
	function p(){
		var r=d.find("a");
		return r.length?r:d.children()
	}
	if(!j){
		var n=d.is(":empty")?b.template:d.html();
		c()
	}else{
		k=p();
		if(a.isFunction(k.live)){
			var l=a(d.selector+" a");
			if(!l.length){
				l=a(d.selector+" > *")
			}
			l.live("click",function(){
				var r=a(this);
				return h(r,r.attr("href"))
			})
		}else{
			k.click(function(){
				var r=a(this);
				return h(r,r.attr("href"))
			})
		}
		var g=o.getClip(0);
		if(!g.url&&b.playOnClick){g.update({
			url:k.eq(0).attr("href")
		})}
	}
	o.onBegin(function(r){
		m();
		f(r).addClass(b.playingClass)});
	o.onPause(function(r){
		f(r).removeClass(b.playingClass).addClass(b.pausedClass)});
	o.onResume(function(r){f(r).removeClass(b.pausedClass).addClass(b.playingClass)});
	if(!b.loop&&!j){
		o.onBeforeFinish(function(r){
			if(!r.isInStream&&r.index<k.length-1){
				return false}})}if(j&&b.loop){o.onBeforeFinish(function(s){var r=f(s);
			if(r.next().length){
				r.next().click()
			}else{
				k.eq(0).click()
			}return false
		})
	}
	o.onUnload(function(){
		m()});
	if(!j){
		o.onPlaylistReplace(function(){
			c()})
		}
		o.onClipAdd(function(s,r){
			k.eq(r).before(e(s));
			i()});
		return o
	})
})(jQuery);
