﻿var iCloseTimer = null;
var iCurrentLayer = 0;

function openDropDown(iDropDown, iLayer, xModifier, yModifier) {
	cancelCloseTimer(); // Stop the close timer
	closeLayer(); // Close any open layers
	iCurrentLayer = document.getElementById(iDropDown); // Get the id of the layer to open
	iCurrentLayer.style.visibility = 'visible'; // Show the new layer
	//Set the position of the newly opened Layer
	xNewPosition = getAbsX(document.getElementById(iLayer)) + xModifier;
	yNewPosition = getAbsY(document.getElementById(iLayer)) + yModifier;
	document.getElementById(iDropDown).style.left = xNewPosition + 'px';
	document.getElementById(iDropDown).style.top = yNewPosition + 'px';
}

function setCloseTimer() {
	iCloseTimer = window.setTimeout(closeLayer, 500);
}

function closeLayer() {
	if (iCurrentLayer) iCurrentLayer.style.visibility = 'hidden';
}

function cancelCloseTimer() {
	if (iCloseTimer) {
		window.clearTimeout(iCloseTimer);
		iCloseTimer = null;
	}
}

function getAbsX(elt) { return (elt.x) ? elt.x : getAbsPos(elt, "Left"); }
function getAbsY(elt) { return (elt.y) ? elt.y : getAbsPos(elt, "Top"); }
function getAbsPos(elt, which) {
	iPos = 0;
	while (elt != null) {
		iPos += elt["offset" + which];
		elt = elt.offsetParent;
	}
	return iPos;
}

// Close all layers when the user clicks anywhere on the page
document.onclick = closeLayer;