<?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: 		Freddy Allilaire, Marcos Didonet Del Fabro
	# Date:			2005-12-05
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "AMW Documentation";
	$pageKeywords	= "";
	$pageAuthor		= "Freddy Allilaire, Marcos Didonet Del Fabro";
	
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

<!-- Main part -->
	<div id="midcolumn">
		<table width="100%">
			<tr>
				<td width="50%">
					<h1>$pageTitle</h1>
				</td>
				<td align="right">
					<img alt="AMW Logo" src="../resources/amwLogo.png" valign="top" />
				</td>
			</tr>
		</table>

		<p>
			<h2>
				Plugin help <br/>
			</h2>
				
			The user and developer guides are available as Eclipse Help Plugins in the
			<a href="../download/">
			download</a> section (in the same zip file).
			<h2>
				Miscelaneous<br/>
			</h2>	
				More documentation is available in the <a href="http://wiki.eclipse.org/index.php/AMW">
				AMW Wiki Page</a> and in the <a href="../publication.php">Publications </a> page.
			<h2>
				Poster
			</h2>		
				<a href ="./AMW_Poster_web.pdf">AMW Poster</a>.			
		</p>
      	<hr class="clearer" />
     </div>

EOHTML;


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