Merge commit 'origin/master' into sopac
[koha.git] / koha-tmpl / opac-tmpl / prog / en / xslt / MARC21slim2OPACResults.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ -->
3 <xsl:stylesheet version="1.0"
4   xmlns:marc="http://www.loc.gov/MARC21/slim"
5   xmlns:items="http://www.koha.org/items"
6   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7   exclude-result-prefixes="marc items">
8     <xsl:import href="MARC21slimUtils.xsl"/>
9     <xsl:output method = "xml" indent="yes" omit-xml-declaration = "yes" />
10     <xsl:key name="item-by-status" match="items:item" use="items:status"/>
11     <xsl:key name="item-by-status-and-branch" match="items:item" use="concat(items:status, ' ', items:homebranch)"/>
12
13     <xsl:template match="/">
14             <xsl:apply-templates/>
15     </xsl:template>
16     <xsl:template match="marc:record">
17
18         <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
19         <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
20
21         <xsl:variable name="leader" select="marc:leader"/>
22         <xsl:variable name="leader6" select="substring($leader,7,1)"/>
23         <xsl:variable name="leader7" select="substring($leader,8,1)"/>
24         <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/>
25         <xsl:variable name="isbn" select="marc:datafield[@tag=020]/marc:subfield[@code='a']"/>
26         <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
27         <xsl:variable name="typeOf008">
28             <xsl:choose>
29                 <xsl:when test="$leader6='a'">
30                     <xsl:choose>
31                         <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when>
32                         <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">CR</xsl:when>
33                     </xsl:choose>
34                 </xsl:when>
35                 <xsl:when test="$leader6='t'">BK</xsl:when>
36                 <xsl:when test="$leader6='p'">MX</xsl:when>
37                 <xsl:when test="$leader6='m'">CF</xsl:when>
38                 <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
39                 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">VM</xsl:when>
40                 <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">MU</xsl:when>
41             </xsl:choose>
42         </xsl:variable>
43         <xsl:variable name="controlField008-23" select="substring($controlField008,24,1)"/>
44         <xsl:variable name="controlField008-21" select="substring($controlField008,22,1)"/>
45         <xsl:variable name="controlField008-22" select="substring($controlField008,23,1)"/>
46         <xsl:variable name="controlField008-24" select="substring($controlField008,25,4)"/>
47         <xsl:variable name="controlField008-26" select="substring($controlField008,27,1)"/>
48         <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/>
49         <xsl:variable name="controlField008-34" select="substring($controlField008,35,1)"/>
50         <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/>
51         <xsl:variable name="controlField008-30-31" select="substring($controlField008,31,2)"/>
52
53         <xsl:variable name="physicalDescription">
54             <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='a']">
55                 reformatted digital
56             </xsl:if>
57             <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='b']">
58                 digitized microfilm
59             </xsl:if>
60             <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='d']">
61                 digitized other analog
62             </xsl:if>
63
64             <xsl:variable name="check008-23">
65                 <xsl:if test="$typeOf008='BK' or $typeOf008='MU' or $typeOf008='CR' or $typeOf008='MX'">
66                     <xsl:value-of select="true()"></xsl:value-of>
67                 </xsl:if>
68             </xsl:variable>
69             <xsl:variable name="check008-29">
70                 <xsl:if test="$typeOf008='MP' or $typeOf008='VM'">
71                     <xsl:value-of select="true()"></xsl:value-of>
72                 </xsl:if>
73             </xsl:variable>
74             <xsl:choose>
75                 <xsl:when test="($check008-23 and $controlField008-23='f') or ($check008-29 and $controlField008-29='f')">
76                     braille
77                 </xsl:when>
78                 <xsl:when test="($controlField008-23=' ' and ($leader6='c' or $leader6='d')) or (($typeOf008='BK' or $typeOf008='CR') and ($controlField008-23=' ' or $controlField008='r'))">
79                     print
80                 </xsl:when>
81                 <xsl:when test="$leader6 = 'm' or ($check008-23 and $controlField008-23='s') or ($check008-29 and $controlField008-29='s')">
82                     electronic
83                 </xsl:when>
84                 <xsl:when test="($check008-23 and $controlField008-23='b') or ($check008-29 and $controlField008-29='b')">
85                     microfiche
86                 </xsl:when>
87                 <xsl:when test="($check008-23 and $controlField008-23='a') or ($check008-29 and $controlField008-29='a')">
88                     microfilm
89                 </xsl:when>
90             </xsl:choose>
91 <!--
92             <xsl:if test="marc:datafield[@tag=130]/marc:subfield[@code='h']">
93                     <xsl:call-template name="chopBrackets">
94                         <xsl:with-param name="chopString">
95                             <xsl:value-of select="marc:datafield[@tag=130]/marc:subfield[@code='h']"></xsl:value-of>
96                         </xsl:with-param>
97                     </xsl:call-template>
98             </xsl:if>
99             <xsl:if test="marc:datafield[@tag=240]/marc:subfield[@code='h']">
100                     <xsl:call-template name="chopBrackets">
101                         <xsl:with-param name="chopString">
102                             <xsl:value-of select="marc:datafield[@tag=240]/marc:subfield[@code='h']"></xsl:value-of>
103                         </xsl:with-param>
104                     </xsl:call-template>
105             </xsl:if>
106             <xsl:if test="marc:datafield[@tag=242]/marc:subfield[@code='h']">
107                     <xsl:call-template name="chopBrackets">
108                         <xsl:with-param name="chopString">
109                             <xsl:value-of select="marc:datafield[@tag=242]/marc:subfield[@code='h']"></xsl:value-of>
110                         </xsl:with-param>
111                     </xsl:call-template>
112             </xsl:if>
113             <xsl:if test="marc:datafield[@tag=245]/marc:subfield[@code='h']">
114                     <xsl:call-template name="chopBrackets">
115                         <xsl:with-param name="chopString">
116                             <xsl:value-of select="marc:datafield[@tag=245]/marc:subfield[@code='h']"></xsl:value-of>
117                         </xsl:with-param>
118                     </xsl:call-template>
119             </xsl:if>
120             <xsl:if test="marc:datafield[@tag=246]/marc:subfield[@code='h']">
121                     <xsl:call-template name="chopBrackets">
122                         <xsl:with-param name="chopString">
123                             <xsl:value-of select="marc:datafield[@tag=246]/marc:subfield[@code='h']"></xsl:value-of>
124                         </xsl:with-param>
125                     </xsl:call-template>
126             </xsl:if>
127             <xsl:if test="marc:datafield[@tag=730]/marc:subfield[@code='h']">
128                     <xsl:call-template name="chopBrackets">
129                         <xsl:with-param name="chopString">
130                             <xsl:value-of select="marc:datafield[@tag=730]/marc:subfield[@code='h']"></xsl:value-of>
131                         </xsl:with-param>
132                     </xsl:call-template>
133             </xsl:if>
134             <xsl:for-each select="marc:datafield[@tag=256]/marc:subfield[@code='a']">
135                     <xsl:value-of select="."></xsl:value-of>
136             </xsl:for-each>
137             <xsl:for-each select="marc:controlfield[@tag=007][substring(text(),1,1)='c']">
138                 <xsl:choose>
139                     <xsl:when test="substring(text(),14,1)='a'">
140                         access
141                     </xsl:when>
142                     <xsl:when test="substring(text(),14,1)='p'">
143                         preservation
144                     </xsl:when>
145                     <xsl:when test="substring(text(),14,1)='r'">
146                         replacement
147                     </xsl:when>
148                 </xsl:choose>
149             </xsl:for-each>
150 -->
151             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='b']">
152                 chip cartridge
153             </xsl:if>
154             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='c']">
155                 <img src="/opac-tmpl/prog/famfamfam/silk/cd.png" alt="computer optical disc cartridge" title="computer optical disc cartridge"/>
156             </xsl:if>
157             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='j']">
158                 magnetic disc
159             </xsl:if>
160             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='m']">
161                 magneto-optical disc
162             </xsl:if>
163             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='o']">
164                 <img src="/opac-tmpl/prog/famfamfam/silk/cd.png" alt="optical disc" title="optical disc"/>
165             </xsl:if>
166             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='r']">
167                 <img src="/opac-tmpl/prog/famfamfam/silk/drive_web.png" alt="remote" title="remote"/>
168             </xsl:if>
169             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='a']">
170                 tape cartridge
171             </xsl:if>
172             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='f']">
173                 tape cassette
174             </xsl:if>
175             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='h']">
176                 tape reel
177             </xsl:if>
178
179             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='a']">
180                 <img src="/opac-tmpl/prog/famfamfam/silk/world.png" alt="celestial globe" title="celestial globe"/>
181             </xsl:if>
182             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='e']">
183                 <img src="/opac-tmpl/prog/famfamfam/silk/world.png" alt="earth moon globe" title="earth moon globe"/>
184             </xsl:if>
185             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='b']">
186                 <img src="/opac-tmpl/prog/famfamfam/silk/world.png" alt="planetary or lunar globe" title="planetary or lunar globe"/>
187             </xsl:if>
188             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='c']">
189                 <img src="/opac-tmpl/prog/famfamfam/silk/world.png" alt="terrestrial globe" title="terrestrial globe"/>
190             </xsl:if>
191
192             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='o'][substring(text(),2,1)='o']">
193                 kit
194             </xsl:if>
195
196             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']">
197                 atlas
198             </xsl:if>
199             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='g']">
200                 diagram
201             </xsl:if>
202             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='j']">
203                 map
204             </xsl:if>
205             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']">
206                 model
207             </xsl:if>
208             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='k']">
209                 profile
210             </xsl:if>
211             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='r']">
212                 remote-sensing image
213             </xsl:if>
214             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='s']">
215                 section
216             </xsl:if>
217             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='y']">
218                 view
219             </xsl:if>
220
221             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='a']">
222                 aperture card
223             </xsl:if>
224             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='e']">
225                 microfiche
226             </xsl:if>
227             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='f']">
228                 microfiche cassette
229             </xsl:if>
230             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='b']">
231                 microfilm cartridge
232             </xsl:if>
233             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='c']">
234                 microfilm cassette
235             </xsl:if>
236             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='d']">
237                 microfilm reel
238             </xsl:if>
239             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='g']">
240                 microopaque
241             </xsl:if>
242             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='c']">
243                 film cartridge
244             </xsl:if>
245             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='f']">
246                 film cassette
247             </xsl:if>
248             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='r']">
249                 film reel
250             </xsl:if>
251             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='n']">
252                 <img src="/opac-tmpl/prog/famfamfam/silk/chart_curve.png" alt="chart" title="chart"/>
253             </xsl:if>
254             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='c']">
255                 collage
256             </xsl:if>
257             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='d']">
258                  <img src="/opac-tmpl/prog/famfamfam/silk/pencil.png" alt="drawing" title="drawing"/>
259             </xsl:if>
260             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='o']">
261                 <img src="/opac-tmpl/prog/famfamfam/silk/note.png" alt="flash card" title="flash card"/>
262             </xsl:if>
263             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='e']">
264                 <img src="/opac-tmpl/prog/famfamfam/silk/paintbrush.png" alt="painting" title="painting"/>
265             </xsl:if>
266             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='f']">
267                 photomechanical print
268             </xsl:if>
269             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='g']">
270                 photonegative
271             </xsl:if>
272             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='h']">
273                 photoprint
274             </xsl:if>
275             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='i']">
276                 <img src="/opac-tmpl/prog/famfamfam/silk/picture.png" alt="picture" title="picture"/>
277             </xsl:if>
278             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='j']">
279                 print
280             </xsl:if>
281             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='l']">
282                 technical drawing
283             </xsl:if>
284             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='q'][substring(text(),2,1)='q']">
285                 <img src="/opac-tmpl/prog/famfamfam/silk/script.png" alt="notated musci" title="notated music"/>
286             </xsl:if>
287             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='d']">
288                 filmslip
289             </xsl:if>
290             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='c']">
291                 filmstrip cartridge
292             </xsl:if>
293             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='o']">
294                 filmstrip roll
295             </xsl:if>
296             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='f']">
297                 other filmstrip type
298             </xsl:if>
299             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='s']">
300                 <img src="/opac-tmpl/prog/famfamfam/silk/pictures.png" alt="slide" title="slide"/>
301             </xsl:if>
302             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='t']">
303                 transparency
304             </xsl:if>
305             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='r'][substring(text(),2,1)='r']">
306                 remote-sensing image
307             </xsl:if>
308             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='e']">
309                 cylinder
310             </xsl:if>
311             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='q']">
312                 roll
313             </xsl:if>
314             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='g']">
315                 sound cartridge
316             </xsl:if>
317             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='s']">
318                 sound cassette
319             </xsl:if>
320             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='d']">
321                 <img src="/opac-tmpl/prog/famfamfam/silk/cd.png" alt="sound disc" title="sound disc"/>
322             </xsl:if>
323             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='t']">
324                 sound-tape reel
325             </xsl:if>
326             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='i']">
327                 sound-track film
328             </xsl:if>
329             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='w']">
330                 wire recording
331             </xsl:if>
332             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='c']">
333                 braille
334             </xsl:if>
335             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='b']">
336                 combination
337             </xsl:if>
338             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='a']">
339                 moon
340             </xsl:if>
341             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='d']">
342                 tactile, with no writing system
343             </xsl:if>
344             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='c']">
345                 braille
346             </xsl:if>
347             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='b']">
348                 <img src="/opac-tmpl/prog/famfamfam/silk/magnifier.png" alt="large print" title="large print"/>
349             </xsl:if>
350             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='a']">
351                 regular print
352             </xsl:if>
353             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='d']">
354                 text in looseleaf binder
355             </xsl:if>
356             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='c']">
357                 videocartridge
358             </xsl:if>
359             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='f']">
360                 videocassette
361             </xsl:if>
362             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='d']">
363                 <img src="/opac-tmpl/prog/famfamfam/silk/dvd.png" alt="videodisc" title="videodisc"/>
364             </xsl:if>
365             <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='r']">
366                 videoreel
367             </xsl:if>
368 <!--
369             <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q'][string-length(.)>1]">
370                     <xsl:value-of select="."></xsl:value-of>
371             </xsl:for-each>
372             <xsl:for-each select="marc:datafield[@tag=300]">
373                     <xsl:call-template name="subfieldSelect">
374                         <xsl:with-param name="codes">abce</xsl:with-param>
375                     </xsl:call-template>
376             </xsl:for-each>
377 -->
378         </xsl:variable>
379
380         <!-- Title Statement: Alternate Graphic Representation (MARC 880) -->
381         <xsl:if test="$display880">
382            <xsl:call-template name="m880Select">
383               <xsl:with-param name="basetags">245</xsl:with-param>
384               <xsl:with-param name="codes">abh</xsl:with-param>
385               <xsl:with-param name="bibno"><xsl:value-of  select="$biblionumber"/></xsl:with-param>
386            </xsl:call-template>
387         </xsl:if>
388
389         <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
390
391         <xsl:if test="marc:datafield[@tag=245]">
392         <xsl:for-each select="marc:datafield[@tag=245]">
393             <xsl:variable name="title">
394                      <xsl:call-template name="subfieldSelect">
395                         <xsl:with-param name="codes">a</xsl:with-param>
396                     </xsl:call-template>
397                     <xsl:if test="marc:subfield[@code='b']">
398                         <xsl:text> </xsl:text>
399                         <xsl:call-template name="subfieldSelect">
400                             <xsl:with-param name="codes">b</xsl:with-param>
401                         </xsl:call-template>
402                     </xsl:if>
403                     <xsl:if test="marc:subfield[@code='h']">
404                         <xsl:text> </xsl:text>
405                         <xsl:call-template name="subfieldSelect">
406                             <xsl:with-param name="codes">h</xsl:with-param>
407                         </xsl:call-template>
408                     </xsl:if>
409                     <xsl:call-template name="subfieldSelect">
410                         <xsl:with-param name="codes">fgknps</xsl:with-param>
411                      </xsl:call-template>
412             </xsl:variable>
413             <xsl:variable name="titleChop">
414                 <xsl:call-template name="chopPunctuation">
415                     <xsl:with-param name="chopString">
416                         <xsl:value-of select="$title"/>
417                     </xsl:with-param>
418                 </xsl:call-template>
419             </xsl:variable>
420             <xsl:value-of select="$titleChop"/>
421         </xsl:for-each>
422         </xsl:if>
423     </a>
424     <p>
425
426     <!-- Author Statement: Alternate Graphic Representation (MARC 880) -->
427     <xsl:if test="$display880">
428       <xsl:call-template name="m880Select">
429       <xsl:with-param name="basetags">100,110,111,700,710,711</xsl:with-param>
430       <xsl:with-param name="codes">abc</xsl:with-param>
431       <xsl:with-param name="class">term</xsl:with-param>
432       </xsl:call-template>
433     </xsl:if>
434
435     <xsl:choose>
436     <xsl:when test="marc:datafield[@tag=100] or marc:datafield[@tag=110] or marc:datafield[@tag=111] or marc:datafield[@tag=700] or marc:datafield[@tag=710] or marc:datafield[@tag=711]">
437
438     by 
439         <xsl:for-each select="marc:datafield[@tag=100 or @tag=700]">
440             <xsl:choose>
441             <xsl:when test="position()=last()">
442                 <xsl:call-template name="nameABCDQ"/>.
443             </xsl:when>
444             <xsl:otherwise>
445                 <xsl:call-template name="nameABCDQ"/>;
446             </xsl:otherwise>
447             </xsl:choose>
448         </xsl:for-each>
449
450         <xsl:for-each select="marc:datafield[@tag=110 or @tag=710]">
451             <xsl:choose>
452             <xsl:when test="position()=last()">
453                 <xsl:call-template name="nameABCDN"/>.
454             </xsl:when>
455             <xsl:otherwise>
456                 <xsl:call-template name="nameABCDN"/>;
457             </xsl:otherwise>
458             </xsl:choose>
459         </xsl:for-each>
460
461         <xsl:for-each select="marc:datafield[@tag=111 or @tag=711]">
462             <xsl:choose>
463             <xsl:when test="position()=last()">
464                 <xsl:call-template name="nameACDEQ"/>.
465             </xsl:when>
466             <xsl:otherwise>
467                 <xsl:call-template name="nameACDEQ"/>;
468             </xsl:otherwise>
469             </xsl:choose>
470         </xsl:for-each>
471     </xsl:when>
472     </xsl:choose>
473     </p>
474
475     <xsl:if test="marc:datafield[@tag=250]">
476         <span class="results_summary">
477     <span class="label">Edition: </span>
478             <xsl:for-each select="marc:datafield[@tag=250]">
479                     <xsl:call-template name="subfieldSelect">
480                         <xsl:with-param name="codes">ab</xsl:with-param>
481                     </xsl:call-template>
482             </xsl:for-each>
483         </span>
484     </xsl:if>
485
486     <span class="results_summary">
487     <xsl:if test="$typeOf008!=''">
488         <span class="label">Type: </span>
489             <xsl:choose>
490                 <xsl:when test="$leader6='a'">
491                     <xsl:choose>
492                         <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'"><img src="/opac-tmpl/prog/famfamfam/silk/book.png" alt="book" title="book"/> Book</xsl:when>
493                         <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'"><img src="/opac-tmpl/prog/famfamfam/silk/newspaper.png" alt="serial" title="serial"/> Continuing Resource</xsl:when>
494                     </xsl:choose>
495                 </xsl:when>
496                 <xsl:when test="$leader6='t'"><img src="/opac-tmpl/prog/famfamfam/silk/book.png" alt="book" title="book"/> Book</xsl:when>
497                 <xsl:when test="$leader6='p'"><img src="/opac-tmpl/prog/famfamfam/silk/report_disk.png" alt="mixed materials" title="mixed materials"/>Mixed Materials</xsl:when>
498                 <xsl:when test="$leader6='m'"><img src="/opac-tmpl/prog/famfamfam/silk/computer_link.png" alt="computer file" title="computer file"/> Computer File</xsl:when>
499                 <xsl:when test="$leader6='e' or $leader6='f'"><img src="/opac-tmpl/prog/famfamfam/silk/map.png" alt="map" title="map"/> Map</xsl:when>
500                 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'"><img src="/opac-tmpl/prog/famfamfam/silk/film.png" alt="visual material" title="visual material"/> Visual Material</xsl:when>
501                 <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'"><img src="/opac-tmpl/prog/famfamfam/silk/sound.png" alt="sound" title="sound"/> Sound</xsl:when>
502             </xsl:choose>
503     </xsl:if>
504     <xsl:if test="string-length(normalize-space($physicalDescription))">
505         <span class="label">; Format: </span><xsl:copy-of select="$physicalDescription"></xsl:copy-of>
506     </xsl:if>
507
508         <xsl:if test="$controlField008-21 or $controlField008-22 or $controlField008-24 or $controlField008-26 or $controlField008-29 or $controlField008-34 or $controlField008-33 or $controlField008-30-31 or $controlField008-33">
509
510         <xsl:if test="$typeOf008='CR'">
511         <xsl:if test="$controlField008-21 and $controlField008-21 !='|' and $controlField008-21 !=' '">
512         <span class="label">; Type of continuing resource: </span>
513         </xsl:if>
514             <xsl:choose>
515                 <xsl:when test="$controlField008-21='d'">
516                      <img src="/opac-tmpl/prog/famfamfam/silk/database.png" alt="database" title="database"/>
517                 </xsl:when>
518                 <xsl:when test="$controlField008-21='l'">
519                     loose-leaf
520                 </xsl:when>
521                 <xsl:when test="$controlField008-21='m'">
522                     series
523                 </xsl:when>
524                 <xsl:when test="$controlField008-21='n'">
525                     newspaper
526                 </xsl:when>
527                 <xsl:when test="$controlField008-21='p'">
528                     periodical
529                 </xsl:when>
530                 <xsl:when test="$controlField008-21='w'">
531                      <img src="/opac-tmpl/prog/famfamfam/silk/world_link.png" alt="web site" title="web site"/>
532                 </xsl:when>
533             </xsl:choose>
534         </xsl:if>
535         <xsl:if test="$typeOf008='BK' or $typeOf008='CR'">
536         <xsl:if test="contains($controlField008-24,'abcdefghijklmnopqrstvwxyz')">
537         <span class="label">; Nature of contents: </span>
538         </xsl:if>
539             <xsl:choose>
540                 <xsl:when test="contains($controlField008-24,'a')">
541                     abstract or summary
542                 </xsl:when>
543                 <xsl:when test="contains($controlField008-24,'b')">
544                      <img src="/opac-tmpl/prog/famfamfam/silk/text_list_bullets.png" alt="bibliography" title="bibliography"/>
545                 </xsl:when>
546                 <xsl:when test="contains($controlField008-24,'c')">
547                     catalog
548                 </xsl:when>
549                 <xsl:when test="contains($controlField008-24,'d')">
550                     dictionary
551                 </xsl:when>
552                 <xsl:when test="contains($controlField008-24,'e')">
553                     encyclopedia
554                 </xsl:when>
555                 <xsl:when test="contains($controlField008-24,'f')">
556                     handbook
557                 </xsl:when>
558                 <xsl:when test="contains($controlField008-24,'g')">
559                     legal article
560                 </xsl:when>
561                 <xsl:when test="contains($controlField008-24,'i')">
562                     index
563                 </xsl:when>
564                 <xsl:when test="contains($controlField008-24,'k')">
565                     discography
566                 </xsl:when>
567                 <xsl:when test="contains($controlField008-24,'l')">
568                     legislation
569                 </xsl:when>
570                 <xsl:when test="contains($controlField008-24,'m')">
571                     theses
572                 </xsl:when>
573                 <xsl:when test="contains($controlField008-24,'n')">
574                     survey of literature
575                 </xsl:when>
576                 <xsl:when test="contains($controlField008-24,'o')">
577                     review
578                 </xsl:when>
579                 <xsl:when test="contains($controlField008-24,'p')">
580                     programmed text
581                 </xsl:when>
582                 <xsl:when test="contains($controlField008-24,'q')">
583                     filmography
584                 </xsl:when>
585                 <xsl:when test="contains($controlField008-24,'r')">
586                     directory
587                 </xsl:when>
588                 <xsl:when test="contains($controlField008-24,'s')">
589                     statistics
590                 </xsl:when>
591                 <xsl:when test="contains($controlField008-24,'t')">
592                      <img src="/opac-tmpl/prog/famfamfam/silk/report.png" alt="technical report" title="technical report"/>
593                 </xsl:when>
594                 <xsl:when test="contains($controlField008-24,'v')">
595                     legal case and case notes
596                 </xsl:when>
597                 <xsl:when test="contains($controlField008-24,'w')">
598                     law report or digest
599                 </xsl:when>
600                 <xsl:when test="contains($controlField008-24,'z')">
601                     treaty
602                 </xsl:when>
603             </xsl:choose>
604             <xsl:choose>
605                 <xsl:when test="$controlField008-29='1'">
606                     conference publication
607                 </xsl:when>
608             </xsl:choose>
609         </xsl:if>
610         <xsl:if test="$typeOf008='CF'">
611             <xsl:if test="$controlField008-26='a' or $controlField008-26='e' or $controlField008-26='f' or $controlField008-26='g'">
612             <span class="label">; Type of computer file: </span>
613             </xsl:if>
614             <xsl:choose>
615                 <xsl:when test="$controlField008-26='a'">
616                     numeric data
617                 </xsl:when>
618                 <xsl:when test="$controlField008-26='e'">
619                      <img src="/opac-tmpl/prog/famfamfam/silk/database.png" alt="database" title="database"/>
620                 </xsl:when>
621                 <xsl:when test="$controlField008-26='f'">
622                      <img src="/opac-tmpl/prog/famfamfam/silk/font.png" alt="font" title="font"/> 
623                 </xsl:when>
624                 <xsl:when test="$controlField008-26='g'">
625                      <img src="/opac-tmpl/prog/famfamfam/silk/controller.png" alt="game" title="game"/>
626                 </xsl:when>
627             </xsl:choose>
628         </xsl:if>
629         <xsl:if test="$typeOf008='BK'">
630             <xsl:if test="(substring($controlField008,25,1)='j') or (substring($controlField008,25,1)='1') or ($controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d')">
631             <span class="label">; Nature of contents: </span>
632             </xsl:if>
633             <xsl:if test="substring($controlField008,25,1)='j'">
634                 patent
635             </xsl:if>
636             <xsl:if test="substring($controlField008,31,1)='1'">
637                 festschrift
638             </xsl:if>
639             <xsl:if test="$controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d'">
640                  <img src="/opac-tmpl/prog/famfamfam/silk/user.png" alt="biography" title="biography"/>
641             </xsl:if>
642
643             <xsl:if test="$controlField008-33 and $controlField008-33!='|' and $controlField008-33!='u' and $controlField008-33!=' '">
644             <span class="label">; Literary form: </span>
645             </xsl:if>
646             <xsl:choose>
647                 <xsl:when test="$controlField008-33='0'">
648                     not fiction
649                 </xsl:when>
650                 <xsl:when test="$controlField008-33='1'">
651                     fiction
652                 </xsl:when> 
653                 <xsl:when test="$controlField008-33='e'">
654                     essay
655                 </xsl:when>
656                 <xsl:when test="$controlField008-33='d'">
657                     drama
658                 </xsl:when>
659                 <xsl:when test="$controlField008-33='c'">
660                     comic strip
661                 </xsl:when>
662                 <xsl:when test="$controlField008-33='l'">
663                     fiction
664                 </xsl:when>
665                 <xsl:when test="$controlField008-33='h'">
666                     humor, satire
667                 </xsl:when>
668                 <xsl:when test="$controlField008-33='i'">
669                     letter
670                 </xsl:when>
671                 <xsl:when test="$controlField008-33='f'">
672                     novel
673                 </xsl:when>
674                 <xsl:when test="$controlField008-33='j'">
675                     short story
676                 </xsl:when>
677                 <xsl:when test="$controlField008-33='s'">
678                     speech
679                 </xsl:when>
680             </xsl:choose>
681         </xsl:if> 
682         <xsl:if test="$typeOf008='MU' and $controlField008-30-31 and $controlField008-30-31!='||' and $controlField008-30-31!='  '">
683             <span class="label">; Literary form: </span> <!-- Literary text for sound recordings -->
684             <xsl:if test="contains($controlField008-30-31,'b')">
685                 biography
686             </xsl:if>
687             <xsl:if test="contains($controlField008-30-31,'c')">
688                 conference publication
689             </xsl:if>
690             <xsl:if test="contains($controlField008-30-31,'d')">
691                 drama
692             </xsl:if>
693             <xsl:if test="contains($controlField008-30-31,'e')">
694                 essay
695             </xsl:if>
696             <xsl:if test="contains($controlField008-30-31,'f')">
697                 fiction
698             </xsl:if>
699             <xsl:if test="contains($controlField008-30-31,'o')">
700                 folktale
701             </xsl:if>
702             <xsl:if test="contains($controlField008-30-31,'h')">
703                 history
704             </xsl:if>
705             <xsl:if test="contains($controlField008-30-31,'k')">
706                 humor, satire
707             </xsl:if>
708             <xsl:if test="contains($controlField008-30-31,'m')">
709                 memoir
710             </xsl:if>
711             <xsl:if test="contains($controlField008-30-31,'p')">
712                 poetry
713             </xsl:if>
714             <xsl:if test="contains($controlField008-30-31,'r')">
715                 rehearsal
716             </xsl:if>
717             <xsl:if test="contains($controlField008-30-31,'g')">
718                 reporting
719             </xsl:if>
720             <xsl:if test="contains($controlField008-30-31,'s')">
721                 sound
722             </xsl:if>
723             <xsl:if test="contains($controlField008-30-31,'l')">
724                 speech
725             </xsl:if>
726         </xsl:if>
727         <xsl:if test="$typeOf008='VM'">
728             <span class="label">; Type of visual material: </span>
729             <xsl:choose>
730                 <xsl:when test="$controlField008-33='a'">
731                     art original
732                 </xsl:when>
733                 <xsl:when test="$controlField008-33='b'">
734                     kit
735                 </xsl:when>
736                 <xsl:when test="$controlField008-33='c'">
737                     art reproduction
738                 </xsl:when>
739                 <xsl:when test="$controlField008-33='d'">
740                     diorama
741                 </xsl:when>
742                 <xsl:when test="$controlField008-33='f'">
743                     filmstrip
744                 </xsl:when>
745                 <xsl:when test="$controlField008-33='g'">
746                     legal article
747                 </xsl:when>
748                 <xsl:when test="$controlField008-33='i'">
749                     picture
750                 </xsl:when>
751                 <xsl:when test="$controlField008-33='k'">
752                     graphic
753                 </xsl:when>
754                 <xsl:when test="$controlField008-33='l'">
755                     technical drawing
756                 </xsl:when>
757                 <xsl:when test="$controlField008-33='m'">
758                     motion picture
759                 </xsl:when>
760                 <xsl:when test="$controlField008-33='n'">
761                     chart
762                 </xsl:when>
763                 <xsl:when test="$controlField008-33='o'">
764                     flash card
765                 </xsl:when>
766                 <xsl:when test="$controlField008-33='p'">
767                     microscope slide
768                 </xsl:when>
769                 <xsl:when test="$controlField008-33='q' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2
770 ,1)='q']">
771                     model
772                 </xsl:when>
773                 <xsl:when test="$controlField008-33='r'">
774                     realia
775                 </xsl:when>
776                 <xsl:when test="$controlField008-33='s'">
777                     slide
778                 </xsl:when>
779                 <xsl:when test="$controlField008-33='t'">
780                     transparency
781                 </xsl:when>
782                 <xsl:when test="$controlField008-33='v'">
783                     videorecording
784                 </xsl:when>
785                 <xsl:when test="$controlField008-33='w'">
786                     toy
787                 </xsl:when>
788             </xsl:choose>
789         </xsl:if>
790         </xsl:if> 
791
792     <xsl:if test="($typeOf008='BK' or $typeOf008='CF' or $typeOf008='MU' or $typeOf008='VM') and ($controlField008-22='a' or $controlField008-22='b' or $controlField008-22='c' or $controlField008-22='d' or $controlField008-22='e' or $controlField008-22='g' or $controlField008-22='j' or $controlField008-22='f')">
793         <span class="label">; Audience: </span>
794         <xsl:choose>
795             <xsl:when test="$controlField008-22='a'">
796              Preschool;
797             </xsl:when>
798             <xsl:when test="$controlField008-22='b'">
799              Primary;
800             </xsl:when>
801             <xsl:when test="$controlField008-22='c'">
802              Pre-adolescent;
803             </xsl:when>
804             <xsl:when test="$controlField008-22='d'">
805              Adolescent;
806             </xsl:when>
807             <xsl:when test="$controlField008-22='e'">
808              Adult;
809             </xsl:when>
810             <xsl:when test="$controlField008-22='g'">
811              General;
812             </xsl:when>
813             <xsl:when test="$controlField008-22='j'">
814              Juvenile;
815             </xsl:when>
816             <xsl:when test="$controlField008-22='f'">
817              Specialized;
818             </xsl:when>
819             </xsl:choose>
820     </xsl:if>
821         </span>
822
823     <!-- Publisher Statement: Alternate Graphic Representation (MARC 880) -->
824     <xsl:if test="$display880">
825       <xsl:call-template name="m880Select">
826         <xsl:with-param name="basetags">260</xsl:with-param>
827         <xsl:with-param name="codes">abcg</xsl:with-param>
828         <xsl:with-param name="class">results_summary</xsl:with-param>
829         <xsl:with-param name="label">Publisher: </xsl:with-param>
830       </xsl:call-template>
831     </xsl:if>
832         
833     <xsl:if test="marc:datafield[@tag=260]">
834         <span class="results_summary">
835     <span class="label">Publisher: </span> 
836             <xsl:for-each select="marc:datafield[@tag=260]">
837                     <xsl:call-template name="subfieldSelect">
838                         <xsl:with-param name="codes">bcg</xsl:with-param>
839                     </xsl:call-template>
840             </xsl:for-each>
841         </span>
842     </xsl:if>
843
844     <!-- Other Title  Statement: Alternate Graphic Representation (MARC 880) -->
845     <xsl:if test="$display880">
846        <xsl:call-template name="m880Select">
847          <xsl:with-param name="basetags">246</xsl:with-param>
848          <xsl:with-param name="codes">ab</xsl:with-param>
849          <xsl:with-param name="class">results_summary</xsl:with-param>
850          <xsl:with-param name="label">Other Title: </xsl:with-param>
851        </xsl:call-template>
852     </xsl:if>
853         
854     <xsl:if test="marc:datafield[@tag=246]">
855         <span class="results_summary">
856     <span class="label">Other title: </span>
857             <xsl:for-each select="marc:datafield[@tag=246]">
858                     <xsl:call-template name="subfieldSelect">
859                         <xsl:with-param name="codes">ab</xsl:with-param>
860                     </xsl:call-template>
861             </xsl:for-each>
862         </span>
863
864     </xsl:if>
865
866     <span class="results_summary">
867                            <span class="label">Availability: </span>
868                                 <xsl:choose>
869                         <xsl:when test="marc:datafield[@tag=856]">
870                             <xsl:for-each select="marc:datafield[@tag=856]">
871                                 <xsl:choose>
872                                     <xsl:when test="@ind2=0">
873                                     <a><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
874                                     <xsl:choose>
875                                     <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
876                                         <xsl:call-template name="subfieldSelect">                        
877                                         <xsl:with-param name="codes">y3z</xsl:with-param>                    
878                                         </xsl:call-template>
879                                     </xsl:when>
880                                     <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
881                                     Click here to access online
882                                     </xsl:when>
883                                     </xsl:choose>
884                                     </a>
885                                     <xsl:choose>
886                                     <xsl:when test="position()=last()"></xsl:when>
887                                     <xsl:otherwise> | </xsl:otherwise>
888                                     </xsl:choose>
889                                     </xsl:when> 
890                                 </xsl:choose>
891                             </xsl:for-each>
892                         </xsl:when>
893
894                                    <xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">No copies available
895                                    </xsl:when>
896                    <xsl:when test="count(key('item-by-status', 'available'))>0">
897                    <span class="available">
898                        <b><xsl:text>Copies available for loan: </xsl:text></b>
899                        <xsl:variable name="available_items"
900                            select="key('item-by-status', 'available')"/>
901                        <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
902                            <xsl:value-of select="items:homebranch"/>
903                                                    <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber">[<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
904                            <xsl:text> (</xsl:text>
905                            <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
906                            <xsl:text>)</xsl:text>
907 <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
908                        </xsl:for-each>
909                    </span>
910                    </xsl:when>
911                                    </xsl:choose>
912
913                    <xsl:choose>
914                    <xsl:when test="count(key('item-by-status', 'reference'))>0">
915                    <span class="available">
916                        <b><xsl:text>Copies available for reference: </xsl:text></b>
917                        <xsl:variable name="reference_items"
918                            select="key('item-by-status', 'reference')"/>
919                        <xsl:for-each select="$reference_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
920                            <xsl:value-of select="items:homebranch"/>
921                                                    <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber">[<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
922                            <xsl:text> (</xsl:text>
923                            <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
924                            <xsl:text>)</xsl:text>
925                    <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
926                        </xsl:for-each>
927                    </span>
928                    </xsl:when>
929                    </xsl:choose>
930
931                    <xsl:if test="count(key('item-by-status', 'Checked out'))>0">
932                    <span class="unavailable">
933                        <xsl:text>Checked out (</xsl:text>
934                        <xsl:value-of select="count(key('item-by-status', 'Checked out'))"/>
935                        <xsl:text>). </xsl:text>
936                                    </span>
937                    </xsl:if>
938                    <xsl:if test="count(key('item-by-status', 'Withdrawn'))>0">
939                    <span class="unavailable">
940                        <xsl:text>Withdrawn (</xsl:text>
941                        <xsl:value-of select="count(key('item-by-status', 'Withdrawn'))"/>
942                        <xsl:text>). </xsl:text>                   </span>
943                                    </xsl:if>
944                     <xsl:if test="count(key('item-by-status', 'Lost'))>0">
945                    <span class="unavailable">
946                        <xsl:text>Lost (</xsl:text>
947                        <xsl:value-of select="count(key('item-by-status', 'Lost'))"/>
948                        <xsl:text>). </xsl:text>                   </span>
949                                    </xsl:if>
950                     <xsl:if test="count(key('item-by-status', 'Damaged'))>0">
951                    <span class="unavailable">
952                        <xsl:text>Damaged (</xsl:text>
953                        <xsl:value-of select="count(key('item-by-status', 'Damaged'))"/>
954                        <xsl:text>). </xsl:text>                   </span>
955                    </xsl:if>
956                     <xsl:if test="count(key('item-by-status', 'On order'))>0">
957                    <span class="unavailable">
958                        <xsl:text>On order (</xsl:text>
959                        <xsl:value-of select="count(key('item-by-status', 'On order'))"/>
960                        <xsl:text>). </xsl:text>                   </span>
961                    </xsl:if>
962                     <xsl:if test="count(key('item-by-status', 'In transit'))>0">
963                    <span class="unavailable">
964                        <xsl:text>In transit (</xsl:text>
965                        <xsl:value-of select="count(key('item-by-status', 'In transit'))"/>
966                        <xsl:text>). </xsl:text>                   </span>
967                    </xsl:if>
968                </span>
969     </xsl:template>
970
971     <xsl:template name="nameABCDQ">
972             <xsl:call-template name="chopPunctuation">
973                 <xsl:with-param name="chopString">
974                     <xsl:call-template name="subfieldSelect">
975                         <xsl:with-param name="codes">aq</xsl:with-param>
976                     </xsl:call-template>
977                 </xsl:with-param>
978                 <xsl:with-param name="punctuation">
979                     <xsl:text>:,;/ </xsl:text>
980                 </xsl:with-param>
981             </xsl:call-template>
982         <xsl:call-template name="termsOfAddress"/>
983     </xsl:template>
984
985     <xsl:template name="nameABCDN">
986         <xsl:for-each select="marc:subfield[@code='a']">
987                 <xsl:call-template name="chopPunctuation">
988                     <xsl:with-param name="chopString" select="."/>
989                 </xsl:call-template>
990         </xsl:for-each>
991         <xsl:for-each select="marc:subfield[@code='b']">
992                 <xsl:value-of select="."/>
993         </xsl:for-each>
994         <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
995                 <xsl:call-template name="subfieldSelect">
996                     <xsl:with-param name="codes">cdn</xsl:with-param>
997                 </xsl:call-template>
998         </xsl:if>
999     </xsl:template>
1000
1001     <xsl:template name="nameACDEQ">
1002             <xsl:call-template name="subfieldSelect">
1003                 <xsl:with-param name="codes">acdeq</xsl:with-param>
1004             </xsl:call-template>
1005     </xsl:template>
1006
1007     <xsl:template name="termsOfAddress">
1008         <xsl:if test="marc:subfield[@code='b' or @code='c']">
1009             <xsl:call-template name="chopPunctuation">
1010                 <xsl:with-param name="chopString">
1011                     <xsl:call-template name="subfieldSelect">
1012                         <xsl:with-param name="codes">bc</xsl:with-param>
1013                     </xsl:call-template>
1014                 </xsl:with-param>
1015             </xsl:call-template>
1016         </xsl:if>
1017     </xsl:template>
1018
1019     <xsl:template name="nameDate">
1020         <xsl:for-each select="marc:subfield[@code='d']">
1021             <xsl:call-template name="chopPunctuation">
1022                 <xsl:with-param name="chopString" select="."/>
1023             </xsl:call-template>
1024         </xsl:for-each>
1025     </xsl:template>
1026
1027     <xsl:template name="role">
1028         <xsl:for-each select="marc:subfield[@code='e']">
1029                     <xsl:value-of select="."/>
1030         </xsl:for-each>
1031         <xsl:for-each select="marc:subfield[@code='4']">
1032                     <xsl:value-of select="."/>
1033         </xsl:for-each>
1034     </xsl:template>
1035
1036     <xsl:template name="specialSubfieldSelect">
1037         <xsl:param name="anyCodes"/>
1038         <xsl:param name="axis"/>
1039         <xsl:param name="beforeCodes"/>
1040         <xsl:param name="afterCodes"/>
1041         <xsl:variable name="str">
1042             <xsl:for-each select="marc:subfield">
1043                 <xsl:if test="contains($anyCodes, @code) or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis]) or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])">
1044                     <xsl:value-of select="text()"/>
1045                     <xsl:text> </xsl:text>
1046                 </xsl:if>
1047             </xsl:for-each>
1048         </xsl:variable>
1049         <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
1050     </xsl:template>
1051
1052     <xsl:template name="subtitle">
1053         <xsl:if test="marc:subfield[@code='b']">
1054                 <xsl:call-template name="chopPunctuation">
1055                     <xsl:with-param name="chopString">
1056                         <xsl:value-of select="marc:subfield[@code='b']"/>
1057
1058                         <!--<xsl:call-template name="subfieldSelect">
1059                             <xsl:with-param name="codes">b</xsl:with-param>                                 
1060                         </xsl:call-template>-->
1061                     </xsl:with-param>
1062                 </xsl:call-template>
1063         </xsl:if>
1064     </xsl:template>
1065
1066     <xsl:template name="chopBrackets">
1067         <xsl:param name="chopString"></xsl:param>
1068         <xsl:variable name="string">
1069             <xsl:call-template name="chopPunctuation">
1070                 <xsl:with-param name="chopString" select="$chopString"></xsl:with-param>
1071             </xsl:call-template>
1072         </xsl:variable>
1073         <xsl:if test="substring($string, 1,1)='['">
1074             <xsl:value-of select="substring($string,2, string-length($string)-2)"></xsl:value-of>
1075         </xsl:if>
1076         <xsl:if test="substring($string, 1,1)!='['">
1077             <xsl:value-of select="$string"></xsl:value-of>
1078         </xsl:if>
1079     </xsl:template>
1080
1081 </xsl:stylesheet>