Index: /main/trunk/greenstone3/web/interfaces/default/transform/classifier.xsl
===================================================================
--- /main/trunk/greenstone3/web/interfaces/default/transform/classifier.xsl	(revision 24114)
+++ /main/trunk/greenstone3/web/interfaces/default/transform/classifier.xsl	(revision 24115)
@@ -73,13 +73,13 @@
     <!-- <xsl:variable name="tok" select="fn:tokenize($fmt,'/s+')"/> -->
 
-      <div id="format">
+     <!--<div id="format">
         <p>
 	  <b>Format string here</b>
 	  <i>
-	      <xsl:value-of select="$fmt"/>
+	      <xsl:value-of select="$fmt"/>-->
 	      <!-- <xsl:value-of select="$tok"/> -->
-	  </i>
+	  <!--</i>
         </p>
-      </div>
+      </div>-->
     <!-- </xsl:if> -->
 
Index: /main/trunk/greenstone3/web/interfaces/oran/style/core.css
===================================================================
--- /main/trunk/greenstone3/web/interfaces/oran/style/core.css	(revision 24114)
+++ /main/trunk/greenstone3/web/interfaces/oran/style/core.css	(revision 24115)
@@ -422,5 +422,5 @@
 
 
-#results .document a { background-image: url('../images/book.png'); }
+/*#results .document a { background-image: url('../images/book.png'); }*/
 #results .document a:visited { background-image: url('../images/book-visited.png'); color: #999; }
 #results .shelf>a { background-image: url('../images/bookshelf.png'); }
