<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">require(['jquery'], function($) {
    (function(window, document, $, undefined) {
        "use strict";
        var H = $("html"),
            W = $(window),
            D = $(document),
            F = $.bssfancybox = function() {
                F.open.apply(this, arguments)
            },
            IE = navigator.userAgent.match(/msie/i),
            didUpdate = null,
            isTouch = document.createTouch !== undefined,
            isQuery = function(obj) {
                return obj &amp;&amp; obj.hasOwnProperty &amp;&amp; obj instanceof $
            },
            isString = function(str) {
                return str &amp;&amp; $.type(str) === "string"
            },
            isPercentage = function(str) {
                return isString(str) &amp;&amp; str.indexOf('%') &gt; 0
            },
            isScrollable = function(el) {
                return (el &amp;&amp; !(el.style.overflow &amp;&amp; el.style.overflow === 'hidden') &amp;&amp; ((el.clientWidth &amp;&amp; el.scrollWidth &gt; el.clientWidth) || (el.clientHeight &amp;&amp; el.scrollHeight &gt; el.clientHeight)))
            },
            getScalar = function(orig, dim) {
                var value = parseInt(orig, 10) || 0;
                if (dim &amp;&amp; isPercentage(orig)) {
                    value = F.getViewport()[dim] / 100 * value
                }
                return Math.ceil(value)
            },
            getValue = function(value, dim) {
                return getScalar(value, dim) + 'px'
            };
        $.extend(F, {
            version: '2.1.5',
            defaults: {
                padding: 15,
                margin: 20,
                width: 800,
                height: 600,
                minWidth: 100,
                minHeight: 100,
                maxWidth: 9999,
                maxHeight: 9999,
                pixelRatio: 1,
                autoSize: !0,
                autoHeight: !1,
                autoWidth: !1,
                autoResize: !0,
                autoCenter: !isTouch,
                fitToView: !0,
                aspectRatio: !1,
                topRatio: 0.5,
                leftRatio: 0.5,
                scrolling: 'auto',
                wrapCSS: '',
                arrows: !0,
                closeBtn: !0,
                closeClick: !1,
                nextClick: !1,
                mouseWheel: !0,
                autoPlay: !1,
                playSpeed: 3000,
                preload: 3,
                modal: !1,
                loop: !0,
                ajax: {
                    dataType: 'html',
                    headers: {
                        'X-bssfancybox': !0
                    }
                },
                iframe: {
                    scrolling: 'auto',
                    preload: !0
                },
                swf: {
                    wmode: 'transparent',
                    allowfullscreen: 'true',
                    allowscriptaccess: 'always'
                },
                keys: {
                    next: {
                        13: 'left',
                        34: 'up',
                        39: 'left',
                        40: 'up'
                    },
                    prev: {
                        8: 'right',
                        33: 'down',
                        37: 'right',
                        38: 'down'
                    },
                    close: [27],
                    play: [32],
                    toggle: [70]
                },
                direction: {
                    next: 'left',
                    prev: 'right'
                },
                scrollOutside: !0,
                index: 0,
                type: null,
                href: null,
                content: null,
                title: null,
                tpl: {
                    wrap: '&lt;div class="bssfancybox-wrap" tabIndex="-1"&gt;&lt;div class="bssfancybox-skin"&gt;&lt;div class="bssfancybox-outer"&gt;&lt;div class="bssfancybox-inner"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;',
                    image: '&lt;img class="bssfancybox-image" src="{href}" alt="" /&gt;',
                    iframe: '&lt;iframe id="bssfancybox-frame{rnd}" name="bssfancybox-frame{rnd}" class="bssfancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '&gt;&lt;/iframe&gt;',
                    error: '&lt;p class="bssfancybox-error"&gt;The requested content cannot be loaded.&lt;br/&gt;Please try again later.&lt;/p&gt;',
                    closeBtn: '&lt;a title="Close" class="bssfancybox-item bssfancybox-close" href="javascript:;"&gt;&lt;/a&gt;',
                    next: '&lt;a title="Next" class="bssfancybox-nav bssfancybox-next" href="javascript:;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;',
                    prev: '&lt;a title="Previous" class="bssfancybox-nav bssfancybox-prev" href="javascript:;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;'
                },
                openEffect: 'fade',
                openSpeed: 250,
                openEasing: 'swing',
                openOpacity: !0,
                openMethod: 'zoomIn',
                closeEffect: 'fade',
                closeSpeed: 250,
                closeEasing: 'swing',
                closeOpacity: !0,
                closeMethod: 'zoomOut',
                nextEffect: 'elastic',
                nextSpeed: 250,
                nextEasing: 'swing',
                nextMethod: 'changeIn',
                prevEffect: 'elastic',
                prevSpeed: 250,
                prevEasing: 'swing',
                prevMethod: 'changeOut',
                helpers: {
                    overlay: !0,
                    title: !0
                },
                onCancel: $.noop,
                beforeLoad: $.noop,
                afterLoad: $.noop,
                beforeShow: $.noop,
                afterShow: $.noop,
                beforeChange: $.noop,
                beforeClose: $.noop,
                afterClose: $.noop
            },
            group: {},
            opts: {},
            previous: null,
            coming: null,
            current: null,
            isActive: !1,
            isOpen: !1,
            isOpened: !1,
            wrap: null,
            skin: null,
            outer: null,
            inner: null,
            player: {
                timer: null,
                isActive: !1
            },
            ajaxLoad: null,
            imgPreload: null,
            transitions: {},
            helpers: {},
            open: function(group, opts) {
                if (!group) {
                    return
                }
                if (!$.isPlainObject(opts)) {
                    opts = {}
                }
                if (!1 === F.close(!0)) {
                    return
                }
                if (!$.isArray(group)) {
                    group = isQuery(group) ? $(group).get() : [group]
                }
                $.each(group, function(i, element) {
                    var obj = {},
                        href, title, content, type, rez, hrefParts, selector;
                    if ($.type(element) === "object") {
                        if (element.nodeType) {
                            element = $(element)
                        }
                        if (isQuery(element)) {
                            obj = {
                                href: element.data('bssfancybox-href') || element.attr('href'),
                                title: element.data('bssfancybox-title') || element.attr('title'),
                                isDom: !0,
                                element: element
                            };
                            if ($.metadata) {
                                $.extend(!0, obj, element.metadata())
                            }
                        } else {
                            obj = element
                        }
                    }
                    href = opts.href || obj.href || (isString(element) ? element : null);
                    title = opts.title !== undefined ? opts.title : obj.title || '';
                    content = opts.content || obj.content;
                    type = content ? 'html' : (opts.type || obj.type);
                    if (!type &amp;&amp; obj.isDom) {
                        type = element.data('bssfancybox-type');
                        if (!type) {
                            rez = element.prop('class').match(/bssfancybox\.(\w+)/);
                            type = rez ? rez[1] : null
                        }
                    }
                    if (isString(href)) {
                        if (!type) {
                            if (F.isImage(href)) {
                                type = 'image'
                            } else if (F.isSWF(href)) {
                                type = 'swf'
                            } else if (href.charAt(0) === '#') {
                                type = 'inline'
                            } else if (isString(element)) {
                                type = 'html';
                                content = element
                            }
                        }
                        if (type === 'ajax') {
                            hrefParts = href.split(/\s+/, 2);
                            href = hrefParts.shift();
                            selector = hrefParts.shift()
                        }
                    }
                    if (!content) {
                        if (type === 'inline') {
                            if (href) {
                                content = $(isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href)
                            } else if (obj.isDom) {
                                content = element
                            }
                        } else if (type === 'html') {
                            content = href
                        } else if (!type &amp;&amp; !href &amp;&amp; obj.isDom) {
                            type = 'inline';
                            content = element
                        }
                    }
                    $.extend(obj, {
                        href: href,
                        type: type,
                        content: content,
                        title: title,
                        selector: selector
                    });
                    group[i] = obj
                });
                F.opts = $.extend(!0, {}, F.defaults, opts);
                if (opts.keys !== undefined) {
                    F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : !1
                }
                F.group = group;
                return F._start(F.opts.index)
            },
            cancel: function() {
                var coming = F.coming;
                if (!coming || !1 === F.trigger('onCancel')) {
                    return
                }
                F.hideLoading();
                if (F.ajaxLoad) {
                    F.ajaxLoad.abort()
                }
                F.ajaxLoad = null;
                if (F.imgPreload) {
                    F.imgPreload.onload = F.imgPreload.onerror = null
                }
                if (coming.wrap) {
                    coming.wrap.stop(!0, !0).trigger('onReset').remove()
                }
                F.coming = null;
                if (!F.current) {
                    F._afterZoomOut(coming)
                }
            },
            close: function(event) {
                F.cancel();
                if (!1 === F.trigger('beforeClose')) {
                    return
                }
                F.unbindEvents();
                if (!F.isActive) {
                    return
                }
                if (!F.isOpen || event === !0) {
                    $('.bssfancybox-wrap').stop(!0).trigger('onReset').remove();
                    F._afterZoomOut()
                } else {
                    F.isOpen = F.isOpened = !1;
                    F.isClosing = !0;
                    $('.bssfancybox-item, .bssfancybox-nav').remove();
                    F.wrap.stop(!0, !0).removeClass('bssfancybox-opened');
                    F.transitions[F.current.closeMethod]()
                }
            },
            play: function(action) {
                var clear = function() {
                        clearTimeout(F.player.timer)
                    },
                    set = function() {
                        clear();
                        if (F.current &amp;&amp; F.player.isActive) {
                            F.player.timer = setTimeout(F.next, F.current.playSpeed)
                        }
                    },
                    stop = function() {
                        clear();
                        D.unbind('.player');
                        F.player.isActive = !1;
                        F.trigger('onPlayEnd')
                    },
                    start = function() {
                        if (F.current &amp;&amp; (F.current.loop || F.current.index &lt; F.group.length - 1)) {
                            F.player.isActive = !0;
                            D.bind({
                                'onCancel.player beforeClose.player': stop,
                                'onUpdate.player': set,
                                'beforeLoad.player': clear
                            });
                            set();
                            F.trigger('onPlayStart')
                        }
                    };
                if (action === !0 || (!F.player.isActive &amp;&amp; action !== !1)) {
                    start()
                } else {
                    stop()
                }
            },
            next: function(direction) {
                var current = F.current;
                if (current) {
                    if (!isString(direction)) {
                        direction = current.direction.next
                    }
                    F.jumpto(current.index + 1, direction, 'next')
                }
            },
            prev: function(direction) {
                var current = F.current;
                if (current) {
                    if (!isString(direction)) {
                        direction = current.direction.prev
                    }
                    F.jumpto(current.index - 1, direction, 'prev')
                }
            },
            jumpto: function(index, direction, router) {
                var current = F.current;
                if (!current) {
                    return
                }
                index = getScalar(index);
                F.direction = direction || current.direction[(index &gt;= current.index ? 'next' : 'prev')];
                F.router = router || 'jumpto';
                if (current.loop) {
                    if (index &lt; 0) {
                        index = current.group.length + (index % current.group.length)
                    }
                    index = index % current.group.length
                }
                if (current.group[index] !== undefined) {
                    F.cancel();
                    F._start(index)
                }
            },
            reposition: function(e, onlyAbsolute) {
                var current = F.current,
                    wrap = current ? current.wrap : null,
                    pos;
                if (wrap) {
                    pos = F._getPosition(onlyAbsolute);
                    if (e &amp;&amp; e.type === 'scroll') {
                        delete pos.position;
                        wrap.stop(!0, !0).animate(pos, 200)
                    } else {
                        wrap.css(pos);
                        current.pos = $.extend({}, current.dim, pos)
                    }
                }
            },
            update: function(e) {
                var type = (e &amp;&amp; e.type),
                    anyway = !type || type === 'orientationchange';
                if (anyway) {
                    clearTimeout(didUpdate);
                    didUpdate = null
                }
                if (!F.isOpen || didUpdate) {
                    return
                }
                didUpdate = setTimeout(function() {
                    var current = F.current;
                    if (!current || F.isClosing) {
                        return
                    }
                    F.wrap.removeClass('bssfancybox-tmp');
                    if (anyway || type === 'load' || (type === 'resize' &amp;&amp; current.autoResize)) {
                        F._setDimension()
                    }
                    if (!(type === 'scroll' &amp;&amp; current.canShrink)) {
                        F.reposition(e)
                    }
                    F.trigger('onUpdate');
                    didUpdate = null
                }, (anyway &amp;&amp; !isTouch ? 0 : 300))
            },
            toggle: function(action) {
                if (F.isOpen) {
                    F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView;
                    if (isTouch) {
                        F.wrap.removeAttr('style').addClass('bssfancybox-tmp');
                        F.trigger('onUpdate')
                    }
                    F.update()
                }
            },
            hideLoading: function() {
                D.unbind('.loading');
                $('#bssfancybox-loading').remove()
            },
            showLoading: function() {
                var el, viewport;
                F.hideLoading();
                el = $('&lt;div id="bssfancybox-loading"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;').click(F.cancel).appendTo('body');
                D.bind('keydown.loading', function(e) {
                    if ((e.which || e.keyCode) === 27) {
                        e.preventDefault();
                        F.cancel()
                    }
                });
                if (!F.defaults.fixed) {
                    viewport = F.getViewport();
                    el.css({
                        position: 'absolute',
                        top: (viewport.h * 0.5) + viewport.y,
                        left: (viewport.w * 0.5) + viewport.x
                    })
                }
            },
            getViewport: function() {
                var locked = (F.current &amp;&amp; F.current.locked) || !1,
                    rez = {
                        x: W.scrollLeft(),
                        y: W.scrollTop()
                    };
                if (locked) {
                    rez.w = locked[0].clientWidth;
                    rez.h = locked[0].clientHeight
                } else {
                    rez.w = isTouch &amp;&amp; window.innerWidth ? window.innerWidth : W.width();
                    rez.h = isTouch &amp;&amp; window.innerHeight ? window.innerHeight : W.height()
                }
                return rez
            },
            unbindEvents: function() {
                if (F.wrap &amp;&amp; isQuery(F.wrap)) {
                    F.wrap.unbind('.fb')
                }
                D.unbind('.fb');
                W.unbind('.fb')
            },
            bindEvents: function() {
                var current = F.current,
                    keys;
                if (!current) {
                    return
                }
                W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter &amp;&amp; !current.locked ? ' scroll.fb' : ''), F.update);
                keys = current.keys;
                if (keys) {
                    D.bind('keydown.fb', function(e) {
                        var code = e.which || e.keyCode,
                            target = e.target || e.srcElement;
                        if (code === 27 &amp;&amp; F.coming) {
                            return !1
                        }
                        if (!e.ctrlKey &amp;&amp; !e.altKey &amp;&amp; !e.shiftKey &amp;&amp; !e.metaKey &amp;&amp; !(target &amp;&amp; (target.type || $(target).is('[contenteditable]')))) {
                            $.each(keys, function(i, val) {
                                if (current.group.length &gt; 1 &amp;&amp; val[code] !== undefined) {
                                    F[i](val[code]);
                                    e.preventDefault();
                                    return !1
                                }
                                if ($.inArray(code, val) &gt; -1) {
                                    F[i]();
                                    e.preventDefault();
                                    return !1
                                }
                            })
                        }
                    })
                }
                if ($.fn.mousewheel &amp;&amp; current.mouseWheel) {
                    F.wrap.bind('mousewheel.fb', function(e, delta, deltaX, deltaY) {
                        var target = e.target || null,
                            parent = $(target),
                            canScroll = !1;
                        while (parent.length) {
                            if (canScroll || parent.is('.bssfancybox-skin') || parent.is('.bssfancybox-wrap')) {
                                break
                            }
                            canScroll = isScrollable(parent[0]);
                            parent = $(parent).parent()
                        }
                        if (delta !== 0 &amp;&amp; !canScroll) {
                            if (F.group.length &gt; 1 &amp;&amp; !current.canShrink) {
                                if (deltaY &gt; 0 || deltaX &gt; 0) {
                                    F.prev(deltaY &gt; 0 ? 'down' : 'left')
                                } else if (deltaY &lt; 0 || deltaX &lt; 0) {
                                    F.next(deltaY &lt; 0 ? 'up' : 'right')
                                }
                                e.preventDefault()
                            }
                        }
                    })
                }
            },
            trigger: function(event, o) {
                var ret, obj = o || F.coming || F.current;
                if (!obj) {
                    return
                }
                if ($.isFunction(obj[event])) {
                    ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1))
                }
                if (ret === !1) {
                    return !1
                }
                if (obj.helpers) {
                    $.each(obj.helpers, function(helper, opts) {
                        if (opts &amp;&amp; F.helpers[helper] &amp;&amp; $.isFunction(F.helpers[helper][event])) {
                            F.helpers[helper][event]($.extend(!0, {}, F.helpers[helper].defaults, opts), obj)
                        }
                    })
                }
                D.trigger(event)
            },
            isImage: function(str) {
                return isString(str) &amp;&amp; str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)
            },
            isSWF: function(str) {
                return isString(str) &amp;&amp; str.match(/\.(swf)((\?|#).*)?$/i)
            },
            _start: function(index) {
                var coming = {},
                    obj, href, type, margin, padding;
                index = getScalar(index);
                obj = F.group[index] || null;
                if (!obj) {
                    return !1
                }
                coming = $.extend(!0, {}, F.opts, obj);
                margin = coming.margin;
                padding = coming.padding;
                if ($.type(margin) === 'number') {
                    coming.margin = [margin, margin, margin, margin]
                }
                if ($.type(padding) === 'number') {
                    coming.padding = [padding, padding, padding, padding]
                }
                if (coming.modal) {
                    $.extend(!0, coming, {
                        closeBtn: !1,
                        closeClick: !1,
                        nextClick: !1,
                        arrows: !1,
                        mouseWheel: !1,
                        keys: null,
                        helpers: {
                            overlay: {
                                closeClick: !1
                            }
                        }
                    })
                }
                if (coming.autoSize) {
                    coming.autoWidth = coming.autoHeight = !0
                }
                if (coming.width === 'auto') {
                    coming.autoWidth = !0
                }
                if (coming.height === 'auto') {
                    coming.autoHeight = !0
                }
                coming.group = F.group;
                coming.index = index;
                F.coming = coming;
                if (!1 === F.trigger('beforeLoad')) {
                    F.coming = null;
                    return
                }
                type = coming.type;
                href = coming.href;
                if (!type) {
                    F.coming = null;
                    if (F.current &amp;&amp; F.router &amp;&amp; F.router !== 'jumpto') {
                        F.current.index = index;
                        return F[F.router](F.direction)
                    }
                    return !1
                }
                F.isActive = !0;
                if (type === 'image' || type === 'swf') {
                    coming.autoHeight = coming.autoWidth = !1;
                    coming.scrolling = 'visible'
                }
                if (type === 'image') {
                    coming.aspectRatio = !0
                }
                if (type === 'iframe' &amp;&amp; isTouch) {
                    coming.scrolling = 'scroll'
                }
                coming.wrap = $(coming.tpl.wrap).addClass('bssfancybox-' + (isTouch ? 'mobile' : 'desktop') + ' bssfancybox-type-' + type + ' bssfancybox-tmp ' + coming.wrapCSS).appendTo(coming.parent || 'body');
                $.extend(coming, {
                    skin: $('.bssfancybox-skin', coming.wrap),
                    outer: $('.bssfancybox-outer', coming.wrap),
                    inner: $('.bssfancybox-inner', coming.wrap)
                });
                $.each(["Top", "Right", "Bottom", "Left"], function(i, v) {
                    coming.skin.css('padding' + v, getValue(coming.padding[i]))
                });
                F.trigger('onReady');
                if (type === 'inline' || type === 'html') {
                    if (!coming.content || !coming.content.length) {
                        return F._error('content')
                    }
                } else if (!href) {
                    return F._error('href')
                }
                if (type === 'image') {
                    F._loadImage()
                } else if (type === 'ajax') {
                    F._loadAjax()
                } else if (type === 'iframe') {
                    F._loadIframe()
                } else {
                    F._afterLoad()
                }
            },
            _error: function(type) {
                $.extend(F.coming, {
                    type: 'html',
                    autoWidth: !0,
                    autoHeight: !0,
                    minWidth: 0,
                    minHeight: 0,
                    scrolling: 'no',
                    hasError: type,
                    content: F.coming.tpl.error
                });
                F._afterLoad()
            },
            _loadImage: function() {
                var img = F.imgPreload = new Image();
                img.onload = function() {
                    this.onload = this.onerror = null;
                    F.coming.width = this.width / F.opts.pixelRatio;
                    F.coming.height = this.height / F.opts.pixelRatio;
                    F._afterLoad()
                };
                img.onerror = function() {
                    this.onload = this.onerror = null;
                    F._error('image')
                };
                img.src = F.coming.href;
                if (img.complete !== !0) {
                    F.showLoading()
                }
            },
            _loadAjax: function() {
                var coming = F.coming;
                F.showLoading();
                F.ajaxLoad = $.ajax($.extend({}, coming.ajax, {
                    url: coming.href,
                    error: function(jqXHR, textStatus) {
                        if (F.coming &amp;&amp; textStatus !== 'abort') {
                            F._error('ajax', jqXHR)
                        } else {
                            F.hideLoading()
                        }
                    },
                    success: function(data, textStatus) {
                        if (textStatus === 'success') {
                            coming.content = data;
                            F._afterLoad()
                        }
                    }
                }))
            },
            _loadIframe: function() {
                var coming = F.coming,
                    iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())).attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling).attr('src', coming.href);
                $(coming.wrap).bind('onReset', function() {
                    try {
                        $(this).find('iframe').hide().attr('src', '//about:blank').end().empty()
                    } catch (e) {}
                });
                if (coming.iframe.preload) {
                    F.showLoading();
                    iframe.one('load', function() {
                        $(this).data('ready', 1);
                        if (!isTouch) {
                            $(this).bind('load.fb', F.update)
                        }
                        $(this).parents('.bssfancybox-wrap').width('100%').removeClass('bssfancybox-tmp').show();
                        F._afterLoad()
                    })
                }
                coming.content = iframe.appendTo(coming.inner);
                if (!coming.iframe.preload) {
                    F._afterLoad()
                }
            },
            _preloadImages: function() {
                var group = F.group,
                    current = F.current,
                    len = group.length,
                    cnt = current.preload ? Math.min(current.preload, len - 1) : 0,
                    item, i;
                for (i = 1; i &lt;= cnt; i += 1) {
                    item = group[(current.index + i) % len];
                    if (item.type === 'image' &amp;&amp; item.href) {
                        new Image().src = item.href
                    }
                }
            },
            _afterLoad: function() {
                var coming = F.coming,
                    previous = F.current,
                    placeholder = 'bssfancybox-placeholder',
                    current, content, type, scrolling, href, embed;
                F.hideLoading();
                if (!coming || F.isActive === !1) {
                    return
                }
                if (!1 === F.trigger('afterLoad', coming, previous)) {
                    coming.wrap.stop(!0).trigger('onReset').remove();
                    F.coming = null;
                    return
                }
                if (previous) {
                    F.trigger('beforeChange', previous);
                    previous.wrap.stop(!0).removeClass('bssfancybox-opened').find('.bssfancybox-item, .bssfancybox-nav').remove()
                }
                F.unbindEvents();
                current = coming;
                content = coming.content;
                type = coming.type;
                scrolling = coming.scrolling;
                $.extend(F, {
                    wrap: current.wrap,
                    skin: current.skin,
                    outer: current.outer,
                    inner: current.inner,
                    current: current,
                    previous: previous
                });
                href = current.href;
                switch (type) {
                    case 'inline':
                    case 'ajax':
                    case 'html':
                        if (current.selector) {
                            content = $('&lt;div&gt;').html(content).find(current.selector)
                        } else if (isQuery(content)) {
                            if (!content.data(placeholder)) {
                                content.data(placeholder, $('&lt;div class="' + placeholder + '"&gt;&lt;/div&gt;').insertAfter(content).hide())
                            }
                            content = content.show().detach();
                            current.wrap.bind('onReset', function() {
                                if ($(this).find(content).length) {
                                    content.hide().replaceAll(content.data(placeholder)).data(placeholder, !1)
                                }
                            })
                        }
                        break;
                    case 'image':
                        content = current.tpl.image.replace('{href}', href);
                        break;
                    case 'swf':
                        content = '&lt;object id="bssfancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"&gt;&lt;param name="movie" value="' + href + '"&gt;&lt;/param&gt;';
                        embed = '';
                        $.each(current.swf, function(name, val) {
                            content += '&lt;param name="' + name + '" value="' + val + '"&gt;&lt;/param&gt;';
                            embed += ' ' + name + '="' + val + '"'
                        });
                        content += '&lt;embed src="' + href + '" type="application/x-shockwave-flash" width="100%" height="100%"' + embed + '&gt;&lt;/embed&gt;&lt;/object&gt;';
                        break
                }
                if (!(isQuery(content) &amp;&amp; content.parent().is(current.inner))) {
                    current.inner.append(content)
                }
                F.trigger('beforeShow');
                current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));
                F._setDimension();
                F.reposition();
                F.isOpen = !1;
                F.coming = null;
                F.bindEvents();
                if (!F.isOpened) {
                    $('.bssfancybox-wrap').not(current.wrap).stop(!0).trigger('onReset').remove()
                } else if (previous.prevMethod) {
                    F.transitions[previous.prevMethod]()
                }
                F.transitions[F.isOpened ? current.nextMethod : current.openMethod]();
                F._preloadImages()
            },
            _setDimension: function() {
                var viewport = F.getViewport(),
                    steps = 0,
                    canShrink = !1,
                    canExpand = !1,
                    wrap = F.wrap,
                    skin = F.skin,
                    inner = F.inner,
                    current = F.current,
                    width = current.width,
                    height = current.height,
                    minWidth = current.minWidth,
                    minHeight = current.minHeight,
                    maxWidth = current.maxWidth,
                    maxHeight = current.maxHeight,
                    scrolling = current.scrolling,
                    scrollOut = current.scrollOutside ? current.scrollbarWidth : 0,
                    margin = current.margin,
                    wMargin = getScalar(margin[1] + margin[3]),
                    hMargin = getScalar(margin[0] + margin[2]),
                    wPadding, hPadding, wSpace, hSpace, origWidth, origHeight, origMaxWidth, origMaxHeight, ratio, width_, height_, maxWidth_, maxHeight_, iframe, body;
                wrap.add(skin).add(inner).width('auto').height('auto').removeClass('bssfancybox-tmp');
                wPadding = getScalar(skin.outerWidth(!0) - skin.width());
                hPadding = getScalar(skin.outerHeight(!0) - skin.height());
                wSpace = wMargin + wPadding;
                hSpace = hMargin + hPadding;
                origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width;
                origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;
                if (current.type === 'iframe') {
                    iframe = current.content;
                    if (current.autoHeight &amp;&amp; iframe.data('ready') === 1) {
                        try {
                            if (iframe[0].contentWindow.document.location) {
                                inner.width(origWidth).height(9999);
                                body = iframe.contents().find('body');
                                if (scrollOut) {
                                    body.css('overflow-x', 'hidden')
                                }
                                origHeight = body.outerHeight(!0)
                            }
                        } catch (e) {}
                    }
                } else if (current.autoWidth || current.autoHeight) {
                    inner.addClass('bssfancybox-tmp');
                    if (!current.autoWidth) {
                        inner.width(origWidth)
                    }
                    if (!current.autoHeight) {
                        inner.height(origHeight)
                    }
                    if (current.autoWidth) {
                        origWidth = inner.width()
                    }
                    if (current.autoHeight) {
                        origHeight = inner.height()
                    }
                    inner.removeClass('bssfancybox-tmp')
                }
                width = getScalar(origWidth);
                height = getScalar(origHeight);
                ratio = origWidth / origHeight;
                minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);
                maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);
                minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);
                maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);
                origMaxWidth = maxWidth;
                origMaxHeight = maxHeight;
                if (current.fitToView) {
                    maxWidth = Math.min(viewport.w - wSpace, maxWidth);
                    maxHeight = Math.min(viewport.h - hSpace, maxHeight)
                }
                maxWidth_ = viewport.w - wMargin;
                maxHeight_ = viewport.h - hMargin;
                if (current.aspectRatio) {
                    if (width &gt; maxWidth) {
                        width = maxWidth;
                        height = getScalar(width / ratio)
                    }
                    if (height &gt; maxHeight) {
                        height = maxHeight;
                        width = getScalar(height * ratio)
                    }
                    if (width &lt; minWidth) {
                        width = minWidth;
                        height = getScalar(width / ratio)
                    }
                    if (height &lt; minHeight) {
                        height = minHeight;
                        width = getScalar(height * ratio)
                    }
                } else {
                    width = Math.max(minWidth, Math.min(width, maxWidth));
                    if (current.autoHeight &amp;&amp; current.type !== 'iframe') {
                        inner.width(width);
                        height = inner.height()
                    }
                    height = Math.max(minHeight, Math.min(height, maxHeight))
                }
                if (current.fitToView) {
                    inner.width(width).height(height);
                    wrap.width(width + wPadding);
                    width_ = wrap.width();
                    height_ = wrap.height();
                    if (current.aspectRatio) {
                        while ((width_ &gt; maxWidth_ || height_ &gt; maxHeight_) &amp;&amp; width &gt; minWidth &amp;&amp; height &gt; minHeight) {
                            if (steps++ &gt; 19) {
                                break
                            }
                            height = Math.max(minHeight, Math.min(maxHeight, height - 10));
                            width = getScalar(height * ratio);
                            if (width &lt; minWidth) {
                                width = minWidth;
                                height = getScalar(width / ratio)
                            }
                            if (width &gt; maxWidth) {
                                width = maxWidth;
                                height = getScalar(width / ratio)
                            }
                            inner.width(width).height(height);
                            wrap.width(width + wPadding);
                            width_ = wrap.width();
                            height_ = wrap.height()
                        }
                    } else {
                        width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_)));
                        height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)))
                    }
                }
                if (scrollOut &amp;&amp; scrolling === 'auto' &amp;&amp; height &lt; origHeight &amp;&amp; (width + wPadding + scrollOut) &lt; maxWidth_) {
                    width += scrollOut
                }
                inner.width(width).height(height);
                wrap.width(width + wPadding);
                width_ = wrap.width();
                height_ = wrap.height();
                canShrink = (width_ &gt; maxWidth_ || height_ &gt; maxHeight_) &amp;&amp; width &gt; minWidth &amp;&amp; height &gt; minHeight;
                canExpand = current.aspectRatio ? (width &lt; origMaxWidth &amp;&amp; height &lt; origMaxHeight &amp;&amp; width &lt; origWidth &amp;&amp; height &lt; origHeight) : ((width &lt; origMaxWidth || height &lt; origMaxHeight) &amp;&amp; (width &lt; origWidth || height &lt; origHeight));
                $.extend(current, {
                    dim: {
                        width: getValue(width_),
                        height: getValue(height_)
                    },
                    origWidth: origWidth,
                    origHeight: origHeight,
                    canShrink: canShrink,
                    canExpand: canExpand,
                    wPadding: wPadding,
                    hPadding: hPadding,
                    wrapSpace: height_ - skin.outerHeight(!0),
                    skinSpace: skin.height() - height
                });
                if (!iframe &amp;&amp; current.autoHeight &amp;&amp; height &gt; minHeight &amp;&amp; height &lt; maxHeight &amp;&amp; !canExpand) {
                    inner.height('auto')
                }
            },
            _getPosition: function(onlyAbsolute) {
                var current = F.current,
                    viewport = F.getViewport(),
                    margin = current.margin,
                    width = F.wrap.width() + margin[1] + margin[3],
                    height = F.wrap.height() + margin[0] + margin[2],
                    rez = {
                        position: 'absolute',
                        top: margin[0],
                        left: margin[3]
                    };
                if (current.autoCenter &amp;&amp; current.fixed &amp;&amp; !onlyAbsolute &amp;&amp; height &lt;= viewport.h &amp;&amp; width &lt;= viewport.w) {
                    rez.position = 'fixed'
                } else if (!current.locked) {
                    rez.top += viewport.y;
                    rez.left += viewport.x
                }
                rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio)));
                rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio)));
                return rez
            },
            _afterZoomIn: function() {
                var current = F.current;
                if (!current) {
                    return
                }
                F.isOpen = F.isOpened = !0;
                F.wrap.css('overflow', 'visible').addClass('bssfancybox-opened');
                F.update();
                if (current.closeClick || (current.nextClick &amp;&amp; F.group.length &gt; 1)) {
                    F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
                        if (!$(e.target).is('a') &amp;&amp; !$(e.target).parent().is('a')) {
                            e.preventDefault();
                            F[current.closeClick ? 'close' : 'next']()
                        }
                    })
                }
                if (current.closeBtn) {
                    $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {
                        e.preventDefault();
                        F.close()
                    })
                }
                if (current.arrows &amp;&amp; F.group.length &gt; 1) {
                    if (current.loop || current.index &gt; 0) {
                        $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev)
                    }
                    if (current.loop || current.index &lt; F.group.length - 1) {
                        $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next)
                    }
                }
                F.trigger('afterShow');
                if (!current.loop &amp;&amp; current.index === current.group.length - 1) {
                    F.play(!1)
                } else if (F.opts.autoPlay &amp;&amp; !F.player.isActive) {
                    F.opts.autoPlay = !1;
                    F.play()
                }
            },
            _afterZoomOut: function(obj) {
                obj = obj || F.current;
                $('.bssfancybox-wrap').trigger('onReset').remove();
                $.extend(F, {
                    group: {},
                    opts: {},
                    router: !1,
                    current: null,
                    isActive: !1,
                    isOpened: !1,
                    isOpen: !1,
                    isClosing: !1,
                    wrap: null,
                    skin: null,
                    outer: null,
                    inner: null
                });
                F.trigger('afterClose', obj)
            }
        });
        F.transitions = {
            getOrigPosition: function() {
                var current = F.current,
                    element = current.element,
                    orig = current.orig,
                    pos = {},
                    width = 50,
                    height = 50,
                    hPadding = current.hPadding,
                    wPadding = current.wPadding,
                    viewport = F.getViewport();
                if (!orig &amp;&amp; current.isDom &amp;&amp; element.is(':visible')) {
                    orig = element.find('img:first');
                    if (!orig.length) {
                        orig = element
                    }
                }
                if (isQuery(orig)) {
                    pos = orig.offset();
                    if (orig.is('img')) {
                        width = orig.outerWidth();
                        height = orig.outerHeight()
                    }
                } else {
                    pos.top = viewport.y + (viewport.h - height) * current.topRatio;
                    pos.left = viewport.x + (viewport.w - width) * current.leftRatio
                }
                if (F.wrap.css('position') === 'fixed' || current.locked) {
                    pos.top -= viewport.y;
                    pos.left -= viewport.x
                }
                pos = {
                    top: getValue(pos.top - hPadding * current.topRatio),
                    left: getValue(pos.left - wPadding * current.leftRatio),
                    width: getValue(width + wPadding),
                    height: getValue(height + hPadding)
                };
                return pos
            },
            step: function(now, fx) {
                var ratio, padding, value, prop = fx.prop,
                    current = F.current,
                    wrapSpace = current.wrapSpace,
                    skinSpace = current.skinSpace;
                if (prop === 'width' || prop === 'height') {
                    ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);
                    if (F.isClosing) {
                        ratio = 1 - ratio
                    }
                    padding = prop === 'width' ? current.wPadding : current.hPadding;
                    value = now - padding;
                    F.skin[prop](getScalar(prop === 'width' ? value : value - (wrapSpace * ratio)));
                    F.inner[prop](getScalar(prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio)))
                }
            },
            zoomIn: function() {
                var current = F.current,
                    startPos = current.pos,
                    effect = current.openEffect,
                    elastic = effect === 'elastic',
                    endPos = $.extend({
                        opacity: 1
                    }, startPos);
                delete endPos.position;
                if (elastic) {
                    startPos = this.getOrigPosition();
                    if (current.openOpacity) {
                        startPos.opacity = 0.1
                    }
                } else if (effect === 'fade') {
                    startPos.opacity = 0.1
                }
                F.wrap.css(startPos).animate(endPos, {
                    duration: effect === 'none' ? 0 : current.openSpeed,
                    easing: current.openEasing,
                    step: elastic ? this.step : null,
                    complete: F._afterZoomIn
                })
            },
            zoomOut: function() {
                var current = F.current,
                    effect = current.closeEffect,
                    elastic = effect === 'elastic',
                    endPos = {
                        opacity: 0.1
                    };
                if (elastic) {
                    endPos = this.getOrigPosition();
                    if (current.closeOpacity) {
                        endPos.opacity = 0.1
                    }
                }
                F.wrap.animate(endPos, {
                    duration: effect === 'none' ? 0 : current.closeSpeed,
                    easing: current.closeEasing,
                    step: elastic ? this.step : null,
                    complete: F._afterZoomOut
                })
            },
            changeIn: function() {
                var current = F.current,
                    effect = current.nextEffect,
                    startPos = current.pos,
                    endPos = {
                        opacity: 1
                    },
                    direction = F.direction,
                    distance = 200,
                    field;
                startPos.opacity = 0.1;
                if (effect === 'elastic') {
                    field = direction === 'down' || direction === 'up' ? 'top' : 'left';
                    if (direction === 'down' || direction === 'right') {
                        startPos[field] = getValue(getScalar(startPos[field]) - distance);
                        endPos[field] = '+=' + distance + 'px'
                    } else {
                        startPos[field] = getValue(getScalar(startPos[field]) + distance);
                        endPos[field] = '-=' + distance + 'px'
                    }
                }
                if (effect === 'none') {
                    F._afterZoomIn()
                } else {
                    F.wrap.css(startPos).animate(endPos, {
                        duration: current.nextSpeed,
                        easing: current.nextEasing,
                        complete: F._afterZoomIn
                    })
                }
            },
            changeOut: function() {
                var previous = F.previous,
                    effect = previous.prevEffect,
                    endPos = {
                        opacity: 0.1
                    },
                    direction = F.direction,
                    distance = 200;
                if (effect === 'elastic') {
                    endPos[direction === 'down' || direction === 'up' ? 'top' : 'left'] = (direction === 'up' || direction === 'left' ? '-' : '+') + '=' + distance + 'px'
                }
                previous.wrap.animate(endPos, {
                    duration: effect === 'none' ? 0 : previous.prevSpeed,
                    easing: previous.prevEasing,
                    complete: function() {
                        $(this).trigger('onReset').remove()
                    }
                })
            }
        };
        F.helpers.overlay = {
            defaults: {
                closeClick: !0,
                speedOut: 200,
                showEarly: !0,
                css: {},
                locked: !isTouch,
                fixed: !0
            },
            overlay: null,
            fixed: !1,
            el: $('html'),
            create: function(opts) {
                opts = $.extend({}, this.defaults, opts);
                if (this.overlay) {
                    this.close()
                }
                this.overlay = $('&lt;div class="bssfancybox-overlay"&gt;&lt;/div&gt;').appendTo(F.coming ? F.coming.parent : opts.parent);
                this.fixed = !1;
                if (opts.fixed &amp;&amp; F.defaults.fixed) {
                    this.overlay.addClass('bssfancybox-overlay-fixed');
                    this.fixed = !0
                }
            },
            open: function(opts) {
                var that = this;
                opts = $.extend({}, this.defaults, opts);
                if (this.overlay) {
                    this.overlay.unbind('.overlay').width('auto').height('auto')
                } else {
                    this.create(opts)
                }
                if (!this.fixed) {
                    W.bind('resize.overlay', $.proxy(this.update, this));
                    this.update()
                }
                if (opts.closeClick) {
                    this.overlay.bind('click.overlay', function(e) {
                        if ($(e.target).hasClass('bssfancybox-overlay')) {
                            if (F.isActive) {
                                F.close()
                            } else {
                                that.close()
                            }
                            return !1
                        }
                    })
                }
                this.overlay.css(opts.css).show()
            },
            close: function() {
                var scrollV, scrollH;
                W.unbind('resize.overlay');
                if (this.el.hasClass('bssfancybox-lock')) {
                    $('.bssfancybox-margin').removeClass('bssfancybox-margin');
                    scrollV = W.scrollTop();
                    scrollH = W.scrollLeft();
                    this.el.removeClass('bssfancybox-lock');
                    W.scrollTop(scrollV).scrollLeft(scrollH)
                }
                $('.bssfancybox-overlay').remove().hide();
                $.extend(this, {
                    overlay: null,
                    fixed: !1
                })
            },
            update: function() {
                var width = '100%',
                    offsetWidth;
                this.overlay.width(width).height('100%');
                if (IE) {
                    offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
                    if (D.width() &gt; offsetWidth) {
                        width = D.width()
                    }
                } else if (D.width() &gt; W.width()) {
                    width = D.width()
                }
                this.overlay.width(width).height(D.height())
            },
            onReady: function(opts, obj) {
                var overlay = this.overlay;
                $('.bssfancybox-overlay').stop(!0, !0);
                if (!overlay) {
                    this.create(opts)
                }
                if (opts.locked &amp;&amp; this.fixed &amp;&amp; obj.fixed) {
                    if (!overlay) {
                        this.margin = D.height() &gt; W.height() ? $('html').css('margin-right').replace("px", "") : !1
                    }
                    obj.locked = this.overlay.append(obj.wrap);
                    obj.fixed = !1
                }
                if (opts.showEarly === !0) {
                    this.beforeShow.apply(this, arguments)
                }
            },
            beforeShow: function(opts, obj) {
                var scrollV, scrollH;
                if (obj.locked) {
                    if (this.margin !== !1) {
                        $('*').filter(function() {
                            return ($(this).css('position') === 'fixed' &amp;&amp; !$(this).hasClass("bssfancybox-overlay") &amp;&amp; !$(this).hasClass("bssfancybox-wrap"))
                        }).addClass('bssfancybox-margin');
                        this.el.addClass('bssfancybox-margin')
                    }
                    scrollV = W.scrollTop();
                    scrollH = W.scrollLeft();
                    this.el.addClass('bssfancybox-lock');
                    W.scrollTop(scrollV).scrollLeft(scrollH)
                }
                this.open(opts)
            },
            onUpdate: function() {
                if (!this.fixed) {
                    this.update()
                }
            },
            afterClose: function(opts) {
                if (this.overlay &amp;&amp; !F.coming) {
                    this.overlay.fadeOut(opts.speedOut, $.proxy(this.close, this))
                }
            }
        };
        F.helpers.title = {
            defaults: {
                type: 'float',
                position: 'bottom'
            },
            beforeShow: function(opts) {
                var current = F.current,
                    text = current.title,
                    type = opts.type,
                    title, target;
                if ($.isFunction(text)) {
                    text = text.call(current.element, current)
                }
                if (!isString(text) || $.trim(text) === '') {
                    return
                }
                title = $('&lt;div class="bssfancybox-title bssfancybox-title-' + type + '-wrap"&gt;' + text + '&lt;/div&gt;');
                switch (type) {
                    case 'inside':
                        target = F.skin;
                        break;
                    case 'outside':
                        target = F.wrap;
                        break;
                    case 'over':
                        target = F.inner;
                        break;
                    default:
                        target = F.skin;
                        title.appendTo('body');
                        if (IE) {
                            title.width(title.width())
                        }
                        title.wrapInner('&lt;span class="child"&gt;&lt;/span&gt;');
                        F.current.margin[2] += Math.abs(getScalar(title.css('margin-bottom')));
                        break
                }
                title[(opts.position === 'top' ? 'prependTo' : 'appendTo')](target)
            }
        };
        $.fn.bssfancybox = function(options) {
            var index, that = $(this),
                selector = this.selector || '',
                run = function(e) {
                    var what = $(this).blur(),
                        idx = index,
                        relType, relVal;
                    if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) &amp;&amp; !what.is('.bssfancybox-wrap')) {
                        relType = options.groupAttr || 'data-bssfancybox-group';
                        relVal = what.attr(relType);
                        if (!relVal) {
                            relType = 'rel';
                            relVal = what.get(0)[relType]
                        }
                        if (relVal &amp;&amp; relVal !== '' &amp;&amp; relVal !== 'nofollow') {
                            what = selector.length ? $(selector) : that;
                            what = what.filter('[' + relType + '="' + relVal + '"]');
                            idx = what.index(this)
                        }
                        options.index = idx;
                        if (F.open(what, options) !== !1) {
                            e.preventDefault()
                        }
                    }
                };
            options = options || {};
            index = options.index || 0;
            if (!selector || options.live === !1) {
                that.unbind('click.fb-start').bind('click.fb-start', run)
            } else {
                D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.bssfancybox-item, .bssfancybox-nav')", 'click.fb-start', run)
            }
            this.filter('[data-bssfancybox-start=1]').trigger('click');
            return this
        };
        D.ready(function() {
            var w1, w2;
            if ($.scrollbarWidth === undefined) {
                $.scrollbarWidth = function() {
                    var parent = $('&lt;div style="width:50px;height:50px;overflow:auto"&gt;&lt;div/&gt;&lt;/div&gt;').appendTo('body'),
                        child = parent.children(),
                        width = child.innerWidth() - child.height(99).innerWidth();
                    parent.remove();
                    return width
                }
            }
            if ($.support.fixedPosition === undefined) {
                $.support.fixedPosition = (function() {
                    var elem = $('&lt;div style="position:fixed;top:20px;"&gt;&lt;/div&gt;').appendTo('body'),
                        fixed = (elem[0].offsetTop === 20 || elem[0].offsetTop === 15);
                    elem.remove();
                    return fixed
                }())
            }
            $.extend(F.defaults, {
                scrollbarWidth: $.scrollbarWidth(),
                fixed: $.support.fixedPosition,
                parent: $('body')
            });
            w1 = $(window).width();
            H.addClass('bssfancybox-lock-test');
            w2 = $(window).width();
            H.removeClass('bssfancybox-lock-test');
            $("&lt;style type='text/css'&gt;.bssfancybox-margin{margin-right:" + (w2 - w1) + "px;}&lt;/style&gt;").appendTo("head")
        })
    }(window, document, jQuery))
})</pre></body></html>