<?xml version="1.0" encoding="iso-8859-1"?>

  <!-- ============================================================================================= -->
  <!-- Stilark for konvertere studieprogram som ligger på element til webredigerbare dokumenter.     -->
  <!--                                                                                               -->
  <!-- Parametere:                                                                                   -->
  <!-- @param ut-katalog (toppkatalog hvor de konverterte resultatene skal plasseres)                -->
  <!-- @param kortnavn (programkortnavnet = navn på programmappe på element)                         -->      
  <!--                                                                                               -->
  <!-- Inndata til stilarket                                                                         -->
  <!-- * index.xml                                                                                   -->
  <!-- * kontaktinformasjon.xml                                                                      -->
  <!-- * beskjeder.xml                                                                               -->
  <!--                                                                                               -->
  <!-- Utdata fra stilarket (filene legges under: {ut-katalog}/{kortnavn}/)                          -->
  <!-- * index.xml (slår sammen innhold fra presentasjonen og dagens hjemmeside hvis det finnes)     -->
  <!-- * kontaktinformasjon.xml (slår sammen innhold fra presentasjonen og                           -->
  <!--                           dagens kontaktinformasjonsdokument hvis det finnes)                 -->
  <!-- * beskjeder.xml (lager et tomt beskjeder.xml dokument kun hvis det ikke finnes fra før)       -->
  <!-- * om/kort-om-programmet.xml                                                                   -->
  <!-- * om/hvordan-soke.xml                                                                         -->
  <!-- * om/hva-laerer-du.xml                                                                        -->
  <!-- * om/oppbygging-gjennomforing.xml                                                             -->
  <!-- * om/utenlandsopphold.xml                                                                     -->
  <!-- * om/jobb-og-studiemuligheter.xml                                                             -->
  <!-- ============================================================================================= -->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1">
  <xsl:import href="fritekst-konverterer-v001.xsl" />

  <xsl:param name="kortnavn" select="'test-konvertering'" /> <!-- brukes til lage bibliotekslenke også -->

  <xsl:param name="ut-katalog" select="'mappe'" />

  <xsl:strip-space elements="*"/>

  <xsl:variable name="dagens-hjemmeside" select="'index.xml'" />
  <xsl:variable name="dagens-kontaktinformasjon" select="'kontaktinformasjon.xml'" />
  <xsl:variable name="dagens-beskjeder" select="'beskjeder.xml'" />
  
  <xsl:template name="subdoc">
    <xsl:param name="file"/>
    <xsl:param name="element"/>
    <xsl:document href="{$ut-katalog}/{$kortnavn}/{$file}" method="xml" encoding="utf-8" media-type="text/xml" indent="no">
      <xsl:apply-templates select="$element"/>
    </xsl:document>
  </xsl:template>


  <xsl:template match="/">
    
    <xsl:call-template name="subdoc">
      <xsl:with-param name="file" select="'index.xml'"/>
      <xsl:with-param name="element" select="studieprogram"/>
    </xsl:call-template>

    <xsl:call-template name="subdoc">
      <xsl:with-param name="file" select="'om/kort-om-programmet.xml'"/>
      <xsl:with-param name="element" select="studieprogram/kort-om-programmet"/>
    </xsl:call-template>

    <xsl:call-template name="subdoc">
      <xsl:with-param name="file" select="'om/hvordan-soke.xml'"/>
      <xsl:with-param name="element" select="studieprogram/programopptak-og-frister"/>
    </xsl:call-template>
 
    <xsl:call-template name="subdoc">
      <xsl:with-param name="file" select="'om/hva-laerer-du.xml'"/>
      <xsl:with-param name="element" select="studieprogram/hva-laerer-du"/>
    </xsl:call-template>
 
    <xsl:call-template name="subdoc">
      <xsl:with-param name="file" select="'om/oppbygging-gjennomforing.xml'"/>
      <xsl:with-param name="element" select="studieprogram/oppbygging-gjennomforing"/>
    </xsl:call-template>
 
    <xsl:call-template name="subdoc">
      <xsl:with-param name="file" select="'om/utenlandsopphold.xml'"/>
      <xsl:with-param name="element" select="studieprogram/utenlandsopphold"/>
    </xsl:call-template>
 
    <xsl:call-template name="subdoc">
      <xsl:with-param name="file" select="'om/jobb-og-studiemuligheter.xml'"/>
      <xsl:with-param name="element" select="studieprogram/jobb-og-studiemuligheter"/>
    </xsl:call-template>

    <xsl:call-template name="subdoc">
      <xsl:with-param name="file" select="'kontaktinformasjon.xml'"/>
      <xsl:with-param name="element" select="studieprogram/kontaktinformasjon"/>
    </xsl:call-template>

    <!-- hvis ikke beskjed-dokument finnes fra før så skal det opprettes -->
    <xsl:variable name="dagens-beskjeder-doc" select="document($dagens-beskjeder,self::node())" />
    <xsl:if test="not($dagens-beskjeder-doc)">
      <xsl:document href="{$ut-katalog}/{$kortnavn}/beskjeder.xml" method="xml" encoding="utf-8" media-type="text/xml" indent="yes">
        <beskjeder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/beskjeder-studieprogram/v001/beskjeder-studieprogram.xsd">
          <xsl:choose>
            <xsl:when test="studieprogram/@spraak='engelsk'">
              <spraak>engelsk</spraak>
            </xsl:when>
            <xsl:when test="studieprogram/@spraak='nynorsk'">
              <spraak>nynorsk</spraak>
            </xsl:when>
            <xsl:otherwise>
              <spraak>bokmaal</spraak>
            </xsl:otherwise>
          </xsl:choose>
          <tittel>
            <programkode><xsl:value-of select="studieprogram/programkode" /></programkode>
            <brukernavn />
          </tittel>
        </beskjeder>        
      </xsl:document>
    </xsl:if>
  </xsl:template>


  <xsl:template match="studieprogram">
    <xsl:variable name="dagens-hjemmeside-doc" select="document($dagens-hjemmeside,self::node())" />

    <studieprogram-hjemmeside xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/studieprogram-hjemmeside/v002/studieprogram-hjemmeside.xsd">
      
      <xsl:copy-of select="programnavn" />
      <xsl:copy-of select="programkode" />
      <programtype><xsl:value-of select="programtype/@type" /></programtype>
      <xsl:copy-of select="bilde" />
      <xsl:copy-of select="faktaboks" />
      <temaomraade>
        <xsl:for-each select="temaomraade/*">
          <omraade><xsl:value-of select="./@kategori" /></omraade>
        </xsl:for-each>
      </temaomraade>
      <om-programmet />
      <studieretninger />
      <!-- xsl:copy-of select="studieretninger" / -->
      <studiestart />
 
     <xsl:choose>
       <xsl:when test="@spraak='engelsk'">
         <overskrift>Resources</overskrift>
         <weblenke>
           <lenketekst>Library pages for this programme</lenketekst>
           <webadresse>http://www.ub.uio.no/ubfelles/studprog/<xsl:value-of select="$kortnavn" /></webadresse>
         </weblenke>
       </xsl:when>
       <xsl:otherwise>
         <overskrift>Ressurser</overskrift>
         <weblenke>
           <lenketekst>Bibliotekside for dette programmet</lenketekst>
           <webadresse>http://www.ub.uio.no/ubfelles/studprog/<xsl:value-of select="$kortnavn" /></webadresse>
         </weblenke>
       </xsl:otherwise>
     </xsl:choose>

     <!-- lenker fra dagens hjemmeside -->
     <xsl:for-each select="$dagens-hjemmeside-doc//weblenke">
        <xsl:copy-of select="." />
      </xsl:for-each>

      <kontaktinformasjon />
    </studieprogram-hjemmeside>
  </xsl:template>


  <xsl:template match="kort-om-programmet">
    <kort-om-programmet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/kort-om-programmet/v001/kort-om-programmet.xsd">
      <ingress><avsnitt><xsl:apply-templates select="../ingress" /></avsnitt></ingress>
      <xsl:apply-templates />
    </kort-om-programmet>
  </xsl:template>


  <xsl:template match="programopptak-og-frister">
    <hvordan-soke xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/hvordan-soke/v001/hvordan-soke.xsd">
      <xsl:apply-templates />
    </hvordan-soke>
  </xsl:template>

    <!-- xsd:restriction base="xsd:string"> 
      <xsd:enumeration value="gsk-so-program" /> 
      <xsd:enumeration value="krav-master-program" /> 
      <xsd:enumeration value="gsk-so-studieretning" /> 
      <xsd:enumeration value="ikke-eget-opptak-studieretning" /> 
      <xsd:enumeration value="ingen" /> 
    </xsd:restriction -->

  <xsl:template match="programopptak">
    <opptak>
      <xsl:attribute name="fellestekst">
        <xsl:choose>
          <xsl:when test="@fellestekst='gsk-so'">
            <xsl:value-of select="'gsk-so-program'" />
          </xsl:when>
          <xsl:when test="@fellestekst='krav-master'">
            <xsl:value-of select="'krav-master-program'" />
          </xsl:when>
          <xsl:when test="@fellestekst='ingen'">
            <xsl:value-of select="'ingen'" />
          </xsl:when>
        </xsl:choose>
      </xsl:attribute>
      <xsl:apply-templates />
    </opptak>
  </xsl:template>

  <xsl:template match="frister-spesielle-krav">
    <frister-spesielle-krav>
      <xsl:apply-templates />
    </frister-spesielle-krav>
  </xsl:template>

  <xsl:template match="innpassing">
    <innpassing fellestekst="{@fellestekst}">
      <xsl:apply-templates />
    </innpassing>
  </xsl:template>


  <xsl:template match="hva-laerer-du">
    <hva-laerer-du xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/hva-laerer-du/v001/hva-laerer-du.xsd">
      <xsl:apply-templates />
    </hva-laerer-du>
  </xsl:template>


  <xsl:template match="oppbygging-gjennomforing">
    <oppbygging-gjennomforing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/oppbygging-gjennomforing/v001/oppbygging-gjennomforing.xsd">
      <xsl:apply-templates />
    </oppbygging-gjennomforing>
  </xsl:template>

  <xsl:template match="studielopstabell">
    <studielopstabell>
      <xsl:apply-templates />
    </studielopstabell>
  </xsl:template>

  <xsl:template match="semester">
    <semester>
      <xsl:attribute name="nr">
        <xsl:value-of select="nr" />
      </xsl:attribute>
      <xsl:apply-templates select="blokk" />
    </semester>
  </xsl:template>

  <xsl:template match="blokk">
    <blokk type="{@type}">
      <xsl:copy-of select="studiepoeng" />
      <xsl:apply-templates select="tekst" />
    </blokk>
  </xsl:template>

  <xsl:template match="tekst">
    <tekst>
      <avsnitt><xsl:apply-templates /></avsnitt>
    </tekst>
  </xsl:template>


  <xsl:template match="utenlandsopphold">
    <utenlandsopphold xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/utenlandsopphold/v001/utenlandsopphold.xsd">
      <xsl:apply-templates />
    </utenlandsopphold>
  </xsl:template>

  <xsl:template match="generelle-avtaler">
    <generelle-avtaler fellestekst="{@fellestekst}">
      <xsl:apply-templates />
    </generelle-avtaler>
  </xsl:template>


  <xsl:template match="jobb-og-studiemuligheter">
    <jobb-og-studiemuligheter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/jobb-og-studiemuligheter/v001/jobb-og-studiemuligheter.xsd">
      <xsl:apply-templates />
    </jobb-og-studiemuligheter>
  </xsl:template>



  <xsl:template match="karriereintervjuer">
    <karriereintervjuer>
      <xsl:apply-templates />
    </karriereintervjuer>
  </xsl:template>

  <xsl:template match="karriereintervjuer/intervju-referanse">
    <intervju-referanse>
      <xsl:apply-templates />
    </intervju-referanse>
  </xsl:template>

  <xsl:template match="karriereintervjuer/intervju-referanse/overskrift | 
                       karriereintervjuer/intervju-referanse/ingress | 
                       karriereintervjuer/intervju-referanse/lenketekst">
    <xsl:copy-of select="." />
  </xsl:template>

  <xsl:template match="karriereintervjuer/intervju-referanse/bilde">
    <bilde><xsl:text>../karriereintervjuer/</xsl:text><xsl:value-of select="." /></bilde>
  </xsl:template>

  <xsl:template match="karriereintervjuer/intervju-referanse/filnavn">
    <filnavn><xsl:text>../karriereintervjuer/</xsl:text><xsl:value-of select="." /></filnavn>
  </xsl:template>


  <xsl:template match="kontaktinformasjon">
    <xsl:variable name="dagens-kontaktinformasjon-doc" select="document($dagens-kontaktinformasjon,self::node())" />
    <kontaktinformasjon xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.uio.no/xsd/studier/kontaktinformasjon/v001/kontaktinformasjon.xsd">

        <!-- dokumentet finnes ikke hvis koden er tom -->
        <xsl:choose>
          <xsl:when test="not(normalize-space($dagens-kontaktinformasjon-doc//programkode)='') or 
                          not(normalize-space($dagens-kontaktinformasjon-doc//studieretningskode)='')">
            
            <!-- dokumentet finnes -->
        <xsl:choose> 
              <xsl:when test="not(normalize-space($dagens-kontaktinformasjon-doc//adresse)='')">
                <!-- adresse finnes, presentasjonsadressen skal inn som for-sokere -->
                <for-sokere>
                  <adressatnavn><xsl:value-of select="adresse/adressatnavn" /></adressatnavn>
                  <besoksadresse><xsl:value-of select="adresse/besoksadresse" /></besoksadresse>
                  <ekspedisjonstid><xsl:value-of select="adresse/ekspedisjonstid" /></ekspedisjonstid>
                  <postadresse><xsl:value-of select="adresse/postadresse" /></postadresse>
                  <postnummer-og-sted><xsl:value-of select="adresse/postnummer-og-sted" /></postnummer-og-sted>
                  <telefon><xsl:value-of select="adresse/telefon" /></telefon>
                  <fax><xsl:value-of select="adresse/fax" /></fax>
                  <epost><xsl:value-of select="adresse/epost" /></epost>
                  <webadresse><xsl:value-of select="adresse/webadresse" /></webadresse>
                </for-sokere>

                <!-- innhold fra dagens kontaktinformasjon -->
                <xsl:for-each select="$dagens-kontaktinformasjon-doc/*">
                  <xsl:copy-of select="./adresse | ./kontaktpunkt" />
                </xsl:for-each>
              </xsl:when>
              <xsl:otherwise>
                <!-- presentasjonsadressen skal inn som vanlig adresse -->            
                <for-sokere>
                  <adressatnavn />
                  <besoksadresse />
                  <ekspedisjonstid />
                  <postadresse />
                  <postnummer-og-sted />
                  <telefon />
                  <fax />
                  <epost />
                  <webadresse />
                </for-sokere>

                <adresse>
                  <adressatnavn><xsl:value-of select="adresse/adressatnavn" /></adressatnavn>
                  <besoksadresse><xsl:value-of select="adresse/besoksadresse" /></besoksadresse>
                  <ekspedisjonstid><xsl:value-of select="adresse/ekspedisjonstid" /></ekspedisjonstid>
                  <postadresse><xsl:value-of select="adresse/postadresse" /></postadresse>
                  <postnummer-og-sted><xsl:value-of select="adresse/postnummer-og-sted" /></postnummer-og-sted>
                  <telefon><xsl:value-of select="adresse/telefon" /></telefon>
                  <fax><xsl:value-of select="adresse/fax" /></fax>
                  <epost><xsl:value-of select="adresse/epost" /></epost>
                  <webadresse><xsl:value-of select="adresse/webadresse" /></webadresse>
                </adresse>

                <!-- innhold fra dagens kontaktinformasjon -->
                <xsl:for-each select="$dagens-kontaktinformasjon-doc/*">
                  <xsl:copy-of select="./kontaktpunkt" />
                </xsl:for-each>
              </xsl:otherwise>
             </xsl:choose>
          </xsl:when>

        <xsl:otherwise>
          <!-- dokumentet finnes ikke -->
          <for-sokere>
            <adressatnavn />
            <besoksadresse />
            <ekspedisjonstid />
            <postadresse />
            <postnummer-og-sted />
            <telefon />
            <fax />
            <epost />
            <webadresse />
          </for-sokere>

          <adresse>
            <adressatnavn><xsl:value-of select="adresse/adressatnavn" /></adressatnavn>
            <besoksadresse><xsl:value-of select="adresse/besoksadresse" /></besoksadresse>
            <ekspedisjonstid><xsl:value-of select="adresse/ekspedisjonstid" /></ekspedisjonstid>
            <postadresse><xsl:value-of select="adresse/postadresse" /></postadresse>
            <postnummer-og-sted><xsl:value-of select="adresse/postnummer-og-sted" /></postnummer-og-sted>
            <telefon><xsl:value-of select="adresse/telefon" /></telefon>
            <fax><xsl:value-of select="adresse/fax" /></fax>
            <epost><xsl:value-of select="adresse/epost" /></epost>
            <webadresse><xsl:value-of select="adresse/webadresse" /></webadresse>
          </adresse>
        </xsl:otherwise>
      </xsl:choose>
    </kontaktinformasjon>
  </xsl:template>




  <!-- ================================================= -->
  <!-- Generelle underelementer                          -->
  <!-- ================================================= -->

  <!-- overstyrer avsnitt fra fritekst-konverter-v001 - maa samle avsnitt i fritekst elementer -->
  <xsl:template match="avsnitt">
    <xsl:if test="name(preceding-sibling::*[1])!='avsnitt'"><xsl:text disable-output-escaping="yes">&lt;fritekst&gt;</xsl:text></xsl:if>    
    <avsnitt><xsl:apply-templates /></avsnitt>
    <xsl:if test="name(following-sibling::*[1])!='avsnitt'"><xsl:text disable-output-escaping="yes">&lt;/fritekst&gt;</xsl:text></xsl:if>    
  </xsl:template>

  <xsl:template match="overskrift">
    <overskrift><xsl:value-of select="." /></overskrift>
  </xsl:template>

</xsl:stylesheet>

