/**
 * @author Matthew
 */

$(document).ready(function()
{
	var left_link = $("#shift_left");
	var right_link = $("#shift_right");
	
	var starting_position = 0;
	
	var item_width_css = $(".slider a").css("width");
	var item_padding_css = $(".slider a").css("paddingRight");
	var item_margin_css = $(".slider a").css("marginRight");
	
	var item_width = item_width_css.substring(0, item_width_css.length - 2);
	var item_padding = item_padding_css.substring(0, item_padding_css.length - 2);
	var item_margin = item_margin_css.substring(0, item_margin_css.length - 2);
	
	var item_totalWidth = parseInt(item_width) + (parseInt(item_padding) * 2) + parseInt(item_margin) + 3;
	
	var numOfItemsPerWindow = 3;
	var totalNumOfItems = $(".slider a").length;
	
	var total_slide_width = item_totalWidth * numOfItemsPerWindow;
	
	var final_slide_width = ((Math.ceil(totalNumOfItems / numOfItemsPerWindow)) * numOfItemsPerWindow) * item_totalWidth;
	
	var current_position = getCurrentXPosition();
	var x_position = current_position.left;
	
	if(x_position === starting_position)
	{
		$("#shift_left").hide();
		
		if(totalNumOfItems > numOfItemsPerWindow)
		{
			$("#shift_right").show();
		}
		else
		{
			$("#shift_right").hide();
		}
	}
	
	setClickHandler(total_slide_width, final_slide_width, starting_position);
});

var getCurrentXPosition = function()
{
	var currentPos = $(".slider").position();
	
	return currentPos;
}

var slideRight = function(lengthOfSlide, finalPosition, startPosition)
{
	$(".slider").animate({left: "-=" + lengthOfSlide + "px"}, 1000, function()
	{
		var current_position = getCurrentXPosition().left;
		
		if(current_position < 0)
		{
			current_position = current_position * -1;
		}
		
		if(current_position === finalPosition - lengthOfSlide)
		{
			$("#shift_right").hide();
		}
		
		if(current_position > startPosition)
		{
			$("#shift_left").show();
		}
		
		setClickHandler(lengthOfSlide, finalPosition, startPosition);
	});
}

var slideLeft = function(lengthOfSlide, finalPosition, startPosition)
{
	$(".slider").animate({left: "+=" + lengthOfSlide + "px"}, 1000, function()
	{
		var current_position = getCurrentXPosition().left;
		
		if(current_position < 0)
		{
			current_position = current_position * -1;
		}
		
		if(current_position === startPosition)
		{
			$("#shift_right").show();
			$("#shift_left").hide();
		}
		else
		{
			$("#shift_right").show();
		}
		
		setClickHandler(lengthOfSlide, finalPosition, startPosition);
	});
}

var setClickHandler = function(total_slide_width, final_slide_width, starting_position)
{
	$("#shift_right").unbind().click(function()
	{
		$(this).unbind();
		
		slideRight(total_slide_width, final_slide_width, starting_position);
	});
	
	$("#shift_left").unbind().click(function()
	{
		$(this).unbind();
		
		slideLeft(total_slide_width, final_slide_width, starting_position);
	});
}
