<?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();

include($App->getProjectCommon());

#
# Begin: page-specific settings.  Change these. 
$pageTitle 	= "Henshin - Downloads";
$pageKeywords	= "EMF, Henshin, model transformation, Downloads";
$pageAuthor	= "Christian Krause";
	
# Add page-specific Nav bars here
# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
# End: page-specific settings
#

#$release = "0.9.4";
#$qualifier = "R201211061446";
#$nightly = "0.9.5";

#$release = "0.9.6";
#$qualifier = "R201302280302";
#$nightly = "0.9.7";

#$release = "0.9.8";
#$qualifier = "R201305281500";
#$nightly = "0.9.9";

$release = "0.9.10";
$qualifier = "R201312010522";
$nightly = "0.9.11";

$drops = "http://www.eclipse.org/downloads/download.php?file=/modeling/emft/henshin/downloads/drops";
$html = <<<EOHTML

<div id="maincontent">
<div id="midcolumn">

<h1>$pageTitle</h1>

<p>
Downloading drops is currently not supported. Please use one of our
<a href="install.php">update sites</a> for installation.
</p>

<!--
<h2>Latest Stable Release</h2>
<p>
<table>
<tr>
<td>
<a href="$drops/$release/$qualifier/Henshin-SDK-Incubation-$release.zip"><img src="go-bottom.png"></a>
</td>
<td>
<a href="$drops/$release/$qualifier/Henshin-SDK-Incubation-$release.zip">Henshin SDK $release</a>
</td>
</tr>
</table>
</p>

<h2>Latest Nightly Build</h2>
<p>
<table>
<tr>
<td>
<a href="$drops/$nightly/N-SNAPSHOT/Henshin-SDK-Incubation-N-SNAPSHOT.zip"><img src="go-bottom.png"></a>
</td>
<td>
<a href="$drops/$nightly/N-SNAPSHOT/Henshin-SDK-Incubation-N-SNAPSHOT.zip">Henshin SDK $nightly SNAPSHOT</a>
</td>
</tr>
</table>
</p>
-->

</div>
</div>

EOHTML;

# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);

?>
