<?xml version="1.0" encoding="windows-1250"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:fo="http://www.w3.org/1999/XSL/Format"
                version="1.0">

<!-- Vytvoreni zakladni kostry dokumentu -->
<xsl:template match="/">
 <fo:root>

  <fo:layout-master-set>
   <fo:simple-page-master page-height="297mm" page-width="210mm"
    margin-bottom="2cm" margin-left="2.5cm" margin-right="2cm"
    margin-top="2.5cm" master-name="my-master">
    <fo:region-body margin-bottom="15mm"/>
    <fo:region-after extent="10mm"/>
   </fo:simple-page-master>
  </fo:layout-master-set>

  <fo:page-sequence master-name="my-master">
   <fo:static-content flow-name="xsl-region-after">
    <fo:block font-size="75%" text-align="center">
     <!-- Číslo strany na každé stránce -->
     <xsl:text>Strana </xsl:text>
     <fo:page-number/>
    </fo:block>
   </fo:static-content>
   <fo:flow flow-name="xsl-region-body" font-family="Times Roman" font-size="12pt">
    <fo:block>
    <xsl:for-each select="adresar/osoba">
    <!-- Seradime podle prijmeni -->
    <xsl:sort select="@prijmeni"/>
    <xsl:sort select="@jmeno" />
    <!-- Kazdy zaznam ve vlastni tabulce. Zahlavi je cele jmeno -->
     <fo:block font="bold 200% Helvetica" break-before="page"
      space-before="18pt" space-before.conditionality="discard"
      space-after="6pt" keep-with-next.within-column="always"
      keep-together.within-column="always" text-align="center"
      padding="3pt" background-color="silver" id="{@id}">
      <xsl:value-of select="concat(@titul_pred,' ',@jmeno,' ',@prijmeni,' ',@titul_za)" />
     </fo:block>
     <xsl:apply-templates/>
    </xsl:for-each>
    </fo:block>
   </fo:flow>
  </fo:page-sequence>

 </fo:root>
</xsl:template>


<!-- Pro kazdy oddil samostatne zahlavi -->
<!-- Osobni udaje -->
<xsl:template match="osobni">
 <fo:block font-family="Helvetica" font-size="150%" margin-top="12pt">Osobní údaje</fo:block>
 <fo:table>
  <fo:table-body>
   <fo:table-cell starts-row="true">
  <!-- Vypis osobnich udaju. Kazdy na samostatne radce -->
  <xsl:for-each select="*">
  <fo:block padding-left="0.5cm">
   <fo:inline color="navy">
    <xsl:value-of select="translate(name(),'_',' ')" />
     <xsl:text>: </xsl:text>
    </fo:inline>
     <xsl:value-of select="." />
     <xsl:text> </xsl:text>
     <xsl:value-of select="@*" />
  </fo:block>
  </xsl:for-each>
   </fo:table-cell>
   <fo:table-cell ends-row="true">
    <fo:block text-align="center">
     <!-- Odkaz na obrazek -->
     <fo:external-graphic src="url('images/{../@id}.jpg')"/>
    </fo:block>
   </fo:table-cell>
  </fo:table-body>
 </fo:table>
</xsl:template>


<!-- Rodine udaje -->
<xsl:template match="rodina">
 <fo:block font-family="Helvetica" font-size="150%" margin-top="12pt">Rodiný stav: <xsl:value-of select="@stav" /></fo:block>
  <!-- Nejdriv testuje manzela/manzelku -->
  <xsl:apply-templates/>
  <!-- Potom testuje a vypisuje deti -->
  <xsl:if test="dítě">
   <fo:block color="navy" padding-left="0.5cm">děti:</fo:block>
    <fo:list-block margin-top="-14pt" space-after="6pt" padding-left="1.5cm">
    <xsl:for-each select="dítě">
     <fo:list-item>
      <fo:list-item-label end-indent="label-end()">
       <fo:block font-family="ZapfDingbats">&#10145;</fo:block>
      </fo:list-item-label>
      <fo:list-item-body start-indent="body-start()">
       <fo:block>
       <xsl:value-of select="@jmeno" />
       <xsl:text> </xsl:text>
       <xsl:value-of select="@prijmeni" />
       </fo:block>
      </fo:list-item-body>
     </fo:list-item>
    </xsl:for-each>
    </fo:list-block>
  </xsl:if>
