<?php
	set_include_path($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common" . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] . "/projects" . PATH_SEPARATOR . get_include_path());
	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());
	
	$localVersion = false;
	
	# Define these here, or in _projectCommon.php for site-wide values
	$pageTitle 		= "Special Builds - Eclipse Subversive";
	$pageKeywords	= "subversive, download, svn, subversion";
	$pageAuthor		= "Igor Vinnykov";
	
	$sidebar = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/subversive/sidebars/download.php");	
	
	// 	# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Special Builds</h1>
		<p>
			Here you can find information about the latest special Subversive builds, such as builds for headless environments and PDE builds.
		</p>
		<h2>Build for Headless Environment</h2>
		<p>
			This Subversive build is intended for use in a non-UI mode to execute SVN operations.
		</p>
		<p>
			<b>Release Date:</b> 06 February 2014<br/>
			<b>Version:</b> 1.1.3.I20140206-1700		
		</p>
		<p>
			<b>Update Site:</b><br/>	
			<a href="http://download.eclipse.org/technology/subversive/1.1/headless-update-site/">http://download.eclipse.org/technology/subversive/1.1/headless-update-site/</a>		
		</p>
		<p>
			<b>Archived Update Site:</b><br/>
			<a href="http://www.eclipse.org/downloads/download.php?file=/technology/subversive/1.1/builds/Subversive-headless-1.1.3.I20140206-1700.zip">Subversive-headless-1.1.3.I20140206-1700.zip</a>
		</p>		
		<p>
			<b>Early Access build:</b> 09 June 2014<br/>
			<b>Version:</b> 2.0.0.I20140609-1700
		</p>
		<p>
			<b>Update Site:</b><br/>	
			<a href="http://download.eclipse.org/technology/subversive/2.0/headless-update-site/">http://download.eclipse.org/technology/subversive/2.0/headless-update-site/</a>		
		</p>
		<p>
			<b>Archived Update Site:</b><br/>
			<a href="http://www.eclipse.org/downloads/download.php?file=/technology/subversive/2.0/builds/Subversive-headless-2.0.0.I20140609-1700.zip">Subversive-headless-2.0.0.I20140609-1700.zip</a>
		</p>		
		<h2>SVN PDE Build</h2>
		<p>
			This is a special type of Subversive build used by Eclipse PDE/Build to fetch data stored in SVN repositories. For more information, refer to the <a href="http://wiki.eclipse.org/Subversive_PDE_Fetch">documentation</a>.
		</p>
		<p>
			<b>Release Date:</b> 01 June 2012<br/>
			<b>Version:</b> 1.0.0.I20120601-1700		
		</p>
		<p>
			<b>Update Site:</b><br/>	
			<a href="http://download.eclipse.org/technology/subversive/1.0/pde-update-site/">http://download.eclipse.org/technology/subversive/1.0/pde-update-site/</a>		
		</p>
		<p>
			<b>Archived Update Site:</b><br/>
			<a href="http://www.eclipse.org/downloads/download.php?file=/technology/subversive/1.0/builds/Subversive-svn-pde-1.0.0.I20120601-1700.zip">Subversive-svn-pde-1.0.0.I20120601-1700.zip</a>
		</p>		
	</div>
	
	<div id="rightcolumn">
        $sidebar		
	</div>	

EOHTML;
		

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