﻿// JScript File
ProgressObject = function(ElemId) {
    if (!ElemId)
        return null;
    this.inheritFrom = ElemObject;
    this.inheritFrom(ElemId);
    var jProgress = function() { return 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;
    var bHideOnlyImg = jProgress().attr('hideOnlyImg') != null;
    this.Progress = new ElemObject(bHideOnlyImg ? pImg.id : ElemId);
    var jProgressImg = function() { return jQuery('#' + 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() {
        if (this.UseEffects) {
            if (bHideOnlyImg) {
                jProgressImg().show('slow');
            }
            else
                jProgress().show('slow');
        }
        else
            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() {
        if (this.UseEffects) {
            if (bHideOnlyImg) {
                jProgressImg().hide('slow');
            }
            else
                jProgress().hide('slow');
        }
        else
            this.Progress.GetObject().style.display = 'none';
        if (this.ProgressMessage) {
            if (bHideMessOnHide) {
                this.ProgressMessage.GetObject().style.display = 'none';
            }
        }
    }
    this.UseEffects = true;
    this.HideProgress();

}
function setUpGlobalProgress() {
    if (!ProgressObject.Progress) {
        //Set it first so user can access it
        ProgressObject.Progress = jQuery('[elemname=globalProgress]').length > 0 ? new ProgressObject(jQuery('[elemname=globalProgress]').attr('id')) : null;
        if (globalEvents) {
            globalEvents.onPre.Add(null, function() {
            //Set it again just in case it never existed before
                if(!ProgressObject.Progress)
                    ProgressObject.Progress = jQuery('[elemname=globalProgress]').length > 0 ? new ProgressObject(jQuery('[elemname=globalProgress]').attr('id')) : null;
                if (ProgressObject.Progress)
                    ProgressObject.Progress.ShowProgress();
            });
            globalEvents.onSuccess.Add(ProgressObject.Progress, function() {
                if (!globalEvents.InPostback && ProgressObject.Progress) {
                    ProgressObject.Progress.HideProgress();
                }
            });
            globalEvents.onFail.Add(ProgressObject.Progress, function() {
                if (!globalEvents.InPostback && ProgressObject.Progress)
                    ProgressObject.Progress.HideProgress();
            });
        }
    }
}
jQuery(document).ready(setUpGlobalProgress);
