(function(jQuery)
{
	jQuery.fn.tomGallery = function(jumpTo)
	{
		var me = this;
		
		var x=0;
		var ndx=1;
		var dndx = $("div.ndx");
		var max = $("div.pane li.slide").length;
		var running;
		var lastA;
		
		// init
			var links = $("a",dndx);
			links.click(function(){
				var a = $(this);
				moveit(0,a.html());
			});
			var first = $("a",dndx).eq(0);
			first.click(function(){moveit(0,1)});
			
			var last = $("a",dndx).eq(max+1);
			last.click(function(){moveit(0,max)});
			
			$("a.navi_button",me).eq(0).click(function(){moveit(1)});
			$("a.navi_button",me).eq(1).click(function(){moveit(-1)});
			
			jQuery(document).keydown(function(e)
			{
				switch(e.keyCode)
				{
					case 37:
						moveit(1);
						break;
					case 39:
						moveit(-1);
						break;
				}
			});
			
			if(jumpTo) 
			{
				moveit(0,jumpTo);
			}
		//
		
		function moveit(cod,toPos)
		{
			if((ndx-cod)<1) return;
			if((ndx-cod)>max) return;
			var dPane = $("div.pane");
			
			if(running) dPane.stop();
			if(cod)
			{
				x=x+(720*cod);
				ndx=ndx-cod;
			}else{
				x = -720*(toPos-1);
				ndx = toPos;
			}
			
			updateindex();
			running=true;
			
			dPane.animate({left: x + 'px'}, {step: function(now, fx) { $("div.debug").html(now); } }, 1500, 'easeOutExpo', function(){
				running = false;
			});
		}
		function updateindex()
		{
			if(lastA) lastA.removeClass();
			var links = $("div.ndx a");
			var a = links.eq(ndx);
			a.addClass("current");
			lastA = a;
		}
		
		updateindex();
	
		// ----------------
		
		this.done = function()
		{
			return this;
		}
		return this.done();
	};
})(jQuery); 
