// turn off this eslint warning because the \r in the regex is intentional
/* eslint no-control-regex: "off" */

$(document).ready(function () {

});

function ShowSuccessMessage(msg) {

    ConstructMessageDialog();

    if ($("#MessageModalContent").length) {
        $("#MessageModalContent").removeClass("modal-content-error");
        $("#MessageModalContent").addClass("modal-content-success");
        $("#MessageModalTitle").text("Success");
        var msgformatted = msg.replace(new RegExp('\r', 'g'), "<br />");
        $("#spanMessageText").html(msgformatted);
        $("#MessageModal").modal("show");
    }
    else {
        alert(msg);
    }
}

function ShowErrorMessage(msg) {

    ConstructMessageDialog();

    if ($("#MessageModalContent").length) {
        $("#MessageModalContent").addClass("modal-content-error");
        $("#MessageModalContent").removeClass("modal-content-success");
        $("#MessageModalTitle").text("Error");
        var msgformatted = msg.replace(new RegExp('\r', 'g'), "<br />");
        $("#spanMessageText").html(msgformatted);
        $("#MessageModal").modal("show");
    }
    else {
        alert(msg);
    }
}

function DisplayWSMessage(severity, description, e, ex) {

    var forbiddenMsg = "You do not have access to this application.  Contact FI team for assistance.";
    var expiredMsg = "Record will not show in Awaiting Disposition Queue since it is more than 6 hours old."

    ConstructMessageDialog();

    if ($("#MessageModalContent").length) {

        var wsError = '';

        $("#MessageModalContent").removeClass("modal-content-success");
        if (severity == "error") {
            $("#MessageModalTitle").text("Server Error");
            $("#MessageModalContent").addClass("modal-content-error");
        }
        else if (severity == "info") {
            $("#MessageModalContent").addClass("modal-content-info");
        }

        $("#spanMessageText").text(description);
        if (e.status === 403) {
            $("#spanMessageText").append("<br /><b>" + forbiddenMsg + "</b>");
        }
        else if (e.status === 444) {
            $("#MessageModalContent").removeClass("modal-content-error");
            $("#MessageModalContent").addClass("modal-content-info");
            $("#MessageModalTitle").text("");
            $("#spanMessageText").text(expiredMsg);
        }
        else if (e.responseText !== null) {
            if (e.responseText !== "") {
                try {
                    wsError = jQuery.parseJSON(e.responseText);
                    if (wsError.Message !== null)
                        $("#MessageModalTitle").text(wsError.Message);
                    if (wsError.ExceptionMessage !== null) {
                        $("#spanMessageText").append("<br /><b>");
                        $("#spanMessageText").append(wsError.ExceptionMessage);
                        $("#spanMessageText").append("</b>");
                    }
                }
                catch (err) {
                    // ignore any error while parsing
                }
            }
        }
        if (ex !== null) {
            $("#spanMessageText").append("<br />");
            $("#spanMessageText").append(ex);
        }
        $("#MessageModal").modal("show");
    }
    else {

        var msg = description + "\r\n";
        if (e.responseText !== null) {
            if (e.responseText !== "") {
                wsError = jQuery.parseJSON(e.responseText);
                if (wsError.ExceptionMessage !== null) {
                    msg += wsError.ExceptionMessage;
                }
            }
        }
        if (e.status === 403)
            msg += forbiddenMsg;

        alert(msg);
    }
}

function ConstructMessageDialog() {

    var dialogTemplate = 
        '<div class="modal-dialog"> ' +
        '   <div class="modal-content" id="MessageModalContent"> ' +
        '        <div class="modal-header"> ' +
        '            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> ' +
        '            <h4 class="modal-title" id="MessageModalTitle"></h4> ' +
        '        </div> ' +
        '        <div class="modal-body"> ' +
        '            <span id="spanMessageText"></span> ' +
        '        </div> ' +
        '        <div class="modal-footer"> ' +
        '            <button type="button" data-dismiss="modal">OK</button> ' +
        '        </div> ' +
        '    </div> ' +
        '</div>';

    if ($("#MessageModal").length) {
        $("#MessageModal").addClass("modal fade");
        $("#MessageModal").html(dialogTemplate);
    }

}

function boolToYesNo(val) {
    if (val === true)
        return "Yes";
    return "No";
}