(function($) {
	$.fn.lavaLamp = function(o) {
		o = $.extend({ fx: 'linear', speed: 200, click: function(){} }, o || {});
		return this.each(function() {
			var b = $(this),
				noop = function(){},
				$back = $('<li class="invisible"><div class="left"></div></li><li class="back"><div class="left"></div></li>').appendTo(b),
				$li = $('> li', this),
				curr = $('> li:has(a.active)', this)[0] || $('li.invisible').addClass('current')[0];
			$li.not('.back').hover(function() {
				$li.children('a').removeAttr('style');
				$(this).children('a').css({'color':'#FFFFFF'});
				move(this);
			}, noop);
			$(this).hover(noop, function() {
				$li.children().removeAttr('style');
				move(curr);
				$('#main-menu-list > ul > li:has(a.active) > a').css({'color':'#FFFFFF'});
			});
			$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' });
				$(a).children().css({'color':'#FFFFFF'});
				curr = a;
			};
			function move(a) {
				$back.dequeue().animate({
					width: a.offsetWidth,
					left: a.offsetLeft
				}, o.speed, o.fx);
			};
		});
	};
})(jQuery);
