(function($){
    $.fn.lavaLamp=function(o){
        o=$.extend({
            fx:"linear",
            speed:500,
            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);
