/******************************************************************* * * File : xLayer.js * * Created : 2000/06/08 * * Author : Roy Whittle (Roy@Whittle.com) www.Roy.Whittle.com * * Purpose : To create a cross browser dynamic layers. This * library is based on the library defined in the * excellent book. "JavasScript - The Definitive guide" * by David Flanagan. Published by O'Reilly. * ISBN 1-56592-392-8 * * History * Date Version Description * * 2000-06-08 1.0 Initial version * 2000-06-17 1.1 Changed function name to setzIndex() ***********************************************************************/ var xLayerNo=0; function xLayer(xHtml, x, y, w) { if(x==null)x=0; if(y==null)y=0; if(w==null)w=100; if(document.layers) { this.layer=new Layer(w); this.layer.document.open(); this.layer.document.write(xHtml); this.layer.document.close(); this.layer.moveTo(x,y); this.images=this.layer.document.images; /*** These used to be prototypes (like IE ) but when NS (communicator) 4.7 ***/ /*** first loads up, for some reason the prototypes do not get assigned ***/ this.moveTo = function(x,y) { this.layer.moveTo(x,y); } this.moveBy = function(x,y) { this.layer.moveBy(x,y); } this.show = function() { this.layer.visibility = "show"; } this.hide = function() { this.layer.visibility = "hide"; } this.setzIndex = function(z) { this.layer.zIndex = z; } this.setBgColor = function(color) { this.layer.bgColor = color; } this.setBgImage = function(image) { this.layer.background.src = image; } this.getX = function() { return this.layer.left; } this.getY = function() { return this.layer.right; } this.getWidth = function() { return this.layer.width; } this.getHeight = function() { return this.layer.height; } this.getStackingOrder = function() { return this.layer.zIndex; } this.isVisible = function() { return this.layer.visibility == "show"; } this.setContent = function(xHtml) { this.layer.document.open(); this.layer.document.write(xHtml); this.layer.document.close(); } this.clip = function(x1,y1, x2,y2) { this.layer.clip.top =y1; this.layer.clip.left =x1; this.layer.clip.bottom =y2; this.layer.clip.right =x2; } } else if(document.all) { var xName="xLayer" + xLayerNo++; txt = "
" + xHtml + "
"; document.body.insertAdjacentHTML("BeforeEnd",txt); this.content = document.all[xName]; this.layer = document.all[xName].style; this.images = document.images; } return(this); } if(document.layers) { /**** START prototypes for NS ***/ /*** END NS ***/ } else if(document.all) { /*** START prototypes for IE ***/ xLayer.prototype.moveTo = function(x,y) { this.layer.pixelLeft = x; this.layer.pixelTop = y; } xLayer.prototype.moveBy = function(x,y) { this.layer.pixelLeft += x; this.layer.pixelTop += y; } xLayer.prototype.show = function() { this.layer.visibility = "visible"; } xLayer.prototype.hide = function() { this.layer.visibility = "hidden"; } xLayer.prototype.setzIndex = function(z) { this.layer.zIndex = z; } xLayer.prototype.setBgColor = function(color) { this.layer.backgroundColor = color; } xLayer.prototype.setBgImage = function(image) { this.layer.backgroundImage = image; } xLayer.prototype.setContent = function(xHtml) { this.content.innerHTML=xHtml; } xLayer.prototype.getX = function() { return this.layer.pixelLeft; } xLayer.prototype.getY = function() { return this.layer.pixelRight; } xLayer.prototype.getWidth = function() { return this.layer.pixelWidth; } xLayer.prototype.getHeight = function() { return this.layer.pixelHeight; } xLayer.prototype.getStackingOrder = function() { return this.layer.zIndex; } xLayer.prototype.isVisible = function() { return this.layer.visibility == "visible"; } xLayer.prototype.clip = function(x1,y1, x2,y2) { this.layer.clip="rect("+y1+" "+x2+" "+y2+" "+x1+")"; this.layer.pixelWidth=x2; this.layer.pixelHeight=y2; this.layer.overflow="hidden"; } /*** END IE ***/ } else { xLayer.prototype.moveTo = function(x,y) { } xLayer.prototype.moveBy = function(x,y) { } xLayer.prototype.show = function() { } xLayer.prototype.hide = function() { } xLayer.prototype.setStackingOrder = function(z) { } xLayer.prototype.setBgColor = function(color) { } xLayer.prototype.setBgImage = function(image) { } xLayer.prototype.getX = function() { return 0; } xLayer.prototype.getY = function() { return 0; } xLayer.prototype.getWidth = function() { return 0; } xLayer.prototype.getHeight = function() { return 0; } xLayer.prototype.getStackingOrder = function() { return 0; } xLayer.prototype.isVisible = function() { return false; } xlayer.prototype.setContent = function(xHtml) { } } /*** End - xLayer - a cross browser layer object by www.Roy.Whittle.com ***/