--- /dev/null
+<?xml version="1.0"?>
+
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="html" encoding="iso-8859-1"/>
+
+<!-- uri must end with '/' -->
+<xsl:param name="uri" select="''"/>
+<xsl:param name="keys" select="''"/>
+<xsl:param name="getterURL" select="''"/>
+<xsl:param name="interfaceURL" select="''"/>
+<xsl:param name="target" select="''"/>
+
+<xsl:template name="chop">
+ <xsl:param name="uri" select="''"/>
+ <xsl:param name="prefix" select="''"/>
+ <xsl:variable name="newprefix" select="substring-before($uri,'/')"/>
+ <xsl:choose>
+ <xsl:when test="$newprefix = ''"><xsl:value-of select="$prefix"/></xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="chop">
+ <xsl:with-param name="uri" select="substring-after($uri,'/')"/>
+ <xsl:with-param name="prefix" select="concat($prefix,$newprefix,'/')"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:variable name="uridotdot">
+ <xsl:call-template name="chop">
+ <xsl:with-param name="uri" select="substring($uri,1,string-length($uri)-1)"/>
+ </xsl:call-template>
+</xsl:variable>
+
+<xsl:template name="makeDir">
+ <xsl:param name="uri" select="''"/>
+ <xsl:param name="basename" select="''"/>
+ <xsl:param name="icon" select="''"/>
+ <xsl:param name="alt" select="''"/>
+ <tr>
+ <td>
+ <img border="0" src="{concat($interfaceURL,'/icons/',$icon)}" alt="[{$alt}]"/>
+ </td>
+ <td>
+ <a
+ onClick=
+ "top.{$target}uri='{$uri}';
+ refresh{$target}Header('{$interfaceURL}/html/library/header.html');
+ this.search='?keys={$keys}' +
+ '&xmluri=' + escape('{$getterURL}ls?format=xml'+'&baseuri={$uri}')+
+ '&param.uri={$uri}' +
+ '&param.keys={$keys}' +
+ '&param.getterURL={$getterURL}' +
+ '&param.target={$target}' +
+ '&param.interfaceURL={$interfaceURL}';"
+ onMouseOver="window.status='{$uri}'; return true"
+ href="apply"
+ ><xsl:value-of select="$basename"/></a>
+ </td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="/">
+ <html>
+ <head>
+ <title>Index of <xsl:value-of select="$uri"/></title>
+ <xsl:copy-of select="document(concat($interfaceURL,'/javascript/control.js_xml'))" />
+ </head>
+ <body bgcolor="#ffffff" text="#000000">
+ <table>
+ <xsl:if test="$uridotdot != ''">
+ <xsl:call-template name="makeDir">
+ <xsl:with-param name="uri" select="$uridotdot"/>
+ <xsl:with-param name="basename" select="'Parent Directory'"/>
+ <xsl:with-param name="icon" select="'back.gif'"/>
+ <xsl:with-param name="alt" select="'Parent Directory'"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:apply-templates select="*"/>
+ </table>
+ <hr noshade="yes" align="left" width="80%"/>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="section">
+ <xsl:variable name="diruri">
+ <xsl:value-of select="."/>
+ </xsl:variable>
+ <xsl:call-template name="makeDir">
+ <xsl:with-param name="uri" select="concat($uri,$diruri,'/')"/>
+ <xsl:with-param name="basename" select="$diruri"/>
+ <xsl:with-param name="icon" select="'folder.gif'"/>
+ <xsl:with-param name="alt" select="$uri"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="object">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="ann" select="ann/@value"/>
+ <xsl:variable name="types" select="types/@value"/>
+ <tr>
+ <td>
+ <img border="0" src="{concat($interfaceURL,'/icons/generic.red.gif')}" alt="[{@name}]"/>
+ </td>
+ <td>
+ <a href="" target="{$target}"
+ onClick="this.href=makeURL('{$target}','{concat($uri,$name)}','{$ann}','{$types}')"
+ onMouseOver="window.status='{concat($uri,$name)}'; return true"
+ ><xsl:value-of select="$name"/></a>
+ </td>
+ </tr>
+</xsl:template>
+
+</xsl:stylesheet>