function $(id) { return document.getElementById(id); }

var idNum = 0;
function Set$(o) { if (!o.id || o.id == null || o.id == '') o.id = 'o' + idNum;idNum++; }

var menuids=new Array("verticalmenu") //Enter id(s) of UL menus, separated by commas
var submenuoffset=0 //Offset of submenus from main menu. Default is -2 pixels.

var isMOver = false;

var arrMOver = new Array();

function ToggleMenu(idx, id)
{
    //$('txt').value += 'ToggleMenu - arrMOver[idx] = ' + arrMOver[idx] + '\n';
     //$('txt').value += '$(id).tagName = ' + $(id).tagName + '\n';
    
    if(arrMOver[idx] == false)
    {
        var o = $(id);
        
        if(o.tagName.toLowerCase() == 'li') o = o.getElementsByTagName("ul")[0];
        //$('txt').value += 'o.tagName = ' + o.tagName + '\n';
         //alert(id);
        o.style.display = "none";
    }
}

function HideOtherMenus(idx)
{
    for(var i = 0; i < arrMOver.length; i++)
    {
        if(i != idx) 
        {
            $('ul' + i).style.display = "none";
        }
    }
}

function createcssmenu() {
    
    for (var i = 0; i < menuids.length; i++)
    {
        var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
        for (var t=0; t<ultags.length; t++)
        {
            arrMOver.push(false);

            /// Set this so that we can
            ultags[t].setAttribute('idx', t);
            ultags[t].parentNode.setAttribute('idx', t);
            
            ultags[t].id = 'ul' + t;
            ultags[t].parentNode.id = 'li' + t;
            ultags[t].style.zIndex = 100 - t;
            ultags[t].parentNode.style.zIndex = 100 - t;
            
            ultags[t].parentNode.onmouseover = function() 
            { 
            HideOtherMenus(idx);
                //Set$(this);
                this.getElementsByTagName("ul")[0].style.left = this.parentNode.offsetWidth + submenuoffset + "px"; this.getElementsByTagName("ul")[0].style.display = "block"; 
                var idx = this.getAttribute('idx');
                //$('txt').value += 'idx = '+ idx + '\n';
                arrMOver[idx] = true;
                
               // $('txt').value += 'arrMOver[idx] = ' + arrMOver[idx] + '\n';
                setTimeout('ToggleMenu(' + idx + ', "' + this.id + '");', 1000);
            }
            
            //$('txt').value += 'ultags[t] = ' + ultags[t].tagName;
            
            ultags[t].parentNode.onmouseout = function() 
            { 
                //Set$(this); //$('txt').value += 'onmouseout - ' + this.tagName + '\n';  
                var idx = this.getAttribute('idx');
                //$('txt').value += 'idx = '+ idx + '\n';
                arrMOver[idx] = false;   
                //$('txt').value += 'arrMOver[idx] = ' + arrMOver[idx] + '\n';
                //HideOtherMenus(idx);
                setTimeout('ToggleMenu(' + idx + ', "' + this.id + '");', 1000);
            }
            

//            ultags[t].parentNode.onmouseover = function() {
//                $('txt').value += 'onmouseover\n';
//                isMOver = true;
//                Set$(this);
//                //alert('this.parentNode.offsetWidth = ' + this.parentNode.offsetWidth);
//                //setTimeout('$("' + this.id + '").getElementsByTagName("ul")[0].style.left = $("' + this.id + '").parentNode.offsetWidth + submenuoffset + "px";', 200);
//                //setTimeout('$("' + this.id + '").getElementsByTagName("ul")[0].style.display = "block";', 200);
//                this.getElementsByTagName("ul")[0].style.left = this.parentNode.offsetWidth + submenuoffset + "px"
//                this.getElementsByTagName("ul")[0].style.display = "block"
//            }

//            ultags[t].parentNode.onmouseout = function() {
//            $('txt').value += 'onmouseout\n';
//                //Set$(this);
////                if (!isMOver) {
//            //setTimeout('if (!isMOver) $("' + this.id + '").getElementsByTagName("ul")[0].style.display = "none"; isMOver = false;', 200);
////                }
////                isMOver = false;
//                this.getElementsByTagName("ul")[0].style.display = "none"
//            }
            
        }
    }
}

if (window.addEventListener)
    window.addEventListener("load", createcssmenu, false)
else if (window.attachEvent)
    window.attachEvent("onload", createcssmenu)

