Current File : /home/itiffy/public_html/blog/wp-content/themes/itiffyblog/assets/js/jquery.jcarousel.min.js
/*! jCarousel - v0.3.4 - 2015-09-23
 * http://sorgalla.com/jcarousel/
 * Copyright (c) 2006-2015 Jan Sorgalla; Licensed MIT */
! function(a) {
    "use strict";
    var b = a.jCarousel = {};
    b.version = "0.3.4";
    var c = /^([+\-]=)?(.+)$/;
    b.parseTarget = function(a) {
        var b = !1,
            d = "object" != typeof a ? c.exec(a) : null;
        return d ? (a = parseInt(d[2], 10) || 0, d[1] && (b = !0, "-=" === d[1] && (a *= -1))) : "object" != typeof a && (a = parseInt(a, 10) || 0), {
            target: a,
            relative: b
        }
    }, b.detectCarousel = function(a) {
        for (var b; a.length > 0;) {
            if (b = a.filter("[data-jcarousel]"), b.length > 0) return b;
            if (b = a.find("[data-jcarousel]"), b.length > 0) return b;
            a = a.parent()
        }
        return null
    }, b.base = function(c) {
        return {
            version: b.version,
            _options: {},
            _element: null,
            _carousel: null,
            _init: a.noop,
            _create: a.noop,
            _destroy: a.noop,
            _reload: a.noop,
            create: function() {
                return this._element.attr("data-" + c.toLowerCase(), !0).data(c, this), !1 === this._trigger("create") ? this : (this._create(), this._trigger("createend"), this)
            },
            destroy: function() {
                return !1 === this._trigger("destroy") ? this : (this._destroy(), this._trigger("destroyend"), this._element.removeData(c).removeAttr("data-" + c.toLowerCase()), this)
            },
            reload: function(a) {
                return !1 === this._trigger("reload") ? this : (a && this.options(a), this._reload(), this._trigger("reloadend"), this)
            },
            element: function() {
                return this._element
            },
            options: function(b, c) {
                if (0 === arguments.length) return a.extend({}, this._options);
                if ("string" == typeof b) {
                    if ("undefined" == typeof c) return "undefined" == typeof this._options[b] ? null : this._options[b];
                    this._options[b] = c
                } else this._options = a.extend({}, this._options, b);
                return this
            },
            carousel: function() {
                return this._carousel || (this._carousel = b.detectCarousel(this.options("carousel") || this._element), this._carousel || a.error('Could not detect carousel for plugin "' + c + '"')), this._carousel
            },
            _trigger: function(b, d, e) {
                var f, g = !1;
                return e = [this].concat(e || []), (d || this._element).each(function() {
                    f = a.Event((c + ":" + b).toLowerCase()), a(this).trigger(f, e), f.isDefaultPrevented() && (g = !0)
                }), !g
            }
        }
    }, b.plugin = function(c, d) {
        var e = a[c] = function(b, c) {
            this._element = a(b), this.options(c), this._init(), this.create()
        };
        return e.fn = e.prototype = a.extend({}, b.base(c), d), a.fn[c] = function(b) {
            var d = Array.prototype.slice.call(arguments, 1),
                f = this;
            return this.each("string" == typeof b ? function() {
                var e = a(this).data(c);
                if (!e) return a.error("Cannot call methods on " + c + ' prior to initialization; attempted to call method "' + b + '"');
                if (!a.isFunction(e[b]) || "_" === b.charAt(0)) return a.error('No such method "' + b + '" for ' + c + " instance");
                var g = e[b].apply(e, d);
                return g !== e && "undefined" != typeof g ? (f = g, !1) : void 0
            } : function() {
                var d = a(this).data(c);
                d instanceof e ? d.reload(b) : new e(this, b)
            }), f
        }, e
    }
}(jQuery),
function(a, b) {
    "use strict";
    var c = function(a) {
        return parseFloat(a) || 0
    };
    a.jCarousel.plugin("jcarousel", {
        animating: !1,
        tail: 0,
        inTail: !1,
        resizeTimer: null,
        lt: null,
        vertical: !1,
        rtl: !1,
        circular: !1,
        underflow: !1,
        relative: !1,
        _options: {
            list: function() {
                return this.element().children().eq(0)
            },
            items: function() {
                return this.list().children()
            },
            animation: 400,
            transitions: !1,
            wrap: null,
            vertical: null,
            rtl: null,
            center: !1
        },
        _list: null,
        _items: null,
        _target: a(),
        _first: a(),
        _last: a(),
        _visible: a(),
        _fullyvisible: a(),
        _init: function() {
            var a = this;
            return this.onWindowResize = function() {
                a.resizeTimer && clearTimeout(a.resizeTimer), a.resizeTimer = setTimeout(function() {
                    a.reload()
                }, 100)
            }, this
        },
        _create: function() {
            this._reload(), a(b).on("resize.jcarousel", this.onWindowResize)
        },
        _destroy: function() {
            a(b).off("resize.jcarousel", this.onWindowResize)
        },
        _reload: function() {
            this.vertical = this.options("vertical"), null == this.vertical && (this.vertical = this.list().height() > this.list().width()), this.rtl = this.options("rtl"), null == this.rtl && (this.rtl = function(b) {
                if ("rtl" === ("" + b.attr("dir")).toLowerCase()) return !0;
                var c = !1;
                return b.parents("[dir]").each(function() {
                    return /rtl/i.test(a(this).attr("dir")) ? (c = !0, !1) : void 0
                }), c
            }(this._element)), this.lt = this.vertical ? "top" : "left", this.relative = "relative" === this.list().css("position"), this._list = null, this._items = null;
            var b = this.index(this._target) >= 0 ? this._target : this.closest();
            this.circular = "circular" === this.options("wrap"), this.underflow = !1;
            var c = {
                left: 0,
                top: 0
            };
            return b.length > 0 && (this._prepare(b), this.list().find("[data-jcarousel-clone]").remove(), this._items = null, this.underflow = this._fullyvisible.length >= this.items().length, this.circular = this.circular && !this.underflow, c[this.lt] = this._position(b) + "px"), this.move(c), this
        },
        list: function() {
            if (null === this._list) {
                var b = this.options("list");
                this._list = a.isFunction(b) ? b.call(this) : this._element.find(b)
            }
            return this._list
        },
        items: function() {
            if (null === this._items) {
                var b = this.options("items");
                this._items = (a.isFunction(b) ? b.call(this) : this.list().find(b)).not("[data-jcarousel-clone]")
            }
            return this._items
        },
        index: function(a) {
            return this.items().index(a)
        },
        closest: function() {
            var b, d = this,
                e = this.list().position()[this.lt],
                f = a(),
                g = !1,
                h = this.vertical ? "bottom" : this.rtl && !this.relative ? "left" : "right";
            return this.rtl && this.relative && !this.vertical && (e += this.list().width() - this.clipping()), this.items().each(function() {
                if (f = a(this), g) return !1;
                var i = d.dimension(f);
                if (e += i, e >= 0) {
                    if (b = i - c(f.css("margin-" + h)), !(Math.abs(e) - i + b / 2 <= 0)) return !1;
                    g = !0
                }
            }), f
        },
        target: function() {
            return this._target
        },
        first: function() {
            return this._first
        },
        last: function() {
            return this._last
        },
        visible: function() {
            return this._visible
        },
        fullyvisible: function() {
            return this._fullyvisible
        },
        hasNext: function() {
            if (!1 === this._trigger("hasnext")) return !0;
            var a = this.options("wrap"),
                b = this.items().length - 1,
                c = this.options("center") ? this._target : this._last;
            return b >= 0 && !this.underflow && (a && "first" !== a || this.index(c) < b || this.tail && !this.inTail) ? !0 : !1
        },
        hasPrev: function() {
            if (!1 === this._trigger("hasprev")) return !0;
            var a = this.options("wrap");
            return this.items().length > 0 && !this.underflow && (a && "last" !== a || this.index(this._first) > 0 || this.tail && this.inTail) ? !0 : !1
        },
        clipping: function() {
            return this._element["inner" + (this.vertical ? "Height" : "Width")]()
        },
        dimension: function(a) {
            return a["outer" + (this.vertical ? "Height" : "Width")](!0)
        },
        scroll: function(b, c, d) {
            if (this.animating) return this;
            if (!1 === this._trigger("scroll", null, [b, c])) return this;
            a.isFunction(c) && (d = c, c = !0);
            var e = a.jCarousel.parseTarget(b);
            if (e.relative) {
                var f, g, h, i, j, k, l, m, n = this.items().length - 1,
                    o = Math.abs(e.target),
                    p = this.options("wrap");
                if (e.target > 0) {
                    var q = this.index(this._last);
                    if (q >= n && this.tail) this.inTail ? "both" === p || "last" === p ? this._scroll(0, c, d) : a.isFunction(d) && d.call(this, !1) : this._scrollTail(c, d);
                    else if (f = this.index(this._target), this.underflow && f === n && ("circular" === p || "both" === p || "last" === p) || !this.underflow && q === n && ("both" === p || "last" === p)) this._scroll(0, c, d);
                    else if (h = f + o, this.circular && h > n) {
                        for (m = n, j = this.items().get(-1); m++ < h;) j = this.items().eq(0), k = this._visible.index(j) >= 0, k && j.after(j.clone(!0).attr("data-jcarousel-clone", !0)), this.list().append(j), k || (l = {}, l[this.lt] = this.dimension(j), this.moveBy(l)), this._items = null;
                        this._scroll(j, c, d)
                    } else this._scroll(Math.min(h, n), c, d)
                } else if (this.inTail) this._scroll(Math.max(this.index(this._first) - o + 1, 0), c, d);
                else if (g = this.index(this._first), f = this.index(this._target), i = this.underflow ? f : g, h = i - o, 0 >= i && (this.underflow && "circular" === p || "both" === p || "first" === p)) this._scroll(n, c, d);
                else if (this.circular && 0 > h) {
                    for (m = h, j = this.items().get(0); m++ < 0;) {
                        j = this.items().eq(-1), k = this._visible.index(j) >= 0, k && j.after(j.clone(!0).attr("data-jcarousel-clone", !0)), this.list().prepend(j), this._items = null;
                        var r = this.dimension(j);
                        l = {}, l[this.lt] = -r, this.moveBy(l)
                    }
                    this._scroll(j, c, d)
                } else this._scroll(Math.max(h, 0), c, d)
            } else this._scroll(e.target, c, d);
            return this._trigger("scrollend"), this
        },
        moveBy: function(a, b) {
            var d = this.list().position(),
                e = 1,
                f = 0;
            return this.rtl && !this.vertical && (e = -1, this.relative && (f = this.list().width() - this.clipping())), a.left && (a.left = d.left + f + c(a.left) * e + "px"), a.top && (a.top = d.top + f + c(a.top) * e + "px"), this.move(a, b)
        },
        move: function(b, c) {
            c = c || {};
            var d = this.options("transitions"),
                e = !!d,
                f = !!d.transforms,
                g = !!d.transforms3d,
                h = c.duration || 0,
                i = this.list();
            if (!e && h > 0) return void i.animate(b, c);
            var j = c.complete || a.noop,
                k = {};
            if (e) {
                var l = {
                        transitionDuration: i.css("transitionDuration"),
                        transitionTimingFunction: i.css("transitionTimingFunction"),
                        transitionProperty: i.css("transitionProperty")
                    },
                    m = j;
                j = function() {
                    a(this).css(l), m.call(this)
                }, k = {
                    transitionDuration: (h > 0 ? h / 1e3 : 0) + "s",
                    transitionTimingFunction: d.easing || c.easing,
                    transitionProperty: h > 0 ? function() {
                        return f || g ? "all" : b.left ? "left" : "top"
                    }() : "none",
                    transform: "none"
                }
            }
            g ? k.transform = "translate3d(" + (b.left || 0) + "," + (b.top || 0) + ",0)" : f ? k.transform = "translate(" + (b.left || 0) + "," + (b.top || 0) + ")" : a.extend(k, b), e && h > 0 && i.one("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", j), i.css(k), 0 >= h && i.each(function() {
                j.call(this)
            })
        },
        _scroll: function(b, c, d) {
            if (this.animating) return a.isFunction(d) && d.call(this, !1), this;
            if ("object" != typeof b ? b = this.items().eq(b) : "undefined" == typeof b.jquery && (b = a(b)), 0 === b.length) return a.isFunction(d) && d.call(this, !1), this;
            this.inTail = !1, this._prepare(b);
            var e = this._position(b),
                f = this.list().position()[this.lt];
            if (e === f) return a.isFunction(d) && d.call(this, !1), this;
            var g = {};
            return g[this.lt] = e + "px", this._animate(g, c, d), this
        },
        _scrollTail: function(b, c) {
            if (this.animating || !this.tail) return a.isFunction(c) && c.call(this, !1), this;
            var d = this.list().position()[this.lt];
            this.rtl && this.relative && !this.vertical && (d += this.list().width() - this.clipping()), this.rtl && !this.vertical ? d += this.tail : d -= this.tail, this.inTail = !0;
            var e = {};
            return e[this.lt] = d + "px", this._update({
                target: this._target.next(),
                fullyvisible: this._fullyvisible.slice(1).add(this._visible.last())
            }), this._animate(e, b, c), this
        },
        _animate: function(b, c, d) {
            if (d = d || a.noop, !1 === this._trigger("animate")) return d.call(this, !1), this;
            this.animating = !0;
            var e = this.options("animation"),
                f = a.proxy(function() {
                    this.animating = !1;
                    var a = this.list().find("[data-jcarousel-clone]");
                    a.length > 0 && (a.remove(), this._reload()), this._trigger("animateend"), d.call(this, !0)
                }, this),
                g = "object" == typeof e ? a.extend({}, e) : {
                    duration: e
                },
                h = g.complete || a.noop;
            return c === !1 ? g.duration = 0 : "undefined" != typeof a.fx.speeds[g.duration] && (g.duration = a.fx.speeds[g.duration]), g.complete = function() {
                f(), h.call(this)
            }, this.move(b, g), this
        },
        _prepare: function(b) {
            var d, e, f, g, h = this.index(b),
                i = h,
                j = this.dimension(b),
                k = this.clipping(),
                l = this.vertical ? "bottom" : this.rtl ? "left" : "right",
                m = this.options("center"),
                n = {
                    target: b,
                    first: b,
                    last: b,
                    visible: b,
                    fullyvisible: k >= j ? b : a()
                };
            if (m && (j /= 2, k /= 2), k > j)
                for (;;) {
                    if (d = this.items().eq(++i), 0 === d.length) {
                        if (!this.circular) break;
                        if (d = this.items().eq(0), b.get(0) === d.get(0)) break;
                        if (e = this._visible.index(d) >= 0, e && d.after(d.clone(!0).attr("data-jcarousel-clone", !0)), this.list().append(d), !e) {
                            var o = {};
                            o[this.lt] = this.dimension(d), this.moveBy(o)
                        }
                        this._items = null
                    }
                    if (g = this.dimension(d), 0 === g) break;
                    if (j += g, n.last = d, n.visible = n.visible.add(d), f = c(d.css("margin-" + l)), k >= j - f && (n.fullyvisible = n.fullyvisible.add(d)), j >= k) break
                }
            if (!this.circular && !m && k > j)
                for (i = h;;) {
                    if (--i < 0) break;
                    if (d = this.items().eq(i), 0 === d.length) break;
                    if (g = this.dimension(d), 0 === g) break;
                    if (j += g, n.first = d, n.visible = n.visible.add(d), f = c(d.css("margin-" + l)), k >= j - f && (n.fullyvisible = n.fullyvisible.add(d)), j >= k) break
                }
            return this._update(n), this.tail = 0, m || "circular" === this.options("wrap") || "custom" === this.options("wrap") || this.index(n.last) !== this.items().length - 1 || (j -= c(n.last.css("margin-" + l)), j > k && (this.tail = j - k)), this
        },
        _position: function(a) {
            var b = this._first,
                c = b.position()[this.lt],
                d = this.options("center"),
                e = d ? this.clipping() / 2 - this.dimension(b) / 2 : 0;
            return this.rtl && !this.vertical ? (c -= this.relative ? this.list().width() - this.dimension(b) : this.clipping() - this.dimension(b), c += e) : c -= e, !d && (this.index(a) > this.index(b) || this.inTail) && this.tail ? (c = this.rtl && !this.vertical ? c - this.tail : c + this.tail, this.inTail = !0) : this.inTail = !1, -c
        },
        _update: function(b) {
            var c, d = this,
                e = {
                    target: this._target,
                    first: this._first,
                    last: this._last,
                    visible: this._visible,
                    fullyvisible: this._fullyvisible
                },
                f = this.index(b.first || e.first) < this.index(e.first),
                g = function(c) {
                    var g = [],
                        h = [];
                    b[c].each(function() {
                        e[c].index(this) < 0 && g.push(this)
                    }), e[c].each(function() {
                        b[c].index(this) < 0 && h.push(this)
                    }), f ? g = g.reverse() : h = h.reverse(), d._trigger(c + "in", a(g)), d._trigger(c + "out", a(h)), d["_" + c] = b[c]
                };
            for (c in b) g(c);
            return this
        }
    })
}(jQuery, window),
function(a) {
    "use strict";
    a.jcarousel.fn.scrollIntoView = function(b, c, d) {
        var e, f = a.jCarousel.parseTarget(b),
            g = this.index(this._fullyvisible.first()),
            h = this.index(this._fullyvisible.last());
        if (e = f.relative ? f.target < 0 ? Math.max(0, g + f.target) : h + f.target : "object" != typeof f.target ? f.target : this.index(f.target), g > e) return this.scroll(e, c, d);
        if (e >= g && h >= e) return a.isFunction(d) && d.call(this, !1), this;
        for (var i, j = this.items(), k = this.clipping(), l = this.vertical ? "bottom" : this.rtl ? "left" : "right", m = 0;;) {
            if (i = j.eq(e), 0 === i.length) break;
            if (m += this.dimension(i), m >= k) {
                var n = parseFloat(i.css("margin-" + l)) || 0;
                m - n !== k && e++;
                break
            }
            if (0 >= e) break;
            e--
        }
        return this.scroll(e, c, d)
    }
}(jQuery),
function(a) {
    "use strict";
    a.jCarousel.plugin("jcarouselControl", {
        _options: {
            target: "+=1",
            event: "click",
            method: "scroll"
        },
        _active: null,
        _init: function() {
            this.onDestroy = a.proxy(function() {
                this._destroy(), this.carousel().one("jcarousel:createend", a.proxy(this._create, this))
            }, this), this.onReload = a.proxy(this._reload, this), this.onEvent = a.proxy(function(b) {
                b.preventDefault();
                var c = this.options("method");
                a.isFunction(c) ? c.call(this) : this.carousel().jcarousel(this.options("method"), this.options("target"))
            }, this)
        },
        _create: function() {
            this.carousel().one("jcarousel:destroy", this.onDestroy).on("jcarousel:reloadend jcarousel:scrollend", this.onReload), this._element.on(this.options("event") + ".jcarouselcontrol", this.onEvent), this._reload()
        },
        _destroy: function() {
            this._element.off(".jcarouselcontrol", this.onEvent), this.carousel().off("jcarousel:destroy", this.onDestroy).off("jcarousel:reloadend jcarousel:scrollend", this.onReload)
        },
        _reload: function() {
            var b, c = a.jCarousel.parseTarget(this.options("target")),
                d = this.carousel();
            if (c.relative) b = d.jcarousel(c.target > 0 ? "hasNext" : "hasPrev");
            else {
                var e = "object" != typeof c.target ? d.jcarousel("items").eq(c.target) : c.target;
                b = d.jcarousel("target").index(e) >= 0
            }
            return this._active !== b && (this._trigger(b ? "active" : "inactive"), this._active = b), this
        }
    })
}(jQuery),
function(a) {
    "use strict";
    a.jCarousel.plugin("jcarouselPagination", {
        _options: {
            perPage: null,
            item: function(a) {
                return '<a href="#' + a + '">' + a + "</a>"
            },
            event: "click",
            method: "scroll"
        },
        _carouselItems: null,
        _pages: {},
        _items: {},
        _currentPage: null,
        _init: function() {
            this.onDestroy = a.proxy(function() {
                this._destroy(), this.carousel().one("jcarousel:createend", a.proxy(this._create, this))
            }, this), this.onReload = a.proxy(this._reload, this), this.onScroll = a.proxy(this._update, this)
        },
        _create: function() {
            this.carousel().one("jcarousel:destroy", this.onDestroy).on("jcarousel:reloadend", this.onReload).on("jcarousel:scrollend", this.onScroll), this._reload()
        },
        _destroy: function() {
            this._clear(), this.carousel().off("jcarousel:destroy", this.onDestroy).off("jcarousel:reloadend", this.onReload).off("jcarousel:scrollend", this.onScroll), this._carouselItems = null
        },
        _reload: function() {
            var b = this.options("perPage");
            if (this._pages = {}, this._items = {}, a.isFunction(b) && (b = b.call(this)), null == b) this._pages = this._calculatePages();
            else
                for (var c, d = parseInt(b, 10) || 0, e = this._getCarouselItems(), f = 1, g = 0;;) {
                    if (c = e.eq(g++), 0 === c.length) break;
                    this._pages[f] = this._pages[f] ? this._pages[f].add(c) : c, g % d === 0 && f++
                }
            this._clear();
            var h = this,
                i = this.carousel().data("jcarousel"),
                j = this._element,
                k = this.options("item"),
                l = this._getCarouselItems().length;
            a.each(this._pages, function(b, c) {
                var d = h._items[b] = a(k.call(h, b, c));
                d.on(h.options("event") + ".jcarouselpagination", a.proxy(function() {
                    var a = c.eq(0);
                    if (i.circular) {
                        var d = i.index(i.target()),
                            e = i.index(a);
                        parseFloat(b) > parseFloat(h._currentPage) ? d > e && (a = "+=" + (l - d + e)) : e > d && (a = "-=" + (d + (l - e)))
                    }
                    i[this.options("method")](a)
                }, h)), j.append(d)
            }), this._update()
        },
        _update: function() {
            var b, c = this.carousel().jcarousel("target");
            a.each(this._pages, function(a, d) {
                return d.each(function() {
                    return c.is(this) ? (b = a, !1) : void 0
                }), b ? !1 : void 0
            }), this._currentPage !== b && (this._trigger("inactive", this._items[this._currentPage]), this._trigger("active", this._items[b])), this._currentPage = b
        },
        items: function() {
            return this._items
        },
        reloadCarouselItems: function() {
            return this._carouselItems = null, this
        },
        _clear: function() {
            this._element.empty(), this._currentPage = null
        },
        _calculatePages: function() {
            for (var a, b, c = this.carousel().data("jcarousel"), d = this._getCarouselItems(), e = c.clipping(), f = 0, g = 0, h = 1, i = {};;) {
                if (a = d.eq(g++), 0 === a.length) break;
                b = c.dimension(a), f + b > e && (h++, f = 0), f += b, i[h] = i[h] ? i[h].add(a) : a
            }
            return i
        },
        _getCarouselItems: function() {
            return this._carouselItems || (this._carouselItems = this.carousel().jcarousel("items")), this._carouselItems
        }
    })
}(jQuery),
function(a, b) {
    "use strict";
    var c, d, e = {
        hidden: "visibilitychange",
        mozHidden: "mozvisibilitychange",
        msHidden: "msvisibilitychange",
        webkitHidden: "webkitvisibilitychange"
    };
    a.each(e, function(a, e) {
        return "undefined" != typeof b[a] ? (c = a, d = e, !1) : void 0
    }), a.jCarousel.plugin("jcarouselAutoscroll", {
        _options: {
            target: "+=1",
            interval: 3e3,
            autostart: !0
        },
        _timer: null,
        _started: !1,
        _init: function() {
            this.onDestroy = a.proxy(function() {
                this._destroy(), this.carousel().one("jcarousel:createend", a.proxy(this._create, this))
            }, this), this.onAnimateEnd = a.proxy(this._start, this), this.onVisibilityChange = a.proxy(function() {
                b[c] ? this._stop() : this._start()
            }, this)
        },
        _create: function() {
            this.carousel().one("jcarousel:destroy", this.onDestroy), a(b).on(d, this.onVisibilityChange), this.options("autostart") && this.start()
        },
        _destroy: function() {
            this._stop(), this.carousel().off("jcarousel:destroy", this.onDestroy), a(b).off(d, this.onVisibilityChange)
        },
        _start: function() {
            return this._stop(), this._started ? (this.carousel().one("jcarousel:animateend", this.onAnimateEnd), this._timer = setTimeout(a.proxy(function() {
                this.carousel().jcarousel("scroll", this.options("target"))
            }, this), this.options("interval")), this) : void 0
        },
        _stop: function() {
            return this._timer && (this._timer = clearTimeout(this._timer)), this.carousel().off("jcarousel:animateend", this.onAnimateEnd), this
        },
        start: function() {
            return this._started = !0, this._start(), this
        },
        stop: function() {
            return this._started = !1, this._stop(), this
        }
    })
}(jQuery, document);