annotate client/digitallibrary/navigation_n6.js @ 50:866e798e2bef

13.8.2002 - [different files] : roc - changed all hardcoded occurrences of /docuserver/digitallibrary to work relative or take the path from the request URL. Introduced a variable baseURL to hold the URL path (up to digilib.jsp etc.). Now it should be possible to install digilib in other directories. - removed xerces.jar. It seems not necessary any more (JDK 1.3.1, Tomcat 4.0.4)
author robcast
date Thu, 15 Aug 2002 23:40:15 +0200
parents 44f653ae5df5
children 489f61d9feac
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
1 // 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
2 // to fill in the attributes you can use the function init provided below
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
3 // - array with all attributes
d407cb901df4 Initial revision
robcast
parents:
diff changeset
4 var att = new Array();
d407cb901df4 Initial revision
robcast
parents:
diff changeset
5
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
6 // fill in the values of the "att"-array
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
7 function init(fn, pn, ws, mo, mk, wx, wy, ww, wh) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
8
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
9 // debug window to check the parameters passed
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
10 //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
11
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
12 // attaching the values to the att-array
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
13 att[0] = fn;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
14 att[1] = parseInt(pn);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
15 att[2] = parseFloat(ws);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
16 att[3] = mo;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
17 att[4] = mk;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
18 att[5] = parseFloat(wx);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
19 att[6] = parseFloat(wy);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
20 att[7] = parseFloat(ww);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
21 att[8] = parseFloat(wh);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
22
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
23 // compatablility issue
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
24 if (att[3].indexOf("f") > -1) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
25 att[3] = "fit";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
26 }
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
27
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
28 // 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
29 // could even be useless now
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
30 if (att[4] != "0/0") {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
31 var tmp = att[4].split(";");
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
32
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
33 att[4] = "";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
35 for (i = 0; i < tmp.length; i++) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
36 tmp[i] = tmp[i].split("/");
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
37
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
38 if (tmp[i][0] > 1 && tmp[i][1] > 1) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
39 tmp[i][0] /= 1000;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
40 tmp[i][1] /= 1000;
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
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
43 att[4] += tmp[i][0] + "/" + tmp[i][1] + ";";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
44 }
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
45 att[4] = att[4].slice(0, -1);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
46 }
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
47
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
48 // initialisation stuff
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
49 // ====================
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
50
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
51 setMarks();
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
52
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
53 this.document.addEventListener('keypress', parseKeypress, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
54 focus();
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
55
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
56 // 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
57 // digilib-window open and replace the contents of it (ex. digicat)
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
58 top.window.name = "digilib";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
59 }
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
60
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
61
d407cb901df4 Initial revision
robcast
parents:
diff changeset
62 // function that launches the ScaleServlet
d407cb901df4 Initial revision
robcast
parents:
diff changeset
63 // the different detailGrades:
d407cb901df4 Initial revision
robcast
parents:
diff changeset
64 // 0 -> back, next, page
d407cb901df4 Initial revision
robcast
parents:
diff changeset
65 // 1 -> zoomout
d407cb901df4 Initial revision
robcast
parents:
diff changeset
66 // 2 -> zoomarea, zoompoint, moveto, scaledef
d407cb901df4 Initial revision
robcast
parents:
diff changeset
67
d407cb901df4 Initial revision
robcast
parents:
diff changeset
68 function loadPicture(detailGrade, keepArea) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
69
41
44f653ae5df5 opera support done, bugfixes
luginbue
parents: 38
diff changeset
70 var newQuery = "fn=" + att[0] + "&pn=" + att[1] + "&ws=" + att[2] + "&mo=" + att[3];
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
71
d407cb901df4 Initial revision
robcast
parents:
diff changeset
72 if (detailGrade == 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
73 att[4] = "0/0";
d407cb901df4 Initial revision
robcast
parents:
diff changeset
74 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
75
d407cb901df4 Initial revision
robcast
parents:
diff changeset
76 if ((detailGrade == 1) || (detailGrade == 0 && !keepArea)) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
77 att[5] = 0;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
78 att[6] = 0;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
79 att[7] = 1;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
80 att[8] = 1;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
81 }
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
82
41
44f653ae5df5 opera support done, bugfixes
luginbue
parents: 38
diff changeset
83 newQuery += "&mk=" + att[4] + "&wx=" + att[5] + "&wy=" + att[6] + "&ww=" + att[7] + "&wh=" + att[8];
44f653ae5df5 opera support done, bugfixes
luginbue
parents: 38
diff changeset
84 newQuery += "&dw=" + (innerWidth-30) + "&dh=" + (innerHeight-30);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
85
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
86 // debug window - checking the parameters passed to the next image
41
44f653ae5df5 opera support done, bugfixes
luginbue
parents: 38
diff changeset
87 //alert ("DEBUG MESSAGE (query-string in loadPicture):\n\n" + newQuery);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
88
41
44f653ae5df5 opera support done, bugfixes
luginbue
parents: 38
diff changeset
89 location.href = location.pathname + "?" + newQuery;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
90 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
91
d407cb901df4 Initial revision
robcast
parents:
diff changeset
92
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
93 // constructor holding different values of a point
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
94 function Point(event) {
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
95
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
96 this.pageX = parseInt(event.pageX);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
97 this.pageY = parseInt(event.pageY);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
98
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
99 this.x = this.pageX-parseInt(document.getElementById("lay1").style.left);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
100 this.y = this.pageY-parseInt(document.getElementById("lay1").style.top);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
101
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
102 this.relX = cropFloat(att[5]+(att[7]*this.x/document.pic.offsetWidth));
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
103 this.relY = cropFloat(att[6]+(att[8]*this.y/document.pic.offsetHeight));
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
104
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
105 return this;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
106 }
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
107
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
108
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
109 function backPage(keepArea) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
110
d407cb901df4 Initial revision
robcast
parents:
diff changeset
111 att[1] = parseInt(att[1]) - 1;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
112
d407cb901df4 Initial revision
robcast
parents:
diff changeset
113 if (att[1] > 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
114 loadPicture(0, keepArea);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
115 } else {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
116 att[1] = parseInt(att[1]) + 1;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
117 alert("You are already on the first page!");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
118 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
119 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
120
d407cb901df4 Initial revision
robcast
parents:
diff changeset
121
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
122 function nextPage(keepArea) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
123
d407cb901df4 Initial revision
robcast
parents:
diff changeset
124 att[1] = parseInt(att[1]) + 1;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
125
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
126 loadPicture(0, keepArea);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
127 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
128
d407cb901df4 Initial revision
robcast
parents:
diff changeset
129
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
130 function page(keepArea) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
131
d407cb901df4 Initial revision
robcast
parents:
diff changeset
132 do {
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
133 page = prompt("Goto Page:", 1);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
134 } while ((page != null) && (page < 1));
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
135
d407cb901df4 Initial revision
robcast
parents:
diff changeset
136 if (page != null && page != att[1]) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
137 att[1] = page;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
138 loadPicture(0, keepArea);
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 digicat() {
50
866e798e2bef 13.8.2002 - [different files] : roc
robcast
parents: 41
diff changeset
144 var url = "digicat.html?" + att[0] + "+" + att[1];
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
145 win = window.open(url, "digicat");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
146 win.focus();
d407cb901df4 Initial revision
robcast
parents:
diff changeset
147 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
148
d407cb901df4 Initial revision
robcast
parents:
diff changeset
149
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
150 function ref(refselect) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
151
50
866e798e2bef 13.8.2002 - [different files] : roc
robcast
parents: 41
diff changeset
152 var hyperlinkRef = baseUrl + "/digilib.jsp?";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
153 hyperlinkRef += att[0] + "+" + att[1] + "+" + att[2] + "+" + att[3] + "+" + att[4];
d407cb901df4 Initial revision
robcast
parents:
diff changeset
154
d407cb901df4 Initial revision
robcast
parents:
diff changeset
155 if ((att[5] != 0) || (att[6] != 0) || (att[7] != 1) || (att[8] != 1)) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
156 hyperlinkRef += "+" + att[5] + "+" + att[6] + "+" + att[7] + "+" + att[8];
d407cb901df4 Initial revision
robcast
parents:
diff changeset
157 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
158
d407cb901df4 Initial revision
robcast
parents:
diff changeset
159 if (refselect == 1) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
160 prompt("Link for HTML--documents", hyperlinkRef);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
161 } else {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
162 prompt("Link for LaTeX--documents", "\\href{" + hyperlinkRef + "}{TEXT}");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
163 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
164 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
165
d407cb901df4 Initial revision
robcast
parents:
diff changeset
166
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
167 function mark() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
168
d407cb901df4 Initial revision
robcast
parents:
diff changeset
169 if (att[4].split(";").length > 7) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
170 alert("Only 8 marks are possible at the moment!");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
171 return;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
172 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
173
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
174 function markEvent(event) {
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
175 var point = new Point(event);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
176
d407cb901df4 Initial revision
robcast
parents:
diff changeset
177 if ((att[4] != "") && (att[4] != "0/0")) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
178 att[4] += ";";
d407cb901df4 Initial revision
robcast
parents:
diff changeset
179 } else {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
180 att[4] = "";
d407cb901df4 Initial revision
robcast
parents:
diff changeset
181 }
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
182 att[4] += point.relX + "/" + point.relY;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
183
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
184 document.getElementById("lay1").removeEventListener("mousedown", markEvent, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
185 setMarks();
20
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 document.getElementById("lay1").addEventListener("mousedown", markEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
189 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
190
d407cb901df4 Initial revision
robcast
parents:
diff changeset
191
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
192 function zoomArea() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
193 var state = 0;
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
194 var pt1, pt2;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
195
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
196 function click(event) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
197
d407cb901df4 Initial revision
robcast
parents:
diff changeset
198 if (state == 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
199 state = 1;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
200
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
201 pt1 = new Point(event);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
202 pt2 = pt1;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
203
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
204 document.getElementById("eck1").style.left = pt1.pageX;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
205 document.getElementById("eck1").style.top = pt1.pageY;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
206 document.getElementById("eck2").style.left = pt2.pageX-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
207 document.getElementById("eck2").style.top = pt1.pageY;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
208 document.getElementById("eck3").style.left = pt1.pageX;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
209 document.getElementById("eck3").style.top = pt2.pageY-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
210 document.getElementById("eck4").style.left = pt2.pageX-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
211 document.getElementById("eck4").style.top = pt2.pageY-12;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
212
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
213 document.getElementById("eck1").style.visibility="visible";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
214 document.getElementById("eck2").style.visibility="visible";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
215 document.getElementById("eck3").style.visibility="visible";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
216 document.getElementById("eck4").style.visibility="visible";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
217
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
218 document.getElementById("lay1").addEventListener("mousemove", move, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
219 document.getElementById("eck4").addEventListener("mousemove", move, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
220
d407cb901df4 Initial revision
robcast
parents:
diff changeset
221 } else {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
222
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
223 pt2 = new Point(event);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
224
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
225 document.getElementById("lay1").removeEventListener("mousedown", click, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
226 document.getElementById("eck4").removeEventListener("mousedown", click, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
227
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
228 document.getElementById("lay1").removeEventListener("mousemove", move, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
229 document.getElementById("eck4").removeEventListener("mousemove", move, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
230
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
231 document.getElementById("eck1").style.visibility="hidden";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
232 document.getElementById("eck2").style.visibility="hidden";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
233 document.getElementById("eck3").style.visibility="hidden";
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
234 document.getElementById("eck4").style.visibility="hidden";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
235
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
236 att[5] = Math.min(pt1.relX, pt2.relX);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
237 att[6] = Math.min(pt1.relY, pt2.relY);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
238
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
239 att[7] = Math.abs(pt1.relX-pt2.relX);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
240 att[8] = Math.abs(pt1.relY-pt2.relY);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
241
d407cb901df4 Initial revision
robcast
parents:
diff changeset
242 if (att[7] != 0 && att[8] != 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
243 loadPicture(2);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
244 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
245 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
246 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
247
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
248 function move(event) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
249
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
250 pt2 = new Point(event);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
251
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
252 document.getElementById("eck1").style.left = ((pt1.pageX < pt2.pageX) ? pt1.pageX : pt2.pageX);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
253 document.getElementById("eck1").style.top = ((pt1.pageY < pt2.pageY) ? pt1.pageY : pt2.pageY);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
254 document.getElementById("eck2").style.left = ((pt1.pageX < pt2.pageX) ? pt2.pageX : pt1.pageX)-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
255 document.getElementById("eck2").style.top = ((pt1.pageY < pt2.pageY) ? pt1.pageY : pt2.pageY);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
256 document.getElementById("eck3").style.left = ((pt1.pageX < pt2.pageX) ? pt1.pageX : pt2.pageX);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
257 document.getElementById("eck3").style.top = ((pt1.pageY < pt2.pageY) ? pt2.pageY : pt1.pageY)-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
258 document.getElementById("eck4").style.left = ((pt1.pageX < pt2.pageX) ? pt2.pageX : pt1.pageX)-12;
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
259 document.getElementById("eck4").style.top = ((pt1.pageY < pt2.pageY) ? pt2.pageY : pt1.pageY)-12;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
260 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
261
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
262 document.getElementById("lay1").addEventListener("mousedown", click, true);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
263 document.getElementById("eck4").addEventListener("mousedown", click, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
264 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
265
d407cb901df4 Initial revision
robcast
parents:
diff changeset
266
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
267 function zoomPoint() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
268
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
269 function zoomPointEvent(event) {
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
270 var point = new Point(event);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
271
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
272 att[5] = cropFloat(point.relX-0.5*att[7]*0.7);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
273 att[6] = cropFloat(point.relY-0.5*att[8]*0.7);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
274
d407cb901df4 Initial revision
robcast
parents:
diff changeset
275 att[7] = cropFloat(att[7]*0.7);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
276 att[8] = cropFloat(att[8]*0.7);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
277
d407cb901df4 Initial revision
robcast
parents:
diff changeset
278 if (att[5] < 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
279 att[5] = 0;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
280 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
281 if (att[6] < 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
282 att[6] = 0;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
283 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
284 if (att[5]+att[7] > 1) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
285 att[5] = 1-att[7];
d407cb901df4 Initial revision
robcast
parents:
diff changeset
286 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
287 if (att[6]+att[8] > 1) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
288 att[6] = 1-att[8];
d407cb901df4 Initial revision
robcast
parents:
diff changeset
289 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
290
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
291 document.getElementById("lay1").removeEventListener("mousedown", zoomPointEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
292
d407cb901df4 Initial revision
robcast
parents:
diff changeset
293 loadPicture(2);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
294 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
295
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
296 document.getElementById("lay1").addEventListener("mousedown", zoomPointEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
297 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
298
d407cb901df4 Initial revision
robcast
parents:
diff changeset
299
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
300 function zoomOut() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
301
d407cb901df4 Initial revision
robcast
parents:
diff changeset
302 loadPicture(1);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
303 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
304
d407cb901df4 Initial revision
robcast
parents:
diff changeset
305
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
306 function moveTo() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
307
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
308 function moveToEvent(event) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
309
38
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
310 var point = new Point(event);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
311
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
312 att[5] = cropFloat(point.relX-0.5*att[7]);
930413351738 improvements in parsing points
luginbue
parents: 34
diff changeset
313 att[6] = cropFloat(point.relY-0.5*att[8]);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
314
d407cb901df4 Initial revision
robcast
parents:
diff changeset
315 if (att[5] < 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
316 att[5] = 0;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
317 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
318 if (att[6] < 0) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
319 att[6] = 0;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
320 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
321 if (att[5]+att[7] > 1) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
322 att[5] = 1-att[7];
d407cb901df4 Initial revision
robcast
parents:
diff changeset
323 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
324 if (att[6]+att[8] > 1) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
325 att[6] = 1-att[8];
d407cb901df4 Initial revision
robcast
parents:
diff changeset
326 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
327
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
328 document.getElementById("lay1").removeEventListener("mousedown", moveToEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
329
d407cb901df4 Initial revision
robcast
parents:
diff changeset
330 loadPicture(2);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
331 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
332
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
333 document.getElementById("lay1").addEventListener("mousedown", moveToEvent, true);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
334 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
335
d407cb901df4 Initial revision
robcast
parents:
diff changeset
336
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
337 function scale(scaledef) {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
338
d407cb901df4 Initial revision
robcast
parents:
diff changeset
339 att[2] = scaledef;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
340 loadPicture(2);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
341 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
342
d407cb901df4 Initial revision
robcast
parents:
diff changeset
343
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
344 function setMarks() {
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
345
d407cb901df4 Initial revision
robcast
parents:
diff changeset
346 if (att[4] != "" && att[4] != "0/0") {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
347 var mark = att[4].split(";");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
348
d407cb901df4 Initial revision
robcast
parents:
diff changeset
349 var countMarks = mark.length;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
350
d407cb901df4 Initial revision
robcast
parents:
diff changeset
351 // maximum of marks is 8
d407cb901df4 Initial revision
robcast
parents:
diff changeset
352 // we do not report this error because this is already done in func. "Mark"
d407cb901df4 Initial revision
robcast
parents:
diff changeset
353 if (countMarks > 8) countMarks = 8;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
354
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
355 var picWidth = document.pic.offsetWidth;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
356 var picHeight = document.pic.offsetHeight;
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
357
d407cb901df4 Initial revision
robcast
parents:
diff changeset
358 // catch the cases where the picture had not been loaded already and
d407cb901df4 Initial revision
robcast
parents:
diff changeset
359 // 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
360 if (document.pic.complete) {
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
361 var xoffset = parseInt(document.getElementById("lay1").style.left);
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
362 var yoffset = parseInt(document.getElementById("lay1").style.top);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
363
d407cb901df4 Initial revision
robcast
parents:
diff changeset
364 for (var i = 0; i < countMarks; i++) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
365 mark[i] = mark[i].split("/");
d407cb901df4 Initial revision
robcast
parents:
diff changeset
366
d407cb901df4 Initial revision
robcast
parents:
diff changeset
367 if ((mark[i][0] > att[5]) && (mark[i][1] > att[6]) && (mark[i][0] < (att[5]+att[7])) && (mark[i][1] < (att[6]+att[8]))) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
368
d407cb901df4 Initial revision
robcast
parents:
diff changeset
369 mark[i][0] = parseInt(xoffset+picWidth*(mark[i][0]-att[5])/att[7]);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
370 mark[i][1] = parseInt(yoffset+picHeight*(mark[i][1]-att[6])/att[8]);
d407cb901df4 Initial revision
robcast
parents:
diff changeset
371
d407cb901df4 Initial revision
robcast
parents:
diff changeset
372
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
373 document.getElementById("dot" + i).style.left = mark[i][0]-5;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
374 document.getElementById("dot" + i).style.top = mark[i][1]-5;
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
375 document.getElementById("dot" + i).style.visibility = "visible";
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
376 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
377 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
378 } else {
34
84a481a388bb first update of new client-version
luginbue
parents: 20
diff changeset
379 setTimeout("setMarks()", 100);
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
380 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
381 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
382 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
383
d407cb901df4 Initial revision
robcast
parents:
diff changeset
384 // capturing keypresses for next and previous page
d407cb901df4 Initial revision
robcast
parents:
diff changeset
385 // ascii-values of n = 110, b = 98
d407cb901df4 Initial revision
robcast
parents:
diff changeset
386 function parseKeypress (event) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
387 if (event.charCode == 110) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
388 Nextpage();
d407cb901df4 Initial revision
robcast
parents:
diff changeset
389 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
390 if (event.charCode == 98) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
391 Backpage();
d407cb901df4 Initial revision
robcast
parents:
diff changeset
392 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
393 }
d407cb901df4 Initial revision
robcast
parents:
diff changeset
394
d407cb901df4 Initial revision
robcast
parents:
diff changeset
395
d407cb901df4 Initial revision
robcast
parents:
diff changeset
396 // auxiliary function to crop senseless precicsion
d407cb901df4 Initial revision
robcast
parents:
diff changeset
397 function cropFloat(tmp) {
d407cb901df4 Initial revision
robcast
parents:
diff changeset
398 return parseInt(10000*tmp)/10000;
d407cb901df4 Initial revision
robcast
parents:
diff changeset
399 }