/* Bleau Tabs version 0,95
   PROGRAMMER: Sten Hougaard
   DESCRIPTION: A quick "tab" handler
   VERSION-REMARKS:
   0,95   : Handles only one tabgroup with guarentee :-)

   ================================================================
   How-to-implement/example
   ================================================================
   -------- Javascript: --------------------------------------------  
   <script type="text/javascript" src="jquery.BleauTabs.js"></script>
   <script type="text/javascript">
   var oBleauTabs = $('body').BleauTabs();
   </script>
   -------- HTML: --------------------------------------------------
   <ul class="tabs">
    <li><a href="#Tab1" class="default">Beskrivelse</a></li>
    <li><a href="#Tab2">Produktinfo</a></li>
    <li><a href="#Tab3">Henvisning</a></li>
  </ul>
  <div>
    <div class="tab" id="Tab1">
      The contens of first tab
    </div>
    <div class="tab" id="Tab2">
      The contens of second tab
    </div>
    <div class="tab" id="Tab3">
      Guess yourself! :-)
    </div>
  </div>
   -------- CSS: ---------------------------------------------------
   .tabs {clear: both; list-style-type: none; margin: 0px; padding: 0px 0px 0px 10px; float: left;}
   .tabs li.active {background-color: #84b3e1;}
   .tabs li.active a {color: #2b5e92; font-weight: bold;}
   .tabs li a {color: #2b5e92; font-weight: normal;}
   div.tab {background-color: #84b3e1; padding: 6px 13px; color: #2b5e92; display: none;}
   div.tab.active {display: block; color: #2b5e92; }
   div.tab div, div.tab * { color: #2b5e92 !Important;}
*/
(function($){
 $.fn.BleauTabs = function(options) {
    
  var defaults = {
   tabs: '.tabs',
   oLastTab: null
  };
  
  var options = $.extend(defaults, options);
    
  return this.each(function() {
   obj = $(this);
   var body = obj.html();
   
   $(document).ready(function() {
     
     $(options.tabs+' li a').each(function() {
       
       var oTab = $(this);
       oTab.bind('click', function() {
         var oElement = $(this);
         if (typeof options.oLastTab !='undefined') {
           tabToggle(options, options.oLastTab);
         }
         tabToggle(options, oElement);
       });
     });
     
     var sTabIdFromURL = getTabIdFromString(document.location+'');
     if (sTabIdFromURL!='') {
       selectTabUsingTabId(options, sTabIdFromURL);
     } else {
       selectDefaultTab(options);
     }
     
   })
   
  });
 };
})(jQuery);

//var oLastTab;
function tabToggle(options, oElement) {
  options.oLastTab = oElement;
  var sId = oElement.attr('href');
  sId = getTabIdFromString(sId);
  oElement = oElement.parent();
  oElement.toggleClass('active');
  $('#'+sId).toggleClass('active');
}

function getTabIdFromString(sString) {
  try {
    var iHash = sString.lastIndexOf('#');
    if (iHash==-1) return '';
    return sString.substr(iHash+1, sString.length-1);
  } catch(e) {
  }
}

function selectTabUsingTabId(options, sTabId) {
  tabToggle(options, $(options.tabs+' li a[href*="'+sTabId+'"]'));
}

function selectDefaultTab(options) {
  tabToggle(options, $(options.tabs+' li a[class*="default"]'));
}