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
) {
25 // MS IE version detection taken from
26 // http://msdn2.microsoft.com/en-us/library/ms537509.aspx
27 // to adjust the height of this box for IE only -- JRM
28 if (navigator
.appName
== 'Microsoft Internet Explorer')
30 var ua
= navigator
.userAgent
;
31 var re
= new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
32 if (re
.exec(ua
) != null)
33 rv
= parseFloat( RegExp
.$1 ); // this holds the version number
37 return window
.open(url
, winname
, options
+
38 ",width=" + width
+ ",height=" + height
+
39 ",left=" + newx
+ ",top=" + newy
+
40 ",screenX=" + newx
+ ",screenY=" + newy
);
43 // recursive window focus-event grabber
44 function grabfocus(w
) {
45 for (var i
= 0; i
< w
.frames
.length
; ++i
) grabfocus(w
.frames
[i
]);
46 w
.onfocus
= top
.imfocused
;
48 // the following was tried and discarded because it's too invasive and
49 // does not help anyway, but i left it here for the curious.
51 // for (var i = 0; i < w.document.forms.length; ++i) {
52 // var e = w.document.forms[i].elements;
53 // for (var j = 0; j < e.length; ++j) {
54 // e[j].onfocus = top.imfocused;
59 // call this when a "modal" dialog is desired
60 function dlgopen(url
, winname
, width
, height
) {
61 if (top
.modaldialog
&& ! top
.modaldialog
.closed
) {
62 if (window
.focus
) top
.modaldialog
.focus();
63 if (top
.modaldialog
.confirm("OK to close this other popup window?")) {
64 top
.modaldialog
.close();
65 top
.modaldialog
= null;
70 top
.modaldialog
= cascwin(url
, winname
, width
, height
,
71 "resizable=1,scrollbars=1,location=0,toolbar=0");