source: main/trunk/model-cols-dev/peijones/transform/pages/about.xsl@ 24764

Last change on this file since 24764 was 24764, checked in by papitha, 13 years ago

Added Dual Link to Collage and Flip Photo.

File size: 9.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:java="http://xml.apache.org/xslt/java"
5 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
6 xmlns:gslib="http://www.greenstone.org/skinning"
7 extension-element-prefixes="java util"
8 exclude-result-prefixes="java util">
9
10 <!-- the page content -->
11 <xsl:template match="/page">
12
13 <!--Display the description text of the current collection,
14 and if some services are available then create a list
15 of links for each service within a <ul id="servicelist"> element.-->
16 <table><tbody>
17 <tr><td style="width:60%;"><gslib:collectionDescriptionTextAndServicesLinks/></td>
18 <td>
19
20 <xsl:variable name="httpPath"><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/></xsl:variable>
21 <script language="javascript" src="{$httpPath}/script/collage.js"><xsl:text> </xsl:text></script>
22
23<script language="javascript" type="text/javascript">
24<xsl:text disable-output-escaping="yes">
25
26 var Book_Image_Sources = new Array();
27 var Book_Image_Width=200;
28 var Book_Image_Height=280;
29 var Book_Border=true;
30 var Book_Border_Color="gray";
31 var Book_Speed=15;
32 var Book_NextPage_Delay=1500; //1 second=1000
33 var Book_Vertical_Turn=0;
34
35 var B_LI,B_MI,B_RI,B_TI,B_Angle=0,B_CrImg=6,B_MaxW,B_Direction=1;
36 var B_MSz,B_Stppd=false;B_Pre_Img=new Array();
37
38 function ImageBook()
39 {
40 if(document.getElementById)
41 {
42 for(i=0;i&lt;Book_Image_Sources.length;i+=1)
43 {
44 B_Pre_Img[i]=new Image();
45 B_Pre_Img[i].src=Book_Image_Sources[i];
46 }
47
48 Book_Div=document.getElementById("Book");
49 B_LI=document.createElement("img");Book_Div.appendChild(B_LI);
50 B_RI=document.createElement("img");Book_Div.appendChild(B_RI);
51 B_MI=document.createElement("img");Book_Div.appendChild(B_MI);
52
53 B_LI.style.position = B_MI.style.position = B_RI.style.position = "absolute";
54
55 B_LI.style.zIndex=B_RI.style.zIndex=0;B_MI.style.zIndex=1;
56
57 B_LI.style.top=(Book_Vertical_Turn?Book_Image_Height+1:-Book_Image_Height/3)+"px";
58 B_LI.style.left=0+"px";
59 B_MI.style.top=-Book_Image_Height/3+"px";
60 B_MI.style.left=(Book_Vertical_Turn?0:Book_Image_Width+1)+"px";
61 B_RI.style.top=-Book_Image_Height/3+"px";
62 B_RI.style.left=(Book_Vertical_Turn?0:Book_Image_Width+1)+"px";
63
64 B_LI.style.height=Book_Image_Height+"px";
65 B_MI.style.height=Book_Image_Height+"px";
66 B_RI.style.height=Book_Image_Height+"px";
67 B_LI.style.width=Book_Image_Width+"px";
68 B_MI.style.width=Book_Image_Width+"px";
69 B_RI.style.width=Book_Image_Width+"px";
70
71 if(Book_Border)
72 {
73 B_LI.style.borderStyle=B_MI.style.borderStyle=B_RI.style.borderStyle="solid";
74 B_LI.style.borderWidth=1+"px";
75 B_MI.style.borderWidth=1+"px";
76 B_RI.style.borderWidth=1+"px";
77 B_LI.style.borderColor=B_MI.style.borderColor=B_RI.style.borderColor=Book_Border_Color
78 }
79
80 B_LI.src=B_Pre_Img[0].src;
81 B_LI.lnk=Book_Image_Sources[1];
82 B_MI.src=B_Pre_Img[2].src;
83 B_MI.lnk=Book_Image_Sources[3];
84 B_RI.src=B_Pre_Img[4].src;
85 B_RI.lnk=Book_Image_Sources[5];
86 B_LI.onclick=B_MI.onclick=B_RI.onclick=B_LdLnk;
87 B_LI.onmouseover=B_MI.onmouseover=B_RI.onmouseover=B_Stp;
88 B_LI.onmouseout=B_MI.onmouseout=B_RI.onmouseout=B_Rstrt;
89 BookImages()
90 }
91 }
92
93 function BookImages(){
94 if(!B_Stppd)
95 {
96 if(Book_Vertical_Turn)
97 {
98 B_MSz=Math.abs(Math.round(Math.cos(B_Angle)*Book_Image_Height));
99 MidOffset=!B_Direction?Book_Image_Height+1:Book_Image_Height-B_MSz;
100 B_MI.style.top=MidOffset+"px";
101 B_MI.style.height=B_MSz+"px"
102 }
103 else
104 {
105 B_MSz=Math.abs(Math.round(Math.cos(B_Angle)*Book_Image_Width));
106 MidOffset=B_Direction?Book_Image_Width+1:Book_Image_Width-B_MSz;
107 B_MI.style.left=MidOffset+"px";
108 B_MI.style.width=B_MSz+"px"
109 }
110 B_Angle+=Book_Speed/720*Math.PI;
111 if(B_Angle&gt;=Math.PI/2&amp;&amp;B_Direction)
112 {
113 B_Direction=0;
114 if(B_CrImg==Book_Image_Sources.length)B_CrImg=0;
115 B_MI.src=B_Pre_Img[B_CrImg].src;
116 B_MI.lnk=Book_Image_Sources[B_CrImg];
117 B_CrImg+=1
118 }
119 if(B_Angle&gt;=Math.PI)
120 {
121 B_Direction=1;
122 B_TI=B_LI;
123 B_LI=B_MI;
124 B_MI=B_TI;
125 if(Book_Vertical_Turn)B_MI.style.top=0+"px";
126 else B_MI.style.left=Book_Image_Width+1+"px";
127 B_MI.src=B_RI.src;
128 B_MI.lnk=B_RI.lnk;
129
130 setTimeout("Book_Next_Delay()",Book_NextPage_Delay)
131 }
132 else
133 {
134 setTimeout("BookImages()",50)
135 }
136 }
137 else
138 {
139 setTimeout("BookImages()",50)
140 }
141 }
142
143 function Book_Next_Delay()
144 {
145 if(B_CrImg==Book_Image_Sources.length)
146 {
147 B_CrImg=0;
148 }
149
150 B_RI.src=B_Pre_Img[B_CrImg].src;
151 B_RI.lnk=Book_Image_Sources[B_CrImg];
152 B_MI.style.zIndex=2;
153 B_LI.style.zIndex=1;
154 B_Angle=0;
155 B_CrImg+=1;
156
157 setTimeout("BookImages()",50)
158 }
159
160 function B_LdLnk()
161 {
162 if(this.lnk)
163 {
164 window.location.href=this.lnk
165 }
166 }
167
168 function B_Stp()
169 {
170 B_Stppd=true;
171 this.style.cursor=this.lnk?"pointer":"default"
172 }
173
174 function B_Rstrt()
175 {
176 B_Stppd=false
177 }
178
179
180 var collageDelayMsec = 2000;
181 var numCollageImages;
182
183 function collageNextImage(collageFrameNum)
184 {
185 var totalNumKeyframes = Book_Image_Sources.length;
186
187 //var archiveDir = "twso2008.dir";
188
189 var colframeNum = (collageFrameNum-1) % numCollageImages;
190
191 var collageCanvas = document.getElementById("collagewrapper");
192
193 var collagelet = collageCanvas.getElementsByTagName('div');
194
195 var imgs = collagelet[colframeNum].getElementsByTagName('img');
196 var img = imgs[0];
197
198 var i;
199 for (i=0; i &lt; numCollageImages-1; i++) {
200 var j = (colframeNum+1+i) % numCollageImages;
201
202 var zindex = collagelet[j].style.zIndex;
203 if (zindex &gt; 0) {
204 zindex--;
205 collagelet[j].style.zIndex = zindex;
206 var alphaVal = Math.round((zindex/numCollageImages)*100);
207 setAlphaVal(collagelet[j],alphaVal);
208 }
209 }
210
211 img.src = Book_Image_Sources[collageFrameNum-1];
212 img.width = 300;
213 img.collageFrameNum = collageFrameNum;
214
215 img.onclick = function () { document.location = Book_Image_Sources[collageFrameNum-1]; };
216
217 collagelet[colframeNum].style.zIndex = numCollageImages;
218 setAlphaVal(collagelet[colframeNum],100);
219
220 nextcollageFrameNum = (collageFrameNum % totalNumKeyframes) + 1;
221
222 setTimeout('collageNextImage('+nextcollageFrameNum+')',collageDelayMsec);
223
224 }
225
226
227function initCollage()
228{
229
230
231 var collageCanvas = document.getElementById('collagewrapper');
232
233 // var spacediv = 5;
234
235 // var numXCols = spacediv;
236 // var numYRows = numCollageImages / spacediv;
237
238 var collageWidth = 400;
239 var collageHeight = 300;
240
241 var numXCols = 4;
242 var numYRows =3;
243
244 numCollageImages = numXCols * numYRows;
245
246
247 var placement = new Array(numCollageImages);
248
249 var i;
250 for (i=0; i &lt; numCollageImages; i++) {
251 var x = i % numXCols;
252 var y = Math.floor(i / numXCols);
253
254
255 var xypos = new Object();
256 xypos.x = (x/numXCols) * collageWidth;
257 xypos.y = (y/numYRows) * collageHeight;
258
259 placement[i] = xypos;
260 }
261
262 // now mix them up
263
264 for (i=0; i &lt; numCollageImages; i++) {
265
266 var swapi = Math.floor(Math.random()*numCollageImages);
267 var tmp = placement[i];
268 placement[i] = placement[swapi];
269 placement[swapi] = tmp;
270 }
271
272 for (i=0; i &lt; numCollageImages; i++) {
273 var img = document.createElement('img');
274 img.id = "fadingimg" + i;
275 img.src = gs.collectionMetadata["httpPath"] + "/images/blank.gif"
276 img.border= 0;
277
278 var divImg = document.createElement('div');
279 divImg.id = "fadingcanvas" + i;
280
281 var posStyle = "position: absolute; ";
282 posStyle += "top: " + placement[i].y +"px; ";
283 posStyle += "left: " + placement[i].x + "px; ";
284
285 visStyle = "visibility: inherit; ";
286 zindexStyle = " z-index: " + numCollageImages + "; ";
287
288 var style = posStyle + visStyle + zindexStyle;
289
290 divImg.setAttribute("style",style);
291
292 divImg.appendChild(img);
293
294 collageCanvas.appendChild(divImg);
295 }
296
297}
298
299</xsl:text>
300</script>
301
302
303 <div id="collagewrapper" style="background: #ffffd0; width: 600px; height: 500px; position: relative; left: 0px; top: 0px;"><xsl:text> </xsl:text>
304 </div>
305
306 <div id="Book" style="position:relative;">
307 <img src="placeholder.png" width="404"><xsl:text> </xsl:text></img>
308 </div>
309
310 </td></tr>
311 <tr><td><button id="switchImageDisplay" style="display:none; float:right;">Flip Photos</button></td></tr>
312 </tbody></table>
313
314 <script type="text/javascript">
315<xsl:text disable-output-escaping="yes">
316
317function getImages()
318{
319 var url = "?a=g&amp;s=GetAllImagesInCollection&amp;rt=r&amp;s1.extregex=Photo.*(jpg|png)&amp;s1.c=" + gs.cgiParams.c + "&amp;o=xml";
320 var callback = {
321 success: function(data)
322 {
323 var xml = data.responseXML;
324
325 var imageList = xml.getElementsByTagName("image");
326
327 for(var i = 0; i &lt; imageList.length; i++)
328 {
329 var imageURL = imageList[i].firstChild.nodeValue;
330
331 imageURL = imageURL.replace(/\\/gi, "/");
332 imageURL = imageURL.replace(/%5C/gi, "/");
333
334 imageURL = imageURL.substring(imageURL.indexOf("sites"));
335
336 Book_Image_Sources.push(imageURL);
337 }
338
339 if(Book_Image_Sources.length &gt; 0)
340 {
341 var button = document.getElementById("switchImageDisplay");
342 var BookDiv = document.getElementById("Book");
343 var CollDiv = document.getElementById("collagewrapper");
344
345 button.style.display = "block";
346 button.onclick = function()
347 {
348 if(button.innerHTML == "Flip Book")
349 {
350 BookDiv.style.display = "block";
351 CollDiv.style.display = "none";
352 button.innerHTML = "Collage";
353 }
354 else
355 {
356 BookDiv.style.display = "none";
357 CollDiv.style.display = "block";
358 button.innerHTML = "Flip Book";
359 }
360 }
361 initCollage();
362 collageNextImage(1);
363 ImageBook();
364 BookDiv.style.display = "none";
365 }
366 },
367 failed: function(data){alert("FAILED");}
368 };
369
370 YAHOO.util.Connect.asyncRequest("GET", url , callback);
371}
372
373
374 window.onload=getImages;
375 </xsl:text>
376</script>
377
378 </xsl:template>
379
380
381</xsl:stylesheet>
382
Note: See TracBrowser for help on using the repository browser.