//Common Javascript routines available to every page
    <!--

    //Defines an event that adds mouse over and Mouse out events that in turn add and remove class name jsHover
    //  to the LI tags belonging to the header2 and header3 divs
    //This simulates the hover class for the li tags that is not supported by Internet Explorer
    //It also implements the :focus CSS behaviour in IE which does not support it directly.
    jsHover = function() {
      if (document.getElementById("header2") != null){
        var jsEls = document.getElementById("header2").getElementsByTagName("li");
        for (var i=0; i<jsEls.length; i++) {
          jsEls[i].onmouseover=function() {
              menuMouseOver(this);
          }
          jsEls[i].onmouseout=function() {
            menuMouseOut(this);
          }
          var jsEls2 = jsEls[i].getElementsByTagName("a");
          if (jsEls2.length != 0) {
            jsEls2[0].onfocus=function() {
              menuMouseOver(this.parentNode);
            }
            jsEls2[0].onblur=function() {
              menuMouseOut(this.parentNode);
            }
          }
        }
      }
      if (document.getElementById("header3") != null){
        var jsEls = document.getElementById("header3").getElementsByTagName("li");
        for (var i=0; i<jsEls.length; i++) {
          jsEls[i].onmouseover=function() {
            menuMouseOver(this);
          }
          jsEls[i].onmouseout=function() {
            menuMouseOut(this);
          }
          var jsEls2 = jsEls[i].getElementsByTagName("a");
          if (jsEls2.length != 0) {
            jsEls2[0].onfocus=function() {
              menuMouseOver(this.parentNode);
            }
            jsEls2[0].onblur=function() {
              menuMouseOut(this.parentNode);
            }
          }
        }
      }
    }

    //Called when mouse over a menu item
    function menuMouseOver(menuItem) {
      //Looks to see if we're already hovering over this element
      if (menuItem.className != "jshover") {
        menuItem.className="jshover";
        //Looks to see if this element has child li elements
        var jsEls = menuItem.getElementsByTagName("li");
        if (jsEls.length != 0) {
          for (var i=0; i<jsEls.length; i++) {
            jsEls[i].style.top = String((i * 36) + 80) + "px";
            jsEls[i].style.left = String(jsEls[0].parentNode.parentNode.offsetLeft) + "px";
          }
        }
        else {
          var parentMenuItem = menuItem.parentNode.parentNode
          if (parentMenuItem.tagName == "LI") {
            menuMouseOver(parentMenuItem);
          }
        }
      }
    }

    //Called when mouse out of a menu item
    function menuMouseOut(menuItem) {
      menuItem.className="jsnohover";
      //Looks to see if this element has child li elements
      var jsEls = menuItem.getElementsByTagName("li");
      if (jsEls.length != 0) {
        for (var i=0; i<jsEls.length; i++) {
          jsEls[i].style.left = "-999px";
        }
      }
      else {
        var parentMenuItem = menuItem.parentNode.parentNode
        if (parentMenuItem.tagName == "LI") {
          menuMouseOut(parentMenuItem);
        }
      }
    }

    //Idicates whether we have switched to a new window, or not (suppresses second OnClick on the heading)
    var changingWindow = 0;

    //Called when a menu item is clicked
    function gotoPage(menuItem) {
      var jsEls = menuItem.getElementsByTagName("a");
      if (jsEls.length != 0 && changingWindow == 0) {
        window.location = jsEls[0].href;
        changingWindow = 1;
      }
    }

    // -->
