<?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 = "Phoenix";

	include("sidebar.php");

	$Nav->setLinkList(array());	

	# 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("Project Home", 	"downloads.php");
	#$Nav->addCustomNav("Downloads", 		"downloads.php", 	"_self", 2);
	#$Nav->addCustomNav("Installation", 		"install.php", 		"_self", 2);
	#$Nav->addCustomNav("FAQ", 				"faq.php", 			"_self", 2);

	$Nav->addNavSeparator("Subversive Home", "/subversive/index.php");
	$Nav->addCustomNav("About This Project", "http://www.eclipse.org/projects/project_summary.php?projectid=technology.subversive", "_self", 2);
	$Nav->addCustomNav("Getting Started", "/subversive/documentation/gettingStarted.php", "_self", 2);
	$Nav->addCustomNav("Documentation", "/subversive/documentation/index.php", "_self", 2);
	$Nav->addCustomNav("Downloads", "/subversive/downloads.php", "_self", 2);
	$Nav->addCustomNav("New & Noteworthy", "http://wiki.eclipse.org/Subversive_New_and_Noteworthy", "_self", 2);
	$Nav->addCustomNav("Repository", "http://dev.eclipse.org/viewsvn/index.cgi/?root=Technology_SUBVERSIVE", "_self", 2);
	$Nav->addCustomNav("Bugs", "https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Subversive&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED", "_self", 2);
	$Nav->addCustomNav("Mailing Lists", "/subversive/mailinglists.php", "_self", 2);
	$Nav->addCustomNav("Newsgroup", "/subversive/newsgroup.php", "_self", 2);
	$Nav->addCustomNav("Resources", "/subversive/resources.php", "_self", 2);
	$Nav->addCustomNav("FAQ", "/subversive/documentation/faq.php", "_self", 2);
	$Nav->addCustomNav("Integrations", "/subversive/integrations.php", "_self", 2);
	$Nav->addCustomNav("Project Plan", "http://www.eclipse.org/projects/project-plan.php?projectid=technology.subversive", "_self", 2);
	$Nav->addCustomNav("IP Log - 0.7.9", "/subversive/iplog-0.7.9.php", "_self", 2);
	
	$App->SetGoogleAnalyticsTrackingCode("UA-129970-16");
?>