<?php
class StandardProjectNav {
	// About
	var $description;
	var $project_plan;
	var $leadership;
	var $committers;
	var $contributors;
	// Downloads
	var $downloads;
	// Getting Started
	var $getting_started;
	// Development
	var $development_plan;
	var $mailing_lists;
	var $cvs;
	var $bugs;
	
	function generate_nav( ) {
		// need to turn off the standard four items to replace with these
		// need to have blank URLs render in gray
		$Nav->addCustomNav("Test Test", "test.html", "", 1);
		echo "in generate nav" . $Nav . "nav";
		$Nav->addCustomNav("Description", $description, "", 1);
			$Nav->addCustomNav("Project Plan", $project_plan, "", 2);
			$Nav->addCustomNav("Leadership", $leadership, "", 2);
			$Nav->addCustomNav("Committers", $committers, "", 2);
			$Nav->addCustomNav("Contributors", $contributors, "", 2);
		$Nav->addCustomNav("Downloads", $downloads, "", 1);
		$Nav->addCustomNav("Getting Started", $getting_started, "", 1);
		$Nav->addCustomNav("Development", $development, "", 1);
			$Nav->addCustomNav("Project Plan", $development_plan, "", 2);
			$Nav->addCustomNav("Mailing Lists", $mailing_lists, "", 2);
			$Nav->addCustomNav("CVS", $cvs, "", 2);
			$Nav->addCustomNav("Bugs", $bugs, "", 2);
	}
}

$Nav->addCustomNav("Test Test 3", "test.html", "", 1);
?>
