$(function() {
	
	var totalPanels			= $(".scrollContainer").children().size();
	var numShownPanels 	= 3;
	var curPanel = 1;
		
	var regWidth			= $(".panel").css("width");
	var regImgWidth			= $(".panel img").css("width");
	var regTitleSize		= $(".panel h2").css("font-size");
	var regParSize			= $(".panel p").css("font-size");
	
	var movingDistance	    = 1000;
	var marginRight					= 40;
	var $panels				= $('#slider .scrollContainer > div');
	var $container			= $('#slider .scrollContainer');
   
	$("#slider").data("currentlyMoving", false);
	$container.css('width', ($panels[0].offsetWidth * $panels.length) + parseInt(totalPanels/numShownPanels) * marginRight + 100 + "px").css("left","-30px");
	$panels.each(function(numPanel){
		if ((numPanel+1)%numShownPanels == 0) this.style.marginRight = marginRight + "px";
	});

	var scroll = $('#slider .scroll').css('overflow', 'hidden');
	
	function slide(direction) {
	  //if not at the first or last panel
		if (!((direction=="forward" && (curPanel <= totalPanels - numShownPanels)) || (direction=="backward" && (curPanel > numShownPanels)))) return false;
        
    //if not currently moving
    if (($("#slider").data("currentlyMoving") == false)) {
            
			$("#slider").data("currentlyMoving", true);
			
			curPanel        	= (direction == "forward" ) ? curPanel + numShownPanels : curPanel - numShownPanels;
			var leftValue    	= $(".scrollContainer").css("left");
			var movement	 		= (direction == "forward" ) ? parseInt(leftValue) - movingDistance : parseInt(leftValue) + movingDistance;
		
			$(".scrollContainer").stop().animate({ "left": movement}, function() {
				$("#slider").data("currentlyMoving", false);
			});
		}
	}
	
	//when the left/right arrows are clicked
	$(".right").click(function(){ slide("forward"); });	
	$(".left").click(function(){ slide("backward"); });
	
	$(window).keydown(function(event){
	  switch (event.keyCode) {
			case 13: //enter
			case 32: //space
			case 39: //right arrow
				$(".right").click();
				break;
	    case 37: //left arrow
				$(".left").click();
				break;
			default:
	  }
	});
	
});
