//=====================================Menu Function============================================= var menuTime; var hideSub = null; var closetype; function isMenuItem(obj) { while (obj.nodeType==1 && obj.tagName.toLowerCase() != "ul") { if (obj.tagName.toLowerCase() == "li") return obj; obj = (obj.parentElement) ? obj.parentElement : obj.parentNode; } return false; } function addStyle(obj, class_name) { var cn = obj.className; var re = new RegExp("(^| )" + class_name + "($| )"); var re1 = new RegExp("(^| )" + "*cust" + class_name + "($| )"); var re2 = new RegExp("cust"); if (re.test(cn)) return false; if (re1.test(cn)) return false; if ((re2.test(cn)) && ((class_name == "sub") || (class_name == "sub over"))) { cn = cn.replace(re2, "cust" + class_name); } else { if (cn != "" && cn.charAt(cn.length - 1) != " ") cn += " "; cn += class_name; } obj.className = cn; } function removeStyle(obj, class_name) { if (!obj) return; var re = new RegExp(" " + class_name + " "); var re1 = new RegExp("(^" + class_name + " )|( " + class_name + "$)|(^" + class_name + "$)"); var re2 = new RegExp("cust" + class_name + "($| )"); if ( closetype == 'all' ) { while (obj && (obj != document) && (obj.className != "menu") && (obj.className != "menu1")) { if (obj.tagName.toLowerCase() == "li") { var cn = obj.className; cn = cn.replace(re, " "); cn = cn.replace(re1, ""); cn = cn.replace(re2, "cust"); obj.className = cn; } obj = (obj.parentElement) ? obj.parentElement : obj.parentNode; } hideSub = null; } else { var cn = obj.className; cn = cn.replace(re, " "); cn = cn.replace(re1, ""); cn = cn.replace(re2, "cust"); obj.className = cn; } } function parentUL(obj) { parentul = ((obj.parentElement) ? obj.parentElement : obj.parentNode); return parentul; } function parentLI(obj) { parentul = ((obj.parentElement) ? obj.parentElement : obj.parentNode); if ((parentul.className == "menu") || (parentul.className == "menu1")) return null; parentli = ((parentul.parentElement) ? parentul.parentElement : parentul.parentNode); return parentli; } function doubleParentUL(obj) { parentul = ((obj.parentElement) ? obj.parentElement : obj.parentNode); if ((parentul.className == "menu") || (parentul.className == "menu1")) return null; doubleparentul = ((parentul.parentElement) ? parentul.parentElement.parentElement : parentul.parentNode.parentNode); return doubleparentul; } function handleMouseOver(e) { var el = (e) ? e.target : event.srcElement; var menuitem = isMenuItem(el); if (menuitem) { var vParentUL = null; var vParentLI = null; var vDoubleParentUL = null; var vHideParentUL = null; var vHideParentLI = null; var vHideDoubleParentUL = null; vParentUL = parentUL(menuitem); vParentLI = parentLI(menuitem); vDoubleParentUL = doubleParentUL(menuitem); if (hideSub != null) { vHideParentUL = parentUL(hideSub); vHideParentLI = parentLI(hideSub); vHideDoubleParentUL = doubleParentUL(hideSub); } if (menuitem == hideSub) { clearTimeout(menuTime); addStyle(menuitem, "over"); hideSub = menuitem; } else if (hideSub == null) { addStyle(menuitem, "sub over"); } else if (vParentUL == vHideParentUL) { clearTimeout(menuTime); closetype = 'current'; removeStyle(hideSub, "sub"); addStyle(menuitem, "sub over"); hideSub = menuitem; } else if ((vParentLI != null) && (vParentLI == hideSub)) { clearTimeout(menuTime); addStyle(menuitem, "sub over"); hideSub = menuitem; } else if ((vHideParentLI != null) && (vHideParentLI == menuitem)) { clearTimeout(menuTime); closetype = 'current'; removeStyle(hideSub, "sub"); addStyle(menuitem, "over"); hideSub = menuitem; } else if ((vHideDoubleParentUL != null) && (vHideDoubleParentUL == vParentUL)) { clearTimeout(menuTime); closetype = 'current'; removeStyle(hideSub, "sub"); removeStyle(vHideParentLI, "sub"); addStyle(menuitem, "sub over"); hideSub = menuitem; } else { clearTimeout(menuTime); closetype = 'all'; removeStyle(hideSub, "sub"); } } } function handleMouseOut(e) { var el = (e) ? e.target : event.srcElement; var menuitem = isMenuItem(el); if (menuitem) { removeStyle(menuitem, "over"); hideSub = menuitem; closetype = 'all'; menuTime = setTimeout('removeStyle(hideSub, "sub")', 200); } } function handleClick(e) { var el = (e) ? e.target : event.srcElement; var menuitem = isMenuItem(el); if (menuitem && el.tagName.toLowerCase() != "a") { neededA = menuitem.getElementsByTagName("a"); if ( neededA.length != 0 ) { neededLink = neededA[0].getAttribute('href',2); neededLocation = neededA[0].getAttribute('target',2); if (neededLocation && neededLocation == "_blank") { window.open(neededLink,"",""); } else { location.assign(neededLink); } } } } function menuInit(){ try{document.getElementById('site_menu').onmouseover = handleMouseOver;} catch(err){alert('over: no menu');}; try{document.getElementById('site_menu').onmouseout = handleMouseOut;} catch(err){alert('out: no menu');}; try{document.getElementById('site_menu').onclick = handleClick;} catch(err){alert('click: no menu');}; }