<? require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); $TempApp 	= new App(); 	

	$documentRoot = $_SERVER['DOCUMENT_ROOT'];
	include ($documentRoot . "/downloads/content/distro_functions.php");
	include ($documentRoot . "/downloads/content/ganymede_distros.php");
	$randomized = randomSeed ($companyinfo); 
	$index = $randomized[0];

	//-Random Member Distro-// 
	ob_start();?>
		<tr class="tableData" style="background-image:url('images/stripe.png');">
			<td width="80" align="center">
				<img src="<?=$companyinfo[$index]->companyLogo;?>" height="64" width="64">
			</td>
			<td colspan=2><span class="packageTitle">Featured Member Distro</span><br/>
				<a class="packageTitle" href="<?=$companyinfo[$index]->linkTo;?>"><?=$companyinfo[$index]->companyName;?></a><br/>
				<?=$companyinfo[$index]->companyBlurb;?>
			</td>
		</tr>
	<? $distro = ob_get_clean(); 
	
	$osWarning = "";
	$osDisplay = $TempApp->getClientOS();

	switch ($osDisplay) {
		case "win32":
			$display = "Windows";
			$packagesDetails = "/home/data/httpd/writable/community/developerCacheWin.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/developerCacheLinux.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/developerCacheLinux64.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/developerCacheMac.html";
			$display = "Mac OS X";
			break;
		default:
			$display = "Windows";
			$packagesDetails = "/home/data/httpd/writable/community/developerCacheWin.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;
	}
	ob_start();
?>

<table width="100%" class="contentTable" cellspacing=0 style="font-size:95%;">
	<tr class="tableData topItem" style="background-image:url('images/stripe.png');">
		<td colspan=3><span class="packageTitle" style="color:red;font-weight:bold;">Development Builds</span><br/>
			The packages below are pre-release milestones of the upcoming Helios Release Train.  If you are looking for the latest release please visit the <a href="./?tab=packages" onclick="updateContent('packages');SetActive('packages');">Eclipse Packages</a> tab.
			If you encounter problems with these builds, please report them <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EPP">here</a>
		</td>
	</tr>

<?

	$handle = @fopen($packagesDetails, 'r');
	$contents = @fread($handle, filesize($packagesDetails));
	echo $contents;
	@fclose($handle);
?>
</table>
<? 
	$html = ob_get_clean();
	//$html = str_replace("<DISTRO>", $distro, $html);
	echo $html;
?>	