<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      exclude-result-prefixes="xs"
      version="2.0">
    <xsl:character-map name="accents">
        <xsl:output-character character="à" string="&amp;agrave;"/>
        <xsl:output-character character="é" string="&amp;eacute;"/>
        <xsl:output-character character="è" string="&amp;egrave;"/>
        <xsl:output-character character="ê" string="&amp;ecirc;"/>
        <xsl:output-character character="ë" string="&amp;euml;"/>
        <xsl:output-character character="î" string="&amp;icirc;"/>
        <xsl:output-character character="ï" string="&amp;iuml;"/>
        <xsl:output-character character="ô" string="&amp;ocirc;"/>
        <xsl:output-character character="ù" string="&amp;ucirc;"/>
        <xsl:output-character character="ö" string="&amp;ouml;"/>
        <xsl:output-character character="ü" string="&amp;uuml;"/>
        <xsl:output-character character="ŷ" string="&amp;ycirc;"/>
        <xsl:output-character character="ÿ" string="&amp;yuml;"/>
        <xsl:output-character character="Ÿ" string="&amp;Yuml;"/>
    </xsl:character-map>
    
    <xsl:output method="xhtml" indent="yes" encoding="UTF-8" use-character-maps="accents"/>
    
    <xsl:template match="/">
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="documents">
        <xsl:apply-templates/>
    </xsl:template>
    
    <xsl:template match="document">
        <html>
            <head>
                <title><xsl:value-of select="./@titre"/></title>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
                <style type="text/css" media="all">
                    p.header { text-align: center; margin: 0 10 5 10; font-family: Helvetica; font-size: 18px; font-weight: bold; }
                    p { text-align: left; font-family: Helvetica; }
                    p.p1 { margin-left: 10px; }
                    p.p2 { margin-left: 20px; }
                    p.p3 { margin-left: 30px; }
                    p.p4 { margin-left: 40px; margin-top: 2px; }
                    p.center { text-align: center; }
                    h1 { font-family: Helvetica; font-size: 22px; font-weight: bold; }
                    h2 { margin-left: 10px; font-family: Helvetica; font-size: 18px; font-weight: bold; }
                    h3 { margin-left: 20px; font-family: Helvetica; font-size: 16px; font-weight: bold; }
                    h4 { margin-left: 30px; margin-bottom: 0px; }
                    table { background-color: black; cell-spacing: 1px; }
                    td { background-color: white; }
                    td.center { text-align:center; }
                    th { background-color: #9F9F9F; text-align: left; }
                    a { font-family: Helvetica; }
                </style>
            </head>
            <body>
                <p class="header"><img src="../images/logo_xemelios.png" alt="Logo"/></p>
                <p class="header"><xsl:value-of select="./@titre"/></p>
                <p class="p1">Le <xsl:value-of select="./@titre"/> regroupe les
                    <xsl:for-each select="./etat">
                    <a href="#{./@id}"><xsl:value-of select="./@titre"/></a><xsl:if test="not( position() = last() )">, </xsl:if> 
                    </xsl:for-each>
                </p>
                <xsl:apply-templates/>
            </body>
        </html>
    </xsl:template>
    
    <xsl:template match="etat">
        <xsl:variable name="etatId" select="./@id"/>
        <h1><a name="{./@id}"/><xsl:value-of select="./@titre"/></h1>
        <p class="p1"><font color="red">Mettre ici la description de l'état.</font>
            <xsl:if test="count(./element[not(@searchable='false')]) gt 1">On peut accéder à un <xsl:value-of select="./@titre"/> par <xsl:for-each select="./element[not(@searchable='false')]">
                une <a href="#search-{$etatId}-{./@id}"><xsl:value-of select="./@titre"/></a><xsl:if test="not( position() = last())">, </xsl:if>
            </xsl:for-each></xsl:if>
        </p>
        <xsl:for-each select="./element[not(@searchable='false')]">
            <xsl:call-template name="displayElement">
                <xsl:with-param name="element" select="."/>
                <xsl:with-param name="etatId" select="$etatId"/>
            </xsl:call-template>
        </xsl:for-each>
    </xsl:template>
    
    <xsl:template name="displayElement">
        <xsl:param name="etatId"/>
        <xsl:param name="element"/>
        <h2>Recherches sur <xsl:value-of select="$element/@titre"/></h2>
        <p class="p2">On accède aux recherches sur <xsl:value-of select="$element/@titre"/> par le menu Recherche / <xsl:value-of select="$element/../@titre"/> / <xsl:value-of select="$element/@titre"/></p>
        <p class="center"><img src="images/mnu_search_to_define.png" alt="Image à créer et à insérer"/></p>
        <p class="p2">Ces recherches renvoient toujours une liste de <xsl:value-of select="$element/@titre"/></p>
        <h3>Critères</h3>
        <p class="p3">Les critères de recherche possibles sont :</p>
        <xsl:for-each select="$element/critere">
            <xsl:call-template name="displayCritere">
                <xsl:with-param name="critere" select="."/>
            </xsl:call-template>
        </xsl:for-each>
    </xsl:template>
    
    <xsl:template name="displayCritere">
        <xsl:param name="critere"/>
        <h4><xsl:value-of select="$critere/@libelle"/></h4>
        <p class="p4">Permet de filtrer par <xsl:value-of select="$critere/@libelle"/></p>
    </xsl:template>
    
    <xsl:template match="*"/>
    
</xsl:stylesheet>
