1 // Copyright (C) 2005 Rod Roark <rod@sunsetsystems.com>
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
8 // open a new cascaded window
9 function cascwin(url, winname, width, height, options) {
10 var mywin = window.parent ? window.parent : window;
11 var newx = 25, newy = 25;
12 if (!isNaN(mywin.screenX)) {
13 newx += mywin.screenX;
14 newy += mywin.screenY;
15 } else if (!isNaN(mywin.screenLeft)) {
16 newx += mywin.screenLeft;
17 newy += mywin.screenTop;
19 if ((newx + width) > screen.width || (newy + height) > screen.height) {
23 return window.open(url, winname, options +
24 ",width=" + width + ",height=" + height +
25 ",left=" + newx + ",top=" + newy +
26 ",screenX=" + newx + ",screenY=" + newy);
29 // recursive window focus-event grabber
30 function grabfocus(w) {
31 for (var i = 0; i < w.frames.length; ++i) grabfocus(w.frames[i]);
32 w.onfocus = top.imfocused;
34 // the following was tried and discarded because it's too invasive and
35 // does not help anyway, but i left it here for the curious.
37 // for (var i = 0; i < w.document.forms.length; ++i) {
38 // var e = w.document.forms[i].elements;
39 // for (var j = 0; j < e.length; ++j) {
40 // e[j].onfocus = top.imfocused;
45 // call this when a "modal" dialog is desired
46 function dlgopen(url, winname, width, height) {
47 if (top.modaldialog && ! top.modaldialog.closed) {
48 if (window.focus) top.modaldialog.focus();
49 if (top.modaldialog.confirm("OK to close this other popup window?")) {
50 top.modaldialog.close();
51 top.modaldialog = null;
56 top.modaldialog = cascwin(url, winname, width, height,
57 "resizable=1,scrollbars=1");