Hi DanH,
If you are placing the button in panel and setting its visibility false then the button wont get detected by javascript code so what you need to is use Style Attribute like below for making panel visible false by default and your javascript disable button code will work.so refer below code for making panel visible false by default and making it visible in code behind.
HTML
<div>
<asp:Panel ID="pnlDisplay" Style="display: none" runat="server">
I am Panel
</asp:Panel>
</div>
and making it visible from code behind
protected void Page_Load(object sender, EventArgs e)
{
pnlDisplay.Style.Add("display", "block");
}