/*
	Slider - jQuery plugin
	
	Copyright (c) Justin Sepulveda
	
	Dual licensed under the MIT and GPL licenses:
	http://www.opensource.org/licenses/mit-license.php
	http://www.gnu.org/licenses/gpl.html

	Date: 2007.05.24
	Version: 1.0
 */

(function($) {

	$.fn.slider = function(initial, settings) {
		
		if (typeof initial == 'object') settings = initial;
	
		settings = $.extend({
			
			initial: (initial && typeof initial == 'number' && initial > 0) ? --initial : 0,
			selectedClass: '.selected',
			tabClass: '.slider_tab',
			panelClass: '.slider_panel',
			fxSlide: null,
			fxHideSpeed: 'fast',
			fxShowSpeed: 'fast'
			
		 }, settings || {});

		return this.each(function() {

			var container = this;

			var tab = settings.tabClass;
			var tabSet = $(tab, container);
			
			var panel = settings.panelClass;
			var panelSet = $(panel, container);
			
			var selected = settings.selectedClass.replace('.', '');

			var showFx = {};
			var hideFx = {};
			var showSpeed = settings.fxShowSpeed;
			var hideSpeed = settings.fxHideSpeed;
		
			if (settings.fxSlide) {
                showFx['height'] = 'show';
				hideFx['height'] = 'hide';
            }
			else {
                showFx['opacity'] = 'show';
				hideFx['opacity'] = 'hide';
				showSpeed = 1;
				hideSpeed = 1;
            }
			
			tabSet.eq(settings.initial).addClass(selected);
			panelSet.not(':eq(' + settings.initial + ')').hide();

			tabSet.mouseover(function() {  
				if ($(this).next(panel).is(':visible') || panelSet.filter(':visible').length > 1) { return false; }
			
				$(this).siblings(tab).removeClass(selected);
				$(this).parent().find(panel + ':visible').animate(hideFx, hideSpeed);				
				
				$(this).addClass(selected);
				$(this).next(panel).animate(showFx, showSpeed);
				
				return false;
			});
	  	});

	};

})(jQuery);