/*
 * Super-simple tabs in jQuery.
 *
 * @version   20080619
 * @since     2008-06-19
 * @docs      http://jquery.glyphix.com/
 * @copyright Copyright (c) 2008 Glyphix, Inc. http://www.glyphix.com
 * @author    Brad Brizendine <brizbane@gmail.com>
 * @license   MIT http://www.opensource.org/licenses/mit-license.php
 * @requires  >= jQuery 1.2.6
 */
(function(jQuery){
	jQuery.fn.tabby = function( options ){

		// if we don't have an options object, create one
		options = options || {};
		// extend our default settings with options
		var settings = jQuery.extend({
			passClick: false
		},options);

		return this.each( function(){

			var self = this;
			self.tabs = jQuery('> ul',self);
				self.tabs.addClass('tabby-tabs');

			//------------------------------------------
			// internal functions
			//------------------------------------------

			// hide blocks
			self.select = function(event){
				// remove 'here' class from tabs
				jQuery('li',self.tabs).removeClass('tabby-here');
				jQuery(event.target).parent().addClass('tabby-here');
				// hide all blocks
				jQuery('> div',self).hide();
				// show the block in the same position as the clicked-on element
				var i = jQuery('a',self.tabs).index(event.target);
				var content = jQuery('> div:eq(' + i + ')',self)[0];
				jQuery(content).show();
				// add our index to the event
				var tabby = {};
				tabby.index = i;
				tabby.tab = event.target;
				tabby.content = content;
				// trigger a callback
				jQuery(self).triggerHandler('tabby.switch',[tabby]);
				// if we want to allow the click to bubble up
				if( settings.passClick ){
					return true;
				}
				return false;
			};

			//------------------------------------------
			// run on load
			//------------------------------------------

			// click event
			jQuery('li a',self.tabs).click( self.select );

			// now trigger the correct toc item:
				// if no tab is "here", select the first one
			var here = jQuery('li',self.tabs).filter('.tabby-here');
			if( !here[0] ){
				here = jQuery('li:eq(0)',self.tabs);
			}
			jQuery('a',here).trigger('click');
		});
	}
})(jQuery);