/*
 * imgPreview jQuery plugin
 * Copyright (c) 2009 James Padolsey
 * j@qd9.co.uk | http://james.padolsey.com
 * Dual licensed under MIT and GPL.
 * Updated: 09/02/09
 * @author James Padolsey
 * @version 0.22
 * @verUp 10/05/19 Naruse Hideyuki
 */
(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){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){if(a(window).width()>(h.pageX-a(window).scrollLeft())+c.distanceFromCursor.left+b.width()+10){g.css({left:h.pageX+c.distanceFromCursor.left+"px"})}else{g.css({left:h.pageX-b.width()-c.distanceFromCursor.left-20+"px"})}if(a(window).height()>(h.pageY-a(window).scrollTop())+c.distanceFromCursor.top+b.height()+10){g.css({top:h.pageY+c.distanceFromCursor.top+"px"})}else{g.css({top:h.pageY-b.height()-c.distanceFromCursor.top-20+"px"})}}).hover(function(){var h=this;g.addClass(c.containerLoadingClass).show();b.load(function(){g.removeClass(c.containerLoadingClass);b.show();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);