<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:exslt="http://exslt.org/common"
  exclude-result-prefixes="xsl xlink exslt">

<xsl:import href="./unsup.xsl"/>
<xsl:import href="./plaintext.xsl"/>
<xsl:import href="./common.xsl"/>
<xsl:include href="./biblio.xsl"/>

<xsl:output method="xml" encoding="UTF-8"
    indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>

<xsl:strip-space elements="*"/>
<xsl:preserve-space elements="preformat"/>

<xsl:param name="top_heading_level" select="2"/>
<xsl:param name="EXTLINK_PREFIX_MAP">
  <map>
    <entry id-type="uri" label="Article" prefix=""/>
    <entry id-type="doi" label="Article" prefix="http://dx.doi.org/"/>
    <entry id-type="pmid" label="Abstract" prefix="http://www.ncbi.nlm.nih.gov/pubmed/"/>
  </map>
</xsl:param>

<xsl:key name="element-by-id" match="*[@id]" use="@id"/>
<xsl:key name="alt-graphics" match="graphic[@alternate-form-of]" use="@alternate-form-of"/>

<!-- **************************************************************** -->
<!-- * TODO:                                                        * -->
<!-- *  - article/@article-type                                     * -->
<!-- *  - better title algorithm                                    * -->
<!-- **************************************************************** -->


<!-- **************************************************************** -->
<xsl:template match="/">
  <xsl:apply-templates select="*"/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article">
  <html>
    <xsl:apply-templates select="." mode="header"/>
    <body>
      <xsl:apply-templates select="*"/>
    </body>
  </html>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article" mode="header">
  <head>
    <xsl:apply-templates select="." mode="windowtitle"/>
    <link rel="stylesheet" type="text/css" href="nlm.css"/>
  </head>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article" mode="windowtitle">
  <title>
    <xsl:choose>
      <xsl:when test="front/article-meta/title-group/article-title">
        <xsl:apply-templates select="front/article-meta/title-group/article-title" mode="plaintext"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>Title unknown</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </title>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="front">
  <div class="frontmatter">
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="body">
  <xsl:apply-templates select="*"/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="journal-meta">
  <!-- nothing yet -->
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article-meta">
  <xsl:apply-templates select="*"/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article-meta/permissions">
  <div class="permissions">
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article-meta/counts">
  <!-- do nothing: not displayed -->
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article-meta/author-notes">
  <xsl:apply-templates select="*"/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="copyright-statement" name="copyright-statement">
  <div class="copyright">
    <xsl:apply-templates/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="license">
  <div class="license">
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="copyright-year | copyright-holder">
  <!-- not displayed: metadata only -->
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="abstract[@abstract-type='toc']" priority="10">
  <!-- exclude unless it's the only abstract available -->
  <xsl:if test="not(preceding-sibling::abstract or following-sibling::abstract)">
    <xsl:call-template name="abstract"/>
  </xsl:if>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="abstract[@abstract-type='summary']" priority="10">
  <!-- exclude unless there's no unmarked abstract -->
  <xsl:choose>
    <xsl:when test="preceding-sibling::abstract[not(@abstract-type)]">
    </xsl:when>
    <xsl:when test="following-sibling::abstract[not(@abstract-type)]">
    </xsl:when>
    <xsl:otherwise>
      <xsl:call-template name="abstract"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="abstract" name="abstract">
  <div class="abstract">
    <xsl:if test="sec">
      <xsl:call-template name="maketitle">
        <xsl:with-param name="depth" select="1"/>
        <xsl:with-param name="title" select="'Abstract'"/>
      </xsl:call-template>
    </xsl:if>
    <xsl:apply-templates/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article-id|article-categories">
  <!-- nothing yet -->
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="title-group">
  <xsl:apply-templates select="*"/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="article-title">
  <xsl:element name="h{$top_heading_level}">
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="alt-title">
  <!-- nothing yet -->
</xsl:template>

<!-- **************************************************************** -->
<!-- **  AUTHORS AND NAMES  ***************************************** -->
<!-- **************************************************************** -->

