changed git call from https to git readonly
[atutor.git] / mods / photo_album / fluid / component-templates / js / jquery.ui-1.0 / ui.dialog.js
1 (function($)\r
2 {\r
3         //If the UI scope is not availalable, add it\r
4         $.ui = $.ui || {};\r
5 \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
9                 });\r
10         }\r
11         $.fn.dialogOpen = function() {\r
12                 return this.each(function() {\r
13                         var contentEl;\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
17                 });\r
18         }\r
19         $.fn.dialogClose = function() {\r
20                 return this.each(function() {\r
21                         var contentEl;\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
25                 });\r
26         }\r
27 \r
28         $.ui.dialog = function(el, o) {\r
29                 \r
30                 var options = {\r
31                         width: 300,\r
32                         height: 200,\r
33                         position: 'center',\r
34                         buttons: [],\r
35                         modal: false,\r
36                         drag: true,\r
37                         resize: true,\r
38                         shadow: false // It's quite slow\r
39                 };\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
43 \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
51     \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
61       \r
62                     uiDialog.resizable();\r
63                 }\r
64 \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
75                         })\r
76                         .click(function() {\r
77                                 self.close();\r
78                         });\r
79                 var l = 0;\r
80                 $.each(options.buttons, function() { l = 1; return false; });\r
81         if (l == 1) {\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
87                     });\r
88                 }\r
89         \r
90         if (options.modal == false && options.drag == true) {\r
91                     uiDialog.draggable({ handle: '.ui-dialog-titlebar' });\r
92         }\r
93         \r
94                 this.open = function() {\r
95                         var wnd = $(window), top = 0, left = 0;\r
96                         switch (options.position) {\r
97                                 case 'center':\r
98                                         top = (wnd.height() / 2) - (uiDialog.height() / 2);\r
99                                         left = (wnd.width() / 2) - (uiDialog.width() / 2);\r
100                                         break;\r
101                                 case 'left':\r
102                                     top = (wnd.height() / 2) - (uiDialog.height() / 2);\r
103                                     left = 0;\r
104                                     break;\r
105                                 case 'top':\r
106                             top = 0;\r
107                                         left = (wnd.width() / 2) - (uiDialog.width() / 2);\r
108                                         break;\r
109                         }\r
110                         uiDialog.css({top: top, left: left});\r
111                         uiDialog.appendTo('body').show();\r
112                 };\r
113 \r
114                 this.close = function() {\r
115                         uiDialog.hide();\r
116                 };\r
117 \r
118                 uiDialog.show();\r
119                 this.open();\r
120         if (options.shadow && $.fn.shadow != undefined) {\r
121             uiDialog.shadow();\r
122         }\r
123         }\r
124 \r
125         $.ui.dialogOpen = function(el) {\r
126                 $.data(el, "ui-dialog").open();\r
127         }\r
128 \r
129         $.ui.dialogClose = function(el) {\r
130                 $.data(el, "ui-dialog").close();\r
131         }\r
132 \r
133 })(jQuery);\r