(function($) {

	$.fn.list = function(options) 
	{
		var opts = $.extend({}, $.fn.list.defaults, options);
		
		return this.each(function() 
		{
			var $list = $(this);

			$list.bind('module:toggle',function()
			{
				$('.dropdown-options').trigger('dropdown:close');

				if($('div.body',$list).parent('div').height() == 0)
				{
					$list.removeClass('closed').find('div.body').parent('div').stop().animate({height:$list.data('openheight')},500,"easeInQuad");
				}
				else
				{
					$('div.body',$list).parent('div').stop().animate({height:0},500,"easeInQuad",function()
					{
						$list.addClass('closed');
					});
				}
			});

			$list.bind('module:init',function(event)
			{
				$('div.body',$list).jScrollPane({showArrows:true,scrollbarWidth:8});

				$('select',$list).dropdown();

				$list.data('openheight',$('div.body',$list).parent('div').height());

				$list.find('.list-news h3').click(function()
				{
					$(this).toggleClass('closed').next('ul').toggleClass('closed');
					$('div.body',$list).jScrollPane({showArrows:true,scrollbarWidth:8});
				});
				
				$list.find('.list-news h3:gt(0)').click();

				$list.find('.header').after('<span class="top"></span>');

				if($list.find('.options').length > 0)
				{
					$list.find('.bottom').css({height:5});
				}
			});
			
			$list.wrapInner('<span class="content"></span>');

			if($('span.content',$list).length === 0)
			{
				$list.prepend('<span class="content"></span>');
			}
			
			$('<span class="bottom"></span>').appendTo($list);

			$('<a href="#" class="close clicker"></a>').appendTo($list).click(function()
			{
				$(this).trigger('module:toggle');
				return false;
			});

			$list.data('method',$list.attr('title')).attr('title','');
			
			if($('span.content *',$list).length == 0)
			{
				$list.trigger({type:'page:execute',method:'get',name:$list.data('method')});
			}
			else
			{
				$list.trigger('module:init');
			}
		});
	};

	$.fn.list.defaults = 
	{
	};

})(jQuery);
