function menuItemClicked(menuId, menuItemId, href, pagePlaceholder)
{
    var result;
    var lnk;
  
    var lastMenuId = GetAttribute (document.getElementById(menuId), "lastMenuId");

    if (lastMenuId != "")    
        lastMenuId = document.getElementById(lastMenuId);
    else
        lastMenuId = null;
    
    if (lastMenuId != null)
        lastMenuId.className = lastMenuId.className.replace (/\s?voceCorrente/g, "");
    
    if (document.getElementById(menuItemId) != null)
        document.getElementById(menuItemId).className += " voceCorrente";
        
    SetAttribute (document.getElementById(menuId), "lastMenuId", menuItemId);
    SetAttribute (document.getElementById(menuId), "param1", pagePlaceholder);

    result = CallCustomFunction (document.getElementById(menuId), "customMenuItemClicked");

    if (!result)
        return;

    GLWebLibrary.GLMenu.MenuItemClicked (document.getElementById("sessionState").value, menuId, menuItemId, href, pagePlaceholder, menuItemClicked_callback);  // asynchronous call
}

// This method will be called after the method has been executed
// and the result has been sent to the client.

function menuItemClicked_callback (res)
{
    if (res.value != null)
    {
        if (res.value.GlMenuID == "sessionEnded")
        {
            window.location = res.value.Content;
        }
        else if (res.value.GlMenuItem == "redirect")
        {
            CallCustomFunction (document.getElementById(res.value.GlMenuID), "customMenuItemClicked_callback");
            location.replace(res.value.Content);
        }
        else
        {
            if (res.value.GlMenuItem != "")
                document.getElementById(res.value.GlMenuItem).innerHTML = res.value.Content;
            CallCustomFunction (document.getElementById(res.value.GlMenuID), "customMenuItemClicked_callback");
        }
    }
}
