<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <!-- =============================================================== -->
  <!--  slideshow.xsl (v001)                                           -->
  <!--  opprettet 19.04.07 - kristian.syversen@usit.uio.no             -->
  <!-- =============================================================== -->
  
  <!-- prefixes (text element definitions) -->
  <xsl:import href="slideshow-translations.xsl" />
  
  <xsl:import href="../../../system/api-v001.xsl" />
  
  <xsl:import href="../../../common/components/structuredtext/v002/structuredtext.xsl" />
  <xsl:import href="../../../common/components/image/v002/image.xsl" />
  <xsl:import href="../../../common/components/photo/v001/photo.xsl" />
  <xsl:import href="../../../common/components/weblink/v001/weblink.xsl" />
  
  <xsl:import href="../../../extensions/link-constructor-v001.xsl" />
  
  
  <!-- overstyrer output controller i.f.t. Apollon fordi Design-byrå for MUV, Gazette, leverer XHTML Transitional -->
  <xsl:output
    method="xml"
    media-type="text/html"
    omit-xml-declaration="no"
    encoding="utf-8"
    indent="yes"
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" />
  
  
  <xsl:strip-space elements="*"/>
  
  
  <!-- compulsory root level parameter for use with 'requestParameter' template -->
  <xsl:param name="requestParameters" />
  
  
  <xsl:template match="/">
    <html>
      <head>
        <title>
          <xsl:call-template name="slideshow-phrase">
            <xsl:with-param name="identifier" select="'slideshow.slideshow'"/>
          </xsl:call-template>
          - "<xsl:value-of select="//title"/>"
        </title>
        <xsl:if test="//css!=''">
          <link href="{//css}" type="text/css" rel="stylesheet" media="screen" />
        </xsl:if>
      </head>
      <body>
        <xsl:apply-templates select="slideshow"/>
      </body>
    </html>
  </xsl:template>
  
  
  <xsl:template match="slideshow">
    <xsl:variable name="slide-value">
      <xsl:value-of select="$requestParameters/parameter[@name='slide']" />
    </xsl:variable>
    
    <xsl:variable name="position">
      <xsl:choose>
        <xsl:when test="count(//slide)>=$slide-value and $slide-value>1">
          <xsl:value-of select="$slide-value"/>
        </xsl:when>
        <xsl:otherwise>
          1
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    
    <div class="{name()}">
      <xsl:choose>
        <xsl:when test="title!=''">
          <h1><xsl:value-of select="title"/></h1>
        </xsl:when>
        <xsl:otherwise>
          <h1>
            <xsl:call-template name="slideshow-phrase">
              <xsl:with-param name="identifier" select="'slideshow.slideshow'"/>
            </xsl:call-template>
          </h1>
        </xsl:otherwise>
      </xsl:choose>
      
      <xsl:apply-templates select="./child::slide[position()=$position]">
        <xsl:with-param name="position" select="$position"/>
      </xsl:apply-templates>
      
      <div class="clearer">&#160;</div>
    </div>
  </xsl:template>
  
  
  <xsl:template match="slide">
    <xsl:param name="position" select="1"/>
    <div class="{name()}">
      <xsl:call-template name="navigation">
        <xsl:with-param name="position" select="$position"/>
      </xsl:call-template>
      
      <div class="imageWrapper">
        <div class="image">
          <img src="{photo/image/webaddress}" alt="{photo/image/alt-text}" border="0" />
          <!-- MUV: Designet her er tilpasset bilder som enten har høyde "476px" eller bredde "621px" -->
        </div>
        <div class="metadata">
          <div class="photographer">
            <span class="photographer-content">
              <xsl:value-of select="photo/photographer"/>
            </span>
            <span class="photographer-prefix">fotograf</span>
          </div>
          <div class="owner">
            <span class="owner-content">
              <xsl:value-of select="photo/owner" />
            </span>
            <span class="owner-prefix">eier</span>
          </div>
          <xsl:apply-templates select="references" />
        </div>
      </div>
      <div class="imageText">
        <xsl:apply-templates select="photo/image/caption" />
        <p>
          <a href="{$ADMIN-URL}" class="italic">
            <xsl:call-template name="slideshow-phrase">
              <xsl:with-param name="identifier" select="'slideshow.admin'"/>
            </xsl:call-template>
          </a>
        </p>
      </div>
    </div>
  </xsl:template>  
  
  
  <!-- Helper template for picture navigation elements -->
  <xsl:template name="navigation">
    <xsl:param name="position" select="1"/>
    
    <xsl:variable name="last" select="count(//slide)"/>
    <xsl:variable name="previous" select="number($position)-1"/>
    <xsl:variable name="next" select="number($position)+1"/>
    <xsl:variable name="previous-slide">
      <xsl:call-template name="construct-link">
        <xsl:with-param name="link-parameters-csv" select="concat('slide=', $previous)" />
      </xsl:call-template>
    </xsl:variable>
    <xsl:variable name="next-slide">
      <xsl:call-template name="construct-link">
        <xsl:with-param name="link-parameters-csv" select="concat('slide=', $next)" />
      </xsl:call-template>
    </xsl:variable>
    
    <div class="navigation">
      <xsl:choose>
        <xsl:when test="$position=1">
          <div class="previous-pointer">
            &#160;
          </div>
          <div class="next-pointer">
            <a href="{$next-slide}">neste</a>
          </div>
        </xsl:when>
        <xsl:when test="$position=$last">
          <div class="previous-pointer">
            <a href="{$previous-slide}">forrige</a>
          </div>
          <div class="next-pointer">
            &#160;
          </div>
        </xsl:when>
        <xsl:otherwise>
          <div class="previous-pointer">
            <a href="{$previous-slide}">forrige</a>
          </div>
          <div class="next-pointer">
            <a href="{$next-slide}">neste</a>
          </div>
        </xsl:otherwise>
      </xsl:choose>
      <div class="counter">
        Bilde nr <xsl:value-of select="$position"/> av <xsl:value-of select="$last"/>
      </div>      
    </div>
  </xsl:template>
  
  
  <xsl:template match="references">
    <xsl:if test="node()[normalize-space(.)]">
    <div class="relatert-stoff">
      <h2>
        <xsl:call-template name="slideshow-phrase">
          <xsl:with-param name="identifier" select="'slideshow.related'"/>
        </xsl:call-template>
      </h2>
      <xsl:if test="node()[normalize-space(.)]">
        <ul class="element">
          <xsl:for-each select="node()">
            <li> <xsl:apply-templates select="." /> </li>
          </xsl:for-each>
        </ul>
      </xsl:if>
    </div>
    </xsl:if>
  </xsl:template>
  
</xsl:stylesheet>
