/* --------------------------------------------------------------------------------------
 * areatabs.js
 * @20100210
-------------------------------------------------------------------------------------- */

VCOMN.ObserveDOMLoaded(initTabControl);
function initTabControl() {
  var MENU_CLASS = 'resellerNav';
  var ON_CLASS = 'on';
  var mainContentsBlock = document.getElementById('mainContentsBlock');
  var menu = VCOMN.getElementsByClassName(MENU_CLASS, mainContentsBlock);
  if (!menu || !menu.length) {
    return;
  }
  var visitHash = location.hash.replace(/^#/, '');
  menu = menu[0];
  var setArea = function (hash, first) {
    var currentArea = hash;
    for (var i = 0; i < areas.length; i++) {
      for (var j = 0; j < areas[i].elems.length; j++) {
        areas[i].elems[j].style.display = areas[i].hash == currentArea ? '' : 'none';
      }
      if (areas[i].hash == currentArea) {
        VCOMN.addClass(areas[i].li, ON_CLASS);
      } else {
        VCOMN.removeClass(areas[i].li, ON_CLASS);
      }
    }
    if (!first) {
      document.body.focus();
    }
    return false;
  };
  var areas = [];
  var atags = menu.getElementsByTagName('A');
  for (var i = 0; i < atags.length; i++) {
    var hash = atags[i].hash.replace(/^#/, '');
    areas.push({hash: hash, li: atags[i].parentNode});
    atags[i].onclick = VCOMN.bindFunc(setArea, this, hash);
  }
  var areasIndex = -1;
  var nodes = mainContentsBlock.childNodes;
  for (var i = 0; i < nodes.length; i++) {
    if (nodes[i].nodeType != 1) continue;
    if (areasIndex < areas.length - 1 && nodes[i].id == areas[areasIndex + 1].hash) {
      nodes[i].id = 'area' + nodes[i].id;
      areas[++areasIndex].elems = [];
    }
    if (areasIndex == -1) continue;
    areas[areasIndex].elems.push(nodes[i]);
  }
  var startArea = '';
  if (visitHash) {
    for (var i = 0; i < areas.length; i++) {
      if (visitHash.indexOf(areas[i].hash) == 0) {
        startArea = areas[i].hash;
      }
    }
  }
  if (!startArea) {
    startArea = areas[0].hash;
  }
  setArea(startArea, true);
}


