﻿var menuTimer;
var arrHideSelects = new Array();
var strOldHTML = ""; //this is a holder for menus that change after the item is clicked.
				//It keeps the old HTML so that when the menu
				//when the menu is destroyed, it can successfuly be reopened again

function absoluteCenterElement(elemID, elemWd, elemHt) {
	var y;
	if (window.pageYOffset) {
		y = parseInt(window.pageYOffset);
		}
	else {
		y = parseInt(document.documentElement.scrollTop);
		if (y == 0) {
			y = parseInt(document.body.scrollTop);
			}
		}
	var elem = document.getElementById(elemID)
	elem.style.top = "50%";
	elem.style.left = "50%";
	var addTop = (((elemHt / 2) * -1) + y);
	var addLeft = ((elemWd / 2) * -1);
	elem.style.margin = addTop + "px 0 0 " + addLeft + "px";
}

function restoreElement(boxID, elemID) {
	var elem = document.getElementById(elemID)
	if (strOldHTML != "") {
		elem.innerHTML = strOldHTML;
		strOldHTML = "";
		}
	else {
		var box = document.getElementById(boxID)
		elem.innerHTML = box.innerHTML;
		}
	if (arrHideSelects.length > 0 && navigator.appVersion.indexOf("MSIE 6") > -1) { for (sel = 0; sel < arrHideSelects.length; sel++) { arrHideSelects[sel].style.visibility = 'visible'; } }
	}

function destroyElement(elemID) {
	if (document.getElementById(elemID)) {
		var elem = document.getElementById(elemID)
		var par = elem.parentNode;
		par.removeChild(elem)
		}
	if (arrHideSelects.length > 0 && navigator.appVersion.indexOf("MSIE 6") > -1) { for (sel = 0; sel < arrHideSelects.length; sel++) { arrHideSelects[sel].style.visibility = 'visible'; } }
	}

function displayBox(strPage, intWidth, intHeight, bClose) {
	if (document.getElementById("newBox")) {
		var nb = document.getElementById("newBox")
		if (typeof(strPage) != "object") restoreElement("newBox", nb.className)
		if (document.getElementById("closeButton")) destroyElement("closeButton")
		destroyElement("newBox")
		}
	if (typeof(strPage) == "object") {
		elemID = strPage.name;
		strResponse = strPage.HTML;
		bExternal = true;
		}
	else if (strPage.charAt(0) == "#") {
		//pull content from specified page element
		elemID = strPage.replace("#", "");
		sourceElement = document.getElementById(elemID);
		strResponse = jsTrim(sourceElement.innerHTML);
		sourceElement.innerHTML = "";
		bExternal = false;
		}
	else {
		//grab content from specified page
		var pauser = 0;
		elemID = "";
		var xmlHttp = getXmlHttpObject();
		xmlHttp.open("GET", strPage, false);
		xmlHttp.send(null);
		strResponse = xmlHttp.responseText;
		xmlHttp = null;
		bExternal = true;
		}
	var box = document.createElement("div")
	box.id = "newBox";
	box.className = elemID;
	box.style.position = "absolute";
	box.style.width = intWidth + "px";
	box.style.height = intHeight + "px";
	box.style.overflow = "auto";
	box.style.padding = "21px";
	box.style.backgroundImage = "url('/images/displaybox_bg.png')";
	box.style.backgroundRepeat = "repeat-x";
	box.style.zIndex = 1500;
	box.innerHTML = strResponse;
	document.body.appendChild(box);
	sr = document.getElementById("newBox").getElementsByTagName("h3");

	if (bClose == null) {
		var collChildren = box.childNodes;
		for (c = 0; c < collChildren.length; c++) {
			box.childNodes[c].onmouseover = function () { clearTimeout(menuTimer) }
			}
		box.onmouseover = function() {
			clearTimeout(menuTimer)
			this.onmouseout = function() {
				if (bExternal) menuTimer = setTimeout("destroyElement('" + box.id + "')", 50)
				else menuTimer = setTimeout("restoreElement('" + box.id + "', '" + box.className + "'); destroyElement('" + box.id + "')", 50)
				}
			}
		}
	else {
		var cls = document.createElement("img")
		cls.name = elemID;
		cls.id = "clsButton";
		cls.src = "/images/spacer.gif";
		if (bClose == true) {
			cls.className = "icon_close";
			cls.width = 20;
			cls.height = 20;
			}
		else {
			cls.className = "icon_restore";
			cls.width = 21;
			cls.height = 21;
			}
		cls.style.position = "absolute";
		cls.style.top = "5px";
		cls.style.right = "5px";
        box.style.zIndex = 1501;
		if (bExternal) cls.onclick = function() { destroyElement('newBox'); destroyElement(this.id); if (document.getElementById("selWL") && navigator.appVersion.indexOf("MSIE 6") > -1) { document.getElementById("selWL").style.visibility = "visible"; } };
		else cls.onclick = function() { restoreElement('newBox', this.name); destroyElement('newBox'); destroyElement(this.id); if (document.getElementById("selWL") && navigator.appVersion.indexOf("MSIE 6") > -1) { document.getElementById("selWL").style.visibility = "visible"; } };
		box.appendChild(cls)
    	absoluteCenterElement("newBox", intWidth, intHeight);
		}
	if (arrHideSelects.length > 0 && navigator.appVersion.indexOf("MSIE 6") > -1) { for (sel = 0; sel < arrHideSelects.length; sel++) { arrHideSelects[sel].style.visibility = 'hidden'; } }
	if (document.getElementById("selWL") && navigator.appVersion.indexOf("MSIE 6") > -1) document.getElementById("selWL").style.visibility = "hidden";
	}

