// Fix Hier Menus v1.4 by Matt Ditter (Jan. 2008; updated August 2008)

// Enables drop downs in IE6, supports tabbing through sublists,

// and adds rollover to top-level image on sublist mouseover

var lastHierLink = null;

function fixMenu() {

 var lists = document.getElementsByTagName('ul');

 for (var i=0, list; list = lists[i]; i++) {

  if (list.id && !list.id.indexOf('menu')) {

   var lis = list.getElementsByTagName('li');

   for (var j=0, li; li = lis[j]; j++) {

    var anchors = li.getElementsByTagName('a'), sublists = li.getElementsByTagName('ul');

    if (li.className && (li.className == 'itemFirst' || li.className == 'itemLast')) {

     var parLIs = li.parentNode.getElementsByTagName('li');

     if (li != parLIs[0] && li != parLIs[parLIs.length-1]) li.className = '';

    }

    if (anchors.length) {

     if (li.parentNode == list) anchors[0].onblur = function() { lastHierLink = this; }

     else if (sublists.length) {

      anchors[0].onblur = function() {

     	 var n = this.parentNode;

       while (n) {

        if (n.tagName == 'LI') { n.className = n.className.replace(/(?:^|\s)hierover(?:\b|$)/gi,'');	break; }

        n = n.parentNode;

     }}}

     anchors[0].onfocus = function() {

      var n = this.parentNode;

      while (n) {

       var p = n.parentNode, topLI = p && p.tagName == 'UL' && p.id && !p.id.indexOf('menu');

       if (topLI && lastHierLink && (n.getElementsByTagName('a')[0] != lastHierLink)) {

        var lastHierItem = lastHierLink.parentNode;

        while (lastHierItem) {

         if (lastHierItem.tagName == 'LI') break;

         else lastHierItem = lastHierItem.parentNode;

        }

        lastHierItem.className = lastHierItem.className.replace(/(?:^|\s)hierover(?:\b|$)/gi,'');

        var lastItems = lastHierItem.getElementsByTagName('li');

        if (lastItems)

         for (var k=0, lastItem; lastItem = lastItems[k]; k++)

          lastItem.className = lastItem.className.replace(/(?:^|\s)hierover(?:\b|$)/gi,'');

        lastHierLink = null;

       }

       if (n.tagName == 'LI') n.className += ' hierover';

       n = n.parentNode;

     }}

     if (sublists.length) {

      li.onmouseover = function() {

       this.className += ' hierover';

       var listPic = this.getElementsByTagName('img')[0];

       if (listPic && listPic.className.match(/(?:^|\s)over(?:\b|$)/gi)) {

        var path = listPic.src, dot = path.lastIndexOf('.');

        if (path.indexOf('-o.') == -1) listPic.src = path.substring(0,dot)+'-o'+path.substring(dot,path.length);

      }} 

      li.onmouseout = function() {

       this.className = this.className.replace(/(?:^|\s)hierover(?:\b|$)/gi,'');

       var listPic = this.getElementsByTagName('img')[0];

       if (listPic && listPic.className.match(/(?:^|\s)over(?:\b|$)/gi)) {

        var path = listPic.src;

        if (path.indexOf('-o.') > -1) listPic.src = path.replace(/\-o\./gi,'.');

      }}

      anchors[anchors.length-1].onblur = function() {

       var n = this.parentNode;

       while (n) {

        if (n.tagName == 'LI') {

         var subLinks = n.getElementsByTagName('a');

         if (subLinks[subLinks.length-1] == this) n.className = n.className.replace(/(?:^|\s)hierover(?:\b|$)/gi,'');

        }

        n = n.parentNode;

        if (n == list) break;

}}}}}}}}
