<?php	
	$documentRoot = $_SERVER['DOCUMENT_ROOT'];
	require_once ($documentRoot . "/membership/promo/promos.php");
	include_once('content/downloadPromos.php');
	$adNo = ""; $_preview = "";
	
	$eclipseReleaseDesc = "Eclipse Kepler (4.3) RC1 Packages";
	$packageFileNamePrefix = 'developerCache';
	if (isset($_GET['release'])) {
		if ($_GET['release'] == 'juno') {
			$packageFileNamePrefix = 'developerAltCache';
			$eclipseReleaseDesc = "Eclipse Juno (4.2.2) SR2 RC3 Packages";
		}
	}
	
	if (isset($_GET['adNo'])) { 
		$adNo = $_GET['adNo'];
	}
	if (isset($_GET['preview'])) { 
		$_preview = $_GET['preview'];
	}
	
	$promo = chooseDownloadAd($adNo);
	ob_start();
	
	if (!isset($_GET['osType'])) {
		$osDisplay = $App->getClientOS();
	}
	else {
		$osDisplay = $_GET['osType'];
	}
	$osWarning = "";
	$defaultPath = ($App->devmode == TRUE) ? $_SERVER['DOCUMENT_ROOT'] . '/downloads-xml/' : '/home/data/httpd/writable/community/';
	
	//$defaultPath = $documentRoot . '/downloads/content/';
	switch ($osDisplay) {
		case "win32":
			$display = "Windows";
			$packagesDetails = $packageFileNamePrefix . "Win.xml";
			break;
		case "win64":
			$display = "Windows";
			$packagesDetails = $packageFileNamePrefix. "Win.xml";
			break;		
		case "linux":
			$display = "Linux";
			$packagesDetails = $packageFileNamePrefix. "Linux.xml";
			//$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";
			$packagesDetails = $packageFileNamePrefix. "Linux.xml";
			//$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 = $packageFileNamePrefix. "Cocoa.xml";
			$display = "Mac OS X";
			$osWarning = "<b>Mac OS X users please note:</b> Eclipse requires Mac OS X 10.5 (Leopard) or greater.<br />";
			break;
		case "carbon";
			$packagesDetails = $packageFileNamePrefix. "Carbon.xml";
			$display = "Mac OS X";
			$osWarning = "<b>Mac OS X users please note:</b> Eclipse requires Mac OS X 10.5 (Leopard) or greater.<br />";
			break;
		case "cocoa64":
			$packagesDetails = $packageFileNamePrefix. "Cocoa.xml";
			$display = "Mac OS X";
			$osWarning = "<b>Mac OS X users please note:</b> Eclipse requires Mac OS X 10.5 (Leopard) or greater.<br />";
			break;
		default:
			$display = "Windows";
			$packagesDetails = $packageFileNamePrefix. "Win.xml";
			//$packagesDetails = $documentRoot . "/downloads/content/heliosCacheWin.xml";
			break;
	}
	$phpWarning = "<b>Looking for the Eclipse for PHP Developers Package?  <a href='/downloads/php_package.php'>More Info</a></b>";
	function featuredRow ($package, $display, $zebra) {
	ob_start();
		?>
				<div class="row  clearfix <?php if ($zebra) { print 'zebra'; }?>">
					<div class="icon"><img src="<?php print $package['icon'];?>" width="32"/></div>
					<div class="text">
						<span class="title"><a href="<?php print $package['url']?>"><?php print $package['name'];?></a></span>, <?php print $package['size'];?></a><br/>
						<span class="downloadCounts">Downloaded <?php print number_format($package['downloadCount']);?> Times</span><a class="details" href="<?php print $package['url']?>">Details</a> 
						<?php if (stripos($package['name'], 'classic') != 0) {?>&nbsp; <a class="details" href="http://download.eclipse.org/eclipse/downloads/">Other Downloads</a><?php }?>
					</div>
					<div class="download">
						<div class="downloadArrow">
							<img src="http://dev.eclipse.org/large_icons/actions/go-bottom.png"><br/>
						</div>
						<a class="downloadLink" href="<?php print $package['downloadurl'];?>"><?php print $display;?> 32 Bit</a><br/>
						<?php if ($package['downloadurl64'] != "") {?>
						<a class="downloadLink" href="<?php print $package['downloadurl64'];?>"><?php print $display;?> 64 Bit</a>
						<?php } ?>
						
					</div>
				</div>		
	<?php
	return ob_get_clean(); 
	}
	
	function otherRow ($package) {
		ob_start(); 
		?>
					<li class="row">
						<span class="title"><a href="<?php print $package['url']?>"><?php print $package['name'];?></a></span>, <?php print $package['size'];?></span>
						<a class="downloadLink" href="<?php print $package['downloadurl'];?>">Download</a>				
					</li>				
	<?php 
	return ob_get_clean();
	}
	$random = rand(0,100);
	$xml = simplexml_load_file($defaultPath . $packagesDetails);
	$featuredRows = 15;
	$count = 0;
	$zebra = TRUE;
	$featuredRowsHTML = "";
		foreach ($xml->package as $package) {
		if ($count < $featuredRows) {
			$count ++;
			if (!$_preview){
				if ($count == 4 && $random <= 25) {
					//Promoted Download Ad Gets Inserted Here
					$featuredRowsHTML .= actuateDownload($package, $display, 'promo');
				}
				elseif($count == 4 && $random <= 50) {
					$featuredRowsHTML .= springsourceDownload($package, $display, 'promo');
						
				}
				elseif($count == 4 && $random <= 75) {
					$featuredRowsHTML .= eucalyptusDownload_2($package, $display, 'promo');
				
				}
				elseif($count == 4 && $random <= 100) {
					$featuredRowsHTML .= xoredDownload($package, $display, 'promo');
				
				}
			}
			else {
				if ($count == 4 && $_preview == 'actuate') {
					$featuredRowsHTML .= actuateDownload($package, $display, 'promo');
				}
				if ($count == 4 && $_preview == 'nuxeo') {
					$featuredRowsHTML .= nuxeoDownload($package, $display, 'promo');
				}
				if ($count == 4 && $_preview == 'cloudbees') {
					$featuredRowsHTML .= cloudbeesDownload($package, $display, 'promo');
				}
				if ($count == 4 && $_preview == 'springsource') {
					$featuredRowsHTML .= springsourceDownload($package, $display, 'promo');
				}
				if ($count == 4 && $_preview == 'eucalyptus') {
					$featuredRowsHTML .= eucalyptusDownload($package, $display, 'promo');
				}
				if ($count == 4 && $_preview == 'eucalyptus_2') {
					$featuredRowsHTML .= eucalyptusDownload_2($package, $display, 'promo');
				}
				if($count == 4 && $_preview == 'xored') {
					$featuredRowsHTML .= xoredDownload($package, $display, 'promo');				
				}
					
			}
			$featuredRowsHTML .= featuredRow($package, $display, $zebra);
			$zebra = !$zebra;
		}
		else {
			$otherRowsHTML .= otherRow($package);
		}		
	}
