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

  <xsl:include href="../../../system/api-v001.xsl" />
  <xsl:include href="../../../felles/ressurser/output-method-html-v001.xsl" />
  <xsl:include href="../../../common/components/structuredtext/v002/structuredtext.xsl" />
  <xsl:include href="../../../common/components/heading/v002/heading.xsl" />  
  <xsl:include href="../../../common/components/table/v001/table.xsl"/>  
  <xsl:include href="../../simple-quiz-node/v002/simple-quiz-node-published.xsl"/>  
  <xsl:include href="../../../extensions/link-constructor-v001.xsl"/>  

  <xsl:variable name="current-link">
    <xsl:variable name="path">
      <xsl:for-each select="//page[processing-instruction('page')='active']">
        <xsl:call-template name="xpath" />
      </xsl:for-each>
    </xsl:variable>
    <xsl:call-template name="construct-link">
      <xsl:with-param name="link-parameters-csv" select="concat('page=', $path)" />
    </xsl:call-template>
  </xsl:variable>
  
  <xsl:variable name="author">
    <xsl:value-of select="//author/text()" />    
  </xsl:variable>

  <xsl:variable name="uhtml-language">
    <xsl:choose>
      <xsl:when test="normalize-space($contentLanguage)='en'">
        <xsl:value-of select="'en'" />
      </xsl:when>
      <xsl:when test="normalize-space($contentLanguage)='no_NO_NY'">
        <xsl:value-of select="'no-nyn'" />
      </xsl:when>
      <xsl:otherwise> <!-- 'no_NO' eller 'ikke satt' -->
        <xsl:value-of select="'no-bok'" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
    
  
  <!-- Top level template -->
  <xsl:template match="/published-course">
    <html>
      <head>
        <title> webleksjon | <xsl:value-of select="title/text()"/> </title>
        
        <!-- uHTML-metadata (foreløpig hardkodet) -->
        
        <META content="studier" name="tema" />
        <META content="mf" name="enhet.id" />

        <META content="{$uhtml-language}" name="spraak" />
        <META content="{$author}" name="forfatter.navn" />
        
        <meta name="robots" content="noindex,nofollow" />
        
        <link rel="stylesheet" href="/vrtx/vortex-webdocuments/lcms/published/v003/lcms-published.css" type="text/css"/>  
      </head>
      
      <body>
        
        <table width="100%" border="0" cellpadding="0" cellspacing="0" class="menu">
          <tr>
            <td valign="top" width="15%">
              <div class="navigation-frame">
                <xsl:call-template name="generate-page-menu" />
              </div>
            </td>
            <td valign="top" align="left" class="content" width="85%">
              <xsl:choose>
                <xsl:when test="//page[processing-instruction('page')='active']">
                  <xsl:apply-templates select="//page[processing-instruction('page')='active']" /> 
                </xsl:when>
                <xsl:otherwise>
                  <xsl:call-template name="front-page"/>
                </xsl:otherwise>
              </xsl:choose>
            </td>
          </tr>
        </table>
        
      </body> 
      
    </html> 
  </xsl:template> 
  
  
  <!-- START INNHOLD -->
  <xsl:template match="page"> 
    <!-- Display section -->
    
    <!-- (medisin vil ikke at menypunkt-teksten skal avspeiles på siden)
    <p class="context">
      <xsl:value-of select="title"/>
    </p>
    -->
    
    <div class="content">
      <xsl:choose>
        <xsl:when test="content">
          <xsl:apply-templates select="content/*"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:if test="children/page">
            Siden har undersider
          </xsl:if>
        </xsl:otherwise>
      </xsl:choose>
    </div>
  </xsl:template>
  
  <xsl:template name="front-page">
    <div class="content">
      <h1><xsl:value-of select="title"/></h1>
      <h2>av <xsl:value-of select="author"/></h2>
      <div class="description">
        <xsl:apply-templates select="content/*" />
      </div>
    </div>
  </xsl:template>

<!-- Start hack pga. image-node til image konvertering.

     Av en eller annen grunn oversettes image-node til image 
     og alignment til position. Dette bør endres i CoursePublisherImpl.java.
     Inntil videre duplisert og mekket på  image-node.xsl her 
     for å få caption håndtering og alignment til å virke. -->

<!--
  <xsl:template match="image-node">
    <xsl:variable name="bilde" select="url"/>
    <xsl:variable name="width" select="@width"/>
    <xsl:variable name="height" select="@height"/>
    <xsl:variable name="caption" select="caption"/>
    <img src="{$bilde}" width="{$width}" height="{$height}"/>
    <br></br>
    <div class="caption"><xsl:value-of select="$caption"/></div>
    <br></br>
  </xsl:template> 

