(function($) {
	function scroll($cont, left) {
		var $inner = $cont.find(".image_gallery_inner");
		if($inner.is(":animated")) return;
		var ix = $inner.data("first_visible_ix") || 1;
		var $visible = $inner.children(":nth-child(" + ix + ")");
		var $next = left ? $visible.next() : $visible.prev();
		if($next.length) {
			$inner.animate({"left": -$next.position().left}, 200, "linear");
			$inner.data("first_visible_ix", ix + (left ? 1 : -1));
		}
	}
	var interval;
	function scroll_by_event(ev, left) {
		scroll($(ev.target).closest(".image_gallery_cont"), left);
	}
	$(".gallery-ar-left, .gallery-ar-right").bind("mousedown", function(ev){
		clearInterval(interval);
		var left = !$(ev.target).is(".gallery-ar-left");
		scroll_by_event(ev, left);
		interval = setInterval(function() {	scroll_by_event(ev, left); }, 20);
	});
	$(".image_gallery_cont").bind("DOMMouseScroll mousewheel", function(ev) {
		ev.preventDefault();
		scroll_by_event(ev, (ev.wheelDelta || -ev.detail) < 0);
	});
	$(".gallery-ar-left, .gallery-ar-right").bind("mouseup mouseleave", function(ev){
		clearInterval(interval);
	})
})(jQuery);
