(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,top:ce.offsetTop,width:ce.offsetWidth,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-bx,top:el.offsetTop-by,width:el.offsetWidth,height:el.offsetHeight},o.speed,o.fx);}});};})(jQuery);
