//*********************************************************************************/
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=800;
var tabDelayIn=50;

function addTabNavListeners(nav, hasSub) {
  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);
      if (checkClassName(node,"actief"))actiefTab=node;
    }
  }
  if (actiefTab){
    activeSub = actiefTab.getElementsByTagName("UL")[0];
  }
}

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;
  }
  if (tab!=hoverTab && tab!=actiefTab){
    addClassName(tab,"hover");
    removeClassName(actiefTab, 'actief');
    if (activeSub)activeSub.style.display="none";
    hoverTab = tab;
    hoverTabParent = tab.parentNode;
  }
  if (tab==actiefTab && activeSub){
    activeSub.style.display="block";
  }
  if (tab==actiefTab) {
    addClassName(actiefTab, "actief");
  }  
}

function restoreTabs(to){
  if (!inTabArea(to)){
    if (hoverTab){
      removeClassName(hoverTab,"hover");
    }
    if (actiefTab) {
      addClassName(actiefTab, "actief");
    }
    if (activeSub)activeSub.style.display="block";
    hoverTab=null;
  }
}

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

function inTabArea(el){
  var inTabArea=0;
  if (!el)return false;
  var node=el;
  while (node.parentNode){
    if(node==hoverTabParent){inTabArea=1;break;}
    node = node.parentNode;
  }
  return inTabArea;
}

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

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

function resizeKolomTotElement(kolomnaam,element,ruimte){

if (!document.getElementById(kolomnaam))
return false;
if (!document.getElementById(element))
return false;
extra=0;
if (self.innerHeight) // all except Explorer
{extra=0;}
else if (document.documentElement && document.documentElement.clientHeight)
// Explorer 6 Strict Mode
{extra=0;}
else if (document.body) // other Explorers
{extra=0;}


var elheight = document.getElementById(element).clientHeight-ruimte;
//alert('el = '+ elheight);
var kolheight = document.getElementById(kolomnaam).clientHeight-ruimte;
	if (elheight > kolheight)
	{
	document.getElementById(kolomnaam).style.height=extra+elheight+"px";
	}
	else
	{
	document.getElementById(element).style.height=extra+kolheight+"px";
	}
}

//window.onload=function() {
//resizeKolomTotElement("side_bar","main_content",0);
//}
//window.onresize=function() {
//resizeKolomTotElement("side_bar","main_content",0);
//}
