<?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 : Friends of Eclipse";
	$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 friends">
		<?php include_once('includes/header.php');?>
		<div id="container">	
			<?php include_once('includes/nav.php');?>			
			<div id="window">				
				<div id="main">					
					<h2>Friends of Juno</h2>
					<p>Everyday millions of people use Eclipse. <a href="/donate/">Friends of Eclipse</a> allows you to contribute back to the Eclipse community.</p>
					<p>For a US$35 contribution, you can become a Friend of Eclipse.  As a special thank you, Friends will get early access to the <a href="/juno/">Juno release</a>, direct from the download server at the Eclipse Foundation.  Your contribution will also help support the Eclipse community.</p>					
					<div class="spacing">
						<a class="btn-donate" href="/donate"><img src='images/icons/star.png'/><span>Give Back Now!</span></a>
						<?php include('includes/progress-bar.php');?>	
					</div>		
					<p class="legal">
						[1] Friends of Eclipse get special access to the Eclipse Foundation download server.  This server will be available to Friends of Eclipse while the download packages are being synchronized to our mirrors.  This typically means the packages will be available up to 24 hrs before everyone else.   The Eclipse Foundation will also be dedicating extra bandwidth to this download server, so Friends should experience a faster download.
					</p>				
				</div>
				<?php include_once('includes/sidebar-2.php');?>	
			</div>
		</div>
	</div>
	<?php include_once('includes/footer.php');?>
	<?
	$html = ob_get_clean();
	# Generate the web page
	$App->Promotion = TRUE;
	$App->AddExtraHtmlHeader('<link type="text/css" href="/juno/style.css" rel="stylesheet"/>');	
	$App->generatePage('Nova', $Menu, NULL , $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
