<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema-datatypes"
   xmlns:sh="http://josephhall.org/xml/shows"
   version="2.0"
   exclude-result-prefixes="#all">
   <xsl:output method="html" indent="yes" encoding="us-ascii" />    
   <xsl:template match="/sh:venueShowList/sh:venueList"/>
   <xsl:template match="/sh:venueShowList/sh:showList">
      <xsl:apply-templates select="sh:show">
         <xsl:sort select="year-from-date(@date)" data-type="number"/>
         <xsl:sort select="month-from-date(@date)" data-type="number"/>
         <xsl:sort select="day-from-date(@date)" data-type="number"/>
      </xsl:apply-templates>
   </xsl:template>
   <xsl:template match="sh:show">
      <xsl:for-each select=".">
         <xsl:choose>
            <xsl:when test="sh:note">
               <tr>
                  <td rowspan="2">
                     <xsl:apply-templates select="@date"/>
                  </td>
                  <td rowspan="2">
                     <xsl:apply-templates select="sh:artist"/>
                  </td>
                  <td>
                     <xsl:apply-templates select="@venueCode"/>
                     <xsl:if test="sh:note">
                        <xsl:apply-templates select="sh:note"/>
                     </xsl:if>
                  </td>
               </tr>
            </xsl:when>
            <xsl:otherwise>
               <tr>
                  <td>
                     <xsl:apply-templates select="@date"/>
                  </td>
                  <td>
                     <xsl:apply-templates select="sh:artist"/>
                  </td>
                  <td>
                     <xsl:apply-templates select="@venueCode"/>
                  </td>
               </tr>
            </xsl:otherwise>
         </xsl:choose>
      </xsl:for-each>
   </xsl:template>
   <xsl:template match="sh:note">
      <tr>
         <td width="200px">
            <small>
               <xsl:text>(Note: </xsl:text>
               <xsl:value-of select="."/>
               <xsl:text>)</xsl:text>
            </small>
         </td>
      </tr>
   </xsl:template>
   <xsl:template match="@date">
      <xsl:value-of select="day-from-date(.)"/>
      <xsl:choose>
         <xsl:when test="month-from-date(.) = 1">
            <xsl:text> Jan </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 2">
            <xsl:text> Feb </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 3">
            <xsl:text> Mar </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 4">
            <xsl:text> Apr </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 5">
            <xsl:text> May </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 6">
            <xsl:text> Jun </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 7">
            <xsl:text> Jul </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 8">
            <xsl:text> Aug </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 9">
            <xsl:text> Sep </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 10">
            <xsl:text> Oct </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 11">
            <xsl:text> Nov </xsl:text>
         </xsl:when>
         <xsl:when test="month-from-date(.) = 12">
            <xsl:text> Dec </xsl:text>
         </xsl:when>
         <xsl:otherwise>
            <xsl:text> N/A </xsl:text>
         </xsl:otherwise>
      </xsl:choose>      
      <xsl:value-of select="year-from-date(.)"/>
   </xsl:template>
   <xsl:template match="@venueCode">
      <xsl:variable name="ven" select="."/>
      <a>
         <xsl:attribute name="href">
            <xsl:value-of select="/sh:venueShowList/sh:venueList/sh:venue[@venueCode=$ven]/sh:url"/>
         </xsl:attribute>
         <xsl:value-of select="/sh:venueShowList/sh:venueList/sh:venue[@venueCode=$ven]/sh:name"/>      
      </a>
   </xsl:template>
   <xsl:template match="sh:artist">
         <xsl:choose>
            <xsl:when test="@url">
               <a>
                  <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
                  <xsl:value-of select="."></xsl:value-of>
               </a>
            </xsl:when>
            <xsl:otherwise>
               <xsl:value-of select="."></xsl:value-of>
            </xsl:otherwise>
         </xsl:choose>
      <br/>
   </xsl:template>
</xsl:stylesheet>
