function dynObj(id,x,y,w,h)
{
  this.el = (document.getElementById)? document.getElementById(id): (document.all)? document.all[id]: (document.layers)? getLyrRef(id,document): null;
  if (!this.el) return null;
  this.doc = (document.layers)? this.el.document: this.el;
  this.css = (this.el.style)? this.el.style: this.el;
  var px = (document.layers||window.opera)? "": "px";
  this.x = x || 0;
  if (x) this.css.left = this.x+px;
  this.y = y || 0;
  if (y) this.css.top = this.y+px;
  this.width = w? w: (this.el.offsetWidth)? this.el.offsetWidth: (this.css.clip.width)? this.css.clip.width: 0;
  this.height = h? h: (this.el.offsetHeight)? this.el.offsetHeight: (this.css.clip.height)? this.css.clip.height: 0;
  if (w)
  {
    (document.layers)? this.css.clip.width=w+px: this.css.width=w+px;
  }
  if (h)
  {
    (document.layers)? this.css.clip.height=h+px: this.css.height=h+px;
  }
  this.obj = id + "_dynObj";
  eval(this.obj + "=this");
}

dynObj.prototype.show = function () { this.css.visibility = "visible"; }
dynObj.prototype.hide = function () { this.css.visibility = "hidden"; }

dynObj.prototype.shiftTo = function (x,y)
{
  if (x!=null) this.x=x;
  if (y!=null) this.y=y;
  // rounded below (this.x/y can hold decimals)
  if (this.css.moveTo)
  { 
    this.css.moveTo(Math.round(this.x),Math.round(this.y)); 
  }
  else
  {
    this.css.left=Math.round(this.x)+"px"; 
    this.css.top=Math.round(this.y)+"px"; 
  }
}

dynObj.prototype.shiftBy = function (x,y)
{
  this.shiftTo(this.x+x,this.y+y);
}

dynObj.prototype.writeLyr = function (cntnt)
{
  if (typeof this.doc.innerHTML!="undefined")
  {
    this.doc.innerHTML = cntnt;
  }
  else if (document.layers)
  {
    this.doc.write(cntnt);
    this.doc.close();
  }
}

dynObj.prototype.setBgClr = function (bg)
{
  if (document.layers) this.doc.bgColor=bg;
  else this.css.backgroundColor=bg;
}

// get reference to nested layer for ns4

function getLyrRef(lyr,doc)
{
  if (document.layers)
  {
    var theLyr;
    for (var i=0; i<doc.layers.length; i++)
    {
      theLyr = doc.layers[i];
      if (theLyr.name == lyr) return theLyr;
      else if (theLyr.document.layers.length > 0) 
	if ((theLyr = getLyrRef(lyr,theLyr.document)) != null)
	  return theLyr;
    }
    return null;
  }
}