<?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'

	#*****************************************************************************
	#
	# friends.php
	#
	# Author: 		Nathan Gervais
	# Date:			2009-05-21
	#
	# Description:  Galileo Friends Landing Page
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Friends of Eclipse";
	$pageKeywords	= "Friends of Eclipse, Helios";
	$pageAuthor		= "Nathan Gervais";
	include('scripts/wantedFunctions.php');
	# Paste your HTML content between the EOHTML markers!	
	ob_start();
	?>
	<style> 
	h1 { font-size:32px;}
	#novaContent { background: #FFF url('/home/images/blankBG.jpg') no-repeat; }
	.monolith {	width:700px; 	margin: 0px auto; 	text-align:justify; }
	</style>
	<div id="fullcolumn"  class="clearfix">
		<div style="width:700px; margin:10px auto;">
		<h1><img src="/donate/images/starTrans.png"/>Thank you Friends of Helios!<img src="/donate/images/starTrans.png"/></h1><br/>
		<p>A big thank you to all <b>487</b> of our Friends of Helios. The funds raised will be used to
		support the Eclipse community through services such as providing more bandwidth for users and
		committers, sponsoring Eclipse events around the world and purchasing additional hardware
		to host Eclipse projects. Your generousity is very much appreciated.  Helios wouldn't be the
		same without you!</p>
		</div>
		<div class="monolith">
			<?=sideDonorList(500, FALSE);?>
		</div>
	</div>
	<?
	$html = ob_get_clean();
	$html = mb_convert_encoding($html, "HTML-ENTITIES", 'auto');
	# Generate the web page
	$App->generatePage($theme, $Menu, NULL, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>