(function($){
    $.sidebarAccordion = function(el, options) {
        // To avoid scope issues, use 'base' instead of 'this'
        // to reference this class from internal events and functions.
        var base = this;

        // Access to jQuery and DOM versions of element
        base.$el = $(el);
        base.el = el;

        // Add a reverse reference to the DOM object
        base.$el.data('sidebarAccordion', base);

        base.init = function() {
            base.options = $.extend({},$.sidebarAccordion.defaultOptions, options);

            // Put your initialization code here
			base.$items = base.$el.find('.item');
			if (base.$items.length > 0) {
			}
			
			base.$items.find('.trigger').click(function(event) {
				var $trigger = $(this);
				
				base.$items.find('.trigger').each(function() {
					var $closingTrigger = $(this);
					$closingTrigger.next('.content').slideUp(base.options.slideSpeed, function() {
						$closingTrigger.removeClass('active_trigger');
					});
				});
				
				if ($trigger.hasClass('active_trigger')) {
					$trigger.next('.content').slideUp(base.options.slideSpeed, function() {
						$trigger.removeClass('active_trigger');
					});
				} else {
					$trigger.addClass('active_trigger');
					$trigger.next('.content').stop(true, true).slideDown(base.options.slideSpeed);
				}
				
				event.preventDefault();
			});
        };

        // Run initializer
        base.init();
    };

    $.sidebarAccordion.defaultOptions = {
		slideSpeed: 200
    };

    $.fn.sidebarAccordion = function(options) {
        return this.each(function() {
            (new $.sidebarAccordion(this, options));
        });
    };

})(jQuery);
