function init(naam) {
  // menu definitie
  Rinit(naam);
  hoofd = new Array();
  hoofd[0] = new Object();
  hoofd[0].tekst = "Home";
  hoofd[0].link = "index.html";
  hoofd[0].subs = null;
  hoofd[1] = new Object();
  hoofd[1].tekst = "Waarom Batec?";
  hoofd[1].link = "waarom_batec.html";
  hoofd[1].subs = null;
  hoofd[2] = new Object();
  hoofd[2].tekst = "Specialismen";
  hoofd[2].link = "#";
  hoofd[2].subs = new Array();
  hoofd[2].subs[0] = new Object();
  hoofd[2].subs[0].tekst = "Inspectie en advies";
  hoofd[2].subs[0].link = "spec_inspectie_advies.html";
  hoofd[2].subs[1] = new Object();
  hoofd[2].subs[1].tekst = "Saneren";
  hoofd[2].subs[1].link = "spec_saneren.html";
  hoofd[2].subs[2] = new Object();
  hoofd[2].subs[2].tekst = "Handmatig repareren";
  hoofd[2].subs[2].link = "spec_handmatig_repareren.html";
  hoofd[2].subs[3] = new Object();
  hoofd[2].subs[3].tekst = "Spuitbeton (nat en droog)";
  hoofd[2].subs[3].link = "spec_spuitbeton.html";
  hoofd[2].subs[4] = new Object();
  hoofd[2].subs[4].tekst = "Injecteren";
  hoofd[2].subs[4].link = "spec_injecteren.html";
  hoofd[2].subs[5] = new Object();
  hoofd[2].subs[5].tekst = "Beton- en staalconservering";
  hoofd[2].subs[5].link = "spec_beton_staalconservering.html";
  hoofd[2].subs[6] = new Object();
  hoofd[2].subs[6].tekst = "Vloerafwerking";
  hoofd[2].subs[6].link = "spec_vloerafwerking.html";
  hoofd[2].subs[7] = new Object();
  hoofd[2].subs[7].tekst = "Brandwerende bekleding";
  hoofd[2].subs[7].link = "spec_brandwerende_bekleding.html";
  hoofd[2].subs[8] = new Object();
  hoofd[2].subs[8].tekst = "Kathodische bescherming";
  hoofd[2].subs[8].link = "spec_kathodische_bescherming.html";
  hoofd[2].subs[9] = new Object();
  hoofd[2].subs[9].tekst = "Slijtlagen en voegovergangen";
  hoofd[2].subs[9].link = "spec_slijtlagen_voegovergangen.html";
  hoofd[3] = new Object();
  hoofd[3].tekst = "Meerjaren Inspectie en Onderhoudsplan Kunstwerken";
  hoofd[3].link = "#";
  hoofd[3].subs = new Array();
  hoofd[3].subs[0] = new Object();
  hoofd[3].subs[0].tekst = "Wat is MIOK";
  hoofd[3].subs[0].link = "miok_wat_is_miok.html";
  hoofd[3].subs[1] = new Object();
  hoofd[3].subs[1].tekst = "Voordelen van een MIOK voor beheerders van civiele kunstwerken";
  hoofd[3].subs[1].link = "miok_voordelen.html";
  hoofd[3].subs[2] = new Object();
  hoofd[3].subs[2].tekst = "Regelmatig onderhoud, minimale onderhoudskosten";
  hoofd[3].subs[2].link = "miok_regelmatig_onderhoud.html";
  hoofd[3].subs[3] = new Object();
  hoofd[3].subs[3].tekst = "Uitvoering, kwaliteit en veiligheid";
  hoofd[3].subs[3].link = "miok_uitvoering_kwaliteit_veiligheid.html";
  hoofd[3].subs[4] = new Object();
  hoofd[3].subs[4].tekst = "Zekerheid";
  hoofd[3].subs[4].link = "miok_zekerheid.html";
  hoofd[4] = new Object();
  hoofd[4].tekst = "Uitgevoerde projecten";
  hoofd[4].link = "#";
  hoofd[4].subs = new Array();
  hoofd[4].subs[0] = new Object();
  hoofd[4].subs[0].tekst = "Gemeente";
  hoofd[4].subs[0].link = "proj_gemeente.html";
  hoofd[4].subs[1] = new Object();
  hoofd[4].subs[1].tekst = "Rijkswaterstaat of Provincie";
  hoofd[4].subs[1].link = "proj_rijkswaterstaat_provincie.html";
  hoofd[4].subs[2] = new Object();
  hoofd[4].subs[2].tekst = "Waterschap / zuiveringschap";
  hoofd[4].subs[2].link = "proj_waterschap_zuiveringschap.html";
  hoofd[4].subs[3] = new Object();
  hoofd[4].subs[3].tekst = "Woningbouwvereniging / VVE / Utiliteitsbouw";
  hoofd[4].subs[3].link = "proj_woningbouw_vve_utiliteitsbouw .html";
  hoofd[4].subs[4] = new Object();
  hoofd[4].subs[4].tekst = "Energieleverancier";
  hoofd[4].subs[4].link = "proj_energieleverancier.html";
  hoofd[4].subs[5] = new Object();
  hoofd[4].subs[5].tekst = "Overigen";
  hoofd[4].subs[5].link = "proj_overigen.html";
  hoofd[5] = new Object();
  hoofd[5].tekst = "Downloaden brochures";
  hoofd[5].link = "downloaden_brochures.html";
  hoofd[5].subs = null;
  hoofd[6] = new Object();
  hoofd[6].tekst = "Nieuwsbrieven";
  hoofd[6].link = "downloaden_nieuwsbrieven.html";
  hoofd[6].subs = null;
  hoofd[7] = new Object();
  hoofd[7].tekst = "Aanmelden nieuwsbrief";
  hoofd[7].link = "aanmelden_nieuwsbrief.html";
  hoofd[7].subs = null;
  

  //constanten
  menu_kleur_ongeactiveerd = "#C8002F"; // rood
  menu_kleur_geactiveerd = "#063278"; // blauw
  v_spacing = 0; // pixels
  h_spacing = 7; // pixels
  naam_fix_elt = "fix"; // naam van element waar menu moet komen
  naam_cont_elt = "cont"; // naam van het (door het script te cre‘ren) element waar het in komt
  naam_cont_sub = "contSub"; //naam waar submenu in komt, zal zitten IN naam_cont_elt
  my_time = 1000; // milliseconden, hoe langer hoe "relaxter", maar ook hoe langer, hoe groter de "glitch"


  //state variable
  b = false;
  constN = naam;
  qi = 0;
  curl = null;
  curobj = null;
  exc = false;
  
  scanForBlue(naam);
  buildMenu();
  expand(naam);
  lelijkeSetMouseEvents();
}

