annotate client/digitallibrary/navigation_n6.js @ 77:b877e54b0794

New servlet version 1.5b. Mostly cleanup. Global parameters for digilib now in DigilibConfiguration, per request parameters are now all in DigilibRequest. The DocuImage implementation can be selected by the configuration docuimage-class. Pixel-by-pixel view implemented with "mo=clip".
author robcast
date Fri, 24 Jan 2003 22:13:49 +0100
parents 866e798e2bef
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 }