Index: /greenstone3/trunk/web/interfaces/default/transform/about.xsl
===================================================================
--- /greenstone3/trunk/web/interfaces/default/transform/about.xsl	(revision 18594)
+++ /greenstone3/trunk/web/interfaces/default/transform/about.xsl	(revision 18595)
@@ -1,94 +1,69 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <xsl:stylesheet version="1.0"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:java="http://xml.apache.org/xslt/java"
-  xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
-  extension-element-prefixes="java util"
-  exclude-result-prefixes="java util">
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:java="http://xml.apache.org/xslt/java"
+	xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
+	xmlns:gslib="http://www.greenstone.org/skinning"
+	extension-element-prefixes="java util"
+	exclude-result-prefixes="java util">
+
+	
+  <xsl:template match="page">
   
-  <!-- style includes global params interface_name, library_name -->
-  <xsl:include href="style.xsl"/>
-  
-  <xsl:output method="html"/>  
-  
-  <!-- the main page layout template is here -->
-  <xsl:template match="page">
-    <html>
-      <head>
-	<title>
-	  <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
-	  <xsl:call-template name="pageTitle"/><xsl:text> </xsl:text>
-	</title>
-	<xsl:call-template name="globalStyle"/>
-	<xsl:call-template name="pageStyle"/>
-      </head>
-      <body>
-	<xsl:attribute name="dir"><xsl:call-template name="direction"/></xsl:attribute>
+  <!-- the page layout template is here -->
+  <html>
+    <head>
+		<title>
+			<gslib:aboutCollectionPageTitle/>
+		</title>
+		<link rel="stylesheet" href="interfaces/default/style/core.css" type="text/css"/>
+    </head>
+	  
+    <body><gslib:textDirectionAttribute/>
+
 	<div id="page-wrapper">
-	  <xsl:call-template name="response" />
-	  <xsl:call-template name="greenstoneFooter"/>
+		<gslib:displayErrorsIfAny/>
+
+	    <div id="banner">    
+	      <p>
+		<gslib:collectionHomeLinkWithLogoIfAvailable/>
+	      </p>
+	      <ul id="bannerlist"> 
+			<li><gslib:homeButtonTop/></li>
+			<li><gslib:helpButtonTop/></li>
+			<li><gslib:preferencesButtonTop/></li>
+	      </ul>
+	    </div>
+		
+		<!--If some services are available for the current collection display the navigation bar-->
+		<xsl:choose>
+		<xsl:when test="$this-element/serviceList/service">
+		<div id="navbar">
+		<ul id="navbarlist">
+			<gslib:servicesNavigationBar/>
+		</ul>
+		</div> 
+		</xsl:when>
+		<!--Otherwise simply display a blank divider bar-->
+		<xsl:otherwise>
+			<div class="divbar"><gslib:noTextBar/></div>          
+		</xsl:otherwise>
+		</xsl:choose>
+	
+		<div id="content"> 
+			<!--Display the description text of the current collection,
+			and if some services are available then create a list
+			of links for each service within a <ul id="servicelist"> element.-->
+			<gslib:collectionDescriptionTextAndServicesLinks/>
+		</div>
+
+		<div id="footer">
+			<div class="divbar"><gslib:poweredByGS3TextBar/></div>
+		</div>
 	</div>
-      </body>
-    </html>
-  </xsl:template>
+    </body>
+  </html>
+</xsl:template>
 