//code
function buildMenu() {
  var eik = document.getElementById(naam_fix_elt);
  var e = getXY(eik);
  var f = getWH(eik);
  var acc = e.y;
  //if (!document.getElementById(naam_cont_elt) {
  var div = document.createElement("div");
  div.id = naam_cont_elt;
  document.body.appendChild(div);
  //document.body.innerHTML = document.body.innerHTML;
  //}
  var div2 = document.createElement("div");
  div2.id = naam_cont_sub;
  document.getElementById(naam_cont_elt).appendChild(div2);
  for(var i = 0; i < hoofd.length; i++) {
    var item = document.createElement("table");
    var tb = document.createElement("tbody");
    var tr = document.createElement("tr");
    var td = document.createElement("td");
    item.id = "item" + i;
    item.style.position = "absolute";
    item.style.left = e.x;
    item.style.top = acc;
    item.style.borderBottom = "4px solid white";
    if (hoofd[i].isActive) item.style.backgroundColor = menu_kleur_geactiveerd;
    else item.style.backgroundColor = menu_kleur_ongeactiveerd;
    item.width = f.w;
    var link = document.createElement("a");
    if (hoofd[i].link != null) link.href = hoofd[i].link;
    else {
      link.style.cursor = "Hand";
      if (!document.all) link.href = "";
    }
    //link.setProperty("myname",hoofd[i].tekst);
    link.myname = hoofd[i].tekst;
    link.style.color = "white";
    link.style.textDecoration = "none";
    link.style.fontWeight = "bold";
    link.style.fontSize = "11px";
    var tekst = document.createTextNode(hoofd[i].tekst);
    link.appendChild(tekst);
    td.appendChild(link);
    tr.appendChild(td);
    tb.appendChild(tr);
    item.appendChild(tb);
    //link.appendChild(item);
    document.getElementById(naam_cont_elt).appendChild(item);
    //document.body.appendChild(item);
    var left2 = parseInt(item.style.left) + f.w + h_spacing;
    var hacc = acc;
    //document.getElementById(naam_cont_elt).innerHTML = document.getElementById(naam_cont_elt).innerHTML;
    document.body.innerHTML = document.body.innerHTML;
    itemViaID = document.getElementById("item" + i);
    acc += v_spacing + itemViaID.offsetHeight;
    /*if (hoofd[i].subs != null) {
      for (var j = 0; j < hoofd[i].subs.length; j++) {
        var item = document.createElement("table");
        var tr = document.createElement("tr");
        var td = document.createElement("td");
        item.id = "item" + i + "sub" + j;
        item.style.position = "absolute";
        item.style.left = left2
        item.style.top = hacc;
        item.style.borderBottom = "4px solid white";
        if (hoofd[i].subs[j].isActive) item.style.backgroundColor = menu_kleur_geactiveerd;
        else item.style.backgroundColor = menu_kleur_ongeactiveerd;
        item.width = f.w;
        var link = document.createElement("a");
        link.href = hoofd[i].subs[j].link;
        link.style.color = "white";
        link.style.fontWeight = "normal";
        link.style.textDecoration = "none";
        link.style.fontSize = "11px";
        //link.id = "link" + i + "sub" + j;
        var tekst = document.createTextNode(hoofd[i].subs[j].tekst);
        link.appendChild(tekst);
        td.appendChild(link);
        tr.appendChild(td);
        item.appendChild(tr);
        //link.appendChild(item);
        document.getElementById(naam_cont_elt).appendChild(item);
        //document.body.appendChild(item);
        document.body.innerHTML = document.body.innerHTML;
        itemViaID = document.getElementById("item" + i + "sub" + j);
        hoofd[i].subs[j].me = itemViaID;
        hacc += v_spacing + itemViaID.offsetHeight;
        itemViaID.style.display = "none";
        //linkViaID = document.getElementById("link" + i + "sub" + j);
        //linkViaID.width = itemViaID.offsetWidth;
      }
    }*/
  }
  var x = document.getElementById(naam_cont_elt);
  var links = x.getElementsByTagName("a");
  for (var i = 0; i < links.length; i++) {
    //alert(links[i]);
    //links[i].onclick = function () { changeTo(this.innerHTML) };
    links[i].onmouseover = function () { changeColor(this,true) };
    links[i].onmouseout = function () { backColor(this) };
  }
}

