<?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'
/*******************************************************************************
 * Copyright (c) 2009-2010 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://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    
 *******************************************************************************/

	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse.org - Juno Simultaneous Release";
	$pageKeywords	= "juno, release, simultaneous, release train, eclipse 4, e4";
	$pageAuthor		= "Christopher Guindon";
		
	include_once 'includes/app.php';
	
	# Paste your HTML content between the EOHTML markers!	
	ob_start();	
	?>
	<div id="fullcolumn" class="juno frontpage">
		<?php include_once('includes/header.php');?>
		<div id="container">	
			<?php include_once('includes/nav.php');?>			
			<div id="window">
				<?php include_once('includes/sidebar-1.php');?>	
				<div id="main">			
					<h2>Highlights</h2>
					<ul id="ticker"></ul>
					<ul id="hide"></ul>	
				</div>	
			</div>
		</div>
	</div>
	<?php include_once('includes/footer.php');?>
	<script type="text/javascript" src="/juno/scripts/ticker.js"></script>	
	<?
	$html = ob_get_clean();
	# Generate the web page
	$App->Promotion = TRUE;
	$App->setjQueryVersion('1.5.2');
	$App->AddExtraHtmlHeader('<script type="text/javascript" src="/juno/scripts/smooth-add.js"></script>');
	$App->AddExtraHtmlHeader('<link type="text/css" href="/juno/style.css" rel="stylesheet"/><!--[if IE 7]> <link rel="stylesheet" type="text/css" href="/home/content/ie7_nova.css" media="screen"/> <![endif]-->');	
	
	$App->generatePage('Nova', $Menu, NULL , $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
