annotate client/digitallibrary/navigation_n6.js @ 110:489f61d9feac

XUL Buttons in chrome
author engler
date Wed, 14 May 2003 12:00:40 +0200
parents 866e798e2bef
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
1 /*
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
2 Copyright (C) 2003 WTWG, Uni Bern
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
3
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
4 This program is free software; you can redistribute it and/or
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
5 modify it under the terms of the GNU General Public License
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
6 as published by the Free Software Foundation; either version 2
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
7 of the License, or (at your option) any later version.
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
8
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
9 This program is distributed in the hope that it will be useful,
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
12 GNU General Public License for more details.
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
13
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
14 You should have received a copy of the GNU General Public License
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
15 along with this program; if not, write to the Free Software
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
17
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
18 Author: Christian Luginbuehl, 01.05.2003 , Version Alcatraz 0.3
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
19 */
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
20 // this global variable has to be initialised before the frist use of the functions below
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
21 // to fill in the attributes you can use the function init provided below
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
22 // - array with all attributes
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
23 var att = new Object();
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
24
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
25 // fill in the values of the "att"-array
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
26 function init(fn, pn, ws, mo, mk, wx, wy, ww, wh) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
27
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
28 // debug window to check the parameters passed
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
29 //alert ("DEBUG message (parameters in init):\n\npu = " + pu + "\npn = " + pn + "\nws = " + ws + "\nmo = " + mo + "\nmk = " + mk + "\nwx = " + wx + "\nwy = " + wy + "\nww = " + ww + "\nwh = " + wh);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
30
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
31 // attaching the values to the att-array
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
32 att.fn = fn;
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
33 att.pn = parseInt(pn);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
34 att.ws = parseFloat(ws);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
35 att.mo = mo;
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
36 att.mk = mk;
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
37 att.wx = parseFloat(wx);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
38 att.wy = parseFloat(wy);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
39 att.ww = parseFloat(ww);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
40 att.wh = parseFloat(wh);
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
41
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
42 // compatablility issue
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
43 // dangerous at the time - lugi
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
44 // if (att.mo.indexOf("f") > -1) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
45 // att.mo = "fit";
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
46 // }
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
47
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
48 // converts the old mark format (0-1000) to new format(0.0 - 1.0)
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
49 // could even be useless now
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
50 if (att.mk != "0/0" && att.mk != "") {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
51 var tmp = att.mk.split(";");
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
52
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
53 att.mk = "";
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
54
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
55 for (i = 0; i < tmp.length; i++) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
56 tmp[i] = tmp[i].split("/");
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
57
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
58 if (tmp[i][0] > 1 && tmp[i][1] > 1) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
59 tmp[i][0] /= 1000;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
60 tmp[i][1] /= 1000;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
61 }
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
62
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
63 att.mk += tmp[i][0] + "/" + tmp[i][1] + ";";
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
64 }
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
65 att.mk = att.mk.slice(0, -1);
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
66 }
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
67
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
68 // initialisation stuff
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
69 // ====================
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
70
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
71 setMarks();
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
72
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
73 this.document.addEventListener('keypress', parseKeypress, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
74 focus();
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
75
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
76 // give a name to the window containing digilib - this way one can test if there is already a
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
77 // digilib-window open and replace the contents of it (ex. digicat)
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
78 top.window.name = "digilib";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
79 }
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
80
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
81
d407cb901df4 Initial revision
robcast
parents:
diff changeset
82 // function that launches the ScaleServlet
d407cb901df4 Initial revision
robcast
parents:
diff changeset
83 // the different detailGrades:
d407cb901df4 Initial revision
robcast
parents:
diff changeset
84 // 0 -> back, next, page
d407cb901df4 Initial revision
robcast
parents:
diff changeset
85 // 1 -> zoomout
d407cb901df4 Initial revision
robcast
parents:
diff changeset
86 // 2 -> zoomarea, zoompoint, moveto, scaledef
d407cb901df4 Initial revision
robcast
parents:
diff changeset
87
d407cb901df4 Initial revision
robcast
parents:
diff changeset
88 function loadPicture(detailGrade, keepArea) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
89
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
90 var newQuery = "fn=" + att.fn + "&pn=" + att.pn + "&ws=" + att.ws + "&mo=" + att.mo;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
91
d407cb901df4 Initial revision
robcast
parents:
diff changeset
92 if (detailGrade == 0) {
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
93 att.mk = "0/0";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
94 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
95
d407cb901df4 Initial revision
robcast
parents:
diff changeset
96 if ((detailGrade == 1) || (detailGrade == 0 && !keepArea)) {
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
97 att.wx = 0;
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
98 att.wy = 0;
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
99 att.ww = 1;
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
100 att.wh = 1;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
101 }
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
102
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
103 newQuery += "&mk=" + att.mk + "&wx=" + att.wx + "&wy=" + att.wy + "&ww=" + att.ww + "&wh=" + att.wh;
41
44f653ae5df5 opera support done, bugfixes
luginbue
parents: 38
diff changeset
104 newQuery += "&dw=" + (innerWidth-30) + "&dh=" + (innerHeight-30);
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
105 newQuery += "&lv=1"
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
106
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
107 // debug window - checking the parameters passed to the next image
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
108 alert ("DEBUG MESSAGE (query-string in loadPicture):\n\n" + newQuery);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
109
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
110 location.href = location.protocol + "//" + location.host + location.pathname + "?" + newQuery;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
111 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
112
d407cb901df4 Initial revision
robcast
parents:
diff changeset
113
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
114 // constructor holding different values of a point
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
115 function Point(event) {
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
116
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
117 this.pageX = parseInt(event.pageX);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
118 this.pageY = parseInt(event.pageY);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
119
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
120 this.x = this.pageX-parseInt(document.getElementById("lay1").style.left);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
121 this.y = this.pageY-parseInt(document.getElementById("lay1").style.top);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
122
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
123 this.relX = cropFloat(att.wx+(att.ww*this.x/document.pic.offsetWidth));
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
124 this.relY = cropFloat(att.wy+(att.wh*this.y/document.pic.offsetHeight));
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
125
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
126 return this;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
127 }
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
128
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
129
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
130 function backPage(keepArea) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
131
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
132 att.pn = parseInt(att.pn) - 1;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
133
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
134 if (att.pn > 0) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
135 loadPicture(0, keepArea);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
136 } else {
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
137 att.pn = parseInt(att.pn) + 1;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
138 alert("You are already on the first page!");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
139 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
140 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
141
d407cb901df4 Initial revision
robcast
parents:
diff changeset
142
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
143 function nextPage(keepArea) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
144
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
145 att.pn = parseInt(att.pn) + 1;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
146
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
147 loadPicture(0, keepArea);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
148 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
149
d407cb901df4 Initial revision
robcast
parents:
diff changeset
150
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
151 function page(keepArea) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
152
d407cb901df4 Initial revision
robcast
parents:
diff changeset
153 do {
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
154 page = prompt("Goto Page:", 1);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
155 } while ((page != null) && (page < 1));
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
156
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
157 if (page != null && page != att.pn) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
158 att.pn = page;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
159 loadPicture(0, keepArea);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
160 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
161 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
162
d407cb901df4 Initial revision
robcast
parents:
diff changeset
163
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
164 function digicat() {
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
165 var url = baseUrl + "/digicat.jsp?" + att.fn + "+" + att.pn;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
166 win = window.open(url, "digicat");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
167 win.focus();
d407cb901df4 Initial revision
robcast
parents:
diff changeset
168 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
169
d407cb901df4 Initial revision
robcast
parents:
diff changeset
170
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
171 function ref(refselect) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
172
50
866e798e2bef 13.8.2002 - [different files] : roc
robcast
parents: 41
diff changeset
173 var hyperlinkRef = baseUrl + "/digilib.jsp?";
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
174 hyperlinkRef += att.fn + "+" + att.pn + "+" + att.ws + "+" + att.mo + "+" + att.mk;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
175
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
176 if ((att.wx != 0) || (att.wy != 0) || (att.ww != 1) || (att.wh != 1)) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
177 hyperlinkRef += "+" + att.wx + "+" + att.wy + "+" + att.ww + "+" + att.wh;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
178 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
179
d407cb901df4 Initial revision
robcast
parents:
diff changeset
180 if (refselect == 1) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
181 prompt("Link for HTML--documents", hyperlinkRef);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
182 } else {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
183 prompt("Link for LaTeX--documents", "\\href{" + hyperlinkRef + "}{TEXT}");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
184 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
185 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
186
d407cb901df4 Initial revision
robcast
parents:
diff changeset
187
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
188 function mark() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
189
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
190 if (att.mk.split(";").length > 7) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
191 alert("Only 8 marks are possible at the moment!");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
192 return;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
193 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
194
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
195 function markEvent(event) {
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
196 var point = new Point(event);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
197
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
198 if ((att.mk != "") && (att.mk != "0/0")) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
199 att.mk += ";";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
200 } else {
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
201 att.mk = "";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
202 }
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
203 att.mk += point.relX + "/" + point.relY;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
204
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
205 document.getElementById("lay1").removeEventListener("mousedown", markEvent, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
206 setMarks();
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
207 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
208
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
209 document.getElementById("lay1").addEventListener("mousedown", markEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
210 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
211
d407cb901df4 Initial revision
robcast
parents:
diff changeset
212
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
213 function zoomArea() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
214 var state = 0;
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
215 var pt1, pt2;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
216
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
217 function click(event) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
218
d407cb901df4 Initial revision
robcast
parents:
diff changeset
219 if (state == 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
220 state = 1;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
221
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
222 pt1 = new Point(event);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
223 pt2 = pt1;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
224
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
225 document.getElementById("eck1").style.left = pt1.pageX;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
226 document.getElementById("eck1").style.top = pt1.pageY;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
227 document.getElementById("eck2").style.left = pt2.pageX-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
228 document.getElementById("eck2").style.top = pt1.pageY;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
229 document.getElementById("eck3").style.left = pt1.pageX;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
230 document.getElementById("eck3").style.top = pt2.pageY-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
231 document.getElementById("eck4").style.left = pt2.pageX-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
232 document.getElementById("eck4").style.top = pt2.pageY-12;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
233
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
234 document.getElementById("eck1").style.visibility="visible";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
235 document.getElementById("eck2").style.visibility="visible";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
236 document.getElementById("eck3").style.visibility="visible";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
237 document.getElementById("eck4").style.visibility="visible";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
238
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
239 document.getElementById("lay1").addEventListener("mousemove", move, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
240 document.getElementById("eck4").addEventListener("mousemove", move, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
241
d407cb901df4 Initial revision
robcast
parents:
diff changeset
242 } else {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
243
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
244 pt2 = new Point(event);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
245
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
246 document.getElementById("lay1").removeEventListener("mousedown", click, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
247 document.getElementById("eck4").removeEventListener("mousedown", click, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
248
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
249 document.getElementById("lay1").removeEventListener("mousemove", move, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
250 document.getElementById("eck4").removeEventListener("mousemove", move, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
251
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
252 document.getElementById("eck1").style.visibility="hidden";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
253 document.getElementById("eck2").style.visibility="hidden";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
254 document.getElementById("eck3").style.visibility="hidden";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
255 document.getElementById("eck4").style.visibility="hidden";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
256
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
257 att.wx = parseFloat(Math.min(pt1.relX, pt2.relX));
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
258 att.wy = parseFloat(Math.min(pt1.relY, pt2.relY));
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
259
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
260 att.ww = parseFloat(Math.abs(pt1.relX-pt2.relX));
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
261 att.wh = parseFloat(Math.abs(pt1.relY-pt2.relY));
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
262
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
263 if (att.ww != 0 && att.wh != 0) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
264 loadPicture(2);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
265 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
266 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
267 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
268
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
269 function move(event) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
270
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
271 pt2 = new Point(event);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
272
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
273 document.getElementById("eck1").style.left = ((pt1.pageX < pt2.pageX) ? pt1.pageX : pt2.pageX);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
274 document.getElementById("eck1").style.top = ((pt1.pageY < pt2.pageY) ? pt1.pageY : pt2.pageY);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
275 document.getElementById("eck2").style.left = ((pt1.pageX < pt2.pageX) ? pt2.pageX : pt1.pageX)-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
276 document.getElementById("eck2").style.top = ((pt1.pageY < pt2.pageY) ? pt1.pageY : pt2.pageY);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
277 document.getElementById("eck3").style.left = ((pt1.pageX < pt2.pageX) ? pt1.pageX : pt2.pageX);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
278 document.getElementById("eck3").style.top = ((pt1.pageY < pt2.pageY) ? pt2.pageY : pt1.pageY)-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
279 document.getElementById("eck4").style.left = ((pt1.pageX < pt2.pageX) ? pt2.pageX : pt1.pageX)-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
280 document.getElementById("eck4").style.top = ((pt1.pageY < pt2.pageY) ? pt2.pageY : pt1.pageY)-12;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
281 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
282
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
283 document.getElementById("lay1").addEventListener("mousedown", click, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
284 document.getElementById("eck4").addEventListener("mousedown", click, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
285 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
286
d407cb901df4 Initial revision
robcast
parents:
diff changeset
287
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
288 function zoomPoint() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
289
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
290 function zoomPointEvent(event) {
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
291 var point = new Point(event);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
292
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
293 att.wx = cropFloat(point.relX-0.5*att.ww*0.7);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
294 att.wy = cropFloat(point.relY-0.5*att.wh*0.7);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
295
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
296 att.ww = cropFloat(att.ww*0.7);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
297 att.wh = cropFloat(att.wh*0.7);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
298
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
299 if (att.wx < 0) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
300 att.wx = 0;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
301 }
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
302 if (att.wy < 0) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
303 att.wy = 0;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
304 }
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
305 if (att.wx+att.ww > 1) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
306 att.wx = 1-att.ww;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
307 }
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
308 if (att.wy+att.wh > 1) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
309 att.wy = 1-att.wh;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
310 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
311
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
312 document.getElementById("lay1").removeEventListener("mousedown", zoomPointEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
313
d407cb901df4 Initial revision
robcast
parents:
diff changeset
314 loadPicture(2);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
315 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
316
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
317 document.getElementById("lay1").addEventListener("mousedown", zoomPointEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
318 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
319
d407cb901df4 Initial revision
robcast
parents:
diff changeset
320
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
321 function zoomOut() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
322
d407cb901df4 Initial revision
robcast
parents:
diff changeset
323 loadPicture(1);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
324 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
325
d407cb901df4 Initial revision
robcast
parents:
diff changeset
326
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
327 function moveTo() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
328
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
329 function moveToEvent(event) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
330
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
331 var point = new Point(event);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
332
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
333 att.wx = cropFloat(point.relX-0.5*att.ww);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
334 att.wy = cropFloat(point.relY-0.5*att.wh);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
335
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
336 if (att.wx < 0) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
337 att.wx = 0;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
338 }
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
339 if (att.wy < 0) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
340 att.wy = 0;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
341 }
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
342 if (att.wx+att.ww > 1) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
343 att.wx = 1-att.ww;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
344 }
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
345 if (att.wy+att.wh > 1) {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
346 att.wy = 1-att.wh;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
347 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
348
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
349 document.getElementById("lay1").removeEventListener("mousedown", moveToEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
350
d407cb901df4 Initial revision
robcast
parents:
diff changeset
351 loadPicture(2);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
352 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
353
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
354 document.getElementById("lay1").addEventListener("mousedown", moveToEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
355 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
356
d407cb901df4 Initial revision
robcast
parents:
diff changeset
357
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
358 function scale(scaledef) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
359
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
360 att.ws = scaledef;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
361 loadPicture(2);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
362 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
363
d407cb901df4 Initial revision
robcast
parents:
diff changeset
364
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
365 function setMarks() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
366
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
367 if (att.mk != "" && att.mk != "0/0") {
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
368 var mark = att.mk.split(";");
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
369
d407cb901df4 Initial revision
robcast
parents:
diff changeset
370 var countMarks = mark.length;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
371
d407cb901df4 Initial revision
robcast
parents:
diff changeset
372 // maximum of marks is 8
d407cb901df4 Initial revision
robcast
parents:
diff changeset
373 // we do not report this error because this is already done in func. "Mark"
d407cb901df4 Initial revision
robcast
parents:
diff changeset
374 if (countMarks > 8) countMarks = 8;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
375
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
376 var picWidth = document.pic.offsetWidth;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
377 var picHeight = document.pic.offsetHeight;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
378
d407cb901df4 Initial revision
robcast
parents:
diff changeset
379 // catch the cases where the picture had not been loaded already and
d407cb901df4 Initial revision
robcast
parents:
diff changeset
380 // make a timeout so that the coordinates are calculated with the real dimensions
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
381 if (document.pic.complete) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
382 var xoffset = parseInt(document.getElementById("lay1").style.left);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
383 var yoffset = parseInt(document.getElementById("lay1").style.top);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
384
d407cb901df4 Initial revision
robcast
parents:
diff changeset
385 for (var i = 0; i < countMarks; i++) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
386 mark[i] = mark[i].split("/");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
387
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
388 if ((mark[i][0] >= att.wx) && (mark[i][1] >= att.wy) && (mark[i][0] <= (att.wx+att.ww)) && (mark[i][1] <= (att.wy+att.wh))) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
389
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
390 mark[i][0] = parseInt(xoffset+picWidth*(mark[i][0]-att.wx)/att.ww);
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
391 mark[i][1] = parseInt(yoffset+picHeight*(mark[i][1]-att.wy)/att.wh);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
392
d407cb901df4 Initial revision
robcast
parents:
diff changeset
393
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
394 document.getElementById("dot" + i).style.left = mark[i][0]-5;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
395 document.getElementById("dot" + i).style.top = mark[i][1]-5;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
396 document.getElementById("dot" + i).style.visibility = "visible";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
397 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
398 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
399 } else {
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
400 setTimeout("setMarks()", 100);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
401 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
402 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
403 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
404
d407cb901df4 Initial revision
robcast
parents:
diff changeset
405 // capturing keypresses for next and previous page
d407cb901df4 Initial revision
robcast
parents:
diff changeset
406 // ascii-values of n = 110, b = 98
d407cb901df4 Initial revision
robcast
parents:
diff changeset
407 function parseKeypress (event) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
408 if (event.charCode == 110) {
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
409 nextPage();
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
410 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
411 if (event.charCode == 98) {
110
489f61d9feac XUL Buttons in chrome
engler
parents: 50
diff changeset
412 backPage();
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
413 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
414 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
415
d407cb901df4 Initial revision
robcast
parents:
diff changeset
416
d407cb901df4 Initial revision
robcast
parents:
diff changeset
417 // auxiliary function to crop senseless precicsion
d407cb901df4 Initial revision
robcast
parents:
diff changeset
418 function cropFloat(tmp) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
419 return parseInt(10000*tmp)/10000;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
420 }