// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// tabbed.js
// Copyright (c) 2010 ipHouse.  All rights reserved.

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// global data

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// 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.UL(block_attr,items) });
        lift_tab(block.down('ul').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('ul').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);

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

