(function($){
	$.fn.lavaLamp= function(o){ 
		o=$.extend({
			fx:"linear",
			speed:1000,
			click:function(){}
		},
		o || {}
		);
		return this.each(function(){
			var b=$(this),
			noop=function(){},
			$back=$('<li class="back"><div class="left"></div></li>').appendTo(b),
			$li=$("li",this),
			curr=$("li.current",this)[0]||$($li[0]).addClass("current")[0];
			
			$li.not(".back").hover(function(){
				move(this)
			},
			noop
			);
			
			$(this).hover(noop,function(){
				move(curr)
			});
			
			$li.click(function(e){
				setCurr(this);
				return o.click.apply(this,[e,this])
			});
			
			setCurr(curr);
			function setCurr(a){
				$back.css({"left":a.offsetLeft+"px","width":a.offsetWidth+"px"});
				curr=a
			};
			function move(a){
				$back.each(function(){
					$.dequeue(this,"fx")
				}).animate({width:a.offsetWidth,left:a.offsetLeft},o.speed,o.fx)
			}
		})
	}
})(jQuery);
