$(function() {
	
  if ($('#slider').length){
    var totalPanels			= $(".scrollContainer").children().size();
  	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	= 150;
  	var curWidth			  = 130;
  	var curImgWidth			= 130;
  	var curTitleSize		= "13px";
  	var curParSize			= "10px";
  
  	var $panels				= $('#slider .scrollContainer > div');
  	var $container			= $('#slider .scrollContainer');
  
  	$panels.css({'float' : 'left','position' : 'relative'});
      
  	$("#slider").data("currentlyMoving", false);
  
  	$container
  		.css('width', ($panels[0].offsetWidth * $panels.length) + 100 )
  		.css('left', "0");
  
  	//var scroll = $('#slider .scroll').css('overflow', 'hidden');
  
  	function returnToNormal(element) {
  		$(element)
  			.animate({ width: regWidth })
  			.find("img")
  			.animate({ width: regImgWidth })
  		    .end()
  			.find("h2")
  			.animate({ fontSize: regTitleSize })
  			.end()
  			.find("p")
  			.animate({ fontSize: regParSize });
  	};
  	
  	function growBigger(element) {
  		$(element)
  			.animate({ width: curWidth })
  			.find("img")
  			.animate({ width: curImgWidth })
  		    .end()
  			.find("h2")
  			.animate({ fontSize: curTitleSize })
  			.end()
  			.find("p")
  			.animate({ fontSize: curParSize });
  	}
  	
  	//direction true = right, false = left
  	function change(direction) {
  	   
  	    //if not at the first or last panel
  		if((direction && !(curPanel < totalPanels)) || (!direction && (curPanel <= 1))) { return false; }	
          
          //if not currently moving
          if (($("#slider").data("currentlyMoving") == false)) {
              
  			$("#slider").data("currentlyMoving", true);
  			
  			var next         = direction ? curPanel + 1 : curPanel - 1;
  			var leftValue    = $(".scrollContainer").css("left");
  			var movement	 = direction ? parseFloat(leftValue, 10) - movingDistance : parseFloat(leftValue, 10) + movingDistance;
  		
  			$(".scrollContainer")
  				.stop()
  				.animate({
  					"left": movement
  				}, function() {
  					$("#slider").data("currentlyMoving", false);
  				});
  			
  			returnToNormal("#panel_"+curPanel);
  			growBigger("#panel_"+next);
  			
  			curPanel = next;
  			
  			//remove all previous bound functions
  			$("#panel_"+(curPanel+1)).unbind();	
  			
  			//go forward
  			$("#panel_"+(curPanel+1)).click(function(){ change(true); });
  			
              //remove all previous bound functions															
  			$("#panel_"+(curPanel-1)).unbind();
  			
  			//go back
  			$("#panel_"+(curPanel-1)).click(function(){ change(false); }); 
  			
  			//remove all previous bound functions
  			$("#panel_"+curPanel).unbind();
  		}
  	}
  	
  	// Set up "Current" panel and next and prev
  	growBigger("#panel_3");	
  	var curPanel = 3;
  	
  	$("#panel_"+(curPanel+1)).click(function(){ change(true); });
  	$("#panel_"+(curPanel-1)).click(function(){ change(false); });
  	
  	//when the left/right arrows are clicked
  	$(".right").click(function(){ change(true); });	
  	$(".left").click(function(){ change(false); });
  	
  	$(window).keydown(function(event){
  	  switch (event.keyCode) {
  			case 13: //enter
  				$(".right").click();
  				break;
  			case 32: //space
  				$(".right").click();
  				break;
  	    case 37: //left arrow
  				$(".left").click();
  				break;
  			case 39: //right arrow
  				$(".right").click();
  				break;
  	  }
  	});
  }

});
