// http://css-tricks.com/organic-tabs/
$(function() {
	$("#tab-menu").organicTabs({
	});
});

(function($) {
	$.organicTabs = function(el, options) {
	
		var base = this;
		base.$el = $(el);
		base.$nav = base.$el.find(".nav");
		base.init = function() {
			base.options = $.extend({},$.organicTabs.defaultOptions, options);
			
			// Accessible hiding fix
			$(".hide").css({
				"position": "relative",
				"top": 0,
				"left": 0,
				"display": "none"
			}); 
			
			base.$nav.delegate("li > a", "click", function() {
			
				// Figure out current list via CSS class
				var curList = base.$el.find("a.current").attr("href").substring(1),
				
				// List moving to
					$newList = $(this),
					
				// Figure out ID of new list
					listID = $newList.attr("href").substring(1),
				
				// Set outer wrapper height to (static) height of current inner list
					$allListWrap = base.$el.find(".list-wrap"),
					curListHeight = $allListWrap.height();
				$allListWrap.height(curListHeight);
										
				if ((listID != curList) && ( base.$el.find(":animated").length == 0)) {
											
					// Fade out current list
					base.$el.find("#"+curList).fadeOut(base.options.speed, function() {
						
						// Fade in new list on callback
						base.$el.find("#"+listID).fadeIn(base.options.speed);
						
						// Adjust outer wrapper to fit new list snuggly
						var newHeight = base.$el.find("#"+listID).height();
						$allListWrap.animate({
							height: newHeight
						});
						
						// Remove highlighting - Add to just-clicked tab
						base.$el.find(".nav li a").removeClass("current");
						$newList.addClass("current");
					});
				}
				// Don't behave like a regular link
				// Stop propegation and bubbling
				return false;
			});
		};
		base.init();
	};
	
	$.organicTabs.defaultOptions = {
		"speed": 300
	};
	
	$.fn.organicTabs = function(options) {
		return this.each(function() {
			(new $.organicTabs(this, options));
		});
	};
})(jQuery);
