// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// tabbed.js
//
// copyright (c) 2010 drow <drow@bin.sh>
// all rights reserved

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// init tabs

  function init_tabs () {
    if (blocks = $$('div.tab_block')) {
      var B = { }; Builder.dump(B);

      blocks.each(function (block) {
        block_attr = { 'class': 'tab_nav' };
        items = [ ];

        if (tabs = get_tabs(block)) {
          tabs.each(function (tab) {
            tbd_id = tab.identify();

            if (link = tab.readAttribute('href')) {
              a_attr = { 'href': link };
            } else {
              a_attr = { 'onclick': "lift_tab(this,'" + tbd_id + "')" };
            }
            items.push(B.LI({},B.A(a_attr,tab.title)));
            tab.addClassName('inactive');
          });
          block.insert({ 'top': B.OL(block_attr,items) });
          lift_tab(block.down('ol').down('a'),tabs[0].identify());
        }
      });
    }
  }
  function get_tabs (block) {
    return select_children(block,'div.tab');
  }
  function select_children (parent,desc) {
    return parent.childElements().grep(new Selector(desc));
  }

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// lift tab

  function lift_tab (link,tbd_id) {
    link.up('ol').select('a').each(function (a) {
      a.removeClassName('active');
    });
    link.addClassName('active');

    get_tabs(link.up('div')).each(function (d) {
      d.addClassName('inactive');
    });
    $(tbd_id).removeClassName('inactive');
  }

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// showtime

  document.observe('dom:loaded',init_tabs);

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

