$(window).ready(function() {
	
	var sliderWidth = $("body").innerWidth();
	var slideMultiplier = .95
	var currentOffset = 0;
	var totalWidth = 0;
	var liPadding = 50;
	var moveDuration = 600;
	
	var mouseStartX = 0;
	var mouseTempX = 0;
	
	$("#imageScroller ul li").each(function() {
		
		totalWidth -= $(this).outerWidth() + liPadding;
		
	});
	
	$("#leftButton a").click(function() {
		
		currentOffset += sliderWidth * slideMultiplier;
		
		if( currentOffset > 0 ) { currentOffset = 0; }
		
		$("#imageScroller ul").animate({
			left: checkOffset(currentOffset)
		}, { queue:false, duration:moveDuration, easing:"swing" });
	});
	
	$("#rightButton a").click(function() {
		
		currentOffset -= sliderWidth * slideMultiplier;
		
		if( currentOffset < totalWidth + sliderWidth - liPadding ) { currentOffset = totalWidth + sliderWidth - liPadding; }
		
		$("#imageScroller ul").animate({
			left: checkOffset(currentOffset)
		}, { queue:false, duration:moveDuration, easing:"swing" });
	});
	
	/****************** IPhone Scrolling ********************/
	
	$("#imageScroller").mousedown(function(e) {
		
		mouseStartX = e.pageX;
		
		$("#imageScroller").mousemove(function(e) {
			
			mouseTempX = e.pageX;			
			var newOffset = currentOffset - ( mouseStartX - mouseTempX );
			newOffset = checkOffset(newOffset);
			
			$("#imageScroller ul").css("left", newOffset + "px");
			
		});
		
	});
	
	$("#imageScroller").mouseup(function(e) {
		
		var xDistance = mouseStartX - e.pageX;
		var ratio = xDistance / sliderWidth;
		var moveDistance = (ratio * totalWidth)*.5;
		
		var newOffset = currentOffset + moveDistance;
		currentOffset = checkOffset(newOffset);
		
		$("#imageScroller ul").animate(
			{ left: currentOffset },
			{ duration:150, easing:"linear" }
		);
		
	});
	
	$().mouseup(function(e) {
		$("#imageScroller").unbind("mousemove");
	});
	
	function checkOffset( offset ) {
		
		if( offset < totalWidth + sliderWidth - liPadding ) {
			return totalWidth + sliderWidth - liPadding;
		} else if( offset > 0 ) {
			return 0;
		}
		
		return offset;
		
	}
	
});