对应menu.js的内容
var menuObj; 
var currentZIndex = 1000;var liIndex = 0;var visibleMenus = new Array();
var activeMenuItem = false;var timeBeforeAutoHide = 1200; var menu_arrow = 'images/arrow.gif';var MSIE = navigator.userAgent.indexOf('MSIE')>=0?true:false;var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox')>=0?true:false;var navigatorVersion = navigator.appVersion.replace(/.*?MSIE ([0-9]\.[0-9]).*/g,'$1')/1;var menuBlockArray = new Array();var menuParentOffsetLeft = false;
// {{{ getStyle()
/**
* Return specific style attribute for an element
*
* @param Object el = Reference to HTML element
* @param String property = Css property
* @private
*/
function getStyle(el,property)
{
if (document.defaultView && document.defaultView.getComputedStyle) {
var retVal = null;
var comp = document.defaultView.getComputedStyle(el, '');
if (comp){
retVal = comp[property];
if(!retVal){
var comp = document.defaultView.getComputedStyle(el, null);
retVal = comp.getPropertyCSSValue(property);
}
}
if(retVal==null)retVal='';
return el.style[property] || retVal;
}
if (document.documentElement.currentStyle && MSIE){
var value = el.currentStyle ? el.currentStyle[property] : null;
return ( el.style[property] || value );
}
return el.style[property];
}
function getTopPos(inputObj)
{
var origInputObj = inputObj;
var returnValue = inputObj.offsetTop;
if(inputObj.tagName=='LI' && inputObj.parentNode.className=='menuBlock1'){
var aTag = inputObj.getElementsByTagName('A')[0];
if(aTag)returnValue += aTag.parentNode.offsetHeight;
}
var topOfMenuReached = false;
while((inputObj = inputObj.offsetParent) != null){
if(inputObj.parentNode.id=='menu')topOfMenuReached=true;
if(topOfMenuReached && !inputObj.className.match(/menuBlock/gi) || (!MSIE && origInputObj.parentNode.className=='menuBlock1')){
var style = getStyle(inputObj,'position');
if(style=='absolute' || style=='relative'){
return returnValue;
}
}
returnValue += inputObj.offsetTop;
}
return returnValue;
}
function getLeftPos(inputObj)
{
var returnValue = inputObj.offsetLeft;
var topOfMenuReached = false;
while((inputObj = inputObj.offsetParent) != null){
if(inputObj.parentNode.id=='menu')topOfMenuReached=true;
if(topOfMenuReached && !inputObj.className.match(/menuBlock/gi)){
var style = getStyle(inputObj,'position');
if(style=='absolute' || style=='relative')return returnValue;
}
returnValue += inputObj.offsetLeft;
}
return returnValue;
}
function showHideSub()
{
var attr = this.parentNode.getAttribute('currentDepth');
if(navigator.userAgent.indexOf('Opera')>=0){
attr = this.parentNode.currentDepth;
}
this.className = 'currentDepth' + attr + 'over';
if(activeMenuItem && activeMenuItem!=this){
activeMenuItem.className=activeMenuItem.className.replace(/over/,'');
}
activeMenuItem = this;
var numericIdThis = this.id.replace(/[^0-9]/g,'');
var exceptionArray = new Array();var sub = document.getElementById('subOf' + numericIdThis);
if(sub){
visibleMenus.push(sub);
sub.style.display='';
sub.parentNode.className = sub.parentNode.className + 'over';
exceptionArray[sub.id] = true;
}var parent = this.parentNode;
while(parent && parent.id && parent.tagName=='UL'){
visibleMenus.push(parent);
exceptionArray[parent.id] = true;
parent.style.display='';
var li = document.getElementById('listItem' + parent.id.replace(/[^0-9]/g,''));
if(li.className.indexOf('over')<0)li.className = li.className + 'over';
parent = li.parentNode;
}
hideMenuItems(exceptionArray);
}
function hideMenuItems(exceptionArray)
{
/*
Hiding visible menu items
*/
var newVisibleMenuArray = new Array();
for(var no=0;no<visibleMenus.length;no++){
if(visibleMenus[no].className!='menuBlock1' && visibleMenus[no].id){
if(!exceptionArray[visibleMenus[no].id]){
var el = visibleMenus[no].getElementsByTagName('A')[0];
visibleMenus[no].style.display = 'none';
var li = document.getElementById('listItem' + visibleMenus[no].id.replace(/[^0-9]/g,''));
if(li.className.indexOf('over')>0)li.className = li.className.replace(/over/,'');
}else{
newVisibleMenuArray.push(visibleMenus[no]);
}
}
}
visibleMenus = newVisibleMenuArray;
}
var menuActive = true;
var hideTimer = 0;
function mouseOverMenu()
{
menuActive = true;
}
function mouseOutMenu()
{
menuActive = false;
timerAutoHide();
}
function timerAutoHide()
{
if(menuActive){
hideTimer = 0;
return;
}
if(hideTimer<timeBeforeAutoHide){
hideTimer+=100;
setTimeout('timerAutoHide()',99);
}else{
hideTimer = 0;
autohideMenuItems();
}
}
function autohideMenuItems()
{
if(!menuActive){
hideMenuItems(new Array());
if(activeMenuItem)activeMenuItem.className=activeMenuItem.className.replace(/over/,'');
}
}
function initSubMenus(inputObj,initOffsetLeft,currentDepth)
{
var subUl = inputObj.getElementsByTagName('UL');
if(subUl.length>0){
var ul = subUl[0];
ul.id = 'subOf' + inputObj.id.replace(/[^0-9]/g,'');
ul.setAttribute('currentDepth' ,currentDepth);
ul.currentDepth = currentDepth;
ul.className='menuBlock' + currentDepth;
ul.onmouseover = mouseOverMenu;
ul.onmouseout = mouseOutMenu;
currentZIndex+=1;
ul.style.zIndex = currentZIndex;
menuBlockArray.push(ul);
ul = menuObj.appendChild(ul);
var topPos = getTopPos(inputObj);
var leftPos = getLeftPos(inputObj)/1 + initOffsetLeft/1;
ul.style.position = 'absolute';
ul.style.left = leftPos + 'px';
ul.style.top = topPos + 'px';
var li = ul.getElementsByTagName('LI')[0];
while(li){
if(li.tagName=='LI'){
li.className='currentDepth' + currentDepth;
li.id = 'listItem' + liIndex;
liIndex++;
var uls = li.getElementsByTagName('UL');
li.onmouseover = showHideSub;
if(uls.length>0){
var offsetToFunction = li.getElementsByTagName('A')[0].offsetWidth+2;
if(navigatorVersion<6 && MSIE)offsetToFunction+=15;   // MSIE 5.x fix
initSubMenus(li,offsetToFunction,(currentDepth+1));
}
if(MSIE){
var a = li.getElementsByTagName('A')[0];
a.style.width=li.offsetWidth+'px';
a.style.display='block';
}
}
li = li.nextSibling;
}
ul.style.display = 'none';
if(!document.all){}
}
}
function resizeMenu()
{
var offsetParent = getLeftPos(menuObj);
for(var no=0;no<menuBlockArray.length;no++){
var leftPos = menuBlockArray[no].style.left.replace('px','')/1;
menuBlockArray[no].style.left = leftPos + offsetParent - menuParentOffsetLeft + 'px';
}
menuParentOffsetLeft = offsetParent;
}
/*
Initializing menu
*/
function initDhtmlGoodiesMenu()
{
menuObj = document.getElementById('menu');
var aTags = menuObj.getElementsByTagName('A');
for(var no=0;no<aTags.length;no++){
var subUl = aTags[no].parentNode.getElementsByTagName('UL');
if(subUl.length>0 && aTags[no].parentNode.parentNode.parentNode.id != 'menu'){
var img = document.createElement('IMG');
img.src = menu_arrow;
aTags[no].appendChild(img);
}
}
var mainMenu = menuObj.getElementsByTagName('UL')[0];
mainMenu.className='menuBlock1';
mainMenu.style.zIndex = currentZIndex;
mainMenu.setAttribute('currentDepth' ,1);
mainMenu.currentDepth = '1';
mainMenu.onmouseover = mouseOverMenu;
mainMenu.onmouseout = mouseOutMenu;
var mainMenuItemsArray = new Array();
var mainMenuItem = mainMenu.getElementsByTagName('LI')[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 6 + 'px';
while(mainMenuItem){
mainMenuItem.className='currentDepth1';
mainMenuItem.id = 'listItem' + liIndex;
mainMenuItem.onmouseover = showHideSub;
liIndex++;
if(mainMenuItem.tagName=='LI'){
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
mainMenuItemsArray[mainMenuItemsArray.length] = mainMenuItem;
initSubMenus(mainMenuItem,0,2);
}
mainMenuItem = mainMenuItem.nextSibling;
}
for(var no=0;no<mainMenuItemsArray.length;no++){
initSubMenus(mainMenuItemsArray[no],0,2);
}
menuParentOffsetLeft = getLeftPos(menuObj);
window.onresize = resizeMenu;
menuObj.style.visibility = 'visible';
}
window.onload = initDhtmlGoodiesMenu;