<?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'

	#*****************************************************************************
	#
	# 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";
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn" style="width:95%">

<h3>Subversive update instructions (Eclipse.org version installed)</h3>
	<p>Subversive can be simply updated from within Eclipse using update manager. To update Subversive:</p>
	<ol>
		<li>
			Start Eclipse and select menu item <i>'Help > Software Updates > Find and Install...'</i>
			<br/><br/><img border="0" src="../../images/find_and_install.png" alt="Find and install"/><br/><br/>
		</li>
		<li>
			In the <i>'Install/Update'</i> wizard select <i>'Search for new features to install'</i> option and click on the <i>'Next'</i> button.
			<br/><br/><img border="0" src="../../images/feature_updates.png" alt="Feature updates"/><br/><br/>
		</li>
		<li>
			To start features search in the list of the update sites the user should select <i>'Subversive'</i> and <i>'Subversive SVN Connectors'</i> and click on the <i>'Finish'</i> button.
			<br/><br/><img border="0" src="../../images/update_site_subversive.png" alt="Check 'Subversive'"/><br/><br/>
		</li>
		<li>	
			Update manager checks update site and shows the list of available features.
			<br/>Select the features to update and click on the <i>'Next >'</i> button.
			<br/><br/><img border="0" src="../../images/install_search_res.png" alt="Feature Search Result"/><br/><br/>
		</li>
		<li>
			Accept terms of license agreement and click on the <i>'Next >'</i> button.
			<br/><br/><img border="0" src="../../images/install_license.png" alt="Feature License"/><br/><br/>
		</li>
		<li>
			Click on the <i>'Finish'</i> button in order to start the download of selected features.
			<br/><br/><img border="0" src="../../images/install_finish.png" alt="Finish installation"/><br/><br/>
		</li>
		<li>
			Click on the <i>'Install All'</i> button in order to confirm installation of downloaded features.
			<br/><br/><img border="0" src="../../images/install_verification.png" alt="Feature verification"/><br/><br/>
		</li>
		<li>
			To apply installation changes and restart Eclipse click on the <i>'Yes'</i> button.
			<br/><br/><img border="0" src="../../images/restart_dialog.png" alt="Restart dialog"/><br/><br/>
		</li>
		<li>
			After Eclipse restart you are able to start using the updated version of Subversive.<br/><br/>
		</li>
	</ol>
	<br/>
	<br/>
	</div>	

EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>