var vertraging = 500;     // vertragingstijd menu vooraleer te verdwijnen (in milliseconden)
var hoofdlink = 0;        // werking hoofdlink in- of uitschakelen (1=in, 0=uit)
var verbergen = 1;        // menu verbergen na aanklikken subitem (1=ja, 0=nee)

var ie5 = (document.all);
var ns6 = (document.getElementById && (!document.all));

function positie_bepalen(voorwerp, offsettype)
{
  var totaloffset = (offsettype == "left") ? voorwerp.offsetLeft : voorwerp.offsetTop;
  var parentEl = voorwerp.offsetParent;
  while (parentEl != null)
  {
    totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
    parentEl = parentEl.offsetParent;
  }
  return totaloffset;
}

function tonen_verbergen(obj, e, visible, hidden)
{
  if (ie5||ns6)
  menuobject.style.left=menuobject.style.top=-500
  if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
  obj.visibility=visible
  else if (e.type=="click")
  obj.visibility=hidden
}

function iecompattest()
{
  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function rand_bereikt(obj, welke_rand)
{
  var edgeoffset=0
  if (welke_rand=="rightedge")
  {
    var vensterrand=ie5 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
    menuobject.contentmeasure=menuobject.offsetWidth
    if (vensterrand-menuobject.x < menuobject.contentmeasure)
      edgeoffset=menuobject.contentmeasure-obj.offsetWidth
  }
  else
  {
    var vensterrand=ie5 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
    menuobject.contentmeasure=menuobject.offsetHeight
    if (vensterrand-menuobject.y < menuobject.contentmeasure)
      edgeoffset=menuobject.contentmeasure+obj.offsetHeight
  }
  return edgeoffset
}

function toonmenu(obj, e, dropmenuID)
{
  if (window.event) event.cancelBubble=true
  else if (e.stopPropagation) e.stopPropagation()

  if (typeof menuobject!="undefined") 
    menuobject.style.visibility="hidden"

  clearhidemenu()

  if (ie5||ns6)
  {
    obj.onmouseout=delayhidemenu
    menuobject=document.getElementById(dropmenuID)
    if (verbergen) menuobject.onclick=function(){menuobject.style.visibility='hidden'}
    menuobject.onmouseover=clearhidemenu
    menuobject.onmouseout=ie5? function(){ dynamisch_verbergen(event)} : function(event){ dynamisch_verbergen(event)}
    tonen_verbergen(menuobject.style, e, "visible", "hidden")
    menuobject.x=positie_bepalen(obj, "left")
    menuobject.y=positie_bepalen(obj, "top")
    menuobject.style.left=menuobject.x-rand_bereikt(obj, "rightedge")+"px"
    menuobject.style.top=menuobject.y-rand_bereikt(obj, "bottomedge")+obj.offsetHeight+"px"
  }

  return klik()
}

function klik()
{
  if ((ie5||ns6) && !hoofdlink) return false
  else return true
}

function ns6compat(a, b)
{
  while (b.parentNode)
  if ((b = b.parentNode) == a)
  return true;
  return false;
}

function dynamisch_verbergen(e)
{
  if (ie5&&!menuobject.contains(e.toElement))
  delayhidemenu()
  else if (ns6&&e.currentTarget!= e.relatedTarget&& !ns6compat(e.currentTarget, e.relatedTarget))
  delayhidemenu()
}

function delayhidemenu()
{
  delayhide=setTimeout("menuobject.style.visibility='hidden'",vertraging)
}

function clearhidemenu()
{
  if (typeof delayhide!="undefined")
  clearTimeout(delayhide)
}
