Several things you should know
1. bredcrumbs.Visible = False means that that control will not be rendered at all.
Example : If I have the following lines in .aspx files
<div id="test">
<asp:Textbox runat="server" id="txtTest" Visible="False" />
</div>
What the browser get is just
<div id="test">
</div>
This applies to any server control.
2. ASP.NET makes use of ViewState. Basically it keep the states of all control.
So if there isn't a single line in your C# code that says bredcrumbs.Visible = True, that div is likely to stay "invisible".
In other words, it won't be rendered.
There's 2 way to make it becomes visible
1. Add a <asp:Button> or a <asp:LinkButton> and wire up the events and set breadcrumbs.Visible = True inside the event handler
2. Instead of using Visible = false in your pageload
You might use breadcrumbs.Style.Add("display","none")
Then in your javascript,
function showspath()
{
var elm1 = window.document.getElementById('<%=breadcrumbs.ClientID%>') ;
if(elm.style.display == "none") elm.style.display = "inline";
}
Note: It is highly recommended that you use <%=breadcrumbs.ClientID%> on server controls. Sometimes the ID rendered (Client ID) is not the same as the ID used on the server side.
Hope that help