
/**
 * flow.playlist 0.10. Flowplayer playlist script
 * 
 * http://flowplayer.org/tools/flow-playlist.html
 *
 * Copyright (c) 2008 Tero Piirainen (tero@flowplayer.org)
 *
 * Released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * >> Basically you can do anything you want but leave this header as is <<
 *
 * Version: 0.10 - 05/19/2008
 */ 

var flowPlaylistVideoFile = "";

(function($) {		
	
	// plugin initialization
	$.fn.extend({
		playlist: function(params, config, opts) { 			
			return this.each(function() {
				new playlist($(this), params, config, opts);
			});
		}		
	});		
			
	function playlist(root, params, config, playlistOpts) {

		var player = null;

		var opts = {
			playingClass: 'playing',
			pausedClass: 'paused',
			player: '#player',
			loop:false
		}
		
		opts = $.extend(opts, playlistOpts); 		
		
		config = config || {};
		if (typeof params == 'string') params = {src:params};
		 
		if (!$(opts.player).length) {
			alert("flow.playlist not configured properly\nnonexisting element " + opts.player);
			return;
		}
		
		var items = root.children();
		if (items.is(".__scrollable")) items = root.children().children();
		
		items.click(function(event) {	
		
			var el = $(this);
			
			var items = root.children();
			if (items.is(".__scrollable")) items = root.children().children();
	
			//player.DoPlay();
			
			// toggle play pause action
			//if (player && el.hasClass(opts.playingClass)) {
			//	if (player.getIsPaused()) 
				
			//	else player.Pause();
			//	return false;
			//}			
			
			// toggle playing state
			//el.parent().find("." + opts.playingClass)
			//	.removeClass(opts.playingClass)
			//	.removeClass(opts.pausedClass)
			//;
				
			//l.addClass(opts.playingClass);
			
			config.videoFile = el.attr("href");

			isjpeg = false;
			suffix = config.videoFile.substr(config.videoFile.length-4);
			isjpeg = suffix == ".jpg" || suffix == ".JPG" || suffix == "jpeg" || suffix == "JPEG";

			config.hideControls = isjpeg;
			if (isjpeg)
				config.duration = 3;

			flowPlaylistVideoFile = config.videoFile;

			
			//if (player == null) {
			
			player = flashembed($(opts.player)[0], params, {config:config}); 
				
			//} else {
				//player.setConfig(config);
			//} 
	
			// setup callback methods
			window.onClipDone = function() {
				//el.removeClass(opts.playingClass).removeClass(opts.pausedClass);
				
				// move to next entry if it exists
				if (el.next().length) el.next().click();
				// else reset player	
				else {
					player.DoStop();
					player.Seek(0);
				}
							
				//else {
				//	if (opts.loop) {
				//		items.eq(0).click();
						
				//	} 
				//}
					
				
				// omit player's default behaviour (since version 2.2)
				return false;
			}	  			
	
			//window.onPause = function() {
				//if (el.hasClass(opts.playingClass)) el.addClass(opts.pausedClass);	
			//}
	
			//window.onResume = function() {
			//	el.removeClass(opts.pausedClass);	
			//}	
			
			// disable default behaviour
			return false;			
			
		});	
		
		// clicking on the player clicks on the first playlist entry
		/*
		$(opts.player).click(function(event) {
			event.preventDefault();
			items.eq(0).click();		
		});	
		*/
			
	}
	

})(jQuery);


