/**
 * jQuery Clever Tabs
 *
 * Author: Zdenek Reinberk
 * Based on: smoothTabs from Alexander Petkov (http://www.webdesign-bulgaria.com) + jQuery Cookie plugin from Klaus Hartl (stilbuero.de)
 *
 * Example:
 * $('.smoothTabs').smoothTabs(FADE-SPEED-IN-MILISECONDS);
 *
 * Works for:
 * <div class="clever-tabs">
 *     <ul>
 *         <li>tab 1</li>
 *         <li>tab 2</li>
 *     </ul>
 *     <div>
 *         content for tab 1
 *     </div>
 *     <div>
 *         content for tab 2
 *     </div>
 * </div>
 *
 */

(function($) {
  $.fn.cleverTabs = function(fadeSpeed, selected) {

    // Clicked tab class
    var $tab_selected = 'selected';

    fadeSpeed = typeof fadeSpeed === "undefined" ? 0 : fadeSpeed;
    var $useCookie = typeof selected === "undefined";
    var $selectedTab = $useCookie ? 0 : selected;

    // remember selected tab - needs jquery.cookie plugin
    var $cookieName = 'clever_tabs_selected_index';

    // Kdyz je vice tabu na strance (pro ravak) - vymyslet univerzalneji, ale jak?
    var obj = $('#steps .selected');
    if (obj.length) {
      $cookieName += obj.attr('id');
    }

    var $context = this;
    var $tab_wrapper = $(' > ul:first', $context);

    if ($useCookie) {
      $selectedTab = $.cookie($cookieName) * 1;

      if ($selectedTab + 1 > $(' > li', $tab_wrapper).length) {
        $selectedTab = 0;
      }
    }

    // Makes first tab current, hides all divs and fades in the first one
    $(' > li:eq(' + $selectedTab + ')', $tab_wrapper).addClass($tab_selected);
    $(' > div', $context).hide();
    $(' > div:eq(' + $selectedTab + ')', $context).fadeIn(fadeSpeed);

    // Tab click function
    $(' > li', $tab_wrapper).click(function() {
      var $obj = $(this);
      var $parentUl = $obj.parent();
      $('> li', $parentUl).removeClass($tab_selected);
      $obj.addClass($tab_selected);

      var $clickedIndex = $(' > li', $parentUl).index($obj);
      var $currentDiv = $(' > div:eq(' + $clickedIndex + ')', $context);

      // If current tab is clicked - we're done
      if ($($currentDiv).is(':hidden')) {
        // Current div is replaced by the selected one
        $(' > div:visible', $context).fadeOut(fadeSpeed, function(){
          $($currentDiv).fadeIn(fadeSpeed);
          if ($useCookie) {
            $.cookie($cookieName, $clickedIndex);
          }
        }).hide();
      }
      return false;
    });
  }
})(jQuery);

