/*
Support for displaying necessary dialogs to the user.
*/

jQuery.modalDialog = {

    _displayDialog: function(dialogId, dialogHTML) {

        $(document.body).append($(dialogHTML));

        $('#' + dialogId).dialog({
            bgiframe: true,
            modal: true,
            buttons: {
                OK: function() {
                    $(this).dialog('close');
                    $('#' + dialogId).remove();
                }
            },
            close: function(event, ui) {
                $('#' + dialogId).remove();
            }
        });
    },

    //displays modal error message to the user
    showError: function(text, caption) {
        if (!$.stringIsNullOrEmpty(caption))
            caption = '';
        if (!$.stringIsNullOrEmpty(text))
            text = '';

        var messageBox =
            '<div id="dialog" title="' + caption + '" >'
            + '	<p><span class="ui-icon-red ui-icon-alert" style="float:left; margin:0 7px 20px 0;" ></span>'
                    + text + '</p>'
            + '</div>'

        this._displayDialog('dialog', messageBox);
    },


    showInfo: function(text, caption) {
        if (!$.stringIsNullOrEmpty(caption))
            caption = '';
        if (!$.stringIsNullOrEmpty(text))
            text = '';

        var messageBox =
                '<div id="dialog" title="' + caption + '" >'
                + '	<p><span class="ui-icon ui-icon-info" style="float:left; margin:0 7px 20px 0;" ></span>'
                        + text + '</p>'
                + '</div>'

        this._displayDialog('dialog', messageBox);
    },

    //displays confirmation dialog. calls 'okFunction' if button "OK" is pressed.
    showConfirmation: function(text, caption, okFunction) {
        if (!$.stringIsNullOrEmpty(caption))
            caption = '';
        if (!$.stringIsNullOrEmpty(text))
            text = '';

        var messageBox =
                '<div id="dialog" title="' + caption + '" >'
                + '	<p><span class="ui-icon ui-icon-help" style="float:left; margin:0 7px 20px 0;" ></span>'
                        + text + '</p>'
                + '</div>'

        $(document.body).append($(messageBox));

        $('#dialog').dialog({
            bgiframe: true,
            modal: true,
            buttons: {
                No: function() {
                    $('#dialog').remove();
                },
                Yes: function() {
                    $(this).dialog('close');
                    okFunction();
                }
            },
            close: function(event, ui) {
                $('#dialog').remove();
            }
        });
    }
};
