annotate client/digitallibrary/greyskin/dllib.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 688620e8c015
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1 /* Copyright (C) 2003,2004 IT-Group MPIWG, WTWG Uni Bern and others
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
2
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
3 This program is free software; you can redistribute it and/or
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
4 modify it under the terms of the GNU General Public License
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
5 as published by the Free Software Foundation; either version 2
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
6 of the License, or (at your option) any later version.
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
7
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
8 This program is distributed in the hope that it will be useful,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
11 GNU General Public License for more details.
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
12
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
13 You should have received a copy of the GNU General Public License
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
14 along with this program; if not, write to the Free Software
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
16
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
17 Authors:
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
18 Christian Luginbuehl, 01.05.2003 (first version)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
19 DW 24.03.2004 (Changed for digiLib in Zope)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
20 Robert Casties, 8.11.2005
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
21 Martin Raspe <hertzhaft@biblhertz.it>, 12.12.2005
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
22 Robert Casties, 4.9.2009
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
23
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
24 ! Requires baselib.js !
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
25 */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
26 digilibVersion = "Digilib NG";
522
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
27 dllibVersion = "2.042";
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
28
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
29 function identify() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
30 // used for identifying a digilib instance
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
31 // Relato uses that function - lugi
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
32 return digilibVersion;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
33 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
34
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
35 function createMarkDiv(index) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
36 var div = document.createElement("div");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
37 div.className = "mark";
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
38 div.id = "mark" + index;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
39 div.innerHTML = index + 1;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
40 document.body.appendChild(div);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
41 return div;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
42 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
43
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
44 function bestPicSize(elem, inset) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
45 // returns a Size with the best image size for the given element
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
46 if (! defined(inset)) {
522
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
47 inset = 0;
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
48 // original value was 25
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
49 // digilib seems to use the available space better without inset
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
50 }
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
51 var ws = getWinSize();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
52 var es = getElementPosition(elem);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
53 if (es) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
54 ws.width = ws.width - es.x - inset;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
55 ws.height = ws.height - es.y - inset;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
56 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
57 return ws;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
58 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
59
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
60
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
61 /****************************************************
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
62 * digilib specific classes (must be defined first)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
63 ****************************************************/
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
64
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
65 /*
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
66 * Marks class
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
67 */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
68 function Marks() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
69 return this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
70 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
71 // Marks inherits from Array
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
72 Marks.prototype = new Array();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
73 Marks.prototype.parse = function(query) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
74 this.length = 0;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
75 if (query.indexOf(";") >= 0) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
76 var pa = query.split(";"); // old format with ";"
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
77 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
78 var pa = query.split(","); // new format
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
79 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
80 for (var i = 0; i < pa.length ; i++) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
81 var pos = pa[i].split("/");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
82 if (pos.length > 1) this.push(new Position(pos[0], pos[1]));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
83 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
84 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
85 Marks.prototype.getAll = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
86 var ma = new Array();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
87 for (var i = 0; i < this.length; i++) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
88 ma.push(cropFloat(this[i].x) + "/" + cropFloat(this[i].y));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
89 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
90 return ma.join(",");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
91 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
92 Marks.prototype.addEvent = function(evt, digilib) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
93 // add a mark from a screen event
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
94 if (!digilib) digilib = dl;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
95 var pos = digilib.trafo.invtransform(evtPosition(evt));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
96 this.push(pos);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
97 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
98
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
99 /*
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
100 * DLParameters -- digilib parameter class
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
101 */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
102 function DLParameters() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
103 // flags for parameter sets
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
104 this.PARAM_FILE = 1;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
105 this.PARAM_MODE = 2;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
106 this.PARAM_DIM = 4;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
107 this.PARAM_IMAGE = 8;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
108 this.PARAM_DPI = 16;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
109 this.PARAM_SIZE = 32;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
110 this.PARAM_MARK = 64;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
111 this.PARAM_PAGES = 128;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
112 this.PARAM_CLIENT = 256;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
113 /* request parameters */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
114 with (this) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
115 // file
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
116 define('fn', '', PARAM_FILE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
117 define('pn', '1', PARAM_FILE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
118 // mode
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
119 define('mo', '', PARAM_MODE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
120 // relative dimensions of zoomed image
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
121 define('wx', '0.0', PARAM_DIM);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
122 define('wy', '0.0', PARAM_DIM);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
123 define('ww', '1.0', PARAM_DIM);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
124 define('wh', '1.0', PARAM_DIM);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
125 // image manipulation
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
126 define('brgt', '0.0', PARAM_IMAGE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
127 define('cont', '0.0', PARAM_IMAGE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
128 define('rot', '0.0', PARAM_IMAGE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
129 define('rgba', '', PARAM_IMAGE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
130 define('rgbm', '', PARAM_IMAGE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
131 // resolution
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
132 define('ddpi', '', PARAM_DPI);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
133 define('ddpix', '', PARAM_DPI);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
134 define('ddpiy', '', PARAM_DPI);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
135 // marks
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
136 define('mk', '', PARAM_MARK);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
137 // pages total
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
138 define('pt', '0', PARAM_PAGES);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
139 // size
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
140 define('ws', '1.0', PARAM_SIZE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
141 // client side options
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
142 define('clop', '', PARAM_CLIENT);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
143 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
144 return this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
145 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
146 DLParameters.prototype = new Parameters();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
147 // move the inherited getAll because we need it later
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
148 DLParameters.prototype._getAll = Parameters.prototype.getAll;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
149 DLParameters.prototype.getAll = function(paDetail, moDetail, digilib) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
150 if (!digilib) digilib = dl;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
151 // get Flags and Marks first
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
152 var mo = digilib.flags.getAll(moDetail);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
153 this.set("mo", mo);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
154 var clop = digilib.opts.getAll();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
155 this.set("clop", clop);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
156 var mk = digilib.marks.getAll();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
157 this.set("mk", mk);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
158 var ret = this._getAll(paDetail);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
159 return ret;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
160 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
161
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
162 /*
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
163 * DLModes -- digilib flags class
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
164 */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
165 function DLFlags() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
166 // flags for mode sets
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
167 this.MODE_QUAL = 1;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
168 this.MODE_SIZE = 2;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
169 this.MODE_MIR = 4;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
170 this.MODE_OTHER = 128;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
171 this.MODE_ALL = 255;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
172 /* mode flags */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
173 with (this) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
174 define('q0', MODE_QUAL);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
175 define('q1', MODE_QUAL);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
176 define('q2', MODE_QUAL);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
177 define('fit', MODE_SIZE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
178 define('clip', MODE_SIZE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
179 define('osize', MODE_SIZE);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
180 define('vmir', MODE_MIR);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
181 define('hmir', MODE_MIR);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
182 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
183 return this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
184 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
185 // inherits from Flags
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
186 DLFlags.prototype = new Flags();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
187
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
188
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
189 /*
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
190 * Digilib -- digilib base class
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
191 */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
192 function Digilib() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
193 if (!baseLibVersion) alert("ERROR: baselib.js not loaded!");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
194 /* constants */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
195 this.MAX_AREA = new Rectangle(0.0, 0.0, 1.0, 1.0);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
196 // default inset (for scalerImg relativ to scalerDiv
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
197 this.INSET = 40; // because of scrollbars of main window and scaler [Firefox bug?]
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
198 // mouse drag area that counts as one click
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
199 this.MIN_AREA_SIZE = 3 * 3 + 1;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
200 // standard zoom factor
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
201 this.ZOOMFACTOR = Math.sqrt(2);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
202 // bird's eye view dimensions
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
203 this.BIRD_MAXX = 200;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
204 this.BIRD_MAXY = 200;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
205 // witdh of arrow bars
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
206 this.ARROW_WIDTH = 32;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
207 // width of calibration bar
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
208 this.CALIBRATION_WIDTH = 64;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
209 /* variables */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
210 this.fitOnlyWidth = false;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
211 this.fitOnlyHeight = false;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
212 this.trafo = null;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
213 // page elements
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
214 this.scalerDiv = null;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
215 this.scalerImg = null;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
216 this.buttons1Div = null;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
217 this.buttons2Div = null;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
218 /* parse parameters */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
219 this.params = new DLParameters();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
220 // put the query parameters (sans "?") in the parameters array
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
221 this.params.parse(location.search.slice(1));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
222 // treat special parameters
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
223 this.area = this.parseArea();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
224 this.marks = new Marks();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
225 this.marks.parse(this.params.get("mk"));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
226 this.flags = new DLFlags();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
227 this.flags.parse(this.params.get("mo"));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
228 this.opts = new Flags();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
229 this.opts.parse(this.params.get("clop"));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
230 return this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
231 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
232 Digilib.prototype.setDLParam = function(e, s, relative) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
233 // sets parameter based on HTML event
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
234 var nam;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
235 var val;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
236 if (s.type && (s.type == "select-one")) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
237 nam = s.name;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
238 val = s.options[s.selectedIndex].value;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
239 } else if (s.name && s.value) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
240 nam = s.name;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
241 val = s.value;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
242 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
243 if (nam && val) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
244 dl.params.set(nam, val, relative);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
245 display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
246 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
247 alert("ERROR: unable to process event!");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
248 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
249 return true;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
250 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
251 Digilib.prototype.parseArea = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
252 // returns area Rectangle from current parameters
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
253 return new Rectangle(
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
254 this.params.get("wx"),
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
255 this.params.get("wy"),
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
256 this.params.get("ww"),
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
257 this.params.get("wh"));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
258 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
259 Digilib.prototype.setParamFromArea = function(rect) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
260 // sets digilib wx etc. from rect
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
261 this.params.set("wx", cropFloat(rect.x));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
262 this.params.set("wy", cropFloat(rect.y));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
263 this.params.set("ww", cropFloat(rect.width));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
264 this.params.set("wh", cropFloat(rect.height));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
265 return true;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
266 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
267
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
268 Digilib.prototype.parseTrafo = function(elem) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
269 // returns Transform from current dlArea and picsize
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
270 var picsize = getElementRect(elem);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
271 var trafo = new Transform();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
272 // subtract area offset and size
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
273 trafo.concat(trafo.getTranslation(new Position(-this.area.x, -this.area.y)));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
274 trafo.concat(trafo.getScale(new Size(1/this.area.width, 1/this.area.height)));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
275 // scale to screen size
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
276 trafo.concat(trafo.getScale(picsize));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
277 trafo.concat(trafo.getTranslation(picsize));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
278 // FIX ME: Robert, kannst Du mal nachsehen, ob das folgende tut, was es soll?
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
279 // oder gibt es dafuer neuen Code? -- ROC: Bisher funktioniert es nicht!
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
280 // rotate
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
281 //var rot = getRotation(- dl.params.get("rot"), new Position(0.5*picsize.width, 0.5*picsize.height));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
282 //trafo.concat(rot);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
283 // mirror
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
284 //if (hasFlag("hmir")) trafo.m00 = - trafo.m00; // ??
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
285 //if (hasFlag("vmir")) trafo.m11 = - trafo.m11; // ??
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
286 return trafo;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
287 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
288
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
289 Digilib.prototype.onLoad = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
290 // initialize digilib; called by body.onload
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
291 this.scalerDiv = getElement("scaler", true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
292 this.scalerImg = getElement("pic", true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
293 this.buttons1Div = getElement("buttons", true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
294 this.buttons2Div = getElement("options", true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
295 /*
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
296 * if (this.scalerImg == null && this.scalerDiv) { // in N4 pic is in the
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
297 * scaler layer this.scalerImg = this.scalerDiv.document.images[0]; }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
298 */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
299 if ((!this.scalerImg)||(!this.scalerDiv)) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
300 alert("Sorry, digilib doesn't work here!");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
301 return false;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
302 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
303 // fix fixed menus
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
304 var ms1 = getElementSize(this.buttons1Div);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
305 var ms2 = getElementSize(this.buttons2Div);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
306 var maxh = (ms1.height > ms2.height) ? ms1.height : ms2.height;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
307 var wins = getWinSize();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
308 if ((wins.height <= maxh) || (browserType.isIE && (browserType.versIE < 7))) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
309 // unlock fixed menus to absolute if window is too small or IE
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
310 this.buttons1Div.style.position = "absolute";
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
311 this.buttons2Div.style.position = "absolute";
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
312 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
313 this.setScalerImage(); // setzt auch onImgLoad
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
314 this.setBirdImage(); // laedt das Bird's Eye Bild
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
315 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
316
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
317 Digilib.prototype.setScalerImage = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
318 // set the scaler image source (needs the browser size)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
319 var picsize = bestPicSize(this.scalerDiv);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
320 var menusize = getElementSize(this.buttons1Div);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
321 // subtract menu width
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
322 picsize.width -= menusize.width;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
323 picsize.height -= this.INSET;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
324 // compose Scaler URL
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
325 var src = "../servlet/Scaler?"
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
326 + this.params.getAll(this.params.PARAM_ALL & ~(this.params.PARAM_MARK | this.params.PARAM_PAGES));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
327 if (this.opts.get('fitwidth')) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
328 src += "&dw=" + picsize.width;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
329 } else if (this.opts.get('fitheight')) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
330 src += "&dh=" + picsize.height;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
331 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
332 src += "&dw=" + picsize.width + "&dh=" + picsize.height;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
333 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
334 // debug(src);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
335 this.scalerImg.onload = onImgLoad;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
336 this.scalerImg.src = src;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
337
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
338 var digilib = this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
339 // this is a local callback function that can use the current scope
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
340
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
341 function onImgLoad() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
342 if (! digilib)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
343 return;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
344 // make sure the image is loaded so we know its size
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
345 /* this test seems to have problems sometimes :-(
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
346 if (defined(digilib.scalerImg.complete) && !digilib.scalerImg.complete) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
347 alert("ERROR: the image seems not to be complete in onImgLoad!?");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
348 } */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
349 digilib.trafo = digilib.parseTrafo(digilib.scalerImg);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
350 // display marks
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
351 digilib.renderMarks();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
352 digilib.showBirdDiv(isBirdDivVisible);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
353 digilib.showArrows(); // show arrow overlays for zoom navigation
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
354 //digilib.moveCenter(true); // click to move point to center
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
355 // new Slider("sizes", 1, 5, 2);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
356
522
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
357 //Drag Image (8.9.2009)
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
358 if (!digilib.isFullArea())
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
359 registerEvent("mousedown", digilib.scalerDiv, dragImage);
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
360
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
361 focus();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
362 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
363 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
364
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
365 Digilib.prototype.renderMarks = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
366 // make sure the image is loaded so we know its size
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
367 if (!this.trafo) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
368 alert("ERROR: trafo missing, cannot render marks!");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
369 return;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
370 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
371 // debugProps(dlArea, "dlArea");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
372 for (var i = 0; i < this.marks.length; i++) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
373 var div = getElement("mark" + i, true) || createMarkDiv(i);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
374 var mark = this.marks[i];
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
375 // debugProps(mark, "mark");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
376 if (this.area.containsPosition(mark)) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
377 var mpos = this.trafo.transform(mark);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
378 // debugProps(mark, "mpos");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
379 // better not hide the marked spot (MR)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
380 // suboptimal to place -5 pixels and not half size of mark-image
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
381 // mpos.x = mpos.x -5;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
382 // mpos.y = mpos.y -5;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
383 moveElement(div, mpos);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
384 showElement(div, true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
385 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
386 // hide the other marks
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
387 showElement(div, false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
388 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
389 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
390 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
391
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
392 Digilib.prototype.display = function(detail, moDetail) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
393 // redisplay the page
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
394 var queryString = this.params.getAll(detail, moDetail);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
395 location.href
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
396 = location.protocol + "//"
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
397 + location.host
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
398 + location.pathname
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
399 + "?" + queryString;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
400 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
401
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
402 /* **********************************************
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
403 * interactive digilib functions
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
404 * ******************************************** */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
405
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
406 Digilib.prototype.setMark = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
407 // add a mark where clicked
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
408 window.focus();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
409 this.moveCenter(false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
410
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
411 // start event capturing
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
412 registerEvent("mousedown", this.scalerDiv, markEvent);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
413
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
414 // our own reference to this for the local function
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
415 var digilib = this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
416
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
417 function markEvent(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
418 // event handler adding a new mark
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
419 unregisterEvent("mousedown", digilib.scalerDiv, markEvent);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
420 digilib.marks.addEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
421 digilib.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
422 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
423 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
424
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
425 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
426
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
427 Digilib.prototype.removeMark = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
428 // remove the last mark
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
429 this.marks.pop();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
430 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
431 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
432
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
433 Digilib.prototype.resetImage = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
434 // reset the image to its original state
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
435 this.display(this.params.PARAM_FILE); // keep only fn/pn
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
436 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
437
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
438 Digilib.prototype.dragImage = function(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
439 // drag the image and load a new detail on mouse up
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
440 // makes sense only when zoomed
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
441 if (this.isFullArea())
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
442 return;
522
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
443 if(evt.preventDefault) evt.preventDefault(); // no Firefox drag and drop
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
444 var digilib = this; // our own reference to this for the local function
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
445 var startPos = evtPosition(evt);
522
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
446 var pic = this.scalerImg;
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
447 var picRect = getElementRect(pic);
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
448 // fit the grey div to the scaler image
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
449 var div = getElement("bg");
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
450 var dx = 0;
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
451 var dy = 0;
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
452 moveElement(div, picRect);
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
453 // hide the scaler image, show it as background of div instead
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
454 showElement(pic, false);
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
455 showElement(div, true);
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
456 div.style.backgroundImage = "url(" + pic.src + ")";
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
457 div.style.cursor = "move";
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
458 // start event capturing
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
459 registerEvent("mousemove", document, moveDragEvent);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
460 registerEvent("mouseup", document, moveEndEvent);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
461 window.focus();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
462
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
463 function moveDragEvent(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
464 // mousemove handler: drag
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
465 var pos = evtPosition(evt);
522
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
466 // don't use Firefox Drag and Drop feature
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
467 if(evt.preventDefault) evt.preventDefault();
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
468 dx = pos.x - startPos.x;
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
469 dy = pos.y - startPos.y;
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
470 // move the background image to the new position
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
471 div.style.backgroundPosition = dx + "px " + dy + "px";
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
472 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
473 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
474
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
475 function moveEndEvent(evt) {
522
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
476 // mouseup handler: reload digilib
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
477 div.style.cursor = "default";
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
478 unregisterEvent("mousemove", document, moveDragEvent);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
479 unregisterEvent("mouseup", document, moveEndEvent);
522
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
480 // calculate relative offset
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
481 var x = -dx / pic.width;
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
482 var y = -dy / pic.height;
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
483 stopEvent(evt);
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
484 if (dx == 0 && dy == 0)
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
485 return // no movement
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
486 // reload with scaler image showing the new ausschnitt
688620e8c015 drag zoomed image to new position
hertzhaft
parents: 520
diff changeset
487 return digilib.moveBy(x, y);
520
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
488 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
489 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
490
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
491 Digilib.prototype.zoomArea = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
492 var pt1, pt2;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
493 var zoomdiv = getElement("zoom");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
494 var overlay = getElement("overlay");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
495 // use overlay div to avoid <img> mousemove problems
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
496 var picRect = getElementRect(this.scalerImg);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
497 // FIX ME: is there a way to query the border width from CSS info?
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
498 // rect.x -= 2; // account for overlay borders
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
499 // rect.y -= 2;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
500 moveElement(overlay, picRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
501 showElement(overlay, true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
502 // start event capturing
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
503 registerEvent("mousedown", overlay, zoomStart);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
504 registerEvent("mousedown", this.scalerImg, zoomStart);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
505 window.focus();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
506
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
507 // our own reference to "this" for the local functions
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
508 var digilib = this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
509
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
510 // mousedown handler: start moving
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
511 function zoomStart(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
512 pt1 = evtPosition(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
513 unregisterEvent("mousedown", overlay, zoomStart);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
514 unregisterEvent("mousedown", digilib.scalerImg, zoomStart);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
515 // setup and show zoom div
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
516 moveElement(zoomdiv, Rectangle(pt1.x, pt1.y, 0, 0));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
517 showElement(zoomdiv, true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
518 // register events
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
519 registerEvent("mousemove", document, zoomMove);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
520 registerEvent("mouseup", document, zoomEnd);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
521 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
522 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
523
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
524 // mouseup handler: end moving
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
525 function zoomEnd(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
526 pt2 = evtPosition(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
527 // assume a click if the area is too small (up to 3 x 3 pixel)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
528 var clickRect = new Rectangle(pt1, pt2);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
529 clickRect.normalize();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
530 if (clickRect.getArea() <= digilib.MIN_AREA_SIZE) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
531 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
532 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
533 // hide zoom div
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
534 showElement(zoomdiv, false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
535 showElement(overlay, false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
536 // unregister events
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
537 unregisterEvent("mousemove", document, zoomMove);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
538 unregisterEvent("mouseup", document, zoomEnd);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
539 // clip and transform
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
540 clickRect.clipTo(picRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
541 var area = digilib.trafo.invtransform(clickRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
542 digilib.setParamFromArea(area);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
543 // zoomed is always fit
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
544 digilib.params.set("ws", 1);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
545 digilib.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
546 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
547 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
548
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
549 // mouse move handler
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
550 function zoomMove(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
551 pt2 = evtPosition(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
552 var rect = new Rectangle(pt1, pt2);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
553 rect.normalize();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
554 rect.clipTo(picRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
555 // update zoom div
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
556 moveElement(zoomdiv, rect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
557 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
558 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
559 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
560
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
561 Digilib.prototype.zoomBy = function(factor) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
562 // zooms by the given factor
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
563 var newarea = this.area.copy();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
564 newarea.width /= factor;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
565 newarea.height /= factor;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
566 newarea.x -= 0.5 * (newarea.width - this.area.width);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
567 newarea.y -= 0.5 * (newarea.height - this.area.height);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
568 newarea = this.MAX_AREA.fit(newarea);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
569 this.setParamFromArea(newarea);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
570 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
571 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
572
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
573
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
574 Digilib.prototype.zoomFullpage = function(fit) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
575 // zooms out to show the whole image
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
576 this.params.set("wx", 0.0);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
577 this.params.set("wy", 0.0);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
578 this.params.set("ww", 1.0);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
579 this.params.set("wh", 1.0);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
580 if (fit == "width") {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
581 this.opts.set('fitwidth');
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
582 } else if (fit == "height") {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
583 this.opts.set('fitheight');
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
584 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
585 this.opts.reset('fitwidth');
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
586 this.opts.reset('fitheight');
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
587 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
588 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
589 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
590
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
591
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
592 Digilib.prototype.moveCenter = function(on) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
593 // move visible area so that it's centered around the clicked point
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
594 if (this.isFullArea()) return; // nothing to do
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
595 // starting event capture
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
596 if (on) registerEvent("mousedown", this.scalerImg, moveCenterEvent);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
597 else unregisterEvent("mousedown", this.scalerImg, moveCenterEvent);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
598 window.focus();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
599
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
600 // our own reference to this for the local function
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
601 var digilib = this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
602
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
603 function moveCenterEvent(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
604 // move to handler
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
605 var pt = digilib.trafo.invtransform(evtPosition(evt));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
606 var newarea = digilib.area.copy();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
607 newarea.setCenter(pt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
608 newarea.stayInside(this.MAX_AREA);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
609 // newarea = dlMaxArea.fit(newarea);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
610 // debugProps(newarea, "newarea");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
611 // debugProps(dlArea, "dlArea");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
612 if (newarea.equals(digilib.area)) return; // keep event handler
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
613 unregisterEvent("mousedown", digilib.scalerImg, moveCenterEvent);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
614 // set parameters
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
615 digilib.setParamFromArea(newarea);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
616 digilib.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
617 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
618 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
619
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
620 Digilib.prototype.isFullArea = function(area) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
621 if (!area) area = this.area;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
622 return (area.width == 1.0) && (area.height == 1.0);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
623 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
624
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
625 Digilib.prototype.canMove = function(movx, movy) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
626 if (this.isFullArea()) return false;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
627 var x2 = this.area.x + this.area.width;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
628 var y2 = this.area.y + this.area.height;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
629 // debugProps(dlArea);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
630 return ((movx < 0) && (this.area.x > 0))
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
631 || ((movx > 0) && (x2 < 1.0))
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
632 || ((movy < 0) && (this.area.y > 0))
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
633 || ((movy > 0) && (y2 < 1.0))
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
634 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
635
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
636 Digilib.prototype.moveBy = function(movx, movy) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
637 // move visible area by movx and movy (in units of ww, wh)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
638 if (!this.canMove(movx, movy)) return; // nothing to do
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
639 var newarea = this.area.copy();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
640 newarea.x += parseFloat(movx)*this.area.width;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
641 newarea.y += parseFloat(movy)*this.area.height;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
642 newarea = this.MAX_AREA.fit(newarea);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
643 // set parameters
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
644 this.setParamFromArea(newarea);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
645 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
646 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
647
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
648 Digilib.prototype.getRef = function(baseUrl) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
649 // returns a reference to the current digilib set
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
650 if (!baseUrl) baseUrl
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
651 = location.protocol
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
652 + "//"
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
653 + location.host
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
654 + location.pathname;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
655 var hyperlinkRef = baseUrl;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
656 with (this.params) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
657 // all without ddpi, pt
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
658 var ps = getAll(PARAM_ALL & ~(PARAM_DPI | PARAM_PAGES | PARAM_CLIENT));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
659 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
660 if (ps.length > 0) hyperlinkRef += "?" + ps;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
661 return hyperlinkRef;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
662 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
663
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
664 Digilib.prototype.getRefWin = function(type, msg) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
665 // shows an alert with a reference to the current digilib set
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
666 if (! msg) msg = "URL reference to the current view";
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
667 prompt(msg, this.getRef());
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
668 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
669
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
670 Digilib.prototype.getQuality = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
671 // returns the current q setting
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
672 for (var i = 0; i < 3; i++) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
673 if (this.flags.get("q"+i)) return i;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
674 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
675 return 1
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
676 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
677
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
678 Digilib.prototype.setQuality = function(qual) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
679 // set the image quality
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
680 if ((qual < 0)||(qual > 2)) return alert("Quality setting not supported");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
681 for (var i = 0; i < 3; i++) this.flags.reset("q" + i);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
682 this.flags.set("q" + qual);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
683 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
684 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
685
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
686 Digilib.prototype.setQualityWin = function(msg) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
687 // dialog for setting quality
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
688 if (! msg) msg = "Quality (0..2)";
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
689 var q = this.getQuality();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
690 var newq = window.prompt(msg, q);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
691 if (newq) this.setQuality(newq);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
692 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
693
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
694 Digilib.prototype.mirror = function(dir) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
695 // mirror the image horizontally or vertically
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
696 if (dir == "h") {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
697 this.flags.toggle("hmir");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
698 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
699 this.flags.toggle("vmir");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
700 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
701 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
702 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
703
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
704 Digilib.prototype.gotoPage = function(gopage, keep) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
705 // goto given page nr (+/-: relative)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
706 var oldpn = parseInt(this.params.get("pn"));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
707 // set with relative=true uses the sign
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
708 this.params.set("pn", gopage, true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
709 // now check the outcome
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
710 var pn = parseInt(this.params.get("pn"));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
711 if (pn < 1) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
712 alert("No such page! (Page number too low)");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
713 this.params.set("pn", oldpn);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
714 return;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
715 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
716 if (this.params.isSet("pt")) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
717 pt = parseInt(this.params.get("pt"))
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
718 if (pn > pt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
719 alert("No such page! (Page number too high)");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
720 this.params.set("pn", oldpn);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
721 return;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
722 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
723 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
724 if (keep) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
725 this.display(this.params.PARAM_ALL & ~this.params.PARAM_MARK); // all, no mark
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
726 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
727 this.display(this.params.PARAM_FILE | this.params.PARAM_MODE | this.params.PARAM_PAGES, this.params.MODE_QUAL | this.params.MODE_OTHER); // fn, pn, ws, mo + pt
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
728 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
729 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
730
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
731 Digilib.prototype.gotoPageWin = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
732 // dialog to ask for new page nr
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
733 var pn = this.params.get("pn");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
734 var gopage = window.prompt("Go to page", pn);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
735 if (gopage) this.gotoPage(gopage);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
736 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
737
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
738 Digilib.prototype.setParamWin = function(param, text, relative) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
739 // dialog to ask for new parameter value
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
740 var val = this.params.get(param);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
741 var newval = window.prompt(text, val);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
742 if (newval) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
743 this.params.set(param, newval, relative);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
744 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
745 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
746 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
747
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
748 Digilib.prototype.showOptions = function(show) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
749 // show or hide option div
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
750 var elem = getElement("dloptions");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
751 showElement(elem, show);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
752 // FIX ME: get rid of the dotted line around the buttons when focused
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
753 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
754
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
755 Digilib.prototype.showAboutDiv = function(show) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
756 // show or hide "about" div
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
757 var elem = getElement("about");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
758 if (elem == null) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
759 if (show) alert("About Digilib - dialog missing in HTML code!"
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
760 + "\nDigilib Version: " + digilibVersion
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
761 + "\JSP Version: " + jspVersion
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
762 + "\ndlLib Version: " + dllibVersion
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
763 + "\nbaseLib Version: " + baseLibVersion);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
764 return;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
765 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
766 if (show) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
767 getElement("digilib-version").innerHTML = "Digilib Version: " + digilibVersion;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
768 getElement("jsp-version").innerHTML = "JSP Version: " + jspVersion;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
769 getElement("baselib-version").innerHTML = "baseLib Version: " + baseLibVersion;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
770 getElement("dllib-version").innerHTML = "dlLib Version: " + dllibVersion;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
771 var aboutRect = getElementRect(elem);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
772 aboutRect.setCenter(getWinRect().getCenter());
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
773 moveElement(elem, aboutRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
774 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
775 showElement(elem, show);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
776 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
777
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
778 Digilib.prototype.setBirdImage = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
779 var img = getElement("bird-image");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
780 var src = "../servlet/Scaler?"
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
781 + this.params.getAll(this.params.PARAM_FILE)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
782 + "&dw=" + this.BIRD_MAXX
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
783 + "&dh=" + this.BIRD_MAXY;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
784 img.src = src;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
785 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
786
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
787 Digilib.prototype.showBirdDiv = function(show) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
788 // show or hide "bird's eye" div
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
789 var startPos; // anchor for dragging
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
790 var newRect; // position after drag
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
791 var birdImg = getElement("bird-image");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
792 var birdArea = getElement("bird-area");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
793 var overlay = getElement("bird-overlay");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
794 showElement(birdImg, show);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
795 // dont show selector if area has full size
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
796 if (!show || this.isFullArea()) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
797 // hide area
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
798 showElement(birdArea, false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
799 showElement(overlay, false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
800 return;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
801 };
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
802 var birdImgRect = getElementRect(birdImg);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
803 var area = this.area;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
804 if (this.flags.get("osize") || this.flags.get("clip")) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
805 // in original-size and pixel-by-pixel mode the area size is not valid
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
806 var birdAreaRect = new Rectangle(
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
807 birdImgRect.x + birdImgRect.width * area.x,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
808 birdImgRect.y + birdImgRect.height * area.y,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
809 5,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
810 5);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
811 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
812 // scale area down to img size
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
813 var birdAreaRect = new Rectangle(
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
814 // what about borders ??
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
815 birdImgRect.x + birdImgRect.width * area.x,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
816 birdImgRect.y + birdImgRect.height * area.y,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
817 birdImgRect.width * area.width,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
818 birdImgRect.height * area.height);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
819 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
820 moveElement(birdArea, birdAreaRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
821 showElement(birdArea, true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
822 moveElement(overlay, birdImgRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
823 showElement(overlay, true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
824 registerEvent("mousedown", overlay, birdAreaStartDrag);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
825 registerEvent("mousedown", birdImg, birdAreaStartDrag);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
826
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
827 // our own reference to this for local functions
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
828 var digilib = this;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
829
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
830 function birdAreaStartDrag(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
831 // mousedown handler: start drag
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
832 startPos = evtPosition(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
833 unregisterEvent("mousedown", overlay, birdAreaStartDrag);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
834 unregisterEvent("mousedown", birdImg, birdAreaStartDrag);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
835 registerEvent("mousemove", document, birdAreaMove);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
836 registerEvent("mouseup", document, birdAreaEndDrag);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
837 // debugProps(getElementRect(bird))
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
838 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
839 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
840
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
841 function birdAreaMove(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
842 // mousemove handler: drag
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
843 var pos = evtPosition(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
844 var dx = pos.x - startPos.x;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
845 var dy = pos.y - startPos.y;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
846 // move birdArea div, keeping size
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
847 newRect = new Rectangle(
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
848 birdAreaRect.x + dx,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
849 birdAreaRect.y + dy,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
850 birdAreaRect.width,
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
851 birdAreaRect.height);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
852 // stay within image
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
853 newRect.stayInside(birdImgRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
854 moveElement(birdArea, newRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
855 showElement(birdArea, true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
856 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
857 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
858
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
859 function birdAreaEndDrag(evt) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
860 // mouseup handler: reload page
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
861 unregisterEvent("mousemove", document, birdAreaMove);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
862 unregisterEvent("mouseup", document, birdAreaEndDrag);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
863 showElement(overlay, false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
864 if (newRect == null) { // no movement happened
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
865 startPos = birdAreaRect.getCenter();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
866 birdAreaMove(evt); // set center to click position
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
867 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
868 digilib.params.set("wx", cropFloat((newRect.x - birdImgRect.x) / birdImgRect.width));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
869 digilib.params.set("wy", cropFloat((newRect.y - birdImgRect.y) / birdImgRect.height));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
870 // zoomed is always fit
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
871 digilib.params.set("ws", 1);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
872 digilib.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
873 return stopEvent(evt);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
874 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
875 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
876
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
877 Digilib.prototype.showArrow = function(name, rect, show) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
878 var arrow = getElement(name);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
879 moveElement(arrow, rect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
880 showElement(arrow, show);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
881 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
882
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
883 Digilib.prototype.showArrows = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
884 // show the 4 arrow bars on top of scaler img according to current dlArea
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
885 var r = getElementRect(this.scalerImg);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
886 this.showArrow('up',
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
887 new Rectangle(r.x, r.y, r.width, this.ARROW_WIDTH),
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
888 this.canMove(0, -1)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
889 );
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
890 this.showArrow('down',
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
891 new Rectangle(r.x, r.y + r.height - this.ARROW_WIDTH, r.width, this.ARROW_WIDTH),
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
892 this.canMove(0, 1)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
893 );
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
894 this.showArrow('left',
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
895 new Rectangle(r.x, r.y, this.ARROW_WIDTH, r.height),
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
896 this.canMove(-1, 0)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
897 );
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
898 this.showArrow('right',
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
899 new Rectangle(r.x + r.width - this.ARROW_WIDTH, r.y, this.ARROW_WIDTH, r.height),
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
900 this.canMove(1, 0)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
901 );
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
902 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
903
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
904 Digilib.prototype.calibrate = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
905 // calibrate screen resolution
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
906 var calDiv = getElement("calibration");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
907 var calRect = getElementRect(calDiv);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
908 moveCenter(false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
909 var wins = getWinSize();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
910 calRect.setCenter(new Position(wins.width / 2, wins.height / 2));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
911 moveElement(calDiv, calRect);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
912 showElement(calDiv, true);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
913 var cm = window.prompt("The length of the scale on your screen in centimeter:");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
914 if (cm) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
915 var dpi = calRect.width / parseFloat(cm) * 2.54;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
916 this.params.set("ddpi", cropFloat(dpi));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
917 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
918 showElement(calDiv, false);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
919 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
920
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
921
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
922 Digilib.prototype.setScale = function(scale) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
923 // sets original-size, pixel-by-pixel or fit-to-screen scale type
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
924 if (scale == "pixel") {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
925 // pixel by pixel
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
926 this.flags.set("clip");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
927 this.flags.reset("osize");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
928 this.flags.reset("fit");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
929 } else if (scale == "original") {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
930 // original size -- needs calibrated screen
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
931 if (!this.params.isSet("ddpi")) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
932 var dpi = cookie.get("ddpi");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
933 if (dpi == null) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
934 alert("Your screen has not yet been calibrated - using default value of 72 dpi");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
935 dpi = 72;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
936 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
937 this.params.set("ddpi", dpi);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
938 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
939 this.flags.set("osize");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
940 this.flags.reset("clip");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
941 this.flags.reset("fit");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
942 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
943 // scale to screen size (default)
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
944 this.flags.reset("clip");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
945 this.flags.reset("osize");
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
946 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
947 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
948 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
949
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
950 Digilib.prototype.getScale = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
951 // returns scale type
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
952 if (this.flags.get("clip")) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
953 return "pixel";
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
954 } else if (this.flags.get("osize")) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
955 return "original";
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
956 } else {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
957 return "fit";
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
958 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
959 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
960
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
961 Digilib.prototype.pageWidth = function() {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
962 this.zoomFullpage('width');
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
963 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
964
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
965 Digilib.prototype.setSize = function(factor) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
966 this.params.set("ws", factor);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
967 this.display();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
968 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
969
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
970 Digilib.prototype.showMenu = function(menuId, buttonId, show) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
971 var menu = getElement(menuId);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
972 if (show) {
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
973 // align right side of menu with button
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
974 var buttonPos = getElementPosition(getElement(buttonId));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
975 var menusize = getElementSize(menu);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
976 moveElement(menu, new Position(buttonPos.x - menusize.width - 3, buttonPos.y));
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
977 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
978 showElement(menu, show);
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
979 }
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
980
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
981
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
982 /********************************
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
983 * global variables
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
984 ********************************/
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
985
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
986 var dl = new Digilib();
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
987
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
988 /* old parameter function compatibility stuff */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
989 function newParameter(a,b,c) {return dl.params.define(a,b,c)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
990 function resetParameter(a) {return dl.params.reset(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
991 function deleteParameter(a) {return dl.params.remove(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
992 function getParameter(a) {return dl.params.get(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
993 function setParameter(a,b,c) {return dl.params.set(a,b,c)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
994 function hasParameter(a) {return dl.params.isSet(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
995 function getAllParameters(a) {return dl.params.getAll(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
996 getQueryString = getAllParameters;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
997 function parseParameters(a) {return dl.params.parse(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
998 function getAllMarks() {return dl.marks.getAll()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
999 getMarksQueryString = getAllMarks;
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1000 function addMark(evt) {return dl.marks.addEvent(evt)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1001 function deleteMark() {return dl.marks.pop()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1002 function deleteAllMarks() {return dl.marks = new Marks()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1003 function hasFlag(mode) {return dl.flags.get(mode)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1004 function addFlag(mode) {return dl.flags.set(mode)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1005 function removeFlag(mode) {return dl.flags.reset(mode)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1006 function toggleFlag(mode) {return dl.flags.toggle(mode)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1007 function getAllFlags() {return dl.flags.getAll()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1008 /* old digilib function compatibility */
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1009 function setDLParam(e, s, relative) {dl.setDLParam(e, s, relative)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1010 function display(detail, moDetail) {dl.display(detail, moDetail)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1011 function setMark(reload) {dl.setMark(reload)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1012 function removeMark(reload) {dl.removeMark(reload)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1013 function resetImage() {dl.resetImage()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1014 function dragImage(evt) {dl.dragImage(evt)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1015 function zoomArea() {dl.zoomArea()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1016 function zoomBy(factor) {dl.zoomBy(factor)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1017 function zoomFullpage(a) {dl.zoomFullpage(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1018 function moveCenter(on) {dl.moveCenter(on)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1019 function isFullArea(area) {dl.isFullArea(area)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1020 function canMove(movx, movy) {dl.canMove(movx, movy)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1021 function moveBy(movx, movy) {dl.moveBy(movx, movy)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1022 function getRef(baseURL) {dl.getRef(baseURL)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1023 function getRefWin(type, msg) {dl.getRefWin(type, msg)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1024 function getQuality() {dl.getQuality()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1025 function setQuality(qual) {dl.setQuality(qual)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1026 function setQualityWin(msg) {dl.setQualityWin(msg)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1027 function mirror(dir) {dl.mirror(dir)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1028 function gotoPage(gopage, keep) {dl.gotoPage(gopage, keep)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1029 function gotoPageWin() {dl.gotoPageWin()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1030 function setParamWin(param, text, relative) {dl.setParamWin(param, text, relative)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1031 function showOptions(show) {dl.showOptions(show)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1032 function showBirdDiv(show) {dl.showBirdDiv(show)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1033 function showAboutDiv(show) {dl.showAboutDiv(show)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1034 function calibrate(direction) {dl.calibrate(direction)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1035 function setScale(a) {dl.setScale(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1036 function getScale(a) {dl.getScale(a)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1037 function originalSize(on) {dl.originalSize(on)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1038 function pixelByPixel(on) {dl.pixelByPixel(on)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1039 function pageWidth() {dl.pageWidth()};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1040 function setSize(factor) {dl.setSize(factor)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1041 function showMenu(a,b,c) {dl.showMenu(a,b,c)};
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1042
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1043
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1044 // :tabSize=4:indentSize=4:noTabs=true:
a113320349c0 Reset-Button und Funktion
hertzhaft
parents: 517
diff changeset
1045