/************************************************************/ /* File: NavRollover.js */ /* Author: Damien Rider */ /* Date: 29th June, 2007 */ /* Purpose: To control the sub nav function of Aus.Idol */ /* website. Allowing the sub nav to swap when */ /* reuired and return to the original sub nav. */ /************************************************************/ var navCurrent = null; var arPrimaryNav = null; var navTimeout = null; function setupNavFunction() { arPrimaryNav = new Array(); var navPrimary = document.getElementById('nav-primary') ; if (navPrimary) { var navTab = navPrimary.getElementsByTagName('li') ; for (var i = 0; i < navTab.length; i++) { arPrimaryNav.push(navTab[i]); if(navTab[i].attachEvent) { navTab[i].attachEvent('onmouseover',toggleMenu); navTab[i].attachEvent('onmouseout',releaseSubMenu); } else if(navTab[i].addEventListener) { navTab[i].addEventListener('mouseover',toggleMenu,false); navTab[i].addEventListener('mouseout',releaseSubMenu,false); } else { navTab[i].onMouseOver = toggleMenu; navTab[i].onMouseOut = releaseSubMenu; } } var subNav = document.getElementById('nav-sub'); if(subNav.attachEvent) { subNav.attachEvent('onmouseover',checkSubMenu); subNav.attachEvent('onmouseout',releaseSubMenu); } else if(subNav.addEventListener) { subNav.addEventListener('mouseover',checkSubMenu,false); subNav.addEventListener('mouseout',releaseSubMenu,false); } else { subNav.onMouseOver = checkSubMenu; subNav.onMouseOut = releaseSubMenu; } } } function toggleMenu(e) { if(navTimeout != null) { clearTimeout(navTimeout); navTimeout = null; } var targ; if (!e) var e = window.event; if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement; if (targ.nodeType == 3) // defeat Safari bug targ = targ.parentNode; var elem = targ.parentNode; var newNav = null; for(var i = 0; i < arPrimaryNav.length; i++) { if(arPrimaryNav[i] == elem) { newNav = 'nav-sub-' + (i+1); if(newNav != navCurrent) { if(navCurrent != null) document.getElementById(navCurrent).style.display = 'none'; document.getElementById(newNav).style.display = 'inline'; navCurrent = newNav; } } } } function releaseSubMenu() { if(navTimeout != null) { clearTimeout(navTimeout); navTimeout = null; } navTimeout = setTimeout('showOriginal()',500); } function checkSubMenu(e) { if(navTimeout != null) { clearTimeout(navTimeout); navTimeout = null; } } function showOriginal() { document.getElementById(navCurrent).style.display = 'none'; navCurrent = null; } setupNavFunction();