(function($){$.expr[":"].linkingToImage=function(elem,index,match){return !!($(elem).attr(match[3])&&$(elem).attr(match[3]).match(/\.(gif|jpe?g|png|bmp)$/i))};$.fn.imgPreview=function(userDefinedSettings){var s=$.extend({imgCSS:{},distanceFromCursor:{top:10,left:10},preloadImages:true,onShow:function(){},onHide:function(){},onLoad:function(){},containerID:"imgPreviewContainer",containerLoadingClass:"loading",thumbPrefix:"",srcAttr:"href"},userDefinedSettings),$container=$("<div/>").attr("id",s.containerID).append("<img/>").hide().css("position","absolute").appendTo($(".wrapperIn").eq(0)),$img=$("img",$container).css(s.imgCSS),$collection=this.filter(":linkingToImage("+s.srcAttr+")");function addPrefix(src){return src.replace(/(\/?)([^\/]+)$/,"$1"+s.thumbPrefix+"$2")}if(s.preloadImages){(function(i){var tempIMG=new Image(),callee=arguments.callee;tempIMG.src=addPrefix($($collection[i]).attr(s.srcAttr));tempIMG.onload=function(){$collection[i+1]&&callee(i+1)}})(0)}$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.addClass(s.containerLoadingClass).show();$img.load(function(){$container.removeClass(s.containerLoadingClass);$img.show();s.onLoad.call($img[0],link)}).attr("src",addPrefix($(link).attr(s.srcAttr)));s.onShow.call($container[0],link)},function(){$container.hide();$img.unbind("load").attr("src","").hide();s.onHide.call($container[0],this)});return this}})(jQuery);