var ContentSlider = function() {
 
        var me = this;
        me.ItemIndex = 1;
        me.ItemHeight = 260;
        me.ItemSpeed = 0.3;
        me.ItemCurrentY = 0;
        me.ItemTargetY = 0;
        me.ItemIntervalId = 0;
        me.ItemIntervalDelay = 20;
        me.Slider = null;
        me.NextPageUrl = '';
        me.ItemCount = 0;
 
        this.Register = function(sliderId, totalItems) {
               me.Slider = document.getElementById(sliderId);
               me.ItemCount = totalItems;
        }
 
        this.Slide = function(dir) {
               // Determine the direction to move
               if (dir == 'up') {
                       if (me.ItemIndex == 1) return;        // Do not scroll past the beginning
                       me.ItemIndex--;                       // Decrement the index
                       me.ItemTargetY += me.ItemHeight;      // Increase the targetX by offset value
               }
               else {
                       if (me.ItemIndex == me.ItemCount) {
                               if (me.NextPageUrl != '') window.location = me.NextPageUrl;
                               return;                               // Do not scroll past the end
                       }
                       me.ItemIndex++;                       // Increment the index
                       me.ItemTargetY -= me.ItemHeight;      // Decrease the targetX by offset value
               }
               if (me.ItemIntervalId == 0) me.ItemIntervalId = setInterval(Animate, me.ItemIntervalDelay); // Set interval for animation
        }
 
        function Animate() {
               if (me.ItemCurrentY == me.ItemTargetY)                       // Animation complete?
               {
                       // All done, clear timeout
                       clearInterval(me.ItemIntervalId);
                       me.ItemIntervalId = 0;
                       return;
               }
 
               // Get difference between where we want to be and where
               // we are, in a percentage value for smooth animation.
               var difference = Math.floor((me.ItemTargetY - me.ItemCurrentY) * me.ItemSpeed);
               if (difference == 1) {
                       // Close enough for darts and horseshoes
                       me.ItemCurrentY = me.ItemTargetY;
                       me.Slider.style.top = me.ItemTargetY + "px";
                       clearInterval(me.ItemIntervalId);
                       me.ItemIntervalId = 0;
                       return;
               }
               // Animate
               me.ItemCurrentY = (me.ItemCurrentY + difference);
               me.Slider.style.top = (me.ItemCurrentY + difference) + "px";
        }
}