-  <xsl:template name="pageTitle">
-    <xsl:value-of select="/page/pageResponse/*/displayItem[@name='name']"/>
-  </xsl:template>
-
-  <!-- page specific style goes here -->
-  <xsl:template name="pageStyle"/>
-
-  <xsl:template match="pageResponse">
-    <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
-    <xsl:apply-templates select="collection|serviceCluster"><xsl:with-param name="collName" select="$collName"/></xsl:apply-templates>
-  </xsl:template>
-  
-  <xsl:template match="collection|serviceCluster">
-    <xsl:param name="collName"/>
-    <xsl:call-template name="standardPageBanner">
-      <xsl:with-param name="collName" select="$collName"/>
-    </xsl:call-template>
-    <xsl:call-template name="navigationBar">
-      <xsl:with-param name="collName" select="$collName"/>
-    </xsl:call-template>     
-    <div id="content"> 
-      <xsl:value-of select="displayItem[@name='description']" disable-output-escaping="yes"/>
-      <xsl:apply-templates select="serviceList">
-	<xsl:with-param name="collName" select="$collName"/>
-      </xsl:apply-templates>
-    </div>
-  </xsl:template>
-  
-  
-  <xsl:template match="serviceList">
-    <xsl:param name="collName"/>
-    <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about.services')"/></h3>
-    <xsl:choose>
-      <xsl:when test="service">
-	<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about.servicehelp')"/>
-      </xsl:when>
-      <xsl:otherwise>
-	<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about.noservices')"/>
-      </xsl:otherwise>
-    </xsl:choose>
-    
-    <xsl:if test="service">
-      <ul id="servicelist">  	
-	<xsl:for-each select="service">
-	  <xsl:variable name="action"><xsl:choose>
-	      <xsl:when test="@type='query'">q</xsl:when>
-	      <xsl:when test="@type='browse'">b</xsl:when>
-	      <xsl:when test="@type='process'">pr</xsl:when>
-	      <xsl:when test="@type='applet'">a</xsl:when>
-	      <xsl:otherwise>DO_NOT_DISPLAY</xsl:otherwise>
-	    </xsl:choose></xsl:variable>
-	  <xsl:if test="$action !='DO_NOT_DISPLAY'">
-	    <li><a href="{$library_name}?a={$action}&amp;rt=d&amp;s={@name}&amp;c={$collName}"><xsl:value-of select="displayItem[@name='name']"/></a><xsl:value-of select="displayItem[@name='description']"/></li>
-	  </xsl:if>
-  	</xsl:for-each>
-      </ul> 
-    </xsl:if> 
-  </xsl:template>
 
 </xsl:stylesheet>  
Index: /greenstone3/trunk/web/interfaces/default/transform/util.xsl
===================================================================
--- /greenstone3/trunk/web/interfaces/default/transform/util.xsl	(revision 18594)
+++ /greenstone3/trunk/web/interfaces/default/transform/util.xsl	(revision 18595)
@@ -16,10 +16,15 @@
 	
 	
-	<xsl:template name="textDirectionAttribute">
-	<xsl:attribute name="dir"><xsl:if test="/page/@lang='ar' or /page/@lang='fa' or /page/@lang='he' or /page/@lang='ur' or /page/@lang='ps' or /page/@lang='prs'">rtl</xsl:if></xsl:attribute>
-	</xsl:template>
-  
-  
-    <xsl:template name="defaultDividerBar">
+<xsl:template name="textDirectionAttribute">
+	<xsl:attribute name="dir">
+		<xsl:choose>
+			<xsl:when test="/page/@lang='ar' or /page/@lang='fa' or /page/@lang='he' or /page/@lang='ur' or /page/@lang='ps' or /page/@lang='prs'">rtl</xsl:when>
+			<xsl:otherwise>ltr</xsl:otherwise>
+		</xsl:choose> 
+	</xsl:attribute>
+</xsl:template>
+  
+  
+<xsl:template name="defaultDividerBar">
    <xsl:param name='text'/>
       <xsl:choose>
@@ -31,10 +36,10 @@
       </xsl:otherwise>
     </xsl:choose> 
-  </xsl:template>
-  
-  
-    <xsl:template match="error">
+</xsl:template>
+  
+  
+<xsl:template match="error">
     Error: <xsl:value-of select="."/>
-  </xsl:template>
+</xsl:template>
   
   
@@ -84,5 +89,5 @@
 	<!-- site home ....................................................................... -->
 
-<xsl:template name="homePageTitle">
+<xsl:template name="siteHomePageTitle">
  <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'gsdl')"/><xsl:text> </xsl:text>
@@ -166,5 +171,139 @@
 
 <!-- about page - collection home ....................................................................... -->