function displayBox_PL(strPage, intWidth, intHeight, bClose) {
	if (document.getElementById("newBox")) {
		var nb = document.getElementById("newBox")
		if (typeof(strPage) != "object") restoreElement("newBox", nb.className)
		if (document.getElementById("closeButton")) destroyElement("closeButton")
		destroyElement("newBox")
		}
	if (typeof(strPage) == "object") {
		elemID = strPage.name;
		strResponse = strPage.HTML;
		bExternal = true;
		}
	else if (strPage.charAt(0) == "#") {
		//pull content from specified page element
		elemID = strPage.replace("#", "");
		sourceElement = document.getElementById(elemID);
		strResponse = jsTrim(sourceElement.innerHTML);
		sourceElement.innerHTML = "";
		bExternal = false;
		}
	else {
		//grab content from specified page
		var pauser = 0;
		elemID = "";
		var xmlHttp = getXmlHttpObject();
		xmlHttp.open("GET", strPage, false);
		xmlHttp.send(null);
		strResponse = xmlHttp.responseText;
		xmlHttp = null;
		bExternal = true;
		}
	var box = document.createElement("div")
	box.id = "newBox";
	box.className = elemID;
	box.style.position = "absolute";
	box.style.width = intWidth + "px";
	box.style.height = intHeight + "px";
	box.style.overflow = "auto";
	box.style.padding = "21px";
	box.style.zIndex = 1500;
	box.innerHTML = strResponse;
	document.body.appendChild(box);
	sr = document.getElementById("newBox").getElementsByTagName("h3");

	if (bClose == null) {
		var collChildren = box.childNodes;
		for (c = 0; c < collChildren.length; c++) {
			box.childNodes[c].onmouseover = function () { clearTimeout(menuTimer) }
			}
		box.onmouseover = function() {
			clearTimeout(menuTimer)
			this.onmouseout = function() {
				if (bExternal) menuTimer = setTimeout("destroyElement('" + box.id + "')", 50)
				else menuTimer = setTimeout("restoreElement('" + box.id + "', '" + box.className + "'); destroyElement('" + box.id + "')", 50)
				}
			}
		}
	else {
		var cls = document.createElement("img")
		cls.name = elemID;
		cls.id = "clsButton";
		cls.src = "/images/spacer.gif";
		if (bClose == true) {
			cls.className = "icon_close";
			cls.width = 20;
			cls.height = 20;
			}
		else {
			cls.className = "icon_restore";
			cls.width = 21;
			cls.height = 21;
			}
		cls.style.position = "absolute";
		cls.style.top = "5px";
		cls.style.right = "5px";
        box.style.zIndex = 1501;
		if (bExternal) cls.onclick = function() { destroyElement('newBox'); destroyElement(this.id); if (document.getElementById("selWL") && navigator.appVersion.indexOf("MSIE 6") > -1) { document.getElementById("selWL").style.visibility = "visible"; } };
		else cls.onclick = function() { restoreElement('newBox', this.name); destroyElement('newBox'); destroyElement(this.id); if (document.getElementById("selWL") && navigator.appVersion.indexOf("MSIE 6") > -1) { document.getElementById("selWL").style.visibility = "visible"; } };
		box.appendChild(cls)
    	absoluteCenterElement("newBox", intWidth, intHeight);
		}
	if (arrHideSelects.length > 0 && navigator.appVersion.indexOf("MSIE 6") > -1) { for (sel = 0; sel < arrHideSelects.length; sel++) { arrHideSelects[sel].style.visibility = 'hidden'; } }
	if (document.getElementById("selWL") && navigator.appVersion.indexOf("MSIE 6") > -1) document.getElementById("selWL").style.visibility = "hidden";
	}

function jsTrim(strInput) {
	var objRegex = new RegExp("(^\\s+)|(\\s+$)");
	var strResult = strInput.replace(objRegex, "");
	return strResult;
	}