<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
	<xsl:output method="text" encoding="ISO-8859-1"></xsl:output>
	<xsl:strip-space elements="*"></xsl:strip-space>
	
	<xsl:template match="menu">
		<xsl:for-each select="item">
			<xsl:text>$_menu = array(</xsl:text>
			<xsl:call-template name="menu">
				<xsl:with-param name="last" select="position() = last()"></xsl:with-param>
			</xsl:call-template>
			<xsl:text>);</xsl:text>
		</xsl:for-each>
	</xsl:template>
	
	<xsl:template name="menu">
		<xsl:param name="last" select="true()"></xsl:param>
		
		<!-- "id" =&gt; array( "url" =&gt; ... -->	
		<xsl:text>"</xsl:text>
		<xsl:value-of select="generate-id(.)"></xsl:value-of>
		<xsl:text>" =&gt; array( "url" =&gt; "</xsl:text>
		<xsl:value-of select="normalize-space(@url)"></xsl:value-of>
		<xsl:text>"</xsl:text>
		
		<!-- , "title" =&gt; "..." -->
		<xsl:text>, "title" =&gt; "</xsl:text>
		<xsl:choose>
			<xsl:when test="title">
				<xsl:value-of select="normalize-space(title)"></xsl:value-of>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="normalize-space(@url)"></xsl:value-of>
			</xsl:otherwise>
		</xsl:choose>
		<xsl:text>"</xsl:text>
		
		<!-- , "target" =&gt; "..." -->
		<xsl:if test="@target">
			<xsl:text>, "target" =&gt; "</xsl:text>
			<xsl:value-of select="normalize-space(@target)"></xsl:value-of>
			<xsl:text>"</xsl:text>
		</xsl:if>
		
		<!-- , "custom" =&gt; "..." -->
		<xsl:for-each select="*">
			<xsl:if test="name() != 'title' and name() != 'item'">
				<xsl:text>, "</xsl:text>
				<xsl:value-of select="name()"></xsl:value-of>
				<xsl:text>" =&gt; "</xsl:text>
				<xsl:value-of select="normalize-space(.)"></xsl:value-of>
				<xsl:text>"</xsl:text>
			</xsl:if>
		</xsl:for-each>
		
		<!-- , "sub" =&gt; ... - recursive template call -->
		<xsl:if test="item">
			<xsl:text>, "sub" =&gt; array( </xsl:text>
			<xsl:for-each select="item">
				<xsl:call-template name="menu">
					<xsl:with-param name="last" select="position() = last()"></xsl:with-param>
				</xsl:call-template>
			</xsl:for-each>
			<xsl:text>)</xsl:text>
		</xsl:if>

		<!-- )[,] -->
             <xsl:text>)</xsl:text>
		<xsl:if test="$last = false()">
			<xsl:text>, </xsl:text>
		</xsl:if>
	</xsl:template>
	
</xsl:stylesheet>
