;(function($) {

$.ui = $.ui || {};

$.fn.extend({
	accordion: function(options, data) 
	{
		var args = Array.prototype.slice.call(arguments, 1);

		return this.each(function() 
		{
			if (typeof options == "string") 
			{
				var accordion = $.data(this, "ui-accordion");
				accordion[options].apply(accordion, args);

			} 
			else if (!$(this).is(".ui-accordion"))
			{
				$.data(this, "ui-accordion", new $.ui.accordion(this, options));
			}
		});
	},
	activate: function(index) {
		return this.accordion("activate", index);
	}
});

$.ui.accordion = function(container, options) 
{
	this.options = options = $.extend({}, $.ui.accordion.defaults, options);
	this.element = container;
	
	$('.head',container).click(function() 
	{
		if (false == $(this).hasClass('disabled'))
		{
			$('.active-head').removeClass('active-head');
			$('.enabled').removeClass('enabled').slideUp(options.speed);
			
			$(this).addClass('active-head').next().addClass('enabled').slideToggle(options.speed);
			return false;
		}
	}).next().slideUp(options.speed);
};

$.ui.accordion.prototype = 
{
	activate: function(index) 
	{
		$('.active-head').removeClass('active-head');
		$('.enabled').removeClass('enabled').slideUp(this.options.speed);
		$('.head',this.element).eq(index).addClass('active-head').next().slideDown(this.options.speed).addClass('enabled');
	}
}

$.extend($.ui.accordion, {
	defaults: 
	{
		speed:400
	}
});

})(jQuery);