Sys.UI._ModalUpdateProgress = function Sys$UI$_ModalUpdateProgress(element) { Sys.UI._ModalUpdateProgress.initializeBase(this,[element]); this._backgroundCssClass = null; this._cancelControlID = null; this._backgroundElement = null; this._foregroundElement = null; this._cancelHandler = null; this._scrollHandler = null; this._resizeHandler = null; this._windowHandlersAttached = false; this._beginRequestHandlerDelegate = null; this._startDelegate = null; this._endRequestHandlerDelegate = null; this._pageRequestManager = null; this._timerCookie = null; this._saveTabIndexes = new Array(); this._saveDisableSelect = new Array(); this._tagWithTabIndex = new Array('A','AREA','BUTTON','INPUT','OBJECT','SELECT','TEXTAREA','IFRAME'); this._disableTabsCalled = false; } function Sys$UI$_ModalUpdateProgress$get_backgroundCssClass() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._backgroundCssClass; } function Sys$UI$_ModalUpdateProgress$set_backgroundCssClass(value) { this._backgroundCssClass = value; } function Sys$UI$_ModalUpdateProgress$get_cancelControlID() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._cancelControlID; } function Sys$UI$_ModalUpdateProgress$set_cancelControlID(value) { this._cancelControlID = value; } function Sys$UI$_ModalUpdateProgress$_attachPopup() { if (!this._scrollHandler) { this._scrollHandler = Function.createDelegate(this, this._onLayout); } if (!this._resizeHandler) { this._resizeHandler = Function.createDelegate(this, this._onLayout); } $addHandler(window, 'resize', this._resizeHandler); $addHandler(window, 'scroll', this._scrollHandler); this._windowHandlersAttached = true; } function Sys$UI$_ModalUpdateProgress$_detachPopup() { if (this._windowHandlersAttached) { if (this._scrollHandler) { $removeHandler(window, 'scroll', this._scrollHandler); } if (this._resizeHandler) { $removeHandler(window, 'resize', this._resizeHandler); } } } function Sys$UI$_ModalUpdateProgress$_onCancel(e) { var element = $get(this._cancelControlID); if (element && !element.disabled) { if (this._pageRequestManager !== null) { this._pageRequestManager.abortPostBack(); } this._hide(); e.preventDefault(); return false; } } function Sys$UI$_ModalUpdateProgress$_onLayout(e) { this._layout(); } function Sys$UI$_ModalUpdateProgress$_layout() { var scrollLeft = (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); var scrollTop = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); var clientWidth; if (window.innerWidth) { clientWidth = ((Sys.Browser.agent === Sys.Browser.Safari) ? window.innerWidth : Math.min(window.innerWidth, document.documentElement.clientWidth)); } else { clientWidth = document.documentElement.clientWidth; } var clientHeight; if (window.innerHeight) { clientHeight = ((Sys.Browser.agent === Sys.Browser.Safari) ? window.innerHeight : Math.min(window.innerHeight, document.documentElement.clientHeight)); } else { clientHeight = document.documentElement.clientHeight; } this._backgroundElement.style.left = scrollLeft+'px'; this._backgroundElement.style.top = scrollTop+'px'; this._backgroundElement.style.width = clientWidth+'px'; this._backgroundElement.style.height = clientHeight+'px'; this._foregroundElement.style.left = scrollLeft+((clientWidth-this._foregroundElement.offsetWidth)/2)+'px'; this._foregroundElement.style.top = scrollTop+((clientHeight-this._foregroundElement.offsetHeight)/2)+'px'; } function Sys$UI$_ModalUpdateProgress$_show() { this._attachPopup(); this._backgroundElement.style.display = ''; if (this._dynamicLayout) { this._foregroundElement.style.display = 'block'; } else { this._foregroundElement.style.visibility = 'visible'; } this._disableTabs(); this._layout(); this._layout(); } function Sys$UI$_ModalUpdateProgress$_disableTabs() { if (!this._disableTabsCalled) { var i = 0; var tagElements; var tagElementsInPopUp = new Array(); Array.clear(this._saveTabIndexes); for (var j = 0; j < this._tagWithTabIndex.length; j++) { tagElements = this._foregroundElement.getElementsByTagName(this._tagWithTabIndex[j]); for (var k = 0 ; k < tagElements.length; k++) { tagElementsInPopUp[i] = tagElements[k]; i++; } } i = 0; for (var j = 0; j < this._tagWithTabIndex.length; j++) { tagElements = document.getElementsByTagName(this._tagWithTabIndex[j]); for (var k = 0 ; k < tagElements.length; k++) { if (Array.indexOf(tagElementsInPopUp, tagElements[k]) == -1) { this._saveTabIndexes[i] = {tag: tagElements[k], index: tagElements[k].tabIndex}; tagElements[k].tabIndex="-1"; i++; } } } i = 0; if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) { var tagSelectInPopUp = new Array(); tagElements = this._foregroundElement.getElementsByTagName('SELECT'); for (var k = 0 ; k < tagElements.length; k++) { tagSelectInPopUp[i] = tagElements[k]; i++; } i = 0; Array.clear(this._saveDisableSelect); tagElements = document.getElementsByTagName('SELECT'); for (var k = 0 ; k < tagElements.length; k++) { if (Array.indexOf(tagSelectInPopUp, tagElements[k]) == -1) { this._saveDisableSelect[i] = {tag: tagElements[k], visib: this._getCurrentStyle(tagElements[k], 'visibility')} ; tagElements[k].style.visibility = 'hidden'; i++; } } } this._disableTabsCalled = true; } } function Sys$UI$_ModalUpdateProgress$_restoreTabs() { if (this._disableTabsCalled) { for (var i = 0; i < this._saveTabIndexes.length; i++) { this._saveTabIndexes[i].tag.tabIndex = this._saveTabIndexes[i].index; } if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) { for (var k = 0 ; k < this._saveDisableSelect.length; k++) { this._saveDisableSelect[k].tag.style.visibility = this._saveDisableSelect[k].visib; } } this._disableTabsCalled = false; } } function Sys$UI$_ModalUpdateProgress$_hide() { this._backgroundElement.style.display = 'none'; this._foregroundElement.style.display = 'none'; this._restoreTabs(); this._detachPopup(); } function Sys$UI$_ModalUpdateProgress$_handleBeginRequest(sender, arg) { var curElem = arg.get_postBackElement(); var showProgress = !this._associatedUpdatePanelId; while (!showProgress && curElem) { if (curElem.id && this._associatedUpdatePanelId === curElem.id) { showProgress = true; } curElem = curElem.parentNode; } if (showProgress) { this._timerCookie = window.setTimeout(this._startDelegate, this._displayAfter); } } function Sys$UI$_ModalUpdateProgress$_startRequest() { if (this._pageRequestManager.get_isInAsyncPostBack()) { this._show(); } this._timerCookie = null; } function Sys$UI$_ModalUpdateProgress$_handleEndRequest(sender, arg) { this._hide(); if (this._timerCookie) { window.clearTimeout(this._timerCookie); this._timerCookie = null; } } function Sys$UI$_ModalUpdateProgress$_getCurrentStyle(element, attribute, defaultValue) { var currentValue = null; if (element) { if (element.currentStyle) { currentValue = element.currentStyle[attribute]; } else if (document.defaultView && document.defaultView.getComputedStyle) { var style = document.defaultView.getComputedStyle(element, null); if (style) { currentValue = style[attribute]; } } if (!currentValue && element.style.getPropertyValue) { currentValue = element.style.getPropertyValue(attribute); } else if (!currentValue && element.style.getAttribute) { currentValue = element.style.getAttribute(attribute); } } if ((!currentValue || currentValue == "" || typeof(currentValue) === 'undefined')) { if (typeof(defaultValue) != 'undefined') { currentValue = defaultValue; } else { currentValue = null; } } return currentValue; } function Sys$UI$_ModalUpdateProgress$dispose() { this._detachPopup(); this._scrollHandler = null; this._resizeHandler = null; if (this._cancelHandler && $get(this._cancelControlID)) { $removeHandler($get(this._cancelControlID), 'click', this._cancelHandler); this._cancelHandler = null; } if (this._pageRequestManager !== null) { this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDelegate); this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegate); } Sys.UI._ModalUpdateProgress.callBaseMethod(this,"dispose"); } function Sys$UI$_ModalUpdateProgress$initialize() { Sys.UI._ModalUpdateProgress.callBaseMethod(this, 'initialize'); this._foregroundElement = this.get_element(); this._backgroundElement = document.createElement('div'); this._backgroundElement.style.display = 'none'; this._backgroundElement.style.position = 'absolute'; this._backgroundElement.style.zIndex = 100000; if (this._backgroundCssClass) { this._backgroundElement.className = this._backgroundCssClass; } this._foregroundElement.parentNode.appendChild(this._backgroundElement); this._foregroundElement.style.display = 'none'; this._foregroundElement.style.position = 'absolute'; this._foregroundElement.style.zIndex = this._getCurrentStyle(this._backgroundElement, 'zIndex', this._backgroundElement.style.zIndex) + 1; if (this._cancelControlID) { this._cancelHandler = Function.createDelegate(this, this._onCancel); $addHandler($get(this._cancelControlID), 'click', this._cancelHandler); } this._scrollHandler = Function.createDelegate(this, this._onLayout); this._resizeHandler = Function.createDelegate(this, this._onLayout); this._beginRequestHandlerDelegate = Function.createDelegate(this, this._handleBeginRequest); this._endRequestHandlerDelegate = Function.createDelegate(this, this._handleEndRequest); this._startDelegate = Function.createDelegate(this, this._startRequest); if (Sys.WebForms && Sys.WebForms.PageRequestManager) { this._pageRequestManager = Sys.WebForms.PageRequestManager.getInstance(); } if (this._pageRequestManager !== null ) { this._pageRequestManager.add_beginRequest(this._beginRequestHandlerDelegate); this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate); } } Sys.UI._ModalUpdateProgress.prototype = { get_backgroundCssClass: Sys$UI$_ModalUpdateProgress$get_backgroundCssClass, set_backgroundCssClass: Sys$UI$_ModalUpdateProgress$set_backgroundCssClass, get_cancelControlID: Sys$UI$_ModalUpdateProgress$get_cancelControlID, set_cancelControlID: Sys$UI$_ModalUpdateProgress$set_cancelControlID, _attachPopup: Sys$UI$_ModalUpdateProgress$_attachPopup, _detachPopup: Sys$UI$_ModalUpdateProgress$_detachPopup, _onCancel: Sys$UI$_ModalUpdateProgress$_onCancel, _onLayout: Sys$UI$_ModalUpdateProgress$_onLayout, _layout: Sys$UI$_ModalUpdateProgress$_layout, _show: Sys$UI$_ModalUpdateProgress$_show, _disableTabs: Sys$UI$_ModalUpdateProgress$_disableTabs, _restoreTabs: Sys$UI$_ModalUpdateProgress$_restoreTabs, _hide: Sys$UI$_ModalUpdateProgress$_hide, _handleBeginRequest: Sys$UI$_ModalUpdateProgress$_handleBeginRequest, _startRequest: Sys$UI$_ModalUpdateProgress$_startRequest, _handleEndRequest: Sys$UI$_ModalUpdateProgress$_handleEndRequest, _getCurrentStyle: Sys$UI$_ModalUpdateProgress$_getCurrentStyle, dispose: Sys$UI$_ModalUpdateProgress$dispose, initialize: Sys$UI$_ModalUpdateProgress$initialize } Sys.UI._ModalUpdateProgress.registerClass('Sys.UI._ModalUpdateProgress', Sys.UI._UpdateProgress); if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();