(function($){$.fn.fancyZoom = function(options){var options   = options || {}; var zooming   = false; if ($('#zoom').length == 0) {var html = '<div id="zoom" style="display:none;"> \ <div id="zoom_content"> \ </div> \ </div>'; $('body').append(html); $('#shadow').click(function(e){if($(e.target).parents('#zoom:visible').length == 0){ hide();}});} var zoom = $('#zoom'); var zoom_content = $('#zoom_content'); this.each(function(i) { $($(this).attr('href')).hide(); $(this).click(show);}); return this; function show(e) { if (zooming) return false; zooming = true; var content_div = $($(this).attr('href')); var zoom_width  = options.width; var zoom_height = options.height; var width = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth); var height = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight); var x = window.pageXOffset || (window.document.documentElement.scrollLeft || window.document.body.scrollLeft); var y = window.pageYOffset || (window.document.documentElement.scrollTop || window.document.body.scrollTop); var window_size = {'width':width, 'height':height, 'x':x, 'y':y}; var width = (zoom_width || content_div.width()); var height = (zoom_height || content_div.height());	var d = window_size; var newTop = Math.max((d.height/2) - (height/2) + y, 0); var newLeft = (d.width/2) - (width/2); var curTop = e.pageY; var curLeft = e.pageX; $('#zoom').hide().css({ position : 'absolute', top : curTop + 'px', left : curLeft + 'px', width : '1px', height : '1px'}); $("#shadow").fadeIn('fast'); $('#zoom').animate({ top : newTop + 'px', left : newLeft + 'px', opacity : "show", width : width, height : height}, 500, null, function() {if (options.scaleImg != true) {zoom_content.html(content_div.html());} zooming = false; }); return false; } function hide() { if (zooming) return false; zooming = true; $('#zoom').unbind('click'); $('#zoom').animate({ opacity : "hide", width   : '1px', height  : '1px' }, 500, null, function() {zooming = false;}); return false; }}})(jQuery);
