(function($) 
{
 
	$.fn.tabs = function(settings) 
	{
		var config = 
		{
			hideFunction: $.fn.hide,
			hideArguments: [],
			showFunction: $.fn.show,
			showArguments: [],
		};
		if (settings) $.extend(config, settings);
		
		
		this.each(function() 
		{
			
			var el = $(this);
			
			el.find('a').click
			(
				function(e) 
				{
					e.preventDefault();
					
					// add selected tab class
					el.find('a').removeClass('current');
					$(this).addClass('current');
				
					// show/hide hash content
					el.find('a').each
					(
						function(i)
						{
							var hash = $(this).attr('href');
							hash = hash.slice(hash.indexOf('#'), hash.length);
							if($(this).hasClass('current'))
							{
								config.showFunction.apply($(hash), config.showArguments);
							}
							else
							{
								config.hideFunction.apply($(hash), config.hideArguments);
							}
						}
					)
				}
			);
			
			// show the first tab
			el.find('a:first').click();
		});
 
		return this;
 	};
 
 })(jQuery);

