<?php
/*******************************************************************************
 * Copyright (c) 2006-2014 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Denis Roy (Eclipse Foundation) - initial API and implementation
 *    Christopher Guindon (Eclipse Foundation)  - created getMenuArray()
 *******************************************************************************/
if (!class_exists('MenuItem')) {
  require_once("menuitem.class.php");
}

class Menu {

	#*****************************************************************************
	#
	# menu.class.php
	#
	# Author: 		Denis Roy
	# Date			2004-09-11
	#
	# Description: Functions and modules related to menu objects
	#
	# HISTORY:
	#
	#*****************************************************************************

	private $MenuItemList = array();

	private $projectBranding = "";

	function getProjectBranding() {
	  return $this->projectBranding;
	}

	function setProjectBranding($_projectBranding) {
	  $this->projectBranding = $_projectBranding;
	}

	function getMenuItemList() {
		return $this->MenuItemList;
	}

	function setMenuItemList($_MenuItemList) {
		$this->MenuItemList = $_MenuItemList;
	}

	# Main constructor
	function __construct() {

		$www_prefix = "";

		global $App;

		if(!isset($App)) {
			$App = new App();
		}
		$www_prefix = $App->getWWWPrefix();

		$MenuText = "Home";
		$MenuItem = new MenuItem($MenuText, $www_prefix . "/", "_self", 0);
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;

		$MenuText = "Downloads";
		$MenuItem = new MenuItem($MenuText, $www_prefix . "/downloads/", "_self", 0);
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;

		$MenuText = "Users";
		$MenuItem = new MenuItem($MenuText, $www_prefix . "/users/", "_self", 0);
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;

		$MenuText = "Members";
		$MenuItem = new MenuItem($MenuText, $www_prefix . "/membership/", "_self", 0);
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;

		$MenuText = "Committers";
		$MenuItem = new MenuItem($MenuText, $www_prefix . "/committers/", "_self", 0);
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;

		$MenuText = "Resources";
		$MenuItem = new MenuItem($MenuText, $www_prefix . "/resources/", "_self", 0);
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;

		$MenuText = "Projects";
		$MenuItem = new MenuItem($MenuText, $www_prefix . "/projects/", "_self", 0);
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;

		$MenuText = "About Us";
		$MenuItem = new MenuItem($MenuText, $www_prefix . "/org/", "_self", 0);
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;

	}

	function addMenuItem($_Text, $_URL, $_Target) {
		# Menu Items must be added at position 1 .. position 0 is dashboard, last position is Signout
		$MenuItem = new MenuItem($_Text, $_URL, $_Target, 0);

		# Add incoming menuitem
		$this->MenuItemList[count($this->MenuItemList)] = $MenuItem;
	}

	function getMenuItemCount() {
		return count($this->MenuItemList);
	}

	function getMenuItemAt($_Pos) {
		if($_Pos < $this->getMenuItemCount()) {
			return $this->MenuItemList[$_Pos];
		}
	}

	function getMenuArray() {
		$return = array();
		foreach($this->MenuItemList as $menu){
			$return[] = $menu;
		}
		return $return;
	}

}