//<!-- Build Number: 01.01.094 LKH.WIDX 5/28/2008 -->
// SparrowScripts IE Layer Patcher
// www.sparrowscripts.com

// global setting

var pil_Interval = 1;	// when this value is 1000, the script will locate all the visible absolute layers
						// and insert a IFRAME layer behind.


// internal variable

var pil_MSIE = false;	
if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')<0)pil_MSIE=true;

// internal functions

function pil_getTopPos(inputObj)
{
	var returnValue = inputObj.offsetTop + inputObj.offsetHeight;
	while((inputObj = inputObj.offsetParent) != null)
		returnValue += inputObj.offsetTop;
	return returnValue;
}

function pil_getleftPos(inputObj)
{
	var returnValue = inputObj.offsetLeft;
	while((inputObj = inputObj.offsetParent) != null)
		returnValue += inputObj.offsetLeft;
	return returnValue;
}

function pil_addLayerBehind(id) {
	var backDiv=document.createElement('DIV');
	backDiv.id='_IFRAMEDIV_BEHIND_'+id;
	backDiv.style.position='absolute';
	backDiv.style.zIndex=0;

	var backIframe=document.createElement('IFRAME');
	backIframe.id='_IFRAME_BEHIND_'+id;
	backIframe.scrolling='no';

	backDiv.appendChild(backIframe);
	backDiv.style.filter = "alpha(opacity:0)"

	document.body.appendChild(backDiv);
	pil_moveLayerBehind(id,backDiv.id,backIframe.id);
}

function pil_moveLayerBehind(frontLayerId, backLayerId, backFrameId, create) {
	var backDiv = document.getElementById(backLayerId)
	var backIframe = document.getElementById(backFrameId)
	backDiv.style.left=pil_getleftPos(document.getElementById(frontLayerId))+'px';
	backDiv.style.top=pil_getTopPos(document.getElementById(frontLayerId))-document.getElementById(frontLayerId).offsetHeight+'px';
	backIframe.style.width=document.getElementById(frontLayerId).offsetWidth;
	backIframe.style.height=document.getElementById(frontLayerId).offsetHeight;
	document.getElementById("_IFRAME_BEHIND_"+frontLayerId).style.display='block';
	document.getElementById("_IFRAMEDIV_BEHIND_"+frontLayerId).style.display='block';
}

function pil_existElement(tagName, id) {
	var e=document.getElementsByTagName(tagName)
	var numLayers=e.length;
	for (var i=0;i<numLayers;i++)
	{
		if (e[i].id==id)
		{
			return true;
		}
	}
	return false;
}

function pil_scanLayers() {
	
	if (pil_MSIE)
	{
		var e=document.getElementsByTagName("div");
		var numLayers=e.length;
		for (var i=0;i<numLayers;i++)
		{
			if ((e[i].id.substr(0,18)!='_IFRAMEDIV_BEHIND_')&&(e[i].style.position=="absolute")) {
			
				if (((e[i].style.visibility=="")||(e[i].style.visibility=="visible")||(e[i].style.visibility=="show"))&&((e[i].style.display=="")||(e[i].style.display=="block")))
				{
					if (!pil_existElement("div","_IFRAMEDIV_BEHIND_"+e[i].id))
					{
						if (e[i].style.zIndex==0)
						{
							e[i].style.zIndex=1;
						}
						pil_addLayerBehind(e[i].id);
					}
					else {
						pil_moveLayerBehind(e[i].id, "_IFRAMEDIV_BEHIND_"+e[i].id, "_IFRAME_BEHIND_"+e[i].id); 
					}
				}
				else {
					if (pil_existElement("div","_IFRAMEDIV_BEHIND_"+e[i].id))
					{
						document.getElementById("_IFRAMEDIV_BEHIND_"+e[i].id).style.display="none";
						document.getElementById("_IFRAME_BEHIND_"+e[i].id).style.display="none";
					}
				}
			}
		}
	}
}

setInterval('pil_scanLayers()',pil_Interval);