function getXY(eik) {
  var e = new Object();
  e.x = eik.offsetLeft;
  e.y = eik.offsetTop;
  return e;
}

function getWH(eik) {
  var f = new Object();
  f.w = eik.offsetWidth;
  f.h = eik.offsetHeight;
  return f;
}

function scanForBlue(name) {
  for (var i = 0; i < hoofd.length; i++) {
    if (hoofd[i].tekst == name || hoofd[i].tekst == constN) {
      hoofd[i].isActive = true;
    } else {
      hoofd[i].isActive = false;
    }
    if (hoofd[i].subs != null) {
      for (var j = 0; j < hoofd[i].subs.length; j++) {
        if (hoofd[i].subs[j].tekst == name || hoofd[i].subs[j].tekst == constN) {
          hoofd[i].subs[j].isActive = true;
          hoofd[i].isActive = true;
        } else {
          hoofd[i].subs[j].isActive = false;
        }
      }
    }
  }
}

/*function expand(name) {
  for (var i = 0; i < hoofd.length; i++) {
    if (hoofd[i].tekst == name && hoofd[i].subs != null) {
      for (var j = 0; j < hoofd[i].subs.length; j++) {
        var obj = hoofd[i].subs[j].me;
        //alert(obj.style.display);
        obj.style.display = "";
        //alert(obj.style.display);
      }
      //document.body.innerHTML = document.body.innerHTML;
    }
  }
}*/

