
//	document.write("<link rel='stylesheet' href='CSS/cssmenu.css' type='text/css' />");

var currentMenu = null;
var lastMenuStarter = null;
var mytimer = null;
var timerOn = false;
var opera = window.opera ? true : false;
var sUserAgent = navigator.userAgent;
var isIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1 && !opera;
var isWin = (navigator.platform == 'Win32') || (navigator.platform == 'Windows');

var kDelay = 500;


if (!document.getElementById)
	document.getElementById = function() { return null; }
	
	
function initialiseDummy(dummy, root) {	// any menu item except parent of dropdown but including dropdown items
	dummy.onmouseover = function() {
		containingMenu = this.parentNode.parentNode;
		for (var x = 0; x < containingMenu.childNodes.length; x++) {
			if (containingMenu.childNodes[x].nodeName.toUpperCase() == "LI") {
				if (containingMenu.childNodes[x].getElementsByTagName("ul").length > 0) {
					containingMenu.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
				}
			}
		}
}
	dummy.onfocus = function() {
		dummy.onmouseover();
	}
}
	
function initialiseMenu(menu, starter, root) {
	var leftstarter = false;

	if (menu == null || starter == null) return;
		currentMenu = menu;

	starter.onmouseover = function() {		// called only for parent of dropdown
		if (currentMenu) {
			if (this.parentNode.parentNode != currentMenu) {
				currentMenu.style.visibility = "hidden";
				hideAllMenus(currentMenu, root);
			}
			if (this.parentNode.parentNode == root) {
				while (currentMenu.parentNode.parentNode != root) {
					currentMenu.parentNode.parentNode.style.visibility = "hidden";
					currentMenu = currentMenu.parentNode.parentNode;
				}
			}
			currentMenu = null;
			this.showMenu();	// 'this' is starter
			stopTime();
		}
	}
	

	menu.onmouseover = function() {		// mouse over a dropdown menu item. Shows menu which would otherwise have been hidden
		if (currentMenu) {
			currentMenu = null;
			this.showMenu();
		}
	}	

	starter.showMenu = function() {		// mouse over starter for dropdown
		if (!opera) {
			if (this.parentNode.parentNode==root) {	// parent of dropdown
				if (isIE) {
					menu.style.left = this.offsetLeft + 12.5 + "em";
				}
				else {
					menu.style.left = this.offsetLeft + "px";
				}
				menu.style.top = this.offsetTop + this.offsetHeight + "px";
				if (menu.offsetWidth < this.offsetWidth) menu.style.width = this.offsetWidth;
			}
			else {												// dont know what this is
				menu.style.left = this.offsetLeft + this.offsetWidth + "px";
				menu.style.top = this.offsetTop + "px";
			}
		}
		else {		// opera
			var rootOffset = root.offsetLeft;
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft - rootOffset + "px";
				menu.style.width = this.offsetWidth;
				menu.style.top = this.offsetHeight + "px";
			}
			else {
				menu.style.left = this.offsetWidth - rootOffset + "px";
				menu.style.top = this.offsetTop + "px"; //menu.style.top - menu.style.offsetHeight + "px";
			}

		}
		menu.style.visibility = "visible";
		currentMenu = menu;
	}

	starter.onfocus	 = function() {
		starter.onmouseover();
	}

	menu.onfocus	 = function() {
//			currentMenu.style.visibility="hidden";
	}

	menu.showMenu = function() {
		menu.style.visibility = "visible";
		currentMenu = menu;
		stopTime();
	}

	menu.hideMenu = function()  {		// when mouse leaves a dropdown item, hide the menu
		if (!timerOn) {
			startTime(menu, root);
			for (var x = 0; x < menu.childNodes.length; x++) {
				if (menu.childNodes[x].nodeName=="LI") {
					if (menu.childNodes[x].getElementsByTagName("UL").length > 0) {		// sub menu on dropdown
						menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
						menuItem.style.visibility = "hidden";
					}
				}
			}
		}
	}

	menu.onmouseout = function(event) {		// called for item in dropdown
		this.hideMenu();		// hide its submenu if any
	}
	
	menu.onblur = function() {
		this.onmouseout();
	}

	starter.onmouseout = function() {		// includes mousing down the dropdown as well as going up or sideways
		for (var x = 0; x < menu.childNodes.length; x++) {
			if (menu.childNodes[x].nodeName == "LI") {
				if (menu.childNodes[x].getElementsByTagName("UL").length > 0) {	// hide a sub menu in dropdown
					menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
					menuItem.style.visibility = "hidden";
				}
			}
		}
		menu.style.visibility = "hidden";
	}
}

function killMenu(menu, root) {
	var menu = document.getElementById(menu);
	var root = document.getElementById(root);
	menu.style.visibility = "hidden";
	for (var x = 0; x < menu.childNodes.length; x++) {
		if (menu.childNodes[x].nodeName == "LI") {
			if (menu.childNodes[x].getElementsByTagName("UL").length > 0) {
				menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
				menuItem.style.visibility = "hidden";
			}
		}
	}
	while (menu.parentNode.parentNode!=root) {
		menu.parentNode.parentNode.style.visibility = "hidden";
		menu = menu.parentNode.parentNode;
	}
	stopTime();
}


function startTime(menu, root) {
	mytimer = setInterval("killMenu('" + menu.id + "', '" + root.id + "');", kDelay);
	timerOn = true;
}


function stopTime() {
	if (mytimer) {
		 clearInterval(mytimer);
		 mytimer = null;
		 timerOn = false;
	}
} 

window.onload = function() {
	var root = document.getElementById("menuList");
	var rootOffset = root.offsetLeft;
	getMenus(root, root);
}

function getMenus(elementItem, root) {		// recursively get all menus
	var selectedItem;
	var menuStarter;
	var menuItem;
	for (var x = 0; x < elementItem.childNodes.length; x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase() == "LI") {
			if (elementItem.childNodes[x].getElementsByTagName("ul").length > 0) {	// has a submenu
				menuStarter = elementItem.childNodes[x].getElementsByTagName("A").item(0);
				menuItem = elementItem.childNodes[x].getElementsByTagName("UL").item(0);
				getMenus(menuItem, root);
				initialiseMenu(menuItem, menuStarter, root);
			}
			else {
				initialiseDummy(elementItem.childNodes[x].getElementsByTagName("A").item(0), root);
			}
		}
	}
}

function hideAllMenus(elementItem, root) {
	for (var x = 0; x < elementItem.childNodes.length; x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase() == "LI") {
			if (elementItem.childNodes[x].getElementsByTagName("ul").length > 0) {		// sub menu on dropdown
				elementItem.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
				hideAllMenus(elementItem.childNodes[x].getElementsByTagName("UL").item(0), root);
			}
		}
	}
}




function showPic(whichpic) {
	if (document.getElementById) {
		document.getElementById('mainImage').src = whichpic.href;
		return false;
	}
	else {
		return true;
	}
}

function showPicIfKey(whichPic, oEvent) {
	return true;	// Browsers seem to handle tab and return key presses without my help
}

	
function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


function borderImg(imID) {
	var img = document.getElementById(imID);
//	img.style.width = '48px';
//	img.style.height = '48px'; 
	img.style.margin = '1px';
	img.style.border = '2px solid #c43c00';
}


function unBorderImg(imID) {
	var img = document.getElementById(imID);
//	img.style.width = '50px';
//	img.style.height = '50px';
	img.style.margin = '2px';
	img.style.border = '1px solid #777';
}