-->
  <xsl:template match="image-node">

    <!-- Bruker variabler her også for å beholde det mest mulig likt image -->

    <xsl:variable name="url">
      <xsl:value-of select="url" />
    </xsl:variable>
 
    <!-- alt-text må ha verdi -->
    <xsl:variable name="alt-text">
      <xsl:choose>
        <xsl:when test="normalize-space(alt-text)=''">
          <xsl:value-of select="'image'" />
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="alt-text" />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <xsl:variable name="caption">
      <xsl:value-of select="caption" />
    </xsl:variable>
  
   <xsl:variable name="alignment">
      <xsl:choose>
        <xsl:when test="@alignment='left'">
          <xsl:value-of select="'left'" /> 
        </xsl:when>
        <xsl:when test="@alignment='center'">
          <xsl:value-of select="'center'" /> 
        </xsl:when>
        <xsl:when test="@alignment='right'">
          <xsl:value-of select="'right'" /> 
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="'left'" /><!-- venstre er default i schema -->
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
 
    <xsl:variable name="height">
      <xsl:value-of select="@height" />
    </xsl:variable>

    <xsl:variable name="width">
      <xsl:value-of select="@width" />
    </xsl:variable>
 
    <xsl:choose>
      <xsl:when test="$caption=''">
        <xsl:choose>
          <xsl:when test="$alignment='center'">
            <div style="text-align:center;">
              <img src="{$url}" alt="{$alt-text}" />
            </div>
          </xsl:when>
          <xsl:when test="$alignment='right'">
            <img style="float:right; padding:0; margin: 0 0 0 0.75em;" src="{$url}" alt="{$alt-text}" />
          </xsl:when>
          <xsl:otherwise><!-- venstre er default i schema -->
            <img style="float:left; padding:0; margin: 0 0.75em 0 0;" src="{$url}" alt="{$alt-text}" />
          </xsl:otherwise>
        </xsl:choose>
      </xsl:when>
      <xsl:otherwise>
        <!-- må bruke tabell for at bildeteksten ikke skal skli ut. -->
        <!-- Evt. må høyde og bredde settes på bilde -->
        <table style="" cellspacing="0" cellpadding="0" align="{$alignment}" width="5%">
          <xsl:choose>
            <xsl:when test="$alignment='left'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0.75em 0 0'" />
              </xsl:attribute>
            </xsl:when>
            <xsl:when test="$alignment='center'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0.75em;'" />
              </xsl:attribute>
            </xsl:when>
            <xsl:when test="$alignment='right'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0 0 0.75em;'" />
              </xsl:attribute>
            </xsl:when>
          </xsl:choose>

          <tr>
            <td>
              <img style="margin:0; padding:0;" src="{$url}" alt="{$alt-text}">
                <xsl:if test="$height and not($height='')">
                  <xsl:attribute name="height">
                    <xsl:value-of select="$height" />
                  </xsl:attribute>
                </xsl:if>
                <xsl:if test="$width and not($width='')">
                  <xsl:attribute name="width">
                    <xsl:value-of select="$width" />
                  </xsl:attribute>
                </xsl:if>
              </img>
            </td>
          </tr>
          <tr>
            <td><xsl:apply-templates select="caption" /></td>
          </tr>
        </table>
      </xsl:otherwise>
    </xsl:choose>
      
  </xsl:template>

  <xsl:template match="image/alt-text|image/url" />

  <xsl:template match="image/caption">
    <div style="clear:both; font-size:76%; text-align:left; padding:0.5em;">
      <xsl:apply-templates />
    </div>
  </xsl:template>


  <xsl:template match="movie-node">

    <!-- Bruker variabler her også for å beholde det mest mulig likt image -->

    <xsl:variable name="url">
      <xsl:value-of select="url" />
    </xsl:variable>
 
    <!-- alt-text må ha verdi -->
    <xsl:variable name="alt-text">
      <xsl:choose>
        <xsl:when test="normalize-space(alt-text)=''">
          <xsl:value-of select="'movie'" />
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="alt-text" />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <xsl:variable name="caption">
      <xsl:value-of select="caption" />
    </xsl:variable>
  
   <xsl:variable name="alignment">
      <xsl:choose>
        <xsl:when test="@alignment='left'">
          <xsl:value-of select="'left'" /> 
        </xsl:when>
        <xsl:when test="@alignment='center'">
          <xsl:value-of select="'center'" /> 
        </xsl:when>
        <xsl:when test="@alignment='right'">
          <xsl:value-of select="'right'" /> 
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="'left'" /><!-- venstre er default i schema -->
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
 
    <xsl:variable name="height">
      <xsl:choose>
        <xsl:when test="@height=''">
          <xsl:value-of select="'256'" /> 
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="@height" />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <xsl:variable name="width">
      <xsl:choose>
        <xsl:when test="@width=''">
          <xsl:value-of select="'320'" /> 
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="@width" />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
 
    <xsl:choose>
      <xsl:when test="$caption=''">
        <xsl:choose>
          <xsl:when test="$alignment='center'">
            <div style="text-align:center;">
              <object>
                <param name="src" value="{$url}"/>
                <param name="width" value="{$width}"/>
                <param name="height" value="{$height}"/>
                <param name="controller" value="true"/>
                <param name="autoplay" value="false"/>
                <embed controller="true" src="{$url}" width="{$width}" height="{$height}" autoplay="false"/>
              </object>
            </div>
          </xsl:when>
          <xsl:when test="$alignment='right'">
            <object style="float:right; padding:0; margin: 0 0 0 0.75em;">
              <param name="src" value="{$url}"/>
              <param name="width" value="{$width}"/>
              <param name="height" value="{$height}"/>
              <param name="controller" value="true"/>
              <param name="autoplay" value="false"/>
              <embed controller="true" src="{$url}" width="{$width}" height="{$height}" autoplay="false"/>
            </object>
          </xsl:when>
          <xsl:otherwise><!-- venstre er default i schema -->
            <object style="float:left; padding:0; margin: 0 0.75em 0 0;">
              <param name="src" value="{$url}"/>
              <param name="width" value="{$width}"/>
              <param name="height" value="{$height}"/>
              <param name="controller" value="true"/>
              <param name="autoplay" value="false"/>
              <embed controller="true" src="{$url}" width="{$width}" height="{$height}" autoplay="false"/>
            </object>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:when>
      <xsl:otherwise>
        <!-- må bruke tabell for at bildeteksten ikke skal skli ut. -->
        <!-- Evt. må høyde og bredde settes på bilde -->
        <table style="" cellspacing="0" cellpadding="0" align="{$alignment}" width="5%">
          <xsl:choose>
            <xsl:when test="$alignment='left'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0.75em 0 0'" />
              </xsl:attribute>
            </xsl:when>
            <xsl:when test="$alignment='center'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0.75em;'" />
              </xsl:attribute>
            </xsl:when>
            <xsl:when test="$alignment='right'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0 0 0.75em;'" />
              </xsl:attribute>
            </xsl:when>
          </xsl:choose>

          <tr>
            <td>
              <object style="margin:0; padding:0;">
                <param name="src" value="{$url}"/>
                <param name="width" value="{$width}"/>
                <param name="height" value="{$height}"/>
                <param name="controller" value="true"/>
                <param name="autoplay" value="false"/>
                <embed controller="true" src="{$url}" width="{$width}" height="{$height}" autoplay="false"/>
              </object>

            </td>
          </tr>
          <tr>
            <td><xsl:apply-templates select="caption" /></td>
          </tr>
