(function(a){a.expr[":"].linkingToImage=function(d,c,b){return !!(a(d).attr(b[3])&&a(d).attr(b[3]).match(/\.(gif|jpe?g|png|bmp)$/i))};a.fn.imgPreview=function(d){var c=a.extend({imgCSS:{},distanceFromCursor:{top:10,left:10},preloadImages:true,onShow:function(){},onHide:function(){},onLoad:function(){},containerID:"imgPreviewContainer",containerLoadingClass:"loading",thumbPrefix:"",srcAttr:"href"},d),g=a("<div/>").attr("id",c.containerID).append("<img/>").hide().css("position","absolute").appendTo("body"),b=a("img",g).css(c.imgCSS),f=this.filter(":linkingToImage("+c.srcAttr+")");function e(h){if(typeof(h)=="undefined"){return""}if(c.thumbPrefix==""){return h}return h.replace(/(\/?)([^\/]+)$/,"$1"+c.thumbPrefix+"$2")}if(c.preloadImages){(function(h){var k=new Image(),j=arguments.callee;k.src=e(a(f[h]).attr(c.srcAttr));k.onload=function(){f[h+1]&&j(h+1)}})(0)}f.mousemove(function(h){g.css({top:h.pageY+c.distanceFromCursor.top+"px",left:h.pageX+c.distanceFromCursor.left+"px"})}).hover(function(){var h=this;g.addClass(c.containerLoadingClass).show();b.load(function(){g.removeClass(c.containerLoadingClass);b.fadeIn("fast");c.onLoad.call(b[0],h)}).attr("src",e(a(h).attr(c.srcAttr)));c.onShow.call(g[0],h)},function(){g.hide();b.unbind("load").attr("src","").hide();c.onHide.call(g[0],this)});return this}})(jQuery);