var slideTime = 350;
var trayHeight = 340;

var trayState = "closed";
var timerID = false;
var startTime = false;
var activeSheet = false;
var nextSheet = false;

function ShowSheet(inSheet) {
	var tray = document.getElementById("content");

	if (trayState == "closed") {
		trayState = "opening";
		activeSheet = inSheet;
		document.getElementById(activeSheet).style.display = "block";
		document.getElementById("toggle_" + activeSheet).className = "active";
		tray.style.display = "block";
		tray.style.height = "0px";
	} else if (trayState == "closing") {
		if (activeSheet == inSheet) {
			trayState = "opening";
			startTime = 2 * (new Date()).getTime() - startTime - slideTime;
		} else {
			nextSheet = inSheet;
		}
	} else if (trayState == "open") {
		trayState = "closing";
		if (activeSheet != inSheet) {
			nextSheet = inSheet;
		}
	} else if (trayState == "opening") {
		trayState = "closing";
		startTime = 2 * (new Date()).getTime() - startTime - slideTime;
		if (activeSheet != inSheet) {
			nextSheet = inSheet;
		}
	}
	if (!timerID) {		
		startTime = (new Date()).getTime();
		timerID = setInterval("SlideTray()", 5);
	}
}


function SlideTray() {
	var elapsed = (new Date()).getTime() - startTime;
	if (elapsed > slideTime) {
		if (trayState == "opening") {
			trayState = "open";
			document.getElementById("content").style.height = trayHeight + "px";
		} else if (trayState == "closing") {
			document.getElementById(activeSheet).style.display = "none";
			document.getElementById("toggle_" + activeSheet).className = "";
			if (nextSheet) {
				trayState = "opening";
				activeSheet = nextSheet;
				nextSheet = false;
				startTime = (new Date()).getTime();
				document.getElementById(activeSheet).style.display = "block";
				document.getElementById("toggle_" + activeSheet).className = "active";
				return;
			} else {
				trayState = "closed";
				document.getElementById("content").style.display = "none";
				activeSheet = false;
			}
		}
		clearInterval(timerID);
		timerID = false;
	} else {
		var h = Math.round(trayHeight * elapsed / slideTime);
		if (trayState == "closing") {
			h = trayHeight - h;
		}
		document.getElementById("content").style.height = h + "px";	
	}
}