<!--
          <tr>
            <td>Autoplay: <xsl:apply-templates select="autoplay" /></td>
          </tr>
-->
        </table>
      </xsl:otherwise>
    </xsl:choose>
      
  </xsl:template>

  <xsl:template match="flash-node">

    <!-- Bruker variabler her også for å beholde det mest mulig likt image -->

    <xsl:variable name="url">
      <xsl:value-of select="url" />
    </xsl:variable>
 
    <!-- alt-text må ha verdi -->
    <xsl:variable name="alt-text">
      <xsl:choose>
        <xsl:when test="normalize-space(alt-text)=''">
          <xsl:value-of select="'flash'" />
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="alt-text" />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <xsl:variable name="caption">
      <xsl:value-of select="caption" />
    </xsl:variable>
  
   <xsl:variable name="alignment">
      <xsl:choose>
        <xsl:when test="@alignment='left'">
          <xsl:value-of select="'left'" /> 
        </xsl:when>
        <xsl:when test="@alignment='center'">
          <xsl:value-of select="'center'" /> 
        </xsl:when>
        <xsl:when test="@alignment='right'">
          <xsl:value-of select="'right'" /> 
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="'left'" /><!-- venstre er default i schema -->
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
 
    <xsl:variable name="height">
      <xsl:choose>
        <xsl:when test="@height=''">
          <xsl:value-of select="'256'" /> 
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="@height" />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <xsl:variable name="width">
      <xsl:choose>
        <xsl:when test="@width=''">
          <xsl:value-of select="'320'" /> 
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="@width" />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
 
    <xsl:choose>
      <xsl:when test="$caption=''">
        <xsl:choose>
          <xsl:when test="$alignment='center'">
            <div style="text-align:center;">
              <object>
                <param name="src" value="{$url}"/>
                <param name="width" value="{$width}"/>
                <param name="height" value="{$height}"/>
                <param name="controller" value="true"/>
                <param name="autoplay" value="false"/>
                <embed controller="true" src="{$url}" width="{$width}" height="{$height}" autoplay="false"/>
              </object>
            </div>
          </xsl:when>
          <xsl:when test="$alignment='right'">
            <object style="float:right; padding:0; margin: 0 0 0 0.75em;">
              <param name="src" value="{$url}"/>
              <param name="width" value="{$width}"/>
              <param name="height" value="{$height}"/>
              <param name="controller" value="true"/>
              <param name="autoplay" value="false"/>
              <embed controller="true" src="{$url}" width="{$width}" height="{$height}" autoplay="false"/>
            </object>
          </xsl:when>
          <xsl:otherwise><!-- venstre er default i schema -->
            <object style="float:left; padding:0; margin: 0 0.75em 0 0;">
              <param name="src" value="{$url}"/>
              <param name="width" value="{$width}"/>
              <param name="height" value="{$height}"/>
              <param name="controller" value="true"/>
              <param name="autoplay" value="false"/>
              <embed controller="true" src="{$url}" width="{$width}" height="{$height}" autoplay="false"/>
            </object>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:when>
      <xsl:otherwise>
        <!-- må bruke tabell for at bildeteksten ikke skal skli ut. -->
        <!-- Evt. må høyde og bredde settes på bilde -->
        <table style="" cellspacing="0" cellpadding="0" align="{$alignment}" width="5%">
          <xsl:choose>
            <xsl:when test="$alignment='left'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0.75em 0 0'" />
              </xsl:attribute>
            </xsl:when>
            <xsl:when test="$alignment='center'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0.75em;'" />
              </xsl:attribute>
            </xsl:when>
            <xsl:when test="$alignment='right'">
              <xsl:attribute name="style">
                <xsl:value-of select="'border: 1px solid #666; padding:0; margin:0 0 0 0.75em;'" />
              </xsl:attribute>
            </xsl:when>
          </xsl:choose>

          <tr>
            <td>
              <object style="margin:0; padding:0;">
                <param name="src" value="{$url}"/>
                <param name="width" value="{$width}"/>
                <param name="height" value="{$height}"/>
                <param name="controller" value="true"/>
                <param name="autoplay" value="false"/>
                <embed controller="true" src="{$url}" width="{$width}" height="{$height}" autoplay="false"/>
              </object>

            </td>
          </tr>
          <tr>
            <td><xsl:apply-templates select="caption" /></td>
          </tr>
