3 //If the UI scope is not availalable, add it
\r
6 $.fn.dialog = function(o) {
\r
7 return this.each(function() {
\r
8 if (!$(this).is(".ui-dialog")) new $.ui.dialog(this, o);
\r
11 $.fn.dialogOpen = function() {
\r
12 return this.each(function() {
\r
14 if ($(this).parents(".ui-dialog").length) contentEl = this;
\r
15 if (!contentEl && $(this).is(".ui-dialog")) contentEl = $('.ui-dialog-content', this)[0];
\r
16 $.ui.dialogOpen(contentEl)
\r
19 $.fn.dialogClose = function() {
\r
20 return this.each(function() {
\r
22 if ($(this).parents(".ui-dialog").length) contentEl = this;
\r
23 if (!contentEl && $(this).is(".ui-dialog")) contentEl = $('.ui-dialog-content', this)[0];
\r
24 $.ui.dialogClose(contentEl);
\r
28 $.ui.dialog = function(el, o) {
\r
38 shadow: false // It's quite slow
\r
40 var o = o || {}; $.extend(options, o); //Extend and copy options
\r
41 this.element = el; var self = this; //Do bindings
\r
42 $.data(this.element, "ui-dialog", this);
\r
44 var uiDialogContent = $(el).addClass('ui-dialog-content')
\r
45 .wrap(document.createElement('div'))
\r
46 .wrap(document.createElement('div'));
\r
47 var uiDialogContainer = uiDialogContent.parent().addClass('ui-dialog-container').css({position: 'relative'});
\r
48 var uiDialog = uiDialogContainer.parent()
\r
49 .addClass('ui-dialog').addClass(uiDialogContent.attr('className'))
\r
50 .css({position: 'absolute', width: options.width, height: options.height});
\r
52 if (options.modal == false && options.resize == true) {
\r
53 uiDialog.append("<div class='ui-resizable-n ui-resizable-handle'></div>")
\r
54 .append("<div class='ui-resizable-s ui-resizable-handle'></div>")
\r
55 .append("<div class='ui-resizable-e ui-resizable-handle'></div>")
\r
56 .append("<div class='ui-resizable-w ui-resizable-handle'></div>")
\r
57 .append("<div class='ui-resizable-ne ui-resizable-handle'></div>")
\r
58 .append("<div class='ui-resizable-se ui-resizable-handle'></div>")
\r
59 .append("<div class='ui-resizable-sw ui-resizable-handle'></div>")
\r
60 .append("<div class='ui-resizable-nw ui-resizable-handle'></div>");
\r
62 uiDialog.resizable();
\r
65 uiDialogContainer.prepend('<div class="ui-dialog-titlebar"></div>');
\r
66 var uiDialogTitlebar = $('.ui-dialog-titlebar', uiDialogContainer);
\r
67 var title = (options.title) ? options.title : (uiDialogContent.attr('title')) ? uiDialogContent.attr('title') : '';
\r
68 uiDialogTitlebar.append('<span class="ui-dialog-title">' + title + '</span>');
\r
69 uiDialogTitlebar.append('<div class="ui-dialog-titlebar-close"></div>');
\r
70 $('.ui-dialog-titlebar-close', uiDialogTitlebar)
\r
71 .hover(function() { $(this).addClass('ui-dialog-titlebar-close-hover'); },
\r
72 function() { $(this).removeClass('ui-dialog-titlebar-close-hover'); })
\r
73 .mousedown(function(ev) {
\r
74 ev.stopPropagation();
\r
80 $.each(options.buttons, function() { l = 1; return false; });
\r
82 uiDialog.append('<div class="ui-dialog-buttonpane"></div>');
\r
83 var uiDialogButtonPane = $('.ui-dialog-buttonpane', uiDialog);
\r
84 $.each(options.buttons, function(name, value) {
\r
85 var btn = $(document.createElement('button')).text(name).click(value);
\r
86 uiDialogButtonPane.append(btn);
\r
90 if (options.modal == false && options.drag == true) {
\r
91 uiDialog.draggable({ handle: '.ui-dialog-titlebar' });
\r
94 this.open = function() {
\r
95 var wnd = $(window), top = 0, left = 0;
\r
96 switch (options.position) {
\r
98 top = (wnd.height() / 2) - (uiDialog.height() / 2);
\r
99 left = (wnd.width() / 2) - (uiDialog.width() / 2);
\r
102 top = (wnd.height() / 2) - (uiDialog.height() / 2);
\r
107 left = (wnd.width() / 2) - (uiDialog.width() / 2);
\r
110 uiDialog.css({top: top, left: left});
\r
111 uiDialog.appendTo('body').show();
\r
114 this.close = function() {
\r
120 if (options.shadow && $.fn.shadow != undefined) {
\r
125 $.ui.dialogOpen = function(el) {
\r
126 $.data(el, "ui-dialog").open();
\r
129 $.ui.dialogClose = function(el) {
\r
130 $.data(el, "ui-dialog").close();
\r