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

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Igor Vinnykov
	# Date:			2007-11-23
	#
	# Description: Autogenerated for eclipse.org site pages from Eclipse IDE help
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Subversive - Documentation";
	$pageKeywords	= "Subversive, Subversion, SVN, Team Provider, documentation, user guid";
	$pageAuthor		= "Igor Vinnykov";
		
	include("_projectCommon.php");    # All on the same line to unclutter the user's desktop'
	
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">

	<h3>Special thanks</h3>
	<p>Subversive Team really appreciates the help done by the community members, who provided us patches for Subversive.</p>
	<table border="1" cellpadding="5" cellspacing="0" width="100%" bgcolor="EFEFEF">
		<tr>
			<td widht="33%" align="left" valign="center">Sergey Vasilchenko</td>
			<td widht="33%" align="left" valign="center">Panagiotis Korros</td>
			<td align="left" valign="center">Tobias Bosch</td>
		</tr>
		<tr>
			<td widht="33%" align="left" valign="center">Alessandro Nistico</td>
			<td widht="33%" align="left" valign="center">Ken Geis</td>
			<td align="left" valign="center">Dann Martens</td>
		</tr>
		<tr>
			<td widht="33%" align="left" valign="center">Takashi Okamoto</td>
			<td widht="33%" align="left" valign="center">Pavel Zuev</td>
			<td align="left" valign="center">Rene Link</td>
		</tr>
		<tr>
			<td widht="33%" align="left" valign="center">Rob Clark</td>
			<td colspan="2"  widht="33%" align="left" valign="center">Zend Technologies Team</td>
		</tr>
	</table>
	<p>Thank you very much, you've done some kind of a wonderful work. And, of cause, we'd like to say a lot of kind words to all the people, who sent there  bug reports and  tips for improvements. Thank you all.</p>
	<br/>
	<br/>
	</div>	

EOHTML;


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