http://2010.igem.org/wiki/index.php?title=Team:TU_Delft/files/jquery.ui.dialog.js&feed=atom&action=history
Team:TU Delft/files/jquery.ui.dialog.js - Revision history
2024-03-29T09:37:23Z
Revision history for this page on the wiki
MediaWiki 1.16.5
http://2010.igem.org/wiki/index.php?title=Team:TU_Delft/files/jquery.ui.dialog.js&diff=102313&oldid=prev
Ptmvanboheemen: New page: /* * jQuery UI Dialog 1.8.4 * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http...
2010-10-15T10:22:38Z
<p>New page: /* * jQuery UI Dialog 1.8.4 * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http...</p>
<p><b>New page</b></p><div>/*<br />
* jQuery UI Dialog 1.8.4<br />
*<br />
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)<br />
* Dual licensed under the MIT or GPL Version 2 licenses.<br />
* http://jquery.org/license<br />
*<br />
* http://docs.jquery.com/UI/Dialog<br />
*<br />
* Depends:<br />
* jquery.ui.core.js<br />
* jquery.ui.widget.js<br />
* jquery.ui.button.js<br />
* jquery.ui.draggable.js<br />
* jquery.ui.mouse.js<br />
* jquery.ui.position.js<br />
* jquery.ui.resizable.js<br />
*/<br />
(function( $, undefined ) {<br />
<br />
var uiDialogClasses =<br />
'ui-dialog ' +<br />
'ui-widget ' +<br />
'ui-widget-content ' +<br />
'ui-corner-all ';<br />
<br />
$.widget("ui.dialog", {<br />
options: {<br />
autoOpen: true,<br />
buttons: {},<br />
closeOnEscape: true,<br />
closeText: 'close',<br />
dialogClass: '',<br />
draggable: true,<br />
hide: null,<br />
height: 'auto',<br />
maxHeight: false,<br />
maxWidth: false,<br />
minHeight: 150,<br />
minWidth: 150,<br />
modal: false,<br />
position: {<br />
my: 'center',<br />
at: 'center',<br />
of: window,<br />
collision: 'fit',<br />
// ensure that the titlebar is never outside the document<br />
using: function(pos) {<br />
var topOffset = $(this).css(pos).offset().top;<br />
if (topOffset < 0) {<br />
$(this).css('top', pos.top - topOffset);<br />
}<br />
}<br />
},<br />
resizable: true,<br />
show: null,<br />
stack: true,<br />
title: '',<br />
width: 300,<br />
zIndex: 1000<br />
},<br />
<br />
_create: function() {<br />
this.originalTitle = this.element.attr('title');<br />
// #5742 - .attr() might return a DOMElement<br />
if ( typeof this.originalTitle !== "string" ) {<br />
this.originalTitle = "";<br />
}<br />
<br />
var self = this,<br />
options = self.options,<br />
<br />
title = options.title || self.originalTitle || '&#160;',<br />
titleId = $.ui.dialog.getTitleId(self.element),<br />
<br />
uiDialog = (self.uiDialog = $('<div></div>'))<br />
.appendTo(document.body)<br />
.hide()<br />
.addClass(uiDialogClasses + options.dialogClass)<br />
.css({<br />
zIndex: options.zIndex<br />
})<br />
// setting tabIndex makes the div focusable<br />
// setting outline to 0 prevents a border on focus in Mozilla<br />
.attr('tabIndex', -1).css('outline', 0).keydown(function(event) {<br />
if (options.closeOnEscape && event.keyCode &&<br />
event.keyCode === $.ui.keyCode.ESCAPE) {<br />
<br />
self.close(event);<br />
event.preventDefault();<br />
}<br />
})<br />
.attr({<br />
role: 'dialog',<br />
'aria-labelledby': titleId<br />
})<br />
.mousedown(function(event) {<br />
self.moveToTop(false, event);<br />
}),<br />
<br />
uiDialogContent = self.element<br />
.show()<br />
.removeAttr('title')<br />
.addClass(<br />
'ui-dialog-content ' +<br />
'ui-widget-content')<br />
.appendTo(uiDialog),<br />
<br />
uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))<br />
.addClass(<br />
'ui-dialog-titlebar ' +<br />
'ui-widget-header ' +<br />
'ui-corner-all ' +<br />
'ui-helper-clearfix'<br />
)<br />
.prependTo(uiDialog),<br />
<br />
uiDialogTitlebarClose = $('<a href="#"></a>')<br />
.addClass(<br />
'ui-dialog-titlebar-close ' +<br />
'ui-corner-all'<br />
)<br />
.attr('role', 'button')<br />
.hover(<br />
function() {<br />
uiDialogTitlebarClose.addClass('ui-state-hover');<br />
},<br />
function() {<br />
uiDialogTitlebarClose.removeClass('ui-state-hover');<br />
}<br />
)<br />
.focus(function() {<br />
uiDialogTitlebarClose.addClass('ui-state-focus');<br />
})<br />
.blur(function() {<br />
uiDialogTitlebarClose.removeClass('ui-state-focus');<br />
})<br />
.click(function(event) {<br />
self.close(event);<br />
return false;<br />
})<br />
.appendTo(uiDialogTitlebar),<br />
<br />
uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))<br />
.addClass(<br />
'ui-icon ' +<br />
'ui-icon-closethick'<br />
)<br />
.text(options.closeText)<br />
.appendTo(uiDialogTitlebarClose),<br />
<br />
uiDialogTitle = $('<span></span>')<br />
.addClass('ui-dialog-title')<br />
.attr('id', titleId)<br />
.html(title)<br />
.prependTo(uiDialogTitlebar);<br />
<br />
//handling of deprecated beforeclose (vs beforeClose) option<br />
//Ticket #4669 http://dev.jqueryui.com/ticket/4669<br />
//TODO: remove in 1.9pre<br />
if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {<br />
options.beforeClose = options.beforeclose;<br />
}<br />
<br />
uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();<br />
<br />
if (options.draggable && $.fn.draggable) {<br />
self._makeDraggable();<br />
}<br />
if (options.resizable && $.fn.resizable) {<br />
self._makeResizable();<br />
}<br />
<br />
self._createButtons(options.buttons);<br />
self._isOpen = false;<br />
<br />
if ($.fn.bgiframe) {<br />
uiDialog.bgiframe();<br />
}<br />
},<br />
<br />
_init: function() {<br />
if ( this.options.autoOpen ) {<br />
this.open();<br />
}<br />
},<br />
<br />
destroy: function() {<br />
var self = this;<br />
<br />
if (self.overlay) {<br />
self.overlay.destroy();<br />
}<br />
self.uiDialog.hide();<br />
self.element<br />
.unbind('.dialog')<br />
.removeData('dialog')<br />
.removeClass('ui-dialog-content ui-widget-content')<br />
.hide().appendTo('body');<br />
self.uiDialog.remove();<br />
<br />
if (self.originalTitle) {<br />
self.element.attr('title', self.originalTitle);<br />
}<br />
<br />
return self;<br />
},<br />
<br />
widget: function() {<br />
return this.uiDialog;<br />
},<br />
<br />
close: function(event) {<br />
var self = this,<br />
maxZ;<br />
<br />
if (false === self._trigger('beforeClose', event)) {<br />
return;<br />
}<br />
<br />
if (self.overlay) {<br />
self.overlay.destroy();<br />
}<br />
self.uiDialog.unbind('keypress.ui-dialog');<br />
<br />
self._isOpen = false;<br />
<br />
if (self.options.hide) {<br />
self.uiDialog.hide(self.options.hide, function() {<br />
self._trigger('close', event);<br />
});<br />
} else {<br />
self.uiDialog.hide();<br />
self._trigger('close', event);<br />
}<br />
<br />
$.ui.dialog.overlay.resize();<br />
<br />
// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)<br />
if (self.options.modal) {<br />
maxZ = 0;<br />
$('.ui-dialog').each(function() {<br />
if (this !== self.uiDialog[0]) {<br />
maxZ = Math.max(maxZ, $(this).css('z-index'));<br />
}<br />
});<br />
$.ui.dialog.maxZ = maxZ;<br />
}<br />
<br />
return self;<br />
},<br />
<br />
isOpen: function() {<br />
return this._isOpen;<br />
},<br />
<br />
// the force parameter allows us to move modal dialogs to their correct<br />
// position on open<br />
moveToTop: function(force, event) {<br />
var self = this,<br />
options = self.options,<br />
saveScroll;<br />
<br />
if ((options.modal && !force) ||<br />
(!options.stack && !options.modal)) {<br />
return self._trigger('focus', event);<br />
}<br />
<br />
if (options.zIndex > $.ui.dialog.maxZ) {<br />
$.ui.dialog.maxZ = options.zIndex;<br />
}<br />
if (self.overlay) {<br />
$.ui.dialog.maxZ += 1;<br />
self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);<br />
}<br />
<br />
//Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.<br />
// http://ui.jquery.com/bugs/ticket/3193<br />
saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };<br />
$.ui.dialog.maxZ += 1;<br />
self.uiDialog.css('z-index', $.ui.dialog.maxZ);<br />
self.element.attr(saveScroll);<br />
self._trigger('focus', event);<br />
<br />
return self;<br />
},<br />
<br />
open: function() {<br />
if (this._isOpen) { return; }<br />
<br />
var self = this,<br />
options = self.options,<br />
uiDialog = self.uiDialog;<br />
<br />
self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;<br />
if (uiDialog.next().length) {<br />
uiDialog.appendTo('body');<br />
}<br />
self._size();<br />
self._position(options.position);<br />
uiDialog.show(options.show);<br />
self.moveToTop(true);<br />
<br />
// prevent tabbing out of modal dialogs<br />
if (options.modal) {<br />
uiDialog.bind('keypress.ui-dialog', function(event) {<br />
if (event.keyCode !== $.ui.keyCode.TAB) {<br />
return;<br />
}<br />
<br />
var tabbables = $(':tabbable', this),<br />
first = tabbables.filter(':first'),<br />
last = tabbables.filter(':last');<br />
<br />
if (event.target === last[0] && !event.shiftKey) {<br />
first.focus(1);<br />
return false;<br />
} else if (event.target === first[0] && event.shiftKey) {<br />
last.focus(1);<br />
return false;<br />
}<br />
});<br />
}<br />
<br />
// set focus to the first tabbable element in the content area or the first button<br />
// if there are no tabbable elements, set focus on the dialog itself<br />
$(self.element.find(':tabbable').get().concat(<br />
uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(<br />
uiDialog.get()))).eq(0).focus();<br />
<br />
self._trigger('open');<br />
self._isOpen = true;<br />
<br />
return self;<br />
},<br />
<br />
_createButtons: function(buttons) {<br />
var self = this,<br />
hasButtons = false,<br />
uiDialogButtonPane = $('<div></div>')<br />
.addClass(<br />
'ui-dialog-buttonpane ' +<br />
'ui-widget-content ' +<br />
'ui-helper-clearfix'<br />
),<br />
uiButtonSet = $( "<div></div>" )<br />
.addClass( "ui-dialog-buttonset" )<br />
.appendTo( uiDialogButtonPane );<br />
<br />
// if we already have a button pane, remove it<br />
self.uiDialog.find('.ui-dialog-buttonpane').remove();<br />
<br />
if (typeof buttons === 'object' && buttons !== null) {<br />
$.each(buttons, function() {<br />
return !(hasButtons = true);<br />
});<br />
}<br />
if (hasButtons) {<br />
$.each(buttons, function(name, fn) {<br />
var button = $('<button type="button"></button>')<br />
.text(name)<br />
.click(function() { fn.apply(self.element[0], arguments); })<br />
.appendTo(uiButtonSet);<br />
if ($.fn.button) {<br />
button.button();<br />
}<br />
});<br />
uiDialogButtonPane.appendTo(self.uiDialog);<br />
}<br />
},<br />
<br />
_makeDraggable: function() {<br />
var self = this,<br />
options = self.options,<br />
doc = $(document),<br />
heightBeforeDrag;<br />
<br />
function filteredUi(ui) {<br />
return {<br />
position: ui.position,<br />
offset: ui.offset<br />
};<br />
}<br />
<br />
self.uiDialog.draggable({<br />
cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',<br />
handle: '.ui-dialog-titlebar',<br />
containment: 'document',<br />
start: function(event, ui) {<br />
heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();<br />
$(this).height($(this).height()).addClass("ui-dialog-dragging");<br />
self._trigger('dragStart', event, filteredUi(ui));<br />
},<br />
drag: function(event, ui) {<br />
self._trigger('drag', event, filteredUi(ui));<br />
},<br />
stop: function(event, ui) {<br />
options.position = [ui.position.left - doc.scrollLeft(),<br />
ui.position.top - doc.scrollTop()];<br />
$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);<br />
self._trigger('dragStop', event, filteredUi(ui));<br />
$.ui.dialog.overlay.resize();<br />
}<br />
});<br />
},<br />
<br />
_makeResizable: function(handles) {<br />
handles = (handles === undefined ? this.options.resizable : handles);<br />
var self = this,<br />
options = self.options,<br />
// .ui-resizable has position: relative defined in the stylesheet<br />
// but dialogs have to use absolute or fixed positioning<br />
position = self.uiDialog.css('position'),<br />
resizeHandles = (typeof handles === 'string' ?<br />
handles :<br />
'n,e,s,w,se,sw,ne,nw'<br />
);<br />
<br />
function filteredUi(ui) {<br />
return {<br />
originalPosition: ui.originalPosition,<br />
originalSize: ui.originalSize,<br />
position: ui.position,<br />
size: ui.size<br />
};<br />
}<br />
<br />
self.uiDialog.resizable({<br />
cancel: '.ui-dialog-content',<br />
containment: 'document',<br />
alsoResize: self.element,<br />
maxWidth: options.maxWidth,<br />
maxHeight: options.maxHeight,<br />
minWidth: options.minWidth,<br />
minHeight: self._minHeight(),<br />
handles: resizeHandles,<br />
start: function(event, ui) {<br />
$(this).addClass("ui-dialog-resizing");<br />
self._trigger('resizeStart', event, filteredUi(ui));<br />
},<br />
resize: function(event, ui) {<br />
self._trigger('resize', event, filteredUi(ui));<br />
},<br />
stop: function(event, ui) {<br />
$(this).removeClass("ui-dialog-resizing");<br />
options.height = $(this).height();<br />
options.width = $(this).width();<br />
self._trigger('resizeStop', event, filteredUi(ui));<br />
$.ui.dialog.overlay.resize();<br />
}<br />
})<br />
.css('position', position)<br />
.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');<br />
},<br />
<br />
_minHeight: function() {<br />
var options = this.options;<br />
<br />
if (options.height === 'auto') {<br />
return options.minHeight;<br />
} else {<br />
return Math.min(options.minHeight, options.height);<br />
}<br />
},<br />
<br />
_position: function(position) {<br />
var myAt = [],<br />
offset = [0, 0],<br />
isVisible;<br />
<br />
if (position) {<br />
// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(<br />
// if (typeof position == 'string' || $.isArray(position)) {<br />
// myAt = $.isArray(position) ? position : position.split(' ');<br />
<br />
if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {<br />
myAt = position.split ? position.split(' ') : [position[0], position[1]];<br />
if (myAt.length === 1) {<br />
myAt[1] = myAt[0];<br />
}<br />
<br />
$.each(['left', 'top'], function(i, offsetPosition) {<br />
if (+myAt[i] === myAt[i]) {<br />
offset[i] = myAt[i];<br />
myAt[i] = offsetPosition;<br />
}<br />
});<br />
<br />
position = {<br />
my: myAt.join(" "),<br />
at: myAt.join(" "),<br />
offset: offset.join(" ")<br />
};<br />
} <br />
<br />
position = $.extend({}, $.ui.dialog.prototype.options.position, position);<br />
} else {<br />
position = $.ui.dialog.prototype.options.position;<br />
}<br />
<br />
// need to show the dialog to get the actual offset in the position plugin<br />
isVisible = this.uiDialog.is(':visible');<br />
if (!isVisible) {<br />
this.uiDialog.show();<br />
}<br />
this.uiDialog<br />
// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781<br />
.css({ top: 0, left: 0 })<br />
.position(position);<br />
if (!isVisible) {<br />
this.uiDialog.hide();<br />
}<br />
},<br />
<br />
_setOption: function(key, value){<br />
var self = this,<br />
uiDialog = self.uiDialog,<br />
isResizable = uiDialog.is(':data(resizable)'),<br />
resize = false;<br />
<br />
switch (key) {<br />
//handling of deprecated beforeclose (vs beforeClose) option<br />
//Ticket #4669 http://dev.jqueryui.com/ticket/4669<br />
//TODO: remove in 1.9pre<br />
case "beforeclose":<br />
key = "beforeClose";<br />
break;<br />
case "buttons":<br />
self._createButtons(value);<br />
resize = true;<br />
break;<br />
case "closeText":<br />
// convert whatever was passed in to a string, for text() to not throw up<br />
self.uiDialogTitlebarCloseText.text("" + value);<br />
break;<br />
case "dialogClass":<br />
uiDialog<br />
.removeClass(self.options.dialogClass)<br />
.addClass(uiDialogClasses + value);<br />
break;<br />
case "disabled":<br />
if (value) {<br />
uiDialog.addClass('ui-dialog-disabled');<br />
} else {<br />
uiDialog.removeClass('ui-dialog-disabled');<br />
}<br />
break;<br />
case "draggable":<br />
if (value) {<br />
self._makeDraggable();<br />
} else {<br />
uiDialog.draggable('destroy');<br />
}<br />
break;<br />
case "height":<br />
resize = true;<br />
break;<br />
case "maxHeight":<br />
if (isResizable) {<br />
uiDialog.resizable('option', 'maxHeight', value);<br />
}<br />
resize = true;<br />
break;<br />
case "maxWidth":<br />
if (isResizable) {<br />
uiDialog.resizable('option', 'maxWidth', value);<br />
}<br />
resize = true;<br />
break;<br />
case "minHeight":<br />
if (isResizable) {<br />
uiDialog.resizable('option', 'minHeight', value);<br />
}<br />
resize = true;<br />
break;<br />
case "minWidth":<br />
if (isResizable) {<br />
uiDialog.resizable('option', 'minWidth', value);<br />
}<br />
resize = true;<br />
break;<br />
case "position":<br />
self._position(value);<br />
break;<br />
case "resizable":<br />
// currently resizable, becoming non-resizable<br />
if (isResizable && !value) {<br />
uiDialog.resizable('destroy');<br />
}<br />
<br />
// currently resizable, changing handles<br />
if (isResizable && typeof value === 'string') {<br />
uiDialog.resizable('option', 'handles', value);<br />
}<br />
<br />
// currently non-resizable, becoming resizable<br />
if (!isResizable && value !== false) {<br />
self._makeResizable(value);<br />
}<br />
break;<br />
case "title":<br />
// convert whatever was passed in o a string, for html() to not throw up<br />
$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));<br />
break;<br />
case "width":<br />
resize = true;<br />
break;<br />
}<br />
<br />
$.Widget.prototype._setOption.apply(self, arguments);<br />
if (resize) {<br />
self._size();<br />
}<br />
},<br />
<br />
_size: function() {<br />
/* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content<br />
* divs will both have width and height set, so we need to reset them<br />
*/<br />
var options = this.options,<br />
nonContentHeight;<br />
<br />
// reset content sizing<br />
// hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350)<br />
this.element.css({<br />
width: 'auto',<br />
minHeight: 0,<br />
height: 0<br />
});<br />
<br />
if (options.minWidth > options.width) {<br />
options.width = options.minWidth;<br />
}<br />
<br />
// reset wrapper sizing<br />
// determine the height of all the non-content elements<br />
nonContentHeight = this.uiDialog.css({<br />
height: 'auto',<br />
width: options.width<br />
})<br />
.height();<br />
<br />
this.element<br />
.css(options.height === 'auto' ? {<br />
minHeight: Math.max(options.minHeight - nonContentHeight, 0),<br />
height: 'auto'<br />
} : {<br />
minHeight: 0,<br />
height: Math.max(options.height - nonContentHeight, 0) <br />
})<br />
.show();<br />
<br />
if (this.uiDialog.is(':data(resizable)')) {<br />
this.uiDialog.resizable('option', 'minHeight', this._minHeight());<br />
}<br />
}<br />
});<br />
<br />
$.extend($.ui.dialog, {<br />
version: "1.8.4",<br />
<br />
uuid: 0,<br />
maxZ: 0,<br />
<br />
getTitleId: function($el) {<br />
var id = $el.attr('id');<br />
if (!id) {<br />
this.uuid += 1;<br />
id = this.uuid;<br />
}<br />
return 'ui-dialog-title-' + id;<br />
},<br />
<br />
overlay: function(dialog) {<br />
this.$el = $.ui.dialog.overlay.create(dialog);<br />
}<br />
});<br />
<br />
$.extend($.ui.dialog.overlay, {<br />
instances: [],<br />
// reuse old instances due to IE memory leak with alpha transparency (see #5185)<br />
oldInstances: [],<br />
maxZ: 0,<br />
events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),<br />
function(event) { return event + '.dialog-overlay'; }).join(' '),<br />
create: function(dialog) {<br />
if (this.instances.length === 0) {<br />
// prevent use of anchors and inputs<br />
// we use a setTimeout in case the overlay is created from an<br />
// event that we're going to be cancelling (see #2804)<br />
setTimeout(function() {<br />
// handle $(el).dialog().dialog('close') (see #4065)<br />
if ($.ui.dialog.overlay.instances.length) {<br />
$(document).bind($.ui.dialog.overlay.events, function(event) {<br />
// stop events if the z-index of the target is < the z-index of the overlay<br />
return ($(event.target).zIndex() >= $.ui.dialog.overlay.maxZ);<br />
});<br />
}<br />
}, 1);<br />
<br />
// allow closing by pressing the escape key<br />
$(document).bind('keydown.dialog-overlay', function(event) {<br />
if (dialog.options.closeOnEscape && event.keyCode &&<br />
event.keyCode === $.ui.keyCode.ESCAPE) {<br />
<br />
dialog.close(event);<br />
event.preventDefault();<br />
}<br />
});<br />
<br />
// handle window resize<br />
$(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);<br />
}<br />
<br />
var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))<br />
.appendTo(document.body)<br />
.css({<br />
width: this.width(),<br />
height: this.height()<br />
});<br />
<br />
if ($.fn.bgiframe) {<br />
$el.bgiframe();<br />
}<br />
<br />
this.instances.push($el);<br />
return $el;<br />
},<br />
<br />
destroy: function($el) {<br />
this.oldInstances.push(this.instances.splice($.inArray($el, this.instances), 1)[0]);<br />
<br />
if (this.instances.length === 0) {<br />
$([document, window]).unbind('.dialog-overlay');<br />
}<br />
<br />
$el.remove();<br />
<br />
// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)<br />
var maxZ = 0;<br />
$.each(this.instances, function() {<br />
maxZ = Math.max(maxZ, this.css('z-index'));<br />
});<br />
this.maxZ = maxZ;<br />
},<br />
<br />
height: function() {<br />
var scrollHeight,<br />
offsetHeight;<br />
// handle IE 6<br />
if ($.browser.msie && $.browser.version < 7) {<br />
scrollHeight = Math.max(<br />
document.documentElement.scrollHeight,<br />
document.body.scrollHeight<br />
);<br />
offsetHeight = Math.max(<br />
document.documentElement.offsetHeight,<br />
document.body.offsetHeight<br />
);<br />
<br />
if (scrollHeight < offsetHeight) {<br />
return $(window).height() + 'px';<br />
} else {<br />
return scrollHeight + 'px';<br />
}<br />
// handle "good" browsers<br />
} else {<br />
return $(document).height() + 'px';<br />
}<br />
},<br />
<br />
width: function() {<br />
var scrollWidth,<br />
offsetWidth;<br />
// handle IE 6<br />
if ($.browser.msie && $.browser.version < 7) {<br />
scrollWidth = Math.max(<br />
document.documentElement.scrollWidth,<br />
document.body.scrollWidth<br />
);<br />
offsetWidth = Math.max(<br />
document.documentElement.offsetWidth,<br />
document.body.offsetWidth<br />
);<br />
<br />
if (scrollWidth < offsetWidth) {<br />
return $(window).width() + 'px';<br />
} else {<br />
return scrollWidth + 'px';<br />
}<br />
// handle "good" browsers<br />
} else {<br />
return $(document).width() + 'px';<br />
}<br />
},<br />
<br />
resize: function() {<br />
/* If the dialog is draggable and the user drags it past the<br />
* right edge of the window, the document becomes wider so we<br />
* need to stretch the overlay. If the user then drags the<br />
* dialog back to the left, the document will become narrower,<br />
* so we need to shrink the overlay to the appropriate size.<br />
* This is handled by shrinking the overlay before setting it<br />
* to the full document size.<br />
*/<br />
var $overlays = $([]);<br />
$.each($.ui.dialog.overlay.instances, function() {<br />
$overlays = $overlays.add(this);<br />
});<br />
<br />
$overlays.css({<br />
width: 0,<br />
height: 0<br />
}).css({<br />
width: $.ui.dialog.overlay.width(),<br />
height: $.ui.dialog.overlay.height()<br />
});<br />
}<br />
});<br />
<br />
$.extend($.ui.dialog.overlay.prototype, {<br />
destroy: function() {<br />
$.ui.dialog.overlay.destroy(this.$el);<br />
}<br />
});<br />
<br />
}(jQuery));</div>
Ptmvanboheemen