(function(a) {
    a.fn.fancyZoom = function(p) {
        var p = p || {};
        var m = p && p.directory ? p.directory : "images";
        var e = false;
        if (a("#zoom1").length == 0) {
            var f = a.browser.msie ? "gif" : "png";
            var k = '<div id="zoom1" style="display:none;"> <table id="zoom_table1" style="border-collapse:collapse; width:100%; height:100%;"> <tbody> <tr> <td class="tl" style="background:url(' + m + "/tl." + f + ') 0 0 no-repeat; width:20px; height:20px; overflow:hidden;" /> <td class="tm" style="background:url(' + m + "/tm." + f + ') 0 0 repeat-x; height:20px; overflow:hidden;" /> <td class="tr" style="background:url(' + m + "/tr." + f + ') 100% 0 no-repeat; width:20px; height:20px; overflow:hidden;" /> </tr> <tr> <td class="ml" style="background:url(' + m + "/ml." + f + ') 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(' + m + "/mr." + f + ') 100% 0 repeat-y; width:20px; overflow:hidden;" /> </tr> <tr> <td class="bl" style="background:url(' + m + "/bl." + f + ') 0 100% no-repeat; width:20px; height:20px; overflow:hidden;" /> <td class="bm" style="background:url(' + m + "/bm." + f + ') 0 100% repeat-x; height:20px; overflow:hidden;" /> <td class="br" style="background:url(' + m + "/br." + f + ') 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="' + m + "/closebox." + f + '" alt="Close" style="border:none; margin:0; padding:0;" /> </a> </div>';
            a("body").append(k);
            a("html").click(function(q) {
                if (a(q.target).parents("#zoom1:visible").length == 0) { l(); }
            });
            a(document).keyup(function(q) {
                if (q.keyCode == 27 && a("#zoom1:visible").length > 0) { l(); }
            });
            a("#zoom_close").click(l);
        }
        var o = a("#zoom1");
        var j = a("#zoom_table1");
        var i = a("#zoom_close");
        var h = a("#zoom_content");
        var b = a("td.ml,td.mm,td.mr");
        this.each(function(q) {
            a(a(this).attr("href")).hide();
            a(this).click(n);
        });
        return this;
        function n(w) {
            if (e) { return false; }
            e = true;
            var q = a(a(this).attr("href"));
            var u = p.width;
            var v = p.height;
            var r = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth);
            var E = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);
            var C = window.pageXOffset || (window.document.documentElement.scrollLeft || window.document.body.scrollLeft);
            var B = window.pageYOffset || (window.document.documentElement.scrollTop || window.document.body.scrollTop);
            var F = { width: r, height: E, x: C, y: B };
            var r = (u || q.width()) + 60;
            var E = (v || q.height()) + 60;
            var z = F;
            var A = Math.max((z.height / 2) - (E / 2) + B, 0);
            var D = (z.width / 2) - (r / 2);
            var s = w.pageY;
            var t = w.pageX;
            i.attr("curTop", s);
            i.attr("curLeft", t);
            i.attr("scaleImg", p.scaleImg ? "true" : "false");
            a("#zoom1").hide().css({ position: "absolute", top: s + "px", left: t + "px", width: "1px", height: "1px" });
            g();
            i.hide();
            if (p.closeOnClick) { a("#zoom1").click(l); }
            if (p.scaleImg)
            {
                h.html(q.html());
                a("#zoom_content img").css("width", "100%");
            } else {
                h.html("");
            }
            a("#zoom1").animate({ top: A + "px", left: D + "px", opacity: "show", width: r, height: E }, 500, null, function()
            {
                if (p.scaleImg != true) { h.html(q.html()); }
                d();
                i.show();
                e = false;
            });
            return false;
        }
        function l()
        {
            if (e) { return false; }
            e = true;
            a("#zoom1").unbind("click");
            g();
            if (i.attr("scaleImg") != "true") { h.html(""); }
            i.hide();
            a("#zoom1").animate({ top: i.attr("curTop") + "px", left: i.attr("curLeft") + "px", opacity: "hide", width: "1px", height: "1px" }, 500, null, function()
            {
                if (i.attr("scaleImg") == "true") { h.html(""); }
                d();
                e = false;
            });
            return false;
        }
        function c(s) {
            a("#zoom_table1 td").each(function(u) {
                var t = a(this).css("background-image").replace(/\.(png|gif|none)\"\)$/, "." + s + '")');
                a(this).css("background-image", t);
            });
            var r = i.children("img");
            var q = r.attr("src").replace(/\.(png|gif|none)$/, "." + s);
            r.attr("src", q);
        }
        function g() {
            if (a.browser.msie && parseFloat(a.browser.version) >= 7) { c("gif"); }
        }
        function d() {
            if (a.browser.msie && a.browser.version >= 7) { c("png"); }
        }
    };
})
(jQuery);
