﻿   var menushowtimer = "", menushowdelay = 200,omenusubtoshow="",menuhidetimer="",menuhidedelay=10,omenusubtohide="";

    addMenuItemMouseOutOverHandler();
  //  function createmenuhtmby

  
    function addMenuItemMouseOutOverHandler() {
    
        var headmenus = document.getElementById("headmenus");
        var divs = headmenus.getElementsByTagName("DIV");
        for (i = 0; i < divs.length; i++) {
            odiv = divs[i];
            if (odiv.className == "mainItemDiv") {//主菜单项
                    var osubs = odiv.getElementsByTagName("DIV");
                    if (osubs.length>0) {//只对有子菜单的主菜单项附加事件处理
                        odiv.onmouseover = function() {
                          itemover(this);
                        }
                        odiv.onmouseout = function() {
                            itemout(this);
                        }
                    } //osub.length>0
                } //if (odiv.className == "mainItemDiv")
            } //for (i = 0; i < divs.length; i++)
        } //    function addMenuItemMouseOutOverHandler() 

  
    function itemover(obj) {
        //5种情况，1从主菜单项移到显示的子菜单项，2从显示的子菜单项移到主菜单项
       //3,从整个菜单项外部移入，没有计划中的menuhidetimer,
        //4,从整个菜单项外部移入，有计划中的menuhidetimer,且计划中的menuhidetimer要隐藏的对象是自己（离开后，在菜单隐藏前又回来了）,这种情况不用处理
        //5,从整个菜单项外部移入，有计划中的menuhidetimer,计划中的menuhidetimer要隐藏的对象是别人（在上一个子菜单隐藏之前就移到的别的主主菜单项），,这种情况不用处理

        var divs = obj.getElementsByTagName("DIV");
        var as = obj.getElementsByTagName("A");
        //as[0].style.borderWidth = "1px";
       // as[0].style.backgroundImage="url('/images/navmenuitemhighlight.gif')";
        //as[0].style.backgroundRepeat="repeat-x";
        
        if (menuhidetimer != "" && omenusubtohide == divs[0]) {//处理1,2,取消延时的隐藏
            window.clearTimeout(menuhidetimer);
            //menuhidetimer = ""; 
        }
        if (divs[0].style.display != "block") {//处理3,延时显示
            omenusubtoshow = divs[0];
            menushowtimer = window.setTimeout("omenusubtoshow.style.display='block';omenusubtoshow='';menushowtimer='';", menushowdelay);
        }
    }

    function itemout(obj) {
        //触发的三种情况，1,鼠标从主菜单移到显示的子菜单，2鼠标从子菜单移到主菜单，3,子菜单尚未显示，鼠标就离开整个菜单项，3,子菜单已经显示，鼠标离开整个菜单项
        //为了防止1和2的情形下不必要的隐藏子菜单，所以用了延时来隐藏，由于1和2也会触发itemover,所以在itemover事件处理里，取消延时即可。

        var divs = obj.getElementsByTagName("DIV");

        var as = obj.getElementsByTagName("A");
       // as[0].style.borderWidth = "0px";
       as[0].style.backgroundImage="";
        
        if (menushowtimer != "") {//处理3的情形
            window.clearTimeout(menushowtimer); menushowtimer = ""; 
         }

         if (divs[0].style.display == "block") {//处理1,2,4
            omenusubtohide = divs[0];
            menuhidetimer = window.setTimeout("omenusubtohide.style.display='none';menuhidetimer='';", menuhidedelay)
        }
    }

    function loadXMLDoc(dname) {
        try //Internet Explorer
  {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        }
        catch (e) {
            try //Firefox, Mozilla, Opera, etc.
    {
                xmlDoc = document.implementation.createDocument("", "", null);
            }
            catch (e) { alert(e.message) }
        }
        try {
            xmlDoc.async = false;
            xmlDoc.load(dname);
            return (xmlDoc);
        }
        catch (e) { alert(e.message) }
        return (null);
    } 
  