/* Master-Layout script */

/**
  * resizeContent: Scales the content div's to the browser-window height.
  */
function resizeContent() {
  var contentDivs = new Array(document.getElementById('contentLeft'), document.getElementById('contentWrapper'));
  var additionalDivs = new Array(document.getElementById('header'), document.getElementById('footer'));
  var additionalDivsHeight = 0;

  for (var i = 0; i < additionalDivs.length; i++) {
    additionalDivsHeight += additionalDivs[i].offsetHeight;
  }

  for (var i = 0; i < contentDivs.length; i++) {
    contentDivs[i].style.height = (document.documentElement.clientHeight - additionalDivsHeight) + 'px';
    contentDivs[i].style.overflow = 'auto';
  }
}

/* window.onload = resizeContent; */
/* window.onresize = resizeContent; */


/**
  * deleteDefaultValue: To be called from onfocus: Deletes the
  * default value of an input field if not modified.
  */
function deleteDefaultValue(node) {
  if (node.value == node.defaultValue) {
    node.value = '';
  }
}

/**
  * tabWindowSelectTab: Used by produkt/register.cst: Selects a tab
  * and hides all other tabs.
  */
function tabWindowSelectTab(tab) {
  // select tabWindowTab:
  requestedTabNode = document.getElementById(tab + 'TabWindowTab');
  tabsContainer = requestedTabNode.parentNode;
  tabNode = getFirstChildElementByTagName(tabsContainer, 'div');

  while (true) {
    tabNode.className = tabNode.className.replace(/ ?selected ?/, '');

    tabNode = getNextSiblingElementByTagName(tabNode, 'div');
    if (tabNode == null) break;
  }

  requestedTabNode.className = requestedTabNode.className + ' selected';

  // select tabWindowContent:
  requestedTabNode = document.getElementById(tab + 'TabWindowContent');
  tabWindowNode = requestedTabNode.parentNode;
  tabNode = getFirstChildElementByTagName(tabWindowNode, 'div'); //first div is tabsContainer

  while (true) {
    tabNode = getNextSiblingElementByTagName(tabNode, 'div');
    if (tabNode == null) break;

    tabNode.style.display = 'none';
  }

  requestedTabNode.style.display = 'block';
}

function getFirstChildElementByTagName(node, tagName)
{
  node = node.firstChild;

  while(node != null && (node.nodeType != 1 || node.nodeName.toLowerCase() != tagName))
    node = node.nextSibling;

  return node;
}

function getNextSiblingElementByTagName(node, tagName)
{
  node = node.nextSibling;

  while(node != null && (node.nodeType != 1 || node.nodeName.toLowerCase() != tagName))
    node = node.nextSibling;

  return node;
}
