<?xml version="1.0" encoding="utf-8"?>
<!-- pmap2fm.xslt version 1.1 Copyright 2005 JKRB Software -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" xmlns:it="urn:icontranslation" exclude-result-prefixes="user msxsl it">
  <xsl:output method="xml" indent="no" encoding="utf-8" omit-xml-declaration="yes" /> <!-- cdata-section-elements="text"/ -->
  <xsl:strip-space elements="XHTML html"/>

  <msxsl:script language="JScript" implements-prefix="user">
    function convdate(d)
    {
    var a = d.split(" ");
    var b = a[0];
    var s = b.replace(/^(\d+)-(\d+)-(\d+)/, "$2/$3/$1");
    b = a[1];
    var t = b.replace(/^(\d+):(\d+):(\d+)/, "$1:$2:$3");
    s += " " + t;
    var n = new Date(s);
    return n.valueOf();
    }
    function dateconv(n)
    {
    var a = new Date(n);
    var dd = a.getDate();
    var mm = a.getMonth();
    var yy = a.getFullYear();
    var hh = a.getHours();
    var nn = a.getMinutes();
    var t = yy + "-";
    if(mm &lt; 10) t += "0";
    t += mm;
    t += "-";
    if(dd &lt; 10) t += "0";
    t += dd;
    t += "T";
    if(hh &lt; 10) t += "0";
    t += hh;
    t += ":";
    if(nn &lt; 10) t += "0";
    t += nn;
    return t;
    }
  </msxsl:script>
  <it:icons>
    <it:icon NameFM="help" NamePMM="7"/>
    <it:icon NameFM="messagebox_warning" NamePMM="23"/>
    <it:icon NameFM="idea" NamePMM="68"/>
    <it:icon NameFM="button_ok" NamePMM="12"/>
    <it:icon NameFM="button_cancel" NamePMM="79"/>
    <it:icon NameFM="full-1" NamePMM=""/>
    <it:icon NameFM="full-2" NamePMM=""/>
    <it:icon NameFM="full-3" NamePMM=""/>
    <it:icon NameFM="full-4" NamePMM=""/>
    <it:icon NameFM="full-5" NamePMM=""/>
    <it:icon NameFM="full-6" NamePMM=""/>
    <it:icon NameFM="full-7" NamePMM=""/>
    <it:icon NameFM="back" NamePMM="3"/>
    <it:icon NameFM="forward" NamePMM="2"/>
    <it:icon NameFM="attach" NamePMM="74"/>
    <it:icon NameFM="ksmiletris" NamePMM="8"/>
    <it:icon NameFM="clanbomber" NamePMM=""/>
    <it:icon NameFM="desktop_new" NamePMM="82"/>
    <it:icon NameFM="flag" NamePMM="35"/>
    <it:icon NameFM="gohome" NamePMM="70"/>
    <it:icon NameFM="kaddressbook" NamePMM="72"/>
    <it:icon NameFM="knotify" NamePMM="46"/>
    <it:icon NameFM="korn" NamePMM="26"/>
    <it:icon NameFM="Mail" NamePMM="29"/>
    <it:icon NameFM="password" NamePMM="81"/>
    <it:icon NameFM="pencil" NamePMM="75"/>
    <it:icon NameFM="stop" NamePMM="22"/>
    <it:icon NameFM="wizard" NamePMM=""/>
    <it:icon NameFM="xmag" NamePMM="17"/>
    <it:icon NameFM="bell" NamePMM="80"/>
    <it:icon NameFM="bookmark" NamePMM=""/>
    <it:icon NameFM="penguin" NamePMM=""/>
    <it:icon NameFM="licq" NamePMM=""/>
  </it:icons>

  <xsl:key name="reftypes" match="arrowlink" use="@COLOR"/>
  <xsl:template match="map">
    <xsl:element name="PocketMindMap">
      <xsl:attribute name="Version">1.4</xsl:attribute>
      <xsl:attribute name="GUID"/>
      <xsl:attribute name="Author"/>
      <xsl:attribute name="Creation"/>
      <xsl:attribute name="Modified"/>
      <xsl:attribute name="LastModifiedBy"/>
      <xsl:if test="//node/arrowlink">
	<xsl:element name="ReferenceTypes">
	  <xsl:apply-templates select="//node/arrowlink[generate-id() = generate-id(key('reftypes',@COLOR))]" mode="reftype"/>
	</xsl:element>
      </xsl:if>
      <xsl:if test="//node/arrowlink">
	<xsl:element name="References">
	  <xsl:apply-templates select="//node/arrowlink" mode="ref"/>
	</xsl:element>
      </xsl:if>
      <xsl:element name="Maps">
	<xsl:element name="Map">
	  <xsl:attribute name="id">PM0</xsl:attribute>
	  <xsl:apply-templates/>
	</xsl:element>
      </xsl:element>
    </xsl:element>
  </xsl:template>

  <xsl:template match="node/arrowlink" mode="reftype">
    <xsl:element name="ReferenceType">
      <xsl:attribute name="Name">
	<xsl:value-of select="concat('_FreeMind', substring-after(@COLOR, '#'))"/>
      </xsl:attribute>
      <xsl:attribute name="Color">
	<xsl:value-of select="@COLOR"/>
      </xsl:attribute>
    </xsl:element>
  </xsl:template>

  <xsl:template match="node/arrowlink" mode="ref">
    <xsl:element name="Reference">
      <xsl:attribute name="id">
	<xsl:value-of select="@ID"/>
      </xsl:attribute>
      <xsl:attribute name="Type">
	<xsl:choose>
	  <xsl:when test="@COLOR">
	    <xsl:value-of select="concat('_FreeMind', substring-after(@COLOR, '#'))"/>
	  </xsl:when>
	  <xsl:otherwise>
	    <xsl:value-of select="_FreeMind_Default"/>
	  </xsl:otherwise>
	</xsl:choose>
      </xsl:attribute>
      <xsl:attribute name="Source">
	<xsl:value-of select="concat('#/', ../@ID)"/>
      </xsl:attribute>
      <xsl:attribute name="Target">
	<xsl:value-of select="concat('#/', @DESTINATION)"/>
      </xsl:attribute>
    </xsl:element>
  </xsl:template>

  <xsl:template match="node">
    <Nodes>
      <xsl:element name="Node">
	<xsl:if test="@ID">
	  <xsl:attribute name="id">
	    <xsl:value-of select="@ID"/>
	  </xsl:attribute>
	</xsl:if>
	<xsl:if test="@CREATED">
	  <xsl:attribute name="Created">
	    <xsl:value-of select="user:dateconv(number(@CREATED))"/>
	  </xsl:attribute>
	</xsl:if>
	<xsl:if test="@MODIFIED">
	  <xsl:attribute name="Modified">
	    <xsl:value-of select="user:dateconv(number(@MODIFIED))"/>
	  </xsl:attribute>
	</xsl:if>
	<xsl:attribute name="Display">
	  <xsl:value-of select="@TEXT"/>
	</xsl:attribute>
	<xsl:if test="@COLOR">
	  <xsl:element name="Font">
	    <xsl:attribute name="Color">
	      <xsl:value-of select="@COLOR"/>
	    </xsl:attribute>
	  </xsl:element>
	</xsl:if>
	<xsl:if test="icon">
	  <xsl:choose>
	    <xsl:when test="starts-with(icon/@BUILTIN, 'full-')">
	      <xsl:variable name="prio" select="substring-after(icon/@BUILTIN, 'full-')"/>
	      <xsl:element name="TaskInfo">
		<xsl:attribute name="Priority"><xsl:value-of select="$prio"/></xsl:attribute>
	      </xsl:element>
	    </xsl:when>
	    <xsl:otherwise>
	      <Symbols>
		<xsl:apply-templates select="icon"/>
	      </Symbols>
	    </xsl:otherwise>
	  </xsl:choose>
	</xsl:if>
	<xsl:apply-templates select="node|text"/>
      </xsl:element>
    </Nodes>
  </xsl:template>

  <xsl:template match="text">
    <Text>
      <xsl:value-of select="."/>
    </Text>
  </xsl:template>

  <xsl:template match="icon">
    <xsl:variable name="sym" select="document('')//it:icons/it:icon[@NameFM=current()/@BUILTIN]/@NamePMM"/>
    <xsl:if test="$sym">
      <xsl:element name="Symbol">
	<xsl:attribute name="Index">
	  <xsl:value-of select="$sym"/>
	</xsl:attribute>
      </xsl:element>
    </xsl:if>
  </xsl:template>

</xsl:stylesheet>