<!-- **************************************************************** -->
<xsl:template match="contrib-group">
  <xsl:choose>
    <xsl:when test="contrib[@contrib-type='author']">
      <ul class="authors">
        <xsl:apply-templates select="contrib[@contrib-type='author']"/>
      </ul>
    </xsl:when>
  </xsl:choose>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="contrib[@contrib-type='author']">
  <li>
    <xsl:apply-templates select="name"/>
    <xsl:apply-templates select="degrees"/>
    <xsl:if test="xref">
      <sup>
        <xsl:for-each select="xref">
          <xsl:if test="position() != 1">
            <xsl:text>,</xsl:text>
          </xsl:if>
          <xsl:apply-templates select="."/>
        </xsl:for-each>
      </sup>
    </xsl:if>
    <xsl:if test="following-sibling::contrib">
      <xsl:text>, </xsl:text>
    </xsl:if>
  </li>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="degrees">
  <xsl:text>, </xsl:text>
  <xsl:apply-templates/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="xref">
  <a href="#{@rid}">
    <xsl:apply-templates/>
  </a>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="email">
  <a class="email" href="mailto:{normalize-space(.)}">
    <xsl:apply-templates/>
  </a>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="xref/sup">
  <xsl:apply-templates/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="contrib/name">
  <xsl:apply-templates select="prefix"/>
  <xsl:apply-templates select="given-names"/>
  <xsl:apply-templates select="surname"/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="contrib/name/prefix|contrib/name/given-names">
  <xsl:apply-templates/>
  <xsl:text> </xsl:text>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="surname">
  <xsl:apply-templates/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="aff">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="affiliation">
    <xsl:apply-templates/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="aff/label|fn/label|corresp/label">
  <sup>
    <xsl:apply-templates/>
  </sup>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="addr-line">
  <xsl:apply-templates/>
</xsl:template>



<!-- **************************************************************** -->
<!-- **  Sections  ************************************************** -->
<!-- **************************************************************** -->

<!-- **************************************************************** -->
<xsl:template match="sec">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="section">
    <xsl:apply-templates/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="sec/title">
  <xsl:variable name="num">
    <xsl:apply-templates select="parent::sec" mode="num"/>
  </xsl:variable>
  <xsl:call-template name="maketitle">
    <xsl:with-param name="depth" select="count(ancestor::sec) + count(ancestor::abstract)"/>
    <xsl:with-param name="title">
      <xsl:value-of select="$num"/>
      <xsl:text> </xsl:text>
      <xsl:apply-templates/>
    </xsl:with-param>
  </xsl:call-template>
  <!--
  <xsl:variable name="depth" select="count(ancestor::sec)"/>
  <xsl:element name="h{$depth + $top_heading_level}">
    <xsl:value-of select="$num"/>
    <xsl:text> </xsl:text>
    <xsl:apply-templates/>
  </xsl:element>
  -->
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="sec[@sec-type='display-objects']">
  <!-- for some reason we dont want to display these sections -->
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="p" name="para">
  <p>
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </p>
</xsl:template>


<!-- **************************************************************** -->
<!-- ** FIGURES and TABLES ****************************************** -->
<!-- **************************************************************** -->

