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.offsetHeight);
  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";
}

function initsubmenu(menu, li, ul) {
  // verplaats ul naar een nieuwe div
  // maak h2 van a
  var h2text;
  for(var k=0; k < li.childNodes.length; k++) {
    var a = li.childNodes[k];
    if (a.nodeType == 1 && a.tagName == 'A') {
      h2text = a.firstChild.data;
    }
  }
  
  var div = document.getElementById('submenu');
  div.firstChild.firstChild.data = h2text;
  div.appendChild(li.removeChild(ul));
}

// zoek binnen de div "menu" elementen li met daarin ul
function initmenu() {
  var menuId = 0;
  var menu = document.getElementById("mainmenu");
  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);
              if (hasclass(li, 'selected'))
                initsubmenu(menu, li, ul);
            }
          }
        }
      }
    }
  }
  letters_init();
}

var fontSizes = ["x-small", "small", "medium", "large"];

function letters_init() {
  var fontSize = readCookie('leeftijd_fontsize');
  if (fontSize) {
    docBase = document.getElementsByTagName('body');
    docBase[0].style.fontSize = fontSize;
  }
}

function letters_groter() {
  docBase = document.getElementsByTagName('body');
  oldSize = docBase[0].style.fontSize;
  if(oldSize) {
    for (i=0; i<fontSizes.length; i++) {
      if (fontSizes[i] == oldSize && i+1 < fontSizes.length) {
      	docBase[0].style.fontSize = fontSizes[i+1];
        setCookie('leeftijd_fontsize', fontSizes[i+1]);
      }
    }
  } else {
  	docBase[0].style.fontSize = fontSizes[2];
    setCookie('leeftijd_fontsize', fontSizes[2]);
  }
}

function letters_kleiner() {
  docBase = document.getElementsByTagName('body');
  oldSize = docBase[0].style.fontSize;
  if (oldSize) {
    for (i=0; i<fontSizes.length; i++) {
      if (fontSizes[i] == oldSize && i > 0) {
      	docBase[0].style.fontSize = fontSizes[i-1];
        setCookie('leeftijd_fontsize', fontSizes[i-1]);
      }
    }
  } else {
  	docBase[0].style.fontSize = fontSizes[0];
    setCookie('leeftijd_fontsize', fontSizes[0]);
  }
}

function setCookie(name,value) {
  document.cookie = name+'='+value+'; path=/';
}

function readCookie(name) {
  var nameEQ = name + '=';
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}


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)
}

onload = initmenu;
