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><tr><td style="width:60%;"><gslib:collectionDescriptionTextAndServicesLinks/></td>
|
---|
17 | <td>
|
---|
18 |
|
---|
19 | <xsl:variable name="httpPath"><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/></xsl:variable>
|
---|
20 | <script language="javascript" src="{$httpPath}/script/collage.js"><xsl:text> </xsl:text></script>
|
---|
21 |
|
---|
22 | <script language="javascript" type="text/javascript">
|
---|
23 | <xsl:text disable-output-escaping="yes">
|
---|
24 |
|
---|
25 |
|
---|
26 |
|
---|
27 | var collageDelayMsec = 2000;
|
---|
28 |
|
---|
29 | var numCollageImages;
|
---|
30 |
|
---|
31 | function collageNextImage(collageFrameNum)
|
---|
32 | {
|
---|
33 | var totalNumKeyframes = Book_Image_Sources.length;
|
---|
34 |
|
---|
35 | //var archiveDir = "twso2008.dir";
|
---|
36 |
|
---|
37 | var colframeNum = (collageFrameNum-1) % numCollageImages;
|
---|
38 |
|
---|
39 | var collageCanvas = document.getElementById("collagewrapper");
|
---|
40 |
|
---|
41 | var collagelet = collageCanvas.getElementsByTagName('div');
|
---|
42 |
|
---|
43 | var imgs = collagelet[colframeNum].getElementsByTagName('img');
|
---|
44 | var img = imgs[0];
|
---|
45 |
|
---|
46 | var i;
|
---|
47 | for (i=0; i < numCollageImages-1; i++) {
|
---|
48 | var j = (colframeNum+1+i) % numCollageImages;
|
---|
49 |
|
---|
50 | console.log("j = " + j);
|
---|
51 | var zindex = collagelet[j].style.zIndex;
|
---|
52 | if (zindex > 0) {
|
---|
53 | zindex--;
|
---|
54 | collagelet[j].style.zIndex = zindex;
|
---|
55 | var alphaVal = Math.round((zindex/numCollageImages)*100);
|
---|
56 | setAlphaVal(collagelet[j],alphaVal);
|
---|
57 | }
|
---|
58 | }
|
---|
59 |
|
---|
60 | img.src = Book_Image_Sources[collageFrameNum-1];
|
---|
61 | img.width = 300;
|
---|
62 | img.collageFrameNum = collageFrameNum;
|
---|
63 |
|
---|
64 | img.onclick = function () { document.location = Book_Image_Sources[collageFrameNum-1]; };
|
---|
65 |
|
---|
66 | collagelet[colframeNum].style.zIndex = numCollageImages;
|
---|
67 | setAlphaVal(collagelet[colframeNum],100);
|
---|
68 |
|
---|
69 | nextcollageFrameNum = (collageFrameNum % totalNumKeyframes) + 1;
|
---|
70 |
|
---|
71 | setTimeout('collageNextImage('+nextcollageFrameNum+')',collageDelayMsec);
|
---|
72 |
|
---|
73 |
|
---|
74 | }
|
---|
75 |
|
---|
76 |
|
---|
77 |
|
---|
78 | function initCollage()
|
---|
79 | {
|
---|
80 |
|
---|
81 |
|
---|
82 | var collageCanvas = document.getElementById('collagewrapper');
|
---|
83 |
|
---|
84 | // var spacediv = 5;
|
---|
85 |
|
---|
86 | // var numXCols = spacediv;
|
---|
87 | // var numYRows = numCollageImages / spacediv;
|
---|
88 |
|
---|
89 | var collageWidth = 400;
|
---|
90 | var collageHeight = 300;
|
---|
91 |
|
---|
92 | var numXCols = 4;
|
---|
93 | var numYRows =3;
|
---|
94 |
|
---|
95 | numCollageImages = numXCols * numYRows;
|
---|
96 |
|
---|
97 |
|
---|
98 | var placement = new Array(numCollageImages);
|
---|
99 |
|
---|
100 | var i;
|
---|
101 | for (i=0; i < numCollageImages; i++) {
|
---|
102 | var x = i % numXCols;
|
---|
103 | var y = Math.floor(i / numXCols);
|
---|
104 |
|
---|
105 |
|
---|
106 | var xypos = new Object();
|
---|
107 | xypos.x = (x/numXCols) * collageWidth;
|
---|
108 | xypos.y = (y/numYRows) * collageHeight;
|
---|
109 |
|
---|
110 | placement[i] = xypos;
|
---|
111 | }
|
---|
112 |
|
---|
113 | // now mix them up
|
---|
114 |
|
---|
115 | for (i=0; i < numCollageImages; i++) {
|
---|
116 |
|
---|
117 | var swapi = Math.floor(Math.random()*numCollageImages);
|
---|
118 | var tmp = placement[i];
|
---|
119 | placement[i] = placement[swapi];
|
---|
120 | placement[swapi] = tmp;
|
---|
121 | }
|
---|
122 |
|
---|
123 | for (i=0; i < numCollageImages; i++) {
|
---|
124 | var img = document.createElement('img');
|
---|
125 | img.id = "fadingimg" + i;
|
---|
126 | img.src = gs.collectionMetadata["httpPath"] + "/images/blank.gif"
|
---|
127 | img.border= 0;
|
---|
128 |
|
---|
129 | var divImg = document.createElement('div');
|
---|
130 | divImg.id = "fadingcanvas" + i;
|
---|
131 |
|
---|
132 | var posStyle = "position: absolute; ";
|
---|
133 | posStyle += "top: " + placement[i].y +"px; ";
|
---|
134 | posStyle += "left: " + placement[i].x + "px; ";
|
---|
135 |
|
---|
136 |
|
---|
137 | visStyle = "visibility: inherit; ";
|
---|
138 | zindexStyle = " z-index: " + numCollageImages + "; ";
|
---|
139 |
|
---|
140 | var style = posStyle + visStyle + zindexStyle;
|
---|
141 |
|
---|
142 | divImg.setAttribute("style",style);
|
---|
143 |
|
---|
144 | divImg.appendChild(img);
|
---|
145 |
|
---|
146 | collageCanvas.appendChild(divImg);
|
---|
147 | }
|
---|
148 |
|
---|
149 | }
|
---|
150 |
|
---|
151 |
|
---|
152 | </xsl:text>
|
---|
153 | </script>
|
---|
154 |
|
---|
155 |
|
---|
156 | <div id="collagewrapper"
|
---|
157 | style="background: #ffffd0;
|
---|
158 | width: 600px;
|
---|
159 | height: 500px;
|
---|
160 | position: relative; left: 0px; top: 0px;">
|
---|
161 | </div>
|
---|
162 |
|
---|
163 |
|
---|
164 | </td></tr></tbody></table>
|
---|
165 |
|
---|
166 | <script type="text/javascript">
|
---|
167 | <xsl:text disable-output-escaping="yes">
|
---|
168 |
|
---|
169 | var Book_Image_Sources = new Array();
|
---|
170 |
|
---|
171 |
|
---|
172 | function getImages()
|
---|
173 | {
|
---|
174 | var url = "?a=g&s=GetAllImagesInCollection&rt=r&s1.extregex=Photo.*(jpg|png)&s1.c=" + gs.cgiParams.c + "&o=xml";
|
---|
175 | var callback = {
|
---|
176 | success: function(data)
|
---|
177 | {
|
---|
178 | var xml = data.responseXML;
|
---|
179 |
|
---|
180 | var imageList = xml.getElementsByTagName("image");
|
---|
181 |
|
---|
182 | for(var i = 0; i < imageList.length; i++)
|
---|
183 | {
|
---|
184 | var imageURL = imageList[i].firstChild.nodeValue;
|
---|
185 |
|
---|
186 | imageURL = imageURL.replace(/\\/gi, "/");
|
---|
187 | imageURL = imageURL.replace(/%5C/gi, "/");
|
---|
188 |
|
---|
189 | imageURL = imageURL.substring(imageURL.indexOf("sites"));
|
---|
190 |
|
---|
191 | Book_Image_Sources.push(imageURL);
|
---|
192 | }
|
---|
193 |
|
---|
194 | if(Book_Image_Sources.length > 0)
|
---|
195 | {
|
---|
196 | initCollage();
|
---|
197 | collageNextImage(1);
|
---|
198 | }
|
---|
199 | },
|
---|
200 | failed: function(data){alert("FAILED");}
|
---|
201 | };
|
---|
202 |
|
---|
203 | YAHOO.util.Connect.asyncRequest("GET", url , callback);
|
---|
204 | }
|
---|
205 |
|
---|
206 |
|
---|
207 | window.onload=getImages;
|
---|
208 | </xsl:text>
|
---|
209 | </script>
|
---|
210 |
|
---|
211 | </xsl:template>
|
---|
212 |
|
---|
213 |
|
---|
214 | </xsl:stylesheet>
|
---|
215 |
|
---|