<?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: 		Denis Roy
	# Date:			2006-08-03
	#
	# Description: 
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse documentation";
	$pageKeywords	= "Eclipse, documentation, help, api, programmer, javadoc, sdk";
	$pageAuthor		= "Denis Roy";
	
	# 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 EOHTML markers!	
	$html = <<<EOHTML

<div id="maincontent">
	<div id="midcolumn">
		<h1>$pageTitle</h1>
		<h2>Current releases</h2>	
		<div class="homeitem3col">
			<h3>Eclipse 3.4 (Ganymede) Documentation</h3>
			<ul>
				<li><a href="http://help.eclipse.org/ganymede/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse 3.4 (Ganymede) Documentation</b></a><b> (HTML Help Center) </b></li>
			</ul>
		</div>
		<div class="homeitem3col">
			<h3>Eclipse 3.3 (Europa) Documentation</h3>
			<ul>
				<li><a href="http://help.eclipse.org/help33/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse 3.3 (Europa) Documentation</b></a><b> (HTML Help Center) </b></li>
			</ul>
		</div>
		<div class="homeitem3col">
			<h3>Eclipse 3.2 Documentation</h3>
			<ul>
				<li><a href="http://help.eclipse.org/help32/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse 3.2 Documentation</b></a><b> (HTML Help Center) </b></li>
			</ul>
		</div>
		<div class="homeitem3col">
			<h3>Latest stable/release candidate docs</h3>
			<p>This documentation is based on the latest stable development build of Eclipse.</p>  
			<ul>
				<li><a href="http://help.eclipse.org/stable/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse STABLE Documentation</b></a><b> (HTML Help Center) </b></li>
			</ul>
		</div>
		<div class="homeitem3col">
			<h3>Eclipse 3.1 Documentation</h3>
			<ul>
				<li><a href="http://help.eclipse.org/help31/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse 3.1.2 Documentation</b></a><b> (HTML Help Center) </b></li>	
   				<li><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.platform.doc.user.3.1.pdf.zip"><img src="/evangelism/images/zip.png" /> Workbench User Guide</a></li>
				<li><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.jdt.doc.user.3.1.pdf.zip"><img src="/evangelism/images/zip.png" /> Java Development User Guide</a></li>
				<li><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.pde.doc.user.3.1.pdf.zip"><img src="/evangelism/images/zip.png" /> PDE Guide</a></li>
				<li><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.platform.doc.isv.3.1.pdf.zip"><img src="/evangelism/images/zip.png" /> Platform Plug-in Developer Guide</a></li>
				<li><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.jdt.doc.isv.3.1.pdf.zip"><img src="/evangelism/images/zip.png" /> JDT Plug-in Developer Guide</a>
			</ul>
		</div>
		<h2>Archived releases</h2> 
		<div class="homeitem3col">
			<h3>Eclipse 2.1 Documentation</h3>
			<ul>
				<li><a href="http://help.eclipse.org/help21/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse 2.1.3 Documentation</b></a><b> (HTML Help Center) </b></li>	
			</ul>
		</div>
	</div>
	<div id="rightcolumn">
		<div class="sideitem">
			<h6>Related links</h6>
			<ul>
				<li><a href="http://help.eclipse.org/">HTML help center</li>
				<li><a href="/articles/">Eclipse articles</li>
			</ul>
		</div>
	</div>
</div>


EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
