<?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: 		Denis Roy
	# Date:			2005-06-16
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "BPEL Designer Project";
	$pageKeywords	= "BPEL, SOA, WSDL, Eclipse";
	$pageAuthor		= "BPEL Team";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	$Nav->addNavSeparator("Interesting Links", 	"");
	$Nav->addCustomNav("Scientific Workflows using BPEL", "http://sse.cs.ucl.ac.uk/index.php?id=omii-bpel", "_blank", 1);
	$Nav->addCustomNav("WS-BPEL 2.0", "http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html", "_blank", 1);
	$Nav->addCustomNav("OASIS TC", "http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel", "_blank", 1);
	
	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML


<div id="maincontent">
	<div id="midcolumn">
		<h1>$pageTitle</h1>
		<h2>User Resources</h2>
		Some useful information to help you get started with the BPEL designer.
		<div class="homeitem3col">
			<h3>Guides, HowTos</h3>
			<ul>
			
				<li><a href="downloads.php">Install the Designer</a> <span class="dates">11/28/2006</span></li>
			
				<li><a href="users/howto/project.php">Create a New Project</a>  <span class="dates">11/28/2006</span></li>
				<li><a href="users/howto/wsdl.php">Add a WSDL</a>  <span class="dates">11/28/2006</span></li>
				<li><a href="users/howto/xsd.php">Add a Schema</a> <span class="dates">11/28/2006</span></li>	
				<li><a href="users/howto/extension.php">Write a custom extension Activity</a> <span class="dates">10/22/2008</span></li>
				<li><a href="users/howto/ode.php">Develop, deploy and run a Hello World Process with the BPEL Designer and Apache ODE</a> <span class="dates">10/22/2008</span></li>									
			</ul>
		</div>
		
		<div class="homeitem3col">
			<h3>What's new</h3>
			<ul>
                <li><a href="users/m4.php">M4 Information</a>  <span class="dates">09/01/2010</span></li>			
				<li><a href="users/m3.php">M3 Information</a>  <span class="dates">06/29/2007</span></li>			
				<li><a href="users/m2.php">M2 Information</a>  <span class="dates">11/28/2006</span></li>
				<li><a href="users/m1.php">M1 Information</a>  <span class="dates">11/15/2006</span></li>
			</ul>
		</div>
		<hr class="clearer" />
	</div>
		
	<div id="rightcolumn">
    	<div class="sideitem">
       		<h6>Incubation</h6><p>
       		<div align="center">
        		<a href="/projects/what-is-incubation.php">
           		<img align="center" src="/images/egg-incubation.png" border="0"/></a>
       		</div>
       		<div align="center">  
         		This project is in the 
         		<a href="/projects/dev_process/validation-phase.php">Incubation Phase</a>
       		</div>
     	</div>
	</div>
</div>

EOHTML;


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