?>
<style>
.rightContent ul {
    margin-bottom: 1em;
 
}
</style>
<div class="wideContainer">
	<div class="downloadHeader">
		<ul class="selector">
			<li><a href="/downloads/">Packages</a></li>
			<li><a href="/downloads/index-developer.php" class="active">Developer Builds</a></li>
			<li><a href="/downloads/index_project.php">Projects</a></li>
		</ul>
	<div style="float:right; margin: 72px 0px 0 0;"><iframe src='http://www.facebook.com/plugins/like.php?href=http://www.facebook.com/pages/Eclipse/259655700571&layout=button_count&show_faces=false&width=90&action=like' style='border: medium none; overflow: hidden; width: 90px; height: 22px;' frameborder='0' scrolling='no'></iframe></div>			
	<div style="float:right; margin:72px 17px 0 0;"><a href="https://twitter.com/EclipseFdn" class="twitter-follow-button" data-show-count="false">Follow @EclipseFdn</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></div>		
	</div>	
	<div class="contentArea">
		
		<div class="leftContent">
			<div class="descriptionBar">
				<div class="descriptionRight">
				<span id="texttwo"><a href="index-developer.php?release=kepler">Kepler RC1</a></span>
				 <!-- <span id="textthree"><a href="index-developer.php?release=juno">Juno SR2 RC3</a></span>-->
				</div>			
				<div class="descriptionOS">
					<span id="descriptionText"><?php print $eclipseReleaseDesc; ?></span> for 
					<select id="osSelect">
						<option <?php if ($osDisplay == 'win32') echo "selected"?> value="win32">Windows</option>
						<option <?php if ($osDisplay == 'linux' || $osDisplay == 'linux-x64') echo "selected"?> value="linux">Linux</option>
						<option <?php if ($osDisplay == 'macosx') echo "selected"?> value="macosx">Mac OS X (Cocoa)</option>
					</select>
				</div>
			</div>
			<?php if ($osWarning != "") { ?>
				<div class="osWarning"><?php print $osWarning;?></div>
			<?php }?>
			<div class="featuredRows clearfix">
			<?php print	$featuredRowsHTML; ?>
			</div><!--
			
			<div class="moreBlock clearfix">
			<h3>Other Packages</h3>
				<ul class="col1">
			<?php print	$otherRowsHTML; ?>					
				</ul>
			</div>
						
			--><div id="googleAds">
				<script type="text/javascript"><!--
				google_ad_client = "pub-6797025590085056"; google_ad_slot = "4661560739"; google_ad_width = 468; google_ad_height = 60;
				//-->
				</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>	
			</div>									
		</div>
		
		<div class="rightContent">
			<h3>Installing Eclipse</h3>
				<ul id="installingEclipse">
<li><a href="http://wiki.eclipse.org/Eclipse/Installation">Install Guide</a></li>
<li><a href="compare.php">Compare/Combine Packages</a></li>
<li><a href="http://wiki.eclipse.org/SDK_Known_Issues">Known Issues</a></li>
<li><a href="http://help.eclipse.org/juno/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-129.htm">Updating Eclipse</a></li>
				</ul>	
				
				
				
			<div class="ad">
				<?php print $promo; ?>
			</div>
			
			
				
			<h3>Related Links</h3>
					<ul id="relatedLinks">
<!--  <li><a href="http://wiki.eclipse.org/CVS_Howto">Source Code</a></li> -->
<li><a href="http://help.eclipse.org">Documentation</a></li>
<li><a href="/donate/">Make a Donation</a></li>
<li><a href="/forums/">Forums</a></li>
<li><a href="/juno/">Eclipse Juno (4.2)</a>
<li><a href="/indigo/">Eclipse Indigo (3.7)</a>

<li><a href="http://wiki.eclipse.org/Older_Versions_Of_Eclipse">Older Versions</a></li>
			
				</ul>
				
				
			<h3 class="">Hint:</h3>
			<p class="jre">You will need a <a href="/downloads/moreinfo/jre.php">Java runtime environment (JRE)</a> to use Eclipse (Java SE 6 or greater is 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.</p>
				
		</div>
	</div>
</div>

<?
	$html = ob_get_clean();
?>