/******************************************************************* * 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