annotate client/digitallibrary/jquery/jquery.digilib.js @ 636:7049579a0097 jquery

last and next page works now implemented redisplay function (only tested with fullscreen) parameters that are changed need to be in data.queryParams to get in the url on redisplay
author robcast
date Tue, 18 Jan 2011 21:30:03 +0100
parents 7293a42f44f5
children d904c0c74c15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
1 /*
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
2 * digilib jQuery plugin
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
3 *
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
4 */
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
5
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
6 // fallback for console.log calls
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
7 if (typeof(console) === 'undefined') {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
8 var console = {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
9 log : function(){},
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
10 debug : function(){},
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
11 error : function(){}
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
12 };
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
13 }
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
14
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
15 (function($) {
618
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
16 var actions = {
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
17 reference : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
18 onclick : "javascript:getRefWin()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
19 tooltip : "get a reference URL",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
20 img : "reference.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
21 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
22 zoomin : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
23 onclick : "javascript:dl.zoomBy(1.4)",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
24 tooltip : "zoom in",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
25 img : "zoom-in.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
26 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
27 zoomout : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
28 onclick : "javascript:zoomBy(0.7)",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
29 tooltip : "zoom out",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
30 img : "zoom-out.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
31 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
32 zoomarea : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
33 onclick : "javascript:zoomArea()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
34 tooltip : "zoom area",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
35 img : "zoom-area.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
36 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
37 zoomfull : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
38 onclick : "javascript:zoomFullpage()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
39 tooltip : "view the whole image",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
40 img : "zoom-full.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
41 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
42 pagewidth : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
43 onclick : "javascript:zoomFullpage('width')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
44 tooltip : "page width",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
45 img : "pagewidth.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
46 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
47 back : {
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
48 onclick : ["gotoPage", "-1"],
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
49 tooltip : "goto previous image",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
50 img : "back.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
51 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
52 fwd : {
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
53 onclick : ["gotoPage", "+1"],
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
54 tooltip : "goto next image",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
55 img : "fwd.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
56 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
57 page : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
58 onclick : "javascript:gotoPageWin()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
59 tooltip : "specify image",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
60 img : "page.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
61 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
62 bird : {
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
63 onclick : "showBirdDiv",
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
64 tooltip : "show bird's eye view",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
65 img : "birds-eye.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
66 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
67 help : {
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
68 onclick : "showAboutDiv",
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
69 tooltip : "about Digilib",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
70 img : "help.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
71 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
72 reset : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
73 onclick : "javascript:resetImage()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
74 tooltip : "reset image",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
75 img : "reset.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
76 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
77 mark : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
78 onclick : "javascript:setMark()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
79 tooltip : "set a mark",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
80 img : "mark.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
81 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
82 delmark : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
83 onclick : "javascript:removeMark()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
84 tooltip : "delete the last mark",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
85 img : "delmark.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
86 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
87 hmir : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
88 onclick : "javascript:mirror('h')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
89 tooltip : "mirror horizontally",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
90 img : "mirror-horizontal.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
91 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
92 vmir : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
93 onclick : "javascript:mirror('v')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
94 tooltip : "mirror vertically",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
95 img : "mirror-vertical.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
96 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
97 rot : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
98 onclick : "javascript:setParamWin('rot', 'Rotate (0..360) clockwise')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
99 tooltip : "rotate image",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
100 img : "rotate.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
101 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
102 brgt : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
103 onclick : "javascript:setParamWin('brgt', 'Brightness (-255..255)')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
104 tooltip : "set brightness",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
105 img : "brightness.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
106 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
107 cont : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
108 onclick : "javascript:setParamWin('cont', 'Contrast (0..8)')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
109 tooltip : "set contrast",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
110 img : "contrast.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
111 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
112 rgb : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
113 onclick : "javascript:setParamWin('rgb', '...')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
114 tooltip : "set rgb values",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
115 img : "rgb.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
116 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
117 quality : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
118 onclick : "javascript:setQualityWin('Quality (0..2)')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
119 tooltip : "set image quality",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
120 img : "quality.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
121 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
122 size : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
123 onclick : "javascript:toggleSizeMenu()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
124 tooltip : "set page size",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
125 img : "size.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
126 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
127 calibrationx : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
128 onclick : "javascript:calibrate('x')",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
129 tooltip : "calibrate screen x-ratio",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
130 img : "calibration-x.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
131 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
132 scale : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
133 onclick : "javascript:toggleScaleMenu()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
134 tooltip : "change image scale",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
135 img : "original-size.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
136 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
137 options : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
138 onclick : "javascript:toggleOptionDiv()",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
139 tooltip : "hide options",
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
140 img : "options.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
141 },
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
142 SEP : {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
143 img : "sep.png"
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
144 }
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
145 };
617
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
146
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
147 var defaults = {
617
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
148 // the root digilib element, for easy retrieval
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
149 'digilibRoot' : null,
616
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
150 // version of this script
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
151 'version' : 'jquery.digilib.js 0.9',
616
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
152 // logo url
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
153 'logoUrl' : '../img/digilib-logo-text1.png',
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
154 // homepage url (behind logo)
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
155 'homeUrl' : 'http://digilib.berlios.de',
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
156 // base URL to Scaler servlet
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
157 'scalerBaseUrl' : 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler',
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
158 // list of Scaler parameters
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
159 'scalerParamNames' : ['fn','pn','dw','dh','ww','wh','wx','wy','ws','mo',
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
160 'rot','cont','brgt','rgbm','rgba','ddpi','ddpix','ddpiy'],
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
161 // Scaler parameter defaults
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
162 'ww' : 1.0,
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
163 'wh' : 1.0,
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
164 'wx' : 0.0,
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
165 'wy' : 0.0,
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
166 'ws' : 1.0,
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
167 // mode of operation.
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
168 // fullscreen: takes parameters from page URL, keeps state in page URL
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
169 // embedded: takes parameters from Javascript options, keeps state inside object
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
170 'interactionMode' : 'fullscreen',
618
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
171 // actions
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
172 'actions' : actions,
612
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
173 // path to button images (must end with a slash)
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
174 'buttonsImagePath' : '../greyskin/',
618
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
175 // actions groups
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
176 'actionsStandard' : ["reference","zoomin","zoomout","zoomarea","zoomfull","pagewidth","back","fwd","page","bird","SEP","help","reset","options"],
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
177 'actionsSpecial' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","size","calibrationx","scale","SEP","options"],
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
178 'actionsCustom' : [],
616
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
179 // is birdView shown?
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
180 'isBirdDivVisible' : false,
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
181 // dimensions of bird's eye window
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
182 'birdMaxX' : 200,
616
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
183 'birdMaxY' : 200,
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
184 // is the "about" window shown?
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
185 'isAboutDivVisible' : false
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
186
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
187 };
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
188
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
189 // affine geometry classes
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
190 var geom = dlGeometry();
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
191
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
192 var methods = {
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
193 // digilib initialization
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
194 init : function(options) {
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
195 // settings for this digilib instance are merged from defaults and options
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
196 var settings = $.extend({}, defaults, options);
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
197 var isFullscreen = settings.interactionMode === 'fullscreen';
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
198 var queryParams = {};
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
199 if (isFullscreen) {
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
200 queryParams = parseQueryParams();
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
201 }
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
202 return this.each(function() {
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
203 var $elem = $(this);
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
204 var data = $elem.data('digilib');
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
205 var elemSettings;
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
206 // if the plugin hasn't been initialized yet
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
207 if (!data) {
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
208 // merge query parameters
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
209 if (isFullscreen) {
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
210 elemSettings = $.extend({}, settings, queryParams);
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
211 } else {
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
212 elemSettings = $.extend({}, settings, parseImgParams($elem));
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
213 }
617
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
214 // store $(this) element in the settings
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
215 elemSettings.digilibRoot = $elem;
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
216 data = {
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
217 target : $elem,
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
218 settings : elemSettings,
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
219 queryParams : queryParams
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
220 };
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
221 // store in data element
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
222 $elem.data('digilib', data);
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
223 }
633
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
224 unpackParams(data);
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
225 // create HTML structure
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
226 setupScalerDiv(data);
628
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
227 setupButtons(data, 'actionsStandard');
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
228 // bird's eye view creation - TODO: could be deferred?
628
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
229 setupBirdviewDiv(data);
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
230 // about window creation - TODO: could be deferred? restrict to only one item?
628
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
231 setupAboutDiv(data);
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
232 });
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
233 },
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
234
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
235 // clean up digilib
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
236 destroy : function() {
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
237 return this.each(function(){
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
238 var $elem = $(this);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
239 var data = $elem.data('digilib');
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
240 // Namespacing FTW
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
241 $(window).unbind('.digilib'); // unbinds all digilibs(?)
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
242 data.digilib.remove();
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
243 $elem.removeData('digilib');
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
244 });
617
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
245 },
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
246
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
247 // show or hide the 'about' window
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
248 showAboutDiv : function(show) {
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
249 var $elem = $(this);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
250 var data = $elem.data('digilib');
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
251 data.settings.isAboutDivVisible = showDiv(data.settings.isAboutDivVisible, data.$aboutDiv, show);
617
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
252 },
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
253
cd846b5c8be8 toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 616
diff changeset
254 // event handler: toggles the visibility of the bird's eye window
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
255 showBirdDiv : function (show) {
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
256 var $elem = $(this);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
257 var data = $elem.data('digilib');
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
258 data.settings.isBirdDivVisible = showDiv(data.settings.isBirdDivVisible, data.$birdDiv, show);
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
259 },
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
260
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
261 // goto given page nr (+/-: relative)
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
262 gotoPage : function (pageNr) {
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
263 var $elem = $(this); // the clicked button
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
264 var data = $elem.data('digilib');
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
265 var settings = data.settings;
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
266 var oldpn = settings.pn;
624
7d13b7e5140e small retouches
hertzhaft
parents: 623
diff changeset
267 var pn = setNumValue(settings, "pn", pageNr);
7d13b7e5140e small retouches
hertzhaft
parents: 623
diff changeset
268 if (pn == null) return false; // nothing happened
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
269 if (pn < 1) {
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
270 alert("no such page (page number too low)");
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
271 settings.pn = oldpn;
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
272 return false;
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
273 }
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
274 if (settings.pt) {
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
275 if (pn > settings.pt) {
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
276 alert("no such page (page number too high)");
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
277 settings.pn = oldpn;
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
278 return false;
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
279 }
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
280 }
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
281 // add pn to param list and remove mk and others(?)
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
282 data.queryParams.pn = pn;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
283 delete data.queryParams.mk;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
284 // then reload
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
285 redisplay(data);
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
286 }
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
287 };
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
288
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
289 // sets a key to a value (relative values with +/- if relative=true)
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
290 var setNumValue = function(settings, key, value) {
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
291 // TODO: type and error checking
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
292 if (settings[key] == null) return null;
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
293 var sign = value.substring(0,1);
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
294 if (sign === '+' || sign === '-') {
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
295 settings[key] = parseFloat(settings[key]) + parseFloat(value);
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
296 } else {
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
297 settings[key] = value;
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
298 }
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
299 return settings[key];
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
300 };
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
301
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
302 // returns parameters from page url
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
303 var parseQueryParams = function() {
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
304 return parseQueryString(window.location.search.slice(1));
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
305 };
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
306
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
307 // returns parameters from embedded img-element
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
308 var parseImgParams = function($elem) {
613
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
309 var src = $elem.find('img').first().attr('src');
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
310 if (!src) {
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
311 return null;
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
312 }
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
313 var pos = src.indexOf('?');
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
314 var query = (pos < 0) ? '' : src.substring(pos + 1);
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
315 var scalerUrl = src.substring(0, pos);
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
316 var params = parseQueryString(query);
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
317 params.scalerBaseUrl = scalerUrl;
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
318 return params;
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
319 };
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
320
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
321 // parses query parameter string into parameter object
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
322 var parseQueryString = function(query) {
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
323 var pairs = query.split("&");
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
324 var params = {};
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
325 //var keys = [];
607
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
326 for (var i = 0; i < pairs.length; i++) {
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
327 var pair = pairs[i].split("=");
f5d5cae64828 parameter parsing
hertzhaft
parents: 605
diff changeset
328 if (pair.length === 2) {
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
329 params[pair[0]] = pair[1];
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
330 //keys.push(pair[0]);
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
331 }
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
332 }
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
333 return params;
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
334 };
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
335
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
336 // returns a query string from key names from a parameter hash
628
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
337 var getParamString = function (settings, keys) {
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
338 var paramString = '';
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
339 var latter = false;
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
340 for (i = 0; i < keys.length; ++i) {
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
341 var key = keys[i];
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
342 if (settings[key]) {
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
343 // first param gets no '&'
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
344 paramString += latter ? '&' : '';
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
345 latter = true;
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
346 // add parm=val
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
347 paramString += key + '=' + settings[key];
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
348 }
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
349 }
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
350 return paramString;
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
351 };
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
352
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
353 // returns URL and query string for Scaler
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
354 var getScalerUrl = function (data) {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
355 var settings = data.settings;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
356 var keys = settings.scalerParamNames;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
357 var queryString = getParamString(settings, keys);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
358 var url = settings.scalerBaseUrl + '?' + queryString;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
359 return url;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
360 };
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
361
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
362 // returns URL and query string for current digilib
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
363 var getDigilibUrl = function (data) {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
364 var settings = data.settings;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
365 // make list from queryParams keys
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
366 var keys = [];
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
367 for (var k in data.queryParams) {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
368 keys.push(k);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
369 }
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
370 var queryString = getParamString(settings, keys);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
371 var url = window.location.toString();
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
372 var pos = url.indexOf('?');
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
373 var baseUrl = url.substring(0, pos);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
374 var newurl = baseUrl + '?' + queryString;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
375 return newurl;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
376 };
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
377
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
378 // processes some parameters into objects and stuff
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
379 var unpackParams = function (data) {
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
380 var settings = data.settings;
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
381 // zoom area
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
382 var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh);
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
383 settings.zoomArea = zoomArea;
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
384 // marks
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
385 var marks = [];
633
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
386 var mk = settings.mk || '';
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
387 if (mk.indexOf(";") >= 0) {
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
388 var pa = mk.split(";"); // old format with ";"
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
389 } else {
633
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
390 var pa = mk.split(","); // new format
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
391 }
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
392 for (var i = 0; i < pa.length ; i++) {
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
393 var pos = pa[i].split("/");
633
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
394 if (pos.length > 1) {
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
395 marks.push(geom.position(pos[0], pos[1]));
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
396 }
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
397 }
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
398 settings.marks = marks;
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
399 };
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
400
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
401 // put objects back into parameters
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
402 var packParams = function (data) {
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
403 var settings = data.settings;
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
404 // zoom area
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
405 if (settings.zoomArea) {
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
406 settings.wx = settings.zoomArea.x;
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
407 settings.wy = settings.zoomArea.y;
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
408 settings.ww = settings.zoomArea.width;
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
409 settings.wh = settings.zoomArea.height;
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
410 }
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
411 // marks
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
412 if (settings.marks) {
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
413 var ma = [];
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
414 for (var i = 0; i < settings.marks.length; i++) {
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
415 ma.push(cropFloat(settings.marks[i].x) + "/" + cropFloat(settings.marks[i].y));
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
416 }
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
417 settings.mk = ma.join(",");
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
418 }
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
419 };
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
420
609
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
421 // returns maximum size for scaler img in fullscreen mode
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
422 var getFullscreenImgSize = function($elem) {
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
423 var winH = $(window).height();
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
424 var winW = $(window).width();
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
425 // TODO: account for borders?
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
426 return geom.size(winW, winH);
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
427 };
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
428
622
cc3d81f02d4e factored out display function
hertzhaft
parents: 621
diff changeset
429 // (re)load the img from a new scaler URL
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
430 var redisplay = function (data) {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
431 var settings = data.settings;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
432 if (settings.interactionMode === 'fullscreen') {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
433 // update location.href (browser URL) in fullscreen mode
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
434 var url = getDigilibUrl(data);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
435 var history = window.history;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
436 if (typeof(history.pushState) === 'function') {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
437 console.debug("we could modify history, but we don't...");
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
438 }
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
439 window.location = url;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
440 } else {
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
441 // embedded mode -- just change img src
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
442 var url = getScalerUrl(data);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
443 data.$img.attr('src', url);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
444 }
622
cc3d81f02d4e factored out display function
hertzhaft
parents: 621
diff changeset
445 };
cc3d81f02d4e factored out display function
hertzhaft
parents: 621
diff changeset
446
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
447 // creates HTML structure for digilib in elem
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
448 var setupScalerDiv = function (data) {
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
449 var settings = data.settings;
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
450 var $elem = data.target;
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
451 var $img;
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
452 if (settings.interactionMode === 'fullscreen') {
609
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
453 // fullscreen
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
454 var imgSize = getFullscreenImgSize($elem);
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
455 settings.dw = imgSize.width;
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
456 settings.dh = imgSize.height;
613
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
457 $img = $('<img/>');
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
458 var scalerUrl = getScalerUrl(data);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
459 $img.attr('src', scalerUrl);
609
435f81210a33 start work on scaler call
robcast
parents: 608
diff changeset
460 } else {
613
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
461 // embedded mode -- try to keep img tag
623
7ba95f12d172 first attempt at switching images by page number
hertzhaft
parents: 622
diff changeset
462 $img = $elem.find('img');
613
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
463 if ($img.length > 0) {
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
464 console.debug("img detach:",$img);
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
465 $img.detach();
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
466 } else {
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
467 $img = $('<img/>');
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
468 var scalerUrl = getScalerUrl(data);
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
469 $img.attr('src', scalerUrl);
613
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
470 }
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
471 }
613
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
472 // create new html
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
473 $elem.empty(); // TODO: should we keep stuff for customization?
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
474 var $scaler = $('<div class="scaler"/>');
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
475 $elem.append($scaler);
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
476 $scaler.append($img);
622
cc3d81f02d4e factored out display function
hertzhaft
parents: 621
diff changeset
477 $img.addClass('pic');
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
478 data.$img = $img;
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
479 $img.load(scalerImgLoadedHandler(data));
608
774a3f60efd5 start work on scaler call
robcast
parents: 607
diff changeset
480 };
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
481
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
482 // creates HTML structure for buttons in elem
628
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
483 var setupButtons = function (data, actionGroup) {
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
484 var $elem = data.target;
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
485 var settings = data.settings;
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
486 if (settings.interactionMode === 'fullscreen') {
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
487 // fullscreen -- create new
612
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
488 var $buttonsDiv = $('<div class="buttons"></div>');
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
489 $elem.append($buttonsDiv);
618
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
490 var actionNames = settings[actionGroup];
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
491 for (var i = 0; i < actionNames.length; i++) {
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
492 var actionName = actionNames[i];
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
493 var actionSettings = settings.actions[actionName];
612
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
494 // construct the button html
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
495 var $button = $('<div class="button"></div>');
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
496 var $a = $('<a/>');
614
0bd19b6cede4 highlight hovered buttons
hertzhaft
parents: 613
diff changeset
497 var $img = $('<img class="button"/>');
612
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
498 $buttonsDiv.append($button);
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
499 $button.append($a);
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
500 $a.append($img);
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
501 // add attributes and bindings
618
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
502 $button.attr('title', actionSettings.tooltip);
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
503 $button.addClass('button-' + actionName);
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
504 // create handler for the buttons
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
505 $a.bind('click', (function () {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
506 // we create a new closure to capture the value of method
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
507 var method = actionSettings.onclick;
619
a473998de5f8 'about' window has its own event handler
hertzhaft
parents: 618
diff changeset
508 if ($.isArray(method)) {
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
509 // the handler function calls digilib with method and parameters
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
510 return function () {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
511 console.debug('click method=', method);
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
512 $elem.digilib.apply($elem, method);
619
a473998de5f8 'about' window has its own event handler
hertzhaft
parents: 618
diff changeset
513 };
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
514 } else {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
515 // the handler function calls digilib with method
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
516 return function () {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
517 console.debug('click method=', method);
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
518 $elem.digilib(method);
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
519 };
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
520 }
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
521 })());
618
09167ef1512e some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 617
diff changeset
522 $img.attr('src', settings.buttonsImagePath + actionSettings.img);
611
1b6202aba26e work on button creation
robcast
parents: 610
diff changeset
523 };
1b6202aba26e work on button creation
robcast
parents: 610
diff changeset
524 }
612
fb94f1b74d59 bind data and actions to buttons
hertzhaft
parents: 611
diff changeset
525 return $buttonsDiv;
610
cd9f657d49fa code for generating the buttons
hertzhaft
parents: 609
diff changeset
526 };
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
527
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
528 // creates HTML structure for the bird's eye view in elem
628
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
529 var setupBirdviewDiv = function (data) {
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
530 var $elem = data.target;
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
531 var settings = data.settings;
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
532 // use only the relevant parameters
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
533 var keys = ['fn','pn','dw','dh'];
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
534 var birdDimensions = {
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
535 'dw' : settings.birdMaxX,
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
536 'dh' : settings.birdMaxY
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
537 };
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
538 var birdSettings = $.extend({}, settings, birdDimensions);
628
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
539 var birdUrl = settings.scalerBaseUrl + '?' + getParamString(birdSettings, keys);
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
540 // the bird's eye div
625
5f3564a21a9c small merge and fix
robcast
parents: 619 620
diff changeset
541 var $birdviewDiv = $('<div class="birdview" style="display:none"/>');
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
542 // the detail indicator frame
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
543 var $birdzoomDiv = $('<div class="birdzoom"/>');
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
544 // the small image
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
545 var $birdImg = $('<img class="birdimg"/>');
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
546 $elem.append($birdviewDiv);
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
547 $birdviewDiv.append($birdzoomDiv);
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
548 $birdviewDiv.append($birdImg);
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
549 $birdImg.attr('src', birdUrl);
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
550 data.$birdDiv = $birdviewDiv;
615
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
551 };
ec131e9699a6 setup bird's eye view div
hertzhaft
parents: 614
diff changeset
552
625
5f3564a21a9c small merge and fix
robcast
parents: 619 620
diff changeset
553 // creates HTML structure for the about view in elem
628
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
554 var setupAboutDiv = function (data) {
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
555 var $elem = data.target;
1f077f8afc5e changed methods to pass "data" around instead of "settings"
robcast
parents: 627
diff changeset
556 var settings = data.settings;
625
5f3564a21a9c small merge and fix
robcast
parents: 619 620
diff changeset
557 var $aboutDiv = $('<div class="about" style="display:none"/>');
616
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
558 var $header = $('<p>Digilib Graphic Viewer</p>');
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
559 var $link = $('<a/>');
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
560 var $logo = $('<img class="logo" title="digilib"/>');
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
561 var $content = $('<p/>');
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
562 $elem.append($aboutDiv);
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
563 $aboutDiv.append($header);
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
564 $aboutDiv.append($link);
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
565 $aboutDiv.append($content);
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
566 $link.append($logo);
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
567 $logo.attr('src', settings.logoUrl);
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
568 $link.attr('href', settings.homeUrl);
616
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
569 $content.text('Version: ' + settings.version);
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
570 // click hides
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
571 $aboutDiv.bind('click', function () { showDiv(settings.isAboutDivVisible, $aboutDiv, 0); });
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
572 data.$aboutDiv = $aboutDiv;
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
573 };
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
574
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
575 // shows some window e.g. 'about' (toggle visibility if show is null)
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
576 var showDiv = function (isVisible, $div, show) {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
577 if (typeof(show) !== 'number') {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
578 // toggle visibility
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
579 isVisible = !isVisible;
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
580 } else {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
581 // set visibility
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
582 isVisible = show;
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
583 }
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
584 if (isVisible) {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
585 $div.fadeIn();
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
586 } else {
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
587 $div.fadeOut();
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
588 }
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
589 return isVisible;
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
590 };
616
55e06ebb879f setup the 'about' window
hertzhaft
parents: 615
diff changeset
591
613
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
592 // returns function for load event of scaler img
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
593 var scalerImgLoadedHandler = function (data) {
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
594 var settings = data.settings;
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
595 var $elem = data.target;
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
596 var $img = data.$img;
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
597
633
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
598 return function () {
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
599 console.debug("img loaded! this=", this, " data=", data);
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
600 var area = settings.zoomArea;
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
601 // create Transform from current area and picsize
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
602 var picpos = $img.offset();
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
603 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height());
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
604 var trafo = geom.transform();
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
605 // subtract area offset and size
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
606 trafo.concat(trafo.getTranslation(geom.position(area.x, area.y)));
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
607 trafo.concat(trafo.getScale(geom.size(1/area.width, 1/area.height)));
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
608 // scale to screen size
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
609 trafo.concat(trafo.getScale(picrect));
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
610 trafo.concat(trafo.getTranslation(picrect));
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
611 data.imgTrafo = trafo;
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
612 // display marks
633
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
613 renderMarks(data);
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
614 // show birds eye view
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
615 //showDiv(settings.isBirdDivVisible);
627
c2566e470569 scalerImgLoaded sets up img trafo
robcast
parents: 626
diff changeset
616 //digilib.showArrows(); // show arrow overlays for zoom navigation
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
617 // done -- hide about div
635
7293a42f44f5 changed button onclick binding to use closure
robcast
parents: 634
diff changeset
618 settings.isAboutDivVisible = showDiv(null, data.$aboutDiv, 0);
613
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
619 };
53ee659e2d00 keeping img tag for embedded mode seems to work now
robcast
parents: 612
diff changeset
620 };
633
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
621
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
622 // place marks on the image
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
623 var renderMarks = function (data) {
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
624 var $elem = data.target;
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
625 var marks = data.settings.marks;
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
626 for (var i = 0; i < marks.length; i++) {
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
627 var mark = marks[i];
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
628 if (data.settings.zoomArea.containsPosition(mark)) {
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
629 var mpos = data.imgTrafo.transform(mark);
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
630 // create mark
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
631 var html = '<div class="mark">'+(i+1)+'</div>';
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
632 var $mark = $(html);
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
633 $elem.append($mark);
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
634 $mark.offset({ left : mpos.x, top : mpos.y});
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
635 }
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
636 }
73357f3dec20 rendering marks works now
robcast
parents: 631
diff changeset
637 };
631
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
638
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
639 // auxiliary function to crop senseless precision
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
640 var cropFloat = function (x) {
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
641 return parseInt(10000 * x) / 10000;
4f7b52b97738 more work on initialisation
robcast
parents: 629
diff changeset
642 };
636
7049579a0097 last and next page works now
robcast
parents: 635
diff changeset
643
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
644 // hook plugin into jquery
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
645 $.fn.digilib = function(method) {
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
646 if (methods[method]) {
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
647 // call method on this with the remaining arguments
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
648 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
649 } else if (typeof(method) === 'object' || !method) {
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
650 // call init on this
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
651 return methods.init.apply(this, arguments);
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
652 } else {
634
34ee220a664b trying showAboutDivFn...
robcast
parents: 633
diff changeset
653 $.error( 'Method ' + method + ' does not exist on jQuery.digilib' );
605
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
654 }
aee94e4a8c48 next version zero of jquery.digilib
robcast
parents: 604
diff changeset
655 };
604
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
656
3a2942d2d5cd version zero of jquery.digilib
robcast
parents:
diff changeset
657 })(jQuery);