SlideMenu.menus = [];
SlideMenu.aniLen = 250;
SlideMenu.hideDelay = 1000;

function SlideMenu() {}

function startSlide(node, open) {
	node.open = open
	node.menu.style.visibility = "visible";
  node.menu.parentNode.style.visibility = "visible";
	node.startTime = (new Date()).getTime();
	node.aniTimer = window.setInterval("slide("+node.menuId+")", 10)
}

function slide(i) {
  var node = SlideMenu.menus[i];
	var elapsed = (new Date()).getTime() - node.startTime;
	if (elapsed > SlideMenu.aniLen) 
    endSlide(node);
	else {
    var d = Math.round(Math.pow(SlideMenu.aniLen - elapsed, 2) * node.accelConst)
    if (node.open)
  		node.menu.style.top = d + "px";
		else 
  		node.menu.style.top = -node.menu.offsetHeight - d + "px";
	}
}

function endSlide(node) {
	node.aniTimer = window.clearTimeout(node.aniTimer)
	//node.moveTo(node.open ? node.outPos : node.homePos)
	if (!node.open) {
    node.menu.style.visibility = "hidden";
    node.menu.parentNode.style.visibility = "hidden";
  }
  if (node.open) {
  	node.menu.style.top = 0;
  }
	//if ((node.open && !node.over) || (!node.open && node.over)) {
  //  startSlide()
  //	}
  if (!node.open) delclass(node, "hover");
}


function showmenu(node) {
  addclass(node, "hover");
  for(var i=0; i<SlideMenu.menus.length; i++)
    if(SlideMenu.menus[i] != node) 
      hide(i);
 	if (node.hideTimer) window.clearTimeout(node.hideTimer)
    node.hideTimer = 0
  if (!node.open) startSlide(node, true);
}

function hidemenu(node) {
  if (node.hideTimer) window.clearTimeout(node.hideTimer)
	node.hideTimer = window.setTimeout("hide('" + node.menuId + "')", SlideMenu.hideDelay);
}

function hide(i) {
  var node = SlideMenu.menus[i];
  if (node.open && !node.aniTimer) startSlide(node, false);
}


function inititem(i, li, ul) {
  var div = document.createElement('div');
  div.className = "container";
//      div.style.width = "130px";
//      div.style.height = "200px";
//      alert("" + ul.offsetWidth + "," + ul.offsetHeight)
  // loop door alle li's van lu en voeg li en a toe aan nieuwe ul
  
  var ul2 = document.createElement('ul');
  for(var j=0; j < ul.childNodes.length; j++) {
    var li2 = ul.childNodes[j];
    if(li2.nodeType == 1 && li2.tagName == 'LI') {
      for(var k=0; k < li2.childNodes.length; k++) {
        var a = li2.childNodes[k];
        if (a.nodeType == 1 && a.tagName == 'A') {
          var li3 = document.createElement('li');
          var ac = a.cloneNode(true);
          var t = ac.firstChild.data;
          ac.firstChild.data = t.replace(/ /g, "\u00A0");
          li3.appendChild(ac);
          ul2.appendChild(li3);
        }
      }
    }
  }
  li.appendChild(div);
  div.appendChild(ul2);
  //alert(ul2.offsetWidth);
  li.accelConst	= (0 - ul2.offsetHeight) / SlideMenu.aniLen / SlideMenu.aniLen
  ul2.style.top = -ul2.offsetHeight + "px";
  div.style.height = ul2.offsetHeight+"px";
  div.style.width  = ul2.offsetWidth + "px";
  
  SlideMenu.menus[i] = li;
  li.menu   = ul2;
  li.menuId = i;
  li.onmouseover = function() { showmenu(this) };
  li.onmouseout  = function() { hidemenu(this) };
  li.style.position = "relative";
}

// zoek binnen de div "menu" elementen li met daarin ul
function initmenu() {
  var menuId = 0;
  var menu = document.getElementById("menu2");
  if (!menu) return;
  for(var i=0; i < menu.childNodes.length; i++) {
    var ulm = menu.childNodes[i];
    if(ulm.nodeType == 1 && ulm.tagName == 'UL') {
      for(var j=0; j < ulm.childNodes.length; j++) {
        var li = ulm.childNodes[j];
        if(li.nodeType == 1 && li.tagName == 'LI') {
          for(var k=0; k < li.childNodes.length; k++) {
            var ul = li.childNodes[k];
            if(ul.nodeType == 1 && ul.tagName == 'UL') {
              inititem(menuId++, li, ul);
            }
          }
        }
      }
    }
  }
}

function init_pdf() {
  var k = document.getElementById('rechterkolom');
  if (k) {
    var a = k.getElementsByTagName('A');
    for (var i=0; i<a.length; i++) {
      if (a[i] && a[i].firstChild && a[i].firstChild.data && a[i].firstChild.data.indexOf('(pdf)') > 0)
        addclass(a[i], 'pdf');
    }
  }
}

function selectjaar(jaar) {
  var div = document.getElementById('publicatielijst');
  var p = div.getElementsByTagName('P');
  for (var i=0; i < p.length; i++) {
    p[i].style.display = ((p[i].className == jaar || jaar.indexOf('publicaties') > 0) ? "block" : "none");
  }
  
  var div = document.getElementById('publicatiejaren');
  var a = div.getElementsByTagName('A');
  for (var i=0; i<a.length; i++) {
    a[i].className = (a[i].firstChild.data == jaar ? 'selected' : '');
  }
}

function init_naarboven() {
  var a = document.createElement('A');
  a.setAttribute('id', 'naarboven');
  a.setAttribute('href', 'javascript:scroll(0,0)');
  document.body.appendChild(a);
  move_naarboven();
}

function getWindowHeight() {
  var mbody;
  if (document.documentElement && document.documentElement.clientHeight) {
    mbody = document.documentElement;
  } else if (document.body && document.body.clientHeight) {
    mbody=document.body;
  }
  return mbody.clientHeight + mbody.scrollTop;
}

function move_naarboven() {
  var wh = getWindowHeight();
  var up = document.getElementById('naarboven');
  var y = wh - 30;
  var dy = up.offsetTop - y;
  up.style.top = y + 'px';
}


function addclass(e, c) {
  if (e.className.indexOf(c) == -1) {
    if (e.className.length > 0)
      e.className += " " + c;
    else
      e.className = c;
  }
}

function delclass(e, c) {
  var p = e.className.indexOf(c);
  if (p >= 0)
    e.className = e.className.substr(0, p) + e.className.substr(p + c.length);
}

function hasclass(e, c) {
  var p = e.className.indexOf(c);
  return (p >= 0)
}

function init() {
  initmenu();
  init_pdf();
  init_naarboven();
}

onload = init;
onscroll = move_naarboven;

