<?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("../_projectCommon.php");    # All on the same line to unclutter the user's desktop'

$pageTitle 		= "Membership and Corporate Sponsorship";


ob_start();
?>
    <div id="maincontent">
	<div id="midcolumn">

<h1><?=$pageTitle;?></h1>

<p>
<a href="/corporate_sponsors/">Corporate Sponsors</a> are organizations that may, or may not,
be members of the Eclipse Foundation who would like to make contributions to the Eclipse Foundation
either in cash, or in kind.  The corporate sponsor program is our way of thanking those
organizations who go a step above to make sure the Eclipse Foundation is able to continue
it's mission.  Organizations to not have to be members to be Corporate Sponsors, but also
do not receive membership benefits unless they are.
</p>

</div> <!-- midcolumn -->
</div> <!-- maincontent -->

<?php
	# Paste your HTML content between the EOHTML markers!
	$html = ob_get_contents();
	ob_end_clean();

	# Generate the web page
	$App->generatePage(NULL, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
