If this is supposed to be for this page alone, I would suggest you to use update progress.
Google for 'Update progress with update panel', in case you need more info.
<asp:UpdateProgress DynamicLayout="false" ID="UpdateProgress2"
runat="server">
<ProgressTemplate>
<div class="Progress">
<img src="Images/ajax-loader.gif" />
Loading ...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
If you plan to make it global, proceed with the current script, place it in a seperate file.
Are you sure that the events are being fired?
I don't see a reason why it shouldn't get the div.
Please let me know, I could try running this code here.
You might also want to change this line here-
_updateProgress.style.display = 'Block';
To
_updateProgress.style.display = 'block';