﻿// JScript File

var prm = null;
var modalProgressIndicatorMPEId = "mpeProgressIndicatorBehavior";
var progressErrorMessageLabelId = "lblProgressIndicatorErrorMessage";
var progressDivId = "divModalProgressIndicator";
var progressMsgDivId = "divModalProgressIndicatorMessage";
var progressMessageLabelId = "lblProgressIndicatorMessage";
var cancelButton = "btnProgressIndicatorCancel";

Sys.Application.add_load(ConfigureProgress)

// Configure the objects for the Progresss Indicator.
function ConfigureProgress() {
    var hdnShowProgress = $get("hdnShowProgress");
    if (hdnShowProgress != null && hdnShowProgress != "undefined") {
        if (hdnShowProgress.value.toLowerCase() == "true") {
            prm = Sys.WebForms.PageRequestManager.getInstance();
            if (prm != null && prm != "undefined") {
                prm.add_initializeRequest(ShowProgress);
                prm.add_pageLoaded(HideProgress);
                prm.add_endRequest(CheckProgressStatus);
            }
            ConfigureProgressForm();
        }
    }
}

// Show Progress Indicator.
function ShowProgress(sender, eventArgs) {
    ConfigureProgressForm();
    ShowModalProgressPopup();
    prm.remove_initializeRequest(ShowProgress);
}

// Hide Progress Indicator.
function HideProgress(sender, eventArgs) {
    HideModalProgressPopup();
    prm.remove_pageLoaded(HideProgress);
}

// Check Status for Progress Indicator.
function CheckProgressStatus(sender, eventArgs) {
    var error = eventArgs.get_error();
    if (error != null) {
        if (error.name.length > 0) {
            errorMessage = 'There was a problem processing the last request. Please try again.';
            eventArgs.set_errorHandled(true);
            DisplayProgressErrorMessage(errorMessage);
        }
    }
    //prm.remove_endRequest(CheckStatus);
}

// Cancel Async Post back request.
function CancelAsyncPostBack() {
    if (prm.get_isInAsyncPostBack()) {
        prm.abortPostBack();
    }
    HideModalProgressPopup();
    ConfigureProgress();
}

// Show the progress modal popup
function ShowModalProgressPopup() {
    // Find the modal popup extender
    var mpe = $find(modalProgressIndicatorMPEId);

    // Show the modal popup
    if (mpe != null && mpe != 'undefined') {
        mpe.show();        
    }

    mpe = null;
}

// Hide the progress modal popup
function HideModalProgressPopup() {
    // Find the modal popup extender
    var mpe = $find(modalProgressIndicatorMPEId);

    // Hide the modal popup
    if (mpe != null && mpe != "undefined") {
        mpe.hide();        
    }
}

// Restores the Progress form to an unused state
function ConfigureProgressForm() {
    // Display message relating they are logged in
    var mpe = $find(modalProgressIndicatorMPEId);
    if (mpe != null && mpe != undefined) {
        var progressPanelId = mpe.get_PopupControlID();
        var progressPanel = $get(progressPanelId);
        if (progressPanel != null && progressPanel != "undefined") {
            // Hide the message
            var progressMsgDiv = $get(progressMsgDivId);
            if (progressMsgDiv != null && progressMsgDiv != "undefined") {
                $get(progressMessageLabelId).innerText = "";
                Sys.UI.DomElement.setVisible(progressMsgDiv, false);
            }

            // Show the Progress form
            var progressDiv = $get(progressDivId);
            if (progressDiv != null && progressDiv != "undefined") {
                Sys.UI.DomElement.setVisible(progressDiv, true);
                // Show the animation.
                var image = $get("imgProgressIndicator");
                if (image != null && image != "undefined") {
                    Sys.UI.DomElement.setVisible(image, true);
                }
            }
        }
    }
}

// Displays an error message in the modal dialog
function DisplayProgressErrorMessage(message) {
    var confirmError = $get("btnProgressIndicatorConfirmError");

    if (confirmError != null && confirmError != "undefined") {
        confirmError.style.display = "block";
        Sys.UI.DomEvent.addHandler(confirmError, "click", ConfirmProgressErrorMessage);
    }
    ShowProgressMessage(message, true);
}

// 
function ShowProgressMessage(message, isError) {
    ConfigureErrorMessage(message);
    ShowModalProgressPopup();

    // Set the focus
    if ($get("btnProgressIndicatorConfirmError") != null) {
        $get("btnProgressIndicatorConfirmError").focus();
    }
}

// Called when the user confirms an error message (clicks OK)
function ConfirmProgressErrorMessage(eventElement) {
    eventElement.preventDefault();
    eventElement.stopPropagation();
    HideModalProgressPopup();
    return true;
}

// Displays a message in the modal dialog
function ConfigureErrorMessage(message) {
    // Display message relating there is a problem.
    var mpe = $find(modalProgressIndicatorMPEId);
    if (mpe != null && mpe != undefined) {
        var progressPanelId = mpe.get_PopupControlID();
        var progressPanel = $get(progressPanelId);

        // Get the login panel element
        if (progressPanel != null && progressPanel != "undefined") {
            // Hide the login form
            var progressDiv = $get(progressDivId);
            if (progressDiv != null && progressDiv != "undefined") {
                Sys.UI.DomElement.setVisible(progressDiv, false);
                // Hide the animation.
                var image = $get("imgProgressIndicator");
                if (image != null && image != "undefined") {
                    Sys.UI.DomElement.setVisible(image, false);
                }
            }

            // Show the message
            var progressMsgDiv = $get(progressMsgDivId);
            if (progressMsgDiv != null && progressMsgDiv != "undefined") {
                Sys.UI.DomElement.setVisible(progressMsgDiv, true);
                if (document.all) {
                    // IE
                    $get(progressErrorMessageLabelId).innerText = message;
                }
                else {
                    // Firefox
                    $get(progressErrorMessageLabelId).textContent = message;
                }
            }
        }
    }
}

if (typeof (Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

