// page init
jQuery(function(){
	jQuery ( '#sidebar' ).multiAccordion ({
		activeClass:'active',
		opener:'.opener',
		slider:'.slide',
		slideSpeed: 400,
		collapsible:true,
		event:'click'
	});
});

// multilevel accordion plugin
jQuery.fn.multiAccordion = function(_options){
	// default options
	var _options = jQuery.extend({
		activeClass:'active',
		items: 'li',
		opener:'.opener',
		slider:'.slide',
		slideSpeed: 400,
		collapsible:true,
		event:'click'
	},_options);

	return this.each(function(){
		// options
		var _event = _options.event;
		var _accordion = jQuery(this);
		var _items = jQuery ( _options.items, this );

		_items.each(function(){
			var _holder = jQuery(this);
			var _opener = _holder.find(_options.opener);
			var _slider = _holder.find(_options.slider);
			_opener.bind(_event, function(){
				if(!_slider.is(':animated')) {
					if(_holder.hasClass(_options.activeClass)) {
						if(_options.collapsible) {
							_slider.slideUp(_options.slideSpeed, function(){
								_holder.removeClass(_options.activeClass);
							});
						}
					} else {
						var _levelItems = _holder.siblings('.'+_options.activeClass);
						_holder.addClass(_options.activeClass);
						_slider.slideDown(_options.slideSpeed);

						// collapse others
						_levelItems.find(_options.slider).slideUp(_options.slideSpeed, function(){
							_levelItems.removeClass(_options.activeClass);
						})
					}
				}
				return false;
			});
			if(_holder.hasClass(_options.activeClass)) _slider.show(); else _slider.hide();
		});
	});
}    
