diff --git a/_projectCommon.php b/_projectCommon.php
index c58daa1..1b51702 100644
--- a/_projectCommon.php
+++ b/_projectCommon.php
@@ -1,20 +1,26 @@
 <?php
+# Set the theme for your project's web pages.
+# See the Committer Tools "How Do I" for list of themes
+# https://dev.eclipse.org/committers/
+# Largely copied from the RAP team
 
-	# Set the theme for your project's web pages.
-	# See the Committer Tools "How Do I" for list of themes
-	# https://dev.eclipse.org/committers/
-	# Optional: defaults to system theme 
-	$theme = "Nova";
-	$pageAuthor="Equinox Committers";
-	$App->ExtraHtmlHeaders = '<link rel="stylesheet" type="text/css" href="/equinox/equinox.css">';
-	# Define your project-wide Nav bars here.
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# these are optional
-	$Nav->addCustomNav("Wiki", "http://wiki.eclipse.org/Equinox", "_self", 1);
-	$Nav->addCustomNav("Mailing Lists", "http://eclipse.org/mail", "_self", 1);
-	$Nav->addNavSeparator("Components", "index.php");
-	$Nav->addCustomNav("Equinox", "http://eclipse.org/equinox", "_self", 1);
-	$Nav->addCustomNav("Incubator", "http://eclipse.org/eclipse/incubator", "_self", 1);
+// ini_set('display_errors', 1); ini_set('error_reporting', E_ALL);
+
+	$Nav->setLinkList( array() );
+	$Nav->addNavSeparator("Work Areas", "");
+	$Nav->addCustomNav("Bundles", "http://eclipse.org/equinox/bundles", "_self", 1);
+	$Nav->addCustomNav("Framework", "http://eclipse.org/equinox/framework", "_self", 1);
+	$Nav->addCustomNav("Incubator", "http://eclipse.org/equinox/incubator", "_self", 1);
+	$Nav->addCustomNav("p2", "http://eclipse.org/equinox/p2", "_self", 1);
+	$Nav->addCustomNav("Security", "http://eclipse.org/equinox/security", "_self", 1);
+	$Nav->addCustomNav("Server", "http://eclipse.org/equinox/server", "_self", 1);
+	
+	if (file_exists("component-links.php")) 
+		include "component-links.php";
+	else
+		if (file_exists("../component-links.php")) 
+			include "../component-links.php";
+	
 	$Nav->addNavSeparator("Related", "");
 	$Nav->addCustomNav("RT", "http://eclipse.org/rt", "_self", 1);
 	$Nav->addCustomNav("Eclipse", "http://eclipse.org/eclipse", "_self", 1);
@@ -23,4 +29,60 @@
 	$Nav->addCustomNav("ECF", "http://eclipse.org/ecf", "_self", 1);
 	$Nav->addCustomNav("Development", "http://eclipse.org/eclipse/development", "_self", 1);
 
+	$Menu->setMenuItemList( array() );
+	$Menu->addMenuItem( "Home", "http://eclipse.org/equinox/", "_self" );
+	$Menu->addMenuItem( "Get Started", "http://eclipse.org/equinox/getting-started/", "_self" );
+	$Menu->addMenuItem( "Downloads", "http//download.eclipse.org/equinox", "_self" );
+	$Menu->addMenuItem( "Documents", "http://eclipse.org/equinox/documents/", "_self" );
+	$Menu->addMenuItem( "Resources", "http://eclipse.org/equinox/resources/", "_self" );
+	$Menu->addMenuItem( "FAQ", "http://eclipse.org/equinox/faq.php/", "_self" );
+	$Menu->addMenuItem( "Wiki", "http://wiki.eclipse.org/Equinox", "_self" );
+
+	$App->AddExtraHtmlHeader( '<link rel="stylesheet" type="text/css" href="http://eclipse.org/equinox/testweb/equinox.css"/>' );
+	$App->AddExtraHtmlHeader( '<link rel="stylesheet" type="text/css" href="http://eclipse.org/equinox/rap-layout-fixes.css"/>' );
+	$App->AddExtraHtmlHeader( '<!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="http://eclipse.org/equinox/rap-layout-fixes-ie.css"/><![endif]-->' );
+	$App->AddExtraHtmlHeader( '<link rel="shortcut icon" href="http://eclipse.org/rt/images/favicon.ico" />');
+	$App->AddExtraHtmlHeader( '<link rel="stylesheet" type="text/css" href="http://eclipse.org/equinox/rap-posts.css"/>' );
+	$App->AddExtraHtmlHeader( '<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>' );
+	$App->AddExtraHtmlHeader( '<script type="text/javascript" src="http://eclipse.org/rt/jquery.zrssfeed.min.js"></script>' );
+
+//  $App->Promotion = TRUE; # set true to enable current eclipse.org site-wide promo
+
+  function createRapNavigation() {
+    $html = <<<EOHTML
+<div id="rap-small-header">
+  <a href="http://eclipse.org/equinox/"><div id="rap-small-logo"></div></a>
+</div>
+<script type="text/javascript">
+  // logo
+  var logo = $( '#logo:first-child' );
+  var newLogo = '<div id="logo"><a href="http://eclipse.org">' 
+                + logo.html() + '</a></div>';
+  logo.replaceWith( newLogo );
+</script>
+
+
+EOHTML;
+    
+    return $html;
+  }
+
+  function generateRapPage( $App, $Menu, $Nav, $author, $keywords, $title, $html )
+  {
+    $theme = "Nova";
+    $pageHtml = createRapNavigation( $Nav ) . $html;
+    	$pageHtml .= file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/equinox/right-links.html");
+    $App->generatePage( $theme, $Menu, $Nav, $author, $keywords, $title, $pageHtml );
+  }
+
+  function xslt( $xmlFile, $xslFile ) {
+    $xslDoc = new DOMDocument();
+    $xslDoc->load( $xslFile );
+    $xmlDoc = new DOMDocument();
+    $xmlDoc->load( $xmlFile );
+    $proc = new XSLTProcessor();
+    $proc->importStylesheet( $xslDoc );
+    return $proc->transformToXML( $xmlDoc );
+  }
+  
 ?>
\ No newline at end of file
diff --git a/bundles/component-links.html b/bundles/component-links.html
deleted file mode 100644
index dcecbad..0000000
--- a/bundles/component-links.html
+++ /dev/null
@@ -1,10 +0,0 @@
-	<div id="rightcolumn">
-		<div class="sideitem">
-		    <h6>Bundles links</h6>
-		    <ul>
-              <li><a href="/equinox/bundles/resources.php">resources</a></li>
-              <li><a href="/equinox/bundles/planning">planning</a></li>
-	      </ul>
-		</div>
-	</div>
-
diff --git a/bundles/component-links.php b/bundles/component-links.php
new file mode 100755
index 0000000..902fa3b
--- /dev/null
+++ b/bundles/component-links.php
@@ -0,0 +1,5 @@
+<?php
+	$Nav->addNavSeparator("Bundles Links", "");
+	$Nav->addCustomNav("Resources", "/equinox/bundles/resources.php", "_self", 1);
+	$Nav->addCustomNav("Planning", "/equinox/bundles/planning", "_self", 1);
+?>
diff --git a/bundles/index.php b/bundles/index.php
index 1b1d9f2..a1c04e0 100644
--- a/bundles/index.php
+++ b/bundles/index.php
@@ -1,48 +1,20 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Bundles";
 	$pageKeywords	= "equinox, osgi, framework, runtime, bundles";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 
 	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+		<h2>$pageTitle</h2>
+		<p>The Equinox Bundles component is tasked with implementing all add-on services
+		detailed in the OSGi specifications including the output of Mobile Expert Group
+		(MEG) and the Vehicle Expert Group (VEG). In addition, the bundles component
+		team defines and produces bundles and services that are of general utility
+		to OSGi systems and programmers. For example, the Bundles team is responsible
+		for the Extenstion registry used throughout Eclipse.</p>
 
-			<p class=bar>Mission Statement</p>
-				<p>The Equinox Bundles component is tasked with implementing all add-on services
-				detailed in the OSGi specifications including the output of Mobile Expert Group
-				(MEG) and the Vehicle Expert Group (VEG). In addition, the bundles component
-				team defines and produces bundles and services that are of general utility
-				to OSGi systems and programmers. For example, the Bundles team is responsible
-				for the Extenstion registry used throughout Eclipse.</p>
-
-		  <p class=bar>What's New</p>
-		  <p><b>Feb 2008</b> - <img src="http://www.eclipse.org/images/new.gif" width="31" height="14">
-		  Several new OSGi service implementations contributed by ProSyst have been graduated into the Bundles
-		  component.  This includes Declarative Services, IO Connector Service, Initial Provisioning, and Wire Admin Service.
-		  </p>
-		  <p><b>Feb 2008</b> - <img src="http://www.eclipse.org/images/new.gif" width="31" height="14">
-		  The Config Admin Service implementation bundle been graduated into the Bundles component.
-		  </p>
-		  <p class=bar>Bundle Projects</p>
+		  <h3>Bundle Projects</h3>
 		  <p>The Bundles component consists of several &quot;projects&quot; in the Eclipse
   CVS repository (see the <a href="resources.php">resources</a> page for information
   on repository location and access). In general the name of the project matches
@@ -51,26 +23,25 @@
     side</a> work</p>
 <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
   <tr>
