var timer;

function AddEvent(obj, eventName, handler)
	{
	try
		{
		if(obj.attachEvent)
			{
			obj.attachEvent(eventName, handler);
			}
		else
			{
			obj.addEventListener(eventName, handler, false);
			}
		}
	catch(ex)
		{
		reportControlError('ControlsCore', 'AddEvent', ex)
		}
	}
	
AddEvent(window, 'onload', InitLinks);

var MenuItem1 = new MenuItem("MenuItem1", "", "menu", "", 
	[
	new MenuItem("MenuItem1.1","Mission, Vision and Values","item","../pages/Mission.aspx",null),
	new MenuItem("MenuItem1.2","Strategic Aims","item","../pages/Aims.aspx",null),
	new MenuItem("MenuItem1.3","ROTA services ","item","../pages/ROTAservices.aspx",null),
	new MenuItem("MenuItem1.4","Staff and Volunteers","item","../pages/staff.aspx",null),
	new MenuItem("MenuItem1.5","Patrons and Trustees","item","../pages/PatronsTrustees.aspx",null),
	new MenuItem("MenuItem1.6","Funders","item","../pages/funders.aspx",null),
	new MenuItem("MenuItem1.7","Working for ROTA","item","../pages/WorkingForRota.aspx", null),
	new MenuItem("MenuItem1.8","ROTA Membership","item","../pages/Membership.aspx",null)
	]);

var MenuItem2 = new MenuItem("MenuItem2", "", "menu", "",
	[
	new MenuItem("MenuItem2.1", "What's New","item","../pages/WhatsNew.aspx", null),
	new MenuItem("MenuItem2.1", "Current Press","item","../pages/CurrentPress.aspx", null),
	new MenuItem("MenuItem2.2","Press Archive","item","../pages/PressArchive.aspx",null)
	]);
	
var MenuItem3 = new MenuItem("MenuItem3", "", "menu", "", 
	[
	new MenuItem("MenuItem3.1","Targeting Social Policy","item","../pages/Policy.aspx",null),
	new MenuItem("MenuItem3.2","Crime and Restorative Justice","item","../pages/Crime.aspx",null),
	new MenuItem("MenuItem3.3","Pan Equalities and Human Rights","item","../pages/PanEqualitiesHumanRights.aspx",null),
	new MenuItem("MenuItem3.4","Third Sector","item","../pages/Community.aspx",null),
    new MenuItem("MenuItem3.5","Health Inequalities and Public Services","item","../pages/HealthAndEducation.aspx",null),	
	new MenuItem("MenuItem3.6","National and London Governance","item","../pages/Governance.aspx",null),
	new MenuItem("MenuItem3.7","Representing Equalities","item","../pages/Representation.aspx",null)
	]);

var MenuItem4 = new MenuItem("MenuItem4", "", "menu", "", 
	[
	new MenuItem("MenuItem4.1","Female Voice in Violence and Building Bridges Project","item","../pages/FVV_BBP.aspx",null),
	new MenuItem("MenuItem4.2","Transformative Justice Project","item","../pages/TJP.aspx",null),
	new MenuItem("MenuItem4.3","Restoring Relationships Project","item","../pages/RRP.aspx",null),
	new MenuItem("MenuItem4.4","Winning the Race Coalition","item","../pages/WTRC.aspx",null)
	]);


var MenuItem5 = new MenuItem("MenuItem5", "", "menu", "", 
	[
	new MenuItem("MenuItem5.1","Future ROTA Events","item","../pages/ROTAEvents.aspx",null),
	new MenuItem("MenuItem5.2","Past ROTA Events","item","../pages/PastEvents.aspx",null),
	new MenuItem("MenuItem5.3","External Events","item","../pages/NetworkEvents.aspx",null)
	]);
	
var MenuItem6 = new MenuItem("MenuItem6", "", "menu", "", 
	[
	new MenuItem("MenuItem6.1","Agenda","item","../pages/Agenda.aspx",null),
	new MenuItem("MenuItem6.2","Policy & Race","item","../pages/PolicyRace.aspx",null),
	new MenuItem("MenuItem6.3","Supplement","item","../pages/Supplement.aspx",null),
	new MenuItem("MenuItem6.4","Research Publications","item","../pages/ResearchPublications.aspx",null),
	new MenuItem("MenuItem6.5","Policy E-newsletter","item","../pages/Newsletter.aspx",null),
	new MenuItem("MenuItem6.6","Policy Briefings","item","../pages/PolicyBriefings.aspx",null),
	new MenuItem("MenuItem6.7","Consultation Responses","item","../pages/Reports.aspx",null)
	]);
	
