<?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();
$Nav  = NULL;
$Menu   = new Menu();
include($App->getProjectCommon());

  #*****************************************************************************
  #
  #
  #****************************************************************************

  #
  # Begin: page-specific settings.  Change these.
  $pageTitle     = "Orbit";
  $pageKeywords  = "orbit, bundles, third party, code, equinox, osgi, framework, runtime";

  # 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("My Page Links",   "downloads.php");
  # $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
  # $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

  # End: page-specific settings
  #

  # Paste your HTML content between the markers!
ob_start();

?>

  <div id="midcolumn">
        <p>This project will provide a repository of bundled versions of third party
          libraries that are approved for use in one or more Eclipse projects.</p>
  </div>

<?php
  $html = ob_get_clean();

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