<?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 		= "Support - Eclipse Subversive";
	$pageKeywords	= "subversive, support, svn, subversion";
	$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>Support</h1>
		<p>
			Use the following resources to get a support from the Subversive team and the Subversive community.
		</p>
		<ul>
			<li><a href="https://www.eclipse.org/forums/index.php/f/73/">Community forum</a> - Subversive Community forum is a place where our community can discuss general topics related with the project. It's a right place to ask questions about Subversive usage, share feedback and request a help.</li>		
			<li><a href="/subversive/mailinglists.php">Mailing Lists</a> - it is a primary communication channel with Subversive developers regarding Subversive development and integration issues. If you are interested in getting announcements for new versions, or want to participate in discussions of the development or integration topics, then you can subscribe to one of the project's mailing lists.</li>
			<li><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Subversive&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED">Issues (Bugzilla)</a> - Review opened Subversive bugs on Eclipse Bugzilla.</li>
			<li><a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Subversive&rep_platform=All&op_sys=All">Report a Bug</a> - Submit a new Subversive bug to Eclipse Bugzilla.</li>
		</ul>
	</div>
	
	<div id="rightcolumn">
        $sidebar		
	</div>	

EOHTML;
		

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