var makeGrads = true;

function displayDropDown(menuButton)
{
	var id = menuButton.getAttribute("id");
	var subId = 'sub' + id;
	var submenu = this.document.getElementById(subId);
	var shadow = this.document.getElementById('drop_down_shadow');
	
	var dropTop = getTop(menuButton.parentNode) + getTop(menuButton) + menuButton.offsetHeight - 1;
	var dropLeft= getLeft(menuButton);
	
	//submenu is contained inside the menubutton so absolute is relative to the menubutton
	submenu.style.position = 'absolute';
	var dropdownOffset = -1;
	if (navigator.userAgent.indexOf('MSIE') > -1)
	{
		dropdownOffset = -10;
	}
	submenu.style.top = (menuButton.offsetHeight+dropdownOffset) + 'px';
	submenu.style.visibility = 'visible';
	submenu.style.display = 'block';

	//shadow is contained outside the menubar so absolute is relative to the document 
	shadow.style.left = (dropLeft + 5) + 'px';
	shadow.style.top = (dropTop + 5) + 'px';
	shadow.style.height = submenu.offsetHeight + 'px';
	shadow.style.visibility = 'visible';
	shadow.style.position = 'absolute';
	shadow.style.display = 'block';
	
	/*
	var gradients = this.document.getElementById('pressed_button_shadows');
	if (makeGrads)
	{
		makeGradients(gradients, menuButton);
	}
	else
	{
		resizeGradients(gradients,menuButton);
	}
	gradients.style.top = getTop(menuButton);
	gradients.style.left = menuButton.offsetLeft + 'px';
	gradients.style.visibility = 'visible';
	//alert('top: ' + menuTop);
	//alert('left: ' + menu.offsetLeft);
	*/
}

function hideDropDown(menu)
{
	var id = menu.getAttribute("id");
	var subId = 'sub' + id;

	var submenu = this.document.getElementById(subId);
	submenu.style.visibility = 'hidden';
	var shadow = this.document.getElementById('drop_down_shadow');
	shadow.style.visibility = 'hidden';
	
	var gradients = this.document.getElementById('pressed_button_shadows');
	gradients.style.visibility = 'hidden';
	
}

function makeGradients(gradients, menu)
{
	if (!gradients.hasChildNodes())
	{
		for (var i=0; i < 7; i++)
		{
			var hr = createGradLine(menu.offsetHeight -i, 1, i, menu)
			gradients.appendChild(hr);
			
			var hr = createGradLine(1, menu.offsetWidth-i, i, menu)
			gradients.appendChild(hr);
		}
		makeGrads = false;
	}
}

var grad = ['11','16','1B','23','29','2D','31'];

function createGradLine(height, width, index, menu)
{
	var hr = this.document.createElement("hr");
	
	hr.style.height = height+ 'px';
	hr.style.width = width + 'px';
	hr.style.top = index + 'px';
	hr.style.left = index + 'px';
	hr.style.color = '#' + grad[index] + grad[index] + grad[index];
	hr.style.background = '#' + grad[index] + grad[index] + grad[index];
	hr.style.position = 'absolute';	
	hr.style.padding = 0;
	hr.style.margin = 0;
	hr.style.border = 0;
	hr.style.zIndex = 1;
	hr.style.opacity = 0.8;
	return hr;
}

function resizeGradients(gradients, menu)
{
	var hrs = gradients.childNodes;
	
	for (var i=0; i < hrs.length; i++)
	{
		if (hrs[i].tagName == 'HR' & hrs[i].offsetWidth > 1)
		{
			hrs[i].style.width = (menu.offsetWidth-i) + 'px';
		}
	}
}

function getTop(DOMObj)
{
	if (navigator.appName == "Microsoft Internet Explorer")
	{
		return DOMObj.parentNode.offsetTop;
	}
	else //all proper browsers
	{
		//alert(navigator.appName);
		return DOMObj.offsetTop;
	}
}

function getLeft(DOMObj)
{
	return DOMObj.offsetLeft;
/*	if (navigator.appName == "Microsoft Internet Explorer")
	{
		alert(DOMObj.offsetLeft);

		return DOMObj.parentNode.offsetLeft;
	}
	else //all proper browsers
	{
		//alert(navigator.appName);
		return DOMObj.offsetLeft;
	} */
}

//This function is aimed at tabbed pane displays but is included here for now.
function showTab(thisBox)
{
	if (navigator.appName == "Microsoft Internet Explorer")
	{
		var divs = document.getElementsByTagName('div');
		for (var i=0; i < divs.length; i++)
		{
			var thisDiv = divs[i];
			if (thisDiv.className == "box")
			{
				thisDiv.style.visibility = 'hidden';
			}
		}
	}
	else
	{
		var tabs = document.getElementsByClassName("box");
		for (var i=0; i < tabs.length; i++)
		{
			tabs[i].style.visibility = 'hidden';
		}
	}
	var curTab = document.getElementById(thisBox);
	curTab.style.visibility = 'visible';
}

