/*
 * 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: 2009-09-03 09:44:40 +0000 (Thu, 03 Sep 2009)
 * Revision: 2392 
 */
(function(a){$f.addPlugin("playlist",function(d,p){var n=this;var b={playingClass:"playing",pausedClass:"paused",progressClass:"progress",template:'<a href="${url}">${title}</a>',loop:false,playOnClick:true,manual:false};a.extend(b,p);d=a(d);var j=n.getPlaylist().length<=1||b.manual;var k=null;function e(r){var q=m;a.each(r,function(s,t){if(!a.isFunction(t)){q=q.replace("${"+s+"}",t).replace("$%7B"+s+"%7D",t)}});return q}function i(){k=o().unbind("click.playlist").bind("click.playlist",function(){return h(a(this),k.index(this))})}function c(){d.empty();a.each(n.getPlaylist(),function(){d.append(e(this))});i()}function h(q,r){if(q.hasClass(b.playingClass)||q.hasClass(b.pausedClass)){n.toggle()}else{q.addClass(b.progressClass);n.play(r)}return false}function l(){if(j){k=o()}k.removeClass(b.playingClass);k.removeClass(b.pausedClass);k.removeClass(b.progressClass)}function f(q){return(j)?k.filter("[href="+q.originalUrl+"]"):k.eq(q.index)}function o(){var q=d.find("a");return q.length?q:d.children()}if(!j){var m=d.is(":empty")?b.template:d.html();c()}else{k=o();if(a.isFunction(k.live)){a(d.selector+"> *").live("click",function(){var q=a(this);return h(q,q.attr("href"))})}else{k.click(function(){var q=a(this);return h(q,q.attr("href"))})}var g=n.getClip(0);if(!g.url&&b.playOnClick){g.update({url:k.eq(0).attr("href")})}}n.onBegin(function(q){l();f(q).addClass(b.playingClass)});n.onPause(function(q){f(q).removeClass(b.playingClass).addClass(b.pausedClass)});n.onResume(function(q){f(q).removeClass(b.pausedClass).addClass(b.playingClass)});if(!b.loop&&!j){n.onBeforeFinish(function(q){if(!q.isInStream&&q.index<k.length-1){return false}})}if(j&&b.loop){n.onBeforeFinish(function(r){var q=f(r);if(q.next().length){q.next().click()}else{k.eq(0).click()}return false})}n.onUnload(function(){l()});if(!j){n.onPlaylistReplace(function(){c()})}n.onClipAdd(function(r,q){k.eq(q).before(e(r));i()});return n})})(jQuery);
