<?php
/**
 * Copyright (c) 2016, 2017, 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Christopher Guindon (Eclipse Foundation) - Initial implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */

require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");

$theme = NULL;

$Nav = new Nav();
$Nav->addNavSeparator("About Us", "/org/");
$Nav->addCustomNav("Annual Report", "/org/foundation/reports/annual_report.php", "_self", 1);
$Nav->addCustomNav("Foundation", "/org/foundation/", "_self", 1);
$Nav->addCustomNav("Governance", "/org/documents/", "_self", 1);
$Nav->addCustomNav("Legal Resources", "/legal/", "_self", 1);
$Nav->addCustomNav("Contact Us", "/org/foundation/contact.php", "_self", 1);

$Nav->addNavSeparator("ECA", "/legal/ECA.php");
$Nav->addCustomNav("Sign", "/contribute/cla", "_self", 1);
$Nav->addCustomNav("Validation Tool", "/contribute/cla", "_self", 1);

$Nav->addNavSeparator("EPL-2.0", "/legal/epl-2.0");
$Nav->addCustomNav("Plain HTML", "/org/documents/epl-2.0/EPL-2.0.html", "_self", 1);
$Nav->addCustomNav("Plain Text", "/org/documents/epl-2.0/EPL-2.0.txt", "_self", 1);
$Nav->addCustomNav("PDF", "/org/documents/epl-2.0/EPL-2.0.pdf", "_self", 1);
$Nav->addCustomNav("FAQ", "/legal/epl-2.0/faq.php", "_self", 1);

$Nav->addNavSeparator("EPL-1.0", "/org/documents/epl-v10.php");
$Nav->addCustomNav("Plain HTML", "/org/documents/epl-v10.html", "_self", 1);
$Nav->addCustomNav("FAQ", "/legal/eplfaq.php", "_self", 1);

$Nav->addNavSeparator("Licenses", "/legal/licenses.php");
$Nav->addCustomNav("Approved 3rd Party", "/legal/licenses.php#approved", "_self", 1);
$Nav->addCustomNav("Non Approved", "/legal/licenses.php#nonapproved", "_self", 1);
$Nav->addCustomNav("Docs &amp; examples", "/legal/noncodelicenses.php", "_self", 1);
