
  var isDOM = (document.getElementById ? true : false); 
  var isIE4 = ((document.all && !isDOM) ? true : false);
  var isNS4 = (document.layers ? true : false);

  function getRef(id) {
    if (isDOM) {
      return document.getElementById(id);      
    }
    if (isIE4) {
      return document.all[id];
    }
    if (isNS4) {
      return document.layers[id];
    }
  }
  
  function getSty(id) {
    return (isNS4 ? getRef(id) : getRef(id).style);
  } 

  // Hide timeout.
  var popTimer = 0;
  // Array showing highlighted menu items.
  var litNow = new Array();

  function popOver(menuNum, itemNum) {
    clearTimeout(popTimer);
    hideAllBut(menuNum);
    litNow = getTree(menuNum, itemNum);	
    changeCol(litNow, true);
    targetNum = menu[menuNum][itemNum].target;
    if (targetNum > 0) {
      thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
      thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
      with (menu[targetNum][0].ref) {
        left = parseInt(thisX + menu[targetNum][0].x);
        top = parseInt(thisY + menu[targetNum][0].y);
        visibility = 'visible';
      }
    }
  }

  function popOut(menuNum, itemNum) {
    if ((menuNum == 0) && !menu[menuNum][itemNum].target)
      hideAllBut(0)
    else
      popTimer = setTimeout('hideAllBut(0)', 500);
  }

  function getTree(menuNum, itemNum) {

    // Array index is the menu number. The contents are null (if that menu is not a parent)
    // or the item number in that menu that is an ancestor (to light it up).
    itemArray = new Array(menu.length);

    while(1) {
      itemArray[menuNum] = itemNum;
      // If we've reached the top of the hierarchy, return.
      if (menuNum == 0) 
        return itemArray;
      itemNum = menu[menuNum][0].parentItem;
      menuNum = menu[menuNum][0].parentMenu;
    }
  }

  // Pass an array and a boolean to specify colour change, true = over colour.
  function changeCol(changeArray, isOver) {
    for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
      if (changeArray[menuCount]) {
        newCol = isOver ? menu[menuCount][changeArray[menuCount]].overCol : menu[menuCount][changeArray[menuCount]].backCol;
        // Change the colours of the div/layer background.
        with (menu[menuCount][changeArray[menuCount]].ref) {
          if (isNS4)
            bgColor = newCol;
          else 
            backgroundColor = newCol;
        }
      }
    }
  }
  
  function hideAllBut(menuNum) {
    var keepMenus = getTree(menuNum, 1);
    
    for (count = 0; count < menu.length; count++)
      if (!keepMenus[count])
        menu[count][0].ref.visibility = 'hidden';
    changeCol(litNow, false);
  }

  // *** MENU CONSTRUCTION FUNCTIONS ***

  function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) {    
    // True or false - a vertical menu?
    this.isVert = isVert;
    // The popout indicator used (if any) for this menu.
    this.popInd = popInd
    // Position and size settings.
    this.x = x;
    this.y = y;
    this.width = width;
    // Colours of menu and items.
    this.overCol = overCol;
    this.backCol = backCol;
    // The stylesheet class used for item borders and the text within items.
    this.borderClass = borderClass;
    this.textClass = textClass;
    // Parent menu and item numbers, indexed later.
    this.parentMenu = null;
    this.parentItem = null;
    // Reference to the object's style properties (set later).
    this.ref = null;
  }

  function Item(text, href, frame, length, spacing, target) {
    this.text = text;
    this.href = href;
    this.frame = frame;
    this.length = length;
    this.spacing = spacing;
    this.target = target;
    // Reference to the object's style properties (set later).
    this.ref = null;
	this.x = 0;
	this.y = 0;
  }

  function Item(text, href, frame, length, spacing, target, overCol, backCol, textClass, x, y) {
    this.text = text;
    this.href = href;
    this.frame = frame;
    this.length = length;
    this.spacing = spacing;
	this.overCol = overCol;
    // Reference to the object's style properties (set later).
    this.ref = null;
	this.backCol = backCol;
	this.textClass = textClass;
    this.target = target;
	this.x = x;
	this.y = y;
  }
  
  function followLink(href)
  {
	document.location.href = href;
  }
  
  function fillLocation(obj, txt)
  {
	obj.innerHTML = txt;
	//document.location.href = loc.text;
  }  

  function writeMenus(aMenu) {
    if (!isDOM && !isIE4 && !isNS4) return;
  
    for (currMenu = 0; currMenu < aMenu.length; currMenu++) with (aMenu[currMenu][0]) {
      // Variable for holding HTML for items and positions of next item.
      var str = '', itemX = 0, itemY = 0;
  
      // Remember, items start from 1 in the array (0 is menu object itself, above).
      // Also use properties of each item nested in the other with() for construction.
      for (currItem = 1; currItem < aMenu[currMenu].length; currItem++) with (aMenu[currMenu][currItem]) {
        var itemID = 'menu' + currMenu + 'item' + currItem;
    
        // The width and height of the menu item - dependent on orientation!
        var w = (isVert ? width : length);
        var h = (isVert ? length : width);
    
        // Create a div or layer text string with appropriate styles/properties.
        // Thanks to Paul Maden (www.paulmaden.com) for helping debug this in IE4, apparently
        // the width must be a miniumum of 3 for it to work in that browser.
        if (isDOM || isIE4) {
          str += '<div id="' + itemID + '" style="position: absolute; left: ' + x + '; top: ' + y + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
          if (backCol) str += 'background: ' + backCol + '; " onclick="followLink(\'' + href + '\')"';
        }
        if (isNS4) {
          str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' +  w + '" height="' + h + '" visibility="inherit" ';
          if (backCol) str += 'bgcolor="' + backCol + '" ';
        }
        if (borderClass) str += 'class="' + borderClass + '" ';
    
        // Add mouseover handlers and finish div/layer.
        str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';
    
        // Add contents of item (default: table with link inside).
        // In IE/NS6+, add padding if there's a border to emulate NS4's layer padding.
        // If a target frame is specified, also add that to the <a> tag.
    
        str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '"><tr><td align="center" height="' + (h - 7) + '"><span class="' + textClass + '">' + text + '</span></td>'; //'<a id="location" class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text + '</a></td>';
        if (target > 0) {
    
          // Set target's parents to this menu item.
          aMenu[target][0].parentMenu = currMenu;
          aMenu[target][0].parentItem = currItem;
    
          // Add a popout indicator.
          if (popInd)
            str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
        }
        str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
        if (isVert) itemY += length + spacing;
        else itemX += length + spacing;
      }
      if (isDOM) {
        var newDiv = document.createElement('div');
        document.getElementsByTagName('body').item(0).appendChild(newDiv);
        newDiv.innerHTML = str;
        ref = newDiv.style;
        ref.position = 'absolute';
        ref.visibility = 'hidden';
      }
    
      // Insert a div tag to the end of the BODY with menu HTML in place for IE4.
      if (isIE4) {
        document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
        ref = getSty('menu' + currMenu + 'div');
      }
    
      // In NS4, create a reference to a new layer and write the items to it.
      if (isNS4) {
        ref = new Layer(0);
        ref.document.write(str);
        ref.document.close();
      }
    
      for (currItem = 1; currItem < aMenu[currMenu].length; currItem++) {
        itemName = 'menu' + currMenu + 'item' + currItem;
        if (isDOM || isIE4) 
          aMenu[currMenu][currItem].ref = getSty(itemName);
        if (isNS4)
          aMenu[currMenu][currItem].ref = ref.document[itemName];
      }
    }
    with(aMenu[0][0]) {
      ref.left = x;
      ref.top = y;
      ref.visibility = 'visible';
    }
  }


  var menu = new Array();
  var menu2 = new Array();

  var defOver = '#DDDDDD', defBack = '#FFFFFF';

  var defLength = 22;