function expand(name) {
  for (var i = 0; i < hoofd.length; i++) {
    if (hoofd[i].tekst == name && hoofd[i].subs != null) {
    var eik = document.getElementById(naam_fix_elt);
    var e = getXY(eik);
    var f = getWH(eik);
    var left2 = e.x + f.w + h_spacing;
    var hacc = e.y;
      for (var j = 0; j < hoofd[i].subs.length; j++) {
        var item = document.createElement("table");
        var tb = document.createElement("tbody");
        var tr = document.createElement("tr");
        var td = document.createElement("td");
        item.id = "item" + i + "sub" + j;
        item.style.position = "absolute";
        item.style.left = left2
        item.style.top = hacc;
        item.style.borderBottom = "4px solid white";
        if (hoofd[i].subs[j].isActive) item.style.backgroundColor = menu_kleur_geactiveerd;
        else item.style.backgroundColor = menu_kleur_ongeactiveerd;
        item.width = f.w;
        var link = document.createElement("a");
        link.href = hoofd[i].subs[j].link;
        link.style.color = "white";
        link.style.fontWeight = "normal";
        link.style.textDecoration = "none";
        link.style.fontSize = "11px";
        //link.id = "link" + i + "sub" + j;
        var tekst = document.createTextNode(hoofd[i].subs[j].tekst);
        link.appendChild(tekst);
        td.appendChild(link);
        tr.appendChild(td);
        tb.appendChild(tr);
        item.appendChild(tb);
        //link.appendChild(item);
        document.getElementById(naam_cont_sub).appendChild(item);
        //document.body.appendChild(item);
        if (document.all) {
          document.getElementById(naam_cont_sub).innerHTML = document.getElementById(naam_cont_sub).innerHTML;
        }
        itemViaID = document.getElementById("item" + i + "sub" + j);
        hoofd[i].subs[j].me = itemViaID;
        hacc += v_spacing + itemViaID.offsetHeight;
        //itemViaID.style.display = "none";
        //linkViaID = document.getElementById("link" + i + "sub" + j);
        //linkViaID.width = itemViaID.offsetWidth;
      }
    }
  }
  var x = document.getElementById(naam_cont_sub);
  var links = x.getElementsByTagName("a");
  for (var i = 0; i < links.length; i++) {
    //alert(links[i]);
    links[i].onmouseover = function () { changeColor(this, false) };
    links[i].onmouseout = function () { backColor(this) };
  }
  //document.body.innerHTML = document.body.innerHTML;
}

