var sfHover = function(targetid) {
  if (document.getElementById(targetid)) {
    var sfEls = document.getElementById(targetid).getElementsByTagName("li");
    for (var i=0; i<sfEls.length; i++) {
      sfEls[i].onmouseover=function() {
        this.className+=(this.className.length>0? " ": "") + "lHover";
      }
      sfEls[i].onmouseout=function() {
        this.className=this.className.replace(new RegExp("( ?|^)lHover\\b"), "");
      }
    }
  }
}
var mcAccessible = function(targetid) {
  if (document.getElementById(targetid)) {
    var mcEls = document.getElementById(targetid).getElementsByTagName("a");
    for (var i=0; i<mcEls.length; i++) {
      mcEls[i].onfocus=function() {
        this.className+=(this.className.length>0? " ": "") + "lFocus"; //a:focus
        this.parentNode.className+=(this.parentNode.className.length>0? " ": "") + "lHover"; //li < a:focus
        if(this.parentNode.parentNode.parentNode.nodeName == "li") {
          this.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.className.length>0? " ": "") + "lHover"; //li < ul < li < a:focus
          if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "li") {
            this.parentNode.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.parentNode.className.length>0? " ": "") + "lHover"; //li < ul < li < ul < li < a:focus
          }
        }
      }
      mcEls[i].onblur=function() {
        this.className=this.className.replace(new RegExp("( ?|^)lFocus\\b"), "");
        this.parentNode.className=this.parentNode.className.replace(new RegExp("( ?|^)lHover\\b"), "");
        if(this.parentNode.parentNode.parentNode.nodeName == "li") {
          this.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
          if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "li") {
            this.parentNode.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)lHover\\b"), "");
          }
        }
      }
    }
  }
}

