(function(jQuery){jQuery.fn.lavaLamp=function(o){o=jQuery.extend({fx:'swing',speed:500,click:function(){return true},startItem:'no',autoReturn:true,returnDelay:0,setOnClick:true,homeTop:0,homeLeft:0,homeWidth:0,homeHeight:0,returnHome:false},o||{});return this.each(function(){var path=location.pathname+location.search+location.hash;var $selected=new Object;var delayTimer;var $back;var $home;var ce;if(o.homeTop||o.homeLeft){$home=jQuery('<li class="homeLava selectedLava"></li>').css({left:o.homeLeft,top:o.homeTop,width:o.homeWidth,height:o.homeHeight,position:'absolute'});jQuery(this).prepend($home)}var $li=jQuery('li',this);if(o.startItem=='no')$selected=jQuery('li a[href$="'+path+'"]',this).parent('li');if($selected.length==0&&o.startItem=='no'&&location.hash)$selected=jQuery('li a[href$="'+location.hash+'"]',this).parent('li');if($selected.length==0||o.startItem!='no'){if(o.startItem=='no')o.startItem=0;$selected=jQuery($li[o.startItem])}ce=jQuery('li.selectedLava',this)[0]||jQuery($selected).addClass('selectedLava')[0];$li.mouseover(function(){if(jQuery(this).hasClass('homeLava')){ce=jQuery(this)[0]}move(this)});$back=jQuery('<li class="backLava"><div class="leftLava"></div><div class="bottomLava"></div><div class="cornerLava"></div></li>').appendTo(this);jQuery(this).mouseout(function(){if(o.autoReturn){if(o.returnHome&&$home){move($home[0])}else if(o.returnDelay){if(delayTimer)clearTimeout(delayTimer);delayTimer=setTimeout(move,o.returnDelay+o.speed)}else{move()}}});$li.click(function(e){if(o.setOnClick){jQuery(ce).removeClass('selectedLava');jQuery(this).addClass('selectedLava');ce=this}return o.click.apply(this,[e,this])});if(o.homeTop||o.homeLeft)$back.css({left:o.homeLeft,top:o.homeTop,width:o.homeWidth,height:o.homeHeight});else $back.css({left:ce.offsetLeft+8,top:ce.offsetTop,width:ce.offsetWidth-16,height:ce.offsetHeight});function move(el){if(!el)el=ce;var bx=0,by=0;if(!jQuery.browser.msie){bx=($back.outerWidth()-$back.innerWidth())/2;by=($back.outerHeight()-$back.innerHeight())/2}$back.stop().animate({left:el.offsetLeft+8-bx,top:el.offsetTop-by,width:el.offsetWidth-16,height:el.offsetHeight},o.speed,o.fx)}})}})(jQuery);