+<xsl:template name="print_day">
+ <xsl:param name="day"/>
+ <xsl:choose>
+ <xsl:when test="$day = '01'">1st</xsl:when>
+ <xsl:when test="$day = '02'">2nd</xsl:when>
+ <xsl:when test="$day = '03'">3rd</xsl:when>
+ <xsl:when test="$day = '11'">11th</xsl:when>
+ <xsl:when test="$day = '11'">12th</xsl:when>
+ <xsl:when test="$day = '11'">13th</xsl:when>
+ <xsl:when test="substring($day,2,1) = '1'">
+ <xsl:value-of select="$day"/>
+ <xsl:text>st</xsl:text>
+ </xsl:when>
+ <xsl:when test="substring($day,2,1) = '2'">
+ <xsl:value-of select="$day"/>
+ <xsl:text>nd</xsl:text>
+ </xsl:when>
+ <xsl:when test="substring($day,2,1) = '3'">
+ <xsl:value-of select="$day"/>
+ <xsl:text>rd</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$day"/>
+ <xsl:text>th</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="print_interval">
+ <xsl:param name="begin"/>
+ <xsl:param name="end"/>
+ <xsl:variable name="byear" select="substring($begin,1,4)"/>
+ <xsl:variable name="bmonth" select="substring($begin,5,2)"/>
+ <xsl:variable name="bday" select="substring($begin,7,2)"/>
+ <xsl:variable name="eyear" select="substring($end,1,4)"/>
+ <xsl:variable name="emonth" select="substring($end,5,2)"/>
+ <xsl:variable name="eday" select="substring($end,7,2)"/>
+ <xsl:choose>
+ <xsl:when test="$byear != $eyear">
+ <xsl:call-template name="print_date">
+ <xsl:with-param name="date" select="$begin"/>
+ </xsl:call-template>
+ <xsl:call-template name="print_date">
+ <xsl:text> - </xsl:text>
+ <xsl:with-param name="date" select="$end"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$bmonth != $emonth">
+ <xsl:call-template name="print_month">
+ <xsl:with-param name="month" select="$bmonth"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="print_day">
+ <xsl:with-param name="day" select="$bday"/>
+ </xsl:call-template>
+ <xsl:text> - </xsl:text>
+ <xsl:call-template name="print_month">
+ <xsl:with-param name="month" select="$emonth"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="print_day">
+ <xsl:with-param name="day" select="$eday"/>
+ </xsl:call-template>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$byear"/>
+ </xsl:when>
+ <xsl:when test="$bday != $eday">
+ <xsl:call-template name="print_month">
+ <xsl:with-param name="month" select="$bmonth"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="print_day">
+ <xsl:with-param name="day" select="$bday"/>
+ </xsl:call-template>
+ <xsl:text> - </xsl:text>
+ <xsl:call-template name="print_day">
+ <xsl:with-param name="day" select="$eday"/>
+ </xsl:call-template>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$byear"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="print_date">
+ <xsl:with-param name="date" select="$begin"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="color_of_deadline_kind">
+ <xsl:param name="kind"/>
+ <xsl:choose>
+ <xsl:when test="$kind = 'submission'">
+ <xsl:text>red</xsl:text>
+ </xsl:when>
+ <xsl:when test="$kind = 'notification'">
+ <xsl:text>green</xsl:text>
+ </xsl:when>
+ <xsl:when test="$kind = 'registration'">
+ <xsl:text>blue</xsl:text>
+ </xsl:when>
+ <xsl:when test="$kind = 'camera-ready'">
+ <xsl:text>maroon</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>