<!-- **************************************************************** -->
<xsl:template match="fig">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="figure">
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates select="*[not(self::label|self::caption)]"/>
    <div class="description">
      <xsl:apply-templates select="label"/>
      <xsl:apply-templates select="caption"/>
    </div>
  </div>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="table-wrap">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="table">
    <xsl:apply-templates select="@*"/>
    <div class="description">
      <xsl:apply-templates select="label"/>
      <xsl:apply-templates select="caption"/>
    </div>
    <xsl:apply-templates select="*[not(self::label|self::caption)]"/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="caption">
  <xsl:apply-templates select="title"/>
  <xsl:if test="*[not(self::title)]">
    <div class="caption">
      <xsl:apply-templates select="*[not(self::title)]"/>
    </div>
  </xsl:if>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="caption/title">
  <div class="title">
    <b>
    <xsl:apply-templates/>
    </b>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="fig/label|table-wrap/label">
  <div class="label">
    <xsl:apply-templates/>
    <xsl:text>. </xsl:text>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="table-wrap-foot">
  <div class="table_foot">
    <xsl:apply-templates/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="graphic">
  <xsl:variable name="src">
    <xsl:apply-templates select="@xlink:href" mode="href"/>
  </xsl:variable>
  <img src="{$src}"/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="graphic[@alternate-form-of]">
  <!-- do nothing till called on with altGraphic mode -->
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="graphic" mode="altGraphic">
  <xsl:variable name="src">
    <xsl:apply-templates select="@xlink:href" mode="href"/>
  </xsl:variable>
  <img src="{$src}"/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="media">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="media">
    <xsl:apply-templates select="@*"/>
    <xsl:if test="@id">
      <xsl:if test="key('alt-graphics', @id)">
        <xsl:variable name="href">
          <xsl:apply-templates select="@xlink:href" mode="href"/>
        </xsl:variable>
        <a href="{$href}">
          <xsl:apply-templates select="key('alt-graphics', @id)[1]" mode="altGraphic"/>
        </a>
      </xsl:if>
    </xsl:if>
    <div class="description">
      <xsl:apply-templates select="label"/>
      <xsl:apply-templates select="caption"/>
    </div>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="media/label">
  <xsl:variable name="href">
    <xsl:apply-templates select="../@xlink:href" mode="href"/>
  </xsl:variable>
  <div class="label">
    <a href="{$href}">
      <xsl:apply-templates/>
    </a>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="table|tbody|thead|tfoot|tr|th|td|hr|colgroup|col">
  <xsl:copy>
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates/>
  </xsl:copy>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="object-id[@pub-id-type = 'doi']">
  <div class="doi">
    <xsl:apply-templates/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="object-id">
  <div class="object_id">
    <xsl:apply-templates/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="supplementary-material">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="supplementary">
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="supplementary-material/label">
  <xsl:choose>
    <xsl:when test="../@xlink:href">
      <a href="{../@xlink:href}">
        <xsl:apply-templates/>
      </a>
    </xsl:when>
    <xsl:otherwise>
      <span class="label">
        <xsl:apply-templates/>
      </span>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="supplementary-material/caption">
  <div class="caption">
    <xsl:apply-templates/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="def-list">
  <dl>
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates select="*"/>
  </dl>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="def-item">
  <xsl:apply-templates select="*"/>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="def-item/term">
  <dt>
    <xsl:apply-templates/>
  </dt>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="def-item/def">
  <dd>
    <xsl:apply-templates/>
  </dd>
</xsl:template>


<!-- **************************************************************** -->
<!-- ** BACK MATTER ************************************************* -->
<!-- **************************************************************** -->

<!-- **************************************************************** -->
<xsl:template match="back">
  <div class="backmatter">
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="ack">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="ack">
    <xsl:if test="not(title)">
      <xsl:apply-templates select="." mode="gentitle"/>
    </xsl:if>
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="ack/title|fn-group/title|glossary/title|ref-list/title">
  <xsl:call-template name="maketitle">
    <xsl:with-param name="title">
      <xsl:apply-templates/>      
    </xsl:with-param>
    <xsl:with-param name="depth" select="1"/>
  </xsl:call-template>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="fn-group">
  <div class="footnotes">
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="fn">
  <xsl:apply-templates select="." mode="anchor"/>
  <div>
    <xsl:attribute name="class">
      <xsl:choose>
        <xsl:when test="@fn-type">
          <xsl:text>footnote footnote_</xsl:text>
          <xsl:call-template name="cleanid">
            <xsl:with-param name="str" select="@fn-type"/>
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <xsl:text>footnote</xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:attribute> Edited by
    <xsl:apply-templates/>
  </div>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="fn/p">
  <xsl:choose>
    <xsl:when test="preceding-sibling::*[1][self::label]">
      <span>
        <xsl:apply-templates select="@*"/>
        <xsl:apply-templates/>
      </span>
    </xsl:when>
    <xsl:otherwise>
      <xsl:call-template name="para"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="glossary">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="glossary">
    <xsl:if test="not(title)">
      <xsl:apply-templates select="." mode="gentitle"/>
    </xsl:if>
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="ref-list">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="references">
    <xsl:if test="not(title)">
      <xsl:apply-templates select="." mode="gentitle"/>
    </xsl:if>
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="ref">
  <xsl:apply-templates select="." mode="anchor"/>
  <div class="ref">
    <xsl:apply-templates select="*"/>
  </div>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="ref/label">
  <span class="label">
    <xsl:apply-templates/>
  </span>
  <xsl:text>. </xsl:text>
