<?xml version="1.0" encoding="utf-8"?>
<!--
  *  '$RCSfile$'
  *      Authors: Matthew Brooke
  *    Copyright: 2000 Regents of the University of California and the
  *               National Center for Ecological Analysis and Synthesis
  *  For Details: http://www.nceas.ucsb.edu/
  *
  *   '$Author: cjones $'
  *     '$Date: 2006-11-17 13:37:07 -0800 (Fri, 17 Nov 2006) $'
  * '$Revision: 3094 $'
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * This is an XSLT (http://www.w3.org/TR/xslt) stylesheet designed to
  * convert an XML file that is valid with respect to the eml-variable.dtd
  * module of the Ecological Metadata Language (EML) into an HTML format
  * suitable for rendering with modern web browsers.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

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

<!-- This module is for text module in eml2 document. It is a table and self contained-->

  <xsl:template name="text">
        <xsl:param name="textfirstColStyle" />
        <xsl:param name="textsecondColStyle" />
        <xsl:if test="(section and normalize-space(section)!='') or (para and normalize-space(para)!='') or (.!='')">
          <xsl:apply-templates mode="text">
            <xsl:with-param name="textfirstColStyle" select="$textfirstColStyle"/>
            <xsl:with-param name="textsecondColStyle" select="$textsecondColStyle" />
          </xsl:apply-templates>
      </xsl:if>
  </xsl:template>


  <!-- *********************************************************************** -->
  <!-- Template for section-->
   <xsl:template match="section" mode="text">
      <xsl:if test="normalize-space(.)!=''">
      	<div class="sectionText">
        <xsl:if test="title and normalize-space(title)!=''">
              <h4 class="bold"><xsl:value-of select="title"/></h4>
        </xsl:if>
        <xsl:if test="para and normalize-space(para)!=''">
              <xsl:apply-templates select="para" mode="lowlevel"/>
         </xsl:if>
         <xsl:if test="section and normalize-space(section)!=''">
              <xsl:apply-templates select="section" mode="lowlevel"/>
        </xsl:if>
        </div>
      </xsl:if>
  </xsl:template>

  <!-- Section template for low level. Cteate a nested table and second column -->
  <xsl:template match="section" mode="lowlevel">
     <div class="section">
      <xsl:if test="title and normalize-space(title)!=''">
        <h4 class="bold"><xsl:value-of select="title"/></h4>
      </xsl:if>
      <xsl:if test="para and normalize-space(para)!=''">
        <xsl:apply-templates select="para" mode="lowlevel"/>
      </xsl:if>
      <xsl:if test="section and normalize-space(section)!=''">
        <xsl:apply-templates select="section" mode="lowlevel"/>
      </xsl:if>
     </div>
  </xsl:template>

  <!-- para template for text mode-->
   <xsl:template match="para" mode="text">
    	<xsl:param name="textfirstColStyle"/>
    	<div class="para">
   			<xsl:apply-templates mode="lowlevel"/>
   		</div>	
  </xsl:template>

  <!-- para template without table structure. It does actually transfer.
       Currently, only get the text and it need more revision-->
  <xsl:template match="para" mode="lowlevel">
      <xsl:if test="normalize-space(./text()) = ''">
      	<xsl:apply-templates mode="lowlevel"/>
      </xsl:if>
      <p>
      	<xsl:call-template name="i18n">
   			<xsl:with-param name="i18nElement" select="."/>
   		</xsl:call-template>
      </p>
  </xsl:template>
  
  <!-- match any translation values -->
  <xsl:template match="value" mode="lowlevel">
      <span class="translation">
		<!-- the primary value -->
		<xsl:if test="./text() != ''">
			<xsl:if test="./@xml:lang != ''">
				(<xsl:value-of select="./@xml:lang"/>)
			</xsl:if>
			<xsl:value-of select="./text()"/>
		</xsl:if>
      </span>
  </xsl:template>

</xsl:stylesheet>