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";
	}
}