/*

===================================================
XHTML/CSS/DHTML Semantically correct drop down menu
===================================================
Author: Sam Hampton-Smith
Site: http://www.hampton-smith.com

Description:	This script takes a nested set of <ul>s
		and turns it into a fully functional
		DHTML menu. All that is required is 
		the correct use of class names, and
		the application of some CSS.
		
Use:		Please leave this information at the
		top of this file, and it would be nice
		if you credited me/dropped me an email
		to let me know you have used the menu.
		sam AT hampton-smith.com


---------------------------------------------------
Credits: 	Inspiration/Code borrowed from Dave Lindquist (http://www.gazingus.org)
		Menu hide functionality was aided by some code I found on http://www.jessett.com/

*/


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

if (!document.getElementById)
	document.getElementById = function() { return null; }
	
function initialiseMenu(menuId, starterId) {
	var menu = document.getElementById(menuId);
	var starter = document.getElementById(starterId);

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

	starter.onmouseover = function() {
		if (currentMenu) {
			currentMenu.style.visibility = "hidden";
			currentMenu = null;
			this.showMenu();
			stopTime();
        	}
	}
	
	menu.onmouseover = function() {
		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;
	}

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

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

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

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

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

function killMenu(amenu) {
	var menu = document.getElementById(amenu);
	menu.style.visibility = "hidden";
	stopTime();
}

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

window.onload = function() {
	initialiseMenu("digital_menu", "digital_starter");
	initialiseMenu("amp_menu", "amp_starter");
	initialiseMenu("speaker_menu", "speaker_starter");
	initialiseMenu("cable_menu", "cable_starter");
	initialiseMenu("pro_menu", "pro_starter");
	initialiseMenu("contact_menu", "contact_starter");
	initialiseMenu("reviews_menu", "reviews_starter");
	initialiseMenu("links_menu", "links_starter");
	initialiseMenu("contact_menu", "contact_starter");
	initialiseMenu("forum_menu", "forum_starter");
}

