			///////////////////////////////////////////////
	// SETUP MENU
	//////////////////////////////////////////////

		//
		// Global menu settings
		//
		
		var iMenuItemWidth = 80;
		var iMenuItemHeight = 20;
		var bDebugMenu = false;
		// Show titles on menu items
		var bShowMenuItemTitles = false;
		// Menu hide time
		var iMenuHideTime = 600;
		// Global imeout used across multiple functions 
		var iMenuClearTimeout = null;

		//
		// Parent menu items settings
		//

		// Parent menu essentials
		var sParentMenuTargetLayer = 'parentmenu';
		var sParentMenuLayerClass = 'parentMenuItem';
		
		// Parent menu active class
		var sUseParentMenuLayerActiveClass = true;
		var sParentMenuLayerActiveClass = 'parentMenuItemActive';

		// Parent menu items positioning
		var iParentMenuItemMargin_top = 5;
		var iParentMenuItemMargin_right = 4;
		var iParentMenuItemMargin_bottom = 1;
		var iParentMenuItemMargin_left = 5;
		
		//
		// Parent menu item formatting
		//
		
		// Active colours
		var sParentActiveBackgroundColor = '';
		var sParentActiveColor = '#ffffff';
		// Inactive colours
		var sParentInactiveBackgroundColor = '';
		var sParentInactiveColor = '#ffffff';
		
		// Borders
		var bUseParentMenuItemBorders = false;

		var sParentInactiveMenuItemBorderWidth = '1px';
		var sParentInactiveMenuItemBorderStyle = 'solid';
		var sParentInactiveMenuItemBorderColor = '#339900';
		
		var sParentActiveMenuItemBorderWidth = '1px';
		var sParentActiveMenuItemBorderStyle = 'solid';
		var sParentActiveMenuItemBorderColor = '#339900';
		
		// Background images
		var bUseParentBackgroundImages = true;

		var sParentInactiveMenuItemBackgroundImage = 'url(../images/layout/HeaderNav-Background.png)';
		var sParentInactiveMenuItemBackgroundRepeat = 'no-repeat';
		var sParentInactiveMenuItemBackgroundPosition = 'top left';
		
		var sParentActiveMenuItemBackgroundImage = 'url(../images/layout/HeaderNav-Active-Background.png)';
		var sParentActiveMenuItemBackgroundRepeat = 'no-repeat';
		var sParentActiveMenuItemBackgroundPosition = 'top left';

		// Define if a div is nested in the parent menu item 
		// for the parent menu item label
		var bUseParentNestedMenuItemLabel = true;
		// CSS style for the parent menu item label
		var iParentMenuItemLabelStyle = 'margin:0px 0px 0px 0px';

	///////////////////////////////////////////////
	// SETUP SUB MENU ITEMS
	//////////////////////////////////////////////
		var iSubMenuItemWidth = 180;
		var iSubMenuItemHeight = 20;

		// Parent menu essentials
		var sSubMenuTargetLayer = 'submenu';
		var sSubMenuLayerClass = 'subMenuItem';
		
		// Sub menu active class
		var sUseSubMenuLayerActiveClass = true;
		var sSubMenuLayerActiveClass = 'subMenuItemActive';

		// Parent menu items positioning
		var iSubMenuItemVerticalSpacing = 0;
		var iSubMenuItemHorizontalSpacing = 1;
		
		// Active colours
		var sSubMenuItemActiveBackgroundColor = '#94c93e';
		var sSubMenuItemActiveColor = '#ffffff';
		// Inactive colours
		var sSubMenuItemInactiveBackgroundColor = '#3b6116';
		var sSubMenuItemInactiveColor = '#ffffff';
		
		// Borders
		var bUseSubMenuItemBorders = true;

		var sSubMenuItemInactiveBorderWidth = '1px';
		var sSubMenuItemInactiveBorderStyle = 'solid';
		var sSubMenuItemInactiveBorderColor = '#ffffff';
		
		var sSubMenuItemActiveBorderWidth = '1px';
		var sSubMenuItemActiveBorderStyle = 'solid';
		var sSubMenuItemActiveBorderColor = '#ffffff';
		
		// Background images

		// Define if a div is nested in the parent menu item 
		// for the parent menu item label
		var bUseSubMenuItemNestedMenuItemLabel = true;
		// CSS style for the sub menu item label
		var sSubMenuItemLabelStyle = 'margin:2px 0px 0px 2px';

	///////////////////////////////////////////////
	// GENERATE MENU
	//////////////////////////////////////////////

		// GLOBAL MENU ITEMS
		var aMenuItems = new Array();
		
		var iMenuClearTimeout = null;
		
		function menuItem(sID, sMenuItemLabel, sHref, sSubMenuTargetLayer)
		{
			// Add ID to global menu items array
			aMenuItems[aMenuItems.length] = sID;
			
			// OBJECT VARIABLES
			this.id = sID;
			this.sMenuItemLabel = sMenuItemLabel;
			this.sHref = sHref;
			this.sSubMenuTargetLayer = sSubMenuTargetLayer;
			
			this.aSubMenuItems = new Array();
			
			// OBJECT METHODS
			this.active = active;
			this.inactive = inactive;
		}
		
		function subMenuItem(sParentMenuItemId, sSubMenuItemId, sText, sHref)
		{
			eval(sParentMenuItemId +'.aSubMenuItems').push(sSubMenuItemId);
			
			this.id = sSubMenuItemId;
			this.parentId = sParentMenuItemId;
			this.sText = sText;
			this.sHref = sHref;
			
			this.aSubMenuItems = new Array();
			
			this.active = active;
			this.inactive = inactive;
		}
		
		function drawMenu()
		{
			//
			//	Write the parent menu items
			//
			sMainLinks = '';
			
			for (iCounter = 0; iCounter < aMenuItems.length; iCounter++)
			{
				// Create the default menu item left variable
				// iParentMenuItemMargin_left is set up from the 
				// menu setup
				var iMenuItemLeft = iParentMenuItemMargin_left;
				
				// Position menu item
				if (iCounter != 0) iMenuItemLeft += (iCounter * iMenuItemWidth) + (iCounter * iParentMenuItemMargin_right);
				else iMenuItemLeft = iParentMenuItemMargin_left;
				
				// Set menu item inline style
				var sStyle = '';

				sStyle += 'position:absolute;';
				sStyle += 'top:'+ iParentMenuItemMargin_top +'px;';
				sStyle += 'left:'+ iMenuItemLeft +'px;';
				sStyle += 'width:'+ iMenuItemWidth +'px;';
				sStyle += 'height:'+ iMenuItemHeight +'px;';
				sStyle += 'background-color:'+ sParentInactiveBackgroundColor +';';
				sStyle += 'color:'+ sParentInactiveColor +';';
				
				if (bUseParentMenuItemBorders)
				{
					sStyle += 'border-width:'+ sParentInactiveMenuItemBorderWidth +';';
					sStyle += 'border-style:'+ sParentInactiveMenuItemBorderStyle +';';
					sStyle += 'border-color:'+ sParentInactiveMenuItemBorderColor +';';
				}
				
				// Set menu item
				sMainLinks += '<div ';
				sMainLinks += 'class="'+ sParentMenuLayerClass +'" ';
				sMainLinks += 'id="'+ aMenuItems[iCounter] +'"';
				sMainLinks += ' onmouseover="'+ aMenuItems[iCounter] +'.active()" ';
				sMainLinks += ' onmouseout="'+ aMenuItems[iCounter]+'.inactive()" ';
				
				if (eval(aMenuItems[iCounter] +'.sHref'))
				{
					sStyle += 'cursor:hand;cursor:pointer;';

					// Add the href to the menu item
					sMainLinks += ' onclick="window.location.href = \''+ eval(aMenuItems[iCounter] +'.sHref') +'\'"';
					
					// Add a title to the menu item
					if (bShowMenuItemTitles) sMainLinks += ' title="'+ eval(aMenuItems[iCounter] +'.sMenuItemLabel') +'"';
				}
				
				// Add the menu item style
				sMainLinks += 'style="'+ sStyle +'" ';

				// Add the text to the menu item
				sMainLinks += '>\n';
				
				if (bUseParentNestedMenuItemLabel)
				{
					sMainLinks += '\t<div style="'+ iParentMenuItemLabelStyle +'">';
					sMainLinks += eval(aMenuItems[iCounter] +'.sMenuItemLabel') +'';
					sMainLinks += '</div>\n';
				}
				else
				{
					sMainLinks += eval(aMenuItems[iCounter] +'.sMenuItemLabel') +'';
				}

				sMainLinks += '</div>\n\n';
			}
			
			if (bDebugMenu) alert(sMainLinks);
			document.getElementById(sParentMenuTargetLayer).innerHTML = sMainLinks;
		}

		function active()
		{
			// If the hide timeout has been set, clear it
			if (iMenuClearTimeout) clearTimeout(iMenuClearTimeout);
			
			//
			// Deal with parent items
			//

			// Return parent layers to default styles
			for (iCounter = 0; iCounter < aMenuItems.length; iCounter++)
			{
				if (this.id != aMenuItems[iCounter])
				{
					var oMenuItem = document.getElementById(aMenuItems[iCounter]);
					
					oMenuItem.style.backgroundColor = sParentInactiveBackgroundColor;
					oMenuItem.style.color = sParentInactiveColor;

					if (bUseParentMenuItemBorders)
					{
						oMenuItem.style.borderWidth = sParentInactiveMenuItemBorderWidth;
						oMenuItem.style.borderStyle = sParentInactiveMenuItemBorderStyle;
						oMenuItem.style.borderColor = sParentInactiveMenuItemBorderColor;
					}

					if (sUseParentMenuLayerActiveClass)
					{
						oMenuItem.className = sParentMenuLayerClass;
					}
				}
			}
			
			//
			// Get the top level menu item left position
			//

			var iCurrentMenuItemPosition_left;

			if (!this.parentId)
			{
				var oActiveParentMenuItem = document.getElementById(this.id);

				oActiveParentMenuItem.style.backgroundColor = sParentActiveBackgroundColor;
				oActiveParentMenuItem.style.color = sParentActiveColor;
				
				iCurrentMenuItemPosition_left = getIntFromStyle(oActiveParentMenuItem.style.left);

				if (bUseParentMenuItemBorders)
				{
					oActiveParentMenuItem.style.borderWidth = sParentActiveMenuItemBorderWidth;
					oActiveParentMenuItem.style.borderStyle = sParentActiveMenuItemBorderStyle;
					oActiveParentMenuItem.style.borderColor = sParentActiveMenuItemBorderColor;
				}

				if (sUseParentMenuLayerActiveClass)
				{
					oActiveParentMenuItem.className = sParentMenuLayerActiveClass;
				}
			}

			//
			// Deal with sub menu target layer
			//

			var oSubMenuTargetLayer = document.getElementById(sSubMenuTargetLayer);
			
			oSubMenuTargetLayer.style.top = iParentMenuItemMargin_top + iMenuItemHeight + iParentMenuItemMargin_bottom +'px';
			if (iCurrentMenuItemPosition_left) oSubMenuTargetLayer.style.left = iCurrentMenuItemPosition_left +'px';
			oSubMenuTargetLayer.style.visibility ='visible';
			
			// Layer that holds the sub menu items
			var oSubMenuContainer = document.getElementById('submenu');
			
			//
			// Clean up the sub menu items not being displayed
			//

			if (oSubMenuContainer.lastChild)
			{
				if (!this.parentId)
				{
					for (iCounter = oSubMenuContainer.childNodes.length; iCounter > 0; iCounter--)
					{
						var sThisObjectFinalSubMenuId = this.aSubMenuItems[this.aSubMenuItems.length - 1];
						var sCurrentChildNodeObjectId = oSubMenuContainer.childNodes[iCounter - 1].id;
						
						if (sThisObjectFinalSubMenuId == sCurrentChildNodeObjectId) break;

						oSubMenuContainer.removeChild(oSubMenuContainer.lastChild);
					}
				}
				else
				{
					for (iCounter = oSubMenuContainer.childNodes.length; iCounter > 0; iCounter--)
					{
						var oParentMenuItem = eval(this.parentId);
						
						var sParentObjectFinalSubMenuId = oParentMenuItem.aSubMenuItems[oParentMenuItem.aSubMenuItems.length - 1];
						var sCurrentChildNodeObjectId = oSubMenuContainer.childNodes[iCounter - 1].id;
						
						if (sParentObjectFinalSubMenuId == sCurrentChildNodeObjectId) break;
						
						oSubMenuContainer.removeChild(oSubMenuContainer.lastChild);
					}
				}
			}
			
			//
			// Create/display sub menu items
			//

			if (this.aSubMenuItems.length)
			{

				for (iCounter = 0; iCounter < this.aSubMenuItems.length; iCounter++)
				{
					// If the current submenu item already
					// exists go round again
					if (document.getElementById(this.aSubMenuItems[iCounter]))
					{
						continue;
					}

					//
					// Create sub menu elements
					//

					// Create the content of the menu item
					var sSubMenuElementLabel = eval(this.aSubMenuItems[iCounter] +'.sText');
					var sSubMenItemText = '';

					if (bUseSubMenuItemNestedMenuItemLabel)
					{
						sSubMenItemText += '\t<div style="'+ sSubMenuItemLabelStyle +'">';
						sSubMenItemText += sSubMenuElementLabel +'';
						sSubMenItemText += '</div>\n';
					}
					else
					{
						sSubMenItemText = sSubMenuElementLabel;
					}
					
					// Create new sub menu element and set text
					var oSubMenuElement = document.createElement(this.aSubMenuItems[iCounter]);
					// Add sub menu content and set id
					oSubMenuElement.innerHTML = sSubMenItemText;
					oSubMenuElement.setAttribute('id', this.aSubMenuItems[iCounter]);
					// Add sub menu element
					oSubMenuContainer.appendChild(oSubMenuElement);
					
					// Get the new sub menu element
					var oNewSubMenuElement = document.getElementById(this.aSubMenuItems[iCounter]);
					
					var iItemTop = 0;
					var iItemLeft = 0;
					
					if (!this.parentId)
					{
						iItemTop = (iCounter * iSubMenuItemHeight) + (iCounter * iSubMenuItemVerticalSpacing);
					}
					else
					{
						var iActiveMenuItemTop = getIntFromStyle(document.getElementById(this.id).style.top);
						var iActiveMenuItemLeft = getIntFromStyle(document.getElementById(this.id).style.left);
						iItemTop = (iActiveMenuItemTop + (iCounter * iSubMenuItemVerticalSpacing)) + (iCounter * iSubMenuItemHeight);
						iItemLeft = iActiveMenuItemLeft + iSubMenuItemWidth + iSubMenuItemHorizontalSpacing;
					}

					// Set element style
					oNewSubMenuElement.style.position = 'absolute';
					oNewSubMenuElement.style.top = iItemTop +'px';
					oNewSubMenuElement.style.left = iItemLeft +'px';
					oNewSubMenuElement.style.width = iSubMenuItemWidth +'px';
					oNewSubMenuElement.style.height = iSubMenuItemHeight +'px';
					oNewSubMenuElement.style.backgroundColor = sSubMenuItemInactiveBackgroundColor;
					oNewSubMenuElement.style.color = sSubMenuItemInactiveColor;
					oNewSubMenuElement.style.cursor = 'hand';
					oNewSubMenuElement.style.cursor = 'pointer';
					oNewSubMenuElement.className = sSubMenuLayerClass;
					
					if (bUseSubMenuItemBorders)
					{
						oNewSubMenuElement.style.borderWidth = sSubMenuItemInactiveBorderWidth;
						oNewSubMenuElement.style.borderStyle = sSubMenuItemInactiveBorderStyle;
						oNewSubMenuElement.style.borderColor = sSubMenuItemInactiveBorderColor;
					}
					
					// Set element title
					if (bShowMenuItemTitles) oNewSubMenuElement.title = sSubMenuElementLabel;

					// Set element events
					oNewSubMenuElement.onmouseover = new Function(''+ this.aSubMenuItems[iCounter] +'.active()');
					oNewSubMenuElement.onmouseout = new Function(''+ this.aSubMenuItems[iCounter] +'.inactive()');
					oNewSubMenuElement.onclick = new Function('window.location.href = \''+ eval(this.aSubMenuItems[iCounter] +'.sHref') +'\'');
				}
			}
			
			// Return all sub menu elements to their original styles
			for (iCounter = 0; iCounter < oSubMenuContainer.childNodes.length; iCounter++)
			{
				oSubMenuElement = document.getElementById(oSubMenuContainer.childNodes[iCounter].id);

				oSubMenuElement.style.backgroundColor = sSubMenuItemInactiveBackgroundColor;
				oSubMenuElement.style.color = sSubMenuItemInactiveColor;

				if (bUseSubMenuItemBorders)
				{
					oSubMenuElement.style.borderWidth = sSubMenuItemInactiveBorderWidth;
					oSubMenuElement.style.borderStyle = sSubMenuItemInactiveBorderStyle;
					oSubMenuElement.style.borderColor = sSubMenuItemInactiveBorderColor;
				}

				if (sUseSubMenuLayerActiveClass)
				{
					oSubMenuElement.className = sSubMenuLayerClass;
				}
			}
			
			// If this is a sub menu item set active styles
			if (this.parentId)
			{
				oSubMenuElement = document.getElementById(this.id);

				oSubMenuElement.style.backgroundColor = sSubMenuItemActiveBackgroundColor;
				oSubMenuElement.style.color = sSubMenuItemActiveColor;
					
				if (bUseSubMenuItemBorders)
				{
					oSubMenuElement.style.borderWidth = sSubMenuItemActiveBorderWidth;
					oSubMenuElement.style.borderStyle = sSubMenuItemActiveBorderStyle;
					oSubMenuElement.style.borderColor = sSubMenuItemActiveBorderColor;
				}

				if (sUseSubMenuLayerActiveClass)
				{
					oSubMenuElement.className = sSubMenuLayerActiveClass;
				}
			}

		} // end functon active()

		function getIntFromStyle(sStyle)
		{
			return parseInt(sStyle.substring(0, sStyle.indexOf('px')));
		}

		function inactive()
		{
			iMenuClearTimeout = setTimeout("hide()", iMenuHideTime);
		}

		function hide()
		{
			// Return all parent layers to default styles
			for (iCounter = 0; iCounter < aMenuItems.length; iCounter++)
			{
				var oMenuItem = document.getElementById(aMenuItems[iCounter]);
				
				oMenuItem.style.backgroundColor = sParentInactiveBackgroundColor;
				oMenuItem.style.color = sParentInactiveColor;

				if (bUseParentMenuItemBorders)
				{
					oMenuItem.style.borderWidth = sParentInactiveMenuItemBorderWidth;
					oMenuItem.style.borderStyle = sParentInactiveMenuItemBorderStyle;
					oMenuItem.style.borderColor = sParentInactiveMenuItemBorderColor;
				}

				if (sUseParentMenuLayerActiveClass)
				{
					oMenuItem.className = sParentMenuLayerClass;
				}
			}
			
			// Hide the sub menu items
			document.getElementById(sSubMenuTargetLayer).style.visibility = 'hidden';
		}