I have a LinkButton that executes on the server and changes the page.  Historically, I've had a confirm message box that executes OnClientClick to ensure the user would like to navigate away.
So far it looks like this:
ASP.NET:
<!-- language: lang-html --><asp:LinkButton runat="server" ID="ChangePage" Text="Change page"
                OnClientClick="confirm('are you sure you want to change page?');" 
                OnClick="Navigate" >
    Change Page
</asp:LinkButton>
HTML Output:
<!-- language: lang-html --><a id="MainContent_ChangePage" 
   onclick="confirm('are you sure you want to change page?');"
   href="javascript:__doPostBack('ctl00$MainContent$ChangePage','')" >
    Change page
</a>
This all works fine like this. The trouble is that I'm trying to replace all confirm boxes with a prettier jQuery-UI implementation like this:
<!-- language: lang-js -->window.confirm = function (message, obj) {
    $('<div/>')
    .attr({ title: 'Webpage Confirm'})
    .html(message)
    .dialog({
        resizable: false,
        modal: true,
        width: 500,
        buttons: {
            "OK": function () {
                __doPostBack(obj, '');
                $(this).dialog('close');
                return true;
            },
            "Cancel": function () {
                $(this).dialog('close');
                return false;
            }
        }
    });
};
I believe this has to do with the fact that the confirm dialog operates synchronously, while jQuery dialogs occur asynchronously.  However, I thought setting modal: true would cause it to wait for a response.
How can I override window.confirm to get consistent behavior?