//this function initialises menu functions, it is called from window.onLoad
function sfMenu() {
    sfFocus ();
}
    //this function emulates :hover pseudoclass for non-link elements in ie
    //since it is for ie only, it is attached via window.attachEvent
var sfHover = function() {
    var sfEls = document.getElementById("navlist").getElementsByTagName("LI");
    for (var i=0; i<sfEls.length; i++) {
        sfEls[i].onmouseover=function() {
            this.className+=" sfhover";
        }
        sfEls[i].onmouseout=function() {
            this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
        }
    }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

    //keyboard navigation (tab / shift+tab) handling
function sfFocus () {
    var sfEls = document.getElementById("navlist").getElementsByTagName("A");
    for (var i=0; i<sfEls.length; i++) {
        if (sfEls[i].className == "daddy" || sfEls[i].className == "current") {
            sfEls[i].onfocus=function() {
                if(getNextSibling(this))
                    getNextSibling(this).style.left = "auto";
                if(getPreviousSibling(this.parentNode))
                    getNextSibling(getPreviousSibling(this.parentNode).firstChild).style.left = "-1999px";
            }
        }
        if (sfEls[i].className == "last_nav_item") {
            sfEls[i].onfocus=function() {
                this.parentNode.parentNode.style.left = "auto";
                if(getNextSibling(this.parentNode.parentNode.parentNode) && getNextSibling(getNextSibling(this.parentNode.parentNode.parentNode).firstChild))
                    getNextSibling(getNextSibling(this.parentNode.parentNode.parentNode).firstChild).style.left = "-1999px";
            }
        }
    }
}
    //returns only element nodes
function getNextSibling(n) {
  do n = n.nextSibling;
  while (n && n.nodeType != 1);
  return n;
}
function getPreviousSibling(p) {
  do p = p.previousSibling;
  while (p && p.nodeType != 1);
  return p;
}