<_newinternalinputtext name="inp" x="${parent.border}"
y="${parent.border}">
if (this.isinited) {
this.setScroll(Math.ceil(1 - (p / this.lineheight)));
this.pos = p;
if (this.onpos) this.onpos.sendEvent(p);
}
this.setAttribute("width", parent.width - parent.vscrollwidth - parent.border*2 );
this.setAttribute("height", parent.height - parent.border*2 );
this.applyConstraintMethod('_constainWidth', [parent, "width", parent, "vscrollwidth", parent, "border"]);
this.applyConstraintMethod('_constainHeight', [parent, "height", parent, "border"]);
this.setPos(-this.lineheight * (this.scroll - 1), true);
this.setAttribute("vscrollwidth", (v ? this._vs.width : 0));
if (this._vs == null) {
var classname = this.vscrollbarclassname;
if (classname == "") {
classname = "vscrollbar";
}
if ($debug) {
if (typeof(lz[classname]) == "undefined") {
Debug.write("scrollbarclassname undefined", this);
}
}
this._vs = new lz[classname](this,
{ axis: "y",
scrollattr: "pos",
scrolltarget: this.inp});
var xDel = new LzDelegate(this, 'updateX');
xDel.register(this._vs, 'onwidth');
xDel.register(this, 'onwidth');
xDel.register(this, 'onborder');
new LzDelegate(this, 'updateScrollMax', this.inp, 'onmaxheight');
new LzDelegate(this, 'updateStepSize', this.inp, 'onlineheight');
}
this._vs.setAttribute("x", this.width - this._vs.width );
this._vs.setAttribute("stepsize", this.inp.lineheight);
this._vs.setAttribute("scrollmax", this.inp.maxheight);
super.init();
this.ensurevscrollbar();
setvscrollwidthfromvisibility(_vs.visible);
this.myDel = new LzDelegate(this, "setvscrollwidthfromvisibility", this._vs, "onvisible");