</xsl:template>


<xsl:template match="manžel-ka">
 <fo:block padding-left="0.5cm">
  <xsl:choose>
   <xsl:when test="@id">
    <!-- Pokud je uvedeno Id, vytvori se odkaz -->
    <fo:basic-link color="navy" internal-destination="{@id}"
     text-decoration="underline">manžel(ka):</fo:basic-link>
   </xsl:when>
   <xsl:otherwise>
    <!-- Jinak se napise jenom jmeno -->
    <fo:inline color="navy">manžel(ka):</fo:inline>
   </xsl:otherwise>
  </xsl:choose>
  <xsl:text> </xsl:text>
  <xsl:value-of select="@jmeno" />
  <xsl:text> </xsl:text>
  <xsl:value-of select="@prijmeni" />
 </fo:block>
</xsl:template>


<!-- Bydliste -->
<xsl:template match="bydliste">
 <fo:block font-family="Helvetica" font-size="150%" margin-top="12pt">Bydliště</fo:block>
 <fo:table>
  <fo:table-body>
   <fo:table-cell starts-row="true">
    <!-- Do leve bunky adresu -->
    <fo:block padding-left="0.5cm">
     <xsl:value-of select="ulice" />
    </fo:block>
    <fo:block padding-left="0.5cm">
     <xsl:value-of select="psč" />
     <xsl:text>, </xsl:text>
     <xsl:value-of select="město" />
    </fo:block>
    <fo:block padding-left="0.5cm" font-size="85%">
     (okres <xsl:value-of select="okres" />)
    </fo:block>
   </fo:table-cell>
   <fo:table-cell ends-row="true">
    <!-- Do prave bunky prijde to ostatni: tel, fax, mail -->
    <fo:block padding-left="0.5cm">
     <xsl:text> </xsl:text>
    </fo:block>
    <xsl:apply-templates />
   </fo:table-cell>
  </fo:table-body>
 </fo:table>
</xsl:template>


<!-- Zamestnani je velmi podobne -->
<xsl:template match="zamestnani">
 <fo:block font-family="Helvetica" font-size="150%" margin-top="12pt">Zaměstnání</fo:block>
 <!-- Nejdriv nazev a funkce -->
 <fo:block padding-left="0.5cm">
  <xsl:value-of select="název" />
 </fo:block>
 <fo:block padding-left="1cm" font-size="85%">
  <xsl:value-of select="funkce" />
 </fo:block>
 <fo:table>
  <fo:table-body>
   <fo:table-cell starts-row="true">
  <!-- Dolu doleva pak adresu -->
 <fo:block padding-left="0.5cm">
   <xsl:value-of select="ulice" />
 </fo:block>
 <fo:block padding-left="0.5cm">
   <xsl:value-of select="psč" />
   <xsl:text>, </xsl:text>
   <xsl:value-of select="město" />
 </fo:block>
   </fo:table-cell>
   <fo:table-cell ends-row="true">
    <!-- Do prave bunky prijde to ostatni: tel, fax, mail -->
    <fo:block padding-left="0.5cm">
     <xsl:text> </xsl:text>
    </fo:block>
    <xsl:apply-templates />
   </fo:table-cell>
  </fo:table-body>
 </fo:table>
</xsl:template>


<!-- Samostatna sablona vybira tel. cislo a predvolbu -->
<xsl:template match="telefon | fax">
 <fo:block padding-left="0.5cm">
   <fo:inline color="navy">
    <xsl:value-of select="name()" />:
   </fo:inline>
     <xsl:text> </xsl:text>
     (<xsl:value-of select="@uto" />)
     <xsl:text> </xsl:text>
     <xsl:value-of select="." />
 </fo:block>
</xsl:template>


<!-- Samostatna sablona vybira e-amil -->
<xsl:template match="e-mail">
 <fo:block padding-left="0.5cm">
   <fo:inline color="navy">
    e-mail:
   </fo:inline>
    <fo:basic-link external-destination="url(mailto:{.})"
     color="#0000C0" text-decoration="underline"><xsl:value-of select="." /></fo:basic-link>
 </fo:block>
</xsl:template>


<xsl:template match="text()">
 <!-- Sablona pro vynechani std. textu -->
</xsl:template>

</xsl:stylesheet>

