var WM_BOTTOM = "bottom";

var WM_RIGHT  = "right";



var WM_BOTTOM_MARGIN_BOTTOM = 2;

var WM_BOTTOM_MARGIN_LEFT   = 0;



var WM_RIGHT_MARGIN_BOTTOM = 0;

var WM_RIGHT_MARGIN_RIGHT  = 4;



if (userAgent() == 'ie')

{

    var WM_BOTTOM_MARGIN_BOTTOM = 2;

    var WM_BOTTOM_MARGIN_LEFT   = 0;



    var WM_RIGHT_MARGIN_BOTTOM = 0;

    var WM_RIGHT_MARGIN_RIGHT  = 4;

}

if (userAgent() == 'opera')

{

    var WM_BOTTOM_MARGIN_BOTTOM = 4;

    var WM_BOTTOM_MARGIN_LEFT   = 0;



    var WM_RIGHT_MARGIN_BOTTOM = 0;

    var WM_RIGHT_MARGIN_RIGHT  = 4;

}



var currentItem = null;

var menuTrail = new Array();

var currentStyleOff = null;





function userAgent()

{



    var name = navigator.userAgent.toLowerCase();



    if (name.indexOf('opera') + 1)

        return 'opera';

    else if (name.indexOf('firefox') + 1)

        return 'firefox';

    else if (name.indexOf('msie') + 1)

        return 'ie';



    return 'unknow';

}



function wmItemOn(item, level, submenuId, submenuPosition) 

{

    if (item.onmouseout == "null") 

    {

        item.onmouseout = startOffTimer;

    }

    

    stopOffTimer();



    currentItem = item;



    if (submenuId != "null")

    {

        hide(level);

        var menu = document.getElementById(submenuId);

        

        if (menu.style.display == "block")

          return;



        if (submenuPosition == WM_BOTTOM) 

        {

            menu.style.top = findOffsetTop(item) + item.offsetHeight + WM_BOTTOM_MARGIN_BOTTOM;

            menu.style.left = findOffsetLeft(item) + WM_BOTTOM_MARGIN_LEFT;

        }



        if (submenuPosition == WM_RIGHT) 

        {

            menu.style.top = findOffsetTop(item) + WM_RIGHT_MARGIN_BOTTOM;

            menu.style.left = findOffsetLeft(item) + item.offsetWidth + WM_RIGHT_MARGIN_RIGHT;

        }



        menu.style.display = "block";

        menuTrail[level] = menu;

    }

    else

    {

        hide(level);

    }

}

//

// hiding menu 

//

function hide(level) 

{

    for (var i = level; i < menuTrail.length; i++)

    {

        menuTrail[i].style.display = "none";



    }      

}



var timerID   = null;

var timerOn   = false;

var timecount = 1000; // Steven changed this to fix IE bug



function startOffTimer() 

{

    if (timerOn == false) 

    {

        timerID = setTimeout("offAll()", timecount);

        timerOn = true;

    }

}



function stopOffTimer() 

{

    if (timerOn) 

    {

         clearTimeout(timerID);

         timerID = null;

         timerOn = false;

    }

}



function offAll() {

    hide(0);

}





function findOffsetLeft(obj)

{

    var curleft = 0;

    if (obj.offsetParent)

    {

        while (obj.offsetParent)

        {

            curleft += obj.offsetLeft;

            obj = obj.offsetParent;

        }

    } 

    else if (obj.x) 

    {

        curleft += obj.x;

    }

    return curleft;

}



function findOffsetTop(obj)

{

    var curtop = 0;

    if (obj.offsetParent) 

    {

        while (obj.offsetParent)

        {

            curtop += obj.offsetTop;

            obj = obj.offsetParent;

        }

    }

    else if (obj.y)

    {

        curtop += obj.y;

    }

    return curtop;

}