<?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 		= "Subversive Project is Looking for a Sponsor";
	$pageKeywords	= "subversive, svn, subversion, project";
	$pageAuthor		= "Igor Vinnykov";
	
	$sidebar = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/subversive/sidebars/main.php");	
	
	// 	# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Subversive Project is Looking for a Sponsor</h1>
		<p>
			The Subversive project was started in 2005 as an open-source initiative of Polarion. It originated as a small in-house project aiming to help developers to work with SVN, and a few years later it migrated to Eclipse as a fully functional SVN team provider. Now, it is one of the most popular plug-ins in the Eclipse ecosystem with hundreds of thousands of users all over the world. 
		</p>
		<p>
			From the project beginning, Subversive development and support was managed and sponsored by Polarion. Recently, Polarion has been acquired by another company whose scope of interest does not include this project, so its financial support will be discontinued. The good news for the Eclipse community is that the project can stay on Eclipse and the team of the Subversive authors can continue working on the project.
		</p>
		<p>
			To continue with the Subversive development, the Subversive team of Eclipse committers is looking for funding and for a company that could sponsor the Subversive development. The budget requirements are quite low. The Subversive team will be glad to provide additional information on request, so please feel free to <a href="mailto:igor.vinnykov@polarion.com?subject=[Subversive sponsorship request]">contact us</a> if you would like to become a Subversive sponsor. 
		</p>
		<p align="right">
			Your Subversive Development Team
		</p>
	</div>
	
	<div id="rightcolumn">
        $sidebar		
	</div>	

EOHTML;
		

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>