//var MenuItem7 = new MenuItem("MenuItem7", "", "menu", "", 
//	[
//	new MenuItem("MenuItem7.1","Current Press","item","../pages/CurrentPress.aspx",null),
//	new MenuItem("MenuItem7.2","Press Archive","item","../pages/PressArchive.aspx",null)
//	]);

var MenuItem7 = new MenuItem("MenuItem8", "", "item", "../pages/MiNet.aspx", null);

MenuItem1.InitMenu();
MenuItem2.InitMenu();
MenuItem3.InitMenu();
MenuItem4.InitMenu();
MenuItem5.InitMenu();
MenuItem6.InitMenu();
MenuItem7.InitMenu();

var ActiveMenu, elTopItem;

function MenuItem(Name, Caption, Type, URL, MenuItems)
	{
	this.Name = Name;
	this.Caption = Caption;
	this.Type = Type;
	this.URL = URL;
	this.Visible = false;
	this.MouseOverSubMenu = null;
	this.el = null;
	
	if(MenuItems == null)
		{
		this.MenuItems = new Array();
		}
	else
		{
		this.MenuItems = MenuItems;
		}
	
	this.InitMenu = miInitMenu;
	this.GetObjectName = miGetObjectName;
	this.ShowMenu  = miShowMenu;
	this.HideMenu = miHideMenu;
	this.InitiateHideMenu = miInitiateHideMenu;
	this.OnRollOver = miOnRollOver;
	this.Navigate = miNavigate;
	}
	
function miNavigate(el)
	{
	try
		{
		if(this.URL != "")
			{
			window.location = this.URL;
			}
		}
	catch(ex)
		{
		
		}
	}
	
function miShowMenu(el)
	{
	var left, top, elHeader, elItem, elMenu, i, mi;
	
	try
		{
		if(this.timer != null)
			{
			window.clearTimeout(this.timer);
			this.timer = null;
			}
			
		if(this.Visible)
			{
			return;
			}
			
		if(ActiveMenu != null)
			{
			if(ActiveMenu.Name == this.Name)
				{
				return;
				}
			else
				{
				if(ActiveMenu.Name != this.ParentName)
					{
					ActiveMenu.HideMenu();
					}
				}
			}
			
		if(this.Type == 'item')
			{
			return;
			}
			
		
		
		if(this.ParentItem != null)
			{
			for(i=0; i < this.ParentItem.MenuItems.length; i++)
				{
				mi = this.ParentItem.MenuItems[i];
				
				if(mi.Visible && mi.Name != this.Name)
					{
					mi.InitiateHideMenu(10);
					}
				}
			}
		
		//window.status = "Show menu " + this.Name;
		
		elHeader = document.getElementById("header-content");
		elMenu = document.createElement("div");
		
		if(this.ParentItem == null)
			{
			left = el.offsetLeft + el.parentNode.parentNode.parentNode.offsetLeft;
			top = (el.parentNode.parentNode.parentNode.offsetTop + el.offsetHeight);
			
			el.style.color = "#ffffff";
			elTopItem = el;
			elMenu.className = "menuBox"
			}
		else
			{
			left = el.parentNode.offsetLeft + el.parentNode.offsetWidth - 1;
			top = el.parentNode.offsetTop + el.offsetTop;
			elMenu.className = "subMenuBox"
			}
		
		elMenu.style.position = "absolute";
		elMenu.style.display = "block";
		elMenu.style.left = left + "px";
		elMenu.style.top = top + "px";
		
		for(i=0; i < this.MenuItems.length; i++)
			{
			mi = this.MenuItems[i];
			
			elItem = document.createElement("div");
			elItem.MenuName = mi.Name;
			
			elItem.style.display = "block";
			
			if(i == 0)
				{
				elItem.className = "menuItem topMenuItem";
				}
			else
				{
				elItem.className = "menuItem";
				}
			
			
			switch(mi.Type)
				{
				case 'item':
					elItem.innerHTML = "<div onmouseover=\"" + this.GetObjectName() + ".MenuItems[" + i + "].OnRollOver();\" onclick=\"if(ActiveMenu != null){ActiveMenu.HideMenu(true);} window.location = '" + mi.URL + "';\">" + mi.Caption + "</a>";
					break;
					
				case 'menu':
					elItem.innerHTML = "<div onmouseover=\"" + this.GetObjectName() + ".MenuItems[" + i + "].ShowMenu(this.parentNode);\" onclick=\"" + this.Name + ".MenuItems[" + i + "].ShowMenu(this.parentNode);\" onmouseout=\"" + this.Name + ".MenuItems[" + i + "].InitiateHideMenu()\">" + mi.Caption + "</div>";
					break;
					
				}
				
			elMenu.appendChild(elItem);
			}		
			
		
		elHeader.appendChild(elMenu);
		this.el = elMenu;
		elMenu.MenuItem = this;
		this.Visible = true;
		
		elMenu.onmouseover = function(){if(this.MenuItem.timer != null){window.clearTimeout(this.MenuItem.timer);} this.MenuItem.MouseOverSubMenu = true;};
		elMenu.onmouseout = function(){if(this.MenuItem != null){this.MenuItem.InitiateHideMenu(); this.MenuItem.MouseOverSubMenu = false;}}
			
		if(this.ParentItem == null)
			{
			ActiveMenu = this;
			}
		}
	catch(ex)
		{
		alert(ex.toString());
		}
	}
	
