<?php
/*******************************************************************************
 * Copyright (c) 2014 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Christopher Guindon (Eclipse Foundation) - Initial implementation
 *******************************************************************************/
if (basename ( __FILE__ ) == basename ( $_SERVER ['PHP_SELF'] )) {
	exit ();
}
?>

<div id="fullcolumn">
	<div id="midcolumn">
		<h1><?php print $pageTitle;?></h1>
		<h2>Current releases</h2>
		<ul>
			<li><a href="http://help.eclipse.org/luna/index.jsp"><b><img
						src="/newsgroups/images/discovery.gif" /> Eclipse Luna (4.4)
						Documentation</b></a><b> (HTML Help Center) </b></li>
		</ul>
		<h2>Older releases</h2>
		<ul>
			<li><a href="http://help.eclipse.org/kepler/index.jsp"><b><img
						src="/newsgroups/images/discovery.gif" /> Eclipse Kepler (4.3)
						Documentation</b></a><b> (HTML Help Center) </b></li>
			<li><a href="http://help.eclipse.org/juno/index.jsp"><b><img
						src="/newsgroups/images/discovery.gif" /> Eclipse Juno (4.2)
						Documentation</b></a><b> (HTML Help Center) </b></li>
			<li><a href="http://help.eclipse.org/indigo/index.jsp"><b><img
						src="/newsgroups/images/discovery.gif" /> Eclipse Indigo (3.7)
						Documentation</b></a><b> (HTML Help Center) </b></li>
			<li><a href="http://help.eclipse.org/helios/index.jsp"><b><img
						src="/newsgroups/images/discovery.gif" /> Eclipse Helios (3.6)
						Documentation</b></a><b> (HTML Help Center) </b></li>
		</ul>
		<h2>Archived releases</h2>
		<p>These links redirect to the 'current' release and may stop
			functioning in future.</p>
		<ul>
			<li><a href="http://help.eclipse.org/galileo/index.jsp"><b><img
						src="/newsgroups/images/discovery.gif" /> Eclipse Galileo (3.5)
						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="/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="/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="/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="/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="/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://www.eclipse.org/home/newcomers.php">New to
						Eclipse? Start here.</a></li>
				<li><a href="/articles/">Eclipse articles</a></li>
				<li><a href="/forums/">Forums</a></li>
				<li><a href="/resources/">Resources</a></li>
			</ul>
		</div>
	</div>
</div>