/*
 * Class Horizontal Scroller
 */
var HorizontalScroller = function(items, itemsInView, scrollAmount, container) {
	var self = this;
	var scrollIndex = 0;
	var minScrollIndex = 0;
	var scrollConstant = scrollAmount;
	var numItems = items;
	var numItemsInView = itemsInView;

	this.init = function() {
		if (numItems > numItemsInView) {
			$('.scroll-right', container).removeClass('disabled');
			$('.scroll-right .arrow', container).removeClass('disabled');
			$('.scroll-right', container).click(function() {
				self.scrollRight();
				return false;
			});
			$('.scroll-left', container).click(function() { 
				self.scrollLeft(); 
				return false;
			});
		}
		if (numItems <= numItemsInView) {
			$('.scroll-right', container).click(function() {
				return false;
			});
			$('.scroll-left', container).click(function() { 
				return false;
			});
		}
		minScrollIndex = 0 - (numItems - numItemsInView);
	}
	
	this.scrollLeft = function () {
		var newScrollIndex = scrollIndex + numItemsInView;
		if (newScrollIndex < 0) {
			scrollIndex = newScrollIndex;
			var anim = true;
		} else if (newScrollIndex >= 0) {
			scrollIndex = 0;
			var anim = true;
		}
		if (anim) {
			var newLeft = scrollIndex * scrollConstant;		
			$('.scroll-content', container).stop(true).animate({left: newLeft}, 1000);
			$('.scroll-right', container).removeClass('disabled');
			$('.scroll-right .arrow', container).removeClass('disabled');
			if (newLeft == 0) {
				$('.scroll-left', container).addClass('disabled');
				$('.scroll-left .arrow', container).addClass('disabled');
			}
		}
		return false;
	}
	
	this.scrollRight = function() {
		var newScrollIndex = scrollIndex - numItemsInView;
		if (newScrollIndex >= minScrollIndex) {
			scrollIndex = newScrollIndex;
			var anim = true;
		} else if (scrollIndex != minScrollIndex) {
			scrollIndex = minScrollIndex;
			var anim = true;
		}
		if (anim) {		
			var newLeft = scrollIndex * scrollConstant;
			$('.scroll-content', container).stop(true).animate({left: newLeft}, 1000);
			$('.scroll-left', container).removeClass('disabled');
			$('.scroll-left .arrow', container).removeClass('disabled');
			if (newLeft == ((numItems - numItemsInView) * - scrollConstant)) {
				$('.scroll-right', container).addClass('disabled');
				$('.scroll-right .arrow', container).addClass('disabled');
			}
		}
		return false;
	}	
	this.init();
}
