jQuery.imageMagnify={dsettings:{magnifyby:2,duration:500,imgopacity:.2},cursorcss:"url(magnify.cur), -moz-zoom-in",zIndexcounter:100,refreshoffsets:function(a,b,c){var d=b.offset();var e={x:a.scrollLeft(),y:a.scrollTop(),w:a.width(),h:a.height()};c.attrs.x=d.left;c.attrs.y=d.top;c.newattrs.x=e.x+e.w/2-c.newattrs.w/2;c.newattrs.y=e.y+e.h/2-c.newattrs.h/2;if(c.newattrs.x<e.x+5){c.newattrs.x=e.x+5}else if(c.newattrs.x+c.newattrs.w>e.x+e.w){c.newattrs.x=e.x+5}if(c.newattrs.y<e.y+5){c.newattrs.y=e.y+5}},magnify:function(a,b,c){var d={};var d=jQuery.extend(d,this.dsettings,c);var e=c.thumbdimensions?{w:c.thumbdimensions[0],h:c.thumbdimensions[1]}:{w:b.outerWidth(),h:b.outerHeight()};var f={};f.w=d.magnifyto?d.magnifyto:Math.round(e.w*d.magnifyby);f.h=d.magnifyto?Math.round(e.h*f.w/e.w):Math.round(e.h*d.magnifyby);b.css("cursor",jQuery.imageMagnify.cursorcss);if(b.data("imgshell")){b.data("imgshell").$clone.remove();b.css({opacity:1}).unbind("click.magnify")}var g=b.clone().css({position:"absolute",left:0,top:0,visibility:"hidden",border:"1px solid gray",cursor:"pointer"}).appendTo(document.body);g.data("$relatedtarget",b);b.data("imgshell",{$clone:g,attrs:e,newattrs:f});b.bind("click.magnify",function(b){var c=a(this).css({opacity:d.imgopacity});var e=c.data("imgshell");jQuery.imageMagnify.refreshoffsets(a(window),c,e);var f=e.$clone;f.stop().css({zIndex:++jQuery.imageMagnify.zIndexcounter,left:e.attrs.x,top:e.attrs.y,width:e.attrs.w,height:e.attrs.h,opacity:0,visibility:"visible",display:"block"}).animate({opacity:1,left:e.newattrs.x,top:e.newattrs.y,width:e.newattrs.w,height:e.newattrs.h},d.duration,function(){})});g.click(function(b){var c=a(this);var e=c.data("$relatedtarget").data("imgshell");jQuery.imageMagnify.refreshoffsets(a(window),c.data("$relatedtarget"),e);c.stop().animate({opacity:0,left:e.attrs.x,top:e.attrs.y,width:e.attrs.w,height:e.attrs.h},d.duration,function(){c.hide();c.data("$relatedtarget").css({opacity:1})})})}};jQuery.fn.imageMagnify=function(a){var b=jQuery;return this.each(function(){var c=b(this);if(this.tagName!="IMG")return true;if(parseInt(c.css("width"))>0&&parseInt(c.css("height"))>0||a.thumbdimensions){jQuery.imageMagnify.magnify(b,c,a)}else if(this.complete){jQuery.imageMagnify.magnify(b,c,a)}else{b(this).bind("load",function(){jQuery.imageMagnify.magnify(b,c,a)})}})};jQuery.fn.applyMagnifier=function(a){var b=jQuery;return this.each(function(){var a=b(this);if(this.tagName!="IMG")return true})};jQuery(document).ready(function(a){var b=a(".magnify");b.each(function(b){var c=a(this);var d={};if(c.attr("data-magnifyto"))d.magnifyto=parseFloat(c.attr("data-magnifyto"));if(c.attr("data-magnifyby"))d.magnifyby=parseFloat(c.attr("data-magnifyby"));if(c.attr("data-magnifyduration"))d.duration=parseInt(c.attr("data-magnifyduration"));c.imageMagnify(d)});var c=a('a[rel^="magnify["]');c.each(function(b){var c=a(this);var d=c.attr("rel").match(/\[.+\]/)[0].replace(/[\[\]']/g,"");c.data("magnifyimageid",d);c.click(function(b){a("#"+a(this).data("magnifyimageid")).trigger("click.magnify");b.preventDefault()})})})
