<?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());    # All on the same line to unclutter the user's desktop'

#
# Begin: page-specific settings.  Change these.
$pageTitle 		= "Tigerstripe Update Site";
$pageKeywords	= "Type, page, keywords, here";
$pageAuthor		= "Eric Dillon";
# End: page-specific settings
#

# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<div id="maincontent">

<div id="midcolumn">
<h1>$pageTitle</h1>
	<div class="homeitem3col">
		<h3>Tigerstripe Update Site (Deprecated - this is for old releases)</h3>
		<p>To install Tigerstripe, point your Eclipse Update Manager at this following sites.</p>
		<small>There is no official release of 0.5. In the meantime, stable releases can be installed from our interim update site.</small>
		<ul>
			<li>Help
			<ul>
				<li>install New Software
				<ul>
					<li>Add...<br/>
								Name: <strong>Tigerstripe Interim Update Site</strong><br/>
								Location: <a href="http://download.eclipse.org/technology/tigerstripe/updates-3.5-interim/">http://download.eclipse.org/technology/tigerstripe/updates-3.5-interim/</a><small> (Interim Builds)</small><br/>
								<strong>The interim site is not categorized. Make sure you uncheck the "Group Items by Categories" option.</strong>
					</li>
				</ul>
				</li>
			</ul>
			</li>
		</ul>
		
		<h3>Access to Continuous Builds (Unstable)</h3>
		<p>In particular cases, you may want to update to our latest continuous builds. Please understand however that these builds
		may be highly unstable.</p>
		<small>It typically takes 30mn for the update to be fully available, so if you experience problems during an update,
		please try again later, the mirroring may take time.</small>
		<ul>
			<li>Help
			<ul>
				<li>install New Software
				<ul>
					<li>Add...<br/>
								Name: <strong>Tigerstripe Continous (Unstable) Update Site</strong><br/>
								Location: <a href="http://download.eclipse.org/technology/tigerstripe/updates-3.5/unstable/">http://download.eclipse.org/technology/tigerstripe/updates-3.5/unstable</a><small> (Continuous Builds)</small><br/>
								<strong>The unstable site is not categorized. Make sure you uncheck the "Group Items by Categories" option.</strong>
					</li>
				</ul>
				</li>
			</ul>
			</li>
		</ul>
			</div>
	</div>
	<div id="rightcolumn">
 		<div class="sideitem">
		   <h6>Incubation</h6>
 		  <div align="center">
 		  	<a href="/projects/what-is-incubation.php">
 		  		<img align="center" src="/images/egg-incubation.png" border="0" alt="Incubation" />
 		  	</a>
 		  </div>
 		</div>
 	</div>
</div>
EOHTML;

# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);

?>