jQuery.fn.fancyZoom = function(O) { var O = O || {}; var L = O && O.directory ? O.directory : "images"; var D = false; if ($("#zoom").length == 0) { var E = $.browser.msie ? "gif" : "png"; var J = '<div id="zoom" style="display:none;">                   <table id="zoom_table" style="border-collapse:collapse; width:100%; height:100%;">                     <tbody>                       <tr>                         <td class="tl" style="background:url(' + L + "/tl." + E + ') 0 0 no-repeat; width:20px; height:20px; overflow:hidden;" />                         <td class="tm" style="background:url(' + L + "/tm." + E + ') 0 0 repeat-x; height:20px; overflow:hidden;" />                         <td class="tr" style="background:url(' + L + "/tr." + E + ') 100% 0 no-repeat; width:20px; height:20px; overflow:hidden;" />                       </tr>                       <tr>                         <td class="ml" style="background:url(' + L + "/ml." + E + ') 0 0 repeat-y; width:20px; overflow:hidden;" />                         <td class="mm" style="background:#fff; vertical-align:top; padding:10px;">                           <div id="zoom_content">                           </div>                         </td>                         <td class="mr" style="background:url(' + L + "/mr." + E + ') 100% 0 repeat-y;  width:20px; overflow:hidden;" />                       </tr>                       <tr>                         <td class="bl" style="background:url(' + L + "/bl." + E + ') 0 100% no-repeat; width:20px; height:20px; overflow:hidden;" />                         <td class="bm" style="background:url(' + L + "/bm." + E + ') 0 100% repeat-x; height:20px; overflow:hidden;" />                         <td class="br" style="background:url(' + L + "/br." + E + ') 100% 100% no-repeat; width:20px; height:20px; overflow:hidden;" />                       </tr>                     </tbody>                   </table>                   <a href="#" title="Close" id="zoom_close" style="position:absolute; top:0; left:0;">                     <img src="' + L + "/closebox." + E + '" alt="Close" style="border:none; margin:0; padding:0;" />                   </a>                 </div>'; $("body").append(J); $("html").click(function(P) { if ($(P.target).parents("#zoom:visible").length == 0) { K() } }); $(document).keyup(function(P) { if (P.keyCode == 27 && $("#zoom:visible").length > 0) { K() } }); $("#zoom_close").click(K) } var N = $("#zoom"); var I = $("#zoom_table"); var H = $("#zoom_close"); var G = $("#zoom_content"); var A = $("td.ml,td.mm,td.mr"); this.each(function(P) { $($(this).attr("href")).hide(); $(this).click(M) }); return this; function M(V) { if (D) { return false } D = true; var P = $($(this).attr("href")); var T = O.width; var U = O.height; var Q = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth); var b = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight); var Z = window.pageXOffset || (window.document.documentElement.scrollLeft || window.document.body.scrollLeft); var Y = window.pageYOffset || (window.document.documentElement.scrollTop || window.document.body.scrollTop); var c = { width: Q, height: b, x: Z, y: Y }; var Q = (T || P.width()) + 60; var b = (U || P.height()) + 60; var W = c; var X = Math.max((W.height / 2) - (b / 2) + Y, 0); var a = (W.width / 2) - (Q / 2); var R = V.pageY; var S = V.pageX; H.attr("curTop", R); H.attr("curLeft", S); H.attr("scaleImg", O.scaleImg ? "true" : "false"); $("#zoom").hide().css({position: "absolute", top: R + "px", left: S + "px", width: "1px", height: "1px", "z-index": "1000" }); F(); H.hide(); if (O.closeOnClick) { $("#zoom").click(K) } if (O.scaleImg) { G.html(P.html()); $("#zoom_content img").css("width", "100%") } else { G.html("") } $("#zoom").animate({ top: X + "px", left: a + "px", opacity: "show", width: Q, height: b }, 500, null, function() { if (O.scaleImg != true) { G.html(P.html()) } C(); H.show(); D = false }); return false } function K() { if (D) { return false } D = true; $("#zoom").unbind("click"); F(); if (H.attr("scaleImg") != "true") { G.html("") } H.hide(); $("#zoom").animate({ top: H.attr("curTop") + "px", left: H.attr("curLeft") + "px", opacity: "hide", width: "1px", height: "1px" }, 500, null, function() { if (H.attr("scaleImg") == "true") { G.html("") } C(); D = false }); return false } function B(R) { $("#zoom_table td").each(function(T) { var S = $(this).css("background-image").replace(/\.(png|gif|none)\"\)$/, "." + R + '")'); $(this).css("background-image", S) }); var Q = H.children("img"); var P = Q.attr("src").replace(/\.(png|gif|none)$/, "." + R); Q.attr("src", P) } function F() { if ($.browser.msie && parseFloat($.browser.version) >= 7) { B("gif") } } function C() { if ($.browser.msie && $.browser.version >= 7) { B("png") } } };
