(function($) {
	$.fn.collapsible = function() {
		
		this.each(function() {
			
			var self = $(this);
			var closeButton = self.find('.close-button');
			var collapsibles = self.find('.collapsible');
			var headers = collapsibles.find('.header');
			
			collapsibles.filter('.open').find('.details').show();
			
			headers.click(function(event) {
				event.preventDefault();
				
				var header = $(this);
				var parent = header.parent();
				
				if (parent.hasClass('open')) {
					parent.find('.details').slideUp();
					parent.removeClass('open');
					return false;
				}
				
				var open = collapsibles.filter('.open');
				open.find('.details').slideUp();
				open.removeClass('open');
				
				parent.find('.details').slideDown()
				parent.addClass('open');
			});
			
			if (closeButton.length) {
				closeButton.click(function(event) {
					event.preventDefault();
					self.hide();
				});
			}
			
		});
		
	};
})(jQuery);
