<?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:			2008-04-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">

		<br/>
		<h1>Preferences</h1>
		<p>
			To configure preferences refer to 
					<i>'Window>Preferences'</i>
			 menu item.
		</p>
		<p>The default preferences customization is made according to the community advises. But of course each user can change it in the appropriate way to optimize his working cycle - actually this is the main goal of providing the user such rage of customized preferences. The global description of all of the preferences and recommendations on setting them is given inside this part of a guide. It's recommended to pay attention to this part because the optimized settings can seriously increase the users performance during his everyday work.</p>
		<img cellpadding="0" cellspacing="0" border="0" src="images/inside.png"/>
		<br/>
		<a href="preferences/pref_svn.php">SVN</a>
		<br/>
		<a href="preferences/pref_comments.php">Comments and Input History</a>
		<br/>
		<a href="preferences/pref_console.php">Console</a>
		<br/>
		<a href="preferences/pref_diff_viewer.php">Diff Viewer</a>
		<br/>		
		<a href="preferences/pref_label_decors.php">Label Decorations</a>
		<br/>
		<a href="preferences/pref_pass.php">Password Management</a>
		<br/>
		<a href="preferences/pref_performance.php">Performance</a>
		<br/>
		<a href="preferences/pref_autoprops.php">Properties Configuration</a>
		<br/>
		<a href="preferences/pref_graph.php">Revision Graph</a>		
		<br/>
	<br/>
	</div>	

EOHTML;


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