﻿
// Dit kun je aanpassen

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)


// Hieronder niets meer wijzigen

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)
}

