$(function() {
	Slider.init();
});

var Slider = {
	itemWidth: 233,
	visibleItems: 4,
	inc: 0.5,
	maxVel: 30,
	init: function() {		
		$(".previous").click(function() {
			if ($(this).hasClass("disabled")) {
				return false;
			}
			Slider.startSliderAnimation("left");
			return false;
		});
		
		$(".next").click(function() {
			if ($(this).hasClass("disabled")) {
				return false;
			}
			Slider.startSliderAnimation("right");
			return false;
		});
	},
	
	startSliderAnimation: function(dir) {
		var left = $("#events_wrapper").css("margin-left");
		var pxoff = left.indexOf("px");
		left = parseInt(left.substr(0, pxoff));
		$("#timeline .previous").addClass("disabled");
		$("#timeline .next").addClass("disabled");
		var dest = 0;
		var inc = Slider.inc;
		if (dir == "left") {
			dest = left + Slider.itemWidth;
		} else {
			dest = left -  Slider.itemWidth;
		}
	
		if (left == dest) {
			return;
		}
		var h = setInterval(function() {
			//left += parseInt(inc);
			if ((dir == "left" && (dest - left < (Slider.itemWidth*0.5))) || 
					(dir == "right" && (left - dest < (Slider.itemWidth*0.5)))) {
				inc -= Slider.inc;
				if (inc < Slider.inc) {
					inc = Slider.inc;
				}
			} else if (inc < Slider.maxVel) {
				inc += Slider.inc;
				if (inc > Slider.maxVel) {
					inc = Slider.maxVel;
				}
			}
			$("#events_wrapper").css({
				'margin-left':left+'px'
			});
			if (dir == "left") {
				left += inc;
				if (left >= dest) {
					clearInterval(h);
					/*$("#events_wrapper").css({
						'margin-left':dest+'px'
					});*/
					$("#events_wrapper").animate({"margin-left": + dest + 'px'},500);
					if (left >= 0) {
						$("#timeline .previous").addClass("disabled");
					} else {
						$("#timeline .previous").removeClass("disabled");
					}
					$("#timeline .next").removeClass("disabled");
				}
			} else {
				left -= inc;
				if (left <= dest) {
					clearInterval(h);
					/*$("#events_wrapper").css({
						'margin-left':dest+'px'
					});*/
					$("#events_wrapper").animate({"margin-left": + dest + 'px'},500);
					
					
					if (left <= -($("#events_wrapper").width() - (Slider.itemWidth * Slider.visibleItems))) {
						$("#timeline .next").addClass("disabled");
					} else {
						$("#timeline .next").removeClass("disabled");
					}
					$("#timeline .previous").removeClass("disabled");
				}
				
			}
		}, 1);
	}
};
