
//
// Het concept en de JavaScript-code voor 
// 'Graceful Transformation' van uitklapmenu's is 
// afkomstig van Salar al Khafaji (website@salar.xs4all.nl),
// met bijdragen van Warden Dave, en is ontwikkeld
// naar aanleiding van een discussie in 
// de nieuwsgroep nl.internet.www.ontwerp
// Gebruik van dit script is toegestaan, mits Salar en 
// Warden er de credits voor krijgen, uiteraard.
//
// Gelieve deze mededeling intact te laten.
//
// Uitklapmenu-Script
//

  var d = document;
  
  function createDropDown() {};
  
  if (d.getElementById && d.getElementsByTagName && d.createElement)
  {
    function createDropDown(id)
    {
      var linkBox = d.getElementById(id);
      if (!linkBox) return false;
      
      var selectBox = d.createElement('select');
      if (!selectBox) return false;
      
      selectBox.exec = function () {
        var i = this.selectedIndex;
        if (i > 0) {
           this.selectedIndex = 0;
           location.href = this.options[i].value;
        }
      };

      selectBox.onblur = function () {
        this.onchange = null;
      };
      
      selectBox.onmousedown = function () {
        this.onchange = this.exec;
      };

      selectBox.onkeypress = function (e)
      {
        if (e) 
           var key = e.keyCode;
        else if (window.event)
           var key = event.keyCode;
        else
           return;
           
        if (key == 13)
           this.exec();
      };
      
      var optionEl = d.createElement('option');
      optionEl.value = '';
      optionEl.appendChild( d.createTextNode('======== kies ========') );
      selectBox.appendChild(optionEl);
      
      for (var a, i = 0; a = linkBox.getElementsByTagName('a')[i]; i++)
      {
          optionEl = d.createElement('option');
          
          optionEl.value = a.href;
          if (a.title) optionEl.title = a.title;
          optionEl.appendChild( d.createTextNode( parseLinkText(a) ) );
          
          selectBox.appendChild(optionEl);
      };
      
      var lbParent = linkBox.parentNode;
      lbParent.replaceChild(selectBox, linkBox);
      
      return true;
    };
    
    function parseLinkText(a)
    {
      var linkText = '';
      
      if (a.normalize) a.normalize();
      
      for (var t, i = 0; t = a.childNodes[i]; i++)
          if (t.nodeType == 3) linkText += t.nodeValue;
          
      return linkText;
    };
  };
  
  window.onload = function()
  {
    createDropDown('uitklapmenu1');
    createDropDown('uitklapmenu2');
  };

