5130e8b11de7973421050abd30b2b436e9e7a7f2
[koha.git] / koha-tmpl / opac-tmpl / prog / en / xslt / MARC21slim2OPACDetail.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 <!DOCTYPE stylesheet [<!ENTITY nbsp "&#160;" >]>
4 <xsl:stylesheet version="1.0"
5   xmlns:marc="http://www.loc.gov/MARC21/slim"
6   xmlns:items="http://www.koha-community.org/items"
7   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
8   exclude-result-prefixes="marc items">
9     <xsl:import href="MARC21slimUtils.xsl"/>
10     <xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
11     <xsl:template match="/">
12             <xsl:apply-templates/>
13     </xsl:template>
14
15     <xsl:template match="marc:record">
16
17         <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
18         <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
19
20     <xsl:variable name="UseControlNumber" select="marc:sysprefs/marc:syspref[@name='UseControlNumber']"/>
21     <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
22     <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
23     <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
24     
25     <xsl:variable name="SubjectModifier"><xsl:if test="marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield</xsl:if></xsl:variable>
26     <xsl:variable name="UseAuthoritiesForTracings" select="marc:sysprefs/marc:syspref[@name='UseAuthoritiesForTracings']"/>
27     <xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
28     <xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='OPACDisplay856uAsImage']"/>
29     <xsl:variable name="OPACTrackClicks" select="marc:sysprefs/marc:syspref[@name='TrackClicks']"/>
30     <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/>
31     <xsl:variable name="TracingQuotesLeft">
32       <xsl:choose>
33         <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">{</xsl:when>
34         <xsl:otherwise>"</xsl:otherwise>
35       </xsl:choose>
36     </xsl:variable>
37     <xsl:variable name="TracingQuotesRight">
38       <xsl:choose>
39         <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">}</xsl:when>
40         <xsl:otherwise>"</xsl:otherwise>
41       </xsl:choose>
42     </xsl:variable>
43         <xsl:variable name="leader" select="marc:leader"/>
44         <xsl:variable name="leader6" select="substring($leader,7,1)"/>
45         <xsl:variable name="leader7" select="substring($leader,8,1)"/>
46         <xsl:variable name="leader19" select="substring($leader,20,1)"/>
47         <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
48         <xsl:variable name="materialTypeCode">
49             <xsl:choose>
50                 <xsl:when test="$leader19='a'">ST</xsl:when>
51                 <xsl:when test="$leader6='a'">
52                     <xsl:choose>
53                         <xsl:when test="$leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when>
54                         <xsl:when test="$leader7='i' or $leader7='s'">SE</xsl:when>
55                         <xsl:when test="$leader7='a' or $leader7='b'">AR</xsl:when>
56                     </xsl:choose>
57                 </xsl:when>
58                 <xsl:when test="$leader6='t'">BK</xsl:when>
59                 <xsl:when test="$leader6='o' or $leader6='p'">MX</xsl:when>
60                 <xsl:when test="$leader6='m'">CF</xsl:when>
61                 <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
62                 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='r'">VM</xsl:when>
63                 <xsl:when test="$leader6='i' or $leader6='j'">MU</xsl:when>
64                 <xsl:when test="$leader6='c' or $leader6='d'">PR</xsl:when>
65             </xsl:choose>
66         </xsl:variable>
67         <xsl:variable name="materialTypeLabel">
68             <xsl:choose>
69                 <xsl:when test="$leader19='a'">Set</xsl:when>
70                 <xsl:when test="$leader6='a'">
71                     <xsl:choose>
72                         <xsl:when test="$leader7='c' or $leader7='d' or $leader7='m'">Book</xsl:when>
73                         <xsl:when test="$leader7='i' or $leader7='s'">
74                             <xsl:choose>
75                                 <xsl:when test="substring($controlField008,22,1)!='m'">Continuing Resource</xsl:when>
76                                 <xsl:otherwise>Series</xsl:otherwise>
77                             </xsl:choose>
78                         </xsl:when>
79                         <xsl:when test="$leader7='a' or $leader7='b'">Article</xsl:when>
80                     </xsl:choose>
81                 </xsl:when>
82                 <xsl:when test="$leader6='t'">Book</xsl:when>
83                                 <xsl:when test="$leader6='o'">Kit</xsl:when>
84                 <xsl:when test="$leader6='p'">Mixed materials</xsl:when>
85                 <xsl:when test="$leader6='m'">Computer file</xsl:when>
86                 <xsl:when test="$leader6='e' or $leader6='f'">Map</xsl:when>
87                 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='r'">Visual material</xsl:when>
88                 <xsl:when test="$leader6='j'">Music</xsl:when>
89                 <xsl:when test="$leader6='i'">Sound</xsl:when>
90                 <xsl:when test="$leader6='c' or $leader6='d'">Score</xsl:when>
91             </xsl:choose>
92         </xsl:variable>
93
94         <!-- Title Statement -->
95         <!-- Alternate Graphic Representation (MARC 880) -->
96         <xsl:if test="$display880">
97             <h1 class="title">
98                 <xsl:call-template name="m880Select">
99                     <xsl:with-param name="basetags">245</xsl:with-param>
100                     <xsl:with-param name="codes">abhfgknps</xsl:with-param>
101                 </xsl:call-template>
102             </h1>
103         </xsl:if>
104
105         <xsl:if test="marc:datafield[@tag=245]">
106         <h1 class="title">
107             <xsl:for-each select="marc:datafield[@tag=245]">
108                     <xsl:call-template name="subfieldSelect">
109                         <xsl:with-param name="codes">a</xsl:with-param>
110                     </xsl:call-template>
111                     <xsl:if test="marc:subfield[@code='h']">
112                         <xsl:text> </xsl:text>
113                         <xsl:call-template name="subfieldSelect">
114                             <xsl:with-param name="codes">h</xsl:with-param>
115                         </xsl:call-template>
116                     </xsl:if>
117                     <xsl:if test="marc:subfield[@code='b']">
118                         <xsl:text> </xsl:text>
119                         <xsl:call-template name="subfieldSelect">
120                             <xsl:with-param name="codes">b</xsl:with-param>
121                         </xsl:call-template>
122                     </xsl:if>
123                 <xsl:text> </xsl:text>
124                     <xsl:call-template name="subfieldSelect">
125                         <xsl:with-param name="codes">fgknps</xsl:with-param>
126                     </xsl:call-template>
127             </xsl:for-each>
128         </h1>
129         </xsl:if>
130
131         <!-- Author Statement: Alternate Graphic Representation (MARC 880) -->
132         <xsl:if test="$display880">
133             <h5 class="author">
134                 <xsl:call-template name="m880Select">
135                     <xsl:with-param name="basetags">100,110,111,700,710,711</xsl:with-param>
136                     <xsl:with-param name="codes">abc</xsl:with-param>
137                     <xsl:with-param name="index">au</xsl:with-param>
138                     <!-- do not use label 'by ' here, it would be repeated for every occurence of 100,110,111,700,710,711 -->
139                 </xsl:call-template>
140             </h5>
141         </xsl:if>
142         <xsl:choose>
143             <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]">
144                 <h5 class="author">by
145                     <xsl:call-template name="showAuthor">
146                         <xsl:with-param name="authorfield" select="marc:datafield[@tag=100 or @tag=110 or @tag=111 or @tag=700 or @tag=710 or @tag=711]"/>
147                         <xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/>
148                     </xsl:call-template>
149                 </h5>
150             </xsl:when>
151         </xsl:choose>
152
153    <xsl:if test="$DisplayOPACiconsXSLT!='0'">
154         <xsl:if test="$materialTypeCode!=''">
155         <span class="results_summary type"><span class="label">Type: </span>
156         <xsl:element name="img"><xsl:attribute name="src">/opac-tmpl/lib/famfamfam/<xsl:value-of select="$materialTypeCode"/>.png</xsl:attribute><xsl:attribute name="alt">materialTypeLabel</xsl:attribute><xsl:attribute name="class">materialtype</xsl:attribute></xsl:element>
157         <xsl:value-of select="$materialTypeLabel"/>
158         </span>
159         </xsl:if>
160    </xsl:if>
161
162         <!--Series: Alternate Graphic Representation (MARC 880) -->
163         <xsl:if test="$display880">
164             <xsl:call-template name="m880Select">
165                 <xsl:with-param name="basetags">440,490</xsl:with-param>
166                 <xsl:with-param name="codes">av</xsl:with-param>
167                 <xsl:with-param name="class">results_summary series</xsl:with-param>
168                 <xsl:with-param name="label">Series: </xsl:with-param>
169                 <xsl:with-param name="index">se</xsl:with-param>
170             </xsl:call-template>
171         </xsl:if>
172
173         <!-- Series -->
174         <xsl:if test="marc:datafield[@tag=440 or @tag=490]">
175         <span class="results_summary series"><span class="label">Series: </span>
176         <!-- 440 -->
177         <xsl:for-each select="marc:datafield[@tag=440]">
178             <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="marc:subfield[@code='a']"/>"</xsl:attribute>
179             <xsl:call-template name="chopPunctuation">
180                             <xsl:with-param name="chopString">
181                                 <xsl:call-template name="subfieldSelect">
182                                     <xsl:with-param name="codes">av</xsl:with-param>
183                                 </xsl:call-template>
184                             </xsl:with-param>
185                         </xsl:call-template>
186             </a>
187             <xsl:call-template name="part"/>
188             <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text> ; </xsl:text></xsl:otherwise></xsl:choose>
189         </xsl:for-each>
190
191         <!-- 490 Series not traced, Ind1 = 0 -->
192         <xsl:for-each select="marc:datafield[@tag=490][@ind1!=1]">
193             <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="marc:subfield[@code='a']"/>"</xsl:attribute>
194                         <xsl:call-template name="chopPunctuation">
195                             <xsl:with-param name="chopString">
196                                 <xsl:call-template name="subfieldSelect">
197                                     <xsl:with-param name="codes">av</xsl:with-param>
198                                 </xsl:call-template>
199                             </xsl:with-param>
200                         </xsl:call-template>
201             </a>
202                     <xsl:call-template name="part"/>
203         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
204         </xsl:for-each>
205         <!-- 490 Series traced, Ind1 = 1 -->
206         <xsl:if test="marc:datafield[@tag=490][@ind1=1]">
207             <xsl:for-each select="marc:datafield[@tag=800 or @tag=810 or @tag=811 or @tag=830]">
208                 <xsl:choose>
209                     <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
210                         <a href="/cgi-bin/koha/opac-search.pl?q=rcn:{marc:subfield[@code='w']}">
211                             <xsl:call-template name="chopPunctuation">
212                                 <xsl:with-param name="chopString">
213                                     <xsl:call-template name="subfieldSelect">
214                                         <xsl:with-param name="codes">a_t</xsl:with-param>
215                                     </xsl:call-template>
216                                 </xsl:with-param>
217                             </xsl:call-template>
218                         </a>
219                     </xsl:when>
220                     <xsl:otherwise>
221                         <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="marc:subfield[@code='a']"/>"</xsl:attribute>
222                             <xsl:call-template name="chopPunctuation">
223                                 <xsl:with-param name="chopString">
224                                     <xsl:call-template name="subfieldSelect">
225                                         <xsl:with-param name="codes">a_t</xsl:with-param>
226                                     </xsl:call-template>
227                                 </xsl:with-param>
228                             </xsl:call-template>
229                         </a>
230                         <xsl:call-template name="part"/>
231                     </xsl:otherwise>
232                 </xsl:choose>
233                 <xsl:text>: </xsl:text>
234                 <xsl:value-of  select="marc:subfield[@code='v']" />
235             <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
236             </xsl:for-each>
237         </xsl:if>
238         </span>
239         </xsl:if>
240         
241         <!-- Analytics -->
242         <xsl:if test="$leader7='s'">
243         <span class="results_summary analytics"><span class="label">Analytics: </span>
244             <a>
245             <xsl:choose>
246             <xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
247                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=rcn:<xsl:value-of select="marc:controlfield[@tag=001]"/>+and+(bib-level:a+or+bib-level:b)</xsl:attribute>
248             </xsl:when>
249             <xsl:otherwise>
250                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Host-item:<xsl:value-of select="translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
251             </xsl:otherwise>
252             </xsl:choose>
253             <xsl:text>Show analytics</xsl:text>
254             </a>
255         </span>
256         </xsl:if>
257
258         <!-- Volumes of sets and traced series -->
259         <xsl:if test="$materialTypeCode='ST' or substring($controlField008,22,1)='m'">
260         <span class="results_summary volumes"><span class="label">Volumes: </span>
261             <a>
262             <xsl:choose>
263             <xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
264                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=rcn:<xsl:value-of select="marc:controlfield[@tag=001]"/>+not+(bib-level:a+or+bib-level:b)</xsl:attribute>
265             </xsl:when>
266             <xsl:otherwise>
267                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
268             </xsl:otherwise>
269             </xsl:choose>
270             <xsl:text>Show volumes</xsl:text>
271             </a>
272         </span>
273         </xsl:if>
274
275         <!-- Set -->
276         <xsl:if test="$leader19='c'">
277         <span class="results_summary set"><span class="label">Set: </span>
278         <xsl:for-each select="marc:datafield[@tag=773]">
279             <a>
280             <xsl:choose>
281             <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
282                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
283             </xsl:when>
284             <xsl:otherwise>
285                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate(//marc:datafield[@tag=245]/marc:subfield[@code='a'], '.', '')"/></xsl:attribute>
286             </xsl:otherwise>
287             </xsl:choose>
288             <xsl:value-of select="translate(//marc:datafield[@tag=245]/marc:subfield[@code='a'], '.', '')" />
289             </a>
290             <xsl:choose>
291                 <xsl:when test="position()=last()"></xsl:when>
292                 <xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise>
293             </xsl:choose>
294         </xsl:for-each>
295         </span>
296         </xsl:if>
297
298         <!-- Publisher Statement: Alternate Graphic Representation (MARC 880) -->
299         <xsl:if test="$display880">
300             <xsl:call-template name="m880Select">
301                 <xsl:with-param name="basetags">260</xsl:with-param>
302                 <xsl:with-param name="codes">abcg</xsl:with-param>
303                 <xsl:with-param name="class">results_summary publisher</xsl:with-param>
304                 <xsl:with-param name="label">Publisher: </xsl:with-param>
305             </xsl:call-template>
306         </xsl:if>
307
308         <xsl:if test="marc:datafield[@tag=260]">
309         <span class="results_summary publisher"><span class="label">Publisher: </span>
310             <xsl:for-each select="marc:datafield[@tag=260]">
311                 <xsl:if test="marc:subfield[@code='a']">
312                     <xsl:call-template name="subfieldSelect">
313                         <xsl:with-param name="codes">a</xsl:with-param>
314                     </xsl:call-template>
315                 </xsl:if>
316                 <xsl:text> </xsl:text>
317                 <xsl:if test="marc:subfield[@code='b']">
318                 <a href="/cgi-bin/koha/opac-search.pl?q=pb:{marc:subfield[@code='b']}">
319                     <xsl:call-template name="subfieldSelect">
320                         <xsl:with-param name="codes">b</xsl:with-param>
321                     </xsl:call-template>
322                </a>
323                </xsl:if>
324                <xsl:text> </xsl:text>
325                 <xsl:call-template name="chopPunctuation">
326                   <xsl:with-param name="chopString">
327                     <xsl:call-template name="subfieldSelect">
328                         <xsl:with-param name="codes">cg</xsl:with-param>
329                     </xsl:call-template>
330                    </xsl:with-param>
331                </xsl:call-template>
332                     <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
333             </xsl:for-each>
334         </span>
335         </xsl:if>
336
337         <!-- Edition Statement: Alternate Graphic Representation (MARC 880) -->
338         <xsl:if test="$display880">
339             <xsl:call-template name="m880Select">
340                 <xsl:with-param name="basetags">250</xsl:with-param>
341                 <xsl:with-param name="codes">ab</xsl:with-param>
342                 <xsl:with-param name="class">results_summary edition</xsl:with-param>
343                 <xsl:with-param name="label">Edition: </xsl:with-param>
344             </xsl:call-template>
345         </xsl:if>
346
347         <xsl:if test="marc:datafield[@tag=250]">
348         <span class="results_summary edition"><span class="label">Edition: </span>
349             <xsl:for-each select="marc:datafield[@tag=250]">
350                 <xsl:call-template name="chopPunctuation">
351                   <xsl:with-param name="chopString">
352                     <xsl:call-template name="subfieldSelect">
353                         <xsl:with-param name="codes">ab</xsl:with-param>
354                     </xsl:call-template>
355                    </xsl:with-param>
356                </xsl:call-template>
357                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
358             </xsl:for-each>
359         </span>
360         </xsl:if>
361
362         <!-- Description: Alternate Graphic Representation (MARC 880) -->
363         <xsl:if test="$display880">
364             <xsl:call-template name="m880Select">
365                 <xsl:with-param name="basetags">300</xsl:with-param>
366                 <xsl:with-param name="codes">abceg</xsl:with-param>
367                 <xsl:with-param name="class">results_summary description</xsl:with-param>
368                 <xsl:with-param name="label">Description: </xsl:with-param>
369             </xsl:call-template>
370         </xsl:if>
371
372         <xsl:if test="marc:datafield[@tag=300]">
373         <span class="results_summary description"><span class="label">Description: </span>
374             <xsl:for-each select="marc:datafield[@tag=300]">
375                 <xsl:call-template name="chopPunctuation">
376                   <xsl:with-param name="chopString">
377                     <xsl:call-template name="subfieldSelect">
378                         <xsl:with-param name="codes">abceg</xsl:with-param>
379                     </xsl:call-template>
380                    </xsl:with-param>
381                </xsl:call-template>
382                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
383             </xsl:for-each>
384         </span>
385        </xsl:if>
386
387        <xsl:if test="marc:datafield[@tag=020]">
388         <span class="results_summary isbn"><span class="label">ISBN: </span>
389         <xsl:for-each select="marc:datafield[@tag=020]">
390         <xsl:variable name="isbn" select="marc:subfield[@code='a']"/>
391                 <xsl:value-of select="marc:subfield[@code='a']"/>
392                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
393         </xsl:for-each>
394         </span>
395         </xsl:if>
396
397         <xsl:if test="marc:datafield[@tag=022]">
398         <span class="results_summary issn"><span class="label">ISSN: </span>
399         <xsl:for-each select="marc:datafield[@tag=022]">
400                 <xsl:value-of select="marc:subfield[@code='a']"/>
401                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
402         </xsl:for-each>
403         </span>
404         </xsl:if>
405
406         <xsl:if test="marc:datafield[@tag=013]">
407             <span class="results_summary patent_info">
408                 <span class="label">Patent information: </span>
409                 <xsl:for-each select="marc:datafield[@tag=013]">
410                     <xsl:call-template name="subfieldSelect">
411                         <xsl:with-param name="codes">acdef</xsl:with-param>
412                         <xsl:with-param name="delimeter">, </xsl:with-param>
413                     </xsl:call-template>
414                 <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
415                 </xsl:for-each>
416             </span>
417         </xsl:if>
418
419         <xsl:if test="marc:datafield[@tag=088]">
420             <span class="results_summary report_number">
421                 <span class="label">Report number: </span>
422                 <xsl:for-each select="marc:datafield[@tag=088]">
423                     <xsl:call-template name="subfieldSelect">
424                         <xsl:with-param name="codes">a</xsl:with-param>
425                     </xsl:call-template>
426                 <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
427                 </xsl:for-each>
428             </span>
429         </xsl:if>
430
431         <!-- Other Title  Statement: Alternate Graphic Representation (MARC 880) -->
432         <xsl:if test="$display880">
433             <xsl:call-template name="m880Select">
434                 <xsl:with-param name="basetags">246</xsl:with-param>
435                 <xsl:with-param name="codes">abhfgnp</xsl:with-param>
436                 <xsl:with-param name="class">results_summary other_title</xsl:with-param>
437                 <xsl:with-param name="label">Other title: </xsl:with-param>
438             </xsl:call-template>
439         </xsl:if>
440
441         <xsl:if test="marc:datafield[@tag=246]">
442         <span class="results_summary other_title"><span class="label">Other title: </span>
443             <xsl:for-each select="marc:datafield[@tag=246]">
444                 <xsl:call-template name="chopPunctuation">
445                   <xsl:with-param name="chopString">
446                     <xsl:call-template name="subfieldSelect">
447                         <xsl:with-param name="codes">iabhfgnp</xsl:with-param>
448                     </xsl:call-template>
449                    </xsl:with-param>
450                </xsl:call-template>
451                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
452             </xsl:for-each>
453         </span>
454        </xsl:if>
455
456
457         <xsl:if test="marc:datafield[@tag=242]">
458         <span class="results_summary translated_title"><span class="label">Title translated: </span>
459             <xsl:for-each select="marc:datafield[@tag=242]">
460                 <xsl:call-template name="chopPunctuation">
461                   <xsl:with-param name="chopString">
462                     <xsl:call-template name="subfieldSelect">
463                         <xsl:with-param name="codes">abchnp</xsl:with-param>
464                     </xsl:call-template>
465                    </xsl:with-param>
466                </xsl:call-template>
467                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
468             </xsl:for-each>
469         </span>
470        </xsl:if>
471
472         <!-- Uniform Title  Statement: Alternate Graphic Representation (MARC 880) -->
473         <xsl:if test="$display880">
474             <xsl:call-template name="m880Select">
475                 <xsl:with-param name="basetags">130,240</xsl:with-param>
476                 <xsl:with-param name="codes">adfklmor</xsl:with-param>
477                 <xsl:with-param name="class">results_summary uniform_title</xsl:with-param>
478                 <xsl:with-param name="label">Uniform titles: </xsl:with-param>
479             </xsl:call-template>
480         </xsl:if>
481
482         <xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
483         <span class="results_summary uniform_titles"><span class="label">Uniform titles: </span>
484         <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
485             <xsl:variable name="str">
486                 <xsl:for-each select="marc:subfield">
487                     <xsl:if test="(contains('adfklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))">
488                         <xsl:value-of select="text()"/>
489                         <xsl:text> </xsl:text>
490                      </xsl:if>
491                 </xsl:for-each>
492             </xsl:variable>
493             <xsl:call-template name="chopPunctuation">
494                 <xsl:with-param name="chopString">
495                     <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
496
497                 </xsl:with-param>
498             </xsl:call-template>
499             <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
500         </xsl:for-each>
501         </span>
502         </xsl:if>
503
504         <xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']">
505             <span class="results_summary subjects"><span class="label">Subject(s): </span>
506             <xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']">
507             <a>
508             <xsl:choose>
509             <xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
510                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
511             </xsl:when>
512             <xsl:when test="$TraceSubjectSubdivisions='1'">
513                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:call-template name="subfieldSelect">
514                         <xsl:with-param name="codes">abcdfgklmnopqrstvxyz</xsl:with-param>
515                         <xsl:with-param name="delimeter"> AND </xsl:with-param>
516                         <xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/></xsl:with-param>
517                         <xsl:with-param name="suffix"><xsl:value-of select="$TracingQuotesRight"/>)</xsl:with-param>
518                     </xsl:call-template>
519                 </xsl:attribute>
520             </xsl:when>
521             <xsl:otherwise>
522                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/><xsl:value-of select="marc:subfield[@code='a']"/><xsl:value-of select="$TracingQuotesRight"/></xsl:attribute>
523             </xsl:otherwise>
524             </xsl:choose>
525             <xsl:call-template name="chopPunctuation">
526                 <xsl:with-param name="chopString">
527                     <xsl:call-template name="subfieldSelect">
528                         <xsl:with-param name="codes">abcdfgklmnopqrstvxyz</xsl:with-param>
529                         <xsl:with-param name="subdivCodes">vxyz</xsl:with-param>
530                         <xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
531                     </xsl:call-template>
532                 </xsl:with-param>
533             </xsl:call-template>
534             </a>
535             <xsl:if test="marc:subfield[@code=9]">
536                 <a class='authlink'>
537                     <xsl:attribute name="href">/cgi-bin/koha/opac-authoritiesdetail.pl?authid=<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
538                     <img style="vertical-align:middle" height="15" width="15" src="/opac-tmpl/prog/images/filefind.png"/>
539                 </a>
540             </xsl:if>
541             <xsl:choose>
542             <xsl:when test="position()=last()"></xsl:when>
543             <xsl:otherwise> | </xsl:otherwise>
544             </xsl:choose>
545
546             </xsl:for-each>
547             </span>
548         </xsl:if>
549
550 <!-- Image processing code added here, takes precedence over text links including y3z text   -->
551         <xsl:if test="marc:datafield[@tag=856]">
552         <span class="results_summary online_resources"><span class="label">Online resources: </span>
553         <xsl:for-each select="marc:datafield[@tag=856]">
554             <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable>
555             <a>
556             <xsl:choose>
557               <xsl:when test="$OPACTrackClicks='track'">
558                 <xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="marc:subfield[@code='u']"/>;biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
559               </xsl:when>
560               <xsl:when test="$OPACTrackClicks='anonymous'">
561                 <xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="marc:subfield[@code='u']"/>;biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
562               </xsl:when>
563               <xsl:otherwise>
564                 <xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
565               </xsl:otherwise>
566             </xsl:choose>
567             <xsl:if test="$OPACURLOpenInNewWindow='1'">
568                 <xsl:attribute name="target">_blank</xsl:attribute>
569             </xsl:if>
570             <xsl:choose>
571             <xsl:when test="($Show856uAsImage='Details' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')">
572                 <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="height">100</xsl:attribute></xsl:element><xsl:text></xsl:text>
573             </xsl:when>                                    
574             <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
575                 <xsl:call-template name="subfieldSelect">
576                     <xsl:with-param name="codes">y3z</xsl:with-param>
577                 </xsl:call-template>
578             </xsl:when>
579             <xsl:when test="$URLLinkText!=''">
580                 <xsl:value-of select="$URLLinkText"/>
581             </xsl:when>
582             <xsl:otherwise>
583                 <xsl:text>Click here to access online</xsl:text>
584             </xsl:otherwise>
585             </xsl:choose>
586             </a>
587             <xsl:choose>
588             <xsl:when test="position()=last()"><xsl:text>  </xsl:text></xsl:when>
589             <xsl:otherwise> | </xsl:otherwise>
590             </xsl:choose>
591         </xsl:for-each>
592         </span>
593         </xsl:if>
594
595         <!-- 530 -->
596         <xsl:if test="marc:datafield[@tag=530]">
597         <xsl:for-each select="marc:datafield[@tag=530]">
598         <span class="results_summary additionalforms">
599             <xsl:call-template name="subfieldSelect">
600                 <xsl:with-param name="codes">abcd</xsl:with-param>
601             </xsl:call-template>
602             <xsl:for-each select="marc:subfield[@code='u']">
603                 <a><xsl:attribute name="href"><xsl:value-of select="text()"/></xsl:attribute>
604                 <xsl:if test="$OPACURLOpenInNewWindow='1'">
605                     <xsl:attribute name="target">_blank</xsl:attribute>
606                 </xsl:if>
607                 <xsl:value-of select="text()"/>
608                 </a>
609             </xsl:for-each>
610         </span>
611         </xsl:for-each>
612         </xsl:if>
613
614         <!-- 505 -->
615         <xsl:if test="marc:datafield[@tag=505]">
616         <div class="results_summary contents">
617         <xsl:for-each select="marc:datafield[@tag=505]">
618         <xsl:if test="position()=1">
619             <xsl:choose>
620             <xsl:when test="@ind1=1">
621                 <span class="label">Incomplete contents:</span>
622             </xsl:when>
623             <xsl:when test="@ind1=2">
624                 <span class="label">Partial contents:</span>
625             </xsl:when>
626             <xsl:otherwise>
627                 <span class="label">Contents:</span>
628             </xsl:otherwise>
629             </xsl:choose>
630         </xsl:if>
631         <div class='contentblock'>
632         <xsl:choose>
633         <xsl:when test="@ind2=0">
634             <xsl:call-template name="subfieldSelectSpan">
635                 <xsl:with-param name="codes">tru</xsl:with-param>
636             </xsl:call-template>
637         </xsl:when>
638         <xsl:otherwise>
639             <xsl:call-template name="subfieldSelectSpan">
640                 <xsl:with-param name="codes">atru</xsl:with-param>
641             </xsl:call-template>
642         </xsl:otherwise>
643         </xsl:choose>
644         </div>
645         </xsl:for-each>
646         </div>
647         </xsl:if>
648
649         <!-- 583 -->
650         <xsl:if test="marc:datafield[@tag=583]">
651         <xsl:for-each select="marc:datafield[@tag=583]">
652             <xsl:if test="@ind1=1 or @ind1=' '">
653             <span class="results_summary actionnote">
654                 <xsl:choose>
655                 <xsl:when test="marc:subfield[@code='z']">
656                     <xsl:value-of select="marc:subfield[@code='z']"/>
657                 </xsl:when>
658                 <xsl:otherwise>
659                     <xsl:call-template name="subfieldSelect">
660                         <xsl:with-param name="codes">abcdefgijklnou</xsl:with-param>
661                     </xsl:call-template>
662                 </xsl:otherwise>
663                 </xsl:choose>
664             </span>
665             </xsl:if>
666         </xsl:for-each>
667         </xsl:if>
668
669         <!-- 586 -->
670         <xsl:if test="marc:datafield[@tag=586]">
671         <xsl:for-each select="marc:datafield[@tag=586]">
672             <span class="results_summary awardsnote">
673                 <xsl:if test="@ind1=' '">
674                 <span class="label">Awards: </span>
675                 </xsl:if>
676                 <xsl:value-of select="marc:subfield[@code='a']"/>
677             </span>
678         </xsl:for-each>
679         </xsl:if>
680
681         <!-- 773 -->
682         <xsl:if test="marc:datafield[@tag=773]">
683         <xsl:for-each select="marc:datafield[@tag=773]">
684         <xsl:if test="@ind1=0">
685         <span class="results_summary in"><span class="label">
686         <xsl:choose>
687         <xsl:when test="@ind2=' '">
688             In:
689         </xsl:when>
690         <xsl:when test="@ind2=8">
691             <xsl:if test="marc:subfield[@code='i']">
692                 <xsl:value-of select="marc:subfield[@code='i']"/>
693             </xsl:if>
694         </xsl:when>
695         </xsl:choose>
696         </span>
697                 <xsl:variable name="f773">
698                     <xsl:call-template name="chopPunctuation"><xsl:with-param name="chopString"><xsl:call-template name="subfieldSelect">
699                         <xsl:with-param name="codes">a_t</xsl:with-param>
700                     </xsl:call-template></xsl:with-param></xsl:call-template>
701                 </xsl:variable>
702             <xsl:choose>
703                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
704                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
705                         <xsl:value-of select="translate($f773, '()', '')"/>
706                     </a>
707                     <xsl:if test="marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/></xsl:if>
708                 </xsl:when>
709                 <xsl:when test="marc:subfield[@code='0']">
710                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="marc:subfield[@code='0']"/></xsl:attribute>
711                         <xsl:value-of select="$f773"/>
712                     </a>
713                 </xsl:when>
714                 <xsl:otherwise>
715                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate($f773, '()', '')"/></xsl:attribute>
716                         <xsl:value-of select="$f773"/>
717                     </a>
718                     <xsl:if test="marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/></xsl:if>
719                 </xsl:otherwise>
720             </xsl:choose>
721         </span>
722
723         <xsl:if test="marc:subfield[@code='n']">
724             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
725         </xsl:if>
726
727         </xsl:if>
728         </xsl:for-each>
729         </xsl:if>
730
731         <xsl:for-each select="marc:datafield[@tag=511]">
732             <span class="results_summary perf_note">
733                 <span class="label">
734                     <xsl:if test="@ind1=1"><xsl:text>Cast: </xsl:text></xsl:if>
735                 </span>
736                 <xsl:call-template name="subfieldSelect">
737                     <xsl:with-param name="codes">a</xsl:with-param>
738                 </xsl:call-template>
739             </span>
740         </xsl:for-each>
741
742         <xsl:if test="marc:datafield[@tag=502]">
743             <span class="results_summary diss_note">
744                 <span class="label">Dissertation note: </span>
745                 <xsl:for-each select="marc:datafield[@tag=502]">
746                     <xsl:call-template name="subfieldSelect">
747                         <xsl:with-param name="codes">abcdgo</xsl:with-param>
748                     </xsl:call-template>
749                 </xsl:for-each>
750                 <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text> </xsl:text></xsl:otherwise></xsl:choose>
751             </span>
752         </xsl:if>
753
754         <xsl:for-each select="marc:datafield[@tag=520]">
755         <span class="results_summary summary"><span class="label">
756         <xsl:choose>
757           <xsl:when test="@ind1=0"><xsl:text>Subject: </xsl:text></xsl:when>
758           <xsl:when test="@ind1=1"><xsl:text>Review: </xsl:text></xsl:when>
759           <xsl:when test="@ind1=2"><xsl:text>Scope and content: </xsl:text></xsl:when>
760           <xsl:when test="@ind1=3"><xsl:text>Abstract: </xsl:text></xsl:when>
761           <xsl:when test="@ind1=4"><xsl:text>Content advice: </xsl:text></xsl:when>
762           <xsl:otherwise><xsl:text>Summary: </xsl:text></xsl:otherwise>
763         </xsl:choose>
764         </span>
765         <xsl:call-template name="subfieldSelect">
766           <xsl:with-param name="codes">abcu</xsl:with-param>
767         </xsl:call-template>
768         </span>
769         </xsl:for-each>
770
771         <!-- 866 textual holdings -->
772         <xsl:if test="marc:datafield[@tag=866]">
773             <span class="results_summary holdings_note"><span class="label">Holdings note: </span>
774                 <xsl:for-each select="marc:datafield[@tag=866]">
775                     <xsl:call-template name="subfieldSelect">
776                         <xsl:with-param name="codes">az</xsl:with-param>
777                     </xsl:call-template>
778                     <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
779                 </xsl:for-each>
780             </span>
781         </xsl:if>
782
783         <!--  775 Other Edition  -->
784         <xsl:if test="marc:datafield[@tag=775]">
785         <span class="results_summary other_editions"><span class="label">Other editions: </span>
786         <xsl:for-each select="marc:datafield[@tag=775]">
787             <xsl:variable name="f775">
788                 <xsl:call-template name="chopPunctuation"><xsl:with-param name="chopString"><xsl:call-template name="subfieldSelect">
789                 <xsl:with-param name="codes">a_t</xsl:with-param>
790                 </xsl:call-template></xsl:with-param></xsl:call-template>
791             </xsl:variable>
792             <xsl:if test="marc:subfield[@code='i']">
793                 <xsl:call-template name="subfieldSelect">
794                     <xsl:with-param name="codes">i</xsl:with-param>
795                 </xsl:call-template>
796                 <xsl:text>: </xsl:text>
797             </xsl:if>
798             <a>
799             <xsl:choose>
800             <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
801                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
802             </xsl:when>
803             <xsl:otherwise>
804                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate($f775, '()', '')"/></xsl:attribute>
805             </xsl:otherwise>
806             </xsl:choose>
807             <xsl:call-template name="subfieldSelect">
808                 <xsl:with-param name="codes">a_t</xsl:with-param>
809             </xsl:call-template>
810             </a>
811             <xsl:choose>
812                 <xsl:when test="position()=last()"></xsl:when>
813                 <xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise>
814             </xsl:choose>
815         </xsl:for-each>
816         </span>
817         </xsl:if>
818
819         <!-- 780 -->
820         <xsl:if test="marc:datafield[@tag=780]">
821         <xsl:for-each select="marc:datafield[@tag=780]">
822         <xsl:if test="@ind1=0">
823         <span class="results_summary preceeding_entry">
824         <xsl:choose>
825         <xsl:when test="@ind2=0">
826             <span class="label">Continues:</span>
827         </xsl:when>
828         <xsl:when test="@ind2=1">
829             <span class="label">Continues in part:</span>
830         </xsl:when>
831         <xsl:when test="@ind2=2">
832             <span class="label">Supersedes:</span>
833         </xsl:when>
834         <xsl:when test="@ind2=3">
835             <span class="label">Supersedes in part:</span>
836         </xsl:when>
837         <xsl:when test="@ind2=4">
838             <span class="label">Formed by the union: ... and: ...</span>
839         </xsl:when>
840         <xsl:when test="@ind2=5">
841             <span class="label">Absorbed:</span>
842         </xsl:when>
843         <xsl:when test="@ind2=6">
844             <span class="label">Absorbed in part:</span>
845         </xsl:when>
846         <xsl:when test="@ind2=7">
847             <span class="label">Separated from:</span>
848         </xsl:when>
849         </xsl:choose>
850                 <xsl:variable name="f780">
851                     <xsl:call-template name="subfieldSelect">
852                         <xsl:with-param name="codes">a_t</xsl:with-param>
853                     </xsl:call-template>
854                 </xsl:variable>
855             <xsl:choose>
856                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
857                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
858                         <xsl:value-of select="translate($f780, '()', '')"/>
859                     </a>
860                 </xsl:when>
861                 <xsl:otherwise>
862                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f780, '()', '')"/></xsl:attribute>
863                         <xsl:value-of select="translate($f780, '()', '')"/>
864                     </a>
865                 </xsl:otherwise>
866             </xsl:choose>
867         </span>
868
869         <xsl:if test="marc:subfield[@code='n']">
870             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
871         </xsl:if>
872
873         </xsl:if>
874         </xsl:for-each>
875         </xsl:if>
876
877         <!-- 785 -->
878         <xsl:if test="marc:datafield[@tag=785]">
879         <xsl:for-each select="marc:datafield[@tag=785]">
880         <xsl:if test="@ind1=0">
881         <span class="results_summary succeeding_entry">
882         <xsl:choose>
883         <xsl:when test="@ind2=0">
884             <span class="label">Continued by:</span>
885         </xsl:when>
886         <xsl:when test="@ind2=1">
887             <span class="label">Continued in part by:</span>
888         </xsl:when>
889         <xsl:when test="@ind2=2">
890             <span class="label">Superseded by:</span>
891         </xsl:when>
892         <xsl:when test="@ind2=3">
893             <span class="label">Superseded in part by:</span>
894         </xsl:when>
895         <xsl:when test="@ind2=4">
896             <span class="label">Absorbed by:</span>
897         </xsl:when>
898         <xsl:when test="@ind2=5">
899             <span class="label">Absorbed in part by:</span>
900         </xsl:when>
901         <xsl:when test="@ind2=6">
902             <span class="label">Split into .. and ...:</span>
903         </xsl:when>
904         <xsl:when test="@ind2=7">
905             <span class="label">Merged with ... to form ...</span>
906         </xsl:when>
907         <xsl:when test="@ind2=8">
908             <span class="label">Changed back to:</span>
909         </xsl:when>
910
911         </xsl:choose>
912                    <xsl:variable name="f785">
913                     <xsl:call-template name="subfieldSelect">
914                         <xsl:with-param name="codes">a_t</xsl:with-param>
915                     </xsl:call-template>
916                 </xsl:variable>
917
918             <xsl:choose>
919                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
920                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
921                         <xsl:value-of select="translate($f785, '()', '')"/>
922                     </a>
923                 </xsl:when>
924                 <xsl:otherwise>
925                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f785, '()', '')"/></xsl:attribute>
926                         <xsl:value-of select="translate($f785, '()', '')"/>
927                     </a>
928                 </xsl:otherwise>
929             </xsl:choose>
930
931         </span>
932
933         <xsl:if test="marc:subfield[@code='n']">
934             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
935         </xsl:if>
936
937         </xsl:if>
938         </xsl:for-each>
939         </xsl:if>
940
941     </xsl:template>
942
943     <xsl:template name="showAuthor">
944         <xsl:param name="authorfield" />
945         <xsl:param name="UseAuthoritiesForTracings" />
946         <xsl:for-each select="$authorfield">
947             <xsl:choose><xsl:when test="position()!=1"><xsl:text>; </xsl:text></xsl:when></xsl:choose>
948             <xsl:choose>
949                 <xsl:when test="not(@tag=111 or @tag=711)" />
950                 <xsl:when test="marc:subfield[@code='n']">
951                     <xsl:text> </xsl:text>
952                     <xsl:call-template name="subfieldSelect">
953                         <xsl:with-param name="codes">n</xsl:with-param>
954                     </xsl:call-template>
955                     <xsl:text> </xsl:text>
956                 </xsl:when>
957             </xsl:choose>
958             <a>
959                 <xsl:choose>
960                     <xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
961                         <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
962                     </xsl:when>
963                     <xsl:otherwise>
964                         <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
965                     </xsl:otherwise>
966                 </xsl:choose>
967                 <xsl:choose>
968                     <xsl:when test="@tag=100 or @tag=700"><xsl:call-template name="nameABCDQ"/></xsl:when>
969                     <xsl:when test="@tag=110 or @tag=710"><xsl:call-template name="nameABCDN"/></xsl:when>
970                     <xsl:when test="@tag=111 or @tag=711"><xsl:call-template name="nameACDEQ"/></xsl:when>
971                 </xsl:choose>
972                 <!-- add relator code too between brackets-->
973                 <xsl:if test="marc:subfield[@code='4' or @code='e']">
974                     <span class="relatorcode">
975                     <xsl:text> [</xsl:text>
976                     <xsl:choose>
977                         <xsl:when test="marc:subfield[@code=4]"><xsl:value-of select="marc:subfield[@code=4]"/></xsl:when>
978                         <xsl:otherwise><xsl:value-of select="marc:subfield[@code='e']"/></xsl:otherwise>
979                     </xsl:choose>
980                     <xsl:text>]</xsl:text>
981                     </span>
982                 </xsl:if>
983             </a>
984             <xsl:if test="marc:subfield[@code=9]">
985                 <a class='authlink'>
986                     <xsl:attribute name="href">/cgi-bin/koha/opac-authoritiesdetail.pl?authid=<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
987                     <img style="vertical-align:middle" height="15" width="15" src="/opac-tmpl/prog/images/filefind.png"/>
988                 </a>
989             </xsl:if>
990         </xsl:for-each>
991         <xsl:text>.</xsl:text>
992     </xsl:template>
993
994     <xsl:template name="nameABCDQ">
995             <xsl:call-template name="chopPunctuation">
996                 <xsl:with-param name="chopString">
997                     <xsl:call-template name="subfieldSelect">
998                         <xsl:with-param name="codes">aq</xsl:with-param>
999                     </xsl:call-template>
1000                 </xsl:with-param>
1001                 <xsl:with-param name="punctuation">
1002                     <xsl:text>:,;/ </xsl:text>
1003                 </xsl:with-param>
1004             </xsl:call-template>
1005         <xsl:call-template name="termsOfAddress"/>
1006     </xsl:template>
1007
1008     <xsl:template name="nameABCDN">
1009         <xsl:for-each select="marc:subfield[@code='a']">
1010                 <xsl:call-template name="chopPunctuation">
1011                     <xsl:with-param name="chopString" select="."/>
1012                 </xsl:call-template>
1013         </xsl:for-each>
1014         <xsl:for-each select="marc:subfield[@code='b']">
1015             <xsl:value-of select="."/>
1016             <xsl:choose>
1017                 <xsl:when test="position() != last()">
1018                     <xsl:text> -- </xsl:text>
1019                 </xsl:when>
1020             </xsl:choose>
1021         </xsl:for-each>
1022         <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
1023                 <xsl:call-template name="subfieldSelect">
1024                     <xsl:with-param name="codes">cdn</xsl:with-param>
1025                 </xsl:call-template>
1026         </xsl:if>
1027     </xsl:template>
1028
1029     <xsl:template name="nameACDEQ">
1030             <xsl:call-template name="subfieldSelect">
1031                 <xsl:with-param name="codes">acdeq</xsl:with-param>
1032             </xsl:call-template>
1033     </xsl:template>
1034     <xsl:template name="termsOfAddress">
1035         <xsl:if test="marc:subfield[@code='b' or @code='c']">
1036             <xsl:call-template name="chopPunctuation">
1037                 <xsl:with-param name="chopString">
1038                     <xsl:call-template name="subfieldSelect">
1039                         <xsl:with-param name="codes">bc</xsl:with-param>
1040                     </xsl:call-template>
1041                 </xsl:with-param>
1042             </xsl:call-template>
1043         </xsl:if>
1044     </xsl:template>
1045
1046     <xsl:template name="part">
1047         <xsl:variable name="partNumber">
1048             <xsl:call-template name="specialSubfieldSelect">
1049                 <xsl:with-param name="axis">n</xsl:with-param>
1050                 <xsl:with-param name="anyCodes">n</xsl:with-param>
1051                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
1052             </xsl:call-template>
1053         </xsl:variable>
1054         <xsl:variable name="partName">
1055             <xsl:call-template name="specialSubfieldSelect">
1056                 <xsl:with-param name="axis">p</xsl:with-param>
1057                 <xsl:with-param name="anyCodes">p</xsl:with-param>
1058                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
1059             </xsl:call-template>
1060         </xsl:variable>
1061         <xsl:if test="string-length(normalize-space($partNumber))">
1062                 <xsl:call-template name="chopPunctuation">
1063                     <xsl:with-param name="chopString" select="$partNumber"/>
1064                 </xsl:call-template>
1065         </xsl:if>
1066         <xsl:if test="string-length(normalize-space($partName))">
1067                 <xsl:call-template name="chopPunctuation">
1068                     <xsl:with-param name="chopString" select="$partName"/>
1069                 </xsl:call-template>
1070         </xsl:if>
1071     </xsl:template>
1072
1073     <xsl:template name="specialSubfieldSelect">
1074         <xsl:param name="anyCodes"/>
1075         <xsl:param name="axis"/>
1076         <xsl:param name="beforeCodes"/>
1077         <xsl:param name="afterCodes"/>
1078         <xsl:variable name="str">
1079             <xsl:for-each select="marc:subfield">
1080                 <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])">
1081                     <xsl:value-of select="text()"/>
1082                     <xsl:text> </xsl:text>
1083                 </xsl:if>
1084             </xsl:for-each>
1085         </xsl:variable>
1086         <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
1087     </xsl:template>
1088 </xsl:stylesheet>