<?php

	# Set the theme for your project's web pages.
	# See the Committer Tools "How Do I" for list of themes
	# https://dev.eclipse.org/committers/
	# Optional: defaults to system theme
	$theme = "Nova";

	# Define your project-wide Nav bars here.
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# these are optional
	$Nav->addNavSeparator("About this project", "http://www.eclipse.org/projects/project_summary.php?projectid=technology.stem");
	$Nav->addNavSeparator("Project Home", 	"index.php");
	$Nav->addCustomNav("Download STEM", 		"downloads.php", 	"_self", 2);
    $Nav->addCustomNav("Tutorials", 		"http://wiki.eclipse.org/Tutorials_for_Developers", 		"_self", 2);
	$Nav->addCustomNav("FAQ", 				"http://wiki.eclipse.org/STEM_FAQ", 			"_blank", 2);
	#
	$Nav->addNavSeparator("Downloads",	 	"downloads.php");
	$Nav->addCustomNav("Downloads", 		"downloads.php", 	"_self", 2);
	$Nav->addCustomNav("Developers Setup", 	"http://wiki.eclipse.org/STEM_Eclipse_Setup", 		"_self", 2);
	$Nav->addCustomNav("Installation", 		"http://wiki.eclipse.org/index.php/Installation_Guide", 		"_self", 2);
	#
	$Nav->addNavSeparator("Documentation", 	"http://wiki.eclipse.org/STEM");
	$Nav->addCustomNav("FAQ", 				"http://wiki.eclipse.org/STEM_FAQ", 			"_blank", 2);
	$Nav->addCustomNav("Getting Started", 	"http://wiki.eclipse.org/Welcome_STEM_Developers", 			"_blank", 2);
	$Nav->addCustomNav("Plan", 				"http://www.eclipse.org/projects/project-plan.php?projectid=technology.stem", 			"_blank", 2);
	$Nav->addCustomNav("IP Log", "http://www.eclipse.org/projects/ip_log.php?projectid=technology.stem", "_blank", 2);
	$Nav->addCustomNav("Tutorials", 		"http://wiki.eclipse.org/Tutorials_for_Developers", 		"_self", 2);
	$Nav->addCustomNav("Browse git", 		"https://git.eclipse.org/c/stem/org.eclipse.stem.git/tree/", 			"_blank", 2);
	$Nav->addCustomNav("STEM on Wikipedia", "http://en.wikipedia.org/wiki/Spatiotemporal_Epidemiological_Modeler", 		"_self", 2);

	#
	$Nav->addNavSeparator("Community", 		"http://wiki.eclipse.org/STEM#More_About_STEM");
	$Nav->addCustomNav("Wiki", 				"http://wiki.eclipse.org/STEM", 		"_self", 2); 
	#$Nav->addCustomNav("Wiki", 				"http://wiki.eclipse.org/index.php/STEM", 		"_self", 2); 
	$Nav->addCustomNav("Newsgroup", 		"http://www.eclipse.org/forums/index.php?t=thread&frm_id=72", 		"_self", 2);
	$Nav->addCustomNav("Developers Forum", 		"http://dev.eclipse.org/mhonarc/lists/stem-dev/threads.html#00022", 		"_self", 2);
	$Nav->addCustomNav("Ebola Forum", 		"http://dev.eclipse.org/mhonarc/lists/stem-ebola/threads.html#00022", 		"_self", 2);
	$Nav->addCustomNav("Create Feature Requests", 	"feature_request.php", 			"_blank", 2);
	$Nav->addCustomNav("List of requested features", "https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;bug_severity=enhancement;product=STEM", "_blank", 2);
	$Nav->addCustomNav("Open Bugs", 		"https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;product=STEM", 			"_blank", 2);
	$Nav->addCustomNav("Submit Bugs",		"https://bugs.eclipse.org/bugs/enter_bug.cgi?product=STEM", 			"_blank", 2);
	$Nav->addCustomNav("Contributors",		"http://wiki.eclipse.org/The_STEM_Development_Team", 			"_blank", 2);
	$Nav->addCustomNav("Weekly Conf. Call",	"http://wiki.eclipse.org/Join_the_STEM_Community", 			"_blank", 2);
?>
