<?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 		= "Eclipse Membership Special Programs";
$pageKeywords 	= "Eclipse, programs, membership, promotion, advertising, distros, distributions, marketing";
$pageAuthor		= "Eclipse Foundation";

ob_start();
?>
<div id="maincontent">
<div id="midcolumn">

<h1><?=$pageTitle?></h1>

<p>
This page lists some of the special programs available to members that require detailed information.  For a more complete list of
membership benefits, please see the <a href="../become_a_member/benefits.php">membership benefits page</a>.
</p>

<h2>Programs for Strategic Members</h2>
<ul>
<li><a href="ecosystem-website-promotion.php">Ecosystem Website Promotion</a></li>
</ul>

<h2>Programs for Strategic and Enterprise Members</h2>
<ul>
<li><a href="ipzilla.php">IP Database Access</a></li>
</ul>


<h2>Programs for Solutions Members and Above</h2>
<ul>
<li><a href="member-downloads-program.php">Distro Listing on eclipse.org/downloads</a></li>
<li><a href="marketplace-listing.php">Listing in Eclipse Marketplace Client, and priority on Marketplace Listings</a></li>
<li><a href="member2member.php">Member2Member Marketing</a></li>
<li><a href="ECLIPSE_WEB.pdf">Overview of all web properties Members can leverage</a> (PDF)</li>
</ul>

</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);
?>
