annotate client/digitallibrary/jquery/jquery.digilib.js @ 644:bffc7d8c3641 jquery

renamed 'actions' to 'buttons' and 'methods' to 'actions' actionGroups now buttonGroups all functions in actions automatically get 'data' as first argument
author robcast
date Thu, 20 Jan 2011 19:37:19 +0100
parents abf4c8db18c8
children ce5c61b891f6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
1 /*
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
2 * digilib jQuery plugin
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
3 *
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
4 */
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
5
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
6 // fallback for console.log calls
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
7 if (typeof(console) === 'undefined') {
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
8 var console = {
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
9 log : function(){},
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
10 debug : function(){},
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
11 error : function(){}
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
12 };
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
13 }
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
14
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
15 (function($) {
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
16 var buttons = {
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
17 reference : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
18 onclick : "javascript:getRefWin()",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
19 tooltip : "get a reference URL",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
20 img : "reference.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
21 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
22 zoomin : {
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
23 onclick : ["zoomBy", 1.4],
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
24 tooltip : "zoom in",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
25 img : "zoom-in.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
26 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
27 zoomout : {
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
28 onclick : ["zoomBy", 0.7],
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
29 tooltip : "zoom out",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
30 img : "zoom-out.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
31 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
32 zoomarea : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
33 onclick : "javascript:zoomArea()",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
34 tooltip : "zoom area",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
35 img : "zoom-area.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
36 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
37 zoomfull : {
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
38 onclick : "zoomFull",
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
39 tooltip : "view the whole image",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
40 img : "zoom-full.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
41 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
42 pagewidth : {
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
43 onclick : ["zoomFull", "width"],
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
44 tooltip : "page width",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
45 img : "pagewidth.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
46 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
47 back : {
616
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
48 onclick : ["gotoPage", "-1"],
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
49 tooltip : "goto previous image",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
50 img : "back.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
51 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
52 fwd : {
616
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
53 onclick : ["gotoPage", "+1"],
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
54 tooltip : "goto next image",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
55 img : "fwd.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
56 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
57 page : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
58 onclick : "javascript:gotoPageWin()",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
59 tooltip : "specify image",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
60 img : "page.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
61 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
62 bird : {
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
63 onclick : "showBirdDiv",
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
64 tooltip : "show bird's eye view",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
65 img : "birds-eye.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
66 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
67 help : {
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
68 onclick : "showAboutDiv",
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
69 tooltip : "about Digilib",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
70 img : "help.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
71 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
72 reset : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
73 onclick : "javascript:resetImage()",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
74 tooltip : "reset image",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
75 img : "reset.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
76 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
77 mark : {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
78 onclick : "setMark",
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
79 tooltip : "set a mark",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
80 img : "mark.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
81 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
82 delmark : {
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
83 onclick : "removeMark",
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
84 tooltip : "delete the last mark",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
85 img : "delmark.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
86 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
87 hmir : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
88 onclick : "javascript:mirror('h')",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
89 tooltip : "mirror horizontally",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
90 img : "mirror-horizontal.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
91 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
92 vmir : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
93 onclick : "javascript:mirror('v')",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
94 tooltip : "mirror vertically",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
95 img : "mirror-vertical.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
96 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
97 rot : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
98 onclick : "javascript:setParamWin('rot', 'Rotate (0..360) clockwise')",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
99 tooltip : "rotate image",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
100 img : "rotate.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
101 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
102 brgt : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
103 onclick : "javascript:setParamWin('brgt', 'Brightness (-255..255)')",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
104 tooltip : "set brightness",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
105 img : "brightness.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
106 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
107 cont : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
108 onclick : "javascript:setParamWin('cont', 'Contrast (0..8)')",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
109 tooltip : "set contrast",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
110 img : "contrast.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
111 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
112 rgb : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
113 onclick : "javascript:setParamWin('rgb', '...')",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
114 tooltip : "set rgb values",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
115 img : "rgb.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
116 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
117 quality : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
118 onclick : "javascript:setQualityWin('Quality (0..2)')",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
119 tooltip : "set image quality",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
120 img : "quality.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
121 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
122 size : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
123 onclick : "javascript:toggleSizeMenu()",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
124 tooltip : "set page size",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
125 img : "size.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
126 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
127 calibrationx : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
128 onclick : "javascript:calibrate('x')",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
129 tooltip : "calibrate screen x-ratio",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
130 img : "calibration-x.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
131 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
132 scale : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
133 onclick : "javascript:toggleScaleMenu()",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
134 tooltip : "change image scale",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
135 img : "original-size.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
136 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
137 options : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
138 onclick : "javascript:toggleOptionDiv()",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
139 tooltip : "hide options",
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
140 img : "options.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
141 },
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
142 SEP : {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
143 img : "sep.png"
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
144 }
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
145 };
610
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
146
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
147 var defaults = {
610
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
148 // the root digilib element, for easy retrieval
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
149 'digilibRoot' : null,
609
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
150 // version of this script
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
151 'version' : 'jquery.digilib.js 0.9',
609
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
152 // logo url
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
153 'logoUrl' : '../img/digilib-logo-text1.png',
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
154 // homepage url (behind logo)
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
155 'homeUrl' : 'http://digilib.berlios.de',
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
156 // base URL to Scaler servlet
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
157 'scalerBaseUrl' : 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler',
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
158 // list of Scaler parameters
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
159 'scalerParamNames' : ['fn','pn','dw','dh','ww','wh','wx','wy','ws','mo',
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
160 'rot','cont','brgt','rgbm','rgba','ddpi','ddpix','ddpiy'],
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
161 // Scaler parameter defaults
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
162 'pn' : 1,
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
163 'ww' : 1.0,
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
164 'wh' : 1.0,
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
165 'wx' : 0.0,
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
166 'wy' : 0.0,
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
167 'ws' : 1.0,
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
168 'mo' : '',
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
169 'rot' : 0,
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
170 'cont' : 0,
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
171 'brgt' : 0,
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
172 'rgbm' : '0/0/0',
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
173 'rgba' : '0/0/0',
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
174 'ddpi' : null,
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
175 'ddpix' : null,
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
176 'ddpiy' : null,
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
177 // list of digilib parameters
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
178 'digilibParamNames' : ['fn','pn','ww','wh','wx','wy','ws','mo','rot','cont','brgt','rgbm','rgba','mk','clop'],
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
179 // digilib parameter defaults
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
180 'mk' : '',
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
181 'clop' : '',
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
182 // mode of operation:
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
183 // fullscreen = take parameters from page URL, keep state in page URL
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
184 // embedded = take parameters from Javascript options, keep state inside object
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
185 'interactionMode' : 'fullscreen',
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
186 // buttons
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
187 'buttons' : buttons,
605
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
188 // path to button images (must end with a slash)
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
189 'buttonsImagePath' : '../greyskin/',
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
190 // buttons groups
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
191 //'buttonsStandard' : ["reference","zoomin","zoomout","zoomarea","zoomfull","pagewidth","back","fwd","page","bird","SEP","help","reset","options"],
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
192 'buttonsStandard' : ["reference","zoomin","zoomout","zoomarea","zoomfull","pagewidth","mark","delmark","back","fwd","page","bird","SEP","help","reset","options"],
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
193 'buttonsSpecial' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","size","calibrationx","scale","SEP","options"],
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
194 'buttonsCustom' : [],
609
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
195 // is birdView shown?
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
196 'isBirdDivVisible' : false,
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
197 // dimensions of bird's eye window
632
42479ca10ef9 setupBirdDiv called early if enabled in options
robcast
parents: 631
diff changeset
198 'birdDivOptions' : {'dw' : 200, 'dh' : 200},
609
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
199 // is the "about" window shown?
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
200 'isAboutDivVisible' : false
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
201
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
202 };
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
203
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
204 // affine geometry classes
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
205 var geom = dlGeometry();
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
206
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
207 var MAX_ZOOMAREA = geom.rectangle(0, 0, 1, 1);
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
208
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
209 var actions = {
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
210 // digilib initialization
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
211 init : function(options) {
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
212 // settings for this digilib instance are merged from defaults and options
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
213 var settings = $.extend({}, defaults, options);
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
214 var isFullscreen = settings.interactionMode === 'fullscreen';
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
215 var queryParams = {};
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
216 if (isFullscreen) {
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
217 queryParams = parseQueryParams();
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
218 }
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
219 return this.each(function() {
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
220 var $elem = $(this);
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
221 var data = $elem.data('digilib');
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
222 var elemSettings;
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
223 // if the plugin hasn't been initialized yet
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
224 if (!data) {
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
225 // merge query parameters
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
226 if (isFullscreen) {
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
227 elemSettings = $.extend({}, settings, queryParams);
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
228 } else {
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
229 elemSettings = $.extend({}, settings, parseImgParams($elem));
627
adb852652441 trying showAboutDivFn...
robcast
parents: 626
diff changeset
230 }
610
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
231 // store $(this) element in the settings
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
232 data = {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
233 $elem : $elem,
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
234 settings : elemSettings,
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
235 queryParams : queryParams
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
236 };
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
237 // store in data element
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
238 $elem.data('digilib', data);
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
239 }
626
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
240 unpackParams(data);
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
241 // create HTML structure
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
242 setupScalerDiv(data);
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
243 setupButtons(data, 'buttonsStandard');
632
42479ca10ef9 setupBirdDiv called early if enabled in options
robcast
parents: 631
diff changeset
244 // bird's eye view creation
42479ca10ef9 setupBirdDiv called early if enabled in options
robcast
parents: 631
diff changeset
245 if (settings.isBirdDivVisible) {
634
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
246 setupBirdDiv(data);
632
42479ca10ef9 setupBirdDiv called early if enabled in options
robcast
parents: 631
diff changeset
247 }
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
248 // about window creation - TODO: could be deferred? restrict to only one item?
621
7f97716b901c changed methods to pass "data" around instead of "settings"
robcast
parents: 620
diff changeset
249 setupAboutDiv(data);
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
250 });
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
251 },
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
252
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
253 // clean up digilib
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
254 destroy : function(data) {
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
255 return this.each(function(){
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
256 var $elem = $(this);
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
257 // Namespacing FTW
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
258 $(window).unbind('.digilib'); // unbinds all digilibs(?)
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
259 data.digilib.remove();
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
260 $elem.removeData('digilib');
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
261 });
610
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
262 },
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
263
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
264 // show or hide the 'about' window
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
265 showAboutDiv : function(data, show) {
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
266 data.settings.isAboutDivVisible = showDiv(data.settings.isAboutDivVisible, data.$aboutDiv, show);
610
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
267 },
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
268
2f2cd8c44a1c toggle view event handlers for bird's eye and 'about windows
hertzhaft
parents: 609
diff changeset
269 // event handler: toggles the visibility of the bird's eye window
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
270 showBirdDiv : function (data, show) {
631
95c33992981a setupBirdDiv deferred until used
robcast
parents: 630
diff changeset
271 if (data.$birdDiv == null) {
95c33992981a setupBirdDiv deferred until used
robcast
parents: 630
diff changeset
272 // no bird div -> create
95c33992981a setupBirdDiv deferred until used
robcast
parents: 630
diff changeset
273 setupBirdDiv(data);
95c33992981a setupBirdDiv deferred until used
robcast
parents: 630
diff changeset
274 }
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
275 data.settings.isBirdDivVisible = showDiv(data.settings.isBirdDivVisible, data.$birdDiv, show);
616
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
276 },
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
277
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
278 // goto given page nr (+/-: relative)
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
279 gotoPage : function (data, pageNr) {
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
280 var settings = data.settings;
616
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
281 var oldpn = settings.pn;
617
8b1e255b617c small retouches
hertzhaft
parents: 616
diff changeset
282 var pn = setNumValue(settings, "pn", pageNr);
8b1e255b617c small retouches
hertzhaft
parents: 616
diff changeset
283 if (pn == null) return false; // nothing happened
616
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
284 if (pn < 1) {
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
285 alert("no such page (page number too low)");
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
286 settings.pn = oldpn;
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
287 return false;
627
adb852652441 trying showAboutDivFn...
robcast
parents: 626
diff changeset
288 }
616
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
289 if (settings.pt) {
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
290 if (pn > settings.pt) {
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
291 alert("no such page (page number too high)");
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
292 settings.pn = oldpn;
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
293 return false;
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
294 }
627
adb852652441 trying showAboutDivFn...
robcast
parents: 626
diff changeset
295 }
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
296 // reset mk and others(?)
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
297 data.marks = [];
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
298 data.zoomArea = MAX_ZOOMAREA;
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
299 // then reload
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
300 redisplay(data);
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
301 },
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
302
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
303 // zoom by a given factor
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
304 zoomBy : function (data, factor) {
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
305 zoomBy(data, factor);
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
306 },
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
307
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
308 // zoom out to full page
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
309 zoomFull : function (data, mode) {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
310 data.zoomArea = MAX_ZOOMAREA;
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
311 if (mode === 'width') {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
312 data.dlOpts.fitwidth = 1;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
313 delete data.dlOpts.fitheight;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
314 } else if (mode === 'height') {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
315 data.dlOpts.fitheight = 1;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
316 delete data.dlOpts.fitwidth;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
317 } else {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
318 delete data.dlOpts.fitwidth;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
319 delete data.dlOpts.fitheight;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
320 }
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
321 redisplay(data);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
322 },
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
323
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
324 // set a mark by clicking (or giving a position)
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
325 setMark : function (data, mpos) {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
326 if (mpos == null) {
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
327 // interactive
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
328 setMark(data);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
329 } else {
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
330 // use position
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
331 data.marks.push(pos);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
332 redisplay(data);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
333 }
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
334 },
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
335
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
336 // remove the last mark
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
337 removeMark : function (data) {
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
338 data.marks.pop();
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
339 redisplay(data);
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
340 }
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
341
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
342 };
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
343
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
344 // returns parameters from page url
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
345 var parseQueryParams = function() {
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
346 return parseQueryString(window.location.search.slice(1));
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
347 };
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
348
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
349 // returns parameters from embedded img-element
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
350 var parseImgParams = function($elem) {
606
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
351 var src = $elem.find('img').first().attr('src');
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
352 if (!src) {
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
353 return null;
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
354 }
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
355 var pos = src.indexOf('?');
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
356 var query = (pos < 0) ? '' : src.substring(pos + 1);
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
357 var scalerUrl = src.substring(0, pos);
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
358 var params = parseQueryString(query);
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
359 params.scalerBaseUrl = scalerUrl;
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
360 return params;
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
361 };
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
362
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
363 // parses query parameter string into parameter object
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
364 var parseQueryString = function(query) {
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
365 var pairs = query.split("&");
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
366 var params = {};
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
367 //var keys = [];
600
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
368 for (var i = 0; i < pairs.length; i++) {
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
369 var pair = pairs[i].split("=");
9da729b90004 parameter parsing
hertzhaft
parents: 598
diff changeset
370 if (pair.length === 2) {
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
371 params[pair[0]] = pair[1];
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
372 //keys.push(pair[0]);
627
adb852652441 trying showAboutDivFn...
robcast
parents: 626
diff changeset
373 }
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
374 }
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
375 return params;
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
376 };
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
377
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
378 // returns a query string from key names from a parameter hash (ignoring if the same value is in defaults)
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
379 var getParamString = function (settings, keys, defaults) {
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
380 var paramString = '';
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
381 var nx = false;
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
382 for (i = 0; i < keys.length; ++i) {
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
383 var key = keys[i];
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
384 if ((settings[key] != null) && ((defaults == null) || (settings[key] !== defaults[key]))) {
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
385 // first param gets no '&'
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
386 if (nx) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
387 paramString += '&';
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
388 } else {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
389 nx = true;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
390 }
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
391 // add parm=val
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
392 paramString += key + '=' + settings[key];
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
393 }
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
394 }
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
395 return paramString;
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
396 };
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
397
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
398 // returns URL and query string for Scaler
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
399 var getScalerUrl = function (data) {
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
400 var settings = data.settings;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
401 var keys = settings.scalerParamNames;
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
402 var queryString = getParamString(settings, keys, defaults);
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
403 var url = settings.scalerBaseUrl + '?' + queryString;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
404 return url;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
405 };
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
406
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
407 // returns URL and query string for current digilib
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
408 var getDigilibUrl = function (data) {
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
409 packParams(data);
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
410 var settings = data.settings;
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
411 var queryString = getParamString(settings, settings.digilibParamNames, defaults);
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
412 var url = window.location.toString();
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
413 var pos = url.indexOf('?');
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
414 var baseUrl = url.substring(0, pos);
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
415 var newurl = baseUrl + '?' + queryString;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
416 return newurl;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
417 };
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
418
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
419 // processes some parameters into objects and stuff
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
420 var unpackParams = function (data) {
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
421 var settings = data.settings;
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
422 // zoom area
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
423 var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh);
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
424 data.zoomArea = zoomArea;
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
425 // marks
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
426 var marks = [];
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
427 if (settings.mk) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
428 var mk = settings.mk;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
429 if (mk.indexOf(";") >= 0) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
430 var pa = mk.split(";"); // old format with ";"
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
431 } else {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
432 var pa = mk.split(","); // new format
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
433 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
434 for (var i = 0; i < pa.length ; i++) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
435 var pos = pa[i].split("/");
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
436 if (pos.length > 1) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
437 marks.push(geom.position(pos[0], pos[1]));
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
438 }
626
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
439 }
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
440 }
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
441 data.marks = marks;
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
442 // mo (Scaler flags)
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
443 var flags = {};
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
444 if (settings.mo) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
445 var pa = settings.mo.split(",");
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
446 for (var i = 0; i < pa.length ; i++) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
447 flags[pa[i]] = pa[i];
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
448 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
449 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
450 data.scalerFlags = flags;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
451 // clop (digilib options)
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
452 var opts = {};
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
453 if (settings.clop) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
454 var pa = settings.clop.split(",");
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
455 for (var i = 0; i < pa.length ; i++) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
456 opts[pa[i]] = pa[i];
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
457 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
458 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
459 data.dlOpts = opts;
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
460 };
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
461
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
462 // put objects back into parameters
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
463 var packParams = function (data) {
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
464 var settings = data.settings;
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
465 // zoom area
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
466 if (data.zoomArea) {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
467 settings.wx = cropFloat(data.zoomArea.x);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
468 settings.wy = cropFloat(data.zoomArea.y);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
469 settings.ww = cropFloat(data.zoomArea.width);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
470 settings.wh = cropFloat(data.zoomArea.height);
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
471 }
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
472 // marks
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
473 if (data.marks) {
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
474 settings.mk = '';
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
475 for (var i = 0; i < data.marks.length; i++) {
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
476 if (i) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
477 settings.mk += ',';
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
478 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
479 settings.mk += cropFloat(data.marks[i].x).toString() + '/' + cropFloat(data.marks[i].y).toString();
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
480 }
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
481 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
482 // Scaler flags
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
483 if (data.scalerFlags) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
484 var mo = '';
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
485 for (var f in data.scalerFlags) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
486 if (mo) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
487 mo += ',';
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
488 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
489 mo += f;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
490 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
491 settings.mo = mo;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
492 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
493 // digilib options
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
494 if (data.dlOpts) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
495 var clop = '';
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
496 for (var o in data.dlOpts) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
497 if (clop) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
498 clop += ',';
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
499 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
500 clop += o;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
501 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
502 settings.clop = clop;
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
503 }
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
504 };
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
505
602
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
506 // returns maximum size for scaler img in fullscreen mode
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
507 var getFullscreenImgSize = function($elem) {
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
508 var winH = $(window).height();
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
509 var winW = $(window).width();
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
510 // TODO: account for borders?
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
511 return geom.size(winW, winH);
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
512 };
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
513
615
ca1cdfe7b064 factored out display function
hertzhaft
parents: 614
diff changeset
514 // (re)load the img from a new scaler URL
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
515 var redisplay = function (data) {
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
516 var settings = data.settings;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
517 if (settings.interactionMode === 'fullscreen') {
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
518 // update location.href (browser URL) in fullscreen mode
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
519 var url = getDigilibUrl(data);
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
520 var history = window.history;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
521 if (typeof(history.pushState) === 'function') {
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
522 console.debug("we could modify history, but we don't...");
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
523 }
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
524 window.location = url;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
525 } else {
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
526 // embedded mode -- just change img src
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
527 var url = getScalerUrl(data);
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
528 data.$img.attr('src', url);
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
529 }
615
ca1cdfe7b064 factored out display function
hertzhaft
parents: 614
diff changeset
530 };
ca1cdfe7b064 factored out display function
hertzhaft
parents: 614
diff changeset
531
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
532 // creates HTML structure for digilib in elem
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
533 var setupScalerDiv = function (data) {
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
534 var settings = data.settings;
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
535 var $elem = data.$elem;
616
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
536 var $img;
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
537 if (settings.interactionMode === 'fullscreen') {
602
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
538 // fullscreen
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
539 var imgSize = getFullscreenImgSize($elem);
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
540 // fitwidth/height omits destination height/width
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
541 if (data.dlOpts['fitheight'] == null) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
542 settings.dw = imgSize.width;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
543 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
544 if (data.dlOpts['fitwidth'] == null) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
545 settings.dh = imgSize.height;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
546 }
606
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
547 $img = $('<img/>');
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
548 var scalerUrl = getScalerUrl(data);
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
549 $img.attr('src', scalerUrl);
602
c6f62be59683 start work on scaler call
robcast
parents: 601
diff changeset
550 } else {
606
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
551 // embedded mode -- try to keep img tag
616
89f53fb8fd13 first attempt at switching images by page number
hertzhaft
parents: 615
diff changeset
552 $img = $elem.find('img');
606
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
553 if ($img.length > 0) {
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
554 console.debug("img detach:",$img);
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
555 $img.detach();
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
556 } else {
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
557 $img = $('<img/>');
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
558 var scalerUrl = getScalerUrl(data);
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
559 $img.attr('src', scalerUrl);
606
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
560 }
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
561 }
606
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
562 // create new html
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
563 $elem.empty(); // TODO: should we keep stuff for customization?
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
564 var $scaler = $('<div class="scaler"/>');
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
565 $elem.append($scaler);
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
566 $scaler.append($img);
615
ca1cdfe7b064 factored out display function
hertzhaft
parents: 614
diff changeset
567 $img.addClass('pic');
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
568 data.$scaler = $scaler;
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
569 data.$img = $img;
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
570 $img.load(scalerImgLoadedHandler(data));
601
4da7592149e7 start work on scaler call
robcast
parents: 600
diff changeset
571 };
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
572
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
573 // creates HTML structure for buttons in elem
621
7f97716b901c changed methods to pass "data" around instead of "settings"
robcast
parents: 620
diff changeset
574 var setupButtons = function (data, actionGroup) {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
575 var $elem = data.$elem;
621
7f97716b901c changed methods to pass "data" around instead of "settings"
robcast
parents: 620
diff changeset
576 var settings = data.settings;
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
577 if (settings.interactionMode === 'fullscreen') {
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
578 // fullscreen -- create new
605
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
579 var $buttonsDiv = $('<div class="buttons"></div>');
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
580 $elem.append($buttonsDiv);
611
d332c61da1b0 some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 610
diff changeset
581 var actionNames = settings[actionGroup];
d332c61da1b0 some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 610
diff changeset
582 for (var i = 0; i < actionNames.length; i++) {
d332c61da1b0 some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 610
diff changeset
583 var actionName = actionNames[i];
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
584 var buttonSettings = settings.buttons[actionName];
605
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
585 // construct the button html
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
586 var $button = $('<div class="button"></div>');
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
587 var $a = $('<a/>');
607
dc6b2e7f3621 highlight hovered buttons
hertzhaft
parents: 606
diff changeset
588 var $img = $('<img class="button"/>');
605
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
589 $buttonsDiv.append($button);
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
590 $button.append($a);
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
591 $a.append($img);
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
592 // add attributes and bindings
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
593 $button.attr('title', buttonSettings.tooltip);
611
d332c61da1b0 some refactoring, onclick handlers now work with arguments
hertzhaft
parents: 610
diff changeset
594 $button.addClass('button-' + actionName);
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
595 // create handler for the buttons
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
596 $a.bind('click.digilib', (function () {
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
597 // we create a new closure to capture the value of action
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
598 var action = buttonSettings.onclick;
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
599 if ($.isArray(action)) {
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
600 // the handler function calls digilib with action and parameters
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
601 return function (evt) {
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
602 console.debug('click action=', action, ' evt=', evt);
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
603 $elem.digilib.apply($elem, action);
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
604 return false;
612
97082d0c0192 'about' window has its own event handler
hertzhaft
parents: 611
diff changeset
605 };
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
606 } else {
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
607 // the handler function calls digilib with action
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
608 return function (evt) {
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
609 console.debug('click action=', action, ' evt=', evt);
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
610 $elem.digilib(action);
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
611 return false;
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
612 };
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
613 }
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
614 })());
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
615 $img.attr('src', settings.buttonsImagePath + buttonSettings.img);
630
89d9ac6199a3 small fixes
robcast
parents: 629
diff changeset
616 }
604
13c8b1ad99d4 work on button creation
robcast
parents: 603
diff changeset
617 }
605
959bf7c3d684 bind data and actions to buttons
hertzhaft
parents: 604
diff changeset
618 return $buttonsDiv;
603
e92511f4dddc code for generating the buttons
hertzhaft
parents: 602
diff changeset
619 };
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
620
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
621 // creates HTML structure for the bird's eye view in elem
631
95c33992981a setupBirdDiv deferred until used
robcast
parents: 630
diff changeset
622 var setupBirdDiv = function (data) {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
623 var $elem = data.$elem;
621
7f97716b901c changed methods to pass "data" around instead of "settings"
robcast
parents: 620
diff changeset
624 var settings = data.settings;
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
625 // use only the relevant parameters
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
626 var keys = ['fn','pn','dw','dh'];
632
42479ca10ef9 setupBirdDiv called early if enabled in options
robcast
parents: 631
diff changeset
627 var birdSettings = $.extend({}, settings, settings.birdDivOptions);
621
7f97716b901c changed methods to pass "data" around instead of "settings"
robcast
parents: 620
diff changeset
628 var birdUrl = settings.scalerBaseUrl + '?' + getParamString(birdSettings, keys);
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
629 // the bird's eye div
618
8bdc9659ecfa small merge and fix
robcast
parents: 612 613
diff changeset
630 var $birdviewDiv = $('<div class="birdview" style="display:none"/>');
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
631 // the detail indicator frame
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
632 var $birdzoomDiv = $('<div class="birdzoom"/>');
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
633 // the small image
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
634 var $birdImg = $('<img class="birdimg"/>');
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
635 $elem.append($birdviewDiv);
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
636 $birdviewDiv.append($birdzoomDiv);
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
637 $birdviewDiv.append($birdImg);
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
638 $birdImg.attr('src', birdUrl);
633
f58bf103c3af enabling bird's eye view in options now even works...
robcast
parents: 632
diff changeset
639 if (data.settings.isBirdDivVisible) {
f58bf103c3af enabling bird's eye view in options now even works...
robcast
parents: 632
diff changeset
640 $birdviewDiv.fadeIn();
f58bf103c3af enabling bird's eye view in options now even works...
robcast
parents: 632
diff changeset
641 }
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
642 data.$birdDiv = $birdviewDiv;
633
f58bf103c3af enabling bird's eye view in options now even works...
robcast
parents: 632
diff changeset
643 };
608
5de82bb5022d setup bird's eye view div
hertzhaft
parents: 607
diff changeset
644
618
8bdc9659ecfa small merge and fix
robcast
parents: 612 613
diff changeset
645 // creates HTML structure for the about view in elem
621
7f97716b901c changed methods to pass "data" around instead of "settings"
robcast
parents: 620
diff changeset
646 var setupAboutDiv = function (data) {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
647 var $elem = data.$elem;
621
7f97716b901c changed methods to pass "data" around instead of "settings"
robcast
parents: 620
diff changeset
648 var settings = data.settings;
618
8bdc9659ecfa small merge and fix
robcast
parents: 612 613
diff changeset
649 var $aboutDiv = $('<div class="about" style="display:none"/>');
609
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
650 var $header = $('<p>Digilib Graphic Viewer</p>');
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
651 var $link = $('<a/>');
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
652 var $logo = $('<img class="logo" title="digilib"/>');
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
653 var $content = $('<p/>');
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
654 $elem.append($aboutDiv);
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
655 $aboutDiv.append($header);
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
656 $aboutDiv.append($link);
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
657 $aboutDiv.append($content);
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
658 $link.append($logo);
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
659 $logo.attr('src', settings.logoUrl);
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
660 $link.attr('href', settings.homeUrl);
609
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
661 $content.text('Version: ' + settings.version);
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
662 // click hides
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
663 $aboutDiv.bind('click.digilib', function () {
639
aa54642d666d even smaller improvement
hertzhaft
parents: 638
diff changeset
664 settings.isAboutDivVisible = showDiv(settings.isAboutDivVisible, $aboutDiv, 0);
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
665 return false;
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
666 });
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
667 data.$aboutDiv = $aboutDiv;
627
adb852652441 trying showAboutDivFn...
robcast
parents: 626
diff changeset
668 };
adb852652441 trying showAboutDivFn...
robcast
parents: 626
diff changeset
669
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
670 // shows some window e.g. 'about' (toggle visibility if show is null)
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
671 var showDiv = function (isVisible, $div, show) {
638
904a722c2149 small improvement
robcast
parents: 637
diff changeset
672 if (show == null) {
628
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
673 // toggle visibility
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
674 isVisible = !isVisible;
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
675 } else {
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
676 // set visibility
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
677 isVisible = show;
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
678 }
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
679 if (isVisible) {
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
680 $div.fadeIn();
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
681 } else {
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
682 $div.fadeOut();
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
683 }
a78491a53c2a changed button onclick binding to use closure
robcast
parents: 627
diff changeset
684 return isVisible;
627
adb852652441 trying showAboutDivFn...
robcast
parents: 626
diff changeset
685 };
609
e18dedef32fb setup the 'about' window
hertzhaft
parents: 608
diff changeset
686
606
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
687 // returns function for load event of scaler img
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
688 var scalerImgLoadedHandler = function (data) {
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
689 var settings = data.settings;
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
690 var $elem = data.$elem;
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
691 var $img = data.$img;
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
692
626
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
693 return function () {
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
694 console.debug("img loaded! this=", this, " data=", data);
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
695 var area = data.zoomArea;
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
696 // create Transform from current area and picsize
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
697 var picpos = $img.offset();
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
698 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height());
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
699 var trafo = geom.transform();
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
700 // subtract area offset and size
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
701 trafo.concat(trafo.getTranslation(geom.position(- area.x, - area.y)));
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
702 trafo.concat(trafo.getScale(geom.size(1/area.width, 1/area.height)));
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
703 // scale to screen size
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
704 trafo.concat(trafo.getScale(picrect));
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
705 trafo.concat(trafo.getTranslation(picrect));
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
706 data.imgTrafo = trafo;
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
707 // display marks
626
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
708 renderMarks(data);
620
b930fa64c684 scalerImgLoaded sets up img trafo
robcast
parents: 619
diff changeset
709 //digilib.showArrows(); // show arrow overlays for zoom navigation
634
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
710 // done -- hide about div ---
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
711 // --- why? This only leads to suprise effects when displayed programmatically
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
712 // settings.isAboutDivVisible = showDiv(null, data.$aboutDiv, 0);
606
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
713 };
d08d095430c3 keeping img tag for embedded mode seems to work now
robcast
parents: 605
diff changeset
714 };
626
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
715
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
716 // place marks on the image
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
717 var renderMarks = function (data) {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
718 var $elem = data.$elem;
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
719 var marks = data.marks;
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
720 // TODO: clear marks first(?)
626
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
721 for (var i = 0; i < marks.length; i++) {
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
722 var mark = marks[i];
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
723 if (data.zoomArea.containsPosition(mark)) {
626
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
724 var mpos = data.imgTrafo.transform(mark);
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
725 // create mark
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
726 var html = '<div class="mark">'+(i+1)+'</div>';
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
727 var $mark = $(html);
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
728 $elem.append($mark);
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
729 $mark.offset({ left : mpos.x, top : mpos.y});
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
730 }
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
731 }
e9493573e5d8 rendering marks works now
robcast
parents: 624
diff changeset
732 };
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
733
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
734 // zooms by the given factor
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
735 var zoomBy = function(data, factor) {
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
736 var area = data.zoomArea;
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
737 var newarea = area.copy();
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
738 // scale
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
739 newarea.width /= factor;
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
740 newarea.height /= factor;
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
741 // and recenter
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
742 newarea.x -= 0.5 * (newarea.width - area.width);
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
743 newarea.y -= 0.5 * (newarea.height - area.height);
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
744 newarea = MAX_ZOOMAREA.fit(newarea);
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
745 data.zoomArea = newarea;
637
71cc855e2e4b reload doesn't take list of changed parameters any more
robcast
parents: 636
diff changeset
746 redisplay(data);
636
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
747 };
687447a0e799 zoomin and -out works now
robcast
parents: 634
diff changeset
748
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
749 // add a mark where clicked
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
750 var setMark = function (data) {
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
751 var $scaler = data.$scaler;
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
752 console.debug("setmark");
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
753 // start event capturing
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
754 $scaler.one('click.digilib', function (evt) {
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
755 // event handler adding a new mark
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
756 console.debug("setmark.click evt=",evt);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
757 var mpos = geom.position(evt.pageX, evt.pageY);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
758 var pos = data.imgTrafo.invtransform(mpos);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
759 data.marks.push(pos);
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
760 redisplay(data);
642
a656e52d7c18 beter event handling for setMark...
robcast
parents: 641
diff changeset
761 return false; // do we even get here?
640
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
762 });
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
763 };
3f23600c96e5 set mark works now
robcast
parents: 638
diff changeset
764
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
765 // sets a key to a value (relative values with +/- if relative=true)
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
766 var setNumValue = function(settings, key, value) {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
767 if (isNumber(value)) return settings[key] = value;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
768 var sign = value.substring(0,1);
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
769 if (sign === '+' || sign === '-') {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
770 if (settings[key] == null) {
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
771 // this isn't perfect but still...
643
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
772 settings[key] = 0;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
773 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
774 settings[key] = parseFloat(settings[key]) + parseFloat(value);
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
775 } else {
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
776 settings[key] = value;
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
777 }
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
778 return settings[key];
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
779 };
abf4c8db18c8 zoom to page width works now
robcast
parents: 642
diff changeset
780
634
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
781 // auxiliary function (from Douglas Crockford, A.10)
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
782 var isNumber = function isNumber(value) {
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
783 return typeof value === 'number' && isFinite(value);
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
784 };
3223fabd53bc some small aboutdiv fixes
hertzhaft
parents: 633
diff changeset
785
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
786 // auxiliary function to crop senseless precision
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
787 var cropFloat = function (x) {
630
89d9ac6199a3 small fixes
robcast
parents: 629
diff changeset
788 return parseInt(10000 * x, 10) / 10000;
624
6b1b4d269967 more work on initialisation
robcast
parents: 622
diff changeset
789 };
629
6b24ad042d7b last and next page works now
robcast
parents: 628
diff changeset
790
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
791 // hook plugin into jquery
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
792 $.fn.digilib = function(action) {
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
793 if (actions[action]) {
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
794 // call action on this with the remaining arguments (inserting data as first argument)
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
795 var $elem = $(this);
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
796 var data = $elem.data('digilib');
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
797 var args = Array.prototype.slice.call(arguments, 1);
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
798 args.unshift(data);
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
799 return actions[action].apply(this, args);
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
800 } else if (typeof(action) === 'object' || !action) {
627
adb852652441 trying showAboutDivFn...
robcast
parents: 626
diff changeset
801 // call init on this
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
802 return actions.init.apply(this, arguments);
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
803 } else {
644
bffc7d8c3641 renamed 'actions' to 'buttons' and 'methods' to 'actions'
robcast
parents: 643
diff changeset
804 $.error( 'action ' + action + ' does not exist on jQuery.digilib' );
598
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
805 }
81723e7efe82 next version zero of jquery.digilib
robcast
parents: 597
diff changeset
806 };
597
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
807
33605dd3e9c6 version zero of jquery.digilib
robcast
parents:
diff changeset
808 })(jQuery);