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

$branding = <<<EOBRANDING
<div id="branding">
<img src="images/projectdash.gif" alt="Dash"/>
</div>
EOBRANDING;
$Menu->setProjectBranding($branding);

$pageTitle = "Dash";

ob_start();
?>
<div id="maincontent">
	<div id="midcolumn">

<h2>What is Project Dash?</h2><p>
Project Dash is a place where the community itself cancollaborate on tools for community awareness and collaboration in support of ourultimate objective of committer quality and cooperation.
This is very much a research project as we are notentirely sure what these tools will be. </p>

<center><table width="100%"><tr>
<td valign="top" align="center"><a href="http://dash.eclipse.org/dash/commits/web-app/"><img src="images/summary.png" border="0"><br>
Commits Explorer</a></td>
<td valign="top" align="center"><a href="http://portal.eclipse.org/"><img src="images/portal.png" border="0"><br>
Foundation Portal</a></td>
</td></table></center>

<h2>The Rest of The Story</h2>
<p>See our <a href="http://wiki.eclipse.org/Dash_Project">wiki pages</a> for
discussions, directions, plans, accomplishments, and all the rest.
</p>

	</div>
	
</div>

<div id="rightcolumn">
 <div class="sideitem">
   <h6>Incubation</h6>
   <div style="text-align: center">
   <a href="/projects/what-is-incubation.php"><img src="/images/egg-incubation.png" alt="Incubation"/></a>
   </div>
 </div>
</div>

<?php
	$html = ob_get_contents();
	ob_end_clean();

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