<!--
          <tr>
            <td>Autoplay: <xsl:apply-templates select="autoplay" /></td>
          </tr>
-->
        </table>
      </xsl:otherwise>
    </xsl:choose>
      
  </xsl:template>

<!-- Slutt hack pga. image-node  til image konvertering -->

  <!-- ================================================================= -->
  <!-- Some help methods                                                 -->
  <!-- ================================================================= -->

  <xsl:template name="generate-page-menu">
    <table width="100%" cellpadding="2" cellspacing="2">
      <tr>
        <td class="navhome">        
          <xsl:variable name="link">
            <xsl:call-template name="construct-link" />
          </xsl:variable>
          <a href="{$link}" class="home"><xsl:value-of select="title" /></a>
          <hr style="margin-top: 0.5em;"/>
        </td>
      </tr>
      <xsl:for-each select="page">
        <xsl:call-template name="page" />
      </xsl:for-each>
    </table>
  </xsl:template>
            

  <xsl:template name="page">
    <xsl:param name="level" select="1" />

    <xsl:variable name="path">
      <xsl:call-template name="xpath" />
    </xsl:variable>
      
    <xsl:variable name="link">
      <xsl:call-template name="construct-link">
        <xsl:with-param name="link-parameters-csv" select="concat('page=', $path)" />
      </xsl:call-template>
    </xsl:variable>
    <tr>
      <xsl:variable name="css-class">
        <xsl:choose>
          <xsl:when test="$level=1">navsection</xsl:when>
          <xsl:when test="$level=2">navsubsection</xsl:when>
          <xsl:when test="$level=3">navsubsubsection</xsl:when>
          <xsl:when test="$level=4">navsubsubsubsection</xsl:when>
          <xsl:when test="$level=5">navsubsubsubsubsection</xsl:when>
          <xsl:otherwise><xsl:value-of select="$level" /></xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
      <xsl:variable name="href-css-class">
        <xsl:value-of select="$css-class" />
        <xsl:if test="processing-instruction('page')='active'">
          <xsl:value-of select="'-active'" />
        </xsl:if>
      </xsl:variable>
      <td class="{$css-class}">
        <a href="{$link}" class="{$href-css-class}"><xsl:value-of select="title"/></a>
      </td>
    </tr>
    <xsl:if test="processing-instruction('page')='active' or processing-instruction('menu')='active'">
      <xsl:for-each select="children/page">
        <xsl:call-template name="page">
          <xsl:with-param name="level" select="$level+1" />
        </xsl:call-template>
      </xsl:for-each>
    </xsl:if>
    
  </xsl:template>

</xsl:stylesheet>