function DefineMenus(ax,ay)
{
  // Menu 0 is the special, 'root' menu from which everything else arises.
  menu[0] = new Array();
  menu[0][0] = new Menu(false, '', ax, ay, 40, '#DDDDDD', '#FFFFCC', 'ItemBorder', 'crazyText');
  menu[0][1] = new Item('Doelstellingen, Werkwijze & Voorwaarden', 'load.php?sec=def&pn=doel_werkwijze_voorw.html', '', 157, 20, 0, '#DDDDDD', '#99FF66', 'buttonTextStd', 0, 0);
  
  // #99FF66
  // #CDFF35
  menu[0][2] = new Item('Evenementen', 'load.php?sec=def&pn=demos_lezingen.html', '', 93, 20, 0, '#DDDDDD', '#99FF66', 'buttonTextStd', 170, 0);
  menu[0][3] = new Item('Fotogalerie', 'load.php?sec=def&pn=fotos.html', '', 74, 20, 0, '#DDDDDD', '#99FF66', 'buttonTextStd', 275, 0);
  menu[0][4] = new Item('Nieuwsbrief', 'load.php?sec=def&pn=nieuwsbrief1.html', '', 80, 20, 0, '#DDDDDD', '#99FF66', 'buttonTextStd', 365, 0);
  menu[0][5] = new Item('Links', 'load.php?sec=def&pn=sponsors_links.html', 'sitecontents', 80, 20, 0, '#DDDDDD', '#99FF66', 'buttonTextStd', 640, 0);
  menu[0][6] = new Item('Contact', 'load.php?sec=def&pn=contact.html', '', 60, 20, 0, '#DDDDDD', '#99FF66', 'buttonTextStd', 565, 0);
  menu[0][7] = new Item('In het nieuws', 'load.php?sec=def&pn=inhetnieuws.html', '', 89, 20, 0, '#DDDDDD', '#99FF66', 'buttonTextStd', 460, 0);
  menu[0][8] = new Item('Gehoorzaamheidslessen GRONINGEN', '', '', 150, 20, 7, '#CDFF35', '#CDFF35', 'buttonTextBold', 0, -75);
  menu[0][9] = new Item('Gehoorzaamheidslessen WINSCHOTEN', '', '', 150, 20, 8, '#CDFF35', '#CDFF35', 'buttonTextBold', 190, -75);
  menu[0][10] = new Item('Behendigheid / Flyball SCHAAPHOK', '', '', 150, 20, 9, '#CDFF35', '#CDFF35', 'buttonTextBold', 380, -75);
  menu[0][11] = new Item('Gedragstherapie <br/> BIJ U THUIS', 'http://hondenschool-stadspark.nl/load.php?sec=def&pn=probleemgedrag.html', '', 150, 20, 0, '#DDDDDD', '#CDFF35', 'buttonTextBold', 570, -75);  
  //menu[0][12] = new Item('Waar vindt u ons?', '', '', 116, 20, 3, '#DDDDDD', '#FFFFCC', 225, 0);

  // 'Even voorstellen' menu.
  menu[1] = new Array();
  menu[1][0] = new Menu(true, '>', 0, 0, 115, defOver, defBack, 'itemBorder', 'crazyText');
  menu[1][1] = new Item('Wie zijn wij?', 'load.php?sec=def&pn=wiezijnwij.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -47);
  menu[1][2] = new Item('Trainingsmethode', 'load.php?sec=def&pn=methode.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -25);

  // Cursusaanbod menu.
  menu[2] = new Array();
  menu[2][0] = new Menu(true, '>', 0, 0, 170, defOver, defBack, 'itemBorder', 'itemText');
  menu[2][1] = new Item('Gehoorzaamheidslessen', 'load.php?sec=def&pn=curses.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -113);
  menu[2][2] = new Item('Specialisatie-cursussen', 'load.php?sec=def&pn=curses.html&anch=speccurses', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -91);
  menu[2][3] = new Item('Hulp bij probleemgedrag', 'load.php?sec=def&pn=probleemgedrag.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -69);
  menu[2][4] = new Item('Kind en hond', 'load.php?sec=def&pn=kindhond.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -47);
  menu[2][5] = new Item('Overig', 'load.php?sec=def&pn=overig.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -25);
  
  // 'Waar vindt u ons' menu
  menu[3] = new Array();
  menu[3][0] = new Menu(true, '<', 0, 0, 130, defOver, defBack, 'itemBorder', 'itemText');
  menu[3][1] = new Item('Locatie Stadspark Groningen', 'load.php?sec=def&pn=lokatie_stadspark.html', '', defLength+20, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -85);
  menu[3][2] = new Item('Locatie Woudbloem', 'load.php?sec=def&pn=lokatie_woudbloem.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -47);
  menu[3][3] = new Item('Locatie Winschoten', 'load.php?sec=def&pn=lokatie_winschoten.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -25);

  // Fotogalerie menu
  menu[4] = new Array();
  menu[4][0] = new Menu(true, '<', 0, 0, 170, defOver, defBack, 'itemBorder', 'itemText');
  menu[4][1] = new Item('Foto\'s groepswandelingen', 'load.php?sec=def&pn=groepswandelingen.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -69);
  menu[4][2] = new Item('Impressie van de lessen', 'load.php?sec=def&pn=fotos/Gehoorzaamheidslessen/index.php', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -47);
  menu[4][3] = new Item('Portretten', 'http://s69.photobucket.com/albums/i46/hondenschoolstadspark/', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -25);

  // Contact menu
  menu[5] = new Array();
  menu[5][0] = new Menu(true, '>', 0, 0, 175, defOver, defBack, 'itemBorder', 'itemText');
  menu[5][1] = new Item('Vragen over cursussen, etc.', 'load.php?sec=def&pn=contact.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -69);
  menu[5][2] = new Item('Vragen over deze website', 'load.php?sec=def&pn=contact.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -47);
  menu[5][3] = new Item('Aanmelden als cursist', 'load.php?sec=def&pn=contact.html', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -25);
  
  // Sponsoren menu
  menu[6] = new Array();
  menu[6][0] = new Menu(true, '>', 0, 0, 175, defOver, defBack, 'itemBorder', 'itemText');
  menu[6][1] = new Item('Noordpolis', 'http://www.noordpolis.nl/', '', defLength, 0, 0, '#DDDDDD', '#FFFFCC', 'itemText', 0, -25);
  
  menu[7] = new Array();
  menu[7][0] = new Menu(false, '>', 0, 0, 38, 'orange', 'orange', 'ItemBorder', 'crazyText');
  menu[7][1] = new Item('Cursusaanbod Groningen', 'load.php?sec=def&pn=curses_groningen.html', '', 150, 20, 0, '#DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -152);
  menu[7][2] = new Item('Locatie Groningen', 'load.php?sec=def&pn=lokatie_groningen.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -115);
  menu[7][3] = new Item('Instructeurs Groningen', 'load.php?sec=def&pn=wiezijnwij_groningen.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -79);
  menu[7][4] = new Item('Foto-impressie Groningen', 'load.php?sec=def&pn=fotos.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -42);
  
  menu[8] = new Array();
  menu[8][0] = new Menu(false, '...', 0, 0, 38, 'orange', 'orange', 'ItemBorder', 'crazyText');
  menu[8][1] = new Item('Cursusaanbod Winschoten', 'load.php?sec=def&pn=curses_winschoten.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -152);
  menu[8][2] = new Item('Locatie Winschoten', 'load.php?sec=def&pn=lokatie_winschoten.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -115);
  menu[8][3] = new Item('Instructeurs Winschoten', 'load.php?sec=def&pn=wiezijnwij_winschoten.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -79);
  menu[8][4] = new Item('Foto-impressie Winschoten', 'load.php?sec=def&pn=fotos.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -42);

  menu[9] = new Array();
  menu[9][0] = new Menu(false, '...', 0, 0, 38, 'orange', 'orange', 'ItemBorder', 'crazyText');
  menu[9][1] = new Item('Behendigheid', 'load.php?sec=def&pn=curses_behendigheid.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -152);
  menu[9][2] = new Item('Locatie Behendigheid', 'load.php?sec=def&pn=lokatie_schaaphok.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -115);
  menu[9][3] = new Item('Instructeurs Behendigheid', 'load.php?sec=def&pn=wiezijnwij_behendigheid.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -79);
  menu[9][4] = new Item('Foto-impressie Behendigheid', 'load.php?sec=def&pn=fotos.html', '', 150, 20, 0, 'DDDDDD', '#FFFFCC', 'buttonTextStd', 0, -42);
}

  var popOldWidth = window.innerWidth;
  nsResizeHandler = new Function('if (popOldWidth != window.innerWidth) location.reload()');


  if (isNS4) document.captureEvents(Event.CLICK);
  document.onclick = clickHandle;

  function clickHandle(evt)
  {
    if (isNS4) document.routeEvent(evt);
    hideAllBut(0);
  }


  IE4plus = (document.all) ? true : false;
  NS4 = (document.layers) ? true : false;

  function clickIE()
  {
    if (IE4plus)
      document.selection.empty();
    return false;
  }

  function clickNS(e)
  {
  
  if ((e.which==1) && NS4) {
    return (e.target!=document);
  }
  else if (e.which==1 || e.which==2 || e.which==3 ) {
          return false;
        }
  }

  if (!IE4plus) 
  {
    document.captureEvents(Event.MOUSEDOWN || Event.MOUSEUP);
    document.onmousedown=clickNS;
    document.onmouseup= clickNS;
    document.oncontextmenu=clickIE;
  } 
  else 
  {
    document.onmouseup= clickIE;
    document.oncontextmenu=clickIE;
  }


  function getWinWidth()
  {
    var winW = 630;
	
    if (parseInt(navigator.appVersion) > 3) {
      if (navigator.appName=="Netscape") {
        winW = window.innerWidth;
      }
      if (navigator.appName.indexOf("Microsoft") != -1) {
        winW = document.body.offsetWidth;
      }
    }
	
    return (winW);
  }

  function getWinHeight()
  {
    var winH = 460;

    if (parseInt(navigator.appVersion)>3) {
      if (navigator.appName=="Netscape") {
        winH = window.innerHeight;
      }
      if (navigator.appName.indexOf("Microsoft")!=-1) {
        winH = document.body.offsetHeight;
      }
    }
    return (winH);
  }

  function getMenuLeft()
  { 
	var w;
	
	w = (getWinWidth() / 2) - 350;

	return w;
  }

  function getMenuTop()
  {
      return 550;
  }

  function moveTopLeft()
  { 
    with(menu[0][0].ref) {
      left = getMenuLeft();
      top = getMenuTop();
    }
	//location.reload();
  } 


  function test()
  {
    var w, h;
    w = getWinWidth();
    h = getWinHeight();
    alert(w);
    alert(h);
    w = getMenuLeft();
    alert(w);
    h = getMenuTop();
    alert(h);
  }

  function moveRoot()
  {
    with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
  }


  function CreateMenus(t)
  { 
	var divEl = document.getElementById("maintext");	
	DefineMenus(getMenuLeft(), getMenuTop());	
    writeMenus(menu);		
  }

  function OptiResolution()
  {
    if (screen.width < 1024) {
      alert("Deze website is met name geschikt voor resoluties van 1024x768 en hoger");
    }
  }


