function ScrollText(content,btnPrevious,btnNext,autoStart,timeout,isSmoothScroll) { this.Speed = 5; this.Timeout = timeout; this.stopscroll =false; this.isSmoothScroll= isSmoothScroll; this.LineHeight = 20; this.NextButton = this.$(btnNext); this.PreviousButton = this.$(btnPrevious); this.ScrollContent = this.$(content); this.ScrollContent.innerHTML += this.ScrollContent.innerHTML; if(this.PreviousButton) { this.PreviousButton.onclick = this.GetFunction(this,"Previous"); this.PreviousButton.onmouseover = this.GetFunction(this,"MouseOver"); this.PreviousButton.onmouseout = this.GetFunction(this,"MouseOut"); } if(this.NextButton){ this.NextButton.onclick = this.GetFunction(this,"Next"); this.NextButton.onmouseover = this.GetFunction(this,"MouseOver"); this.NextButton.onmouseout = this.GetFunction(this,"MouseOut"); } this.ScrollContent.onmouseover = this.GetFunction(this,"MouseOver"); this.ScrollContent.onmouseout = this.GetFunction(this,"MouseOut"); if(autoStart) { this.Start(); } } ScrollText.prototype = { $:function(element) { return document.getElementById(element); }, Previous:function() { this.stopscroll = true; this.Scroll("up"); }, Next:function() { this.stopscroll = true; this.Scroll("down"); }, Start:function() { if(this.isSmoothScroll) { this.AutoScrollTimer = setInterval(this.GetFunction(this,"SmoothScroll"), this.Timeout); } else { this.AutoScrollTimer = setInterval(this.GetFunction(this,"AutoScroll"), this.Timeout); } }, Stop:function() { clearTimeout(this.AutoScrollTimer); this.DelayTimerStop = 0; }, MouseOver:function() { this.stopscroll = true; }, MouseOut:function() { this.stopscroll = false; }, AutoScroll:function() { if(this.stopscroll) { return; } this.ScrollContent.scrollTop++; if(parseInt(this.ScrollContent.scrollTop) % this.LineHeight != 0) { this.ScrollTimer = setTimeout(this.GetFunction(this,"AutoScroll"), this.Speed); } else { if(parseInt(this.ScrollContent.scrollTop) >= parseInt(this.ScrollContent.scrollHeight) / 2) { this.ScrollContent.scrollTop = 0; } clearTimeout(this.ScrollTimer); //this.AutoScrollTimer = setTimeout(this.GetFunction(this,"AutoScroll"), this.Timeout); } }, SmoothScroll:function() { if(this.stopscroll) { return; } this.ScrollContent.scrollTop++; if(parseInt(this.ScrollContent.scrollTop) >= parseInt(this.ScrollContent.scrollHeight) / 2) { this.ScrollContent.scrollTop = 0; } }, Scroll:function(direction) { if(direction=="up") { this.ScrollContent.scrollTop--; } else { this.ScrollContent.scrollTop++; } if(parseInt(this.ScrollContent.scrollTop) >= parseInt(this.ScrollContent.scrollHeight) / 2) { this.ScrollContent.scrollTop = 0; } else if(parseInt(this.ScrollContent.scrollTop)<=0) { this.ScrollContent.scrollTop = parseInt(this.ScrollContent.scrollHeight) / 2; } if(parseInt(this.ScrollContent.scrollTop) % this.LineHeight != 0) { this.ScrollTimer = setTimeout(this.GetFunction(this,"Scroll",direction), this.Speed); } }, GetFunction:function(variable,method,param) { return function() { variable[method](param); } } } function ignoreError() { return true; } window.onerror = ignoreError;