/* Dragable
 new Dragable(x, y, html );
 new Dragable(layer);
 dragable.layer;
 dragable.ondrop(dragable);
 dragable.onmove(dragable);
 dragable.ondrag(dragable);
 dragable.ondown(dragable);
*/
Dragable.mdown=function (e) {
        this.offX=e.pageX-this.pageX;
        this.offY=e.pageY-this.pageY;
        if (this.ref.ondown)
          this.ref.ondown(this.reF);
        window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
        Dragable.current=this;
        this.savemousemove=window.onmousemove;
        this.savemouseup=window.onmouseup;
        window.onmousemove=Dragable.mdrag;
        window.onmouseup=Dragable.mup;
        return false;
}
Dragable.mmove=function (e) {
        if (this.ref.onmove)
                this.ref.onmove(this.ref);
        return false;
}
Dragable.mdrag=function (e) {
    var that=Dragable.current;
        that.pageX=e.pageX-that.offX;
        that.pageY=e.pageY-that.offY;
        if (that.ref.ondrag)
          that.ref.ondrag(that.ref);
        return false;
}
Dragable.mup=function () {
    var that=Dragable.current;
        window.onmousemove=that.savemousemove;
        window.onmouseup=that.savemouseup;
        var mask=0;
        if (!window.onmousemove) mask|=Event.MOUSEMOVE;
        if (!window.onmouseup)   mask|=Event.MOUSEUP;
        window.releaseEvents(mask);
        if (that.ref.ondrop)
          that.ref.ondrop(that.ref);
        return false;
}
function Dragable(x,y,html) {
  var ref=this;
  var d;
  if (x.constructor==Layer) {
    d=x;
  } else {
    var s="<layer name=dragable left="+x+" top="+y+" >"+html+"</layer>";
    document.write(s);
    d=document.layers.dragable;
  }
  d.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN);
  d.onmousemove=Dragable.mmove;
  d.onmousedown=Dragable.mdown;
  ref.layer=d;
  d.ref=ref;
}