-
+<xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
+<xsl:param name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
+<xsl:param name="pageType"/>
+<xsl:variable name="this-element" select="/page/pageResponse/collection|/page/pageResponse/serviceCluster"/>
+<xsl:variable name="this-service" select="/page/pageResponse/service/@name"/>
+
+
+<xsl:template name="aboutCollectionPageTitle">
+ <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
+<xsl:value-of select="/page/pageResponse/*/displayItem[@name='name']"/><xsl:text> </xsl:text>
+</xsl:template>
+
+	
+<xsl:template name="collectionHomeLinkWithLogoIfAvailable">
+<a href="{$library_name}?a=p&amp;sa=about&amp;c={$collName}">
+	  <xsl:choose>
+	    <xsl:when test="$this-element/displayItem[@name='icon']">
+	      <img border="0">
+		<xsl:attribute name="src">
+		  <xsl:value-of select="$this-element/metadataList/metadata[@name='httpPath']"/>/images/<xsl:value-of select="$this-element/displayItem[@name='icon']"/>
+		</xsl:attribute>	
+		<xsl:attribute name="alt">
+		  <xsl:value-of select="$this-element/displayItem[@name='name']"/>
+		</xsl:attribute>
+		<xsl:attribute name="title">
+		  <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'aboutpage')"/>
+		</xsl:attribute>
+	      </img>
+	    </xsl:when>
+	    <xsl:otherwise>
+	      <xsl:value-of select="$this-element/displayItem[@name='name']"/>
+	    </xsl:otherwise>
+	  </xsl:choose>
+	</a>
+</xsl:template>
+
+
+<xsl:template name="homeButtonTop">
+<a href="{$library_name}?a=p&amp;sa=home"><xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_tip')"/></xsl:attribute>
+<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_b')"/></a>
+</xsl:template>
+
+
+<xsl:template name="helpButtonTop">
+    <xsl:choose>
+      <xsl:when test="$pageType='help'">
+	<li><a><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'help_b')"/></a></li>
+      </xsl:when>
+      <xsl:otherwise>
+	<li><a href="{$library_name}?a=p&amp;sa=help&amp;c={$collName}"><xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'help_tip')"/></xsl:attribute>
+	    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'help_b')"/>
+	  </a></li>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+
+<xsl:template name="preferencesButtonTop">
+    <xsl:choose>
+      <xsl:when test="$pageType='pref'">
+	<li><a><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_b')"/></a></li>
+      </xsl:when>
+      <xsl:otherwise>
+	<li><a href="{$library_name}?a=p&amp;sa=pref&amp;c={$collName}"><xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_tip')"/></xsl:attribute>
+	    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_b')"/>
+	  </a></li>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template name="servicesNavigationBar">
+	    <xsl:for-each select="$this-element/serviceList/service">
+	      <xsl:variable name="action"><xsl:choose>
+		  <xsl:when test="@name=$this-service">CURRENT</xsl:when>
+		  <xsl:when test="@type='query'">q</xsl:when>
+		  <xsl:when test="@type='browse'">b</xsl:when>
+		  <xsl:when test="@type='process'">pr</xsl:when>
+		  <xsl:when test="@type='applet'">a</xsl:when>
+		  <xsl:otherwise>DO_NOT_DISPLAY</xsl:otherwise>
+		</xsl:choose></xsl:variable>
+	      <xsl:choose>
+		<xsl:when test="$action='CURRENT'">
+		  <li><a><xsl:value-of select="displayItem[@name='name']"/></a></li>
+		</xsl:when>
+		<xsl:when test="$action !='DO_NOT_DISPLAY'">
+		  <li><a href="{$library_name}?a={$action}&amp;rt=d&amp;s={@name}&amp;c={$collName}"><xsl:if test="displayItem[@name='description']"><xsl:attribute name='title'><xsl:value-of select="displayItem[@name='description']"/></xsl:attribute></xsl:if><xsl:value-of select="displayItem[@name='name']"/></a></li>
+		</xsl:when>
+	      </xsl:choose>
+	    </xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="collectionDescriptionTextAndServicesLinks">
+		<xsl:apply-templates select="pageResponse/collection|serviceCluster"/>
+</xsl:template>
+
+<xsl:template match="collection|serviceCluster">
+      <xsl:value-of select="displayItem[@name='description']" disable-output-escaping="yes"/>
+      
+	  <xsl:apply-templates select="serviceList">
+	<xsl:with-param name="collName" select="$collName"/>
+      </xsl:apply-templates>
+</xsl:template>
+
+
+ <xsl:template match="serviceList">
+    <xsl:param name="collName"/>
+    <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about.services')"/></h3>
+    <xsl:choose>
+      <xsl:when test="service">
+	<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about.servicehelp')"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about.noservices')"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    
+	
+    <xsl:if test="service">
+      <ul id="servicelist">  	
+	<xsl:for-each select="service">
+	  <xsl:variable name="action"><xsl:choose>
+	      <xsl:when test="@type='query'">q</xsl:when>
+	      <xsl:when test="@type='browse'">b</xsl:when>
+	      <xsl:when test="@type='process'">pr</xsl:when>
+	      <xsl:when test="@type='applet'">a</xsl:when>
+	      <xsl:otherwise>DO_NOT_DISPLAY</xsl:otherwise>
+	    </xsl:choose></xsl:variable>
+	  <xsl:if test="$action !='DO_NOT_DISPLAY'">
+	    <li><a href="{$library_name}?a={$action}&amp;rt=d&amp;s={@name}&amp;c={$collName}"><xsl:value-of select="displayItem[@name='name']"/></a><xsl:value-of select="displayItem[@name='description']"/></li>
+	  </xsl:if>
+  	</xsl:for-each>
+      </ul> 
+    </xsl:if> 
+  </xsl:template>
 
 
