Hi,
Put this in your layout.master:
<portal:AutoHidePanel ID="ah1" runat="server">
<div id="admin">
<a id="show_hide" class="arrow left" href="javascript:toggleVisibility()"></a>
<div id="buttons">
<cc1:AdminOnlyLinks id="AdminOnlyLinks1" runat="server" />
<portal:AdminMenuLink id="lnkAdminMenu" runat="server" />
<portal:FileManagerLink id="lnkFileManager" runat="server" />
<portal:NewPageLink id="lnkNewPage" runat="server" />
<portal:PageEditFeaturesLink id="lnkPageContent" runat="server" />
<portal:PageEditSettingsLink id="lnkPageSettings" runat="server" />
<asp:ContentPlaceHolder ID="pageEditContent" runat="server"></asp:ContentPlaceHolder>
</div>
</div>
</portal:AutoHidePanel>
Remove these lines from your user control:
<div id="admin">
<a id="show_hide" class="arrow left" href="javascript:toggleVisibility()"></a>
<div id="buttons">
<portal:AdminMenuLink id="lnkAdminMenu" runat="server" />
<portal:FileManagerLink id="lnkFileManager" runat="server" />
<portal:NewPageLink id="lnkNewPage" runat="server" />
<portal:PageEditFeaturesLink id="lnkPageContent" runat="server" />
<portal:PageEditSettingsLink id="lnkPageSettings" runat="server" />
</div>
</div>
Remove the JavaScript from your user control and put it in your layout.master.
The <portal:AutoHidePanel is just a simple control that inherits from <asp:Panel, what it does is look for child controls that inherit from WebControl (like the admin links), it looks at all its child controls and if there are no WebControls with their visible property set to true then it makes it's own Visible property false. It doesn't care about the other literal html that it may contain so it doesn't matter if that stuff is visible or not, it only cares if it has at least one visible WebControl contained within it.
HTH,
Joe D.