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