(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);
                    $("li[@class=current]").removeClass("current");  //tried to work around on rotating selection....
                    $(this).addClass("current"); 
                    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);