function toggle_menu(element_id, action){

    var listElement = document.getElementById(element_id);
    if (listElement)
    {
        var listElementStyle=listElement.style;
        if (listElementStyle != null)
        {
    
            if (listElementStyle.display=="block"){
                listElementStyle.display="none";
                if( action != "load")
                {
                    set_menu_in_cookie(element_id, "off");
                }
            }
            else
            {
                listElementStyle.display="block";
                if( action != "load" && action != "close")
                {
                    set_menu_in_cookie(element_id, "on");
                }
            }
        }
    }
}

function set_menu_in_cookie (element_id, action)
{
    var menu = read_cookie();
    if (menu == null || menu == '')
    {
        menu = [];
    }

    if (action=="on")
    {
        if (menu.length > 0)
        {
            toggle_menu(menu[menu.length-1],"close");
        }
        menu = [];
        menu[menu.length] = element_id;
    }
    else
    {
        // var index = menu.indexOf(element_id); ## IE is lame!
        var index = null;
        for ( var num = 0; num < menu.length; num++)
        {
            if(this[num]==element_id)
            {
                index = num;
            }
        }

        menu.splice(index, 1);
    }

    write_cookie(menu);
}

function write_cookie(array_to_set)
{
    var serialized_menu = array_to_set.join('~');
    document.cookie = "menu=" + serialized_menu;

}

function read_cookie()
{
  var name = "menu";
  var results = document.cookie.match ( '(^|;) ?' + name +'=([^;]*)(;|$)' );
  if ( results )
  {
    var s = unescape(results[2]);
    if (s.indexOf('~') != -1)
    {
        var menu = s.split('~');
    }
    else
    {
        var menu = new Array(s);
    }
    return menu;
  }
  else
  {
    return null;
  }
}

function startup_menu()
{
    var menu = read_cookie();
    if (menu != null && menu != '')
    {
        for (var num = 0; num < menu.length; num++)
        {
            toggle_menu(menu[num], "load");
        }
    }
}

