this.setAttribute("scrollamount", val); this.setAttribute("scrolldelay", val); return this.getAttribute("direction"); this.setAttribute("direction", val); return this._behavior; this.setAttribute("behavior", val); this.setAttribute("loop", val); return this.getAttribute("onstart"); this._setEventListener("start", val, true); this.setAttribute("onstart", val); return this.getAttribute("onfinish"); this._setEventListener("finish", val, true); this.setAttribute("onfinish", val); return this.getAttribute("onbounce"); this._setEventListener("bounce", val, true); this.setAttribute("onbounce", val); this.outerDiv.offsetHeight) corrvalue = this.originalHeight - this.outerDiv.offsetHeight; this.innerDiv.style.padding = height + " 0"; this.dirsign = 1; this.startAt = (this._behavior == 'alternate') ? (this.originalHeight - corrvalue) : 0; this.stopAt = (this._behavior == 'alternate' || this._behavior == 'slide') ? (parseInt(height) + corrvalue) : (this.originalHeight + parseInt(height)); break; case "down": var height = document.defaultView.getComputedStyle(this, "").height; this.outerDiv.style.height = height; if (this.originalHeight > this.outerDiv.offsetHeight) corrvalue = this.originalHeight - this.outerDiv.offsetHeight; this.innerDiv.style.padding = height + " 0"; this.dirsign = -1; this.startAt = (this._behavior == 'alternate') ? (parseInt(height) + corrvalue) : (this.originalHeight + parseInt(height)); this.stopAt = (this._behavior == 'alternate' || this._behavior == 'slide') ? (this.originalHeight - corrvalue) : 0; break; case "right": if (this.innerDiv.offsetWidth > this.outerDiv.offsetWidth) corrvalue = this.innerDiv.offsetWidth - this.outerDiv.offsetWidth; this.dirsign = -1; this.stopAt = (this._behavior == 'alternate' || this._behavior == 'slide') ? (this.innerDiv.offsetWidth - corrvalue) : 0; this.startAt = this.outerDiv.offsetWidth + ((this._behavior == 'alternate') ? corrvalue : (this.innerDiv.offsetWidth + this.stopAt)); break; case "left": default: if (this.innerDiv.offsetWidth > this.outerDiv.offsetWidth) corrvalue = this.innerDiv.offsetWidth - this.outerDiv.offsetWidth; this.dirsign = 1; this.startAt = (this._behavior == 'alternate') ? (this.innerDiv.offsetWidth - corrvalue) : 0; this.stopAt = this.outerDiv.offsetWidth + ((this._behavior == 'alternate' || this._behavior == 'slide') ? corrvalue : (this.innerDiv.offsetWidth + this.startAt)); } if (aResetPosition) { this.newPosition = this.startAt; this._fireEvent("start", false, false); } } //end if this.newPosition = this.newPosition + (this.dirsign * this._scrollAmount); if ((this.dirsign == 1 && this.newPosition > this.stopAt) || (this.dirsign == -1 && this.newPosition < this.stopAt)) { switch (this._behavior) { case 'alternate': // lets start afresh this.startNewDirection = true; // swap direction const swap = {left: "right", down: "up", up: "down", right: "left"}; this._direction = swap[this._direction]; this.newPosition = this.stopAt; if ((this._direction == "up") || (this._direction == "down")) this.outerDiv.scrollTop = this.newPosition; else this.outerDiv.scrollLeft = this.newPosition; if (this._loop != 1) this._fireEvent("bounce", false, true); break; case 'slide': if (this._loop > 1) this.newPosition = this.startAt; break; default: this.newPosition = this.startAt; if ((this._direction == "up") || (this._direction == "down")) this.outerDiv.scrollTop = this.newPosition; else this.outerDiv.scrollLeft = this.newPosition; //dispatch start event, even when this._loop == 1, comp. with IE6 this._fireEvent("start", false, false); } if (this._loop > 1) this._loop--; else if (this._loop == 1) { if ((this._direction == "up") || (this._direction == "down")) this.outerDiv.scrollTop = this.stopAt; else this.outerDiv.scrollLeft = this.stopAt; this.stop(); this._fireEvent("finish", false, true); return; } } else { if ((this._direction == "up") || (this._direction == "down")) this.outerDiv.scrollTop = this.newPosition; else this.outerDiv.scrollLeft = this.newPosition; } var myThis = this; var lambda = function myTimeOutFunction(){myThis._doMove(false);} this.runId = window.setTimeout(lambda, this._scrollDelay); ]]>