/*******************************************************************
* File : JSFX_Layer.js © JavaScript-FX.com
* Created : 2001/04/11
* Author : Roy Whittle (Roy@Whittle.com) www.Roy.Whittle.com
* Purpose : To create a cross browser dynamic layers.
* History
* Date Version Description
* 2001-03-17 3.0 Completely re-witten for use by javascript-fx
***********************************************************************/
if(!window.JSFX)
JSFX=new Object();
JSFX.layerNo=0;
/**********************************************************************************/
JSFX.createElem = function(htmlStr, x, y)
{
var elem = null;
if(document.layers)
{
elem=new Layer(2000);
elem.document.open();
elem.document.write(htmlStr);
elem.document.close();
elem.moveTo(x,y);
elem.innerHTML = htmlStr;
}
else
if(document.all)
{
var xName = "xLayer" + JSFX.layerNo++;
var txt = "
"
+ htmlStr
+ "
";
document.body.insertAdjacentHTML("BeforeEnd",txt);
elem = document.all[xName];
}
else
if (document.getElementById)
{
var xName="xLayer" + JSFX.layerNo++;
var txt = ""
+ "position:absolute;"
+ "left:" + x + "px;"
+ "top:" + y + "px;"
+ "visibility:hidden";
var newRange = document.createRange();
elem = document.createElement("DIV");
elem.setAttribute("style",txt);
elem.setAttribute("id", xName);
document.body.appendChild(elem);
newRange.setStartBefore(elem);
strFrag = newRange.createContextualFragment(htmlStr);
elem.appendChild(strFrag);
}
return elem;
}
/**********************************************************************************/
JSFX.Layer = function(newLayer, x, y)
{
if(!newLayer)
return;
if(x==null)x=0;
if(y==null)y=0;
if(typeof newLayer == "string")
this.elem = JSFX.createElem(newLayer, x, y);
else
this.elem=newLayer;
if(document.layers)
{
this.images=this.elem.document.images;
this.style = this.elem;
}
else
{
this.images = document.images;
this.style = this.elem.style;
}
}
/**********************************************************************************/
JSFX.findLayer = function(theDiv, d)
{
if(document.layers)
{
var i;
if(d==null) d = document;
var theLayer = d.layers[theDiv];
if(theLayer != null)
return(theLayer);
else
for(i=0 ; i