(function($) 
{
	$.fn.controllable = function(options) 
	{
		/* Plugin options*/
		var defaults = 
		{
			speed: 400, 
			autoplay: false
		};
		
		var options = $.extend({}, defaults, options);
		
		var getEvent = function(event)
		{
			/* Cronstruct crossbrowser event */
			if (!event) var event = window.event;
			
			/* Cancel bubbling */
			event.cancelBubble = true;
			
			/* Cancel propogation */
			if (event.stopPropagation) event.stopPropagation();
			
			return event;
		}

		var remove = function(event)
		{
			event = getEvent(event);
			
			vibelist.removePlaylist($(this).parents().filter('p').attr('id'));
		};
		
		var nullCase = function(event)
		{
			event = getEvent(event);
		};
		
		var updatePlaylist = function(event)
		{
			event = getEvent(event);
			
			if (event.keyCode == 13) 
			{
				var $pl = $(this).parents().filter('p');

				vibelist.updatePlaylistTitle($pl.attr('id').substr(2),$(this).val())
		    }
		};
		
		
		var edit = function(event)
		{
			event = getEvent(event);
			
			var $pl = $(this).parents().filter('p');
			
			$pl.append('<input type="text" value="' + $pl.text() + '" class="dynamic-input" />');
			
			$('.dynamic-input',$pl).bind('click',nullCase);
			$('.dynamic-input',$pl).bind('keyup',updatePlaylist);
		}
		
		var activateControls = function()
		{
			$(this).addClass('hovered');
			$('a',this).addClass('activated');
		};
		
		var deactivateControls = function()
		{
			$(this).removeClass('hovered');
			$('a',this).removeClass('activated');
		};

	    return this.each(function() 
	    {	
	    	$('p',this).filter(':not(.featured)').append('<span><a class="edit-playlist"></a><a class="remove-playlist"></a></span>');
	    	$('p',this).bind('mouseover',activateControls);
	    	$('p',this).bind('mouseout',deactivateControls);

			$('a.remove-playlist').bind('click', remove);
			$('a.edit-playlist').bind('click',edit);
	    });
	}; 
})(jQuery);