var timerMenuRunning = false;
var timerMenuID = null;
var divWidth = 120;
var topButtonHeight = 20;
var bgOver = '';
var bgOff = '';
var textOff = '';
var textOver = '';
var imageOff = ' ';
var imageOver = ' ';
var hideDelay = 200;
var brTopOver    = 'white';
var brLeftOver  = 'white';
var brBottomOver = '#808080';
var brRightOver = '#808080';
//-----------------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------------//
function startMenuTimer() {
	timerMenuID = setTimeout('hideAll();', hideDelay);
	timerMenuRunning = true;
}
//-----------------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------------//
function stopMenuTimer() {
	clearTimeout(timerMenuID);
	timerMenuRunning = false;
}
//-----------------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------------//
function hideAll() {
	if (timerMenuRunning == true){clearTimeout(timerMenuID); timerMenuRunning = false;}
		for(i=0; i<myDivArray.length; i++){
			if(ie){mySpan = document.all(myDivArray[i])}
			else if(dom){mySpan = document.getElementById(myDivArray[i])}
		mySpan.style.visibility = "hidden";
		}
		for (i=0; i<spanArray.length; i++){
			if(ie){theButton = document.all(spanArray[i])}
			else if(dom){theButton = document.getElementById(spanArray[i])}
		changeButtonStyleoff(theButton);
		}
	myDivArray = new Array();
	spanArray = new Array();
}
//-------------------------------------------------//
// General stuff, but mostly used in the drop downs
browserName=navigator.appName;
userPlatform = navigator.platform;

if (userPlatform.indexOf("Mac")!=-1){userPlatform = "Mac"}
if (browserName.indexOf("Netscape")!=-1){browserName="NS"}
if (browserName.indexOf("Microsoft")!=-1){browserName="MSIE"}


var dom = document.getElementsByTagName && !document.all;
var ie = document.all;
var nn4 = document.layers;
var opera = window.opera;

var spanArray = new Array();
var myDivArray = new Array();

// IE Mac - this doesn't seem to work
if (userPlatform == "Mac" && browserName == "MSIE"){
var x1Offset = 20; var x2Offset = 4;
var y1Offset = 100;  var y2Offset = 4;
}

// IE Windows
else if (ie && !opera){
var x1Offset = 170; var x2Offset = 2;
var y1Offset = -5; var y2Offset = 3;
}

// Gekko
else if (dom && !opera){
var x1Offset = 5;  var x2Offset = -1;
var y1Offset = -1; var y2Offset = 0;
}

// Opera
else if (opera){
var x1Offset = 1;  var x2Offset = 2;
var y1Offset = -3; var y2Offset = 8;
}

//-----------------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------------//
function getXY(el) {
	var coords = { x:el.offsetLeft, y:el.offsetTop,h:el.offsetTop }

	while (el.offsetParent) {
		el = el.offsetParent;
		coords.x += el.offsetLeft;
		coords.y += el.offsetTop;
		coords.h += el.scrollTop;
	}
	return coords;
}
//-----------------------------------------------------------------------------------------//
if(!Array.prototype.push) {
	function array_push() {
		for(var i=0;i<arguments.length;i++){
			this[this.length]=arguments[i]
		}
		return this.length;
	}
	Array.prototype.push = array_push;
}

if(!Array.prototype.pop) {
	function array_pop(){
		lastElement = this[this.length-1];
		this.length = Math.max(this.length-1,0);
		return lastElement;
	}
	Array.prototype.pop = array_pop;
}

//-----------------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------------//
function show(divToShow, isDiv, e){
	if(browserName=="NS" && !document.layers) {
		var divs = document.getElementById(divToShow);
		var srcElement = e.target; var clientX = e.clientX; var clientY = e.clientY;
		//srcElement = srcElement.parentNode.parentNode;
		

		if (srcElement.nodeType == 3) {
			srcElement = srcElement.parentNode;
		}
		var c = getXY(srcElement);
		if(isDiv == "1") {
			hideAll();
			xPos = clientX - (clientX - c.x) - x1Offset + 170 + "px";  //clientX - (clientX - c.x) - x1Offset + "px";
			yPos = c.y + srcElement.offsetHeight - 20 -y1Offset + "px";
		}
		else if (isDiv > 1 ){
			xPos = clientX - e.layerX + document.getElementById(srcElement.id).offsetWidth - x2Offset + "px";
			yPos = clientY - e.layerY + srcElement.offsetTop + window.pageYOffset - y2Offset + "px";
			window.status = "xpos = " + xPos + ",ypos=" + yPos
		}
	}
	//-----------------------------------------------------------------------------------------//
	if (browserName=="MSIE"){
		var divs = document.all(divToShow);
		var srcElement = event.srcElement.parentNode;
		var clientX = event.clientX;
		var clientY = event.clientY;
		var c = getXY(event.srcElement.parentNode);
		if(document.documentElement.scrollTop) {	
			scrollTop = document.documentElement.scrollTop;
		}
		else{
			scrollTop = document.body.scrollTop;
		}

		if(isDiv == 1) {
			hideAll();
			// Internet Explorer on the Mac
			if (userPlatform == "Mac" && browserName == "MSIE") {
				lll = (document.body.clientWidth - srcElement.parentNode.parentNode.parentNode.parentNode.parentNode.width) / 2
				xPos = c.x + "px"
				yPos = c.y + "px"
			}
			// Everything else
			else{
				xPos = c.x + x1Offset + "px"
				yPos = c.y + y1Offset + "px"
			}
		}
		else if (isDiv > 1 ) {
			xPos = (clientX - event.offsetX) +  document.all[srcElement.id].offsetWidth -x2Offset  + "px";
			yPos = c.y + "px"
		}
	}
	//-----------------------------------------------------------------------------------------//
	if (isDiv ==  myDivArray.length){
		if(ie){
			document.all[myDivArray.pop()].style.visibility = "hidden";
		}
		else {
			document.getElementById(myDivArray.pop()).style.visibility = "hidden";
		}
	}
	else if ( myDivArray.length > isDiv ){
		for(i=myDivArray.length + 1; i> isDiv; i-- ) {
			if(ie) {
				document.all[myDivArray.pop()].style.visibility = "hidden";
			}
			else { 
				document.getElementById(myDivArray.pop()).style.visibility = "hidden";
			}
		}
	}
	
	if(divs) {
		divs.style.left = xPos;
		divs.style.top = yPos;
		divs.style.visibility = "visible";
		myDivArray.push(divToShow);
	}
	//-----------------------------------------------------------------------------------------//
	if(isDiv == spanArray.length){
		divToChange = spanArray.pop();
		if (ie){
			theButton = document.all[divToChange];
		}
		else if (dom) { 
			theButton = document.getElementById(divToChange);
		}
		changeButtonStyleoff(theButton);
	}
	else if (spanArray.length > isDiv ) {
		for(i = spanArray.length + 1; i > isDiv; i--) {
			divToChange = spanArray.pop();
			if (ie) {
				theButton = document.all[divToChange];
			}
			else if (dom){
				theButton = document.getElementById(divToChange);
			}
			changeButtonStyleoff(theButton);
		}
	}
		spanArray.push(srcElement.id);
}
//-----------------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------------//
function changeButtonStyleoff(theElement) { }
