$(function() {
	
	var totalPanels			= $(".scrollContainer").children().size();
	
	$('.scrollContainer').each( function() {
		var i = 1;
		$(this).find('.panel').each( function() {
			$(this).attr('id', 'panel_' + i);
			$(this).attr('data', i);
			i += 1;
		});
	});
		
	var regWidth			= Math.round(parseFloat($(".panel").css("width")));
	var regImgWidth			= Math.round(parseFloat($(".panel img.thumb").css("width")));
	var regImgHeight		= Math.round(parseFloat($(".panel img.thumb").css("height")));
	var regShadowWidth		= Math.round(parseFloat($(".panel img.shadow").css("width")));
	var regShadowHeight		= Math.round(parseFloat($(".panel img.shadow").css("height")));
	
	var movingDistance	    = 143;
	
	var curWidth			= 143;
	var curImgWidth			= 80;
	var curImgHeight		= 80;
	var curShadowWidth		= 94;
	var curShadowHeight		= 94;

	var curTitleSize		= "20px";
	var curParSize			= "15px";

	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', '-0px');

	var scroll = $('#slider .scroll').css('overflow', 'hidden');

	function returnToNormal(element) {
		$(element)
			.animate({ width: regWidth })
			.find("img.thumb")
			.animate({ width: regImgWidth, height: regImgHeight })
			.end()
			.find("img.mirror")
			.animate({ width: regImgWidth, height: regImgHeight })
			.end()
			.find("img.shadow")
			.animate({ width: regShadowWidth, height: regShadowHeight});
	};
	
	function growBigger(element) {
		$(element)
			.animate({ width: curWidth })
			.find("img.thumb")
			.animate({ width: curImgWidth, height: curImgHeight })
			.end()
			.find("img.mirror")
			.animate({ width: curImgWidth, height: curImgHeight })
			.end()
			.find("img.shadow")
			.animate({ width: curShadowWidth, height: curShadowHeight });
	}
	
	function change(direction) {
		if((direction && !(curPanel < totalPanels)) || (!direction && (curPanel <= 1))) { return false; }
		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;
			
			$("#panel_"+(curPanel+1)).unbind();	
			$("#panel_"+(curPanel+1)).click(function(){ change(true); });														
			$("#panel_"+(curPanel-1)).unbind();
			$("#panel_"+(curPanel-1)).click(function(){ change(false); }); 
			$("#panel_"+curPanel).unbind();
		}
	}

	var curCookie = $.cookie('submenu' + currentPage);
	if (curCookie != null) {
		growBigger("#panel_" + curCookie);
		var curPanel = parseInt(curCookie);
		$container.css('left', ((curCookie - 3) * (-curWidth)) + "px");
	} else {
		growBigger("#panel_3");
		var curPanel = 3;
	}
	
	$("#panel_"+(curPanel+1)).click(function(){ change(true); });
	$("#panel_"+(curPanel-1)).click(function(){ change(false); });
	
	$("#submenu .right").click(function(){ change(true); });	
	$("#submenu .left").click(function(){ change(false); });
	
	$("#submenu .inside a").click( function() {
	  var panel = $(this).closest('.panel');
	  $.cookie('submenu' + currentPage, panel.attr('data'), { path: '/', expires: 1 });
	  return true;
	});
	
	$(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;
	  }
	});
	
});