/*function changeTo(name) {
  scanForBlue(name);
  var c = document.getElementById(naam_cont_elt);
  var d = c.parentNode;
  d.removeChild(c);
  //c.parentNode.removeChild(c);
  //document.removeChild(c);
  buildMenu();
  if (name != null) expand(name);
}

function changeColor(obj) {
  cur = obj;
  isSub = isSubA(obj);
  obj.parentNode.parentNode.parentNode.parentNode.style.backgroundColor = menu_kleur_geactiveerd;
  if
  if (!b) {
    changeTo(obj.innerHTML);
    b = true;
  }
}

function backColor(obj) {
  setTimeout(bc, my_time);
  if (isSubA(obj)) {
    var p = false;
    for (var i = 0; i < hoofd.length; i++) {
      if (hoofd[i].tekst == obj.innerHTML) p = hoofd[i].isActive;
      if (hoofd[i].subs != null) {
        for (var j = 0; j < hoofd[i].subs.length; j++) {
          if (hoofd[i].subs[j].tekst == obj.innerHTML) p = hoofd[i].subs[j].isActive;
        }
      }
    }
    if (p) obj.parentNode.parentNode.parentNode.parentNode.style.backgroundColor = menu_kleur_geactiveerd;
    else obj.parentNode.parentNode.parentNode.parentNode.style.backgroundColor = menu_kleur_ongeactiveerd;
  }
  isSub = false;
}

function isSubA(obj) {
  for (var i = 0; i < hoofd.length; i++) {
    if (hoofd[i].subs != null) {
      for (var j = 0; j < hoofd[i].subs.length; j++) {
        if (hoofd[i].subs[j].tekst == obj.innerHTML) return true;
      }
    }
  }
}

function bc() {
  if (!isSub) {
    changeTo(null);
    b = false;
    if (cur != null) {
      changeColor(cur);
    }
  }
}*/
function changeColor(obj) {
  if (!b) {
    if (isExp(obj)) {
      exc = false;
      if (curl != null && curobj != null) trueColorSetter(curl,curobj);
      eraseExpands();
      expand(obj.innerHTML);
      curl = obj.innerHTML;
      curobj = obj;
      exc = true;
    }
    obj.parentNode.parentNode.parentNode.parentNode.style.backgroundColor = menu_kleur_geactiveerd;
    b = true;
  }
  if (obj.innerHTML == curl || isSub(obj)) over = true;
  else over = false;
}

function backColor(obj) {
  trueColorSetter(obj.innerHTML, obj);
  if (isExp(obj) || isSub(obj)) {
    delay();
  }
  b = false;
  over = false;
}

function trueColorSetter(objn,obj) {
  for (var i = 0; i < hoofd.length; i++) {
    if (hoofd[i].tekst == objn) p = hoofd[i].isActive;
    if (hoofd[i].subs != null) {
      for (var j = 0; j < hoofd[i].subs.length; j++) {
        if (hoofd[i].subs[j].tekst == objn) p = hoofd[i].subs[j].isActive;
      }
    }
  }
  if (p || (exc && curl == objn)) obj.parentNode.parentNode.parentNode.parentNode.style.backgroundColor = menu_kleur_geactiveerd;
  else obj.parentNode.parentNode.parentNode.parentNode.style.backgroundColor = menu_kleur_ongeactiveerd;
}

function isSub(obj) {
  for (var i = 0; i < hoofd.length; i++) {
    if (hoofd[i].subs != null) {
      for (var j = 0; j < hoofd[i].subs.length; j++) {
        if (hoofd[i].subs[j].tekst == obj.innerHTML) return true;
      }
    }
  }
  return false;
}

function isExp(obj) {
  for (var i = 0; i < hoofd.length; i++) {
    if (hoofd[i].subs != null && hoofd[i].tekst == obj.innerHTML) {
      return true;
    }
  }
  return false;
}

function delay() {
  qi++;
  setTimeout("timedOut(" + qi + ")", my_time);
}

function timedOut(qj) {
  if (qi == qj) {
    if (!over) {
      exc = false;
      trueColorSetter(curl,curobj);
      eraseExpands();
    }
  }
}

function eraseExpands() {
  var c = document.getElementById(naam_cont_sub);
  var d = c.parentNode;
  d.removeChild(c);
  var div2 = document.createElement("div");
  div2.id = naam_cont_sub;
  document.getElementById(naam_cont_elt).appendChild(div2);
}