(function ($) { if (!$ || $.fancybox) { return; } var fnRelay = $.fn.fancybox = function () { var el = this, args = arguments; $(function () { if ($.fn.fancybox !== fnRelay) { $.fn.fancybox.apply(el, args); } }); return this; }; var relay = function (method) { return function () { var args = arguments; $(function () { if ($.fancybox !== staticRelay) { (method ? $.fancybox[method] : $.fancybox).apply($.fancybox, args); } }); }; }; var staticRelay = $.fancybox = relay(null); staticRelay.open = relay('open'); staticRelay.close = relay('close'); })(window.jQuery);