	// Begin Read Only Global Variables

	var ie = document.all?true:false;
	var llColor = "#DDDDDD";
	var hlColor = "EEEEEE";
	var pulseColor = "#EEEEEE";
	var menuTrans = 0;
	var allowClose = false;
	var allowedMenuItem = new Array();
	var pumId = "foMenu";

	// Begin Options Global Variables
	var transEffect = false;
	var fadeEffect = false;
	var pulseEffect = false;
	var pulseRandomColor = true;
	var fadeSpeed = 25;
	
	var pulseColors = new Array();
	pulseColors[0] = "#EEEEEE";
	pulseColors[1] = "#993333";
	pulseColors[2] = "#339933";
	pulseColors[3] = "#333399";

	// Find Top & Left Functions
	function findTop(obj) {
		var curleft = curtop = 0;

		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
			
			return curtop;
		}
	}
	
	function findLeft(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		return curleft;
	}
	
	// Find Object By Id and Return it
	function findObj(oID) {
		return document.getElementById(oID);	
	}

	// Swap Colors
	function hl(fsObj) {
		fsObj.style.backgroundColor = hlColor;
	}

	function ll(fsObj) {
		fsObj.style.backgroundColor = llColor;
		allowClose = true;
		setTimeout("closeMenu()", 250);
	}

	// Flyout Menu
	function pum(fsObj, pumType) {
		var myOffset = findTop(fsObj);
		var mxOffset = findLeft(fsObj);

		allowClose = false;
		if(findObj('foMenu')) {
			fcloseMenu();
		}

		var mObj = document.createElement("DIV");
		mObj.style.position = "absolute";
		if(!pumType || pumType == 0) {
			mObj.style.top = (myOffset + (fsObj.offsetHeight / 8));
			mObj.style.left = ((mxOffset + fsObj.offsetWidth) - 10);
		} else if(pumType || pumType == 1) {
			mObj.style.top = (myOffset + fsObj.offsetHeight + 3) + "px";
			mObj.style.left = (mxOffset);
		}

		mObj.style.border = "#AAAAAA 1px solid";
		mObj.style.backgroundColor = llColor;
		mObj.style.padding = 4 + "px";
		mObj.style.width = "200"
		mObj.id = "foMenu";

		if(transEffect) {
			if(ie) mObj.style.filter = "alpha(opacity=75)";
			if(!ie) mObj.style.opacity = 0.75;
		}
		
		mObj.style.zIndex = 10;

		document.body.appendChild(mObj);
		
		mObj.onmouseover=function() {
			allowClose = false;	
		}

		var ac = 2;
		var mc = "";

		while(ac < arguments.length) {
			var mName = arguments[ac];
			var mLink = arguments[ac+1];
			
			mc += "<div class='menuItem' onmouseover='hl(this)' onmouseout='ll(this)' onclick=\"window.location='" + mLink + "'\" style='width: 100%; cursor: pointer; height: 16px; font-family: Verdana' id='menulink'>" + mName + "</div>";
			
			ac += 2;
		}

		mObj.innerHTML = mc;
		mObj.onmouseout=function() {
			allowClose = true;
			setTimeout("closeMenu()", 10);
		}

		if(fadeEffect == true && allowClose == false) {
			if(pulseEffect == true) setTimeout("pulseObj(findObj('foMenu'), 10)", 10);
			fadeMenuIn();
		}
	}
	
	// Fade Menu In
	function fadeMenuIn() {
		if(allowClose == false && fadeEffect == true && menuTrans < 75 && findObj("foMenu")) {
			menuTrans += 5;
			if(ie) {
				findObj("foMenu").style.filter = "alpha(opacity=" + menuTrans + ")";
				setTimeout("fadeMenuIn()", fadeSpeed);
			}

			if(!ie) {
				var ffMenuTrans = (menuTrans / 100);
				findObj("foMenu").style.opacity = ffMenuTrans;
				setTimeout("fadeMenuIn()", fadeSpeed);
			}
		} else if(allowClose == true && fadeEffect == true) {
			if(!findObj("foMenu")) menuTrans = 0;
		} else if(allowClose == false && fadeEffect == true && menuTrans >= 75) {
			if(!findObj("foMenu")) menuTrans = 0;
		} else {
			menuTrans = 0;
		}
	}

	// Close Menu
	function closeMenu() {
		if(allowClose == true && findObj('foMenu')) { 
			document.body.removeChild(findObj('foMenu'));
			if(pulseEffect == true) wmDestroy('oPulse');
			menuTrans = 0;
		}
	}

	// Force Close Menu
	function fcloseMenu() {
		if(findObj('foMenu')) {
			document.body.removeChild(findObj('foMenu'));
			if(pulseEffect == true) {
				if(findObj('oPulse')) wmDestroy('oPulse');
			}
			menuTrans = 0;
		}
	}
	
	// Apply Dropshadow
	function dropShadow(fsObj, fsIndex) {
		var cTop = findTop(fsObj);
		var cLeft = findLeft(fsObj);
		
		if(findObj('dShadow')) {
			wmDestroy('dShadow');
		}
		
		var dShadow = document.createElement("DIV");
		dShadow.style.position = "absolute";
		dShadow.style.top = (fsObj.offsetTop ) + "px";
		dShadow.style.left = (fsObj.offsetLeft) + "px";
		dShadow.style.backgroundColor = hlColor;
		if(ie) {
			dShadow.style.width = (fsObj.offsetWidth + 6);
			dShadow.style.height = (fsObj.offsetHeight + 6);
			dShadow.style.borderTop = "#3A3A3A 4px solid";
			dShadow.style.borderLeft = "#3A3A3A 4px solid";
		} else {
			dShadow.style.width = (fsObj.offsetWidth + 2);
			dShadow.style.height = (fsObj.offsetHeight + 2);
			dShadow.style.borderTop = "#3A3A3A 4px solid";
			dShadow.style.borderLeft = "#3A3A3A 4px solid";
		}
		dShadow.style.zIndex = fsIndex;
		dShadow.id = "dShadow";
		
		if(ie) dShadow.style.filter = "alpha(opacity=50)";
		if(!ie) dShadow.style.opacity = 0.5;
		
		document.body.appendChild(dShadow);
	}
	
	// Menu Flash Effect
	function pulseObj(fsObj, fsIndex) {
		var cTop = findTop(fsObj);
		var cLeft = findLeft(fsObj);
		
		if(findObj('oPulse')) {
			wmDestroy('oPulse');
		}
		
		var oPulse = document.createElement("DIV");
		oPulse.style.position = "absolute";
		oPulse.style.top = (fsObj.offsetTop) + "px";
		oPulse.style.left = (fsObj.offsetLeft) + "px";
		if(!pulseRandomColor) {
			oPulse.style.backgroundColor = pulseColor;
		} else {
			var rn = Math.random() * (pulseColors.length - 1);
			rn = Math.round(rn);
			oPulse.style.backgroundColor = pulseColors[rn];
		}
		oPulse.style.width = fsObj.offsetWidth;
		oPulse.style.height = fsObj.offsetHeight;
		oPulse.style.zIndex = fsIndex;
		oPulse.id = "oPulse";
		
		if(ie) oPulse.style.filter = "alpha(opacity=50)";
		if(!ie) oPulse.style.opacity = 0.5;
		
		findObj("content").appendChild(oPulse);
	}
	
	// wmDestroy
	function wmDestroy() {
		if(findObj(arguments[0])) findObj(arguments[0]).parentNode.removeChild(findObj(arguments[0]));
	}