// Fix Cascading Menus v1.7 by Matt Ditter (Jan. 2008; updated Mar. 2010)
// Enables drop downs in IE6, supports tabbing through sublists,
// and adds rollover to top-level image on sublist mouseover
// for cascading menus v 3.0
var lastMenuLink = null;
function fixMenu() {
	var divs = document.getElementsByTagName('div');
	for (var i = 0, div; div = divs[i]; i++) {
		if (/(^| )cascadingMenu/.test(div.className) && div.getElementsByTagName('ul').length) {
			var lists = div.getElementsByTagName('ul');
			for (var x = 0, list; list = lists[x]; x++) {
				var lis = list.getElementsByTagName('li');
				for (var j = 0, li; li = lis[j]; j++) {
					var anchors = li.getElementsByTagName('a'),
					sublists = li.getElementsByTagName('ul');
					if (anchors.length) {
						if (li.parentNode == list) anchors[0].onblur = function () {
							lastMenuLink = 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)menuover(?:\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.parentNode.tagName != 'LI';
								if (topLI && lastMenuLink && (n.getElementsByTagName('a')[0] != lastMenuLink)) {
									var lastMenuItem = lastMenuLink.parentNode;
									while (lastMenuItem) {
										if (lastMenuItem.tagName == 'LI') break;
										else lastMenuItem = lastMenuItem.parentNode;
									}
									lastMenuItem.className = lastMenuItem.className.replace(/(?:^|\s)menuover(?:\b|$)/gi, '');
									var lastItems = lastMenuItem.getElementsByTagName('li');
									if (lastItems) for (var k = 0, lastItem; lastItem = lastItems[k]; k++) lastItem.className = lastItem.className.replace(/(?:^|\s)menuover(?:\b|$)/gi, '');
									lastMenuLink = null;
								}
								if (n.tagName == 'LI') n.className += ' menuover';
								n = n.parentNode;
							}
						}
						if (sublists.length) {
							li.onmouseover = function () {
								this.className += ' menuover';
								var listPic = this.getElementsByTagName('img')[0];
								if (listPic && listPic.className.match(/(?:^|\s)over(?:\b|$)/gi) && listPic.src.indexOf('/blank.gif') == -1) {
									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)menuover(?:\b|$)/gi, '');
								var listPic = this.getElementsByTagName('img')[0];
								if (listPic && listPic.className.match(/(?:^|\s)over(?:\b|$)/gi) && listPic.src.indexOf('/blank.gif') == -1) {
									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)menuover(?:\b|$)/gi, '');
									}
									n = n.parentNode;
									if (n == list) break;
								}
							}
						}
					}
				}
			}
		}
	}
}