</xsl:template>


<!-- **************************************************************** -->
<!-- ** INLINE ****************************************************** -->
<!-- **************************************************************** -->


<!-- **************************************************************** -->
<xsl:template match="named-content">
  <xsl:variable name="type">
    <xsl:call-template name="cleanid">
      <xsl:with-param name="str" select="@content-type"/>
    </xsl:call-template>
  </xsl:variable>
  <span class="named_content content_type_{$type}">
    <xsl:if test="@xlink:href and @xlink:type">
      <xsl:attribute name="noderef">
        <xsl:value-of select="@xlink:type"/>
        <xsl:text>=</xsl:text>
        <xsl:value-of select="@xlink:href"/>
      </xsl:attribute>
    </xsl:if>
    <xsl:apply-templates/>
  </span>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="sup|sub">
  <xsl:element name="{local-name()}">
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="italic|sec/title/italic">
  <i>
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </i>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="bold">
  <b>
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </b>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="sc">
  <span style="font-variant: small-caps;">
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </span>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="monospace">
  <span class="monospace" style="font-family: monospace;">
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </span>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="overline">
  <span class="overline">
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </span>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="strike">
  <s>
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </s>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="underline">
  <u>
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
  </u>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template name="maketitle">
  <xsl:param name="title" select="''"/>
  <xsl:param name="depth" select="0"/>
  <xsl:element name="h{$depth + $top_heading_level}">
    <xsl:copy-of select="$title"/>
  </xsl:element>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="@id|@class|@style" priority="10">
  <xsl:copy-of select="."/>
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="@*">
  <!-- strip unknown attributes -->
</xsl:template>

<!-- **************************************************************** -->
<xsl:template match="@*|*" mode="href">
  <xsl:value-of select="."/>
</xsl:template>


<!-- **************************************************************** -->
<xsl:template match="pub-id" mode="none">
  <xsl:variable name="type" select="@pub-id-type"/>
  <xsl:text> </xsl:text>
  <xsl:choose>
    <xsl:when test="exslt:node-set($EXTLINK_PREFIX_MAP)//entry[@id-type=$type]">
      <xsl:variable name="entry" select="exslt:node-set($EXTLINK_PREFIX_MAP)//entry[@id-type=$type][1]"/>
      <a class="pub_id" href="{$entry/@prefix}{normalize-space(.)}">
        <xsl:choose>
          <xsl:when test="$entry/@label">
            <xsl:value-of select="$entry/@label"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="normalize-space(.)"/>
          </xsl:otherwise>
        </xsl:choose>
      </a>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>[</xsl:text>
      <xsl:value-of select="$type"/>
      <xsl:text>: </xsl:text>
      <xsl:apply-templates/>
      <xsl:text>]</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
	

<!-- **************************************************************** -->
<xsl:template match="ext-link">
  <xsl:variable name="type" select="@ext-link-type"/>
  <xsl:variable name="href">
    <xsl:choose>
      <xsl:when test="@xlink:href">
        <xsl:value-of select="@xlink:href"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="normalize-space(.)"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:text> </xsl:text>
  <xsl:choose>
    <xsl:when test="exslt:node-set($EXTLINK_PREFIX_MAP)//entry[@id-type=$type]">
      <xsl:variable name="entry" select="exslt:node-set($EXTLINK_PREFIX_MAP)//entry[@id-type=$type][1]"/>
      <a class="ext_link" href="{$entry/@prefix}{$href}">
        <xsl:apply-templates/>
      </a>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>[</xsl:text>
      <xsl:apply-templates/>
      <xsl:text>]</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
	

<!-- **************************************************************** -->
<xsl:template name="cleanid">
  <xsl:param name="str"/>
  <xsl:value-of select="translate($str,'. ,-','____')"/>
</xsl:template>

</xsl:stylesheet>

