<?xml version="1.0"?>
<!-- ============================================================ -->
<!--                                                              -->
<!-- 	This file makes a part of RenderX XSL Test Suite          -->
<!--                                                              -->
<!--    Author: Alexander Peshkov                                 -->
<!--                                                              -->
<!--    (c) RenderX, 2003                                         -->
<!--                                                              -->
<!-- ============================================================ -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                			  xmlns:fo="http://www.w3.org/1999/XSL/Format"
                			  xmlns:rx="http://www.renderx.com/XSL/Extensions">

	<xsl:import href="generic.xsl"/>
	
	<xsl:output indent="yes"/>

    <!-- We overwrite this template since we need to add special page master for duplex marginalia -->
	<xsl:template match="document">
	<fo:layout-master-set>
		<fo:simple-page-master master-name="document-master" margin="0.4in">
			<fo:region-body margin="20pt" padding="0pt"/>
		</fo:simple-page-master>
        <fo:simple-page-master master-name="page-odd" margin="0.2in">
            <fo:region-body margin="20pt 20pt 20pt -100pt"/>
        </fo:simple-page-master>
        <fo:simple-page-master master-name="page-even" margin="0.2in">
            <fo:region-body margin="20pt -100pt 20pt 20pt"/>
        </fo:simple-page-master>
        <fo:page-sequence-master master-name="marginalia-duplex">
            <fo:repeatable-page-master-alternatives>
              <fo:conditional-page-master-reference master-reference="page-odd" odd-or-even="odd"/>
              <fo:conditional-page-master-reference master-reference="page-even" odd-or-even="even"/>
            </fo:repeatable-page-master-alternatives>
        </fo:page-sequence-master>
	</fo:layout-master-set>
	  <xsl:apply-templates/>
	</xsl:template>

    <!-- Two templates for sections used to create simplex and duplex marginalia -->
	<xsl:template match="section[@type='marginalia-duplex']">
	  <fo:page-sequence master-reference="marginalia-duplex">
		<fo:flow flow-name="xsl-region-body" padding="6pt" start-indent="120pt" end-indent="120pt">
			<xsl:apply-templates/>
		</fo:flow>
	  </fo:page-sequence>
	</xsl:template>

	<xsl:template match="section[@type='marginalia-simplex']">
	  <fo:page-sequence master-reference="document-master">
		<fo:flow flow-name="xsl-region-body" padding="6pt" start-indent="120pt">
			<xsl:apply-templates/>
		</fo:flow>
	  </fo:page-sequence>
	</xsl:template>

    <!-- Templates below used to render figures as fo:floats of different type -->
    <!-- depending on the type of marginalia                                   -->
	<xsl:template match="figure[ancestor::section/@type='marginalia-simplex']">
      <fo:float float="start" start-indent="0pt" clear="both">
        <fo:block-container width="100pt" padding="6pt" margin="4pt">
          <xsl:apply-templates select="@*|node()"/>
        </fo:block-container>
      </fo:float>
	</xsl:template>

	<xsl:template match="figure[ancestor::section/@type='marginalia-duplex']">
      <fo:float float="outside" start-indent="0pt" end-indent="0pt" clear="both">
        <fo:block-container width="100pt" padding="6pt" margin="4pt">
          <xsl:apply-templates select="@*|node()"/>
        </fo:block-container>
      </fo:float>
	</xsl:template>

    <!-- Auxilary template that sets format of <simpara>s -->
	<xsl:template match="simpara">
	  <fo:block text-align="center" text-indent="0pt">
	    <xsl:apply-templates select="@*|node()"/>
	  </fo:block>
	</xsl:template>
</xsl:stylesheet>