var delay = 250; var bgIframe = new Array(); var bgIframeCount = 0; var timerID = 0; var timers = new Array(); var timersIdEl = new Array(); removeHover = function(el, tid) { if (el == "") { el = timersIdEl[tid];}
el.className = el.className.replace(new RegExp("hover\\b"), "")
if (el.hasTimer) { clearTimeout(el.timerId); el.hasTimer = false;}
if (el.hasOffset == true && el.childUlIndex >= 0) { el.childNodes[el.childUlIndex].style.left = null; el.hasOffset = false;}
}
shimIframe = function(el, ulNode) { bgIframe[bgIframeCount] = document.createElement('iFrame'); var containLi = document.createElement('LI'); containLi.style.borderWidth = "0px"; containLi.style.height = "0px"; containLi.className = "bgIframeCont"; bgIframe[bgIframeCount].id = "bgIframe"+bgIframeCount; bgIframe[bgIframeCount].style.height = parseInt(el.childNodes[ulNode].offsetHeight) + "px"; bgIframe[bgIframeCount].style.width = parseInt(el.childNodes[ulNode].offsetWidth) + "px"; bgIframe[bgIframeCount].style.marginTop = "-" + parseInt(el.childNodes[ulNode].offsetHeight) + "px"; el.assocBgIframe = bgIframe[bgIframeCount].id; containLi.appendChild(bgIframe[bgIframeCount]); el.childNodes[ulNode].appendChild(containLi); bgIframeCount++;}
sfHover = function() { var ulEls = getElementsByClassName("dropNav", "UL"); for (i = 0; i < ulEls.length; i++) { sfEls = new Array(); sfEls[i] = ulEls[i].getElementsByTagName("LI"); for (var ii = 0; ii < sfEls[i].length; ii++) { sfEls[i][ii].hasOffset = false; sfEls[i][ii].needTimeout = false; for (c = 0; c < sfEls[i][ii].childNodes.length; c++) { if (sfEls[i][ii].childNodes[c] && sfEls[i][ii].childNodes[c].nodeName == "UL") { sfEls[i][ii].childUlIndex = c;}
}
if (sfEls[i][ii].childUlIndex >= 0) { sfEls[i][ii].needTimeout = true;}
if (sfEls[i][ii].childUlIndex >= 0) { shimIframe(sfEls[i][ii], sfEls[i][ii].childUlIndex);}
sfEls[i][ii].onmouseover = function() { for (c = 0; c < this.parentNode.childNodes.length; c++) { if (this.parentNode.childNodes[c] && this.parentNode.childNodes[c].nodeName == "LI" && this.parentNode.childNodes[c] != this) { if(this.parentNode.childNodes[c].timerId) { clearTimeout(this.parentNode.childNodes[c].timerId); removeHover(this.parentNode.childNodes[c]);}
}
}
if (this.className.indexOf("hover") >= 0) { if (this.hasTimer) { clearTimeout(timers[this.timerId]); this.hasTimer = false;}
}
if (this.parentNode.parentNode.className.indexOf("hover") >= 0) { if (this.parentNode.parentNode.hasTimer) { clearTimeout(timers[this.parentNode.parentNode.timerId]); this.parentNode.parentNode.hasTimer = false;}
}
if (!(this.className.indexOf("hover") >= 0)) { this.className += " hover";}
if (this.childUlIndex >= 0) { var thisLeft = parseInt(this.childNodes[this.childUlIndex].offsetLeft); var thisWidth = parseInt(this.childNodes[this.childUlIndex].offsetWidth); var docWidth = parseInt(document.documentElement.offsetWidth); if (thisLeft + thisWidth > docWidth) { var offside = (thisLeft + thisWidth) - docWidth; this.childNodes[this.childUlIndex].style.left = thisLeft - offside - 20 + "px"; this.hasOffset = true;}
}
}
sfEls[i][ii].onmouseout = function() { if (this.needTimeout == true) { if (!this.timerId) { this.timerId = timerID++;}
timersIdEl[this.timerId] = this; if (this.hasTimer) { clearTimeout(timers[this.timerId]); this.hasTimer = false;}
var localTimer = this.timerId; timers[this.timerId] = setTimeout('removeHover("", '+localTimer+')', delay); this.hasTimer = true;} else { removeHover(this); this.hasTimer = false;}
}
}
}
}
womAdd('sfHover()'); 

