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

  <!-- =============================================================== -->
  <!-- Dokumenttypens hovedelement blir matchet i system-edit.xsl.     -->
  <!-- =============================================================== -->
  <xsl:import href="../../../system/system-edit-v001.xsl"/>
  <xsl:import href="../../../felles/komponenter/fritekst/v002/fritekst-edit.xsl"/>
  <xsl:import href="../../komponenter/saksinfo/v001/saksinfo-edit.xsl" />
  <xsl:import href="../../ressurser/indexnumber-edit-v001.xsl" />


 
  <!-- =============================================================== -->
  <!-- Templates som kalles i system-edit.xsl og som kan overstyres.   -->
  <!-- Se avsnitt "Template name API" i system-edit.xsl for oversikt   -->
  <!-- over disse.                                                     -->
  <!-- =============================================================== -->

  <!-- Definerer hvorvidt system-edit skal legge på "Rediger <elementnavn>" -->
  <!-- på toppnivå-elementer eller ikke -->
  <xsl:variable name="label-toplevel-elements" select="'no'" />

  <!-- Definer det statiske elementet rett fÃ¸r de flyttbare elementene -->
  <xsl:variable name="movable-or-deletable-elements-after" select="'ingress'" />

  <!-- DTD-syntaks for flyttbare og slettbare elementer (men ikke bruk mellomrom)-->
  <xsl:variable name="movable-or-deletable-elements" select="'(dokumentreferanse)*'" />

  <!-- css-klasser kan som brukes i denne dok. typen kan legges inn her -->
  <xsl:template name="css-classes">
    .tittel{font-size: 200%; font-weight: bold;}
    .label-1{font-weight: bold; font-size:110%;}
    .label-2{font-weight: bold;}
    .mindre{font-size: 75%;}
  </xsl:template>

  <!-- shortcuts for å sette inn elementer nederst spesifiseres i denne -->
  <!-- se evt. pensumliste-edit.xsl for eksempel. -->
  <xsl:template name="shortcutlinks-put-bottom">
    <xsl:param name="path" />
    <b>Sett inn nederst i dokumentet:</b>
    (<a href="{$newElementAtServiceURL}&amp;name=dokumentreferanse&amp;at={$path}#jump">ny dokumentreferanse</a>)&#160;
  </xsl:template>
  
  <!-- spesifiser egne form variabler her -->
  <xsl:template name="additional-form-variables">
  </xsl:template>


  <!-- =============================================================== -->
  <!-- Templater for visning.                                          -->
  <!-- =============================================================== -->

  <!-- templater for saksinfo ligger i saksinfo-edit.xsl -->

  <xsl:template match="tittel">
    <span class="tittel">
      <xsl:if test="not($indexnumber='')"><xsl:value-of select="$indexnumber" />:&#160;</xsl:if><xsl:value-of select="." /></span><xsl:call-template name="insert-edit-link" />
  </xsl:template>

  <xsl:template match="ingress">
    <xsl:if test="not(.='')">
      <xsl:apply-templates />
    </xsl:if><xsl:call-template name="insert-edit-link" />  
  </xsl:template>

  <xsl:template match="dokumentreferanse">
   <xsl:variable name="file">
      <xsl:choose>
        <xsl:when test="not(contains(.,'.xml'))"> <!-- sjekker at det pekes til en .xml fil - får feil og kræsj ved aksess av eksistrende mapper -->
          <xsl:value-of select="'Ugyldig verdi'" />
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="." />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    
    <li>
      <xsl:variable name="subindexnumber">
        <xsl:if test="document('../index.xml', self::node())/dokumentindeks">
          <xsl:choose>
            <xsl:when test="not($indexnumber='')"><xsl:value-of select="$indexnumber" />.<xsl:number /></xsl:when>
            <xsl:otherwise>
              <xsl:number />
            </xsl:otherwise>
          </xsl:choose>
        </xsl:if>
      </xsl:variable>
 
      <!-- legge til mappe før reletive pekere i underdokument -->
      <xsl:variable name="last-token-pos-file"> 
        <xsl:call-template name="find-last-pos">
          <xsl:with-param name="string" select="." />
        </xsl:call-template>
      </xsl:variable>
 
      <xsl:variable name="filefolder" select="substring(.,1, $last-token-pos-file)" />
      <xsl:variable name="document" select="document($file, self::node())" />

      <xsl:choose>
        <xsl:when test="$document">
          <a href="{.}">
            <xsl:if test="not($subindexnumber='')"><xsl:value-of select="$subindexnumber" />:&#160;</xsl:if>
            <xsl:value-of select="$document//tittel" />
          </a>&#160;&#160;&#160;<xsl:call-template name="insert-edit-link" />
        
          <!-- skriver ut underpunkter hvis det pekes til en indexfil -->
          <xsl:if test="$document/dokumentindeks">
            <ul>
              <xsl:for-each select="$document/dokumentindeks/dokumentreferanse">
                <xsl:variable name="subfile">
                  <xsl:choose>
                    <!-- sjekker at det pekes til en .xml fil - får feil og kræsj ved aksess av eksistrende mapper -->
                    <xsl:when test="not(contains(.,'.xml'))"> 
                      <xsl:value-of select="'Ugyldig verdi'" />
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="." /> 
                      <!-- xsl:value-of select="concat(substring-before($file,'index.xml'),.)" / --> 
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:variable>
                <xsl:variable name="subdocument" select="document($subfile, .)" />
                <li>
                  <xsl:choose>
                    <xsl:when test="$subdocument//tittel">
                      <a href="{concat($filefolder,.)}">
                        <xsl:if test="not($subindexnumber='')"><xsl:value-of select="$subindexnumber" />.</xsl:if>
                        <xsl:number />:&#160;<xsl:value-of select="$subdocument//tittel" />
                      </a>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:if test="not($subindexnumber='')"><xsl:value-of select="$subindexnumber" />.</xsl:if>
                      <xsl:number />:&#160;<xsl:value-of select="." />
                    </xsl:otherwise>
                  </xsl:choose>
                </li>
              </xsl:for-each>
            </ul>
          </xsl:if>
        </xsl:when>
        <xsl:otherwise>
          <xsl:if test="not($subindexnumber='')"><xsl:value-of select="$subindexnumber" />:&#160;</xsl:if>
          <xsl:value-of select="." />&#160;<font color="red">(FEIL: Referansen peker ikke til et xml-dokument)</font>&#160;&#160;&#160;<xsl:call-template name="insert-edit-link" />
        </xsl:otherwise>
      </xsl:choose>
    </li>
  </xsl:template>



  <!-- =============================================================== -->
  <!-- Templater for redigering legges her.                            -->
  <!-- Elementene som skal redigeres må ha: mode="edit"                -->
  <!-- =============================================================== -->
  
  <!-- templater for saksinfo ligger i saksinfo-edit.xsl -->

  <xsl:template match="tittel" mode="edit"> <!-- nivÃ¥ 1 -->
    <table border="0" cellspacing="0" cellpadding="5">
      <tr>
        <td colspan="2">
          <b>Rediger <xsl:value-of select="name()" />:</b>
        </td>
      </tr>
      <tr>
        <td nowrap="nowrap"><xsl:value-of select="name()" />:</td>
        <td width="90%"><xsl:call-template name="insert-inputfield" /></td>
      </tr>
    </table>
  </xsl:template>


  <xsl:template match="ingress" mode="edit"><!-- textarea -->
  <table border="0" cellspacing="0" cellpadding="5">
    <tr>
      <td>Rediger <xsl:value-of select="name()" />:</td>
    </tr>
    <tr>
      <td><xsl:call-template name="insert-textarea" /></td>
    </tr>
  </table>  
  </xsl:template>


  <xsl:template match="dokumentreferanse" mode="edit">
    <table border="0" cellspacing="0" cellpadding="5">
      <tr>
        <td>
          <xsl:choose>
            <xsl:when test="not(.='')">
              <b>Rediger <xsl:value-of select="name()" />: </b>
            </xsl:when>
            <xsl:otherwise>
              <b>Ny <xsl:value-of select="name()" />: </b>
            </xsl:otherwise>
          </xsl:choose> 
        </td>
      </tr>
      <tr>
        <td><xsl:call-template name="insert-inputfield" />&#160;<xsl:call-template name="insert-browsebutton" /></td>
      </tr>
    </table>
  </xsl:template>
</xsl:stylesheet>
