ScrollTab_Class = function(){} ScrollTab_Class.prototype.init = function(parentNode, tabs, srcImg, tabStop){ this._tabIdx = 0; this._tabStop = tabStop; this._parentNode = parentNode; this._tabs = tabs; this._animLock = false; var ul = Element.create("ul") ul.className = "tabrow"; for (var x=0; x < tabs.length; x++){ var li = Element.create("li"); li.className = (x == 0)?"tabrow-tab tabrow-tab-on":"tabrow-tab"; var a = Element.create("a"); a.setAttribute("href", "javascript:void(0)"); a.innerHTML = tabs[x].title; Events.add({ type: "mouseup", element:a, handler: this._flipTab, context: this, data: x }); li.appendChild(a); ul.appendChild(li); } this._parentNode.appendChild(ul); var oControls = Element.create("div"); oControls.className = "strip-controls"; var oContainer = Element.create("div"); oContainer.className = "strip-container"; this._oStripImg = Element.create("img"); this._oStripImg.setAttribute("src", srcImg); var navLeft = Element.create("img"); navLeft.className = "navarrow navarrowleft"; navLeft.setAttribute("src", "resources/img/icon_navarrow_left.png"); Events.add({ type: "mouseup", element:navLeft, handler: this._flipTab, context: this, data: "left" }); var navRight = Element.create("img"); navRight.className = "navarrow navarrowright"; navRight.setAttribute("src", "resources/img/icon_navarrow_right.png"); Events.add({ type: "mouseup", element:navRight, handler: this._flipTab, context: this, data: "right" }); oContainer.appendChild(this._oStripImg); oControls.appendChild(oContainer); oControls.appendChild(navLeft); oControls.appendChild(navRight); this._parentNode.appendChild(oControls); } ScrollTab_Class.prototype._scrollTo = function(tabIdx, newTabIdx){ this._animLock = true; var toPos = -1 * (newTabIdx * this._tabStop); var fromPos = -1 * (tabIdx * this._tabStop); var effect = Effects.create(this._oStripImg,'x',{onComplete: this._unlockAnimation,context: this, easing:"strongEaseOut", from:fromPos, to:toPos, duration:'.5'}); effect.animate(); } ScrollTab_Class.prototype._unlockAnimation = function(){ this._animLock = false; } ScrollTab_Class.prototype._flipTab = function(e, elem, data){ if (this._animLock){return} if (typeof data == "number"){ var newTabIdx = data; } else if (data == "left"){ var newTabIdx = Math.max(0, this._tabIdx - 1); } else if (data == "right"){ var newTabIdx = Math.min(this._tabs.length - 1, this._tabIdx + 1); } var tabs = this._parentNode.getElementsByTagName("li"); for (var x=0; x < tabs.length; x++){ tabs[x].className = (x == newTabIdx)?"tabrow-tab tabrow-tab-on":"tabrow-tab"; } this._scrollTo(this._tabIdx, newTabIdx); this._tabIdx = newTabIdx; }