function miInitiateHideMenu(time)
	{
	var mi, i;
	
	try
		{
		//window.status = "Initiate hide for " + this.Name;
		
		//check no submenu active
		for(i=0; i < this.MenuItems.length; i++)
			{
			if(this.MenuItems[i].Visible)
				{
				return;
				}
			}
		
		mi = this;
		
		if(time == null)
			{
			time = 500;
			}
			
		if(this.timer != null)
			{
			window.clearTimeout(this.timer);
			}
			
		this.timer = window.setTimeout(function(){mi.HideMenu();}, time);
		}
	catch(ex)
		{
		
		}
	}

function miHideMenu(force)
	{
	var i, mi;
	
	try
		{
		//window.status = this.Name;
		if(this.Visible == false)
			{
			return;
			}
		
		if(this.MouseOverSubMenu && !force)
			{
			return;
			}
		
		if(this.el != null)
			{
			this.el.parentNode.removeChild(this.el);
			this.el.MenuItem = null;
			this.el = null;
			}
		
		this.Visible = false;
		
		if(this.ParentItem != null)
			{
			this.ParentItem.HideMenu();
			}
			
		for(i=0; i < this.MenuItems.length; i++)
			{
			mi = this.MenuItems[i];
			
			if(mi.Visible)
				{
				mi.HideMenu();
				}
			}

		if(ActiveMenu != null)
			{
			if(ActiveMenu.Name == this.Name)
				{
				if(elTopItem != null)
					{
					elTopItem.style.color = "";
					elTopItem = null;
					}
					
				ActiveMenu = null;
				}
			}
		}
	catch(ex)
		{
		
		}
	}
	
function miOnRollOver()
	{
	try
		{
		//window.status = "Rollover " + this.Name;
		
		if(this.ParentItem.ParentItem != null)
			{
			//alert(1);
			}
		
		if(this.ParentItem != null)
			{
			if(this.ParentItem.timer != null)
				{
				window.clearTimeout(this.ParentItem.timer);
				window.ParentItem.timer = null;
				}
			}
		}
	catch(ex)
		{
		
		}
	}

function miOnRollOverSubMenu()
	{
	try
		{
		this.MouseOverSubMenu = true;
		
		if(this.ParentItem != null)
			{
			this.ParentItem.OnRollOverSubMenu();
			}
		}
	catch(ex)
		{
		
		}
	}
	
function miInitMenu(parent)
	{
	var i, mi;
	
	try
		{
		this.ParentItem = parent;
		
		if(parent == null)
			{
			this.ParentName = this.Name;
			}
		else
			{
			this.ParentName = parent.ParentName;
			}
		
		for(i=0; i < this.MenuItems.length; i++)
			{
			mi = this.MenuItems[i];
			
			mi.InitMenu(this);
			}
		}
	catch(ex)
		{
		}
	}	

function miGetObjectName()
	{
	var i, mi, s;
	
	try
		{
		if(this.ParentItem == null)
			{
			return this.Name;
			}
		else
			{
			for(i=0; i < this.ParentItem.MenuItems.length; i++)
				{
				mi = this.ParentItem.MenuItems[i];
				
				if(mi.Name == this.Name)
					{
					return mi.ParentItem.GetObjectName() + ".MenuItems[" + i + "]";
					}
				}
			}
		}
	catch(ex)
		{
		
		}
	}


function OpenWindow(url)
	{
	try
		{
		window.open(url);
		}
	catch(ex){}
	}
	
function InitLinks()
	{
	var links, i;
	
	try
		{
		links = document.getElementsByTagName("a");
		
		for(i=0; i < links.length; i++)
			{
			if(links[i].className.toLowerCase().substr(0, 9) == "newwindow")
				{
				links[i].onclick = function(){window.open(this.href); return false;};
				}
			}
		}
	catch(ex){}
	}