(function(b){$f.addPlugin("playlist",function(D,a){var s=this;var F={playingClass:"playing",pausedClass:"paused",progressClass:"progress",template:'<a href="${url}">${title}</a>',loop:false,playOnClick:true,manual:false};b.extend(F,a);D=b(D);var x=s.getPlaylist().length<=1||F.manual;var w=null;function C(c){var d=t;b.each(c,function(f,e){if(!b.isFunction(e)){d=d.replace("${"+f+"}",e).replace("$%7B"+f+"%7D",e)}});return d}function y(){w=r().unbind("click.playlist").bind("click.playlist",function(){return z(b(this),w.index(this))})}function E(){D.empty();b.each(s.getPlaylist(),function(){D.append(C(this))});y()}function z(d,c){if(d.hasClass(F.playingClass)||d.hasClass(F.pausedClass)){s.toggle()}else{d.addClass(F.progressClass);s.play(c)}return false}function u(){if(x){w=r()}w.removeClass(F.playingClass);w.removeClass(F.pausedClass);w.removeClass(F.progressClass)}function B(c){return(x)?w.filter("[href="+c.originalUrl+"]"):w.eq(c.index)}function r(){var c=D.find("a");return c.length?c:D.children()}if(!x){var t=D.is(":empty")?F.template:D.html();E()}else{w=r();if(b.isFunction(w.live)){var v=b(D.selector+" a");if(!v.length){v=b(D.selector+" > *")}v.live("click",function(){var c=b(this);return z(c,c.attr("href"))})}else{w.click(function(){var c=b(this);return z(c,c.attr("href"))})}var A=s.getClip(0);if(!A.url&&F.playOnClick){A.update({url:w.eq(0).attr("href")})}}s.onBegin(function(c){u();B(c).addClass(F.playingClass)});s.onPause(function(c){B(c).removeClass(F.playingClass).addClass(F.pausedClass)});s.onResume(function(c){B(c).removeClass(F.pausedClass).addClass(F.playingClass)});if(!F.loop&&!x){s.onBeforeFinish(function(c){if(!c.isInStream&&c.index<w.length-1){return false}})}if(x&&F.loop){s.onBeforeFinish(function(c){var d=B(c);if(d.next().length){d.next().click()}else{w.eq(0).click()}return false})}s.onUnload(function(){u()});if(!x){s.onPlaylistReplace(function(){E()})}s.onClipAdd(function(c,d){w.eq(d).before(C(c));y()});return s})})(jQuery);
