$.fn.imgPreview=function(options){var s=$.extend({distanceFromCursor:{top:10,left:10},preloadImg:true,onShow:function(){},onHide:function(){},onLoad:function(){},containerID:'bubble',srcAttr:'rel'},options);$container=$('
').attr('id',s.containerID).append('
').css('position','absolute').appendTo('body');$img=$('img',$container);$collection=this.filter(':linkingToImage('+s.srcAttr+')');$collection.mousemove(function(e){$container.css({top:e.pageY+s.distanceFromCursor.top+'px',left:e.pageX+s.distanceFromCursor.left+'px'});}).hover(function(){var link=this;$container.fadeIn();$img.bind('load',function(){$container.removeClass(s.containerLoadingClass);$img.show(function(){dx=1/2*($('#'+s.containerID).innerWidth()-this.width);dy=1/2*($('#'+s.containerID).innerHeight()-this.height);$img.css({position:'absolute',top:dy,left:dx,opacity:0.3}).animate({opacity:1.0},300);});s.onLoad.call($img[0],link);}).attr('src',($(link).attr(s.srcAttr)));s.onShow.call($container[0],link);},function(){$container.css({display:'none'});$img.unbind('load').attr('src','').addClass('nod');s.onHide.call($container[0],this);});return this;};