//*********************************************************************************/
function getElementsByClassName(oElm, strTagName, strClassName){
  var arrElements = (strTagName == "*" && document.all)? document.all : 
  oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  strClassName = strClassName.replace(/\-/g, "\\-");
  var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  var oElement;
  for(var i=0; i<arrElements.length; i++){
    oElement = arrElements[i];      
    if(oRegExp.test(oElement.className)){
      arrReturnElements.push(oElement);
    }   
  }
  return (arrReturnElements)
}

/* $Id: funcs.js,v 1.9 2005/09/27 11:47:23 content Exp $ */
var bMacMSIE = ((navigator.appVersion.indexOf('MSIE 5') > 0) &&
                (navigator.appVersion.indexOf('Mac') > 0));

// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
// By Scott Andrew
function addEvent(elm, evType, fn, useCapture) {
    if (elm.addEventListener) {
        elm.addEventListener(evType, fn, useCapture);
        return true;
    }
    else if (elm.attachEvent) {
        var r = elm.attachEvent('on' + evType, fn);
        return r;
    }
    else {
        elm['on' + evType] = fn;
    }
}

function getEventEl(e) {
    var el;
    if (window.event && window.event.srcElement)
        el = window.event.srcElement;
    if (e && e.target)
        el = e.target;
    return el;
}

function getEventTo(e) {
    var el;
    if (window.event && window.event.toElement)
        el = window.event.toElement;
    if (e && e.relatedTarget)
        el = e.relatedTarget;
    return el;
}

// class name functions
function addClassName(el,c){
  if(!checkClassName(el,c)){el.className+=el.className?" "+c:c;}
}

function swapClassName(el,c1,c2){
  el.className=!checkClassName(el,c1)?el.className.replace(c2,c1): el.className.replace(c1,c2);
}

function removeClassName(el,c){
  var cr=el.className.match(" "+c)?" "+c:c;
  el.className=el.className.replace(cr, "");
}

function checkClassName(el,c){
  return new RegExp("\\b"+c+"\\b").test(el.className);
}

// tab navigation
var actiefTab;
var hoverTab;
var hoverTabParent;
var actiefSub;
var tabTimer;
var tabDelayOut=1200;
var tabDelayIn=80;

function addTabNavListeners(nav, hasSub) {
	//alert ('addTabNavListeners');
  var navRoot = document.getElementById(nav);
  if (!navRoot) return;
  for (i=0; i<navRoot.childNodes.length; i++) {
    var node = navRoot.childNodes[i];
    if (node.tagName=="LI") {
      addEvent(node, 'mouseover', delayTabOver, false);
      addEvent(node, 'mouseout', delayTabOut, false);
			//alert ('addTabNavListeners');
    }
  }
}

function delayTabOver(e){
  clearTimeout(tabTimer);
  var tab=getTab(e);
  if (tab!=hoverTab)tabTimer = setTimeout(function() {tabOver(tab);}, tabDelayIn);
}

function delayTabOut(e){
  clearTimeout(tabTimer);
  var to = getEventTo(e);
  tabTimer = setTimeout(function() {restoreTabs(to);}, tabDelayOut);
}

function tabOver(tab) {
  if (hoverTab && hoverTab!=tab){
    removeClassName(hoverTab,"hover");
    hoverTab=null;
  }
    addClassName(tab,"hover");
    hoverTab = tab;
    hoverTabParent = tab.parentNode;

}

function restoreTabs(to){
    if (hoverTab){
      removeClassName(hoverTab,"hover");
    }
    hoverTab=null;
}

function getTab(e){
  var tab;
  var node=getEventEl(e);
  while (!(node.id&&node.id=="nav")){
    if(node.tagName=="LI"){tab=node;}
    node = node.parentNode;
  }
  return tab;
}

function initTabs(){
  addTabNavListeners("nav");
}

addEvent(window, 'load', initTabs, false);
