-function PopupWin(editor, title, handler, initFunction) {\r
- this.editor = editor;\r
- this.handler = handler;\r
- var dlg = window.open("", "__ha_dialog",\r
- "toolbar=no,menubar=no,personalbar=no,width=600,height=600," +\r
- "scrollbars=no,resizable=no");\r
- this.window = dlg;\r
- var doc = dlg.document;\r
- this.doc = doc;\r
- var self = this;\r
-\r
- var base = document.baseURI || document.URL;\r
- if (base && base.match(/(.*)\/([^\/]+)/)) {\r
- base = RegExp.$1 + "/";\r
- }\r
- this.baseURL = base;\r
-\r
- doc.open();\r
- var html = "<html><head><title>" + title + "</title>\n";\r
- // html += "<base href='" + base + "htmlarea.js' />\n";\r
- html += "<style type='text/css'>@import url(" + base + "htmlarea.css);</style></head>\n";\r
- html += "<body class='dialog popupwin' id='--HA-body'></body></html>";\r
- doc.write(html);\r
- doc.close();\r
-\r
- // sometimes I Hate Mozilla... ;-(\r
- function init2() {\r
- var body = doc.body;\r
- if (!body) {\r
- setTimeout(init2, 25);\r
- return false;\r
- }\r
- dlg.title = title;\r
- doc.documentElement.style.padding = "0px";\r
- doc.documentElement.style.margin = "0px";\r
- var content = doc.createElement("div");\r
- content.className = "content";\r
- self.content = content;\r
- body.appendChild(content);\r
- self.element = body;\r
- initFunction(self);\r
- dlg.focus();\r
- };\r
- init2();\r
-};\r
-\r
-PopupWin.prototype.callHandler = function() {\r
- var tags = ["input", "textarea", "select"];\r
- var params = new Object();\r
- for (var ti in tags) {\r
- var tag = tags[ti];\r
- var els = this.content.getElementsByTagName(tag);\r
- for (var j = 0; j < els.length; ++j) {\r
- var el = els[j];\r
- var val = el.value;\r
- if (el.tagName.toLowerCase() == "input") {\r
- if (el.type == "checkbox") {\r
- val = el.checked;\r
- }\r
- }\r
- params[el.name] = val;\r
- }\r
- }\r
- this.handler(this, params);\r
- return false;\r
-};\r
-\r
-PopupWin.prototype.close = function() {\r
- this.window.close();\r
-};\r
-\r
-PopupWin.prototype.addButtons = function() {\r
- var self = this;\r
- var div = this.doc.createElement("div");\r
- this.content.appendChild(div);\r
- div.className = "buttons";\r
- for (var i = 0; i < arguments.length; ++i) {\r
- var btn = arguments[i];\r
- var button = this.doc.createElement("button");\r
- div.appendChild(button);\r
- button.innerHTML = HTMLArea.I18N.buttons[btn];\r
- switch (btn) {\r
- case "ok":\r
- button.onclick = function() {\r
- self.callHandler();\r
- self.close();\r
- return false;\r
- };\r
- break;\r
- case "cancel":\r
- button.onclick = function() {\r
- self.close();\r
- return false;\r
- };\r
- break;\r
- }\r
- }\r
-};\r
-\r
-PopupWin.prototype.showAtElement = function() {\r
- var self = this;\r
- // Mozilla needs some time to realize what's goin' on..\r
- setTimeout(function() {\r
- var w = self.content.offsetWidth + 4;\r
- var h = self.content.offsetHeight + 4;\r
- // size to content -- that's fuckin' buggy in all fuckin' browsers!!!\r
- // so that we set a larger size for the dialog window and then center\r
- // the element inside... phuck!\r
-\r
- // center...\r
- var el = self.content;\r
- var s = el.style;\r
- // s.width = el.offsetWidth + "px";\r
- // s.height = el.offsetHeight + "px";\r
- s.position = "absolute";\r
- s.left = (w - el.offsetWidth) / 2 + "px";\r
- s.top = (h - el.offsetHeight) / 2 + "px";\r
- if (HTMLArea.is_gecko) {\r
- self.window.innerWidth = w;\r
- self.window.innerHeight = h;\r
- } else {\r
- self.window.resizeTo(w + 8, h + 35);\r
- }\r
- }, 25);\r
-};\r
+// $Id$
+function PopupWin(editor, title, handler, initFunction) {
+ this.editor = editor;
+ this.handler = handler;
+ var dlg = window.open("", "__ha_dialog",
+ "toolbar=no,menubar=no,personalbar=no,width=600,height=600," +
+ "scrollbars=no,resizable=no");
+ this.window = dlg;
+ var doc = dlg.document;
+ this.doc = doc;
+ var self = this;
+
+ var base = document.baseURI || document.URL;
+ if (base && base.match(/(.*)\/([^\/]+)/)) {
+ base = RegExp.$1 + "/";
+ }
+ this.baseURL = base;
+
+ doc.open();
+ var html = "<html><head><title>" + title + "</title>\n";
+ // html += "<base href='" + base + "htmlarea.js' />\n";
+ //html += "<style type='text/css'>@import url(" + base + "htmlarea.css);</style></head>\n";
+ html += "<style type='text/css'>@import url(../htmlarea.css);</style></head>\n";
+ html += "<body class='dialog popupwin' id='--HA-body'></body></html>";
+ doc.write(html);
+ doc.close();
+
+ // sometimes I Hate Mozilla... ;-(
+ function init2() {
+ var body = doc.body;
+ if (!body) {
+ setTimeout(init2, 25);
+ return false;
+ }
+ dlg.title = title;
+ doc.documentElement.style.padding = "0px";
+ doc.documentElement.style.margin = "0px";
+ var content = doc.createElement("div");
+ content.className = "content";
+ self.content = content;
+ body.appendChild(content);
+ self.element = body;
+ initFunction(self);
+ dlg.focus();
+ };
+ init2();
+};
+
+PopupWin.prototype.callHandler = function() {
+ var tags = ["input", "textarea", "select"];
+ var params = new Object();
+ for (var ti in tags) {
+ var tag = tags[ti];
+ var els = this.content.getElementsByTagName(tag);
+ for (var j = 0; j < els.length; ++j) {
+ var el = els[j];
+ var val = el.value;
+ if (el.tagName.toLowerCase() == "input") {
+ if (el.type == "checkbox") {
+ val = el.checked;
+ }
+ }
+ params[el.name] = val;
+ }
+ }
+ this.handler(this, params);
+ return false;
+};
+
+PopupWin.prototype.close = function() {
+ this.window.close();
+};
+
+PopupWin.prototype.addButtons = function() {
+ var self = this;
+ var div = this.doc.createElement("div");
+ this.content.appendChild(div);
+ div.className = "buttons";
+ for (var i = 0; i < arguments.length; ++i) {
+ var btn = arguments[i];
+ var button = this.doc.createElement("button");
+ div.appendChild(button);
+ button.innerHTML = HTMLArea.I18N.buttons[btn];
+ switch (btn) {
+ case "ok":
+ button.onclick = function() {
+ self.callHandler();
+ self.close();
+ return false;
+ };
+ break;
+ case "cancel":
+ button.onclick = function() {
+ self.close();
+ return false;
+ };
+ break;
+ }
+ }
+};
+
+PopupWin.prototype.showAtElement = function() {
+ var self = this;
+ // Mozilla needs some time to realize what's goin' on..
+ setTimeout(function() {
+ var w = self.content.offsetWidth + 4;
+ var h = self.content.offsetHeight + 4;
+ // size to content -- that's fuckin' buggy in all fuckin' browsers!!!
+ // so that we set a larger size for the dialog window and then center
+ // the element inside... phuck!
+
+ // center...
+ var el = self.content;
+ var s = el.style;
+ // s.width = el.offsetWidth + "px";
+ // s.height = el.offsetHeight + "px";
+ s.position = "absolute";
+ s.left = (w - el.offsetWidth) / 2 + "px";
+ s.top = (h - el.offsetHeight) / 2 + "px";
+ if (HTMLArea.is_gecko) {
+ self.window.innerWidth = w;
+ self.window.innerHeight = h;
+ } else {
+ self.window.resizeTo(w + 8, h + 35);
+ }
+ }, 25);
+};