// Name: ModalPopup.debug.js // Assembly: AjaxControlToolkit // Version: 16.1.0.0 // FileVersion: 16.1.0.0 Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.ModalPopupRepositionMode = function() { // The ModalPopupRepositionMode enumeration describes how the modal popup repositions throw Error.invalidOperation(); }; Sys.Extended.UI.ModalPopupRepositionMode.prototype = { None: 0, RepositionOnWindowResize: 1, RepositionOnWindowScroll: 2, RepositionOnWindowResizeAndScroll: 3 }; Sys.Extended.UI.ModalPopupRepositionMode.registerEnum('Sys.Extended.UI.ModalPopupRepositionMode'); Sys.Extended.UI.ModalPopupBehavior = function(element) { // The ModalPopupBehavior is used to display the target element as a modal dialog Sys.Extended.UI.ModalPopupBehavior.initializeBase(this, [element]); // Properties this._popupControlID = null; this._popupDragHandleControlID = null; this._backgroundCssClass = null; this._dropShadow = false; this._drag = false; this._okControlID = null; this._cancelControlID = null; this._onOkScript = null; this._onCancelScript = null; this._xCoordinate = -1; this._yCoordinate = -1; this._repositionMode = Sys.Extended.UI.ModalPopupRepositionMode.RepositionOnWindowResizeAndScroll; this._onShown = new Sys.Extended.UI.Animation.GenericAnimationBehavior(element); //element replaced later with popuptarget this._onHidden = new Sys.Extended.UI.Animation.GenericAnimationBehavior(element); this._onShowing = new Sys.Extended.UI.Animation.GenericAnimationBehavior(element); this._onHiding = new Sys.Extended.UI.Animation.GenericAnimationBehavior(element); // Variables this._backgroundElement = null; this._foregroundElement = null; this._relativeOrAbsoluteParentElement = null; this._popupElement = null; this._dragHandleElement = null; this._showHandler = null; this._okHandler = null; this._cancelHandler = null; this._scrollHandler = null; this._resizeHandler = null; this._windowHandlersAttached = false; this._dropShadowBehavior = null; this._dragBehavior = null; this._isIE6 = false; this._saveTabIndexes = new Array(); this._saveDesableSelect = new Array(); this._tagWithTabIndex = new Array('A', 'AREA', 'BUTTON', 'INPUT', 'OBJECT', 'SELECT', 'TEXTAREA', 'IFRAME'); this._isAnimationJustEnded = false; this._hidingAnimationEndedHandler = null; this._showingAnimationEndedHandler = null; }; Sys.Extended.UI.ModalPopupBehavior.prototype = { initialize: function() { //
Sys.Extended.UI.ModalPopupBehavior.callBaseMethod(this, 'initialize'); this._isIE6 = (Sys.Browser.agent == Sys.Browser.InternetExplorer && Sys.Browser.version < 7); if(this._popupDragHandleControlID) this._dragHandleElement = $get(this._popupDragHandleControlID); this._popupElement = $get(this._popupControlID); this._createDomElements(); this._showHandler = Function.createDelegate(this, this._onShow); $addHandler(this.get_element(), 'click', this._showHandler); if(this._okControlID) { this._okHandler = Function.createDelegate(this, this._onOk); $addHandler($get(this._okControlID), 'click', this._okHandler); } 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); // Need to know when partial updates complete this.registerPartialUpdateEvents(); // We initally set it to the element, but needs to be targeted at // the popup contorl this._resetAnimationsTarget(); // attach to animation end events to signal hiding animation completed // an call hide()/show() to hide/show the popup. if(this._onHiding.get_animation()) { this._hidingAnimationEndedHandler = Function.createDelegate(this, function() { this._isAnimationJustEnded = true; this.hide(); }); this._onHiding.get_animation().add_ended(this._hidingAnimationEndedHandler); } if(this._onShowing.get_animation()) { this._showingAnimationEndedHandler = Function.createDelegate(this, function() { this._isAnimationJustEnded = true; this.show(); }); this._onShowing.get_animation().add_ended(this._showingAnimationEndedHandler); } }, dispose: function() { // Going away; restore any changes to the page this._hideImplementation(); if(this._foregroundElement && this._foregroundElement.parentNode) { // Remove background we added to the DOM this._foregroundElement.parentNode.removeChild(this._backgroundElement); if(this._dropShadow) { // Remove DIV wrapper added in initialize this._foregroundElement.parentNode.appendChild(this._popupElement); this._foregroundElement.parentNode.removeChild(this._foregroundElement); } } this._scrollHandler = null; this._resizeHandler = null; if(this._cancelHandler && $get(this._cancelControlID)) { $removeHandler($get(this._cancelControlID), 'click', this._cancelHandler); this._cancelHandler = null; } if(this._okHandler && $get(this._okControlID)) { $removeHandler($get(this._okControlID), 'click', this._okHandler); this._okHandler = null; } if(this._showHandler) { $removeHandler(this.get_element(), 'click', this._showHandler); this._showHandler = null; } if(this._hidingAnimationEndedHandler) { this._onHiding.get_animation().remove_ended(this._hidingAnimationEndedHandler); } if(this._showingAnimationEndedHandler) { this._onShowing.get_animation().remove_ended(this._showingAnimationEndedHandler); } Sys.Extended.UI.ModalPopupBehavior.callBaseMethod(this, 'dispose'); }, _createDomElements: function() { if(this._dropShadow) { this._foregroundElement = document.createElement('div'); this._foregroundElement.id = this.get_id() + '_foregroundElement'; this._popupElement.parentNode.appendChild(this._foregroundElement); this._foregroundElement.appendChild(this._popupElement); } else { this._foregroundElement = this._popupElement; } this._backgroundElement = document.createElement('div'); this._backgroundElement.dataset.actControlType = "modalPopupBackground"; this._backgroundElement.id = this.get_id() + '_backgroundElement'; this._backgroundElement.style.display = 'none'; this._backgroundElement.style.position = 'fixed'; this._backgroundElement.style.left = '0px'; this._backgroundElement.style.top = '0px'; if(this._backgroundCssClass) this._backgroundElement.className = this._backgroundCssClass; this._foregroundElement.parentNode.appendChild(this._backgroundElement); this._foregroundElement.style.display = 'none'; this._foregroundElement.style.position = 'fixed'; this._setZIndex(); }, _setZIndex: function() { var topModalPopupBackgroundZIndex = parseInt(this._findTopModalPopupBackgroundZIndex()); // Want zIndex to big enough that the background sits above everything else // CSS 2.1 defines no bounds for the type, so pick arbitrarily this._backgroundElement.style.zIndex = topModalPopupBackgroundZIndex ? parseInt(topModalPopupBackgroundZIndex + 1) : parseInt(Sys.Extended.UI.zIndex.ModalPopupBackground); this._foregroundElement.style.zIndex = parseInt($common.getCurrentStyle(this._backgroundElement, 'zIndex', this._backgroundElement.style.zIndex)) + 1; }, _getAllElementsWithAttribute: function(attribute) { var matchingElements = []; var allElements = document.getElementsByTagName('*'); for(var i = 0, n = allElements.length; i < n; i++) { if(allElements[i].getAttribute(attribute) !== null) { matchingElements.push(allElements[i]); } } return matchingElements; }, _findTopModalPopupBackgroundZIndex: function() { var actElements = this._getAllElementsWithAttribute("data-act-control-type"); var backgrounds = []; for(var i = 0; i < actElements.length; i++) { if(actElements[i].dataset.actControlType == "modalPopupBackground") backgrounds.push(actElements[i]); } var backgroundsZindex = {}; var topZIndex = undefined; for(var i = 0; i < backgrounds.length; i++) { if(topZIndex == undefined) topZIndex = backgrounds[i].style.zIndex; if(backgrounds[i].style.zIndex > topZIndex) { topZIndex = backgrounds[i].style.zIndex; } } return topZIndex; }, _attachPopup: function() { if(this._dropShadow && !this._dropShadowBehavior) this._dropShadowBehavior = $create(Sys.Extended.UI.DropShadowBehavior, {}, null, null, this._popupElement); if(this._dragHandleElement && !this._dragBehavior) this._dragBehavior = $create(Sys.Extended.UI.FloatingBehavior, { "handle": this._dragHandleElement }, null, null, this._foregroundElement); $addHandler(window, 'resize', this._resizeHandler); $addHandler(window, 'scroll', this._scrollHandler); this._windowHandlersAttached = true; }, _detachPopup: function() { if(this._windowHandlersAttached) { if(this._scrollHandler) $removeHandler(window, 'scroll', this._scrollHandler); if(this._resizeHandler) $removeHandler(window, 'resize', this._resizeHandler); this._windowHandlersAttached = false; } if(this._dragBehavior) { this._dragBehavior.dispose(); this._dragBehavior = null; } if(this._dropShadowBehavior) { this._dropShadowBehavior.dispose(); this._dropShadowBehavior = null; } }, _onShow: function(e) { // Handler for the target's click event if(!this.get_element().disabled) { this.show(); e.preventDefault(); return false; } }, _onOk: function(e) { // Handler for the modal dialog's OK button click var element = $get(this._okControlID); if(element && !element.disabled) { if(this.hide() && this._onOkScript) window.setTimeout(this._onOkScript, 0); e.preventDefault(); return false; } }, _onCancel: function(e) { // Handler for the modal dialog's Cancel button click var element = $get(this._cancelControlID); if(element && !element.disabled) { if(this.hide() && this._onCancelScript) window.setTimeout(this._onCancelScript, 0); e.preventDefault(); return false; } }, _onLayout: function(e) { // Handler for scrolling and resizing events that would require a repositioning of the modal dialog var positioning = this.get_repositionMode(); if(((positioning === Sys.Extended.UI.ModalPopupRepositionMode.RepositionOnWindowScroll) || (positioning === Sys.Extended.UI.ModalPopupRepositionMode.RepositionOnWindowResizeAndScroll)) && (e.type === 'scroll')) { this._layout(); } else if(((positioning === Sys.Extended.UI.ModalPopupRepositionMode.RepositionOnWindowResize) || (positioning === Sys.Extended.UI.ModalPopupRepositionMode.RepositionOnWindowResizeAndScroll)) && (e.type === 'resize')) { this._layout(); } else { // Layout background element again to make sure it covers the whole background. // This needs to be called separately since _layout will not be always called // to reposition the popup depending on the RepositionMode but the background needs // to handle the resize/scroll every time. this._layoutBackgroundElement(); } }, /// /// Displays an element that is referenced by the PopupControlID property as a modal dialog box /// /// show: function() { // Display the element referenced by PopupControlID as a modal dialog if(!this._isAnimationJustEnded) { var eventArgs = new Sys.CancelEventArgs(); this.raise_showing(eventArgs); if(eventArgs.get_cancel()) { return; } else if(this._onShowing.get_animation()) { this._onShowing.play(); return; } } else { this._isAnimationJustEnded = false; } this.populate(); this._attachPopup(); this._setZIndex(); this._backgroundElement.style.display = ''; this._foregroundElement.style.display = ''; this._popupElement.style.display = ''; if(this._isIE6) { this._foregroundElement.style.position = 'absolute'; this._backgroundElement.style.position = 'absolute'; // find the relative or absolute parent var tempRelativeOrAbsoluteParent = this._foregroundElement.parentNode; while(tempRelativeOrAbsoluteParent && (tempRelativeOrAbsoluteParent != document.documentElement)) { if((tempRelativeOrAbsoluteParent.style.position != 'relative') && (tempRelativeOrAbsoluteParent.style.position != 'absolute')) { tempRelativeOrAbsoluteParent = tempRelativeOrAbsoluteParent.parentNode; } else { this._relativeOrAbsoluteParentElement = tempRelativeOrAbsoluteParent; break; } } } // Disable TAB this.disableTab(); this._layout(); // On pages that don't need scrollbars, Firefox and Safari act like // one or both are present the first time the layout code runs which // obviously leads to display issues - run the layout code a second // time to work around this problem this._layout(); this.raise_shown(Sys.EventArgs.Empty); this._onShown.play(); }, /// /// Changes tab indices so that tabbing moves focus only through the modal dialog box /// /// disableTab: function() { // Change the tab indices so we only tab through the modal popup // (and hide SELECT tags in IE6) var i = 0, tagElements, tagElementsInPopUp = new Array(); Array.clear(this._saveTabIndexes); //Save all popup's tag in tagElementsInPopUp 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"; } } } //IE6 Bug with SELECT element always showing up on top i = 0; if((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) { //Save SELECT in PopUp var tagSelectInPopUp = new Array(); for(var j = 0; j < this._tagWithTabIndex.length; j++) { tagElements = this._foregroundElement.getElementsByTagName('SELECT'); for(var k = 0; k < tagElements.length; k++) { tagSelectInPopUp[i] = tagElements[k]; i++; } } i = 0; Array.clear(this._saveDesableSelect); tagElements = document.getElementsByTagName('SELECT'); for(var k = 0; k < tagElements.length; k++) if(Array.indexOf(tagSelectInPopUp, tagElements[k]) == -1) { this._saveDesableSelect[i++] = { tag: tagElements[k], visib: $common.getCurrentStyle(tagElements[k], 'visibility') }; tagElements[k].style.visibility = 'hidden'; } } }, /// /// Restores tab indices from the page /// /// restoreTab: function() { // Restore the tab indices so we tab through the page like normal // (and restore SELECT tags in IE6) for(var i = 0; i < this._saveTabIndexes.length; i++) { this._saveTabIndexes[i].tag.tabIndex = this._saveTabIndexes[i].index; } Array.clear(this._saveTabIndexes); //IE6 Bug with SELECT element always showing up on top if((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) { for(var k = 0; k < this._saveDesableSelect.length; k++) this._saveDesableSelect[k].tag.style.visibility = this._saveDesableSelect[k].visib; Array.clear(this._saveDesableSelect); } }, /// /// Hides an element that is referenced by the PopupControlID property /// /// Whether the popup was hidden /// hide: function() { // Hide the modal dialog if(!this._isAnimationJustEnded) { var eventArgs = new Sys.CancelEventArgs(); this.raise_hiding(eventArgs); if(eventArgs.get_cancel()) return false; else if(this._onHiding.get_animation()) { this._onHiding.play(); return true; } } else { this._isAnimationJustEnded = false; } this._hideImplementation(); this.raise_hidden(Sys.EventArgs.Empty); this._onHidden.play(); return true; }, _hideImplementation: function() { // Internal implementation to hide the modal dialog this._backgroundElement.style.display = 'none'; this._foregroundElement.style.display = 'none'; this.restoreTab(); this._detachPopup(); }, _layout: function() { var scrollLeft = (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft), scrollTop = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); var clientBounds = $common.getClientBounds(), clientWidth = clientBounds.width, clientHeight = clientBounds.height; // Setup the location of the background element this._layoutBackgroundElement(); var xCoord = 0; var yCoord = 0; if(this._xCoordinate < 0) { var foregroundelementwidth = this._foregroundElement.offsetWidth ? this._foregroundElement.offsetWidth : this._foregroundElement.scrollWidth; xCoord = ((clientWidth - foregroundelementwidth) / 2); // workaround for drag behavior which calls setlocation which in turn // changes the position of the panel to be absolute and requiring us // to add the scrollLeft so that it is positioned correctly. if(this._foregroundElement.style.position == 'absolute') xCoord += scrollLeft; this._foregroundElement.style.left = xCoord + 'px'; } else { if(this._isIE6) { this._foregroundElement.style.left = (this._xCoordinate + scrollLeft) + 'px'; xCoord = this._xCoordinate + scrollLeft; } else { this._foregroundElement.style.left = this._xCoordinate + 'px'; xCoord = this._xCoordinate; } } if(this._yCoordinate < 0) { var foregroundelementheight = this._foregroundElement.offsetHeight ? this._foregroundElement.offsetHeight : this._foregroundElement.scrollHeight; yCoord = ((clientHeight - foregroundelementheight) / 2); // workaround for drag behavior which calls setlocation which in turn // changes the position of the panel to be absolute and requiring us // to add the scrollLeft so that it is positioned correctly. if(this._foregroundElement.style.position == 'absolute') yCoord += scrollTop; this._foregroundElement.style.top = yCoord + 'px'; } else { if(this._isIE6) { this._foregroundElement.style.top = (this._yCoordinate + scrollTop) + 'px'; yCoord = this._yCoordinate + scrollTop; } else { this._foregroundElement.style.top = this._yCoordinate + 'px'; yCoord = this._yCoordinate; } } // make sure get location agrees with the location of the foreground element this._layoutForegroundElement(xCoord, yCoord); if(this._dropShadowBehavior) { this._dropShadowBehavior.setShadow(); window.setTimeout(Function.createDelegate(this, this._fixupDropShadowBehavior), 0); } // layout background element again to make sure it covers the whole background // in case things moved around when laying out the foreground element this._layoutBackgroundElement(); }, _layoutForegroundElement: function(xCoord, yCoord) { // Set the correct location of the foreground element to ensure that it is absolutely // positioned with respect to the browser. This is just a workaround for IE 6 since // elements nested in relative parents cause modal popup positioning issues and 'fixed' // is not supported by IE 6. Hence we manually compute the right location of the popup. if(this._isIE6 && this._relativeOrAbsoluteParentElement) { var foregroundLocation = $common.getLocation(this._foregroundElement), relativeParentLocation = $common.getLocation(this._relativeOrAbsoluteParentElement), getLocationXCoord = foregroundLocation.x; if(getLocationXCoord != xCoord) // offset it by that amount this._foregroundElement.style.left = (xCoord - relativeParentLocation.x) + 'px'; var getLocationYCoord = foregroundLocation.y; if(getLocationYCoord != yCoord) // offset it by that amount this._foregroundElement.style.top = (yCoord - relativeParentLocation.y) + 'px'; } }, _layoutBackgroundElement: function() { // Set the correct location of the background element to ensure that it is absolutely // positioned with respect to the browser. // Background element needs to cover the visible client area completely hence its // top and left coordinates need to be 0, and if relatively positioned its getlocation // value needs to be 0. if(this._isIE6) { var backgroundLocation = $common.getLocation(this._backgroundElement), backgroundXCoord = backgroundLocation.x; if(backgroundXCoord != 0) // offset it by that amount. This is assuming only one level of nesting. If // multiple parents with absolute/relative positioning are setup this may not // cover the whole background. this._backgroundElement.style.left = (-backgroundXCoord) + 'px'; var backgroundYCoord = backgroundLocation.y; if(backgroundYCoord != 0) // offset it by that amount. This is assuming only one level of nesting. If // multiple parents with absolute/relative positioning are setup this may not // cover the whole background. this._backgroundElement.style.top = (-backgroundYCoord) + 'px'; } var clientBounds = $common.getClientBounds(), clientWidth = clientBounds.width, clientHeight = clientBounds.height; this._backgroundElement.style.width = Math.max(Math.max(document.documentElement.scrollWidth, document.body.scrollWidth), clientWidth) + 'px'; this._backgroundElement.style.height = Math.max(Math.max(document.documentElement.scrollHeight, document.body.scrollHeight), clientHeight) + 'px'; }, _fixupDropShadowBehavior: function() { // Some browsers don't update the location values immediately, so // the location of the drop shadow would always be a step behind // without this method if(this._dropShadowBehavior) this._dropShadowBehavior.setShadow(); }, _partialUpdateEndRequest: function(sender, endRequestEventArgs) { // Show the popup if requested during a partial postback Sys.Extended.UI.ModalPopupBehavior.callBaseMethod(this, '_partialUpdateEndRequest', [sender, endRequestEventArgs]); if(this.get_element()) { // Look up result by element's ID var action = endRequestEventArgs.get_dataItems()[this.get_element().id]; if("show" == action) this.show(); else if("hide" == action) this.hide(); } // Async postback may have added content; re-layout to accomodate it this._layout(); }, _onPopulated: function(sender, eventArgs) { // Re-layout the popup after we've dynamically populated Sys.Extended.UI.ModalPopupBehavior.callBaseMethod(this, '_onPopulated', [sender, eventArgs]); // Dynamic populate may have added content; re-layout to accomodate it this._layout(); }, _replaceAnimationTarget: function(memberName, target) { var json = this[memberName].get_json(); this[memberName] = new Sys.Extended.UI.Animation.GenericAnimationBehavior(target); this[memberName].set_json(json); this[memberName].initialize(); }, _resetAnimationsTarget: function() { var target = $get(this.get_popupControlID()); this._replaceAnimationTarget('_onShowing', target); this._replaceAnimationTarget('_onShown', target); this._replaceAnimationTarget('_onHiding', target); this._replaceAnimationTarget('_onHidden', target); }, /// /// ID of an element to display as a modal popup /// /// get_popupControlID /// set_popupControlID /// get_popupControlID: function() { return this._popupControlID; }, set_popupControlID: function(value) { if(this._popupControlID != value) { this._popupControlID = value; this.raisePropertyChanged('popupControlID'); } }, get_PopupControlID: function() { Sys.Extended.Deprecated("get_PopupControlID()", "get_popupControlID()"); return this.get_popupControlID(); }, set_PopupControlID: function(value) { Sys.Extended.Deprecated("set_PopupControlID(value)", "set_popupControlID(value)"); this.set_popupControlID(value); }, /// /// The distance from the left side of the modal popup to the left border of the browser window in pixels /// /// get_x /// set_x /// get_x: function() { return this._xCoordinate; }, set_x: function(value) { if(this._xCoordinate != value) { this._xCoordinate = value; this.raisePropertyChanged('x'); } }, get_X: function() { Sys.Extended.Deprecated("get_X()", "get_x()"); return this.get_x(); }, set_X: function(value) { Sys.Extended.Deprecated("set_X(value)", "set_x(value)"); this.set_x(value); }, /// /// The distance from the top side of the modal popup to the top border of the browser window in pixels /// /// get_y /// set_y /// get_y: function() { return this._yCoordinate; }, set_y: function(value) { if(this._yCoordinate != value) { this._yCoordinate = value; this.raisePropertyChanged('y'); } }, get_Y: function() { Sys.Extended.Deprecated("get_Y()", "get_y()"); return this.get_y(); }, set_Y: function(value) { Sys.Extended.Deprecated("set_Y(value)", "set_y(value)"); this.set_y(value); }, /// /// ID of an element to display as a drag handle for the modal popup /// /// get_popupDragHandleControlID /// set_popupDragHandleControlID /// get_popupDragHandleControlID: function() { return this._popupDragHandleControlID; }, set_popupDragHandleControlID: function(value) { if(this._popupDragHandleControlID != value) { this._popupDragHandleControlID = value; this.raisePropertyChanged('popupDragHandleControlID'); } }, get_PopupDragHandleControlID: function() { Sys.Extended.Deprecated("get_PopupDragHandleControlID()", "get_popupDragHandleControlID()"); return this.get_popupDragHandleControlID(); }, set_PopupDragHandleControlID: function(value) { Sys.Extended.Deprecated("set_PopupDragHandleControlID(value)", "set_popupDragHandleControlID(value)"); this.set_popupDragHandleControlID(value); }, /// /// A CSS class to apply to the background when the modal popup is displayed /// /// get_backgroundCssClass /// set_backgroundCssClass /// get_backgroundCssClass: function() { return this._backgroundCssClass; }, set_backgroundCssClass: function(value) { if(this._backgroundCssClass != value) { this._backgroundCssClass = value; this.raisePropertyChanged('backgroundCssClass'); } }, get_BackgroundCssClass: function() { Sys.Extended.Deprecated("get_BackgroundCssClass()", "get_backgroundCssClass()"); return this.get_backgroundCssClass(); }, set_BackgroundCssClass: function(value) { Sys.Extended.Deprecated("set_BackgroundCssClass(value)", "set_backgroundCssClass(value)"); this.set_backgroundCssClass(value); }, /// /// A Boolean value that specifies whether or not a drop shadow should be added to the modal popup /// /// get_dropShadow /// set_dropShadow /// get_dropShadow: function() { return this._dropShadow; }, set_dropShadow: function(value) { if(this._dropShadow != value) { this._dropShadow = value; this.raisePropertyChanged('dropShadow'); } }, get_DropShadow: function() { Sys.Extended.Deprecated("get_DropShadow()", "get_dropShadow()"); return this.get_dropShadow(); }, set_DropShadow: function(value) { Sys.Extended.Deprecated("set_DropShadow(value)", "set_dropShadow(value)"); this.set_dropShadow(value); }, /// /// A Boolean value that specifies whether or not the modal popup can be dragged /// /// /// This property is obsolete. /// /// get_drag /// set_drag /// get_drag: function() { // Obsolete: Setting the _drag property is a noop return this._drag; }, set_drag: function(value) { if(this._drag != value) { this._drag = value; this.raisePropertyChanged('drag'); } }, get_Drag: function() { Sys.Extended.Deprecated("get_Drag()", "get_drag()"); return this.get_drag(); }, set_Drag: function(value) { Sys.Extended.Deprecated("set_Drag(value)", "set_drag(value)"); this.set_drag(value); }, /// /// ID of an element that dismisses the modal popup /// /// get_okControlID /// set_okControlID /// get_okControlID: function() { return this._okControlID; }, set_okControlID: function(value) { if(this._okControlID != value) { this._okControlID = value; this.raisePropertyChanged('okControlID'); } }, get_OkControlID: function() { Sys.Extended.Deprecated("get_OkControlID()", "get_okControlID()"); return this.get_okControlID(); }, set_OkControlID: function(value) { Sys.Extended.Deprecated("set_OkControlID(value)", "set_okControlID(value)"); this.set_okControlID(value); }, /// /// ID of an element that cancels the modal popup /// /// get_cancelControlID /// set_cancelControlID /// get_cancelControlID: function() { return this._cancelControlID; }, set_cancelControlID: function(value) { if(this._cancelControlID != value) { this._cancelControlID = value; this.raisePropertyChanged('cancelControlID'); } }, get_CancelControlID: function() { Sys.Extended.Deprecated("get_CancelControlID()", "get_cancelControlID()"); return this.get_cancelControlID(); }, set_CancelControlID: function(value) { Sys.Extended.Deprecated("set_CancelControlID(value)", "set_cancelControlID(value)"); this.set_cancelControlID(value); }, /// /// A script to run when the modal popup is dismissed by the element specified using the okControlID property /// /// get_onOkScript /// set_onOkScript /// get_onOkScript: function() { return this._onOkScript; }, set_onOkScript: function(value) { if(this._onOkScript != value) { this._onOkScript = value; this.raisePropertyChanged('onOkScript'); } }, get_OnOkScript: function() { Sys.Extended.Deprecated("get_OnOkScript()", "get_onOkScript()"); return this.get_onOkScript(); }, set_OnOkScript: function(value) { Sys.Extended.Deprecated("set_OnOkScript(value)", "set_onOkScript(value)"); this.set_onOkScript(value); }, /// /// A script to run when the modal popup is dismissed by the element specified using the cancelControlID property /// /// get_onCancelScript /// set_onCancelScript /// get_onCancelScript: function() { return this._onCancelScript; }, set_onCancelScript: function(value) { if(this._onCancelScript != value) { this._onCancelScript = value; this.raisePropertyChanged('onCancelScript'); } }, get_OnCancelScript: function() { Sys.Extended.Deprecated("get_OnCancelScript()", "get_onCancelScript()"); return this.get_onCancelScript(); }, set_OnCancelScript: function(value) { Sys.Extended.Deprecated("set_OnCancelScript(value)", "set_onCancelScript(value)"); this.set_onCancelScript(value); }, /// /// The Sys.Extended.UI.ModalPopupRepositionMode object that determines whether the modal /// popup should be repositioned on window resize or scroll /// /// get_repositionMode /// set_repositionMode /// get_repositionMode: function() { return this._repositionMode; }, set_repositionMode: function(value) { if(this._repositionMode !== value) { this._repositionMode = value; this.raisePropertyChanged('repositionMode'); } }, /// /// A JSON definition of generic OnShowing Animation. Played before the Popup is being shown /// /// get_onShowing /// set_onShowing /// get_onShowing: function() { return this._onShowing.get_json(); }, set_onShowing: function(value) { this._onShowing.set_json(value); this.raisePropertyChanged('onShowing'); }, get_OnShowing: function() { Sys.Extended.Deprecated("get_OnShowing()", "get_onShowing()"); return this.get_onShowing(); }, set_OnShowing: function(value) { Sys.Extended.Deprecated("set_OnShowing(value)", "set_onShowing(value)"); this.set_onShowing(value); }, /// /// A JSON definition of generic OnShowing Animation. Played before the Popup is shown /// /// get_onShown /// set_onShown /// get_onShown: function() { return this._onShown.get_json(); }, set_onShown: function(value) { this._onShown.set_json(value); this.raisePropertyChanged('onShown'); }, get_OnShown: function() { Sys.Extended.Deprecated("get_OnShown()", "get_onShown()"); return this.get_onShown(); }, set_OnShown: function(value) { Sys.Extended.Deprecated("set_OnShown(value)", "set_onShown(value)"); this.set_onShown(value); }, /// /// A JSON definition of generic OnShowing Animation. Played before the Popup is being hidden /// /// get_onHiding /// set_onHiding /// get_onHiding: function() { return this._onHiding.get_json(); }, set_onHiding: function(value) { this._onHiding.set_json(value); this.raisePropertyChanged('onHiding'); }, get_OnHiding: function() { Sys.Extended.Deprecated("get_OnHiding()", "get_onHiding()"); return this.get_onHiding(); }, set_OnHiding: function(value) { Sys.Extended.Deprecated("set_OnHiding(value)", "set_onHiding(value)"); this.set_onHiding(value); }, /// /// A JSON definition of generic OnShowing Animation. Played before the Popup is hidden /// /// get_onHidden /// set_onHidden /// get_onHidden: function() { return this._onHidden.get_json(); }, set_onHidden: function(value) { this._onHidden.set_json(value); this.raisePropertyChanged('onHidden'); }, get_OnHidden: function() { Sys.Extended.Deprecated("get_OnHidden()", "get_onHidden()"); return this.get_onHidden(); }, set_OnHidden: function(value) { Sys.Extended.Deprecated("set_OnHidden(value)", "set_onHidden(value)"); this.set_onHidden(value); }, /// /// Fires when the popup is being shown /// /// /// add_showing: function(handler) { // Add an event handler for the showing event this.get_events().addHandler('showing', handler); }, remove_showing: function(handler) { // Remove an event handler from the showing event this.get_events().removeHandler('showing', handler); }, raise_showing: function(eventArgs) { var handler = this.get_events().getHandler('showing'); if(handler) handler(this, eventArgs); }, raiseShowing: function(eventArgs) { Sys.Extended.Deprecated("raiseShowing(eventArgs)", "raise_showing(eventArgs)"); this.raise_showing(eventArgs); }, /// /// Fires when the popup is shown /// /// /// add_shown: function(handler) { this.get_events().addHandler('shown', handler); }, remove_shown: function(handler) { this.get_events().removeHandler('shown', handler); }, raise_shown: function(eventArgs) { var handler = this.get_events().getHandler('shown'); if(handler) handler(this, eventArgs); }, raiseShown: function(eventArgs) { Sys.Extended.Deprecated("raiseShown(eventArgs)", "raise_shown(eventArgs)"); this.raise_shown(eventArgs); }, /// /// Fires when the popup is being hidden /// /// /// add_hiding: function(handler) { this.get_events().addHandler('hiding', handler); }, remove_hiding: function(handler) { this.get_events().removeHandler('hiding', handler); }, raise_hiding: function(eventArgs) { var handler = this.get_events().getHandler('hiding'); if(handler) handler(this, eventArgs); }, raiseHiding: function(eventArgs) { Sys.Extended.Deprecated("raiseHiding(eventArgs)", "raise_hiding(eventArgs)"); this.raise_hiding(eventArgs); }, /// /// Fires when the popup is hidden /// /// /// add_hidden: function(handler) { this.get_events().addHandler('hidden', handler); }, remove_hidden: function(handler) { this.get_events().removeHandler('hidden', handler); }, raise_hidden: function(eventArgs) { var handler = this.get_events().getHandler('hidden'); if(handler) handler(this, eventArgs); }, raiseHidden: function(eventArgs) { Sys.Extended.Deprecated("raiseHidden(eventArgs)", "raise_hidden(eventArgs)"); this.raise_hidden(eventArgs); } }; Sys.Extended.UI.ModalPopupBehavior.registerClass('Sys.Extended.UI.ModalPopupBehavior', Sys.Extended.UI.DynamicPopulateBehaviorBase); Sys.Extended.UI.ModalPopupBehavior.invokeViaServer = function(behaviorID, show) { // This static function (that is intended to be called from script emitted // on the server) will show or hide the behavior associated with behaviorID // (i.e. to use this, the ModalPopupExtender must have an ID or BehaviorID) and // will either show or hide depending on the show parameter. var behavior = $find(behaviorID); if(behavior) { if(show) behavior.show(); else behavior.hide(); } };