Index: /main/trunk/greenstone3/web/interfaces/oran/transform/config_format.xsl
===================================================================
--- /main/trunk/greenstone3/web/interfaces/oran/transform/config_format.xsl	(revision 24114)
+++ /main/trunk/greenstone3/web/interfaces/oran/transform/config_format.xsl	(revision 24115)
@@ -1,123 +1,228 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <xsl:stylesheet version="1.0"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:xslt="output.xsl"
-  xmlns:java="http://xml.apache.org/xslt/java"
-  xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
-  xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
-  extension-element-prefixes="java">
-  
-  <xsl:output method="xml"/>
-  <xsl:namespace-alias
-    stylesheet-prefix="xslt" result-prefix="xsl"/>
-
-  <xsl:template match="format">
-    <format>
-      <xsl:apply-templates/>
-    </format>
-  </xsl:template>
-  
-  <xsl:template match="gsf:template">
-    <xslt:template>
-      <xsl:copy-of select="@*"/>
-      <xsl:attribute name="priority">2</xsl:attribute> 
-      <xsl:if test=".//gsf:link">
-	<xslt:param name="serviceName"/>
-	<xslt:param name="collName"/>
-      </xsl:if>
-      <xsl:apply-templates/>
-    </xslt:template>
-  </xsl:template>
-  
-  <xsl:template match="gsf:link">
-    <xsl:choose>
-      <xsl:when test="@type='classifier'">
-	<a><xslt:attribute name='href'><xslt:value-of select='$library_name'/>?a=b&amp;rt=r&amp;s=<xslt:value-of select='$serviceName'/>&amp;c=<xslt:value-of select='$collName'/>&amp;cl=<xslt:value-of select='@nodeID'/><xslt:if test="classifierNode|documentNode">.pr</xslt:if><xslt:if test="parent::node()[@orientation='horizontal']">&amp;sib=1</xslt:if></xslt:attribute>
-	  <xsl:apply-templates/>
-	</a>
-      </xsl:when>
-      <xsl:otherwise> <!-- a document link -->
-	<xslt:variable name="bookswitch"><xslt:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/></xslt:variable>
-	<xslt:choose>
-	  <xslt:when test="$bookswitch = 'on' or $bookswitch = 'flashxml'">
-	    <a><xslt:attribute name="href"><xslt:value-of select='$library_name'/>?a=d&amp;ed=1&amp;book=on&amp;c=<xslt:value-of select='$collName'/>&amp;d=<xslt:value-of select='@nodeID'/>&amp;dt=<xslt:value-of select='@docType'/><xslt:if test="@nodeType='leaf'">&amp;sib=1</xslt:if>&amp;p.a=<xslt:value-of select="/page/pageRequest/@action"/>&amp;p.sa=<xsl:value-of select="/page/pageRequest/@subaction"/>&amp;p.s=<xslt:value-of select="$serviceName"/></xslt:attribute><xsl:apply-templates/></a>
-	  </xslt:when>
-	  <xslt:otherwise>
-	    <a><xslt:attribute name="href"><xslt:value-of select='$library_name'/>?a=d&amp;book=off&amp;c=<xslt:value-of select='$collName'/>&amp;d=<xslt:value-of select='@nodeID'/>&amp;dt=<xslt:value-of select='@docType'/><xslt:if test="@nodeType='leaf'">&amp;sib=1</xslt:if>&amp;p.a=<xslt:value-of select="/page/pageRequest/@action"/>&amp;p.sa=<xsl:value-of select="/page/pageRequest/@subaction"/>&amp;p.s=<xslt:value-of select="$serviceName"/></xslt:attribute><xsl:apply-templates/></a>
-	  </xslt:otherwise>
-	</xslt:choose>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-
-  <xsl:template match="gsf:icon">
-    <xsl:choose>
-      <xsl:when test="@type='classifier'">
-	<img  border="0" width="20" height="16"
-	  src="interfaces/default/images/bshelf.gif" /> 
-	<!--xslt:call-template name="bookshelfimg"/>-->
-      </xsl:when>
-      <xsl:otherwise>
-	<xslt:apply-templates select="." mode="displayNodeIcon"/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-  
-  <xsl:template match="gsf:metadata[@format]">
-    <xslt:value-of disable-output-escaping="yes"><xsl:attribute name="select">java:org.greenstone.gsdl3.util.XSLTUtil.<xsl:value-of select="@format"/>(metadataList/metadata[@name='<xsl:apply-templates select="." mode="get-metadata-name"/>'], /page/@lang )</xsl:attribute></xslt:value-of>
-  </xsl:template>
-
-  <xsl:template match="gsf:metadata">
-    <xslt:value-of disable-output-escaping="yes"><xsl:attribute name="select">metadataList/metadata[@name='<xsl:apply-templates select="." mode="get-metadata-name"/>']</xsl:attribute></xslt:value-of>
-  </xsl:template>
-
-  <xsl:template match="gsf:metadata" mode="get-metadata-name">
-    <xsl:if test="@multiple='true'">all_</xsl:if><xsl:if test='@select'><xsl:value-of select='@select'/>_</xsl:if><xsl:if test="@separator">*<xsl:value-of select='@separator'/>*_</xsl:if><xsl:value-of select="@name"/>
-  </xsl:template>
-  
-  <xsl:template match="gsf:metadata-old">
-    <xslt:value-of disable-output-escaping="yes"><xsl:attribute name="select">metadataList/metadata[@name="<xsl:choose><xsl:when test="@select='parent'">parent_</xsl:when><xsl:when test="@select='root'">root_</xsl:when><xsl:when test="@select='ancestors'">ancestors'<xsl:value-of select='@separator'/>'_</xsl:when><xsl:when test="@select='siblings'">siblings_'<xsl:value-of select='@separator'/>'_</xsl:when></xsl:choose><xsl:value-of select="@name"/>"]</xsl:attribute></xslt:value-of>
-  </xsl:template>
-  
-  <xsl:template match="gsf:text">
-    <xslt:apply-templates select="nodeContent"/>
-  </xsl:template>
-  
-  <xsl:template match="gsf:choose-metadata">
-    <xslt:choose>
-      <xsl:for-each select="gsf:metadata">
-	<xslt:when><xsl:attribute name="test">metadataList/metadata[@name='<xsl:apply-templates select="." mode="get-metadata-name"/>']</xsl:attribute>
-	  <xsl:apply-templates select="."/>
-	</xslt:when>
-      </xsl:for-each>
-      <xsl:if test="gsf:default">
-	<xslt:otherwise><xsl:apply-templates select="gsf:default"/></xslt:otherwise>
-      </xsl:if>
-    </xslt:choose>
-  </xsl:template>
-  
-  <xsl:template match="gsf:switch">
-    <xsl:variable name="meta-name"><xsl:apply-templates select="gsf:metadata" mode="get-metadata-name"/></xsl:variable>
-    <xslt:variable name="meta"><xsl:choose><xsl:when test="@preprocess"><xslt:value-of select="util:{@preprocess}(metadataList/metadata[@name='{$meta-name}'])"/></xsl:when><xsl:otherwise><xslt:value-of select="metadataList/metadata[@name='{$meta-name}']"/></xsl:otherwise></xsl:choose></xslt:variable>
-    <xslt:choose>
-      <xsl:for-each select="gsf:when">
-	<xslt:when test="util:{@test}($meta, '{@test-value}')">
-	  <xsl:apply-templates/>
-	</xslt:when>
-      </xsl:for-each>
-      <xsl:if test="gsf:otherwise">
-	<xslt:otherwise>
-	  <xsl:apply-templates select="gsf:otherwise/node()"/>
-	</xslt:otherwise>
-      </xsl:if>
-    </xslt:choose>
-  </xsl:template>
-  
-  <xsl:template match="*">
-    <xsl:copy>
-      <xsl:copy-of select="@*"/>
-      <xsl:apply-templates/>
-    </xsl:copy>
-  </xsl:template>
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:xslt="output.xsl"
+	xmlns:java="http://xml.apache.org/xslt/java"
+	xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
+	xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
+	extension-element-prefixes="java">
+  
+	<xsl:output method="xml"/>
+	<xsl:namespace-alias stylesheet-prefix="xslt" result-prefix="xsl"/>
+
+	<xsl:template match="format">
+		<format>
+			<xsl:apply-templates/>
+		</format>
+	</xsl:template>
+  
+	<xsl:template match="gsf:template">
+		<xslt:template>
+			<xsl:copy-of select="@*"/>
+			<xsl:attribute name="priority">2</xsl:attribute> 
+			<xsl:if test=".//gsf:link">
+				<xslt:param name="serviceName"/>
+				<xslt:param name="collName"/>
+			</xsl:if>
+			<xsl:apply-templates/>
+		</xslt:template>
+	</xsl:template>
+  
+	<xsl:template match="gsf:link">
+		<xsl:choose>
+			<xsl:when test="@type='classifier'">
+				<a>
+					<xslt:attribute name='href'>
+						<xslt:value-of select='$library_name'/>
+						<xsl:text>?a=b&amp;rt=r&amp;s=</xsl:text>
+						<xslt:value-of select='/page/pageResponse/service/@name'/>
+						<xsl:text>&amp;c=</xsl:text>
+						<xslt:value-of select='/page/pageResponse/collection/@name'/>
+						<xsl:text>&amp;cl=</xsl:text>
+						<xslt:value-of select='@nodeID'/>
+						<xslt:if test="classifierNode|documentNode">
+							<xsl:text>.pr</xsl:text>
+						</xslt:if>
+						<xslt:if test="parent::node()[@orientation='horizontal']">
+							<xsl:text>&amp;sib=1</xsl:text>
+						</xslt:if>
+					</xslt:attribute>
+					<xsl:apply-templates/>
+				</a>
+			</xsl:when>
+			<xsl:otherwise> <!-- a document link -->
+				<xslt:variable name="bookswitch">
+					<xslt:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/>
+				</xslt:variable>
+				<xslt:choose>
+					<xslt:when test="$bookswitch = 'on' or $bookswitch = 'flashxml'">
+						<a>
+							<xslt:attribute name="href">
+								<xslt:value-of select='$library_name'/>
+								<xsl:text>?a=d&amp;ed=1&amp;book=on&amp;c=</xsl:text>
+								<xslt:value-of select='/page/pageResponse/collection/@name'/>
+								<xsl:text>&amp;d=</xsl:text>
+								<xslt:value-of select='@nodeID'/>
+								<xsl:text>&amp;dt=</xsl:text>
+								<xslt:value-of select='@docType'/>
+								<xslt:if test="@nodeType='leaf'">
+									<xsl:text>&amp;sib=1</xsl:text>
+								</xslt:if>
+								<xsl:text>&amp;p.a=</xsl:text>
+								<xslt:value-of select="/page/pageRequest/@action"/>
+								<xsl:text>&amp;p.sa=</xsl:text>
+								<xsl:value-of select="/page/pageRequest/@subaction"/>
+								<xsl:text>&amp;p.s=</xsl:text>
+								<xslt:value-of select="/page/pageResponse/service/@name"/>
+							</xslt:attribute>
+							<xsl:apply-templates/>
+						</a>
+					</xslt:when>
+					<xslt:otherwise>
+						<a>
+							<xslt:attribute name="href">
+								<xslt:value-of select='$library_name'/>
+								<xsl:text>?a=d&amp;ed=1&amp;book=off&amp;c=</xsl:text>
+								<xslt:value-of select='/page/pageResponse/collection/@name'/>
+								<xsl:text>&amp;d=</xsl:text>
+								<xslt:value-of select='@nodeID'/>
+								<xsl:text>&amp;dt=</xsl:text>
+								<xslt:value-of select='@docType'/>
+								<xslt:if test="@nodeType='leaf'">
+									<xsl:text>&amp;sib=1</xsl:text>
+								</xslt:if>
+								<xsl:text>&amp;p.a=</xsl:text>
+								<xslt:value-of select="/page/pageRequest/@action"/>
+								<xsl:text>&amp;p.sa=</xsl:text>
+								<xsl:value-of select="/page/pageRequest/@subaction"/>
+								<xsl:text>&amp;p.s=</xsl:text>
+								<xslt:value-of select="/page/pageResponse/service/@name"/>
+							</xslt:attribute>
+							<xsl:apply-templates/>
+						</a>
+					</xslt:otherwise>
+				</xslt:choose>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<xsl:template match="gsf:icon">
+		<xsl:choose>
+			<xsl:when test="@type='classifier'">
+				<img style="width:20px; height:16px; border:0px" src="util:getInterfaceText($interface_name, /page/@lang, 'bookshelf_image')" /> 
+			</xsl:when>
+			<xsl:when test="@type='document'">
+				<img style="width:20px; height:16px; border:0px" src="util:getInterfaceText($interface_name, /page/@lang, 'book_image')" /> 
+			</xsl:when>
+		</xsl:choose>
+	</xsl:template>
+  
+	<xsl:template match="gsf:metadata[@format]">
+		<xslt:value-of disable-output-escaping="yes">
+			<xsl:attribute name="select">
+				<xsl:text>java:org.greenstone.gsdl3.util.XSLTUtil.</xsl:text>
+				<xsl:value-of select="@format"/>
+				<xsl:text>(metadataList/metadata[@name='</xsl:text>
+				<xsl:apply-templates select="." mode="get-metadata-name"/>
+				<xsl:text>'], /page/@lang )</xsl:text>
+			</xsl:attribute>
+		</xslt:value-of>
+	</xsl:template>
+
+	<xsl:template match="gsf:metadata">
+		<xslt:value-of disable-output-escaping="yes">
+			<xsl:attribute name="select">
+			<xsl:text>metadataList/metadata[@name='</xsl:text>
+			<xsl:apply-templates select="." mode="get-metadata-name"/>
+			<xsl:text>']</xsl:text>
+			</xsl:attribute>
+		</xslt:value-of>
+	</xsl:template>
+
+	<xsl:template match="gsf:metadata" mode="get-metadata-name">
+		<xsl:if test="@multiple='true'">
+			<xsl:text>all_</xsl:text>
+		</xsl:if>
+		<xsl:if test='@select'>
+			<xsl:value-of select='@select'/>
+			<xsl:text>_</xsl:text>
+		</xsl:if>
+		<xsl:if test="@separator">
+			<xsl:text>*</xsl:text>
+			<xsl:value-of select='@separator'/>
+			<xsl:text>*_</xsl:text>
+		</xsl:if>
+		<xsl:value-of select="@name"/>
+	</xsl:template>
+  
+	<xsl:template match="gsf:metadata-old">
+		<xslt:value-of disable-output-escaping="yes">
+			<xsl:attribute name="select">
+				<xsl:text>metadataList/metadata[@name="</xsl:text>
+				<xsl:choose>
+					<xsl:when test="@select='parent'">
+						<xsl:text>parent_</xsl:text>
+					</xsl:when>
+					<xsl:when test="@select='root'">
+						<xsl:text>root_</xsl:text>
+					</xsl:when>
+					<xsl:when test="@select='ancestors'">
+						<xsl:text>ancestors'</xsl:text>
+						<xsl:value-of select='@separator'/>
+						<xsl:text>'_</xsl:text>
+					</xsl:when>
+					<xsl:when test="@select='siblings'">
+						<xsl:text>siblings_'</xsl:text>
+						<xsl:value-of select='@separator'/>
+						<xsl:text>'_</xsl:text>
+					</xsl:when>
+				</xsl:choose>
+				<xsl:value-of select="@name"/>
+				<xsl:text>"]</xsl:text>
+			</xsl:attribute>
+		</xslt:value-of>
+	</xsl:template>
+  
+	<xsl:template match="gsf:text">
+		<xslt:apply-templates select="nodeContent"/>
+	</xsl:template>
+  
+	<xsl:template match="gsf:choose-metadata">
+		<xslt:choose>
+			<xsl:for-each select="gsf:metadata">
+				<xslt:when>
+					<xsl:attribute name="test">metadataList/metadata[@name='<xsl:apply-templates select="." mode="get-metadata-name"/>']</xsl:attribute>
+					<xsl:apply-templates select="."/>
+				</xslt:when>
+			</xsl:for-each>
+			<xsl:if test="gsf:default">
+				<xslt:otherwise><xsl:apply-templates select="gsf:default"/></xslt:otherwise>
+			</xsl:if>
+		</xslt:choose>
+	</xsl:template>
+  
+	<xsl:template match="gsf:switch">
+		<xsl:variable name="meta-name"><xsl:apply-templates select="gsf:metadata" mode="get-metadata-name"/></xsl:variable>
+		<xslt:variable name="meta"><xsl:choose><xsl:when test="@preprocess"><xslt:value-of select="util:{@preprocess}(metadataList/metadata[@name='{$meta-name}'])"/></xsl:when><xsl:otherwise><xslt:value-of select="metadataList/metadata[@name='{$meta-name}']"/></xsl:otherwise></xsl:choose></xslt:variable>
+		<xslt:choose>
+			<xsl:for-each select="gsf:when">
+				<xslt:when test="util:{@test}($meta, '{@test-value}')">
+					<xsl:apply-templates/>
+				</xslt:when>
+			</xsl:for-each>
+			<xsl:if test="gsf:otherwise">
+				<xslt:otherwise>
+					<xsl:apply-templates select="gsf:otherwise/node()"/>
+				</xslt:otherwise>
+			</xsl:if>
+		</xslt:choose>
+	</xsl:template>
+  
+	<xsl:template match="*">
+		<xsl:copy>
+		<xsl:copy-of select="@*"/>
+			<xsl:apply-templates/>
+		</xsl:copy>
+	</xsl:template>
 
 </xsl:stylesheet>
Index: /main/trunk/greenstone3/web/interfaces/oran/transform/pages/classifier.xsl
===================================================================
--- /main/trunk/greenstone3/web/interfaces/oran/transform/pages/classifier.xsl	(revision 24114)
+++ /main/trunk/greenstone3/web/interfaces/oran/transform/pages/classifier.xsl	(revision 24115)
@@ -34,9 +34,12 @@
 			the two templates at the bottom of this file
 		-->
-		<ul id="results">
-			<xsl:apply-templates select="classifier/*"/>
-		</ul>
+		<table id="results">
+			<xsl:for-each select="classifier/*">
+				<tr>
+					<xsl:apply-templates select="."/>
+				</tr>
+			</xsl:for-each>
+		</table>
 		<div class="clear"><xsl:text> </xsl:text></div>
-
 	</xsl:template>
 
@@ -45,17 +48,24 @@
 	TEMPLATE FOR DOCUMENTS
 	-->
-	<xsl:template match="documentNode" priority="3">
-
-		<!-- show the document details -->
-		<li class="document">
-
+	<xsl:template match="documentNode">
+		<!-- The book icon -->
+		<td>
+			<img>			
+				<xsl:attribute name="src">
+					<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'book_image')"/>
+				</xsl:attribute>
+			</img>
+		</td>
+		<!-- The document link -->
+		<td>
 			<a>
 				<xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>&amp;p.a=b&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;ed=1</xsl:attribute>
 				<xsl:value-of disable-output-escaping="yes"  select="metadataList/metadata[@name='Title']"/>
 			</a>
+		</td>
+		<!-- The berry (optional) -->
+		<td>
 			<xsl:call-template name="documentBerryForClassifierOrSearchPage"/>
-
-		</li>
-
+		</td>
 	</xsl:template>
 
@@ -64,5 +74,5 @@
 	TEMPLATE FOR GROUPS OF DOCUMENTS
 	-->
-	<xsl:template match="classifierNode" priority="3">
+	<xsl:template match="classifierNode">
 
 		<table id="title{@nodeID}"><tr>
@@ -91,6 +101,12 @@
 		<!-- Show any documents or sub-groups in this group -->
 		<xsl:if test="documentNode|classifierNode">
-			<div id="div{@nodeID}" class="classifierContainer" style="display:block;">
-				<xsl:apply-templates select="documentNode|classifierNode"/>
+			<div id="div{@nodeID}" class="classifierContainer">
+				<table>
+					<xsl:for-each select="documentNode|classifierNode">
+						<tr>
+							<xsl:apply-templates select="."/>
+						</tr>
+					</xsl:for-each>
+				</table>
 			</div>
 		</xsl:if>
@@ -109,5 +125,5 @@
 				{
 					var divElem = document.getElementById("div" + sectionID);
-					if(divElem.style.display == "block")
+					if(!divElem.style.display || divElem.style.display == "block")
 					{
 						return true;
Index: /main/trunk/greenstone3/web/interfaces/oran/transform/pages/document.xsl
===================================================================
--- /main/trunk/greenstone3/web/interfaces/oran/transform/pages/document.xsl	(revision 24114)
+++ /main/trunk/greenstone3/web/interfaces/oran/transform/pages/document.xsl	(revision 24115)
@@ -317,5 +317,4 @@
 			<xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'">
 				<td>
-					<!-- old url = {$library_name}?a=d&amp;c={$collName}&amp;d={/page/pageResponse/document/documentNode[1]/@nodeID}&amp;dt={/page/pageResponse/document/documentNode/@docType}&amp;p.a=b&amp;p.s={/page/pageResponse/service/@name}&amp;book=on&amp;ed=1 -->
 					<img>
 						<xsl:attribute name="src"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'realistic_books_image')"/></xsl:attribute>
@@ -326,5 +325,5 @@
 			
 			<!-- Highlight on/off button -->
-			<xsl:if test="/page/pageRequest/paramList/param[@name = 'p.a']/@value = 'q'">
+			<xsl:if test="/page/pageRequest/paramList/param[@name = 'p.a']/@value = 'q' and count(//annotation) > 0">
 				<td>
 					<img>
