<?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 		= "Video Tutorials - Eclipse Subversive";
	$pageKeywords	= "subversive, video, guide, 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>Video Tutorials</h1>
		<p>
			Here you can find the video tutorials created by the Subversive team, that explain how to install, configure and use Subversive to work with SVN in Eclipse.
		</p>
		<h2>How to Install Subversive</h2>
		<p>
			Learn how to install Subversive in Eclipse. This tutorial demonstrated the different methods of installation of Subversive and SVN connectors.
		</p>
		<iframe width="560" height="315" src="https://www.youtube.com/embed/04L4rkykWZw" frameborder="0" allowfullscreen></iframe>
		<h2>Getting Started with Subversive</h2>
		<p>
			Learn how to use the basic features of Subversive SVN plug-in for Eclipse to checkout a project from SVN, commit changes, get updates and check the changes history.
		</p>
		<iframe width="560" height="315" src="https://www.youtube.com/embed/Szgs3jmo2YU" frameborder="0" allowfullscreen></iframe>
	</div>
	
	<div id="rightcolumn">
        $sidebar		
	</div>	

EOHTML;
		

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>