<?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	= null;	$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, developer, network, code";
	$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="fullcolumn">
	<div id="midcolumn">
		<h1>$pageTitle</h1>
		<h2>Current releases</h2>	
			<ul>
				<li><a href="http://help.eclipse.org/galileo/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse Galileo Documentation</b></a><b> (HTML Help Center) </b></li>
			</ul>
		<h2>Archived releases</h2> 
			<ul>
				<li><a href="http://help.eclipse.org/ganymede/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse Ganymede Documentation</b></a><b> (HTML Help Center) </b></li>
				<li><a href="http://help.eclipse.org/help33/index.jsp"><b><img src="/newsgroups/images/discovery.gif" /> Eclipse Europa Documentation</b></a><b> (HTML Help Center) </b></li>
			</ul>
		<div class="homeitem3col">
			<h3>Eclipse 3.1 Documentation</h3>
			<ul>
   				<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>
	</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>
				<li><a href="/forums/">Forums</li>
				<li><a href="/resources/">Resources</li>
			</ul>
		</div>
	</div>
</div>


EOHTML;


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