/**
 * jQuery Smooth Tabs
 * 
 * Author: Alexander Petkov
 * E-mail: petkov@webdesign-bulgaria.com
 * URL: http://www.webdesign-bulgaria.com
 * Copyright: (c) 2010 - Alexander Petkov, Webdesign Bulgaria Group Ltd.
 *
 * Example:
 * $('.smoothTabs').smoothTabs(FADE-SPEED-IN-MILISECONDS);
 *  
 * Works for:
 * <div class="smoothTabs">
 *     <ul>
 *         <li>tab 1</li>
 *         <li>tab 2</li>
 *     </ul>
 *     <div>
 *         content for tab 1
 *     </div>
 *     <div>
 *         content for tab 2
 *     </div>
 * </div>
 *
 * Tested with jQuery 1.3.2 
 *
 * LICENSE:
 
 */
 
 	(function($) {  
        $.fn.smoothTabs = function(fadeSpeed) {
            // Clicked tab class
            var $smoothTabsLiCurrent = 'smoothTabsLiCurrent';
            // Hidden div class
            var $smoothTabsDivHidden = 'smoothTabsDivHidden';
            // Visible div class
            var $smoothTabsDivVisible = 'smoothTabsDivVisible';
            
            // Makes first tab current, hides all divs and fades in the first one
            this.each(function() {
                $("ul li:first", this).addClass($smoothTabsLiCurrent);
                $(this).find("div.tabs_r").addClass($smoothTabsDivHidden);
                $('div:first', this).fadeIn(fadeSpeed)
                                    .addClass($smoothTabsDivVisible)
                                    .removeClass($smoothTabsDivHidden);
			});

            // Tab click function
            $('ul li.one', this).click(function(){
                var $parentUl = $(this).parent();
                var $parentDiv = $($parentUl).parent();
                $('li', $parentUl).removeClass($smoothTabsLiCurrent);
                $(this).addClass($smoothTabsLiCurrent);
                var $clickedIndex = $('li', $parentUl).index(this);
                var $currentDiv = $('div.tabs_r', $parentDiv).get($clickedIndex);
                
                // If current tab is clicked - we're done
                if ($($currentDiv).attr('class') == $smoothTabsDivVisible) {
                    return false;
                }
                
                // Current div is replaced by the selected one
                $('.'+$smoothTabsDivVisible, $parentDiv).fadeOut(fadeSpeed, function(){
                    $($currentDiv).fadeIn(fadeSpeed).addClass($smoothTabsDivVisible).removeClass($smoothTabsDivHidden);
                });
                $('.'+$smoothTabsDivVisible, $parentDiv).removeClass($smoothTabsDivVisible).addClass($smoothTabsDivHidden);
            });
        };
	})(jQuery); 
