<?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'
/*******************************************************************************
 * Copyright (c) 2011
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors: Adrian Mos
 *    
 *******************************************************************************/

	$pageTitle 		= "Mangrove - Documentation";
	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/default/style.css"/>');

	$html  = <<<EOHTML
<div id="midcolumn">
<h2>$pageTitle</h2>
<p>This page is still under construction. We will soon post more comprehensive documentation, including tutorials for setting up and using Mangrove.</p>

<h3>Overview of Mangrove's Functionality</h3>

<p>Short video illustrating basic import-export functionality</p>
<div id="screencast">
<object width="640" height="480"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12236080&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12236080&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object><p><a href="http://vimeo.com/12236080">Connecting BPMN and SCA with Mangrove</a> from <a href="http://vimeo.com/user3956062">Adrian Mos</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
</div>

<p> An older webinar that contains an overall presentation of the project and a simple demo, is available from the link below.
<p>
	<a href="http://live.eclipse.org/node/505" style="display: block;">
		Bridging SOA Editors in Eclipse STP with the Intermediate Model<br/>
		<img src="images/iconWebinar.gif" style="float: left; margin-right: 8px;"/>
	</a>
</p>	

<h3>Older Wiki Page</h3>
<a href="http://wiki.eclipse.org/STP_Intermediate_Metamodel">Older STP-IM wiki</a></li>

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