<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:output method="xml" indent="no" omit-xml-declaration="yes" />
	<!-- constants -->
	<xsl:variable name="Xglobalid" select="@id" />
	<!-- variables -->
	<xsl:variable name="globalid" select="@id" />
	<xsl:variable name="color" select="//@color" />
	<xsl:variable name="imagesfolder" select="//@imagesfolder" />
	<xsl:variable name="deftarget" select="//@defaulttarget" />
	<xsl:template match="/">
		<div>
			<xsl:call-template name="script" />
			<xsl:call-template name="style" />
			<xsl:call-template name="items">
				<xsl:with-param name="items" select="descendant::item[number(parentid) = 0]" />
			</xsl:call-template>
		</div>
	</xsl:template>
	<xsl:template match="item">
		<xsl:param name="menuid" select="menuid" />
		<xsl:variable name="children" select="count(parent::items/item[number(parentid) = number($menuid)])" />
		<xsl:variable name="imageurl" select="imageurl" />
		<xsl:variable name="target">
			<xsl:choose>
				<xsl:when test="string-length(target) &gt; 0 ">
					<xsl:value-of select="target" />
				</xsl:when>
				<xsl:otherwise>
					<xsl:value-of select="$deftarget" />
				</xsl:otherwise>
			</xsl:choose>
		</xsl:variable>
		<li>
			<xsl:attribute name="class">
				<xsl:choose>
					<xsl:when test="number($children) &gt; 0 ">folder</xsl:when>
					<xsl:otherwise>file</xsl:otherwise>
				</xsl:choose>
			</xsl:attribute>
			<xsl:if test="number($children) &gt; 0 ">
				<xsl:attribute name="id">
					<xsl:value-of select="concat('P',menuid)" />
				</xsl:attribute>
			</xsl:if>
			<xsl:if test="string-length($imageurl) &gt; 0 ">
				<xsl:attribute name="style">
					<xsl:value-of select="concat('list-style-image: url(',$imageurl,')')" />
				</xsl:attribute>
			</xsl:if>
			<a class="treeview">
				<xsl:attribute name="href">
					<xsl:choose>
						<xsl:when test="number($children) &gt; 0 ">
							<xsl:text>javascript:void(0);</xsl:text>							
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="url" />
						</xsl:otherwise>
					</xsl:choose>
				</xsl:attribute>
				<xsl:if test="number($children) &gt; 0 ">
					<xsl:attribute name="onclick">
						<xsl:text>toggle</xsl:text>
						<xsl:value-of select="$globalid" />
						<xsl:text>('</xsl:text>
						<xsl:value-of select="concat('N',menuid)" />
						<xsl:text>','</xsl:text>
						<xsl:value-of select="concat('P',menuid)" />
						<xsl:text>');</xsl:text>
					</xsl:attribute>
				</xsl:if>
				<xsl:if test="string-length($target) &gt; 0 ">
					<xsl:attribute name="target">
						<xsl:value-of select="$target" />
					</xsl:attribute>
				</xsl:if>
				<xsl:if test="string-length(translate(tooltip,' ','')) &gt; 0 ">
					<xsl:attribute name="title">
						<xsl:value-of select="tooltip" />
					</xsl:attribute>
				</xsl:if>
				<xsl:value-of select="text" disable-output-escaping="yes" />
			</a>
			<xsl:call-template name="items" />
		</li>
	</xsl:template>
	<xsl:template name="items">
		<xsl:param name="parentid" select="menuid" />
		<xsl:param name="items" select="parent::items/item[number(parentid) = number($parentid)]" />
		<xsl:if test="count($items) &gt; 0">
			<ul id="{concat('N',$parentid)}">
				<xsl:if test="number($parentid) &gt; 0">
					<xsl:attribute name="class">tree</xsl:attribute>
				</xsl:if>
				<xsl:apply-templates select="$items" />
			</ul>
		</xsl:if>
	</xsl:template>
	<!-- add the javascript to toggle -->
	<xsl:template name="script">
		<xsl:element name="script">
			<xsl:value-of select="concat('function toggle',$globalid)" />
			<xsl:text>(id,p){var myChild = document.getElementById(id);if(myChild.style.display!='block'){myChild.style.display='block';document.getElementById(p).className='folderOpen';}else{myChild.style.display='none';document.getElementById(p).className='folder';}}</xsl:text>
		</xsl:element>
	</xsl:template>
	<!-- add the javascript to toggle -->
	<xsl:template name="style">
		<xsl:element name="style">
			<xsl:text>ul.tree{display:none;margin-left:17px;}li.folder{list-style-image: url("</xsl:text>
			<xsl:value-of select="$imagesfolder" />
			<xsl:text>/plus.gif");}li.folderOpen{list-style-image: url("</xsl:text>
			<xsl:value-of select="$imagesfolder" />
			<xsl:text>/minus.gif");}li.file{list-style-image: url("</xsl:text>
			<xsl:value-of select="$imagesfolder" />
			<xsl:text>/dot.gif");}a.treeview{color:</xsl:text>
			<xsl:value-of select="$color" />
			<xsl:text>;font-family:verdana;font-size:8pt;}a.treeview:link {text-decoration:none;}a.treeview:visited{text-decoration:none;}a.treeview:hover {text-decoration:underline;}</xsl:text>
		</xsl:element>
	</xsl:template>
</xsl:stylesheet>
