﻿// JScript File
ProgressObject = function(ElemId) {
    if (!ElemId)
        return null;
    this.inheritFrom = ElemObject;
    this.inheritFrom(ElemId);
    var jProgress = jQuery('#' + ElemId);
    if (jProgress.length == 0)
        return null;
    var pImg = jQuery('#' + ElemId + ' > [elemname=Progress]').get(0); //getElementInParentByTagAndName(document.getElementById(ElemId), 'elemname', 'img', 'Progress');
    if (pImg == null)
        return null;
    var pMess = jQuery('#' + ElemId + ' > [elemname=ProgressMessage]').get(0);
    var bHideMessOnHide = jQuery('#' + ElemId + ' > [elemname=ProgressMessage]').attr('hidemessonhide') != null;
    this.Progress = new ElemObject(pImg.id);

    this.ProgressMessage = pMess ? new ElemObject(pMess.id) : null;
    this.Message = '';
    var displayType = pImg.style.display;
    this.SetMessage = function(msg) {
        this.Message = msg;
        this.ProgressMessage.GetObject().innerHTML = this.Message;
    }
    this.ShowProgress = function() {
    this.Progress.GetObject().style.display = displayType;
        if (this.ProgressMessage) {
            if (bHideMessOnHide) {
                this.ProgressMessage.GetObject().style.display = displayType;
            }
            this.ProgressMessage.GetObject().innerHTML = this.Message;
        }
    }
    this.HideProgress = function() {
        this.Progress.GetObject().style.display = 'none';
        if (this.ProgressMessage) {
            if (bHideMessOnHide) {
                this.ProgressMessage.GetObject().style.display = 'none';
            }
        }
    }
    this.HideProgress();
}
function setUpGlobalProgress() {
    if (!ProgressObject.Progress) {
        ProgressObject.Progress = jQuery('[elemname=globalProgress]').length > 0 ? new ProgressObject(jQuery('[elemname=globalProgress]').attr('id')) : null;
        if (ProgressObject.Progress) {
            if (globalEvents) {
                globalEvents.onPre.Add(ProgressObject.Progress, ProgressObject.Progress.ShowProgress);
                globalEvents.onSuccess.Add(ProgressObject.Progress, function() {
                    if (!globalEvents.InPostback) {
                        ProgressObject.Progress.HideProgress();
                    }
                });
                globalEvents.onFail.Add(ProgressObject.Progress, function() {
                    if (!globalEvents.InPostback)
                        ProgressObject.Progress.HideProgress();
                });
            }
        }
    }
}
jQuery(document).ready(setUpGlobalProgress);
