<?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();	$theme = "Phoenix"; include($App->getProjectCommon());   # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# index.php
	#
	# Author: 	 	Nathan Gervais
	# Date:			2010-04-16
	#
	# Description: Ganymede Landing Page
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse.org - Helios Simultaneous Release!";
	$pageKeywords	= "eclipse helios, helios, helios release train";
	$pageAuthor		= "Eclipse Foundation, Inc.";
	
	# 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
	#
	
	# Place your html content in a file called content/en_pagename.php
	ob_start();
	?>	
	<div id="fullcolumn" class="helios">
		<div id="midcolumn">
			<div>
				<p class="description">Eclipse Helios is the annual release of Eclipse projects in 2010; this year 39 projects are part of the release. <br/>
				<br/>Click <a style="color:#FFF;" href="http://wiki.eclipse.org/Simultaneous_Release">here</a> to find out about the newest Eclipse Simultaneous Release</p>
			</div>
			<div>
				<ul class="links">
					<li class="download sun"><a title="Download" href="/downloads/packages/release/helios/rc2">Helios RC2 Milestone Downloads</a></li>
					<li class="projects sun"><a title="Projects" href="/helios/projects.php">Projects</a></li>
<!--					<li class="friends"><a title="Helios in Action" href="/helios/heliosinaction.php">&nbsp;</a></li>-->
					<li class="projects sun"><a title="Blogathon" href="/helios/blogathon/guidelines.php">Helios Blogathon</a></li>
<!--					<li class="blog"><a title="Helios on Twitter" target="_blank" href="http://galileo.chinposin.com/">&nbsp;</a></li>-->
					<li class="friends"><a title="Friends of Eclipse" href="friends.php">Wanted: 360 Friends of Helios</a></li>
				</ul>
			</div>
		</div>
	</div>
	<?
	$html = ob_get_clean();
	# Generate the web page
	$App->Promotion = TRUE;
	$App->AddExtraHtmlHeader('<link type="text/css" href="/helios/style.css" rel="stylesheet"/>');
	$App->generatePage("Nova", $Menu, NULL, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>