<?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'

	#*****************************************************************************
	#
	# index.php
	#
	# Author: 		Marcos Didonet Del Fabro
	# Date:			2006-05-19
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "ATLAS Model Weaver Zoo";
	$pageKeywords	= "Zoo, metamodel, AMW, model weaving, metamodel extension, atl";
	$pageAuthor		= "Marcos Didonet Del Fabro";
	
	# End: page-specific settings
	#

	include('../../am3/zoos/script/zoo_script.php');
	$zoo = getZoo($pageTitle, "/gmt/amw/zoo/AMWZoo.xml");
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

<div id="midcolumn">
	<h1>$pageTitle</h1>
	<p>
		The AMW Zoo is a zoo containing weaving metamodels and extensions of weaving metamodels 
		expressed in KM3. 
	</p>
	<p>
		Technical remarks:<br/>
		<ul class="midlist">
  		<li>
  		The extensions are represented as portions of KM3 files and must be used together with the weaving core metamodel.
		</li>
		</ul>
	</p>

	<a name="zoo"></a>
	$zoo


</div>

EOHTML;


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