<?php

	$osWarning = "";
	$osDisplay = $App->getClientOS();
	switch ($osDisplay) {
		case "win32":
			$display = "Windows";
			$packagesDetails = "/home/data/httpd/writable/community/downloadCacheWin.html";
			$osWarning = "<b>Problems extracting the ZIP file?</b> Please read these <a href='http://wiki.eclipse.org/SDK_Known_Issues#Windows_issues'>Known Issues</a>.<br />";
			break;
		case "linux":
			$display = "Linux";
			$packagesDetails = "/home/data/httpd/writable/community/downloadCacheLinux.html";
			$osWarning = "<b>Linux users please note:</b> Eclipse on GCJ is untested.  Please see the Linux <a href='http://wiki.eclipse.org/SDK_Known_Issues#Linux_issues'>Known Issues</a> document.<br />";
			break;
		case "linux-x64":
			$display = "Linux x86_64";
			$packagesDetails = "/home/data/httpd/writable/community/downloadCacheLinux.html";
			$osWarning = "<b>Linux users please note:</b> Eclipse on GCJ is untested.  Please see the Linux <a href='http://wiki.eclipse.org/SDK_Known_Issues#Linux_issues'>Known Issues</a> document.<br />";
			break;
		case "macosx":
			$packagesDetails = "/home/data/httpd/writable/community/downloadCacheMac.html";
			$display = "Mac OS X";
			break;
		default:
			$display = "Windows";
			$packagesDetails = "/home/data/httpd/writable/community/downloadCacheWin.html";
			$osWarning = "<b>We were unable to find Eclipse packages for your platform ($osDisplay)</b>. Below are the packages for Windows. Downloads for your platform may be available <a href=\"$classOtherDownloads\">here</a>.<br />";
			break;
	}

	include ("content/distro_functions.php");
	include ("content/europa_distros.php");
	$documentRoot = $_SERVER['DOCUMENT_ROOT'];
	require_once ($documentRoot . "/membership/promo/promos.php");
	$randomized = randomSeed ($companyinfo);
	ob_start();
	?>
<script type="text/javascript" src="content/click_count.js"></script>
<link rel="stylesheet" type="text/css" href="proto.css" media="screen" />
<link rel="stylesheet" type="text/css" href="/downloads/packages/themes/eclipse/style.css" media="screen" />
<div id="widecontainer">
	<div id="midcolumnwide">
		<h1><?= $pageTitle ?></h1>
		<p>You will need a <a href="/downloads/moreinfo/jre.php">Java runtime environment (JRE)</a> to use Eclipse (Java 5 JRE recommended).  All downloads are provided under the terms and conditions of the <a href="/legal/epl/notice.php">Eclipse Foundation
			Software User Agreement</a> unless otherwise specified.<br /></p>
		<!--  <div class="dialogHeader">Eclipse Europa Fall Maintenance Packages </div> -->
		<table width="100%" class="contentTable" cellspacing=0 style="font-size:95%;">
        <tr class="dialogHeader">
        	<td colspan="2">
				<h1 class="title" style="display:inline">Eclipse Ganymede Packages</h1>  - <?= $display ?> &#160; <a href="packages/compare-packages">(compare packages)</a>				
        	</td>
        	<td class="downloadsHeader">
        		Downloads Available: 
        	</td>
        </tr>					
			<? include ($packagesDetails); ?>
		</table>
		<div align="right"><img src="http://dev.eclipse.org/large_icons/apps/system-installer.png"/> <a style="position:relative;top:-8px;" href="./packages/">More Packages...</a></div>
		<?= $osWarning != "" ? "<p style='border: 1px solid #ddd; background-color: #FFD; padding: 4px;'>" . $osWarning . "</p>" : "" ?>
		<br/><br/>
		<div class="sectionTitle"><a href="distros.php">Third Party Distros</a></div>
     		<table width="100%" class="packages" cellspacing=0 cellpadding=0>
			<?
				$i = 0;
				$count = count($companyinfo);
				while ($i < 3)
				{

					$index = $randomized[$i];
				?>
				<tr><a href="<?=$companyinfo[$index]->linkTo;?>">
					<td valign="top" width="32">
						<img src="<?=$companyinfo[$index]->companyLogo;?>" height="32" width="32" >
					</td><td width="25%" class="companyName">
						<a href="<?=$companyinfo[$index]->linkTo;?>"><B><?=$companyinfo[$index]->companyName;?></B></a>
					</td><td width="75%" class="projects">
						<p>Projects: <?=$companyinfo[$index]->projects;?></p>
				</td></tr>
				<?
				$i++;
				}
			?>
			</table>
			<div style="width:100%;" align="right" class="smallText"><a href="distros.php">More Distros...</a></div>
		</div>
	</div><br/><br/>
	<div id="rightcolumnwide">
		<center><a href="/donate/"><img src="/ganymede/images/ganymede.gif"></a></center><br/>
		<?//Membership Ads ?>
		<?=chooseRandomPromo(); ?>
		<div class="sideitem">
			<h6>Popular projects</h6>
			<ol style="margin-left: 5px;">
				<li><a href="http://download.eclipse.org/tools/ve/downloads/">Visual Editor (VE)</a> <img src="images/ico_up.gif" /></li>
				<li><a href="http://download.eclipse.org/webtools/downloads/">Web Tools</a> <img src="images/ico_down.gif" /></li>
				<li><a href="http://download.eclipse.org/tools/pdt/downloads/">PHP Development (PDT)</a> <img src="images/ico_down.gif" /></li>
				<li><a href="/cdt/downloads.php">C/C++ Development (CDT)</a> <img src="images/ico_down.gif" /></li>
				<li><a href="/modeling/mdt/downloads/">Modeling Tools (MDT) <img src="images/ico_down.gif" /></a></li>
				<li><a href="/modeling/emf/downloads/">Modeling Framework (EMF)</a></li>
				<li><a href="http://download.eclipse.org/birt/downloads/">Business Intelligence and Reporting (BIRT)</a></li>
				<li><a href="/aspectj/downloads.php">AspectJ</a></li>
				<li><a href="/mylyn/downloads/">Mylyn</a></li>
				<li><a href="/gef/downloads/">Graphical Editor Framework (GEF)</a></li>
			</ol>Updated: Jun 4/08
		</div>
		<div class="sideitem">
			<h6>Related Links</h6>
			<ul><li><a href="/donate">Donate to Eclipse</a></li><li><a href="/europa">Europa</a></li><li><a href="/articles/Article-Update/keeping-up-to-date.html">Keeping up to date</a> Using the Update Manager</li><li><a href="mir_request.php">Becoming a mirror site</a></li></ul>
		</div>
	</div>
</div>
<?
	$html = ob_get_clean();
?>