add cms, add todo
[ssproject1617.git] / testcms-final-anon / system / admin / theme / assets / js / popup.js
diff --git a/testcms-final-anon/system/admin/theme/assets/js/popup.js b/testcms-final-anon/system/admin/theme/assets/js/popup.js
new file mode 100644 (file)
index 0000000..37d76c9
--- /dev/null
@@ -0,0 +1,90 @@
+\r
+var Popup = function() {\r
+\r
+       var $id = Number.random(100, 1000);\r
+       \r
+       var overlay = new Element('div', {\r
+               'id': 'popup_overlay_' + $id,\r
+               'class': 'popup_overlay'\r
+       });\r
+       \r
+       var box = new Element('div', {\r
+               'id': 'popup_box_' + $id,\r
+               'class': 'popup_box',\r
+               'styles': {\r
+                       'opacity': 0\r
+               }\r
+       });\r
+       \r
+       var position = function() {\r
+               var body = $$('body').pop(), \r
+                       offset = body.getScroll(), \r
+                       screen = body.getScrollSize(), \r
+                       size = box.getSize();\r
+       \r
+               return {\r
+                       'left': (screen.x / 2) - (size.x / 2),\r
+                       'top': offset.y + 50\r
+               };\r
+       };\r
+       \r
+       var open = function() {\r
+               var body = $$('body'), options = arguments[0] || {};\r
+               \r
+               // default options\r
+               var defaults = {\r
+                       'content': new Element('p'),\r
+                       'handle': false,\r
+                       'width': 600\r
+               }\r
+               \r
+               for(var key in defaults) {\r
+                       options[key] = (options[key] === undefined) ? defaults[key] : options[key];\r
+               }\r
+               \r
+               // append overlay\r
+               body.grab(overlay);\r
+               \r
+               // apply box styles\r
+               box.setStyles({\r
+                       'width': options.width\r
+               });\r
+               \r
+               // append box\r
+               body.grab(box);\r
+               \r
+               // add content\r
+               box.empty();\r
+               box.grab(options.content);\r
+\r
+               // position box and show\r
+               var pos = position();\r
+\r
+               box.setStyles({\r
+                       'top': pos.top,\r
+                       'left': pos.left\r
+               });\r
+               \r
+               box.fade('in');\r
+               \r
+               // bind events\r
+               overlay.addEvent('click', close);\r
+               \r
+               if(options.handle.addEvent) {\r
+                       options.handle.addEvent('click', close);\r
+               }\r
+       };\r
+       \r
+       var close = function() {\r
+               overlay.dispose();\r
+               box.dispose();\r
+               return false;\r
+       };\r
+       \r
+       return {\r
+               'open': open,\r
+               'close': close\r
+       };\r
+       \r
+};\r
+\r