(function($) {$.extend({ahover: {version: 1.0,defaults: {toggleSpeed: 75,toggleEffect: 'both',hoverEffect: null,moveSpeed: 250,easing: 'swing',className: 'ahover'},effects: {'width': {width: 0},'height': {height: 0},'both': {width: 0, height: 0}}}});$.fn.extend({ahover: function(options) {var options = $.extend({}, $.ahover.defaults, options);var effect = ((typeof options.toggleEffect == 'string') ?$.ahover.effects[options.toggleEffect] : options.toggleEffect);var parent = this.offsetParent();return this.hover(function(e) {var over = $(this);var overSize = {width: over.outerWidth(),height: over.outerHeight()};var overOffset = over.offset();var parentOffset = parent.offset();var under = $('div.' + options.className, parent).stop();var created = (under.length == 0);if (created) {under = $('<div>&nbsp;</div>').addClass(options.className).appendTo(parent).css(overSize);}var underOffset = {left: overOffset.left - parentOffset.left -(under.outerWidth() - under.width()) / 2,top: overOffset.top - parentOffset.top -(under.outerHeight() - under.height()) / 2};if (created) {under.css(underOffset).css(effect).animate(overSize, {queue: false,duration: options.toggleSpeed,easing: options.easing});}else {var underCSS = $.extend({}, overSize, underOffset);under.animate(underCSS, {queue: false,duration: options.moveSpeed,easing: options.easing});}if ($.isFunction(options.hoverEffect)) {under.queue(options.hoverEffect);}},function(e) {$('div.' + options.className, parent).animate(effect, {queue: false,duration: options.toggleSpeed,easing: options.easing,complete: function() { $(this).remove(); }});});}});})(jQuery);