var scroller = function() {
	
	var div = $('div.containitems');
	var ul = $('ul.items');
	var ulPadding = 8;
	var maxSpeed = 3;
	var dampening = 100;
	var threshold = 1;
	
	var divWidth = div.width();
	var lastLi = ul.find('li:last-child');

	var ulWidth = 0;
	var itemCount = 0;
	$('div.containitems ul.items li').each(function(i, elem) {
		itemCount++;
		var imgWidth = Number($('a img', elem).attr('width'));
		$(elem)
			.data('width', imgWidth)
			.width(imgWidth)
		;
		$('a p', elem).css('paddingLeft', (imgWidth + ulPadding) + 'px');
		ulWidth += imgWidth + ulPadding;
	});
	ulWidth *= (itemCount + 3.5)/itemCount;
  
	var x = 0;
	var timer = null;
	
	function animate(e) {
		if (e) {
			x = e.pageX;
			if (timer) clearTimeout(timer);
		}
		
		var tgt = (x - div.offset().left) * (ulWidth - divWidth) / divWidth - 100;
		var current = div.scrollLeft();
		var diff = (tgt - current) / dampening;
		if (Math.abs(diff) > maxSpeed) {
			diff = diff > 0 ? maxSpeed: -maxSpeed;
		}

		var next = current + diff;
		div.scrollLeft(next);
		if (Math.abs(tgt - current) > threshold) {
			timer = setTimeout('scroller.animate()', 1);
		}
	}
	
	div.hover(
		function() {}
		,function() {
			if (timer) clearTimeout(timer);
		}
	);
	
	return {
		animate: animate
	}
};

$(document).ready(function(){
	
	scroller = scroller();
	$('div.containitems')
		.css({overflow: 'hidden'})
		.mousemove(function(e) {
			scroller.animate(e);
		});
	

});



