<?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();	$theme = "Phoenix"; include($App->getProjectCommon());   # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# index.php
	#
	# Author: 	 	Nathan Gervais
	# Date:			2008-04-21
	#
	# Description: Ganymede Landing Page
	#
	#****************************************************************************
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Corporate Sponsors";
	$pageKeywords	= "corporate sponsorship, sponsor, eclipse";
	$pageAuthor		= "Eclipse Foundation, Inc.";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank)
	# $Nav->addCustomNav("My Link", "mypage.php", "_self");
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank");

	# End: page-specific settings
	#
	# Place your html content in a file called content/en_pagename.php
	ob_start();


	?>	
	<div id="fullcolumn" class="galileo">
		<div id="midcolumn">
			<h1>Eclipse Corporate Sponsors</h1>
			<p>The Eclipse Foundation relies on the support of our members and contributions from the user community to service and grow the Eclipse ecosystem. 
			We'd like to thank the following Corporate Sponsors who have generously supported the Eclipse community. </p> 
			<p>We encourage large corporate users of Eclipse to
			support the community by 
			<a href="/membership/">becoming members</a>
			and/or joining the <a href="corp_sponsor_details.php">Corporate Sponsorship Program</a>.  
			
			</p>
			<h3>Gold Sponsors</h3>
				<div class="imageBlock">
					<img alt="Google" src="http://www.eclipse.org/membership/scripts/get_image.php?id=827&size=small"/>
					<img alt="Novell" src="http://www.eclipse.org/membership/scripts/get_image.php?id=716&size=small"/>
					
				</div>

				<br><br>
			<h3>Silver Sponsors</h3>
				<div class="imageBlock">
					<img alt="IBM" src="http://www.eclipse.org/membership/scripts/get_image.php?id=656&size=small"/>
					<img alt="Debeka" src="http://www.eclipse.org/corporate_sponsors/debeka.jpg" width="140"/>
					<img alt="DE Shaw" src="http://www.eclipse.org/corporate_sponsors/deshaw_logo.jpg" width="140"/>
					<img src="http://www.eclipse.org/membership/scripts/get_image.php?id=721&size=small"/> 

					</div>
			<br/>
		</div>			
		<div id="rightcolumn">

		
			<div class="sideitem" style="text-align:left;">
			<h6>Supporting Eclipse</h6>
				<div class="modal noBG">
					<ul>
						<li class=""> 
						<a href="http://www.eclipse.org/membership/showAllMembers.php" class="link">Eclipse Members</a><br/>
						</li>
						<li class=""> 
						<a href="http://eclipse.org/donate/donorlist.php" class="link">Friends of Eclipse</a><br/>
						<li class=""> 
						<a href="corp_sponsor_details.php" class="link">Become a Corporate Sponsor</a><br/>
						
						</li>
					</ul>
				</div>		
			</div>		
		</div>	
		
	</div>
	
			

	<?
	$html = ob_get_clean();
	# Generate the web page
	$App->Promotion = TRUE;
	$App->AddExtraHtmlHeader('<link type="text/css" href="style.css" rel="stylesheet"/>');
	$App->generatePage("Nova", $Menu, NULL, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>