I have verified your code and didn't find any issue.
The code is working as expected.
HTML
<style type="text/css">
.auto-style1 { width: 100%; }
.modal { position: fixed; top: 0; left: 0; background-color: black; z-index: 99; opacity: 0.8; filter: alpha(opacity=80); -moz-opacity: 0.8; min-height: 100%; width: 100%; }
.loading { font-family: Arial; font-size: 10pt; border: 5px solid #67CFF5; width: 200px; height: 100px; display: none; position: fixed; background-color: White; z-index: 999; }
.auto-style2 { color: #CC3300; }
.auto-style3 { color: #FF9900; }
.auto-style4 { color: #006600; }
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function ShowProgress() {
setTimeout(function () {
var modal = $('<div />');
modal.addClass("modal");
$('body').append(modal);
var loading = $(".loading");
loading.show();
var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
loading.css({ top: top, left: left });
}, 200);
}
$('form').live("submit", function () {
ShowProgress();
});
</script>
<div class="loading" align="center">
Processing. Please wait...<br />
<br />
<img src="loader.gif" alt="" />
<asp:Image ID="Image1" ImageUrl="~/Images/Loading9.gif" runat="server" />
</div>
<asp:Button ID="btnPrint" Text="Print" runat="server" />
Code
Protected Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
System.Threading.Thread.Sleep(1000)
On Error Resume Next
If Session("mrptoption") = "DateOnly" Then
'procPrint_by_Date()
End If
End Sub