<?php
	$documentRoot = $_SERVER['DOCUMENT_ROOT'];
	require_once ($documentRoot . "/membership/promo/promos.php");
	if (isset($_GET['adNo'])) {
		$adNo = $_GET['adNo'];
	}
	$promo = chooseDownloadAd($adNo);
	ob_start();

	if ($_GET['osType'] == NULL)
	{
		$osDisplay = $App->getClientOS();
	}
	else {
		$osDisplay = $_GET['osType'];
	}
	$osWarning = "";
	$defaultPath = '/home/data/httpd/writable/community/';
	//$defaultPath = $documentRoot . '/downloads/content/';
	switch ($osDisplay) {
		case "win32":
			$display = "Windows";
			$packagesDetails = "releaseCacheWin.xml";
			break;
		case "win64":
			$display = "Windows";
			$packagesDetails = "releaseCacheWin.xml";
			break;
		case "linux":
			$display = "Linux";
			$packagesDetails = "releaseCacheLinux.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 = "releaseCacheLinux.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 = "releaseCacheCocoa.xml";
			$display = "Mac OS X";
			break;
		case "carbon";
			$packagesDetails = "releaseCacheCarbon.xml";
			$display = "Mac OS X";
			break;
		case "cocoa64":
			$packagesDetails = "releaseCacheCocoa.xml";
			$display = "Mac OS X";
			break;
		default:
			$display = "Windows";
			$packagesDetails = "releaseCacheWin.xml";
			//$packagesDetails = $documentRoot . "/downloads/content/heliosCacheWin.xml";
			break;
	}
	function featuredRow ($package, $display, $zebra) {
	if ($zebra === TRUE){
		$zebra = 'zebra';
	}
	elseif ($zebra == 'promo') {
		$zebra = 'promo';
	}
	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>
						<?php if ($zebra == 'promo') { ?> <img id="promotedLink" src="images/promotedLink2.png"/>  <?php }?>
						<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 promoDownload ($package, $display, $zebra) {
	if ($zebra === TRUE){
		$zebra = 'zebra';
	}
	elseif ($zebra == 'promo') {
		$zebra = 'promo';
	}
	ob_start();
		?>
				<div class="row clearfix <?php if ($zebra) { print $zebra; }?>">

					<div class="icon"><img src="images/companyLogo.png" width="64"/></div>
					<div class="text">
						<span class="title">
							<a href="#">Company Product Name</a><br/>
							<span class="promotedText"><a href="#">Promoted Download</a></span>
						</span>

						<br/>
					</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 actuateDownload ($package, $display, $zebra) {
	$impression = new CampaignImpression('PROMO_DOWNLOAD_ACTUATE', $_SERVER['REQUEST_URI'], @gethostbyaddr($_SERVER['REMOTE_ADDR']));
	$impression->recordImpression();
	if ($zebra === TRUE){
		$zebra = 'zebra';
	}
	elseif ($zebra == 'promo') {
		$zebra = 'promo';
	}
	ob_start();
		?>
				<div class="row clearfix <?php if ($zebra) { print $zebra; }?>">

					<div class="icon"><img src="http://www.eclipse.org/home/images/BIRT-Icon-32x32.gif" width="32"/></div>
					<div class="text">
						<span class="title">
							<a href="http://eclipse.org/go/PROMO_DOWNLOAD_ACTUATE">Actuate BIRT Designer Pro</a>
							<span class="promotedText"><a href="promotedDownload.php">Promoted Download</a></span>
							<br/>
							<span class="promotedDesc">Add Flash, live Excel formulas, DBMS drivers and much more to your BIRT reports.</span>

						</span>

						<br/>
					</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="http://eclipse.org/go/PROMO_DOWNLOAD_ACTUATE">Download</a><br/>
					</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;
	foreach ($xml->package as $package) {
		if ($count < $featuredRows) {
			$count ++;
			if ($count == 4 && $random <= 25) {
					$featuredRowsHTML .= actuateDownload($package, $display, 'promo');
			}

			$featuredRowsHTML .= featuredRow($package, $display, $zebra);
			$zebra = !$zebra;
		}
		else {
			$otherRowsHTML .= otherRow($package);
		}
	}
?>
<script type="text/javascript" src="http://www.eclipse.org/forums/jquery.js"></script>
<script type="text/javascript" src="content/helios.js"></script>
<div class="wideContainer">
	<div class="downloadHeader">
		<ul class="selector">
			<li><a href="/downloads/" class="active" >Packages</a></li>
<!--			<li><a href="/downloads/index-developer.php">Developer Builds</a></li>-->
			<li><a href="/downloads/index_project.php">Projects</a></li>
		</ul>
	</div>
	<div class="contentArea">

		<div class="leftContent">
			<div class="descriptionBar">
				<div class="descriptionRight">
					<span id="texttwo"><a href="compare.php">Compare Packages</a></span>
					<span id="textthree"><a href="http://wiki.eclipse.org/Older_Versions_Of_Eclipse">Older Versions</a></span>
				</div>
				<div class="descriptionOS">
					<span id="descriptionText">Eclipse Helios (3.6.1) Packages</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="//pagead2.googlesyndication.com/pagead/show_ads.js"></script>
			</div>
		</div>

		<div class="rightContent">
			<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 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.</p>

			<div class="ad">
				<?php print $promo; ?>
			</div>

			<h3>Installing Eclipse</h3>
				<ul id="installingEclipse">
					<li><a href="http://wiki.eclipse.org/FAQ_Where_do_I_get_and_install_Eclipse%3F">Install Guide</a></li>
					<li><a href="http://wiki.eclipse.org/SDK_Known_Issues">Known Issues</a></li>
					<li><a href="http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-129.htm">Updating Eclipse</a></li>
				</ul>

			<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="/helios/">Eclipse Helios (3.6)</a></li>
					<li><a href="/galileo/">Eclipse Galileo (3.5)</a></li>
					<li><a href="/ganymede/">Eclipse Ganymede (3.4)</a></li>
				</ul>

<!--		<div class="ad">	-->
<!--			<a href="/community/training/classes.php">	-->
<!--			<img src="/community/training/traininggraphic_125x125.jpg" border="0" /></a>	-->
<!--		</div>	-->

		</div>
	</div>
</div>

<?
	$html = ob_get_clean();
?>