1!function($){var defaults={url:!1,callback:!1,target:!1,duration:120,on:"mouseover",touch:!0,onZoomIn:!1,onZoomOut:!1,magnify:1};$.zoom=function(target,source,img,magnify){var targetHeight,targetWidth,sourceHeight,sourceWidth,xRatio,yRatio,offset,position=$(target).css("position"),$source=$(source);return target.style.position=/(absolute|fixed)/.test(position)?position:"relative",target.style.overflow="hidden",img.style.width=img.style.height="",$(img).addClass("zoomImg").css({position:"absolute",top:0,left:0,opacity:0,width:img.width*magnify,height:img.height*magnify,border:"none",maxWidth:"none",maxHeight:"none"}).appendTo(target),{init:function(){targetWidth=$(target).outerWidth(),targetHeight=$(target).outerHeight(),source===target?(sourceWidth=targetWidth,sourceHeight=targetHeight):(sourceWidth=$source.outerWidth(),sourceHeight=$source.outerHeight()),xRatio=(img.width-targetWidth)/sourceWidth,yRatio=(img.height-targetHeight)/sourceHeight,offset=$source.offset()},move:function(e){var left=e.pageX-offset.left,top=e.pageY-offset.top;top=Math.max(Math.min(top,sourceHeight),0),left=Math.max(Math.min(left,sourceWidth),0),img.style.left=left*-xRatio+"px",img.style.top=top*-yRatio+"px"}}},$.fn.zoom=function(options){return this.each(function(){var $urlElement,settings=$.extend({},defaults,options||{}),target=settings.target||this,source=this,$source=$(source),img=$source.find(".zoomImg")[0]||document.createElement("img"),$img=$(img),mousemove="mousemove.zoom",clicked=!1,touched=!1;(settings.url||($urlElement=$source.find("img"),$urlElement[0]&&(settings.url=$urlElement.data("src")||$urlElement.attr("src")),settings.url))&&(!function(){var position=target.style.position,overflow=target.style.overflow;$source.one("zoom.destroy",function(){$source.off(".zoom"),target.style.position=position,target.style.overflow=overflow,$img.remove()})}(),img.onload=function(){function start(e){zoom.init(),zoom.move(e),$img.stop().fadeTo($.support.opacity?settings.duration:0,1,$.isFunction(settings.onZoomIn)?settings.onZoomIn.call(img):!1)}function stop(){$img.stop().fadeTo(settings.duration,0,$.isFunction(settings.onZoomOut)?settings.onZoomOut.call(img):!1)}var zoom=$.zoom(target,source,img,settings.magnify);"grab"===settings.on?$source.on("mousedown.zoom",function(e){1===e.which&&($(document).one("mouseup.zoom",function(){stop(),$(document).off(mousemove,zoom.move)}),start(e),$(document).on(mousemove,zoom.move),e.preventDefault())}):"click"===settings.on?$source.on("click.zoom",function(e){return clicked?void 0:(clicked=!0,start(e),$(document).on(mousemove,zoom.move),$(document).one("click.zoom",function(){stop(),clicked=!1,$(document).off(mousemove,zoom.move)}),!1)}):"toggle"===settings.on?$source.on("click.zoom",function(e){clicked?stop():start(e),clicked=!clicked}):"mouseover"===settings.on&&(zoom.init(),$source.on("mouseenter.zoom",start).on("mouseleave.zoom",stop).on(mousemove,zoom.move)),settings.touch&&$source.on("touchstart.zoom",function(e){e.preventDefault(),touched?(touched=!1,stop()):(touched=!0,start(e.originalEvent.touches[0]||e.originalEvent.changedTouches[0]))}).on("touchmove.zoom",function(e){e.preventDefault(),zoom.move(e.originalEvent.touches[0]||e.originalEvent.changedTouches[0])}),$.isFunction(settings.callback)&&settings.callback.call(img)},img.src=settings.url)})},$.fn.zoom.defaults=defaults}(window.jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.