
jQuery(function($) {
	
	$(".ContentScroller").each(function() {
		var contentScroller = $(this);
		var contentWrapper = contentScroller.find(".ContentWrapper");
		var contentMask = contentScroller.find(".ContentMask");
		var contentPane = contentScroller.find(".ContentPane");
		var contentList = contentScroller.find(".ContentList");
		var nextBtn = contentScroller.find(".NextBtn");
		var prevBtn = contentScroller.find(".PrevBtn");
			
		var orientation = contentScroller.hasClass("VertScroller") ? "vert" : "horz";
	
		prevBtn.hide();
		
		if (orientation == "vert") {
			
			contentList.height(function() {
				var totalHt = 0;
				var contentList = $(this);
				contentList.find(".ContentItem").each(function(){
					var contentItem = $(this);
					totalHt += contentItem.outerHeight();
				});
				return totalHt;
			});
			
			if (contentList.outerHeight() > contentPane.outerHeight()) {
				contentList.height(contentList.outerHeight() + contentPane.outerHeight());
			}
			else {
				nextBtn.hide();
				contentWrapper.height(contentWrapper.height() - (contentMask.outerHeight() - contentList.outerHeight())).addClass("NoArrows");
				contentMask.height(contentMask.height() - (contentMask.outerHeight() - contentList.outerHeight()));
			}
			
			contentPane.scrollTop(0);
		}
		else {
			contentList.width(function() {
				var totalWt = 0;
				var contentList = $(this);
				contentList.find(".ContentItem").each(function(){
					var contentItem = $(this);
					totalWt += contentItem.outerWidth();
				});
				totalWt += contentPane.outerWidth();
				return totalWt;
			});
		
			contentPane.scrollLeft(0);
		}
		
		nextBtn.click(function () {
			var nextBtn = $(this);
			var contentScroller = nextBtn.parents(".ContentScroller");
			var contentPane = contentScroller.find(".ContentPane");
			var contentList = contentScroller.find(".ContentList");
			var prevBtn = contentScroller.find(".PrevBtn");
			
			var orientation = contentScroller.hasClass("VertScroller") ? "vert" : "horz";
			
			if (orientation == "vert") {
				var listHt = contentList.outerHeight();
				var paneHt = contentPane.outerHeight();
				var paneScrollTop = contentPane.scrollTop();
				
				if (listHt > (paneScrollTop + paneHt)) {
					
					if (paneScrollTop < listHt - paneHt * 3) {
						nextBtn.show();
					}
					else {
						nextBtn.hide();
					}
					
					prevBtn.show();
					
					contentPane.animate({ scrollTop: paneScrollTop + paneHt }, 1000, "easeInOutQuint");
				}
			}
			else {
				var listWt = contentList.outerWidth();
				var paneWt = contentPane.outerWidth();
				var paneScrollLt = contentPane.scrollLeft();
				
				if (listWt > (paneScrollLt + paneWt)) {
					
					if (paneScrollLt < listWt - paneWt * 3) {
						nextBtn.show();
					}
					else {
						nextBtn.hide();
					}
					
					prevBtn.show();
					
					contentPane.animate({ scrollLeft: paneScrollLt + paneWt }, 1000, "easeInOutQuint");
				}
			}
		});
		
		prevBtn.click(function () {
			var prevBtn = $(this);
			var contentScroller = prevBtn.parents(".ContentScroller");
			var contentPane = contentScroller.find(".ContentPane");
			var contentList = contentScroller.find(".ContentList");
			var nextBtn = contentScroller.find(".NextBtn");
			
			var orientation = contentScroller.hasClass("VertScroller") ? "vert" : "horz";
			
			if (orientation == "vert") {
				var listHt = contentList.outerHeight();
				var paneHt = contentPane.outerHeight();
				var paneScrollTop = contentPane.scrollTop();
				
				if (paneScrollTop > 0) {
				
					if (paneScrollTop - paneHt > 0) {
						prevBtn.show();
					}
					else {
						prevBtn.hide();
					}
					
					nextBtn.show();
					
					contentPane.animate({ scrollTop: paneScrollTop - paneHt }, 1000, "easeInOutQuint");
				}
			}
			else {
				var listWt = contentList.outerWidth();
				var paneWt = contentPane.outerWidth();
				var paneScrollLt = contentPane.scrollLeft();
				
				if (paneScrollLt > 0) {
					
					if (paneScrollLt - paneWt > 0) {
						prevBtn.show();
					}
					else {
						prevBtn.hide();
					}
					
					nextBtn.show();
					
					contentPane.animate({ scrollLeft: paneScrollLt - paneWt }, 1000, "easeInOutQuint");
				}
			}
		});
	});
});

