var MENU_SHADOW_COLOR		= '#666666'
var TEXT_BACKGROUND_COLOR		= '#ffffff'

var global = window.document
global.fo_shadows = new Array
global.txt_shadows = new Array
function makeTextDropShadow(el, color, size)
{
	var i;
	for (i=size; i>0; i--)
	{
		var rect = document.createElement('div');
		var rs = rect.style
		rs.position = 'absolute';
		rs.left = (el.style.posLeft + i) + 'px';
		rs.top = (el.style.posTop + i) + 'px';
		rs.width = el.offsetWidth + 'px';
		rs.height = el.offsetHeight + 'px';
		rs.zIndex = el.style.zIndex - i;
		//rs.backgroundColor = color;
		var opacity = 1 - i / (i + 1);
		rs.filter = 'alpha(opacity=' + (25 * opacity) + ')';
		el.insertAdjacentElement('afterEnd', rect);
		rect.innerHTML = el.innerHTML;
		//alert(rect.innerHTML);			
		global.txt_shadows[global.txt_shadows.length] = rect;
		
		
		
	}
}


function makeRectangularDropShadow(el, color, size)
{
	var i;
	for (i=size; i>0; i--)
	{
		var rect = document.createElement('div');
		var rs = rect.style
		rs.position = 'absolute';
		
		//rs.left = (el.style.posLeft + i) + 'px';
		//rs.top = (el.style.posTop + i) + 'px';
		
		rs.left = (el.offsetLeft + i) + 'px';
		rs.top = (el.offsetTop + i) + 'px';
		
		rs.width = el.offsetWidth + 'px';
		rs.height = el.offsetHeight + 'px';
		rs.zIndex = el.style.zIndex - i;
		rs.backgroundColor = color;
		var opacity = 1 - i / (i + 1);
		rs.filter = 'alpha(opacity=' + (100 * opacity) + ')';

		el.insertAdjacentElement('afterEnd', rect);
		global.fo_shadows[global.fo_shadows.length] = rect;
	}
}
function pShow(lr)
{
		var laytoplay = document.all[lr];
		if (laytoplay.style.visibility != 'visible')
		{
		laytoplay.style.visibility = 'visible';
		makeRectangularDropShadow(laytoplay, MENU_SHADOW_COLOR, 5);
		
		global.fo_muLeft = laytoplay.offsetLeft;
		global.fo_muRight = global.fo_muLeft + laytoplay.offsetWidth;
		global.fo_muTop = laytoplay.offsetTop;
		global.fo_muBottom = global.fo_muTop + laytoplay.offsetHeight;
		
		hide_elements("SELECT");
		hide_elements("OBJECT");
		}
}
function pHide(lr)
{
		var laytoplay = document.all[lr];	
		if (laytoplay.style.visibility != 'hidden')	
		{		
			var i
			for (i=0; i<global.fo_shadows.length; i++)
			global.fo_shadows[i].removeNode(true);
			global.fo_shadows = new Array();
			laytoplay.style.visibility = 'hidden';
			
			show_elements("SELECT")
			show_elements("OBJECT")
		}
}

function sShow(lr)
{
		var laytoplay = document.all[lr];
		if (laytoplay.style.visibility = 'visible')
		{
		//laytoplay.style.visibility = 'visible';
		makeRectangularDropShadow(laytoplay, MENU_SHADOW_COLOR, 5);
		}
}
function sHide(lr)
{
		var i
		for (i=0; i<global.fo_shadows.length; i++)
		global.fo_shadows[i].removeNode(true);
		global.fo_shadows = new Array();
		var laytoplay = document.all[lr];
		//laytoplay.style.visibility = 'hidden';
}
function makelayeropaque(el)
{
	el.filter = 'alpha(opacity=' + (50) + ')';
}

function maketshadow()
{
		makelayeropaque(Layer2);
		//makeTextDropShadow(Layer2, TEXT_BACKGROUND_COLOR, 5);
}

function hide_elements(tagName)
{
	windowed_element_visibility(tagName, -1)
}

function show_elements(tagName)
{
	windowed_element_visibility(tagName, +1)
}

function windowed_element_visibility(tagName, change)
{
	var els = global.all.tags(tagName)
	var i
	for (i=0; i < els.length; i++)
	{
		var el = els.item(i)
		if (elements_overlap(el))
		{
			if (el.visLevel)
				el.visLevel += change
			else
				el.visLevel = change
			if (el.visLevel == -1)
			{
				el.visibilitySave = el.style.visibility
				el.style.visibility = "hidden"
			}
			else if (el.visLevel == 0)
				el.style.visibility = el.visibilitySave
		}
	}
}

function elements_overlap(el)
{
	var left = 0
	var top = 0
	var width = el.offsetWidth
	var height = el.offsetHeight
	while (el)
	{
		left += el.offsetLeft
		top += el.offsetTop
		el = el.offsetParent
	}
	return ((left < global.fo_muRight) && (left + width > global.fo_muLeft) && (top < global.fo_muBottom) && (top + height > global.fo_muTop))
}

function ShowCenteredELShadowed(el)
{
	
		var oEl = document.all(el)

		if (oEl.style.visibility=='visible') {
			sHide(el);
			oEl.style.visibility='hidden';
			
		}
		
		oEl.style.left = (document.body.scrollWidth/2) - (oEl.offsetWidth/2);
		oEl.style.top = (document.body.clientHeight/2) - (oEl.offsetHeight/2);
		oEl.style.visibility='visible';
		sShow(el);
}	
