annotate client/digitallibrary/baselib.js @ 643:c108607e1bc0 jquery

zoomin and -out works now gotopage resets (some) parameters reload takes changed parameters (to put in url) getParamString omits parameters with default values (for shorter urls)
author robcast
date Wed, 19 Jan 2011 20:03:44 +0100
parents d989a93d773b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
242
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
1 /* Copyright (C) 2003,2004 IT-Group MPIWG, WTWG Uni Bern and others
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
2
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
3 This program is free software; you can redistribute it and/or
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
4 modify it under the terms of the GNU General Public License
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
5 as published by the Free Software Foundation; either version 2
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
6 of the License, or (at your option) any later version.
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
7
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
8 This program is distributed in the hope that it will be useful,
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
11 GNU General Public License for more details.
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
12
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
13 You should have received a copy of the GNU General Public License
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
14 along with this program; if not, write to the Free Software
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
16
242
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
17 Authors:
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
18 Christian Luginbuehl, 01.05.2003 (first version)
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
19 DW 24.03.2004 (Changed for digiLib in Zope)
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
20 Robert Casties, 22.1.2008
242
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
21
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
22 */
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
23
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
24 function base_init() {
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
25 // init function
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
26 baseScriptVersion = "1.2.4";
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
27 dlParams = new Object();
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
28 browserType = getBrowserType();
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
29 }
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
30
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
31
241
bc30dea2bb2e *** empty log message ***
robcast
parents: 237
diff changeset
32 function getInt(n) {
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
33 // returns always an integer
241
bc30dea2bb2e *** empty log message ***
robcast
parents: 237
diff changeset
34 n = parseInt(n);
bc30dea2bb2e *** empty log message ***
robcast
parents: 237
diff changeset
35 if (isNaN(n)) return 0;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
36 return n;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
37 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
38
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
39 function defined(x) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
40 // returns if x is defined
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
41 return (typeof arguments[0] != "undefined");
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
42 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
43
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
44 function cropFloat(x) {
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
45 // auxiliary function to crop senseless precision
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
46 return parseInt(10000*x)/10000;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
47 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
48
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
49 function getBrowserType() {
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
50 // browser sniffer
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
51 var bt = Object();
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
52 bt.doDHTML = false;
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
53 bt.versIE = 0;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
54
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
55 if ((! document.cssonly && document.layers) || document.all || document.getElementById) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
56 var vers = navigator.appVersion.split('MSIE ');
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
57 vers = vers[vers.length - 1];
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
58 bt.versIE = getInt(vers);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
59 bt.isIE = navigator.userAgent.indexOf('MSIE') >= 0;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
60 bt.isMac = navigator.platform.indexOf('Mac') >= 0;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
61 bt.isWin = navigator.platform.indexOf('Win') >= 0;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
62 bt.isN4 = (navigator.userAgent.indexOf('Mozilla/4.') >= 0) && ! bt.isIE;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
63 bt.isIEWin = bt.versIE > 0 && bt.isWin;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
64 if (navigator.appVersion.indexOf('MSIE') < 0 || ! bt.isMac || bt.versIE >= 5) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
65 bt.doDHTML = true;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
66 bt.isOpera = navigator.userAgent.indexOf(' Opera ') >= 0;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
67 bt.isKonq = navigator.userAgent.indexOf(' Konqueror') >= 0;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
68 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
69 }
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
70 return bt;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
71 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
72
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
73 // fixes for javascript < 1.2
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
74 if (! Array.prototype.push) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
75 Array.prototype.push = function(val) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
76 this[this.length] = val;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
77 return this.length;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
78 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
79 Array.prototype.pop = function() {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
80 var val = this[this.length-1];
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
81 this.length -= 1;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
82 return val;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
83 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
84 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
85
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
86
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
87 /* **********************************************
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
88 * geometry classes
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
89 * ******************************************** */
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
90
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
91 /*
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
92 * Size class
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
93 */
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
94 function Size(w, h) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
95 this.width = parseFloat(w);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
96 this.height = parseFloat(h);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
97 return this;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
98 }
320
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
99 Size.prototype.toString = function() {
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
100 return this.width + "x" + this.height;
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
101 }
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
102
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
103
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
104 /*
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
105 * Position class
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
106 */
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
107 function Position(x, y) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
108 this.x = parseFloat(x);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
109 this.y = parseFloat(y);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
110 return this;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
111 }
320
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
112 Position.prototype.toString = function() {
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
113 return this.x + "," + this.y;
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
114 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
115
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
116 /*
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
117 * Rectangle class
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
118 */
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
119 function Rectangle(x, y, w, h) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
120 this.x = parseFloat(x);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
121 this.y = parseFloat(y);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
122 this.width = parseFloat(w);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
123 this.height = parseFloat(h);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
124 return this;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
125 }
320
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
126 Rectangle.prototype.toString = function() {
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
127 return this.width+"x"+this.height+"@"+this.x+","+this.y;
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
128 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
129 Rectangle.prototype.copy = function() {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
130 // returns a copy of this Rectangle
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
131 return new Rectangle(this.x, this.y, this.width, this.height);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
132 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
133 Rectangle.prototype.getPosition = function() {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
134 // returns the position of this Rectangle
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
135 return new Position(this.x, this.y);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
136 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
137 Rectangle.prototype.getSize = function() {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
138 // returns the size of this Rectangle
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
139 return new Size(this.width, this.height);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
140 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
141 Rectangle.prototype.getArea = function() {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
142 // returns the area of this Rectangle
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
143 return (this.width * this.height);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
144 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
145 Rectangle.prototype.containsPosition = function(pos) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
146 // returns if the given Position lies in this Rectangle
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
147 return ((pos.x >= this.x)&&(pos.y >= this.y)&&(pos.x <= this.x+this.width)&&(pos.y <= this.y+this.width));
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
148 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
149 Rectangle.prototype.intersect = function(rect) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
150 // returns the intersection of the given Rectangle and this one
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
151 var sec = rect.copy();
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
152 if (sec.x < this.x) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
153 sec.width = sec.width - (this.x - sec.x);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
154 sec.x = this.x;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
155 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
156 if (sec.y < this.y) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
157 sec.height = sec.height - (this.y - sec.y);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
158 sec.y = this.y;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
159 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
160 if (sec.x + sec.width > this.x + this.width) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
161 sec.width = (this.x + this.width) - sec.x;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
162 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
163 if (sec.y + sec.height > this.y + this.height) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
164 sec.height = (this.y + this.height) - sec.y;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
165 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
166 return sec;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
167 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
168 Rectangle.prototype.fit = function(rect) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
169 // returns a Rectangle that fits into this one (by moving first)
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
170 var sec = rect.copy();
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
171 sec.x = Math.max(sec.x, this.x);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
172 sec.x = Math.max(sec.x, this.x);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
173 if (sec.x + sec.width > this.x + this.width) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
174 sec.x = this.x + this.width - sec.width;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
175 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
176 if (sec.y + sec.height > this.y + this.height) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
177 sec.y = this.y + this.height - sec.height;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
178 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
179 return sec.intersect(this);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
180 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
181
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
182 /*
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
183 * Transform class
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
184 *
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
185 * defines a class of affine transformations
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
186 */
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
187 function Transform() {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
188 this.m00 = 1.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
189 this.m01 = 0.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
190 this.m02 = 0.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
191 this.m10 = 0.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
192 this.m11 = 1.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
193 this.m12 = 0.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
194 this.m20 = 0.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
195 this.m21 = 0.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
196 this.m22 = 1.0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
197 return this;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
198 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
199 Transform.prototype.concat = function(traf) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
200 // add Transform traf to this Transform
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
201 for (var i = 0; i < 3; i++) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
202 for (var j = 0; j < 3; j++) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
203 var c = 0.0;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
204 for (var k = 0; k < 3; k++) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
205 c += traf["m"+i+k] * this["m"+k+j];
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
206 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
207 this["m"+i+j] = c;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
208 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
209 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
210 return this;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
211 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
212 Transform.prototype.transform = function(rect) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
213 // returns transformed Rectangle or Position with this Transform applied
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
214 var x = this.m00 * rect.x + this.m01 * rect.y + this.m02;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
215 var y = this.m10 * rect.x + this.m11 * rect.y + this.m12;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
216 if (rect.width) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
217 var width = this.m00 * rect.width + this.m01 * rect.height;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
218 var height = this.m10 * rect.width + this.m11 * rect.height;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
219 return new Rectangle(x, y, width, height);
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
220 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
221 return new Position(x, y);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
222 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
223 Transform.prototype.invtransform = function(pos) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
224 // returns transformed Position pos with the inverse of this Transform applied
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
225 var det = this.m00 * this.m11 - this.m01 * this.m10;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
226 var x = (this.m11 * pos.x - this.m01 * pos.y - this.m11 * this.m02 + this.m01 * this.m12) / det;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
227 var y = (- this.m10 * pos.x + this.m00 * pos.y + this.m10 * this.m02 - this.m00 * this.m12) / det;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
228 return new Position(x, y);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
229 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
230 function getRotation(angle, pos) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
231 // returns a Transform that is a rotation by angle degrees around [pos.x, pos.y]
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
232 var traf = new Transform();
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
233 if (angle != 0) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
234 var t = 2.0 * Math.PI * parseFloat(angle) / 360.0;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
235 traf.m00 = Math.cos(t);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
236 traf.m01 = - Math.sin(t);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
237 traf.m10 = Math.sin(t);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
238 traf.m11 = Math.cos(t);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
239 traf.m02 = pos.x - pos.x * Math.cos(t) + pos.y * Math.sin(t);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
240 traf.m12 = pos.y - pos.x * Math.sin(t) - pos.y * Math.cos(t);
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
241 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
242 return traf;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
243 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
244 function getTranslation(pos) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
245 // returns a Transform that is a translation by [pos.x, pos,y]
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
246 var traf = new Transform();
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
247 traf.m02 = pos.x;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
248 traf.m12 = pos.y;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
249 return traf;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
250 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
251 function getScale(size) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
252 // returns a Transform that is a scale by [size.width, size.height]
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
253 var traf = new Transform();
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
254 traf.m00 = size.width;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
255 traf.m11 = size.height;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
256 return traf;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
257 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
258
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
259
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
260 /* **********************************************
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
261 * parameter routines
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
262 * ******************************************** */
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
263
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
264 function newParameter(name, defaultValue, detail) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
265 // create a new parameter with a name and a default value
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
266 if (defined(dlParams[name])) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
267 alert("Fatal: An object with name '" + name + "' already exists - cannot recreate!");
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
268 return false;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
269 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
270 dlParams[name] = new Object();
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
271 dlParams[name].defaultValue = defaultValue;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
272 dlParams[name].hasValue = false;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
273 dlParams[name].value = defaultValue;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
274 dlParams[name].detail = detail;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
275 return dlParams[name];
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
276 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
277 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
278
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
279 function getParameter(name) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
280 // returns the named parameter value or its default value
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
281 if (defined(dlParams[name])) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
282 if (dlParams[name].hasValue) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
283 return dlParams[name].value;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
284 } else {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
285 return dlParams[name].defaultValue;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
286 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
287 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
288 return null;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
289 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
290 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
291
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
292 function setParameter(name, value, relative) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
293 // sets parameter value (relative values with +/- unless literal)
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
294 if (defined(dlParams[name])) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
295 if ((relative)&&(value.slice)) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
296 var sign = value.slice(0,1);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
297 if (sign == '+') {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
298 dlParams[name].value = parseFloat(dlParams[name].value) + parseFloat(value.slice(1));
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
299 } else if (sign == '-') {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
300 dlParams[name].value = parseFloat(dlParams[name].value) - parseFloat(value.slice(1));
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
301 } else {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
302 dlParams[name].value = value;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
303 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
304 } else {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
305 dlParams[name].value = value;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
306 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
307 dlParams[name].hasValue = true;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
308 return true;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
309 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
310 return false;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
311 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
312
320
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
313 function hasParameter(name) {
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
314 // returns if the parameter's value has been set
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
315 if (defined(dlParams[name])) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
316 return dlParams[name].hasValue;
320
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
317 }
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
318 return false;
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
319 }
4074c0138cf0 fixed bug with detecting window size in Safari 1.2
robcast
parents: 315
diff changeset
320
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
321 function getAllParameters(detail) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
322 // returns a string of all parameters in query format
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
323 if (! detail) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
324 detail = 255;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
325 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
326 var params = new Array();
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
327 for (param in dlParams) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
328 if (((dlParams[param].detail & detail) > 0)&&(dlParams[param].hasValue)) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
329 var val = getParameter(param);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
330 if (val != "") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
331 params.push(param + "=" + val);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
332 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
333 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
334 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
335 return params.join("&");
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
336 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
337
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
338 function parseParameters(query) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
339 // gets parameter values from query format string
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
340 var params = query.split("&");
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
341 for (var i = 0; i < params.length; i++) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
342 var keyval = params[i].split("=");
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
343 if (keyval.length == 2) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
344 setParameter(keyval[0], keyval[1]);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
345 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
346 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
347 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
348
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
349
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
350 /* **********************************************
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
351 * HTML/DOM routines
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
352 * ******************************************** */
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
353
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
354 function getElement(tagid, quiet) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
355 // returns the element object with the id tagid
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
356 var e;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
357 if (document.getElementById) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
358 e = document.getElementById(tagid);
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
359 } else if (document.all) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
360 alert("document.all!");
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
361 e = document.all[tagid];
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
362 } else if (document.layers) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
363 e = document.layers[tagid];
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
364 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
365 if (e) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
366 return e;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
367 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
368 if (! quiet) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
369 alert("unable to find element: "+tagid);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
370 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
371 return null;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
372 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
373 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
374
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
375 function getElementPosition(elem) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
376 // returns a Position with the position of the element
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
377 var x = 0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
378 var y = 0;
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
379 if (defined(elem.offsetParent)) {
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
380 // use .offsetLeft for most browsers
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
381 var e = elem;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
382 while (e) {
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
383 if (browserType.isIE) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
384 if (browserType.isMac) {
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
385 // IE for Mac extraspecial
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
386 if (e.offsetParent.tagName == "BODY") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
387 x += e.clientLeft;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
388 y += e.clientTop;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
389 break;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
390 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
391 } else {
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
392 // special for IE
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
393 if ((e.tagName != "TABLE") && (e.tagName != "BODY")) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
394 x += e.clientLeft;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
395 y += e.clientTop;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
396 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
397 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
398 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
399 x += e.offsetLeft;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
400 y += e.offsetTop;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
401 e = e.offsetParent;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
402 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
403 } else if (defined(elem.x)) {
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
404 // use .x for other (which?)
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
405 x = elem.x;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
406 y = elem.y;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
407 } else if (defined(elem.pageX)) {
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
408 // use pageX for N4
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
409 x = elem.pageX;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
410 y = elem.pageY;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
411 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
412 alert("unable to get position of "+elem+" (id:"+elem.id+")");
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
413 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
414 return new Position(getInt(x), getInt(y));
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
415 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
416
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
417 function getElementSize(elem) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
418 // returns a Rectangle with the size of the element
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
419 var width = 0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
420 var height = 0;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
421 if (defined(elem.offsetWidth)) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
422 width = elem.offsetWidth;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
423 height = elem.offsetHeight;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
424 } else if (defined(elem.width)) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
425 width = elem.width;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
426 height = elem.height;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
427 } else if (defined(elem.clip.width)) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
428 width = elem.clip.width;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
429 height = elem.clip.height;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
430 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
431 alert("unable to get size of "+elem+" (id:"+elem.id+")");
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
432 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
433 return new Size(getInt(width), getInt(height));
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
434 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
435
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
436 function getElementRect(elem) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
437 // returns a Rectangle with the size and position of the element
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
438 var pos = getElementPosition(elem);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
439 var size = getElementSize(elem);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
440 return new Rectangle(pos.x, pos.y, size.width, size.height);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
441 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
442
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
443 function moveElement(elem, rect) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
444 // moves and sizes the element
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
445 if (elem.style) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
446 if (defined(rect.x)) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
447 elem.style.left = Math.round(rect.x) + "px";
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
448 elem.style.top = Math.round(rect.y) + "px";
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
449 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
450 if (defined(rect.width)) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
451 elem.style.width = Math.round(rect.width) + "px";
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
452 elem.style.height = Math.round(rect.height) + "px";
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
453 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
454 } else if (document.layers) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
455 if (defined(rect.x)) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
456 elem.pageX = getInt(rect.x);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
457 elem.pageY = getInt(rect.y);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
458 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
459 if (defined(rect.width)) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
460 elem.clip.width = getInt(rect.width);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
461 elem.clip.height = getInt(rect.height);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
462 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
463 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
464 alert("moveelement: no style nor layer property!");
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
465 return false;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
466 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
467 return true;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
468 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
469
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
470 function showElement(elem, show) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
471 // shows or hides the element
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
472 if (elem.style) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
473 if (show) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
474 elem.style.visibility = "visible";
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
475 } else {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
476 elem.style.visibility = "hidden";
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
477 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
478 } else if (defined(elem.visibility)) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
479 if (show) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
480 elem.visibility = "show";
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
481 } else {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
482 elem.visibility = "hide";
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
483 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
484 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
485 alert("showelement: no style nor layer property!");
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
486 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
487 return true;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
488 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
489
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
490 function isElementVisible(elem) {
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
491 // returns of the is shown or hidden
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
492 if (elem.style) {
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
493 return (elem.style.visibility == "visible");
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
494 } else if (defined(elem.visibility)) {
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
495 return (elem.visibility == "show");
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
496 } else {
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
497 alert("iselementvisible: no style nor layer property!");
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
498 }
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
499 }
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
500
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
501 function evtPosition(evt) {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
502 // returns the on-screen Position of the Event
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
503 var x;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
504 var y;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
505 evt = (evt) ? evt : window.event;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
506 if (!evt) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
507 alert("no event found! "+evt);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
508 return;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
509 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
510 if (defined(evt.pageX)) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
511 x = parseInt(evt.pageX);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
512 y = parseInt(evt.pageY);
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
513 } else if (defined(evt.clientX)) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
514 x = parseInt(document.body.scrollLeft+evt.clientX);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
515 y = parseInt(document.body.scrollTop+evt.clientY);
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
516 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
517 alert("evtPosition: don't know how to deal with "+evt);
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
518 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
519 return new Position(x, y);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
520 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
521
242
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
522 function registerEvent(type, elem, handler) {
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
523 // register the given event handler on the indicated element
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
524 if (elem.addEventListener) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
525 elem.addEventListener(type, handler, false);
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
526 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
527 if (type == "mousedown") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
528 if (elem.captureEvents) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
529 elem.captureEvents(Event.MOUSEDOWN);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
530 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
531 elem.onmousedown = handler;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
532 } else if (type == "mouseup") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
533 if (elem.captureEvents) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
534 elem.captureEvents(Event.MOUSEUP);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
535 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
536 elem.onmouseup = handler;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
537 } else if (type == "mousemove") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
538 if (elem.captureEvents) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
539 elem.captureEvents(Event.MOUSEMOVE);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
540 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
541 elem.onmousemove = handler;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
542 } else if (type == "keypress") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
543 if (elem.captureEvents) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
544 elem.captureEvents(Event.KEYPRESS);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
545 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
546 elem.onkeypress = handler;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
547 } else {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
548 alert("registerEvent: unknown event type "+type);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
549 return false;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
550 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
551 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
552 return true;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
553 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
554
242
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
555 function unregisterEvent(type, elem, handler) {
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
556 // unregister the given event handler from the indicated element
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
557 if (elem.removeEventListener) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
558 elem.removeEventListener(type, handler, false);
328
3e0f2fb67d0b fixed problems with Netscape4 (silly error by me partly :-)
robcast
parents: 320
diff changeset
559 } else {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
560 if (type == "mousedown") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
561 if (elem.releaseEvents) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
562 elem.releaseEvents(Event.MOUSEDOWN);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
563 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
564 elem.onmousedown = null;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
565 } else if (type == "mouseup") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
566 if (elem.releaseEvents) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
567 elem.releaseEvents(Event.MOUSEUP);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
568 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
569 elem.onmouseup = null;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
570 } else if (type == "mousemove") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
571 if (elem.releaseEvents) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
572 elem.releaseEvents(Event.MOUSEMOVE);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
573 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
574 elem.onmousemove = null;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
575 } else if (type == "keypress") {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
576 if (elem.releaseEvents) {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
577 elem.releaseEvents(Event.KEYPRESS);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
578 }
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
579 elem.onkeypress = null;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
580 } else {
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
581 alert("unregisterEvent: unknown event type "+type);
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
582 return false;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
583 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
584 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
585 return true;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
586 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
587
242
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
588
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
589 // old registerXXYY API for compatibility
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
590 function registerMouseDown(elem, handler) {
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
591 return registerEvent("mousedown", elem, handler);
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
592 }
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
593 function unregisterMouseDown(elem, handler) {
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
594 return unregisterEvent("mousedown", elem, handler);
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
595 }
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
596 function registerMouseMove(elem, handler) {
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
597 return registerEvent("mousemove", elem, handler);
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
598 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
599 function unregisterMouseMove(elem, handler) {
242
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
600 return unregisterEvent("mousemove", elem, handler);
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
601 }
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
602 function registerKeyDown(handler) {
e2c455c2a0d0 new digimage with red triangles for moving the zoomed area
robcast
parents: 241
diff changeset
603 return registerEvent("keypress", elem, handler);
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
604 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
605
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
606
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
607 function getWinSize() {
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
608 // returns a Size with the current window size (mostly from www.quirksmode.org)
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
609 var wsize = new Size(100, 100);
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
610 if (defined(self.innerHeight)) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
611 // all except Explorer
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
612 if ((self.innerWidth == 0)||(self.innerHeight == 0)) {
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
613 // Safari 1.2 (and other) bug
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
614 if (parent) {
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
615 wsize.height = parent.innerHeight;
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
616 wsize.width = parent.innerWidth;
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
617 }
493
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
618 } else {
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
619 wsize.width = self.innerWidth;
d989a93d773b fixed problem with getwindowsize for safari 3.0.4+
robcast
parents: 386
diff changeset
620 wsize.height = self.innerHeight;
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
621 }
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
622 } else if (document.documentElement && document.documentElement.clientHeight) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
623 // Explorer 6 Strict Mode
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
624 wsize.width = document.documentElement.clientWidth;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
625 wsize.height = document.documentElement.clientHeight;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
626 } else if (document.body) {
386
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
627 // other Explorers
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
628 wsize.width = document.body.clientWidth;
3b710e39823b latest version of baselib.js and dllib.js
robcast
parents: 344
diff changeset
629 wsize.height = document.body.clientHeight;
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
630 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
631 return wsize;
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
632 }
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
633
315
d7f0045384f5 big autumn cleaning :-)
robcast
parents: 249
diff changeset
634 function openWin(url, name, params) {
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
635 // open browser window
315
d7f0045384f5 big autumn cleaning :-)
robcast
parents: 249
diff changeset
636 var ow = window.open(url, name, params);
237
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
637 ow.focus();
786c27786281 new javascript code for digilib
robcast
parents:
diff changeset
638 }