	var currentMenu = null;
	var currentFrame = null;
	var mytimer = null;
	var timerOn = false;
	var opera = window.opera ? true : false;

	if (!document.getElementById)
		document.getElementById = function() { return null; }

	function initialiseMenu(menuId, frameId, starterId) {
		var menu = document.getElementById(menuId);
		var frame = document.getElementById(frameId);
		var starter = document.getElementById(starterId);

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

		starter.onmouseover = function() {
			if (currentFrame) {
				currentFrame.style.visibility = "hidden";
				curentFrame = null;
			}
			if (currentMenu) {
				currentMenu.style.visibility = "hidden";
				currentMenu = null;
				this.showMenu();
				stopTime();
			}
		}

		menu.onmouseover = function() {
			if (currentFrame) {
				currentFrame.style.visibility = "hidden";
				currentFrame = null;
			}
			if (currentMenu) {
				currentMenu.style.visibility = "hidden";
				currentMenu = null;
				this.showMenu();
			}
		}

		starter.showMenu = function() {
			if (!opera) {
				menu.style.left = this.offsetLeft + "px";
				menu.style.top = this.offsetTop + this.offsetHeight + "px";
			}
			else {
				menu.style.left = this.offsetLeft + "px";
				menu.style.top = this.offsetHeight + "px";
			}
			menu.style.visibility = "visible";
			currentMenu = menu;
			if (frame) {
				frame.style.visibility = "visible";
				currentFrame = frame;
			}
		}

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

		starter.onblur	 = function() {
			this.onmouseout();
		}

		menu.onfocus = function() {
			stopTime();
		}

		menu.onblur	= function() {
			this.onmouseout();
		}
		
		menu.showMenu = function() {
			menu.style.visibility = "visible";
			if (frame) {
				frame.style.visibility = "visible";
				currentFrame = frame;
			}
			currentMenu = menu;
			stopTime();
		}

		menu.hideMenu = function()  {
			if (!timerOn) {
				mytimer = setTimeout("killMenu('" + menuId + "'); killMenu('" + frameId + "');", 1000);
				timerOn = true;
			}
		}

		menu.onmouseout = function(event) {
			this.hideMenu();
		}

		starter.onmouseout = function() {
			menu.hideMenu();
		}
		
		initOptions(menu);
	}

	function initOptions(menu) {
		var i = 1;
		
		var options = menu.getElementsByTagName('a');
		
		for (var i = 0; i < options.length; i++) {
			options[i].onfocus = function() {
				stopTime();
			}
			options[i].onblur = function() {
				currentMenu.onmouseout();
			}
		}
	}
	
	function killMenu(amenu) {
		var menu = document.getElementById(amenu);
		if (menu)  menu.style.visibility = "hidden";
		stopTime();
	}

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


