<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:xh="http://www.w3.org/1999/xhtml"
	xmlns:inc="http://ns.xmlfr.org/include"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:rss="http://purl.org/rss/1.0/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sr="http://ns.xmlfr.org/searchResults"

	exclude-result-prefixes = "xh inc rdf rss dc sr">

<xsl:param name="requestQuery" select="concat('?',/root/request/query-string)"/>

<xsl:template match="@*">
	<xsl:copy/>
</xsl:template>

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

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

<xsl:template match="inc:*"/>

<xsl:template match="inc:include">
  <xsl:apply-templates select="document(concat('oxf:', @href))"/>
  <!--<xsl:apply-templates select="document(concat('oxf:/lucene/rss.xpl', $requestQuery))/rdf:RDF"/>-->
</xsl:template>

<xsl:template match="rdf:RDF">
  <xsl:apply-templates select="rss:channel" mode="forme"/> 
  <xsl:apply-templates select="rss:channel"/> 
</xsl:template>
<xsl:template match="rss:channel[not(sr:hits)]"/>
<xsl:template match="rss:channel">
<hr/>
<h3>Résultats</h3>
  <p>
    <xsl:text>Il y a </xsl:text>
    <xsl:value-of select="sr:hits"/>
    <xsl:text> résultats pour cette requête</xsl:text>
  </p>
  <dl>
    <xsl:apply-templates select="rss:items/rdf:Seq/rdf:li"/>
  </dl>
  <p>
    <xsl:apply-templates select="." mode="previous"/>
    <xsl:call-template name="navig"/>
    <xsl:apply-templates select="." mode="next"/>
  </p>
</xsl:template>

<xsl:template name="navig">
  <xsl:param name="i" select="sr:start - sr:perPage * 10"/>
  <xsl:if test="$i >= 0">
    <xsl:choose>
      <xsl:when test="$i = sr:start">
      <xsl:value-of select="$i div sr:perPage + 1"/>
      </xsl:when>
      <xsl:otherwise>
    <a href="cherche?query={sr:query}&amp;start={$i}&amp;perPage={sr:perPage}&amp;boost={sr:boost}&amp;sort={sr:sort}">
      <xsl:value-of select="$i div sr:perPage + 1"/>
    </a>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:if>
  <xsl:if test="($i+sr:perPage &lt; sr:hits) and ($i+sr:perPage &lt;= sr:start + sr:perPage * 10)">
    <xsl:text> </xsl:text>
    <xsl:call-template name="navig">
      <xsl:with-param name="i" select="$i + sr:perPage"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

<xsl:template match="rss:channel[sr:start=0]" mode="previous">
      <xsl:text>&lt;- </xsl:text>
</xsl:template>
<xsl:template match="rss:channel" mode="previous">
    <a href="cherche?query={sr:query}&amp;start={sr:start -  sr:perPage}&amp;perPage={sr:perPage}&amp;boost={sr:boost}&amp;sort={sr:sort}">
      <xsl:text>&lt;-</xsl:text>
    </a>
    <xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="rss:channel[sr:start + sr:perPage > sr:hits]" mode="next">
      <xsl:text> -></xsl:text>
</xsl:template>
<xsl:template match="rss:channel" mode="next">
    <xsl:text> </xsl:text>
    <a href="cherche?query={sr:query}&amp;start={sr:start +  sr:perPage}&amp;perPage={sr:perPage}&amp;boost={sr:boost}&amp;sort={sr:sort}">
      <xsl:text>-></xsl:text>
    </a>
</xsl:template>

<xsl:template match="rss:channel" mode="forme">
<form action="cherche">
  <xsl:apply-templates select="sr:query" mode="forme"/>
  <xsl:apply-templates select="sr:sort" mode="forme"/>
  <xsl:apply-templates select="sr:boost" mode="forme"/>
  <xsl:apply-templates select="sr:perPage" mode="forme"/>
</form>
</xsl:template>

<xsl:template match="sr:query" mode="forme">
<p>
  <xsl:text>Rechercher : </xsl:text>
  <input name="query" value="{.}" size="40"/>
</p>
</xsl:template>
<xsl:template match="sr:sort" mode="forme">
<p>
  <xsl:text>Tri : </xsl:text>
  <input type="radio" name="sort" value="none">
    <xsl:if test=". = 'none'">
      <xsl:attribute name="checked">checked</xsl:attribute>
    </xsl:if>
  </input>
  <xsl:text> par pertinence </xsl:text>
  <input type="radio" name="sort" value="date">
    <xsl:if test=". = 'date'">
      <xsl:attribute name="checked">checked</xsl:attribute>
    </xsl:if>
  </input>
  <xsl:text> par date </xsl:text>
</p>
</xsl:template>
<xsl:template match="sr:boost" mode="forme">
<p>
  <xsl:text>Résultats : </xsl:text>
  <input type="radio" name="boost" value="yes">
    <xsl:if test=". = 'yes'">
      <xsl:attribute name="checked">checked</xsl:attribute>
    </xsl:if>
  </input>
  <xsl:text> corrigés </xsl:text>
  <input type="radio" name="boost" value="no">
    <xsl:if test=". = 'no'">
      <xsl:attribute name="checked">checked</xsl:attribute>
    </xsl:if>
  </input>
  <xsl:text> bruts </xsl:text>
</p>
</xsl:template>
<xsl:template match="sr:perPage" mode="forme">
<p>
  <select name="perPage">
    <option>
    <xsl:if test=". = '10'">
      <xsl:attribute name="selected">selected</xsl:attribute>
    </xsl:if>
    <xsl:text>10</xsl:text>
    </option>
    <option>
    <xsl:if test=". = '25'">
      <xsl:attribute name="selected">selected</xsl:attribute>
    </xsl:if>
    <xsl:text>25</xsl:text>
    </option>
    <option>
    <xsl:if test=". = '50'">
      <xsl:attribute name="selected">selected</xsl:attribute>
    </xsl:if>
    <xsl:text>50</xsl:text>
    </option>
  </select>
  <xsl:text> résultats par page </xsl:text>
</p>
</xsl:template>

<xsl:template match="rdf:li">
  <xsl:apply-templates select="ancestor::rdf:RDF/rss:item[@rdf:about=current()/@rdf:resource]"/>
</xsl:template>

<xsl:template match="rss:item">
  <dt>
    <xsl:apply-templates select="dc:type"/>
    <xsl:apply-templates select="rss:title"/>
    <xsl:apply-templates select="sr:ranking"/>
  </dt>
  <dd>
    <span class="">
      <xsl:apply-templates select="dc:creator"/>
      <xsl:apply-templates select="dc:date"/>
    </span>
    <span class="">
      <xsl:apply-templates select="rss:description"/>
    </span>
  </dd>
</xsl:template>

<xsl:template match="rss:title">
  <a href="{../rss:link}"><xsl:value-of select="."/></a>
</xsl:template>
<xsl:template match="sr:ranking">
  <xsl:text> (</xsl:text>
  <xsl:value-of select="."/>
  <xsl:text>)</xsl:text>
</xsl:template>
<xsl:template match="dc:creator[contains(., '(')]">
  <xsl:value-of select="normalize-space(substring-before(., '('))"/>
</xsl:template>
<xsl:template match="dc:creator">
  <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="dc:date">
  <xsl:text>, </xsl:text>
  <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="dc:description">
  <xsl:text> : </xsl:text>
  <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="dc:type">
  <img src="{translate(., 'è', 'e')}.gif" title="{.}" alt="{.}" width="32" height="32"/>
</xsl:template>

</xsl:transform>
