var gallery = false;
var itemWidth = 264;		// width of each item in pixels
var itemPerView = 3			// how many items can be seen at once
var sliderMinLeftPosition = false;
var leftHandle = false;
var rightHandle = false;
var sliderPosition = false;

var isAnimating = false;
var isDoneAnimating = true;

function initSlider()	{
	try {
		gallery = $("#gallery");
		leftHandle = $("#left");
		rightHandle = $("#right");
		
		if((!gallery) || (!leftHandle) || (!rightHandle)) return(false);

		sliderMinLeftPosition = parseInt("-" + (productCount - itemPerView) * (itemWidth));
		sliderPosition = gallery.css("left").replace(/px/gi,"");
		
		if(productIndex)	{
			sliderPosition = parseInt(parseInt("-" + productIndex * itemWidth) + itemWidth);
			animateSlider(sliderPosition);
		} else {
			animateSlider(0);
		}
	} catch(e) { processError(e,"initSlider()") };
}

function handleClick() { moveSlider($(this).parent().attr("id")); }

function initHandles(SLIDERPOSITION)	{
	try	{
		//alert(SLIDERPOSITION + ": " + sliderMinLeftPosition)
		if (SLIDERPOSITION == 0) leftHandle.addClass("off"); 
		else leftHandle.removeClass("off");
		
		if (SLIDERPOSITION == sliderMinLeftPosition) rightHandle.addClass("off");
		else rightHandle.removeClass("off");
		
		$(".handle").bind("click",handleClick);
		$(".off .handle").unbind("click",handleClick);
		return(true);
	} catch(e) { processError(e,"initHandles()") };
}

function animateSlider(SLIDERPOSITION, SPEED) {
	if (isAnimating) return (true);
	if(SPEED) var speed = SPEED;
	else var speed = 600;
	try	{
		if(!gallery) return(false);
		if (SLIDERPOSITION < sliderMinLeftPosition) SLIDERPOSITION = sliderMinLeftPosition;
		isAnimating = true;
		leftHandle.addClass("off");
		rightHandle.addClass("off");
		gallery.animate({ left: SLIDERPOSITION + "px" }, speed, function() {
			isAnimating = false;
			initHandles(SLIDERPOSITION);
		});
	} catch(e) { processError(e,"animateSlider()") };
	
}

function moveSlider(DIR)	{
	try	{
		if((!gallery) || ($("#" + DIR).hasClass("off"))) return(false);
		sliderPosition = gallery.css("left").replace(/px/gi,"");
		
		if(DIR == "left") sliderPosition = parseInt(sliderPosition) + parseInt(itemWidth);
		else sliderPosition = parseInt(sliderPosition) - parseInt(itemWidth);
		animateSlider(sliderPosition, 1000);
		return(false);
	} catch(e) { processError(e,"moveSlider()") };
}

$(document).ready(initSlider);