-    <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td width="98%"><b><a name="app"></a>Application Container
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.app/?root=RT_Project">org.eclipse.equinox.app</a>)</b> <A HREF="#legend" style="color:green;"> status:green</a><br>
-       
     An implementation of the OSGi R4 MEG Application Container service.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b><a name="common"></a>Common Utility Bundle (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/components/bundles/org.eclipse.equinox.common/?root=RT_Project">org.eclipse.equinox.common</a>)</b> <A HREF="#legend" style="color:green;"> status:green</a><br>
     A library of utility classes (e.g., IStatus, Assert, IAdaptable, ...) that
       are frequently used by Eclipse bundles. This bundle can be used in various
       different OSGi systems or standalone (i.e., without OSGi).</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b><a name="config"></a>Config Admin (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.cm/?root=RT_Project">org.eclipse.equinox.cm</a>)</b> <A HREF="#legend" style="color:green;"> status:green</a><br>
         An implementation of the OSGi R4 Configuration Admin service.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="device"></a>Device Access
         Service (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.device/?root=RT_Project">org.eclipse.equinox.device</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     An implementation of the OSGi R4 Device Access service. This service provides
@@ -78,7 +49,7 @@
     download and start appropriate device drivers.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b><a name="ds"></a>Declarative Services (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.ds/?root=RT_Project">org.eclipse.equinox.ds</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
         An implementation of the OSGi R4 Declarative Services specification.
           This service simplifies the task of authoring OSGi services by performing
@@ -87,7 +58,7 @@
           service components to be loaded only when they are needed.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="event"></a>Event Admin Service
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.event/?root=RT_Project">org.eclipse.equinox.event</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     An implementation of the OSGi R4 Event Admin Service. This service provides
@@ -96,34 +67,34 @@
     popular in many message-based systems.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="http"></a>HTTP Service
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http/?root=RT_Project">org.eclipse.equinox.http</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     An implementation of the OSGi R4 HTTP service. This service provides an embedded
     HTTP server that is capable of serving HTML and Java servlets.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="io"></a>IO Connector Service 
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.io/?root=RT_Project">org.eclipse.equinox.io</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     An implementation of the OSGi R4 IO Connector Service.  This service adopts the javax.microedition.io packages as a basic communications infrastructure.
     This specification defines a service that adopts the flexible model of the Connector framework in J2ME, but allows OSGi bundles to extend it.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="ip"></a>Initial Provisioning 
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.ip/?root=RT_Project">org.eclipse.equinox.ip</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     An implementation of the OSGi R4 Initial Provisioning.  This service Defines how the Management Agent can make its way to the Service Platform, 
     and gives a structured view of the problems and their corresponding resolution methods.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b><a name="log"></a>Log Service (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.log/?root=RT_Project">org.eclipse.equinox.log</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     An implementation of the OSGi R4 Log service. This service provides a general-purpose
       message logger for the OSGi environment.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="metatype"></a>Metatype Service
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.metatype/?root=RT_Project">org.eclipse.equinox.metatype</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     An implementation of the OSGi R4 Metatype service. This service defines interfaces
@@ -132,13 +103,13 @@
     information of data that they can use as arguments.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b><a name="prefs"></a>Preferences Service (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.preferences/?root=RT_Project">org.eclipse.equinox.preferences</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     The Eclipse preference service is an extension of the standard OSGi preference
       service that adds listeners and the notion of preference scopes.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b><a name="extensions"></a>Extension Registry (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/components/bundles/org.eclipse.equinox.registry/?root=RT_Project">org.eclipse.equinox.registry</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     The Eclipse extension registry allows bundles to communicate and cooperate
       using declarative markup and lazy instantiation. The extension mechanism
@@ -146,7 +117,7 @@
       contractual and management characteristics.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="supplement"></a>Supplemental Bundle/JAR (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/framework/bundles/org.eclipse.osgi/supplement/?root=RT_Project">org.eclipse.equinox.supplement</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     A library that includes a very small number of types normally supplied by
       the Equinox implementation. This JAR is useful when running certain bundles
@@ -154,13 +125,13 @@
       when running inside Equinox.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="user"></a>User Admin Service (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.useradmin/?root=RT_Project">org.eclipse.equinox.useradmin</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
         An implementation of the OSGi R4 User Admin Service. This service provides
           support for users, groups, and limited authentication functionality.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="wire"></a>Wire Admin Service
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.wireadmin/?root=RT_Project">org.eclipse.equinox.wireadmin</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
     An implementation of the OSGi R4 Wire Admin Service. This is an administrative
@@ -169,21 +140,21 @@
     control the wiring of services in an OSGi Service Platform.</td>
   </tr>
     <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><b> <a name="equinox.util"></a>Equinox Utilities
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.util/?root=RT_Project">org.eclipse.equinox.util</a>)</b><A HREF="#legend" style="color:green;"> status:green</a><br>
         A  library of utility classes that are frequently used the Equinox OSGi Service implementation bundles.
         </td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><strong><a name="services"></a>OSGi Services API (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.osgi.services/?root=RT_Project">org.eclipse.osgi.services</a>)</strong><A HREF="#legend" style="color:green;"> status:green</a><br>
     This bundle contains the set of OSGi specified service APIs. It is included
       here as a convenience for people developing or deploying service implementations
       independent of their specification.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" ></td>
     <td><strong><a name="util"></a>OSGi Utilities (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.osgi.util/?root=RT_Project">org.eclipse.osgi.util</a>)</strong><A HREF="#legend" style="color:green;"> status:green</a><br>
     This bundle contains the set of OSGi specified utilities (e.g., ServiceTracker).
       It is included here as a convenience.</td>
@@ -198,12 +169,13 @@
   you want to load into the workspace. </p>
 <p>If you are working without Eclipse (gads! :-) then use your favorite CVS client
   and check out the relevant projects.</p>
-			  <p class=bar>Specifications</p>
+
+			  <h3>Specifications</h3>
 			  <p>The specifications for the services are available from the <a href="http://osgi.org">OSGi</a> web
 			    site. Click <a href="http://osgi.org/osgi_technology/download_specs2.asp?section=2">here</a> to
 			    download them.</p>
 
-			<p class=bar>Committers</p>
+			<h3>Committers</h3>
 				<p>The following people are committers on the Equinox bundles component:</p>
 				<ul>
 					<li>Oleg Besedin, IBM Rational</li>
@@ -216,19 +188,8 @@
 					<li>Pascal Rapicault, IBM Rational</li>
 					<li>Tom Watson, IBM Lotus (Project co-lead)</li>
 				</ul>
-	<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/bundles/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/bundles/planning/index.php b/bundles/planning/index.php
index 8966d15..b81a963 100644
--- a/bundles/planning/index.php
+++ b/bundles/planning/index.php
@@ -1,57 +1,27 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Bundles - Planning";
 	$pageKeywords	= "equinox, osgi, framework, runtime, bundles, planning";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-
 	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+		<h2>$pageTitle</h2>
 
 <table BORDER=0 CELLPADDING=2 WIDTH="100%" >
   <tr>
-    <td WIDTH="2%" ALIGN=RIGHT VALIGN=TOP><img SRC="../../images/Adarrow.gif" BORDER=0 height=16 width=16></td>
+    <td WIDTH="2%" ALIGN=RIGHT VALIGN=TOP><img src="/equinox/images/arrow.png"/></td>
     <td><b>3.2 Release</b>
         <ul>
           <li><a href="3.2/plan.php">General 3.2 Equinox Bundles Plan</a></li>
-          <li>Check out the <a href="../../documents">documents</a> page for links
+          <li>Check out the <a href="/equinox/documents">documents</a> page for links
             to some of the major items that we are working on.</li>
         </ul>
-        <p>&nbsp;</p>
     </td>
   </tr>
 </table>
-<p>&nbsp;</p>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/bundles/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/bundles/resources.php b/bundles/resources.php
index 9f68268..7675b7f 100644
--- a/bundles/resources.php
+++ b/bundles/resources.php
@@ -1,45 +1,27 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Bundles - Resources";
 	$pageKeywords	= "equinox, osgi, framework, runtime";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 
 	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+		<h2>$pageTitle</h2>
 
 <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
 	<tr>
-      <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"></td>
       <td width="98%"><a href="news://news.eclipse.org/eclipse.technology.equinox" target="_top"><b>Newsgroup</b></a><br>
     Talk to the people using Equinox</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"></td>
       <td><a href="http://dev.eclipse.org/mailman/listinfo/equinox-dev" target="_top"><b>Mailing
             list </b></a><br>
     Talk to the people working on Equinox</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"></td>
       <td><a href=https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%0F%22uct=Equinox&component=Bundles&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit(%22der=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0= target="_top"><b>Bugs/Issues</b></a><br>
     Discover the current bugs and issues in Equinox Bundles component. Note
       that a large amount of the activity goes on in Bugzilla. Configure your
@@ -47,9 +29,9 @@
       user to monitor bug activity.</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"></td>
       <td>
-        <p><a href="http://dev.eclipse.org/viewcvs/index.cgi/" target="_top"><b>CVS</b></a><br>
+        <a href="http://dev.eclipse.org/viewcvs/index.cgi/" target="_top"><b>CVS</b></a><br>
       The Equinox Bundles code repository is part of the normal Eclipse project
         repository and is available via <a href="http://dev.eclipse.org/viewcvs/index.cgi/">web
         access</a> or direct CVS access. For direct access, use anonymous login
@@ -59,22 +41,12 @@
         </blockquote>
         <p>The Equinox work goes on in various folders as appropriate for the
       bundles being developed. For details, see the list of <a href="index.php#bundleprojects">Bundle
-      projects</a>.</p></td>
+      projects</a>.</td>
   </tr>
 </table>
-<p>&nbsp;</p>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/bundles/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
 
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/coda/component-links.php b/coda/component-links.php
new file mode 100755
index 0000000..dde8d94
--- /dev/null
+++ b/coda/component-links.php
@@ -0,0 +1,4 @@
+<?php
+	$Nav->addNavSeparator("CODA Links", "");
+	$Nav->addCustomNav("Whitepaper PDF", "20080310_equinox.pdf", "_self", 1);
+?>
diff --git a/coda/index.php b/coda/index.php
index fd49f41..3829095 100644
--- a/coda/index.php
+++ b/coda/index.php
@@ -1,36 +1,14 @@
-<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());     # All on the same line to unclutter the user's desktop'
-
-	
-	#
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Whitepaper: Component Oriented Development and Assembly with Equinox";
 	$pageKeywords	= "Eclipse, equinox, CODA";
-	$pageAuthor		= "Lynn Gayowski";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank)
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self");
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank");
-
-	# End: page-specific settings
-	#
-	
-	# Paste your HTML content between the EOHTML markers!	
+	$pageAuthor = "Equinox committers";
 	$html = <<<EOHTML
-	<style>
-		p {
-			margin-left:20px;
-			line-height:150%;
-		}
-		ul {
-			margin-left:30px;
-		}
-	</style>
-<div id="maincontent">
-	<div id="midcolumn">
-		<h1>$pageTitle</h1>
+	
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
 
-		<h3><strong>Executive Summary</strong></h3>
+		<h3>Executive Summary (<a href="20080310_equinox.pdf">PDF</a>)</h3>
 		
 		<p>Eclipse Equinox simplifies the process of developing and deploying modern software solutions, a process we call Component
 		Oriented Development and Assembly (CODA). Rather than carving down large, complex, feature-rich stacks to suit your needs,
@@ -213,27 +191,9 @@
 			<a href="http://live.eclipse.org/node/387" target="blank">Introduction to Eclipse Equinox and OSGi</a></li>
 			<li><a href="../tutorials/server-side/">Complete the Introduction to Equinox Tutorial</a></li>
 		</ul></p>
-
-		<br>
-					
-	</div>
 		
 </div>
 
-<div id="rightcolumn">
-	<div class="sideitem">
-		<h6>Whitepaper</h6>
-			<ul>
-				<li><a href="20080310_equinox.pdf">PDF Version</a></li>
-			</ul>
-		</h6>
-	</div>
-</div>
-
 EOHTML;
-
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
-
diff --git a/dir-links.html b/dir-links.html
deleted file mode 100644
index b50946b..0000000
--- a/dir-links.html
+++ /dev/null
@@ -1,10 +0,0 @@
-	<div id="rightcolumn">
-		<div class="sideitem">
-		    <h6>Hot links</h6>
-		    <ul>
-              <li><a href="/equinox/documents/quickstart.php">quickstart</a></li>
-              <li><a href="http://wiki.eclipse.org/Equinox_p2_Getting_Started">provisioning quickstart</a></li>
-	      </ul>
-		</div>
-	</div>
-
diff --git a/documents/3.2-migration.php b/documents/3.2-migration.php
index 39801c9..dcef440 100644
--- a/documents/3.2-migration.php
+++ b/documents/3.2-migration.php
@@ -1,16 +1,16 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<title>Equinox Migration Preview</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link rel="stylesheet" title="default" href="http://eclipse.org/default_style.css" type="text/css">
-<link rel="stylesheet" title="default" href="../equinox.css" type="text/css">
-</head>
-<body>
-<?php include("nav-include.html") ?>
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle = "Equinox Migration Preview";
+	$pageKeywords = "equinox, osgi, framework, runtime, resources";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
+	
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
 
 <p>This document details the major changes in the Eclipse runtime layer (aka Equinox) during the 3.2 development cycle.</p>
-<p class=bar>Runtime Split</p>
+
+<h3>Runtime Split</h3>
 
 The Runtime has been refactored as per <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113663">https://bugs.eclipse.org/bugs/show_bug.cgi?id=113663</a>.
 The refactoring was done to:
@@ -45,7 +45,8 @@
   that is used to support running without OSGi.</li>
 </ul>  
   <p>These changes should have no affect on other plugins. </p>
-<p class=subbar>Adapting</p>
+
+<h4>Adapting</h4>
   <ol>
   <li>Conflicts with new public APIs. org.eclipse.equinox.common includes several
     new API classes (e.g., Assert and ListenerList) that have common names. Code
@@ -68,8 +69,8 @@
     </ul>
   </ol>
   
+</div>
 
-
-  <p>&nbsp;</p>
-</body>
-</html>
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
+?>
diff --git a/documents/coding.php b/documents/coding.php
index 10a9016..e641e20 100644
--- a/documents/coding.php
+++ b/documents/coding.php
@@ -1,38 +1,22 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Coding Practices";
 	$pageKeywords	= "equinox, osgi, framework, runtime, documents, coding, practices";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
 	<div id="midcolumn">
 		<h1><?= $pageTitle ?></h1>
 
-<p class="bar">Coding Practices</p>
+<h3>Coding Practices</h3>
 <p>Equinox covers a reasonably large code base. To ensure coherence
   and consistency, the team follows a number of coding conventions and practices.
   For the most part these conventions are supported by the Eclipse tooling (e.g.,
   formatter settings) so its really a matter of setting it up and going from
   there. Give yourself over to the tooling and forget about formatting. Just
   let the tools do their work.</p>
-<p class="subbar">Legal</p>
+
+<h4>Legal</h4>
 <ul>
 <li> <strong>All committed contributions from non-committers must be tracked.</strong> This must be done
   by using the 'contributed' keyword in bugzilla.  A <i>non-committer</i> is someone who is not a committer on the
@@ -42,7 +26,7 @@
   <li> If the code was written in 2003, don't have 2000,2003 in the copyright.</li>
 </ul>
 
-<p class="subbar">Attribution</p>
+<h4>Attribution</h4>
 <p>Contributors should feel free to identify themselves individually or by company in the code.  
 There are three main places this is done.  </p>
 <ul>
@@ -62,7 +46,7 @@
 quite cumbersome and poorly maintained authorship lists give a false picture of code evolution.</li>
 </ul>
 
-<p class="subbar">Use the tools</p>
+<h4>Use the tools</h4>
 <p>For the most part you can just use the preference template files supplied here to configure the various tools 
 to do the same as the rest of the team.  These preference files are typically found in the .settings 
 directory of a project.  To apply the preferences simply copy the template file from here into the .settings folder overwriting the original.
@@ -73,7 +57,7 @@
 <li><a href="org.eclipse.jdt.ui.prefs">Equinox JDT UI preferences</a> - template for editor preferences (e.g., format on save etc.)
 </ul>
 
-<p class="subbar">Coding style</p>
+<h4>Coding style</h4>
 <ul>
   <li>Use blank lines sparingly. Group lines of code together as you would group
   sentences into paragraphs in written text.</li>
@@ -112,7 +96,7 @@
   to change their compiler settings in order to see these tasks.</li>
 </ul>
 
-<p class="subbar">Comments</p>
+<h4>Comments</h4>
 <ul>
   <li>Comments are a good thing but are not a substitute for good naming (see next section).
   Comment all &quot;non-obvious&quot; things whether they be methods, fields,
@@ -121,7 +105,7 @@
   <li>Follow the Javadoc guidelines as well as @since etc recommendations</li>
 </ul>
 
-<p class="subbar">Naming</p>
+<h4>Naming</h4>
 <ul>
   <li>Choose class/method/field names that describe the purpose of the entire
     method/class.</li>
@@ -141,7 +125,7 @@
   <li>Avoid random word prefixes such as &quot;a&quot; and &quot;the&quot;. They don't add value.</li>
 </ul>
 
-<p class="subbar">Internationalization</p>
+<h4>Internationalization</h4>
 <ul>
   <li> Follow the NLS guidelines and use the Eclipse NLS mechanism.</li>
   <li>All sentences which are displayed to the user must end with a period.</li>
@@ -150,7 +134,7 @@
   <li> Make sure if the message accepts a parameter then you pass one in</li>
 </ul>
 
-<p class="subbar">Exception handling</p>
+<h4>Exception handling</h4>
 <ul>
 	<li>When catching exceptions, consider whether it is some low-level error that
 	the client should not be aware of or will not be able to interpret. Consider wrapping
@@ -171,20 +155,8 @@
 	is any possibility of an exception being propagated to client code it must have
 	externalized messages.</li>
 </ul>
-<p>&nbsp;</p>
-
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/documents/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
\ No newline at end of file
diff --git a/documents/component-links.html b/documents/component-links.html
deleted file mode 100644
index 2af7643..0000000
--- a/documents/component-links.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<div id="rightcolumn">
-	<div class="sideitem">
-		<h6>Hot docs</h6>
-		<ul>
-			<li><a href="/equinox/documents/quickstart.php">quickstart</a></li>
-			<li><a href="/equinox/server/http_quickstart.php">server quickstart</a></li>
-			<li><a href="/equinox/documents/coding.php">coding</a></li>
-		</ul>
-	</div>
-</div>
-
diff --git a/documents/component-links.php b/documents/component-links.php
new file mode 100755
index 0000000..fb2a3b3
--- /dev/null
+++ b/documents/component-links.php
@@ -0,0 +1,6 @@
+<?php
+	$Nav->addNavSeparator("Hot Docs", "");
+	$Nav->addCustomNav("Quick Start", "/equinox/documents/quickstart.php", "_self", 1);
+	$Nav->addCustomNav("Server Quick Start", "/equinox/server/http_quickstart.php", "_self", 1);
+	$Nav->addCustomNav("Coding", "/equinox/documents/coding.php", "_self", 1);
+?>
diff --git a/documents/index.php b/documents/index.php
index 1a9589f..0027d08 100644
--- a/documents/index.php
+++ b/documents/index.php
@@ -1,32 +1,14 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Documents";
 	$pageKeywords	= "equinox, osgi, framework, runtime, documents";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 
 	<div id="midcolumn">
 		<h1><?= $pageTitle ?></h1>
 
-			<p class=bar>Documents</p>
+			<h3>Documents</h3>
 				<ul>
               <li><a href="quickstart.php">Equinox Quickstart Guide </a><br/>
                           <i>An easy set of steps for running Equinox.</i> </li>
@@ -37,7 +19,7 @@
     				<li><a href="3.2-migration.php">3.2 Migration Guide</a></li>
 				</ul>
 
-			<p class=bar>Presentations</p>
+			<h3>Presentations</h3>
 				<ul>
 					<li><a href="http://live.eclipse.org">Eclipse Live Webinar</a> (Novemeber 2007)
 					  - <a href="http://live.eclipse.org/node/387">Introduction to Eclipse Equinox and OSGi</a> - Simon Kaegi and Thomas Watson</li>
@@ -65,7 +47,7 @@
     			</li>
 			</ul>
 
-			<p class=bar><a name="server"></a>Server-side</p>
+			<h3><a name="server"></a>Server-side</h3>
 			<ul>
               <li><a href="/equinox/server/http_quickstart.php">Quickstart Guide to Setting up an HTTP Server</a><br/>
                           <i>An easy set of steps to set up an HTTP server using
@@ -83,23 +65,13 @@
                           with OSGi.</i></li>
 		  </ul>
 
-			<p class=bar>Related Documents</p>
+			<h3>Related Documents</h3>
 			<ul>
 				<li> <a href="http://osgi.org/osgi_technology/download_specs.asp?section=2">OSGi specifications</a></li>
 				<li> <a href="iplogs/EquinoxIPlog.html">IP Logs</a></li>
 			</ul>
-<p>&nbsp;</p>
 	</div>
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/documents/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}	
-?>
 
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/documents/iplogs/index.php b/documents/iplogs/index.php
index df60c2f..6ad1ca9 100644
--- a/documents/iplogs/index.php
+++ b/documents/iplogs/index.php
@@ -1,48 +1,24 @@
-<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	# index.php
-	#
-	# Author: 		
-	# Date:			2009-06-09
-	#
-	# Description: Equinox project IP log main page
-	#
-	#
-	#****************************************************************************
-	
-	#
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Project IP Logs";
 	$pageKeywords	= "equinox, EclipseRT, IP, intellectual property";
-	$pageAuthor		= "";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 
 	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+		<h2>$pageTitle</h2>
 		<p>Eclipse projects are required to maintain intellectual property (IP) logs for each release. This page
 		contains all such logs for the EclipseRT <a href="http://eclipse.org/equinox">Equinox</a> project. For
 		more details on IP logs, see the <a href="http://www.eclipse.org/projects/dev_process/project-log.php">
 		Eclipse Development Process</a> documentation.</p>
+
 		<div class="homeitem3col">
 			<h3>Current IP Log</h3>
 			<p>To see a draft IP log for the Equinox project release currently under development,
 			view the <a href="http://www.eclipse.org/projects/ip_log.php?projectid=rt.equinox">auto-generated IP log</a>.
 			Note the auto-generated log has not been reviewed for accuracy or approved by the Eclipse Foundation legal team.
 		</div>
+
 		<div class="homeitem3col">
 			<h3>IP Logs For Past Releases</h3>
 			<p>The following are approved IP logs for past Equinox project releases.</p>
@@ -55,10 +31,6 @@
 		</div>
 	</div>
 
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/documents/nav-include.html b/documents/nav-include.html
deleted file mode 100644
index 3dcc04f..0000000
--- a/documents/nav-include.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<center>
-	<font class=indextop>equinox</font><br>
-	<font class=indexsub>equinox documents</font>
-	<p></p>
-	<a href="../index.html" target="_top">[home]</a>
-	<a href="../framework">[framework]</a>
-	<a href="../bundles">[bundles]</a>
-	<a href="../incubator">[incubator]</a>
-	<a href="index.php">[documents]</a>
-	<a href="http://download.eclipse.org/eclipse/equinox">[downloads]</a>
-	<a href="../faq.php">[faq]</a>
-</center>
diff --git a/documents/quickstart.php b/documents/quickstart.php
index 465dc03..5a04934 100644
--- a/documents/quickstart.php
+++ b/documents/quickstart.php
@@ -1,32 +1,13 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox QuickStart Guide";
 	$pageKeywords	= "equinox, osgi, framework, runtime, resources, quick, start";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	<div id="midcolumn">
 		<h1><?= $pageTitle ?></h1>
 		
-<p class=bar>Getting and using the Equinox OSGi implementation</p>
+<h3>Getting and using the Equinox OSGi implementation</h3>
 <p>The Equinox OSGi framework implementation forms the underpinnings of the Eclipse
 RCP and IDE platforms but it is in fact a fully standalone OSGi implementation.
   To run Equinox OSGi on its own either download the org.eclipse.osgi JAR from
@@ -35,7 +16,7 @@
 framework JAR, use the following command line:</p>
 <pre>  java -jar org.eclipse.osgi_3.2.0.jar -console</pre>
 <p>Once this is running you will see an osgi&gt; prompt. This is the OSGi console waiting for you to type commands.  
-Type '?' at the prompt for command help.  The most interesting commands for getting started are:
+Type '?' at the prompt for command help.  The most interesting commands for getting started are:</p>
 <ul>
 <li>install &lt;bundle URL&gt; - Installs the bundle from the given URL</li>
 <li>start &lt;bundle # or bundle name&gt; - Starts the bundle with the given numeric or symbolic id</li>
@@ -43,11 +24,13 @@
 <li>ss - Reports a summary status of all installed bundles</li>
 <li>diag &lt;bundle # or bundle name&gt; - Reports any resolution problems for the bundle with the given numeric or symbolic id</li>
 </li>
-</p>
+</ul>
 
 <p>If you don't have Eclipse and just want OSGi, click <a href="http://download.eclipse.org/eclipse/equinox/">here</a> to get the JAR from the 
 Equinox download site. </p>
-<p class=bar>Configurations and all that...</p>
+
+
+<h3>Configurations and all that...</h3>
 <p>The Equinox OSGi implementation is extremely configurable. One of the most
   common configuration scenarios is to have the framework automatically install
   and run a set of bundles when it is started. You do this every time you run
@@ -152,7 +135,7 @@
       for inclusion in the OSGi R4.1 or R5 specifications while others are Eclipse-specific. All were put in place to solve
       real problems that we (or our consumers) were having. You may be having related problems.</p>
 
-<p class=bar>Other Information</p>
+<h3>Other Information</h3>
 <ul>
   <li>The Eclipse SDK includes some very sophisticated tooling for defining,
     developing, debugging, building and deploying bundles. To use this tooling
@@ -166,19 +149,8 @@
   <li>Questions and comments should go in the <a href="news://news.eclipse.org/eclipse.technology.equinox">equinox</a> newsgroup.</li>
   <li>Development questions can go to <a href="mailto:equinox-dev@eclipse.org">equinox-dev@eclipse.org</a>.</li>
 </ul>
-<p>&nbsp;</p>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/documents/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/documents/release-reviews/helios/index.html b/documents/release-reviews/helios/index.html
deleted file mode 100644
index 9aa3fbf..0000000
--- a/documents/release-reviews/helios/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<title>Equinox Project Helios review material</title>
-</head>
-<body>
-<p>
-Release slides: <a href="Equinox Project 3.6Release Review.pdf">PDF</a>,
-<a href="Equinox Project 3.6Release Review.ppt">PPT</a>
-</p>
-</body>
-</html>
\ No newline at end of file
diff --git a/documents/release-reviews/helios/index.php b/documents/release-reviews/helios/index.php
new file mode 100755
index 0000000..82c7bda
--- /dev/null
+++ b/documents/release-reviews/helios/index.php
@@ -0,0 +1,15 @@
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle = "Equinox Project Helios review material";
+	$pageKeywords = "equinox, osgi, framework, runtime, resources";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
+	
+<p>
+Release slides: <a href="Equinox Project 3.6Release Review.pdf">PDF</a>,
+<a href="Equinox Project 3.6Release Review.ppt">PPT</a>
+</p>
+
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
+?>
diff --git a/documents/release-reviews/helios/quickstart.html b/documents/release-reviews/helios/quickstart.html
new file mode 100755
index 0000000..873a5a7
--- /dev/null
+++ b/documents/release-reviews/helios/quickstart.html
@@ -0,0 +1,8 @@
+<html>
+   <head>
+      <meta http-equiv="refresh" content="0; url=http://eclipse.org/equinox/documents/quickstart.php" />
+   </head>
+   <body>
+      <a href="http://eclipse.org/equinox/documents/quickstart.php">This document has moved</a>
+   </body>
+</html>
\ No newline at end of file
diff --git a/documents/tools-proposal.php b/documents/tools-proposal.php
index d598067..0b25c50 100644
--- a/documents/tools-proposal.php
+++ b/documents/tools-proposal.php
@@ -1,16 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta
-	http-equiv="Content-Type"
-	content="text/html; charset=iso-8859-1" />
-<title>The Equinox Project - Introspection Tools Proposal</title>
-<link rel="stylesheet" href="http://eclipse.org/default_style.css" type="text/css" />
-<link rel="stylesheet" href="../equinox.css" type="text/css" />
-</head>
-<body>
-<?php include("nav-include.html") ?>
-<p class=bar>Eclipse introspection tools incubator proposal</p>
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle = "The Equinox Project - Introspection Tools Proposal";
+	$pageKeywords = "equinox, osgi, framework, runtime, resources";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
+	
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
 <p>The goal of Eclipse is to become a platform to produce flexible and dynamic applications.
   In such a dynamic environment, it is often hard to know what is happening or
 to explain why the system is behaving as it is. Over the history of Eclipse,
@@ -32,7 +28,7 @@
       to implement rudimentary Eclipse user interfaces to facilitate the use
   of the monitoring tools.
 
-<p class="bar">Interested Parties</p>
+<h3>Interested Parties</h3>
 <ul>
   <li>Robert Connell (UNB)</li>
   <li>DJ Houghton (IBM)</li>
@@ -43,5 +39,8 @@
 </ul>
 <p>Please direct comments or questions to <a
 	href="mailto:equinox-dev@eclipse.org">equinox-dev@eclipse.org</a>.</p>
-</body>
-</html>
+
+</div>
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
+?>
diff --git a/equinox.css b/equinox.css
index cada1d6..c059487 100644
--- a/equinox.css
+++ b/equinox.css
@@ -1,55 +1,3 @@
-
-#main-title {
-margin-bottom: 5px;
-margin-left: 0;
-margin-right: 0;
-padding-top: 17px;
-padding-bottom: 1px;
-padding-left: 25px;
-padding-right: 100px;
-background-color: #cc6600;
-border-bottom: 2px #666633 solid;
-color: #f0f0e1;
-font-weight: bold;
-font-size: 1.2em;
-letter-spacing: 5px;
-text-align: left;
-}
-
-p.bar {
-	background-image: url(/eclipse.org-common/themes/Phoenix/images/header_bg.gif);
-	background-position: top left;
-	background-repeat: repeat-x;
-	background-color: #669;
-	color: #fff;
-	/*  font-size: 1.1em;  */
-	font-size: 110%;
-	font-weight: bold;
-	margin-left: 0;
-	margin-right: 4px;	
-	padding-top: 2px;
-	padding-bottom: 2px;
-	padding-left: 5px;
-	padding-right: 1px;
-}
-
-p.subbar {
-	background-image: url(/eclipse.org-common/themes/Phoenix/images/searchbar_bg.gif);
-	background-position: bottom left;
-	background-repeat: repeat-x;
-	background-color: #595791;
-	color: #000;
-	/*  font-size: 1.1em;  */
-	font-size: 110%;
-	font-weight: bold;
-	margin-left: 0;
-	margin-right: 4px;
-	padding-top: 2px;
-	padding-bottom: 2px;
-	padding-left: 5px;
-	padding-right: 1px;
-}
-
 #popupcontent {
       position: absolute;
       visibility: hidden;
@@ -63,4 +11,8 @@
       position: absolute;
       visibility:hidden;
       overflow: hidden;
-}
\ No newline at end of file
+}
+
+div.collapsable {
+	display: none;
+}
diff --git a/faq.php b/faq.php
index 7b299c0..317adc0 100644
--- a/faq.php
+++ b/faq.php
@@ -1,85 +1,67 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox FAQ";
 	$pageKeywords	= "equinox, osgi, framework, runtime, faq";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-
 	<div id="midcolumn">
 		<h1><?= $pageTitle ?></h1>
-<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+<table border=0 cellspacing=0 cellpadding=2 width="100%" >
   <tr>
-    <td align=RIGHT valign=TOP><b>Q.</b></td>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
     <td >
-      <p><b>I thought Equinox was a Technology project?</b><br>
+      <b>I thought Equinox was a Technology project?</b><br>
       It was. And a successful one at that. Its main output, an implementation
         of the OSGi framework specification, has become so popular and interesting
         that we decided to move Equinox to be an Eclipse project and have it
         host an OSGi community at Eclipse.org. For details on the transition,
-        why, when, how, ... see the <a href="documents/transition.html">transition proposal</a>. </p>
+        why, when, how, ... see the <a href="documents/transition.html">transition proposal</a>. 
     </td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><b>Q.</b></td>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
     <td >
-      <p><b>I thought Equinox was a <a href="http://1-human-hair-wigs.com/wigs3/product_info.php/cPath/21/products_id/169?osCsid=92ea26528d218179f95d81bd732d46bf">wig</a>.
+      <b>I thought Equinox was a <a href="http://1-human-hair-wigs.com/wigs3/product_info.php/cPath/21/products_id/169?osCsid=92ea26528d218179f95d81bd732d46bf">wig</a>.
           What's up with that?</b><br>
       While quite a number of the Equinox committers are folliclly-challenged,
       we agreed from the outset that wigs were not the correct design choice.
-      The naming here is purely coincidence.</p>
+      The naming here is purely coincidence.
     </td>
   </tr>
   <tr> 
-    <td align=RIGHT valign=TOP><b>Q.</b></td>
-    <td >      <p><b>What is <em>Phase 2</em> of Equinox?</b><br>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
+    <td ><b>What is <em>Phase 2</em> of Equinox?</b><br>
         The first main thrust of Equinox was to produce a new runtime for Eclipse.
           That first phase was completed with the release of Eclipse 3.0. <em>Phase
           2</em> collectively refers to the work in Equinox which started after
           Eclipse 3.0 was released
-          (June 2004) and continues on today in the <a href="incubator">incubator</a>.</p>
+          (June 2004) and continues on today in the <a href="incubator">incubator</a>.
     </td>
   </tr>
   <tr> 
-    <td align=RIGHT valign=TOP><b>Q.</b></td>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
     <td > 
-      <p><b>What is the relationship between Equinox and the Eclipse Platform
+      <b>What is the relationship between Equinox and the Eclipse Platform
           project?</b><br>
         They are siblings under the Eclipse PMC. Equinox produces, among other
         things, the OSGi framework implementation used by the Platform (and all
-        other Eclipse-based work) as a component model.</p>
+        other Eclipse-based work) as a component model.
     </td>
   </tr>
   <tr> 
-    <td align=RIGHT valign=TOP><b>Q.</b></td>
-    <td>      <p><b>Is there still innovation and research going on in Equinox?</b><br>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
+    <td><b>Is there still innovation and research going on in Equinox?</b><br>
         Yes! The original mandate of the Equinox project was to investigate and
           prototype new runtime technologies. That mission continues today in
-          the <a href="incubator">Equinox incubator</a> component. </p>
+          the <a href="incubator">Equinox incubator</a> component. 
     </td>
   </tr>
   <tr> 
-    <td align=RIGHT valign=TOP><b>Q.</b></td>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
     <td> 
-      <p><b>Who can/should participate in Equinox?</b><br>
-        Equinox needs people who:</p>
+      <b>Who can/should participate in Equinox?</b><br>
+        Equinox needs people who:
       <ul>
         <li>are interested in OSGi specifications and their implementation</li>
         <li>have ideas relating to Java modularity and componentized systems</li>
@@ -93,7 +75,7 @@
   </tr>
 <!--
   <tr> 
-    <td align=RIGHT valign=TOP><b>Q.</b></td>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
     <td> 
       <p><b>question</b><br>
         answer</p>
@@ -101,19 +83,9 @@
   </tr>
 -->
 </table>
-<p>&nbsp;</p>
 
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/framework/component-links.html b/framework/component-links.html
deleted file mode 100644
index 6ff82f8..0000000
--- a/framework/component-links.html
+++ /dev/null
@@ -1,10 +0,0 @@
-	<div id="rightcolumn">
-		<div class="sideitem">
-		    <h6>Framework links</h6>
-		    <ul>
-              <li><a href="/equinox/framework/resources.php">resources</a></li>
-              <li><a href="/equinox/framework/planning">planning</a></li>
-	      </ul>
-		</div>
-	</div>
-
diff --git a/framework/component-links.php b/framework/component-links.php
new file mode 100755
index 0000000..cadcdbd
--- /dev/null
+++ b/framework/component-links.php
@@ -0,0 +1,5 @@
+<?php
+	$Nav->addNavSeparator("Framework Links", "");
+	$Nav->addCustomNav("Resources", "/equinox/framework/resources.php", "_self", 1);
+	$Nav->addCustomNav("Planning", "/equinox/framework/planning.php", "_self", 1);
+?>
\ No newline at end of file
diff --git a/framework/index.php b/framework/index.php
index 6f3d586..7d2d62d 100644
--- a/framework/index.php
+++ b/framework/index.php
@@ -1,30 +1,12 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Framework";
 	$pageKeywords	= "equinox, osgi, framework, runtime";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"links.html");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 
 	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+		<h1>$pageTitle</h1>
 
 			<p class=bar>Mission Statement</p>
 				<p>The Equinox Framework component is tasked with being a full implementation
@@ -32,22 +14,20 @@
 					produces launchers, bootstrap infrastructure and application models that facilitate
 					the use of Equinox OSGi in end-user product scenarios.</p>
 
-		  <p class=bar>What's New</p>
-<p>&nbsp;</p>
-		  <p class=bar>Framework Projects</p>
+<h3>Framework Projects</h3>
 <p>The Framework component consists of several &quot;projects&quot; in the Eclipse CVS
   repository (see the <a href="resources.php">resources</a> page for information on repository location and
   access).</p>
 <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
   <tr>
-    <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
     <td width="98%"><strong>OSGi R4 Framework (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/framework/bundles/org.eclipse.osgi/?root=RT_Project">org.eclipse.osgi</a>)</strong><br>
     The main framework project. This includes a set of adaptors and enough
       function to make a standalone OSGi framework. When built this project produces
     org.eclispe.osgi.jar.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
     <td><b>Java Launcher (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/framework/bundles/org.eclipse.equinox.launcher/?root=RT_Project">org.eclipse.equinox.launcher</a>)</b><br>
       This helps setup the framework classloader and launches the Framework
       etc. <font color="#FF0000">Note: this code used to be included in the startup.jar and has be moved from its old location in the 
@@ -55,7 +35,7 @@
       See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113069">bug 113069</a> for more details.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
     <td><b>Native Launcher (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/framework/bundles/org.eclipse.equinox.executable/?root=RT_Project">org.eclipse.equinox.executable</a>)</b><br>
       The launcher is the native executable that finds and runs the java launcher org.eclipse.equinox.launcher and thus
       the framework. It is also responsible for putting up the splash screen
@@ -73,7 +53,7 @@
 <p>If you are working without Eclipse (gads! :-) then use your favorite CVS client
   and check out the relevant projects.</p>
 
-		  <p class=bar>Committers</p>
+		  <h3>Committers</h3>
 			<p>The following people are committers on the Equinox Framework component:</p>
 			<ul>
 				<li>BJ Hargrave, IBM Lotus</li>
@@ -83,19 +63,8 @@
 				<li>Pascal Rapicault, IBM Rational</li>
 				<li>Tom Watson, IBM Lotus (Project co-lead)</li>
 			</ul>
-<p>&nbsp;</p>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/framework/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/framework/planning/index.php b/framework/planning/index.php
index 40b40eb..632c681 100644
--- a/framework/planning/index.php
+++ b/framework/planning/index.php
@@ -1,68 +1,37 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Framework - Planning";
 	$pageKeywords	= "equinox, osgi, framework, runtime, planning";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-
 	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+		<h2>$pageTitle</h2>
 
 <table BORDER=0 CELLPADDING=2 WIDTH="100%" >
   <tr>
-    <td WIDTH="2%" ALIGN=RIGHT VALIGN=TOP><img SRC=../../images/Adarrow.gif BORDER=0 height=16 width=16></td>
+    <td WIDTH="2%" ALIGN=RIGHT VALIGN=TOP><img src="/equinox/images/arrow.png"/></td>
 
     <td><b>3.2 Release</b>
         <ul>
           <li><a href="3.2/plan.php">General 3.2 Equinox Framework Plan</a></li>
-          <li>Check out the <a href="../../documents">documents</a> page for links
+          <li>Check out the <a href="/equinox/documents">documents</a> page for links
             to some of the major items that we are working on.</li>
         </ul>
-        <p>&nbsp;</p>
     </td>
   </tr>
 
   <tr>
-    <td WIDTH="2%" ALIGN=RIGHT VALIGN=TOP><img SRC=../../images/Adarrow.gif BORDER=0 height=16 width=16></td>
+    <td WIDTH="2%" ALIGN=RIGHT VALIGN=TOP><img src="/equinox/images/arrow.png"/></td>
     <td><b>3.3 Release</b>
         <ul>
           <li>We've moved the plan to the <a href="http://wiki.eclipse.org/index.php/Equinox_Planning">wiki</a>. Check it out!</li>
         </ul>
-        <p>&nbsp;</p>
     </td>
   </tr>
 </table>
-<p>&nbsp;</p>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/framework/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/global-links.html b/global-links.html
deleted file mode 100644
index 8682a34..0000000
--- a/global-links.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<div id="rightcolumn">
-	<div class="sideitem">
-		<h6>Buy The Book</h6>
-		<p><a href="http://equinoxosgi.org">
-			<img 
-				src="http://eclipse.org/equinox/images/osgi-and-equinox-cover.png"
-				style="position: relative; left: 33px; top: 2pt;"/></a>
-		</p>
-
-		<h6>Equinox links</h6>
-		<ul>
-			<li><a href="/equinox">home</a></li>
-			<li><a href="/equinox/framework">framework</a></li>
-			<li><a href="/equinox/bundles">bundles</a></li>
-			<li><a href="/equinox/incubator">incubator</a></li>
-			<li><a href="/equinox/server">server</a></li>
-			<li><a href="/equinox/p2">p2</a></li>
-			<li><a href="/equinox/security">security</a></li>
-			<li><a href="http://wiki.eclipse.org/Equinox">wiki</a></li>
-			<li><a href="/equinox/documents">documents</a></li>
-			<li><a href="http://download.eclipse.org/equinox/">downloads</a></li>
-			<li><a href="/equinox/resources.php">resources</a></li>
-			<li><a href="http://wiki.eclipse.org/Equinox/Plan">planning</a></li>
-			<li><a href="/equinox/faq.php">faq</a></li>
-		</ul>
-	</div>
-	
-	<div style="position: relative; margin-bottom: 10px;">
-		<a href="http://www.eclipse.org/eclipsert/"><img alt="EclipseRT"
-			src="/equinox/images/EclipseRT.png"
-			style="position: relative; left: 55px; top: 0pt;"/></a>
-	</div>
-	
-</div>
diff --git a/incubator/component-links.html b/incubator/component-links.html
deleted file mode 100644
index a5dfdb8..0000000
--- a/incubator/component-links.html
+++ /dev/null
@@ -1,16 +0,0 @@
-	<div id="rightcolumn">
-		<div class="sideitem">
-		    <h6>Incubator links</h6>
-		    <ul>
-              <li><a href="http://wiki.eclipse.org/Equinox_p2_Getting_Started">provisioning quickstart</a></li>
-              <li><a href="/equinox/incubator/resources.php">resources</a></li>
-              <li><a href="/equinox/incubator/downloads.php">downloads</a></li>
-	      </ul>
-		</div>
- <div class="sideitem">
-   <h6>Incubation</h6>
-   <div align="center"><a href="/projects/what-is-incubation.php"><img 
-        align="center" src="/images/egg-incubation.png" 
-        border="0" alt="Incubation" /></a></div>
- </div>
-	</div>
diff --git a/incubator/component-links.php b/incubator/component-links.php
new file mode 100755
index 0000000..d1d9697
--- /dev/null
+++ b/incubator/component-links.php
@@ -0,0 +1,5 @@
+<?php
+	$Nav->addNavSeparator("Incubator Links", "");
+	$Nav->addCustomNav("Resources", "/equinox/incubator/resources.php", "_self", 1);
+	$Nav->addCustomNav("Downloads", "/equinox/incubator/downloads.php", "_self", 1);
+?>
diff --git a/incubator/downloads.php b/incubator/downloads.php
index 889c57a..e22eac8 100644
--- a/incubator/downloads.php
+++ b/incubator/downloads.php
@@ -1,32 +1,13 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Incubator Downloads";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator download";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-
-	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
-
-			<p class=bar>Downloads</p>
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
+	
 <p>The Equinox incubator component has a number of workareas.  Some operate with relative independence of the 
 work going on in the main Equinox code base (e.g., they are developing new, add-on function) while others
 are working on incremental improvements to existing Equinox code and functionality.  Because of this and the attendant 
@@ -41,29 +22,20 @@
 	          <td width="82%"><b>Description</b></td>
 	        </tr>
 	        <tr>
-	          <td width="20%" valign="top"><a href="http://download.eclipse.org/eclipse/equinox/">Equinox</a></td>
+	          <td width="20%" valign="top"><a href="http://download.eclipse.org/equinox/">Equinox</a></td>
 	          <td width="82%">Equinox main downloads page with some content that is near graduation</td>
 	        </tr>
 	        <tr>
-	          <td width="20%" valign="top"><a href="http://www.eclipse.org/equinox/incubator/monitoring/index.php">Monitoring</a></td>
+	          <td width="20%" valign="top"><a href="http://eclipse.org/equinox/incubator/monitoring/index.php">Monitoring</a></td>
 	          <td width="82%">The monitoring workarea has several pre-built pieces for trial</td>
 	        </tr>
 	        <tr>
-	          <td width="20%" valign="top"><a href="http://www.eclipse.org/equinox/incubator/aspects/equinox-aspects-downloads.php">Aspects</a></td>
+	          <td width="20%" valign="top"><a href="http://eclipse.org/equinox/incubator/aspects/equinox-aspects-downloads.php">Aspects</a></td>
 	          <td width="82%">Find the latest releases and demos</td>
 	        </tr>
 	      </table>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/incubator/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/incubator/howto.php b/incubator/howto.php
index f288348..6cf6460 100644
--- a/incubator/howto.php
+++ b/incubator/howto.php
@@ -1,15 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Equinox OSGi incubator</title>
-<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
-<link rel="stylesheet" href="../equinox.css" type="text/css">
-</head>
-<body>
-<?php include("nav-include.html") ?>
-<p class=bar>How to Work in an Incubator</p>
-
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle = "Equinox OSGi incubator";
+	$pageKeywords = "equinox, osgi, framework, runtime, resources";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
+	
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
 <p>A work in progress...</p>
 <p>- the current repo structure gives incubator committers access to the &quot;equinox-incubator&quot; folder
   in the dev.eclipse.org/cvsroot/eclipse repository. We'll call that the &quot;incubator
@@ -38,7 +35,9 @@
   should document what projects are relevant and what branch it is using. See
   the aspects work area for an example of what I mean (http://eclipse.org/equinox/incubator/aspects)<br>
 </p>
-<p class=bar>Populating the Repo</p>
-<p>&nbsp;</p>
-</body>
-</html>
+
+</div>
+
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
+?>
diff --git a/incubator/index.php b/incubator/index.php
index bd9e9b0..7bda82f 100644
--- a/incubator/index.php
+++ b/incubator/index.php
@@ -1,32 +1,14 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Incubator";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 
 	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+		<h2>$pageTitle</h2>
 
-			<p class=bar>Mission Statement</p>
+			<h3Mission Statement</h3>
 <p>
 The goal of the Equinox Incubator is to experiment with techniques for 
       broadening the range of Eclipse platform runtime configurations. For example, 
@@ -40,37 +22,36 @@
         develop approaches which are practical and applicable to the main Equinox
         code base. </p>
 
-			<p class=bar>Work Areas</p>
+			<h3>Work Areas</3>
 <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
 	<tr>
-      <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
       <td width="98%"><a href="aspects/index.php" target="_top"><b>Aspects</b></a><br>
     Issues around Aspect-oriented programming, load-time weaving and modularity.</td>
   </tr>
   <tr>
-      <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
       <td width="98%"><a href="monitoring/index.php" target="_top"><b>Resource Monitoring</b></a><br>
 	A cool, lightweight, infrastructure for monitoring running OSGi based systems.</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
       <td><a href="security" target="_top"><b>Security</b></a><br>
     Seeking to enable and integrate Java security mechanisms with Eclipse. See the <a href="http://wiki.eclipse.org/Category:Security" target="_top">wiki</a> for additional info.</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
       <td><a href="server" target="_top"><b>Server Side OSGi</b></a> <br>
     This incubator project is targeted at eliminating barriers to using and integrating OSGi (and Equinox more specifically) on
   the server.  Note that some of this work has graduated.  See the <a href="http://eclipse.org/equinox/server">server-side</a> website.</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
       <td><a href="provisioning" target="_top"><b>p2</b></a> <br>
     This is the incubator project for the Equinox p2 component.</td>
   </tr>
-  </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
       <td><a href="osgi-next" target="_top"><b>OSGi Next</b></a> <br>
     This incubator project is targeted at implementing prototypes of the specifications developed by the 
     <a href="http://www.osgi.org">OSGi Alliance</a> while the specification is being developed.</td>
@@ -80,38 +61,7 @@
 <p>For an understanding of how work is carried out in the incubators, check out
   the <a href="howto.php">How to Incubate</a> guide.</p>
 
-		  <p class=bar>What's New</p>
-		    <p><b>December 2009</b> - <img src="http://www.eclipse.org/images/new.gif" width="31" height="14">
-		    	Service Activator Toolkit (SAT), and Device Kit from the retired <a href="http://www.eclipse.org/ohf/">Open Healthcare Framework</a> project have
-		    	<a href="http://www.eclipse.org/project-slides/SODA_Move_OHF_to_Equinox_Docuware.pdf">moved</a> 
-		    	into the Equinox incubator to create the incubator <a href="http://www.eclipse.org/ohf/components/soda/">SODA</a>
-		    	component.</p>
-		    <p><b>Mar 10, 2008</b> - 
-		       The <a href="http://www.eclipse.org/equinox/incubator/aspects/index.php">Equinox Aspects </a> team in the 
-		       <a href="http://www.eclipse.org/equinox/incubator">Equinox Incubator</a> has released version 1.1.0 of the Equinox
-		       Aspects bundles. The release is compatible with Eclipse 3.3 and 3.4, the latest AJDT versions, adds
-		       caching of woven bundles for non-IBM VMs, fixes a number of bugs and improves stability.</p>
-		    <p><b>Aug 10, 2007</b> - 
-		       The <a href="http://www.eclipse.org/equinox/incubator/provisioning/">Provisioning workarea</a> team in the 
-		       <a href="http://www.eclipse.org/equinox/incubator">Equinox Incubator</a> has released an M1a of the new provisioning
-		       support.  For more information see <a href="http://wiki.eclipse.org/Equinox_Provisioning_M1">the wiki</a>.</p>
-		    <p><b>Aug 8, 2007</b> - 
-		       The <a href="http://www.eclipse.org/equinox/incubator/security/">Security workarea</a> in the 
-		       <a href="http://www.eclipse.org/equinox/incubator">Equinox Incubator</a> has come alive with various contributions from Lotus
-		       around JAAS, JCA and Keystores.  Matthew Flaherty and Eric Li from Lotus have joined the incubator as committers working in 
-		       the security area.</p>
-		    <p><b>July 2007</b> - 
-		       The team at <a href="http://prosyst.com">Prosyst</a> has contributed implementations of 4 standard OSGi services to the 
-		       <a href="http://www.eclipse.org/equinox/incubator">Equinox Incubator</a>. And Pavlin Dobrev and Teodor Todorov
-		       from Prosyst have joined the incubator as committers.</p>
-<p><b>June 5, 2007</b> - <IMG src="http://www.eclipse.org/images/new.gif"
-	width="31" height="14"> Matt Flaherty and Eric W Li from the Lotus division of IBM have joined as committers. They will be working
-	on enabling security functionality for the Eclipse platform. More info in the <a href="http://wiki.eclipse.org/Category:Security">security</a>
-	category of the wiki.
-</p>
-			<p>&nbsp;</p>
-
-			<p class=bar>Committers</p>
+			<h3>Committers</h3>
       <p>The following people are committers on the Equinox Incubator:</p>
       <ul>
         <li>John Arthorne, IBM Rational</li>
@@ -136,22 +86,12 @@
         <li>Heiko Seeberger, WeigleWilczek</li>
       </ul>
 
-		<p class=bar>Old Work Areas</p>
+		<h3>Old Work Areas</h3>
 		<p>See the <a href="archive">Equinox Incubator Archive</a> for details of previous
   		work areas.</p>
 
-<p>&nbsp;</p>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/incubator/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/incubator/resources.php b/incubator/resources.php
index 272fec2..9b5d7e8 100644
--- a/incubator/resources.php
+++ b/incubator/resources.php
@@ -1,50 +1,32 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Incubator - Resources";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-
-	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
-
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
+	
 <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
 	<tr>
-      <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"/></td>
       <td width="98%"><a href="http://eclipse.org/equinox/incubator/downloads.php" target="_top"><b>Downloads</b></a><br>
     Get involved early by downloading pre-built versions of the incubation work before it graduates and is released.</td>
   </tr>
 	<tr>
-      <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"/></td>
       <td width="98%"><a href="news://news.eclipse.org/eclipse.technology.equinox" target="_top"><b>Newsgroup</b></a><br>
     Talk to the people using any part of Equinox</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"/></td>
       <td><a href="http://dev.eclipse.org/mailman/listinfo/equinox-dev" target="_top"><b>Mailing
             list </b></a><br>
     Talk to the people working on any part of Equinox</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"/></td>
       <td><a href=http://dev.eclipse.org/bugs/buglist.cgi?product=equinox&cmdtype=doit(%22der=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime%22 target="_top"><b>Bugs/Issues</b></a><br>
     Discover the current bugs and issues in the Equinox Incubator. Note
       that a large amount of the activity goes on in Bugzilla. Configure your
@@ -52,17 +34,17 @@
       user to monitor  bug activity.</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"/></td>
       <td><a href=archive target="_top"><b>Archives</b></a><br>
     Past content from the Equinox Incubator web site</td>
   </tr>
 	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
-      <td>        <p><a href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.equinox" target="_top"><b>CVS</b></a><br>
+      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png"/></td>
+      <td><a href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.equinox" target="_top"><b>CVS</b></a><br>
       The Equinox Incubator code repository is part of the normal Eclipse project
         repository and is available via <a href="http://dev.eclipse.org/viewcvs/index.cgi/equinox-incubator/">web
         access</a> or direct CVS access. For direct access, use anonymous login
-        to the CVS repo</p>
+        to the CVS repo
         <blockquote>
           <p>:pserver:anonymous@dev.eclipse.org/cvsroot/eclipse</p>
         </blockquote>
@@ -77,19 +59,9 @@
       </td>
   </tr>
 </table>
-<p>&nbsp;</p>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/incubator/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
+	
\ No newline at end of file
diff --git a/index.php b/index.php
index 5b20629..3627e0c 100644
--- a/index.php
+++ b/index.php
@@ -1,89 +1,94 @@
-<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App=new App(); $Nav=new Nav(); $Menu=new Menu();	include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
 
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
-	# Begin: page-specific settings.  Change these. 
-	$pageTitle 		= "Equinox";
-	$pageKeywords	= "equinox, osgi, framework, runtime";
-	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
+	$pageTitle="Equinox";
+	$pageKeywords="equinox, osgi, framework, runtime";
+	$pageAuthor="Equinox Committers";
 
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
+	$Nav = null; // delete left side navigation
+	$App->AddExtraHtmlHeader( '<link rel="stylesheet" type="text/css" href="/equinox/rap-big-header.css"/>' );
 
-	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+$html=<<<EOHTML
+<div id="big-header">
+  <div id="rap-logo"></div>
+  <div id="rap-big-buttons">
+    <h3>Primary Links</h3>
+    <ul>
+      <li>
+        <a id="rap-button-download" href="http://download.eclipse.org/equinox">
+          <div class="rap-button-icon"></div>
+          <h4>Download</h4>
+          <p>Distributions, Repositories,<br/>Target Components</p>
+        </a>
+      </li>
+      <li>
+        <a id="rap-button-documentation" href="/eclipsert/gettingstarted.php">
+          <div class="rap-button-icon"></div>
+          <h4>Documentation</h4>
+          <p>Tutorials, Examples,<br/>Articles, Reference Docs</p>
+        </a>
+      </li>
+      <li>
+        <a id="rap-button-support" href="/equinox/support/">
+          <div class="rap-button-icon"></div>
+          <h4>Support</h4>
+          <p>FAQ, Newsgroup,<br/>Bug Tracker</p>
+        </a>
+      </li>
+      <li>
+        <a id="rap-button-demos" href="/eclipsert/case_studies/case_studies.php">
+          <div class="rap-button-icon"></div>
+          <h4>Case Studies</h4>
+          <p>Adopter stories and experiences<br/></p>
+        </a>
+      </li>
+    </ul>
+  </div>
+</div>
 
-			<p class=bar>Mission Statement</p>
-				<p>From a code point of view, Equinox is an implementation of the <a href="http://osgi.org/osgi_technology/download_specs.asp?section=2#Release4">OSGi
-					R4 core framework specification</a>, a set of bundles that implement
-					various optional OSGi services and other infrastructure for running OSGi-based
-					systems.
-				</p><p>More generally, the goal of the Equinox project is to be a first class OSGi
-					community and foster the vision of Eclipse as a landscape of bundles. As
-					part of this, it is responsible for developing and delivering the OSGi framework
-					implementation used for all of Eclipse. In addition. the project is open to:
-				</p>
-				<ul>
-					<li>Implementation of all aspects of the OSGi specification (including the EEG, MEG and VEG work) </li>
-					<li> Investigation and research related to future versions of OSGi specifications and related runtime issues </li>
-					<li>Development of non-standard infrastructure deemed to be essential
-						to the running and management of OSGi-based systems </li>
-					<li>Implementation of key framework services and extensions needed for running Eclipse 
-						(e.g., the Eclipse Adaptor, Extension registry) and deemed generally useful to people using OSGi.</li>
-				</ul>
-				<p>As part of the RT project, the Equinox OSGi code is
-					managed by the RT PMC.  There is a close binding however to the Eclipse project and its PMC.
-					Equinox, as the base for all of Eclipse, ships with all the major releases. 
-					The various other bundles developed here may ship independently
-					and on different schedules. 
-				</p>
-
-		  <p class=bar>Getting Started and Getting Involved</p>
-			<p>The easiest way to get involved in Equinox is to try it out. See the <a href="documents/quickstart.php">Quick
-				Start Guide</a> for how to get up and running with the standalone
-				Equinox OSGi framework and  the <a href="http://download.eclipse.org/equinox">downloads</a> page
-				for more information on acquiring various Equinox OSGi bundles.</p>
-			<p>If you want to find out more, ask questions, report bugs, get (or contribute
-				:-) code, check out the <a href="resources.php">community
-				resources</a> and look into the work going on in the <a href="framework">framework</a>, 
-				<a href="bundles">bundles</a> or <a href="incubator">incubator</a> components
-				of Equinox.</p>
-
-		  <p class=bar>What's New</p>
-		    <p><b>Oct 02</b> - <img src="http://www.eclipse.org/images/new.gif" width="31" height="14">
-		       The Equinox project has moved to the RT project.  Repository and bug locations have changed.
-		       See <a href="http://wiki.eclipse.org/Equinox_Eclipse_to_RT_Migration">Equinox RT Migration</a>
-		       for more details.</p>
-		    <p><b>Mar 10</b> - <img src="http://www.eclipse.org/images/new.gif" width="31" height="14">
-		       The <a href="http://www.eclipse.org/equinox/incubator/aspects/index.php">Equinox Aspects </a> team in the 
-		       <a href="http://www.eclipse.org/equinox/incubator">Equinox Incubator</a> has released version 1.1.0 of the Equinox
-		       Aspects bundles. The release is compatible with Eclipse 3.3 and 3.4, the latest AJDT versions, adds
-		       caching of woven bundles for non-IBM VMs, fixes a number of bugs and improves stability.</p>
-			<p>&nbsp;</p>
+<div id="midcolumn">
+	<div class="homeitem">
+		<h3>Mission Statement</h3>
+		<p>From a code point of view, Equinox is an implementation of the <a href="http://osgi.org/osgi_technology/download_specs.asp?section=2#Release4">OSGi
+			R4 core framework specification</a>, a set of bundles that implement
+			various optional OSGi services and other infrastructure for running OSGi-based
+			systems.
+		</p><p>More generally, the goal of the Equinox project is to be a first class OSGi
+			community and foster the vision of Eclipse as a landscape of bundles. As
+			part of this, it is responsible for developing and delivering the OSGi framework
+			implementation used for all of Eclipse. In addition. the project is open to:
+		</p>
+		<ul>
+			<li>Implementation of all aspects of the OSGi specification (including the EEG, MEG and VEG work) </li>
+			<li> Investigation and research related to future versions of OSGi specifications and related runtime issues </li>
+			<li>Development of non-standard infrastructure deemed to be essential
+				to the running and management of OSGi-based systems </li>
+			<li>Implementation of key framework services and extensions needed for running Eclipse 
+				(e.g., the Eclipse Adaptor, Extension registry) and deemed generally useful to people using OSGi.</li>
+		</ul>
+		<p>As part of the RT project, the Equinox OSGi code is
+			managed by the RT PMC.  There is a close binding however to the Eclipse project and its PMC.
+			Equinox, as the base for all of Eclipse, ships with all the major releases. 
+			The various other bundles developed here may ship independently
+			and on different schedules. 
+		</p>
 	</div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
+	<div class="homeitem">
+		<h3>Getting Started and Getting Involved</h3>
+		<p>The easiest way to get involved in Equinox is to try it out. See the <a href="documents/quickstart.php">Quick
+			Start Guide</a> for how to get up and running with the standalone
+			Equinox OSGi framework and  the <a href="http://download.eclipse.org/equinox">downloads</a> page
+			for more information on acquiring various Equinox OSGi bundles.</p>
+		<p>If you want to find out more, ask questions, report bugs, get (or contribute
+			:-) code, check out the <a href="resources.php">community
+			resources</a> and look into the work going on in the <a href="framework">framework</a>, 
+			<a href="bundles">bundles</a> or <a href="incubator">incubator</a> components
+			of Equinox.</p>
+	</div>
+</div>
 
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
 
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/p2/index.php b/p2/index.php
index 10ba8ff..decfaf9 100644
--- a/p2/index.php
+++ b/p2/index.php
@@ -1,31 +1,13 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox p2";
 	$pageKeywords	= "equinox, osgi, framework, runtime, p2, provisioning";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
-
-<p class=bar>Mission Statement</p>
+	<h2>$pageTitle</h2>
+	
 <p>
 The p2 project is a sub-project of Equinox that focuses on provisioning technology for OSGi-based
 applications. Although p2 has specific support for installing Eclipse and Equinox-based applications,
@@ -42,7 +24,7 @@
 <li> <a href="http://wiki.eclipse.org/Category:Equinox_p2">A whole host of articles on provisioning</a> in general and related to specifically to the Equinox work</li>
 </ul>
 
-<p class=bar>Working with  p2</p>
+<h3>Working with  p2</h3>
 <p>The p2 team uses the main <a href="../resources.php">Equinox resources</a> with
   the following refinements.</p>
 <table width="100%" border="0">
@@ -51,7 +33,7 @@
     <td colspan="2">Bugs use the p2 component, and use a variety of summary prefixes for various aspects of p2.
   </tr>
   <tr>
-    <td ><strong>CVS</strong></td>
+    <td><strong>CVS</strong></td>
     <td colspan="2">See the projects in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/p2/?root=RT_Project">p2</a>
      folder of the normal Equinox CVS repository.
             <blockquote>
@@ -62,7 +44,7 @@
   </tr>
 </table>
 
-<p class=bar>Committers</p>
+<h3>Committers</h3>
 <ul>
 <li>Pascal Rapicault - p2 lead (Sonatype)</li>
 <li>Andrew Niefer (IBM)</li>
@@ -77,18 +59,8 @@
 <li>Susan McCourt (IBM)</li>
 <li>Thomas Hallgren (Cloudsmith)</li>
 </ul>
-<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/planning/freeze_plan_3.6.php b/planning/freeze_plan_3.6.php
index 9f69e0b..2b92870 100644
--- a/planning/freeze_plan_3.6.php
+++ b/planning/freeze_plan_3.6.php
@@ -1,39 +1,12 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	# index.php
-	#
-	# Author: 		
-	# Date:			2010-04-30
-	#
-	# Description: Equinox project Helios release freeze plan
-	#
-	#
-	#****************************************************************************
-	
-	#
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox 3.6.0 endgame plan";
 	$pageKeywords	= "equinox, 3.6.0, milestone, schedule, endgame, helios";
-	$pageAuthor		= "";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
 		<div class="homeitem3col">
 			<h3>Status</h3>
 			<p><b>Equinox follows the same schedule as the Eclipse project.  Check the Eclipse 
@@ -52,11 +25,6 @@
       	</div>
     </div>
 
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
-
diff --git a/planning/index.php b/planning/index.php
index 4ed6e2a..ffa84b5 100644
--- a/planning/index.php
+++ b/planning/index.php
@@ -1,30 +1,12 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Planning";
 	$pageKeywords	= "equinox, osgi, framework, runtime, bundles, planning";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
-		<div class="homeitem3col">
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
 			<h3>Releases currently under development</h3>
 			<ul>
 	      <li><a href="http://www.eclipse.org/projects/project-plan.php?projectid=rt.equinox">Equinox Helios plan</a><br>
@@ -32,8 +14,7 @@
 	      <li><a href="freeze_plan_3.6.php"> Equinox Project Helios Endgame Plan</a><br>
 	    		Information about how we plan to wrap up the Helios release (version 3.6.0).</li> 
 	    </ul>
-      	</div>
-		<div class="homeitem3col">
+      	
 			<h3>Historical information about past releases</h3>			
 		<ul>
 	      <li><a href="equinox_galileo_plan.xml"> Equinox Project Galileo Plan</a><br>
@@ -45,13 +26,8 @@
 	      <li><a href="http://eclipse.org/eclipse/development/"> Eclipse Project Development</a><br>
 	    		Previous releases of Equinox where included in the Eclipse Project plans</li>     
 		</ul>
-		</div>
 	</div>
 
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/plugins.html b/plugins.html
deleted file mode 100644
index e881fbc..0000000
--- a/plugins.html
+++ /dev/null
@@ -1,1613 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<title>Plug-in overview</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
-<link rel="stylesheet" href="equinox.css" type="text/css">
-</head>
-
-<body>
-  <h1>Plug-in Characteristics for Eclipse 3.2
-  </h1>
-<dl>
-  <dt><strong>CEE and 3.2 EE</strong></dt>
-  <dd>Execution Environments - indicate the minimum Java class library
-    requirements of this plug-in today (CEE) and when Eclipse 3.2 ships (3.2
-    EE).<br>
-    <table width="90%" border="0">
-      <tr>
-        <td><div align="center"><strong>M1.0</strong></div>
-        </td>
-        <td>OSGi Minimum Execution Environment 1.0- This is a subset of the J2ME
-          Foundation class libraries defined by OSGi to be the base for framework
-          implementations. See the OSGi specication for more details.</td>
-      </tr>
-      <tr>
-        <td width="9%"><div align="center"><strong>M1.1</strong></div></td>
-        <td width="91%">OSGi Minimum Execution Environment 1.1 - This is a subset
-          of the J2ME Foundation class libraries defined by OSGi to be the base
-        for framework implementations. See the OSGi specication for more details.</td>
-      </tr>
-      <tr>
-        <td><div align="center"><strong>F1.0</strong></div>
-        </td>
-        <td>J2ME Foundation 1.0 - indicates that the plug-in can only be run
-          on Foundation 1.0 or greater. Note that with the exception of some
-          MicroEdition IO classes, Foundation 1.0 is a subset of J2SE 1.2.</td>
-      </tr>
-      <tr>
-        <td><div align="center"><strong>F1.1</strong></div></td>
-        <td>J2ME Foundation 1.1 - indicates that the plug-in can only be run
-          on Foundation 1.1 or greater. Note that with the exception of some
-        MicroEdition IO classes, Foundation 1.1 is a subset of J2SE <font color="#FF0000">??</font>.</td>
-      </tr>
-      <tr>
-        <td><div align="center"><strong>1.2</strong></div></td>
-        <td>J2SE 1.2 - indicates that the plug-in can only be run on JSE 1.2
-        or greater.</td>
-      </tr>
-      <tr>
-        <td><div align="center"><strong>1.3</strong></div></td>
-        <td>J2SE 1.3 - indicates that the plug-in can only be run on JSE 1.3
-        or greater.</td>
-      </tr>
-      <tr>
-        <td><div align="center"><strong>1.4</strong></div></td>
-        <td>J2SE 1.4 - indicates that the plug-in can only be run on JSE 1.4
-        or greater.</td>
-      </tr>
-    </table>
-  </dd>
-  <dt><strong>DA+</strong></dt>
-  <dd>Dynamic-Aware for addition - indicates that this plug-in correctly responds
-    to the addition of new plug-ins to the system without requiring a restart.</dd>
-  <dt><strong>DA-</strong></dt>
-  <dd>Dynamic-Aware for removal -  indicates that this plug-in correctly responds
-  to the removal of existing plug-ins from the system without requiring a restart.</dd>
-  <dt><strong>DE</strong></dt>
-  <dd>Dynamic-Enabled - indicates that this plug-in correctly cleans up after
-    itself when uninstalled from a running system.</dd>
-  <dt><strong>OSGi</strong></dt>
-  <dd>Use of Equinox extensions to OSGi - A value of &quot;standard&quot; indicates that
-    the plug-in does not absolutely rely on any of the Equinox extensions to
-    OSGi. &quot;equinox&quot; indicates that the plug-in only runs on the Equinox framework.
-    See the information
-    on
-    <a href="#osgi">OSGi Extensions</a>    below.</dd>
-  <dt><strong>NC</strong></dt>
-  <dd>No Compatibility - indicates that this plug-in does not require the Eclipse
-    3.1 compatibilty layer to function correctly.</dd>
-</dl>
-<p> The state of the plug-in with respect to a particular characteristic is noted
-by: </p>
-    <blockquote>
-	<table width="75%" border="0">
-	  <tr>
-		<td width="9%"><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-		<td width="91%">Will be in Eclipse 3.2</td>
-	  </tr>
-	  <tr>
-		<td><div align="center"><img src="small_x.gif" width="15" height="16"></div></td>
-		<td>Not intended for Eclipse 3.2 </td>
-	  </tr>
-	  <tr>
-		<td><div align="center">?</div></td>
-		<td>Unknown</td>
-	  </tr>
-	</table>
-    </blockquote>
-      <p>The <font color="#FFCC00">orange</font> background of a table cell indicates
-    that implementation of the associated characteristic is not complete.</p>
-<table border="1">
-  <tr>
-    <td width="290"><strong>Plug-in</strong></td>
-    <td width="60"><div align="center"><strong>CEE</strong></div></td>
-    <td width="60"><div align="center"><strong>3.2 EE</strong></div></td>
-    <td width="60"><div align="center"><strong>DA+</strong></div></td>
-    <td width="60"><div align="center"><strong>DA-</strong></div></td>
-    <td width="60"><div align="center"><strong>DE</strong></div></td>
-    <td width="60"><div align="center"><strong>OSGi</strong></div></td>
-    <td width="60"><div align="center"><strong>NC</strong></div></td>
-  </tr>
-  <tr>
-    <td>org.apache.ant</td>
-    <td><div align="center">1.2</div>
-    </td>
-    <td><div align="center">1.2</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.apache.lucene</td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ant.core</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ant.ui</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.compare</td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td bgcolor="#FFFF00">org.eclipse.core.boot</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.commands</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.expressions</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.filebuffers</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.filesystem</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.resources</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td bgcolor="#FFCC00"><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td bgcolor="#FFFF00">org.eclipse.core.resources.compatibility </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td bgcolor="#FFCC00"><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.resources.linux</td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td bgcolor="#FFCC00"><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.resources.win32</td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td bgcolor="#FFCC00"><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.runtime</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td bgcolor="#FFFF00">org.eclipse.core.runtime.compatibility</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">n/a</div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.core.variables</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.debug.core</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.debug.ui</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.help</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.help.appserver</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.help.base</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.help.ui</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.help.webapp</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.core</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.debug</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.debug.ui</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.doc.isv</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.doc.user</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.junit</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.5</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.junit.runtime (JUnit4 impact?)</td>
-    <td><div align="center">1.4</div></td>
-    <td bgcolor="#FF0000"><div align="center">1.5</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.launching</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.source</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jdt.ui</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.5</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jface</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.jface.text</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ltk.core.refactoring</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4/1.5</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ltk.ui.refactoring</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4/1.5</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.osgi (system.bundle)</td>
-    <td><div align="center">Min 1.0</div>
-    </td>
-    <td><div align="center">Min 1.0</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.osgi.services</td>
-    <td><div align="center">Min 1.0</div></td>
-    <td><div align="center">Min 1.0</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center">standard</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.osgi.util</td>
-    <td><div align="center">Min 1.0</div></td>
-    <td><div align="center">Min 1.0</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center">standard</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.pde</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.pde.build</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.pde.core</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.pde.doc.user</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.pde.junit.runtime</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.pde.runtime</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.pde.source</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.pde.ui</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.platform</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.platform.doc.isv</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.platform.doc.user</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.platform.source</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.platform.source.*</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.rcp</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.rcp.source</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.rcp.source.*</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.sdk</td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center">n/a</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.search</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.swt</td>
-    <td bgcolor="#FFFFFF"><div align="center">Min 1.0</div></td>
-    <td bgcolor="#FFFFFF"><div align="center">Min 1.0</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.swt.*</td>
-    <td bgcolor="#FFFFFF"><div align="center">Min 1.0</div></td>
-    <td bgcolor="#FFFFFF"><div align="center">Min 1.0</div></td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.team.core</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.team.cvs.core</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.team.cvs.ssh</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.team.cvs.ssh2</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.team.cvs.ui</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.team.ui</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.text</td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.tomcat</td>
-    <td><div align="center">?</div></td>
-    <td><div align="center">?</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui </td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.browser </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.cheatsheets </td>
-    <td><div align="center">F1.0</div>
-    </td>
-    <td><div align="center">F1.0</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.console </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.editors </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.externaltools </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.forms </td>
-    <td><div align="center">F1.0</div>
-    </td>
-    <td><div align="center">F1.0</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.ide</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.intro </td>
-    <td><div align="center">F1.0</div>
-    </td>
-    <td><div align="center">F1.0</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.presentations.r21 </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.views </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.win32 </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.workbench </td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td bgcolor="#FFFF00">org.eclipse.ui.workbench.compatibility </td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.ui.workbench.texteditor </td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.update.configurator </td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div></td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.update.core </td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div></td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.update.core.linux</td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div></td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.update.core.win32 </td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div></td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.eclipse.update.scheduler </td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div></td>
-    <td bgcolor="#FFFFFF"><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div></td>
-  </tr>
-  <tr>
-    <td>org.eclipse.update.ui </td>
-    <td><div align="center">1.4</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div></td>
-  </tr>
-  <tr>
-    <td>org.junit (old)</td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">1.4</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>org.junit (JUnit4)</td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">1.5</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center">?</div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-    <td><div align="center"><img src="small_check.gif" width="15" height="16"></div>
-    </td>
-  </tr>
-  <tr>
-    <td>startup.jar</td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">F1.0</div></td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">n/a</div>
-    </td>
-    <td><div align="center">n/a</div></td>
-  </tr>
-</table>
-      <h2><a name="osgi"></a>OSGi Extensions</h2>
-      <p>Many Eclipse plug-ins operate just fine on top of standard OSGi R4 mechansims.
-    For example, the use
-          of Equinox's &quot;x-internal&quot;
-          and
-&quot;x-friends&quot; directives in a MANIFEST.MF is completely ignored in other
-frameworks and such bundles continue to operate as expected (albeit exporting
-more than
-      usual). Similarly, a plug-in that requires other Eclipse plug-ins may operate
-      in standard OSGi environments provided that its prerquisites can do so.
-So, using say org.eclipse.equinox.registry just means that that plugin must be
-      present, not that you have to run on Equinox. This is just like using any
-other
-      library.</p>
-      <p>Below is a summary of the Equinox extensions to OSGi and their impact of their
-    use on the ability of a plug-in to operate in environments other then Equinox.</p>
-      <dl>
-        <dt><strong>x-internal and x-friends</strong></dt>
-      </dl>
-      <dl>
-        <dd>This directive tells the Equinox resolver to refine the list of exports
-        based on the strictness of the current framework instance. In general,
-          plug-ins using this directive run fine in other OSGi implementations
-          as the directives
-        are ignored. The net result is that the plug-in exports more packages
-          than it otherwise would when run in &quot;strict&quot; mode on Equinox.
-          It is possible that these extra packages conflict with those exported
-          by other bundles but this
-        is expected to be extremely rare.</dd>
-      </dl>
-      <dl>
-        <dt><strong>Eclipse-PlatformFilter:</strong></dt>
-      </dl>
-      <dl>
-        <dd>This header helps Equinox filter bundles that are not appropriate for the
-        current platform (e.g., operating system, window system etc.). In effect,
-        this is a short cut that allows Equinox-based systems to have the bundles
-        for many platforms installed but only use those that are appropriate. Users
-        of other OSGi systems need to be more careful about which bundles they install
-        as this header will be ignored.</dd>
-      </dl>
-      <dl>
-        <dt><strong>Eclipse-LazyStart: (nee Eclipse-AutoStart)</strong></dt>
-      </dl>
-      <dl>
-        <dd>This header signals Equinox to lazily start the associated bundle the first
-        time one of its classes is loaded. This promotes the Eclipse vision of lazy
-        systems that strive to run/load no code before its time. Users of other OSGi
-        systems need to ensure that their bundles are started at the appropriate
-        time. In some cases there may be subtle interactions between bundles that
-        are expecting to be lazily started. These bundles may not take well to being
-        agressively started or may assume that their prerequisite bundles are started
-        beforehand. Such bundles are typically not able to run well on systems other
-        than Equinox.</dd>
-      </dl>
-</body>
-</html>
diff --git a/quickstart.html b/quickstart.html
index 873a5a7..433b4ea 100644
--- a/quickstart.html
+++ b/quickstart.html
@@ -1,8 +1,8 @@
 <html>
    <head>
-      <meta http-equiv="refresh" content="0; url=http://eclipse.org/equinox/documents/quickstart.php" />
+      <meta http-equiv="refresh" content="0; url=http://eclipse.org/equinox/documents/release-reviews/helios/index.php" />
    </head>
    <body>
-      <a href="http://eclipse.org/equinox/documents/quickstart.php">This document has moved</a>
+      <a href="http://eclipse.org/equinox/documents/release-reviews/helios/index.php">This document has moved</a>
    </body>
 </html>
\ No newline at end of file
diff --git a/resources.php b/resources.php
index 0513f97..b9bfcb6 100644
--- a/resources.php
+++ b/resources.php
@@ -1,113 +1,87 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
-	$pageTitle 		= "Equinox Resources";
-	$pageKeywords	= "equinox, osgi, framework, runtime, resources";
+	$pageTitle = "Equinox Resources";
+	$pageKeywords = "equinox, osgi, framework, runtime, resources";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
+	<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+	  <tr>
+	    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
+	    <td><a href="http://wiki.eclipse.org/Equinox" target="_top"><b>Wiki</b></a><br>
+	    The Equinox project Wiki.</td>
+	  </tr>
+		<tr>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
+	      <td><a href="news://news.eclipse.org/eclipse.technology.equinox" target="_top"><b>Newsgroup</b></a><br>
+	    Talk to the people using Equinox</td>
+	  </tr>
+		<tr>
+	      <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
+	      <td width="98%"><a href="http://dev.eclipse.org/mailman/listinfo/equinox-dev" target="_top"><b>Mailing
+	            list </b></a><br>
+	    Talk to the people working on Equinox</td>
+	  </tr>
+		<tr>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
+	      <td><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=RT&product=Equinox&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=" target="_top"><b>Bugs/Issues</b></a><br>
+	    Discover the current bugs and issues in Equinox. Note that a large amount of the activity goes on in Bugzilla. 
+	    You can <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=RT&product=Equinox&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=" target="_top">browse the bugs</a> 
+	    or configure your Bugzilla account email preferences to watch the various Equinox inbox
+	      users listed below to monitor bug activity of interest to you.
+	      <ul>
+			<li>equinox.compendium-inbox@eclipse.org</li>
+			<li>equinox.components-inbox@eclipse.org</li>
+			<li>equinox.framework-inbox@eclipse.org</li>
+			<li>equinox.incubator-inbox@eclipse.org</li>
+			<li>equinox.p2-inbox@eclipse.org</li>
+			<li>equinox.security-inbox@eclipse.org</li>
+			<li>equinox.server-side-inbox@eclipse.org</li>
+			<li>equinox.website-inbox@eclipse.org</li>
+	      </ul>
+	      <p><a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Equinox">Enter new bugs</a> by choosing the related 
+	      component and providing full details.
+	      </td>
+	  </tr>
+		<tr>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
+	      <td><a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/?root=RT_Project" target="_top"><b>CVS</b></a><br>
+	      The Equinox code is hosted in the RT project repository and
+	        is available via <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/?root=RT_Project">web
+	        access</a> or direct CVS access. For direct access, use anonymous login
+	        to the CVS repo
+	        <blockquote>
+	          <p>:pserver:anonymous@dev.eclipse.org:/cvsroot/rt</p>
+	        </blockquote>
+	        <p>The Equinox work goes on in various folders as appropriate for the
+	          work being done. See the project lists in the <a href="framework/index.php#frameworkprojects">framework</a>, <a href="bundles/index.php#bundleprojects">bundles</a> and <a href="incubator/index.php#workareas">incubator</a> components
+	          for more details.</p>
+	      </td>
+	  </tr>
+		<tr>
+	      <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" border="0"></td>
+	      <td> <a href="http://eclipse.org/equinox" target="_top"><b>Website</b></a><br>
+	      The Equinox  website itself is hosted in a CVS repository and mirrored
+	          on a conventional HTTP server every minute or so. This allows use of
+	          PHP, Flash, ... and enables versioning and diffing using Eclipse. The
+	          site is open for editing by all Equinox committers using:
+	        <blockquote>
+	          <p>:extssh:&lt;you here&gt;@dev.eclipse.org:/cvsroot/org.eclipse</p>
+	        </blockquote>
+	        <p>The Equinox website is in </p>
+	        <blockquote>
+	          <p>www/equinox</p>
+	        </blockquote>        
+	      <p>You can use Eclipse to check out the whole site and then edit and commit.
+	      Remember your changes will take a minute or so to be reflected in the real
+	        site.</p></td>
+	  </tr>
+	</table>
+	<p>&nbsp;</p>
+</div>
 
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>		
-
-	<div id="midcolumn">
-		<h1><?= $pageTitle ?></h1>
-<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
-  <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
-    <td><a href="http://wiki.eclipse.org/index.php/Equinox" target="_top"><b>Wiki</b></a><br>
-    The Equinox project Wiki.</td>
-  </tr>
-	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
-      <td><a href="news://news.eclipse.org/eclipse.technology.equinox" target="_top"><b>Newsgroup</b></a><br>
-    Talk to the people using Equinox</td>
-  </tr>
-	<tr>
-      <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
-      <td width="98%"><a href="http://dev.eclipse.org/mailman/listinfo/equinox-dev" target="_top"><b>Mailing
-            list </b></a><br>
-    Talk to the people working on Equinox</td>
-  </tr>
-	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
-      <td><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=RT&product=Equinox&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=" target="_top"><b>Bugs/Issues</b></a><br>
-    Discover the current bugs and issues in Equinox. Note
-      that a large amount of the activity goes on in Bugzilla. Configure your
-      Bugzilla account email preferences to watch the various Equinox inbox
-      users listed below to monitor bug activity interesting to you.
-      <ul>
-		<li>equinox.compendium-inbox@eclipse.org</li>
-		<li>equinox.components-inbox@eclipse.org</li>
-		<li>equinox.framework-inbox@eclipse.org</li>
-		<li>equinox.incubator-inbox@eclipse.org</li>
-		<li>equinox.p2-inbox@eclipse.org</li>
-		<li>equinox.security-inbox@eclipse.org</li>
-		<li>equinox.server-side-inbox@eclipse.org</li>
-		<li>equinox.website-inbox@eclipse.org</li>
-      </ul>
-      </td>
-  </tr>
-	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
-      <td>
-        <p><a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/?root=RT_Project" target="_top"><b>CVS</b></a><br>
-      The Equinox code is hosted in the RT project repository and
-        is available via <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/?root=RT_Project">web
-        access</a> or direct CVS access. For direct access, use anonymous login
-        to the CVS repo</p>
-        <blockquote>
-          <p>:pserver:anonymous@dev.eclipse.org:/cvsroot/rt</p>
-        </blockquote>
-        <p>The Equinox work goes on in various folders as appropriate for the
-          work being done. See the project lists in the <a href="framework/index.php#frameworkprojects">framework</a>, <a href="bundles/index.php#bundleprojects">bundles</a> and <a href="incubator/index.php#workareas">incubator</a> components
-          for more details.</p>
-      </td>
-  </tr>
-	<tr>
-      <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
-      <td>        <p><a href="http://eclipse.org/equinox" target="_top"><b>Website</b></a><br>
-      The Equinox  website itself is hosted in a CVS repository and mirrored
-          on a conventional HTTP server every minute or so. This allows use of
-          PHP, Flash, ... and enables versioning and diffing using Eclipse. The
-          site is open for editing by all Equinox committers using:</p>
-        <blockquote>
-          <p>:extssh:&lt;you here&gt;@dev.eclipse.org:/cvsroot/org.eclipse</p>
-        </blockquote>
-        <p>The Equinox website is in </p>
-        <blockquote>
-          <p>www/equinox</p>
-        </blockquote>        
-      <p>You can use Eclipse to check out the whole site and then edit and commit.
-      Remember your changes will take a minute or so to be reflected in the real
-        site.</p></td>
-  </tr>
-</table>
-<p>&nbsp;</p>
-	</div>
-
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/security/index.php b/security/index.php
index eea30b5..70af8f1 100644
--- a/security/index.php
+++ b/security/index.php
@@ -1,42 +1,23 @@
-<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	# template.php
-	#
-	# Author: 		Denis Roy
-	# Date:			2005-06-16
-	#
-	# Description: Type your page comments here - these are not sent to the browser
-	#
-	#
-	#****************************************************************************
-	
-	#
+<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
 	# Begin: page-specific settings.  Change these. 
-	$pageTitle 		= "Equinox Security";
+	$pageTitle 		= "Equinox Security";
     $pageKeywords	= "equinox, security";
-	$pageAuthor		= "Matt Flaherty";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Paste your HTML content between the markers!	
-   ob_start();
-   ?>
-
-   <div id="midcolumn">
-      <h1><?= $pageTitle ?></h1>
-   
-	  <p class=bar>Mission Statement</p>
+<div id="midcolumn">
+	<h2>$pageTitle</h2>
       <p>To ensure the Equinox runtime (and the Eclipse product) is secure, enabling users and administrators to confidently use and
       deploy products built on it in environments where not all users and/or code sources are friendly. Providing integrated security
       functionality will allow Equinox and Eclipse-based applications to protect their data, to authenticate and authorize valid users,
       and to protect against potentially malicious code packaged and distributed as bundles.
       </p>
 	
-      <p class=bar>Goals</p>
+      <h3>Goals</h3>
       
       <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
          <tr>
-            <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+            <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
             <td width="98%"><strong>Support <u>user credential management</u>:</strong><br>
             When dealing with user's credentials - such as passwords, keys, and certificates - applications need to use some form of
             secure storage backend for sensitive materials. In the 3.4 release we have added support for 'Secure Storage', a
@@ -46,7 +27,7 @@
          </tr>
       
          <tr>
-            <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+            <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
             <td width="98%"><strong>Provide an extensible <u>user authentication framework</u>:</strong><br>
             In many environments, there are applications which require the user to login before interacting with the system, and provide
             a different user experience based on the user's login. The Eclipse RCP does not yet support login, and the goal is to provide
@@ -61,7 +42,7 @@
          </tr>
 
          <tr>
-            <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+            <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
             <td width="98%"><strong>Enable flexible mechanisms for <u>code authorization</u>:</strong><br>
             As the Eclipse platform grows as a basis for rich desktop applications, it will become more of a target for authors of malicious viruses. Java provides mechanisms for
             cryptographically signing Jar files, and ships with a powerful architecture for fine-grained code authorization. 
@@ -75,7 +56,7 @@
          </tr>
 
          <tr>
-            <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+            <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
             <td width="98%"><strong>Integrate with and <u>support security-aware projects</u>:</strong><br>
             Several Eclipse projects have already expressed interest in
             standardized solutions for security fundamentals like the ones listed above. Integrating well with projects like
@@ -85,21 +66,14 @@
          </tr>         
       </table>
       
-      <p class=bar>Community</p>
+      <h3>Community</h3>
       <p>We are actively looking for contributors (with or without technology) with interest in this area who are
       willing to contribute time and resources. 
       </p>
       
    </div>
    
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-?>
-
-<?php
-   $html = ob_get_contents();
-   ob_end_clean();
-
-   # Generate the web page
-   $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
+   
\ No newline at end of file
diff --git a/server/component-links.html b/server/component-links.html
deleted file mode 100644
index 853deec..0000000
--- a/server/component-links.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<div id="rightcolumn">
-	<div class="sideitem">
-		<h6>Server links</h6>
-		<ul>
-			<li><a href="/equinox/server/http_quickstart.php">quickstart</a></li>
-			<li><a href="/equinox/documents/index.php#server">documents</a></li>
-		</ul>
-	</div>
-</div>
-
diff --git a/server/component-links.php b/server/component-links.php
new file mode 100755
index 0000000..f5627d2
--- /dev/null
+++ b/server/component-links.php
@@ -0,0 +1,5 @@
+<?php
+	$Nav->addNavSeparator("Server Links", "");
+	$Nav->addCustomNav("Quick Start", "/equinox/server/http_quickstart.php", "_self", 1);
+	$Nav->addCustomNav("Documents", "/equinox/documents/index.php#server", "_self", 1);
+?>
diff --git a/server/eclipse_serverside_integration.php b/server/eclipse_serverside_integration.php
index 4b37d08..b2aa61c 100644
--- a/server/eclipse_serverside_integration.php
+++ b/server/eclipse_serverside_integration.php
@@ -1,31 +1,13 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Incubator - Server-Side";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator, server";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
-
-<p class=bar>Improving Eclipse / Server-Side Integration - Overview</p>
+	<h2>$pageTitle</h2>
+	
 <p>The Eclipse runtime was originally designed to
 support a desktop IDE but has proven to be useful in  other contexts. One of the key goals
 of this work is to look at ways to improve server-side integration of Eclipse.</p>
@@ -40,39 +22,30 @@
 sets of changes be considered the equinox-incubator "server" branch will be used however it
 is not currently active.</i></p>
 
-<p class=bar>Past Activity (3.2)</p>
+<h3>Past Activity (3.2)</h3>
 <p><strong>OSGi URL Handler Service</strong>
 <ul>
 <li><i>singleton factory operations - RESOLVED - see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107909">bug 107909</a></i></li>
 <li><i>multiplexed factories - RESOLVED - see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121472">bug 121472</a></i></li>
 </ul> 
 </p>
-<hr />
 <p><strong>Framework Configuration</strong>
 <ul>
 <li><i>use of system properties - RESOLVED - see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=105851">bug 105851</a></i></li>
 </ul>
 </p>
 
-<p class=bar>Future Activity (3.3+)</p>
+<h3>Future Activity (3.3+)</h3>
 <p><strong>Conditional Permission Admin</strong>
 <ul>
 <li><i>requires control of security manager - not currently logged</i></li>
 </li>
 </ul>
 </p>
-<p>&nbsp;</p>
+
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/incubator/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
 
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
\ No newline at end of file
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
+?>
diff --git a/server/http_in_container.php b/server/http_in_container.php
index d2a5446..8f4c04e 100644
--- a/server/http_in_container.php
+++ b/server/http_in_container.php
@@ -1,35 +1,17 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox in a Servlet Container";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator, server, servlet, http";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
-
-<p class=bar>Overview</p>
+	<h2>$pageTitle</h2>
+	
 <p>One of the original objectives for the server-side work was to look at what's involved in launching
 and interacting with various server-side containers. Currently, there is actively maintained work in support of embedding in a servlet container.</p>
 
-<p class=bar>Bundles</p>
+<h3>Bundles</h3>
 <p>There are four Eclipse projects involved:
 <ul>
 <li><b>org.eclipse.equinox.servletbridge</b><br />
@@ -59,7 +41,7 @@
 </ul>
 </i></p> 
 
-<p class=bar>Quickstart</p>
+<h3>Quickstart</h3>
 <p>This set of instructions should get you up and running in a just a few minutes.
 <ol>
 <li>Install a servlet container (e.g. <a href="http://tomcat.apache.org/">Tomcat</a>, <a href="http://jetty.mortbay.org/jetty/">Jetty</a>, or whatever is handy)</li>
@@ -75,7 +57,7 @@
 </p>
 You might also see if you can install and start the http-console bundle described <b><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122911">here</a></b>.
 
-<p class=bar>Configuration</p>
+<h3>Configuration</h3>
 <p>The servletbridge web.xml provides a couple of initial parameters:
 
 <ul>
@@ -99,7 +81,7 @@
 </ul>
 </p>
 
-<p class=bar>Extending</p>
+<h3>Extending</h3>
 <p>Currently there are two approaches for extending the basic installation:
 <ol>
 <li>Write a bundle that uses the OSGi HttpService registered by org.eclipse.eqinox.servletbridge.http</li>
@@ -109,7 +91,7 @@
 simply a mapping of the OSGi HttpService.
 </p>
 
-<p class=bar>Build Information</p>
+<h3>Build Information</h3>
 <p><i>The current eclipse build tools and wizards do not directly support building this style of application so for the time being the
 build is performed with a series of Ant scripts and resource templates</i> 
 </p>
@@ -164,20 +146,8 @@
 <p>As with RCP applications there are a wide variety of possible configurations. What's given
 in org.eclipse.equinox.servletbridge.feature is just one possibility.</p>
 
-<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/server/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
-
diff --git a/server/http_in_equinox.php b/server/http_in_equinox.php
index 9668812..1b5b0f0 100644
--- a/server/http_in_equinox.php
+++ b/server/http_in_equinox.php
@@ -1,32 +1,14 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Embedding an HTTP server in Equinox";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator, server, servlet, http";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
+	<h2>$pageTitle</h2>
 
-<p class=bar>Overview</p>
-<p>Equinox provides two complete implementations of the OSGi Http Service suitable for embedding.
+<p>Equinox provides two complete implementations of the OSGi Http Service suitable for embedding.<p>
 <ul>
 <li><b>org.eclipse.equinox.http</b><br />
 Very small footprint suitable for resource constrained environments. <br />
@@ -36,9 +18,8 @@
 Implemented using <a href="http://jetty.mortbay.org">Jetty</a> as the underlying engine for providing Servlet API 2.4 Support.
 </li>
 </ul>
-</p>
 
-<p class=bar>Bundles</p>
+<h3>Bundles</h3>
 <p>The following bundles are involved in putting together an Http Service environment:
 <br />
 <ul>
@@ -76,11 +57,11 @@
 </ul>
 </i></p>
 
-<p class=bar>Writing the server application</p>
+<h3>Writing the server application</h3>
 <p>See the <a href="http_writing_application.php">Writing a bundle-based server application</a>
  for information on how to write a bundle based web application.</p>
 
-<p class=bar>Running the server</p>
+<h3>Running the server</h3>
 <p>To run the server and your application, carry out the following steps:
 <ul>
 	<li>Create an OSGi Framework launch configuration <b>Run &gt; Run... &gt; OSGi Framework</b></li>
@@ -90,19 +71,8 @@
 	<li>Launch your favorite web browser and access the URLs</li>
 </ul>
 </p>
-<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/server/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/server/http_quickstart.php b/server/http_quickstart.php
index 75b88e5..11e56ae 100644
--- a/server/http_quickstart.php
+++ b/server/http_quickstart.php
@@ -1,31 +1,13 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Server-side Quickstart";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator, server, servlet, http";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
+	<h2>$pageTitle</h2>
 
-	<p class=bar>Overview</p>
 	<p>Equinox can be used on the server to serve up static content and to run servlets or JSPs.  In each of these cases you 
 	need to setup an HTTP server and then configure it with the appropriate content.  There are two basic ways of running an 
 	HTTP server in Equinox;</p>
@@ -39,29 +21,17 @@
 	development and debugging.  Only when you go to production or in special circumstances will you need to embed
 	Equinox in an existing servlet container.</p>
 
-	<p class=bar>Writing the server application</p>
+	<h3>Writing the server application</h3>
 	<p>While Equinox can be setup to run servlets and JSPs in a variety of ways, the technique for writing the applications is the same.
 	Use the steps outlined in 
 	<a href="http_writing_application.php">Writing a bundle-based server application</a>
 	to create your application.</p>
 
-	<p class=bar>Running the server application</p>
+	<h3>Running the server application</h3>
 	<p>Once you have setup your server and written your application, consult the details for the appropriate server setup
 	to configure and run your server.</p>
-
-<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/server/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/server/http_writing_application.php b/server/http_writing_application.php
index 755e782..c5d42d0 100644
--- a/server/http_writing_application.php
+++ b/server/http_writing_application.php
@@ -1,37 +1,20 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Writing a bundle-based server application";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator, server, servlet, http";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
+	<h2>$pageTitle</h2>
+	
 
-	<p class=bar>Overview</p>
 	<p>While Equinox can be setup to run servlets and JSPs in a variety of ways, the technique for writing the applications is the same.
 	Use the steps here to create your application and then one of the server setups detailed in the 
 	<a href="http_quickstart.php">Server-side quick start guide</a>
 	to configure and run your server.</p>
 
-	<p class=bar>Writing the server application</p>
+	<h3>Writing the server application</h3>
 	<p>The server application takes the form of static content, servlets and JSPs.  You can use any combination of these.
 	<ul>
 		<li><b>Create a new project</b> - Next you need to create a bundle to contain the application.  Your application can be made up
@@ -79,20 +62,8 @@
 		<li><b>Place the JSPs</b> - TBD</li>
 -->
 	</ul>
-
-<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/server/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/server/index.php b/server/index.php
index a0a70fb..55326bf 100644
--- a/server/index.php
+++ b/server/index.php
@@ -1,31 +1,13 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Server-Side Equinox";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator, server";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
-
-<p class=bar>Overview</p>
+	<h2>$pageTitle</h2>
+	
 <p>Eclipse is in use on the desktop in tools and <a href="http://eclipse.org/rcp">RCP</a> applications. The <a href="http://eclipse.org/ercp">eRCP</a> and
   other projects are pushing it into mobile phones and handheld devices. Now
   there is significant interest in Equinox on the server. This project
@@ -41,7 +23,7 @@
     of third-party libraries such as Jetty and Jasper as well as various API
     packages. These bundles are all maintained as part of the <a href="http://eclipse.org/orbit">Orbit</a> project.</p>
 
-<p class=bar>Working with server-side Equinox</p>
+<h3>Working with server-side Equinox</h3>
 <p><strong><a href="http_quickstart.php">Quick Start</a></strong> - 
 See the quick start guide for getting up and running with Equinox on the server.</p>
 <p><strong><a href="http_in_container.php">Embedding Equinox in a Servlet Container</a></strong> - 
@@ -49,9 +31,7 @@
 <p><strong><a href="http_in_equinox.php">Embedding an HTTP server in Equinox</a></strong> - 
 Looking at what options there are for embedding an HttpService implementation in Equinox.</p>  
 
-
-
-<p class=bar>Server-side Bundles</p>
+<h3>Server-side Bundles</h3>
 <p>The Server-side work component consists of several bundles maintained in Eclipse
   CVS repository projects. See the <a href="../bundles/resources.php">resources</a> page
   for information on repository location and access. Note that some of the
@@ -59,31 +39,31 @@
   the name of the project matches the symbolic name of the resultant bundle.</p>
 <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td><b><a name="http" id="http"></a>HTTP service (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http/?root=RT_Project">org.eclipse.equinox.http</a>)</b> <A HREF="#legend" style="color:green;">status:green</a><br>
     An implementation of the OSGi R4 HTTP service.</td>
   </tr>
   <tr>
-    <td width="2%" align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td width="2%" align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td width="98%"><b><a name="http.registry" id="http.registry"></a>HTTP registry (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.http.registry/?root=RT_Project">org.eclipse.equinox.http.registry</a>)</b> </a><A HREF="#legend" style="color:green;">status:green</a><br>
       Support for registering servlets, resources and JSPs via the Eclipse extension
         registry rather than using the code based OSGi registration mechanisms.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td><b><a name="servletbridge" id="servletbridge"></a>Servlet Bridge (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.servletbridge/?root=RT_Project">org.eclipse.equinox.servletbridge</a>)</b> <A HREF="#legend" style="color:green;">status:green</a><br>
     Low level hook servlet installed in an existing traditional application server.
       This servlet launches an embedded Equinox and enables it to handle incoming
       HTTP requests originally sent to the underlying server.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td><b><a name="http.servlet" id="http.servlet"></a>HTTP Servlet (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.servlet/?root=RT_Project">org.eclipse.equinox.http.servlet</a>)</b> <A HREF="#legend" style="color:green;">status:green</a><br>
     Generic support for exposing another servlet facility (e.g., an underlying
       application server) as an OSGi HTTP service.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td><b><a name="http.servletbridge" id="http.servletbridge"></a>HTTP ServletBridge
         (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.http.servletbridge/?root=RT_Project">org.eclipse.equinox.http.servletbridge</a>)</b> <A HREF="#legend" style="color:green;">status:green</a><br>
     A thin layer that exposes an underlying application server (e.g., Tomcat
@@ -93,30 +73,31 @@
       bridge</a> installed.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td><b><a name="servlet" id="servlet"></a>Servlet API (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.orbit/javax.servlet/?cvsroot=Tools_Project">javax.servlet</a>)</b> <A HREF="#legend" style="color:green;"> status:green</a><br>
     A bundled version of the standard Servlet API. Multiple versions of this
       API are maintained. This bundle is maintained in <a href="http://eclipse.org/orbit">Orbit</a>.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td><b><a name="jsp" id="jsp"></a>Servlet JSP API (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.orbit/javax.servlet.jsp/?cvsroot=Tools_Project">javax.servlet.jsp</a>)</b> <A HREF="#legend" style="color:green;"> status:green</a><br>
     A bundled version of the standard Servlet JSP API. Multiple versions of this
       API are maintained. This bundle is maintained in <a href="http://eclipse.org/orbit">Orbit</a>.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td><b><a name="jetty" id="jetty"></a>Jetty (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.orbit/org.mortbay.jetty/?cvsroot=Tools_Project">org.mortbay.jetty</a>)</b> <A HREF="#legend" style="color:green;"> status:green</a><br>
     A bundled version of the embedded Jetty application server. This bundle is
       maintained in <a href="http://eclipse.org/orbit">Orbit</a>.</td>
   </tr>
   <tr>
-    <td align=RIGHT valign=TOP><img src="http://eclipse.org/images/Adarrow.gif" width="16" height="16" border="0"></td>
+    <td align=RIGHT valign=TOP><img src="/equinox/images/arrow.png" /></td>
     <td><b><a name="http.jetty" id="http.jetty"></a>HTTP Jetty (http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/?root=RT_Project">org.eclipse.equinox.http.jetty</a>)</b> <A HREF="#legend" style="color:green;"> status:green</a><br>
     A thin layer that exposes an embedded Jetty server as a compliant OSGi HTTP
       service.</td>
   </tr>
 </table>
+
 <p><A name="legend"> </A><b>Status key</b><br>
   <FONT COLOR="GREEN">green</font> - bundle is production ready. <br>
   <FONT COLOR="red">red</font> - bundle development is in progress. </p>
@@ -127,7 +108,7 @@
 <p>If you are working without Eclipse (gads! :-) then use your favorite CVS client
   and check out the relevant projects.</p>
 
-<p class=bar>Incubator - Current Activity</p>
+<h3>Incubator - Current Activity</h3>
 <p>From time to time new server side work will be incubated in the general Equinox
   incubator.</p>
 
@@ -139,20 +120,8 @@
 <i>Enabling the use of JSP Support while retaining the modularity benefits of OSGi</i>
 </li>
 </ul>
-
-<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/server/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/server/jsp_support.php b/server/jsp_support.php
index 54699db..56f444b 100644
--- a/server/jsp_support.php
+++ b/server/jsp_support.php
@@ -1,31 +1,13 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "OSGi based JSP Support";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator, server";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
-
-<p class=bar>Overview</p>
+	<h2>$pageTitle</h2>
+	
 <p>JSPs are in wide-spread use and provide a relatively natural way of generating dynamic content directly in web page centric manner. 
 For this reason and along with broad framework support JSP remains one of the most popular means of generating
 web application content with virtually all servlet containers providing support.</p>
@@ -41,7 +23,7 @@
 
 <p>For a look at the earlier work on JSP Support see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=140430">bug 140430</a>.</p>
 
-<p class=bar>Bundles</p>
+<h3>Bundles</h3>
 <ul>
 <li><b>org.eclipse.equinox.jsp.jasper (Bundle)</b><br />
 <i>Provides an OSGi friendly JSPServlet based on the use of the Jasper 2 compiler and runtime.</i>
@@ -49,7 +31,6 @@
 <li><b>org.eclipse.equinox.jsp.jasper.registry (Bundle)</b><br />
 <i>Provides a JSPFactory that allows JSP usage with the org.eclipse.equinox.http.registry.servlets extension-point.</i>
 </li>
-
 </ul>
 
 <p>These projects can be downloaded from the equinox-incubator CVS depot. <br /> 
@@ -81,7 +62,7 @@
 </ul>
 </i></p> 
 
-<p class=bar>Examples</p>
+<h3>Examples</h3>
 <p><b>Note:</b> The examples require org.eclipse.equinox.http.helper from the equinox-incubator CVS depot</p>
 <ul>
 <li><i>JSTL bundle (required by other examples) - see <a href="http://prdownloads.sourceforge.net/sse-examples/org.eclipse.equinox.jsp.jstl-proj.zip?download">Plug-in project</a></i></li>
@@ -90,18 +71,8 @@
 <li><i>Struts Examples Bundle - see <a href="http://prdownloads.sourceforge.net/sse-examples/org.eclipse.equinox.struts.examples-proj.zip?download">Plug-in project</a></i></li>
 </ul> 
 
-<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/server/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
\ No newline at end of file
diff --git a/server/proposal.php b/server/proposal.php
index 3e0bd25..d4aa7e4 100644
--- a/server/proposal.php
+++ b/server/proposal.php
@@ -1,31 +1,12 @@
 <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	#
-	#****************************************************************************
-	
-	#
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Equinox Incubator - Server-side Proposal";
 	$pageKeywords	= "equinox, osgi, framework, runtime, incubator, server, proposal";
+	$pageAuthor = "Equinox committers";
+	$html = <<<EOHTML
 	
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-		
-	# Paste your HTML content between the markers!	
-ob_start();
-?>	
 <div id="midcolumn">
-<h1><?= $pageTitle ?></h1>
-
-<p class=bar>Server-side Environment</p>
+	<h2>$pageTitle</h2>
 
 <p>Increasingly, developers are thinking about how they might use
 Eclipse's powerful component model and extension mechanisms in
@@ -56,7 +37,7 @@
 	<li>Application Server Integration</li>
 </ul>
 
-<p class=bar>Eclipse Changes for Server-side Operation</p>
+<h3>Eclipse Changes for Server-side Operation</h3>
 
 <p>The Eclipse runtime was originally designed to run an IDE. It's a
 testament to the runtime's versatility that Eclipse is now used in a
@@ -87,7 +68,7 @@
 applications. Any changes will trace the HEAD very closely to facilitate integration.
 Ideally these changes would occur in the 3.2 timeframe.</p>
 
-<p class=bar>Container Specific Launchers</p>
+<h3>Container Specific Launchers</h3>
 
 <p>One way to think of the Eclipse IDE and RCP applications (in general) is that they
 are started by the native executable launcher. For server-side environments,
@@ -101,29 +82,18 @@
 launcher will be part of the initial contribution for the incubator.
 </p>
 
-<p class=bar>Application Server Integration</p>
+<h3>Application Server Integration</h3>
 The Geronimo community has expressed some interest in OSGi. This incubator intends
 to investigate what it means to integrate OSGi and Geronimo as well as any changes
 to Equinox that might be required to support Geronimo. Integration with other
 application servers is also of interest.
 
-<p class=bar>Resources</p>
+<h3>Resources</h3>
 <p>Please direct comments or questions to <a
 	href="mailto:equinox-dev@eclipse.org">equinox-dev@eclipse.org</a>.</p>
 
-
-<p>&nbsp;</p>
 </div>
 
-<?php
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/global-links.html";
-	include $_SERVER['DOCUMENT_ROOT'] . "/equinox/server/component-links.html";
-	if (file_exists("dir-links.html")) {include "dir-links.html";}
-?>
-<?php
-	$html = ob_get_contents();
-	ob_end_clean();
-
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+EOHTML;
+	generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
 ?>
diff --git a/small_check.gif b/small_check.gif
deleted file mode 100644
index 5921f1f..0000000
--- a/small_check.gif
+++ /dev/null
Binary files differ
diff --git a/small_x.gif b/small_x.gif
deleted file mode 100644
index 1f339f7..0000000
--- a/small_x.gif
+++ /dev/null
Binary files differ
diff --git a/testweb/_projectCommon.php b/testweb/_projectCommon.php
index 8033427..3d045be 100755
--- a/testweb/_projectCommon.php
+++ b/testweb/_projectCommon.php
@@ -32,7 +32,7 @@
 	$Menu->addMenuItem( "FAQ", "http://eclipse.org/equinox/faq.php/", "_self" );
 	$Menu->addMenuItem( "Wiki", "http://wiki.eclipse.org/Equinox", "_self" );
 
-	$App->AddExtraHtmlHeader( '<link rel="stylesheet" type="text/css" href="http://eclipse.org/equinox/testweb/equinox.css"/>' );
+	$App->AddExtraHtmlHeader( '<link rel="stylesheet" type="text/css" href="http://eclipse.org/equinox/equinox.css"/>' );
 	$App->AddExtraHtmlHeader( '<link rel="stylesheet" type="text/css" href="http://eclipse.org/equinox/rap-layout-fixes.css"/>' );
 	$App->AddExtraHtmlHeader( '<!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="http://eclipse.org/equinox/rap-layout-fixes-ie.css"/><![endif]-->' );
 	$App->AddExtraHtmlHeader( '<link rel="shortcut icon" href="http://eclipse.org/rt/images/favicon.ico" />');
