/*! * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under the MIT license */ if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); +(function (a) { "use strict"; var b = a.fn.jquery.split(" ")[0].split("."); if ((b[0] < 2 && b[1] < 9) || (1 == b[0] && 9 == b[1] && b[2] < 1)) throw new Error( "Bootstrap's JavaScript requires jQuery version 1.9.1 or higher" ); })(jQuery), +(function (a) { "use strict"; function b() { var a = document.createElement("bootstrap"), b = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend", }; for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] }; return !1; } (a.fn.emulateTransitionEnd = function (b) { var c = !1, d = this; a(this).one("bsTransitionEnd", function () { c = !0; }); var e = function () { c || a(d).trigger(a.support.transition.end); }; return setTimeout(e, b), this; }), a(function () { (a.support.transition = b()), a.support.transition && (a.event.special.bsTransitionEnd = { bindType: a.support.transition.end, delegateType: a.support.transition.end, handle: function (b) { return a(b.target).is(this) ? b.handleObj.handler.apply(this, arguments) : void 0; }, }); }); })(jQuery), +(function (a) { "use strict"; function b(b) { return this.each(function () { var c = a(this), e = c.data("bs.alert"); e || c.data("bs.alert", (e = new d(this))), "string" == typeof b && e[b].call(c); }); } var c = '[data-dismiss="alert"]', d = function (b) { a(b).on("click", c, this.close); }; (d.VERSION = "3.3.5"), (d.TRANSITION_DURATION = 150), (d.prototype.close = function (b) { function c() { g.detach().trigger("closed.bs.alert").remove(); } var e = a(this), f = e.attr("data-target"); f || ((f = e.attr("href")), (f = f && f.replace(/.*(?=#[^\s]*$)/, ""))); var g = a(f); b && b.preventDefault(), g.length || (g = e.closest(".alert")), g.trigger((b = a.Event("close.bs.alert"))), b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") ? g .one("bsTransitionEnd", c) .emulateTransitionEnd(d.TRANSITION_DURATION) : c()); }); var e = a.fn.alert; (a.fn.alert = b), (a.fn.alert.Constructor = d), (a.fn.alert.noConflict = function () { return (a.fn.alert = e), this; }), a(document).on("click.bs.alert.data-api", c, d.prototype.close); })(jQuery), +(function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.button"), f = "object" == typeof b && b; e || d.data("bs.button", (e = new c(this, f))), "toggle" == b ? e.toggle() : b && e.setState(b); }); } var c = function (b, d) { (this.$element = a(b)), (this.options = a.extend({}, c.DEFAULTS, d)), (this.isLoading = !1); }; (c.VERSION = "3.3.5"), (c.DEFAULTS = { loadingText: "loading..." }), (c.prototype.setState = function (b) { var c = "disabled", d = this.$element, e = d.is("input") ? "val" : "html", f = d.data(); (b += "Text"), null == f.resetText && d.data("resetText", d[e]()), setTimeout( a.proxy(function () { d[e](null == f[b] ? this.options[b] : f[b]), "loadingText" == b ? ((this.isLoading = !0), d.addClass(c).attr(c, c)) : this.isLoading && ((this.isLoading = !1), d.removeClass(c).removeAttr(c)); }, this), 0 ); }), (c.prototype.toggle = function () { var a = !0, b = this.$element.closest('[data-toggle="buttons"]'); if (b.length) { var c = this.$element.find("input"); "radio" == c.prop("type") ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), c.prop("checked", this.$element.hasClass("active")), a && c.trigger("change"); } else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active"); }); var d = a.fn.button; (a.fn.button = b), (a.fn.button.Constructor = c), (a.fn.button.noConflict = function () { return (a.fn.button = d), this; }), a(document) .on("click.bs.button.data-api", '[data-toggle^="button"]', function ( c ) { var d = a(c.target); d.hasClass("btn") || (d = d.closest(".btn")), b.call(d, "toggle"), a(c.target).is('input[type="radio"]') || a(c.target).is('input[type="checkbox"]') || c.preventDefault(); }) .on( "focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (b) { a(b.target) .closest(".btn") .toggleClass("focus", /^focus(in)?$/.test(b.type)); } ); })(jQuery), +(function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.carousel"), f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), g = "string" == typeof b ? b : f.slide; e || d.data("bs.carousel", (e = new c(this, f))), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle(); }); } var c = function (b, c) { (this.$element = a(b)), (this.$indicators = this.$element.find(".carousel-indicators")), (this.options = c), (this.paused = null), (this.sliding = null), (this.interval = null), (this.$active = null), (this.$items = null), this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element .on("mouseenter.bs.carousel", a.proxy(this.pause, this)) .on("mouseleave.bs.carousel", a.proxy(this.cycle, this)); }; (c.VERSION = "3.3.5"), (c.TRANSITION_DURATION = 600), (c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0, keyboard: !0 }), (c.prototype.keydown = function (a) { if (!/input|textarea/i.test(a.target.tagName)) { switch (a.which) { case 37: this.prev(); break; case 39: this.next(); break; default: return; } a.preventDefault(); } }), (c.prototype.cycle = function (b) { return ( b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval( a.proxy(this.next, this), this.options.interval )), this ); }), (c.prototype.getItemIndex = function (a) { return ( (this.$items = a.parent().children(".item")), this.$items.index(a || this.$active) ); }), (c.prototype.getItemForDirection = function (a, b) { var c = this.getItemIndex(b), d = ("prev" == a && 0 === c) || ("next" == a && c == this.$items.length - 1); if (d && !this.options.wrap) return b; var e = "prev" == a ? -1 : 1, f = (c + e) % this.$items.length; return this.$items.eq(f); }), (c.prototype.to = function (a) { var b = this, c = this.getItemIndex( (this.$active = this.$element.find(".item.active")) ); return a > this.$items.length - 1 || 0 > a ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function () { b.to(a); }) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a)); }), (c.prototype.pause = function (b) { return ( b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), (this.interval = clearInterval(this.interval)), this ); }), (c.prototype.next = function () { return this.sliding ? void 0 : this.slide("next"); }), (c.prototype.prev = function () { return this.sliding ? void 0 : this.slide("prev"); }), (c.prototype.slide = function (b, d) { var e = this.$element.find(".item.active"), f = d || this.getItemForDirection(b, e), g = this.interval, h = "next" == b ? "left" : "right", i = this; if (f.hasClass("active")) return (this.sliding = !1); var j = f[0], k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: h }); if ((this.$element.trigger(k), !k.isDefaultPrevented())) { if ( ((this.sliding = !0), g && this.pause(), this.$indicators.length) ) { this.$indicators.find(".active").removeClass("active"); var l = a(this.$indicators.children()[this.getItemIndex(f)]); l && l.addClass("active"); } var m = a.Event("slid.bs.carousel", { relatedTarget: j, direction: h, }); return ( a.support.transition && this.$element.hasClass("slide") ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e .one("bsTransitionEnd", function () { f.removeClass([b, h].join(" ")).addClass("active"), e.removeClass(["active", h].join(" ")), (i.sliding = !1), setTimeout(function () { i.$element.trigger(m); }, 0); }) .emulateTransitionEnd(c.TRANSITION_DURATION)) : (e.removeClass("active"), f.addClass("active"), (this.sliding = !1), this.$element.trigger(m)), g && this.cycle(), this ); } }); var d = a.fn.carousel; (a.fn.carousel = b), (a.fn.carousel.Constructor = c), (a.fn.carousel.noConflict = function () { return (a.fn.carousel = d), this; }); var e = function (c) { var d, e = a(this), f = a( e.attr("data-target") || ((d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")) ); if (f.hasClass("carousel")) { var g = a.extend({}, f.data(), e.data()), h = e.attr("data-slide-to"); h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault(); } }; a(document) .on("click.bs.carousel.data-api", "[data-slide]", e) .on("click.bs.carousel.data-api", "[data-slide-to]", e), a(window).on("load", function () { a('[data-ride="carousel"]').each(function () { var c = a(this); b.call(c, c.data()); }); }); })(jQuery), +(function (a) { "use strict"; function b(b) { var c, d = b.attr("data-target") || ((c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")); return a(d); } function c(b) { return this.each(function () { var c = a(this), e = c.data("bs.collapse"), f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), e || c.data("bs.collapse", (e = new d(this, f))), "string" == typeof b && e[b](); }); } var d = function (b, c) { (this.$element = a(b)), (this.options = a.extend({}, d.DEFAULTS, c)), (this.$trigger = a( '[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]' )), (this.transitioning = null), this.options.parent ? (this.$parent = this.getParent()) : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle(); }; (d.VERSION = "3.3.5"), (d.TRANSITION_DURATION = 350), (d.DEFAULTS = { toggle: !0 }), (d.prototype.dimension = function () { var a = this.$element.hasClass("width"); return a ? "width" : "height"; }), (d.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var b, e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); if ( !( e && e.length && ((b = e.data("bs.collapse")), b && b.transitioning) ) ) { var f = a.Event("show.bs.collapse"); if ((this.$element.trigger(f), !f.isDefaultPrevented())) { e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); var g = this.dimension(); this.$element .removeClass("collapse") .addClass("collapsing") [g](0) .attr("aria-expanded", !0), this.$trigger .removeClass("collapsed") .attr("aria-expanded", !0), (this.transitioning = 1); var h = function () { this.$element .removeClass("collapsing") .addClass("collapse in") [g](""), (this.transitioning = 0), this.$element.trigger("shown.bs.collapse"); }; if (!a.support.transition) return h.call(this); var i = a.camelCase(["scroll", g].join("-")); this.$element .one("bsTransitionEnd", a.proxy(h, this)) .emulateTransitionEnd(d.TRANSITION_DURATION) [g](this.$element[0][i]); } } } }), (d.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass("in")) { var b = a.Event("hide.bs.collapse"); if ((this.$element.trigger(b), !b.isDefaultPrevented())) { var c = this.dimension(); this.$element[c](this.$element[c]())[0].offsetHeight, this.$element .addClass("collapsing") .removeClass("collapse in") .attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), (this.transitioning = 1); var e = function () { (this.transitioning = 0), this.$element .removeClass("collapsing") .addClass("collapse") .trigger("hidden.bs.collapse"); }; return a.support.transition ? void this.$element[c](0) .one("bsTransitionEnd", a.proxy(e, this)) .emulateTransitionEnd(d.TRANSITION_DURATION) : e.call(this); } } }), (d.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"](); }), (d.prototype.getParent = function () { return a(this.options.parent) .find( '[data-toggle="collapse"][data-parent="' + this.options.parent + '"]' ) .each( a.proxy(function (c, d) { var e = a(d); this.addAriaAndCollapsedClass(b(e), e); }, this) ) .end(); }), (d.prototype.addAriaAndCollapsedClass = function (a, b) { var c = a.hasClass("in"); a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c); }); var e = a.fn.collapse; (a.fn.collapse = c), (a.fn.collapse.Constructor = d), (a.fn.collapse.noConflict = function () { return (a.fn.collapse = e), this; }), a(document).on( "click.bs.collapse.data-api", '[data-toggle="collapse"]', function (d) { var e = a(this); e.attr("data-target") || d.preventDefault(); var f = b(e), g = f.data("bs.collapse"), h = g ? "toggle" : e.data(); c.call(f, h); } ); })(jQuery), +(function (a) { "use strict"; function b(b) { var c = b.attr("data-target"); c || ((c = b.attr("href")), (c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, ""))); var d = c && a(c); return d && d.length ? d : b.parent(); } function c(c) { (c && 3 === c.which) || (a(e).remove(), a(f).each(function () { var d = a(this), e = b(d), f = { relatedTarget: this }; e.hasClass("open") && ((c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target)) || (e.trigger((c = a.Event("hide.bs.dropdown", f))), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger("hidden.bs.dropdown", f)))); })); } function d(b) { return this.each(function () { var c = a(this), d = c.data("bs.dropdown"); d || c.data("bs.dropdown", (d = new g(this))), "string" == typeof b && d[b].call(c); }); } var e = ".dropdown-backdrop", f = '[data-toggle="dropdown"]', g = function (b) { a(b).on("click.bs.dropdown", this.toggle); }; (g.VERSION = "3.3.5"), (g.prototype.toggle = function (d) { var e = a(this); if (!e.is(".disabled, :disabled")) { var f = b(e), g = f.hasClass("open"); if ((c(), !g)) { "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a(document.createElement("div")) .addClass("dropdown-backdrop") .insertAfter(a(this)) .on("click", c); var h = { relatedTarget: this }; if ( (f.trigger((d = a.Event("show.bs.dropdown", h))), d.isDefaultPrevented()) ) return; e.trigger("focus").attr("aria-expanded", "true"), f.toggleClass("open").trigger("shown.bs.dropdown", h); } return !1; } }), (g.prototype.keydown = function (c) { if ( /(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName) ) { var d = a(this); if ( (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) ) { var e = b(d), g = e.hasClass("open"); if ((!g && 27 != c.which) || (g && 27 == c.which)) return ( 27 == c.which && e.find(f).trigger("focus"), d.trigger("click") ); var h = " li:not(.disabled):visible a", i = e.find(".dropdown-menu" + h); if (i.length) { var j = i.index(c.target); 38 == c.which && j > 0 && j--, 40 == c.which && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus"); } } } }); var h = a.fn.dropdown; (a.fn.dropdown = d), (a.fn.dropdown.Constructor = g), (a.fn.dropdown.noConflict = function () { return (a.fn.dropdown = h), this; }), a(document) .on("click.bs.dropdown.data-api", c) .on("click.bs.dropdown.data-api", ".dropdown form", function (a) { a.stopPropagation(); }) .on("click.bs.dropdown.data-api", f, g.prototype.toggle) .on("keydown.bs.dropdown.data-api", f, g.prototype.keydown) .on( "keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown ); })(jQuery), +(function (a) { "use strict"; function b(b, d) { return this.each(function () { var e = a(this), f = e.data("bs.modal"), g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); f || e.data("bs.modal", (f = new c(this, g))), "string" == typeof b ? f[b](d) : g.show && f.show(d); }); } var c = function (b, c) { (this.options = c), (this.$body = a(document.body)), (this.$element = a(b)), (this.$dialog = this.$element.find(".modal-dialog")), (this.$backdrop = null), (this.isShown = null), (this.originalBodyPad = null), (this.scrollbarWidth = 0), (this.ignoreBackdropClick = !1), this.options.remote && this.$element.find(".modal-content").load( this.options.remote, a.proxy(function () { this.$element.trigger("loaded.bs.modal"); }, this) ); }; (c.VERSION = "3.3.5"), (c.TRANSITION_DURATION = 300), (c.BACKDROP_TRANSITION_DURATION = 150), (c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }), (c.prototype.toggle = function (a) { return this.isShown ? this.hide() : this.show(a); }), (c.prototype.show = function (b) { var d = this, e = a.Event("show.bs.modal", { relatedTarget: b }); this.$element.trigger(e), this.isShown || e.isDefaultPrevented() || ((this.isShown = !0), this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on( "click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this) ), this.$dialog.on("mousedown.dismiss.bs.modal", function () { d.$element.one("mouseup.dismiss.bs.modal", function (b) { a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0); }); }), this.backdrop(function () { var e = a.support.transition && d.$element.hasClass("fade"); d.$element.parent().length || d.$element.appendTo(d.$body), d.$element.show().scrollTop(0), d.adjustDialog(), e && d.$element[0].offsetWidth, d.$element.addClass("in"), d.enforceFocus(); var f = a.Event("shown.bs.modal", { relatedTarget: b }); e ? d.$dialog .one("bsTransitionEnd", function () { d.$element.trigger("focus").trigger(f); }) .emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger("focus").trigger(f); })); }), (c.prototype.hide = function (b) { b && b.preventDefault(), (b = a.Event("hide.bs.modal")), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && ((this.isShown = !1), this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element .removeClass("in") .off("click.dismiss.bs.modal") .off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element .one("bsTransitionEnd", a.proxy(this.hideModal, this)) .emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal()); }), (c.prototype.enforceFocus = function () { a(document) .off("focusin.bs.modal") .on( "focusin.bs.modal", a.proxy(function (a) { this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus"); }, this) ); }), (c.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on( "keydown.dismiss.bs.modal", a.proxy(function (a) { 27 == a.which && this.hide(); }, this) ) : this.isShown || this.$element.off("keydown.dismiss.bs.modal"); }), (c.prototype.resize = function () { this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal"); }), (c.prototype.hideModal = function () { var a = this; this.$element.hide(), this.backdrop(function () { a.$body.removeClass("modal-open"), a.resetAdjustments(), a.resetScrollbar(), a.$element.trigger("hidden.bs.modal"); }); }), (c.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null); }), (c.prototype.backdrop = function (b) { var d = this, e = this.$element.hasClass("fade") ? "fade" : ""; if (this.isShown && this.options.backdrop) { var f = a.support.transition && e; if ( ((this.$backdrop = a(document.createElement("div")) .addClass("modal-backdrop " + e) .appendTo(this.$body)), this.$element.on( "click.dismiss.bs.modal", a.proxy(function (a) { return this.ignoreBackdropClick ? void (this.ignoreBackdropClick = !1) : void ( a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()) ); }, this) ), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) ) return; f ? this.$backdrop .one("bsTransitionEnd", b) .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b(); } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass("in"); var g = function () { d.removeBackdrop(), b && b(); }; a.support.transition && this.$element.hasClass("fade") ? this.$backdrop .one("bsTransitionEnd", g) .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g(); } else b && b(); }), (c.prototype.handleUpdate = function () { this.adjustDialog(); }), (c.prototype.adjustDialog = function () { var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; this.$element.css({ paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "", }); }), (c.prototype.resetAdjustments = function () { this.$element.css({ paddingLeft: "", paddingRight: "" }); }), (c.prototype.checkScrollbar = function () { var a = window.innerWidth; if (!a) { var b = document.documentElement.getBoundingClientRect(); a = b.right - Math.abs(b.left); } (this.bodyIsOverflowing = document.body.clientWidth < a), (this.scrollbarWidth = this.measureScrollbar()); }), (c.prototype.setScrollbar = function () { var a = parseInt(this.$body.css("padding-right") || 0, 10); (this.originalBodyPad = document.body.style.paddingRight || ""), this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth); }), (c.prototype.resetScrollbar = function () { this.$body.css("padding-right", this.originalBodyPad); }), (c.prototype.measureScrollbar = function () { var a = document.createElement("div"); (a.className = "modal-scrollbar-measure"), this.$body.append(a); var b = a.offsetWidth - a.clientWidth; return this.$body[0].removeChild(a), b; }); var d = a.fn.modal; (a.fn.modal = b), (a.fn.modal.Constructor = c), (a.fn.modal.noConflict = function () { return (a.fn.modal = d), this; }), a(document).on( "click.bs.modal.data-api", '[data-toggle="modal"]', function (c) { var d = a(this), e = d.attr("href"), f = a( d.attr("data-target") || (e && e.replace(/.*(?=#[^\s]+$)/, "")) ), g = f.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data()); d.is("a") && c.preventDefault(), f.one("show.bs.modal", function (a) { a.isDefaultPrevented() || f.one("hidden.bs.modal", function () { d.is(":visible") && d.trigger("focus"); }); }), b.call(f, g, this); } ); })(jQuery), +(function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.tooltip"), f = "object" == typeof b && b; (e || !/destroy|hide/.test(b)) && (e || d.data("bs.tooltip", (e = new c(this, f))), "string" == typeof b && e[b]()); }); } var c = function (a, b) { (this.type = null), (this.options = null), (this.enabled = null), (this.timeout = null), (this.hoverState = null), (this.$element = null), (this.inState = null), this.init("tooltip", a, b); }; (c.VERSION = "3.3.5"), (c.TRANSITION_DURATION = 150), (c.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1, viewport: { selector: "body", padding: 0 }, }), (c.prototype.init = function (b, c, d) { if ( ((this.enabled = !0), (this.type = b), (this.$element = a(c)), (this.options = this.getOptions(d)), (this.$viewport = this.options.viewport && a( a.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport )), (this.inState = { click: !1, hover: !1, focus: !1 }), this.$element[0] instanceof document.constructor && !this.options.selector) ) throw new Error( "`selector` option must be specified when initializing " + this.type + " on the window.document object!" ); for (var e = this.options.trigger.split(" "), f = e.length; f--; ) { var g = e[f]; if ("click" == g) this.$element.on( "click." + this.type, this.options.selector, a.proxy(this.toggle, this) ); else if ("manual" != g) { var h = "hover" == g ? "mouseenter" : "focusin", i = "hover" == g ? "mouseleave" : "focusout"; this.$element.on( h + "." + this.type, this.options.selector, a.proxy(this.enter, this) ), this.$element.on( i + "." + this.type, this.options.selector, a.proxy(this.leave, this) ); } } this.options.selector ? (this._options = a.extend({}, this.options, { trigger: "manual", selector: "", })) : this.fixTitle(); }), (c.prototype.getDefaults = function () { return c.DEFAULTS; }), (c.prototype.getOptions = function (b) { return ( (b = a.extend({}, this.getDefaults(), this.$element.data(), b)), b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), b ); }), (c.prototype.getDelegateOptions = function () { var b = {}, c = this.getDefaults(); return ( this._options && a.each(this._options, function (a, d) { c[a] != d && (b[a] = d); }), b ); }), (c.prototype.enter = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); return ( c || ((c = new this.constructor( b.currentTarget, this.getDelegateOptions() )), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), c.tip().hasClass("in") || "in" == c.hoverState ? void (c.hoverState = "in") : (clearTimeout(c.timeout), (c.hoverState = "in"), c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function () { "in" == c.hoverState && c.show(); }, c.options.delay.show)) : c.show()) ); }), (c.prototype.isInStateTrue = function () { for (var a in this.inState) if (this.inState[a]) return !0; return !1; }), (c.prototype.leave = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); return ( c || ((c = new this.constructor( b.currentTarget, this.getDelegateOptions() )), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), c.isInStateTrue() ? void 0 : (clearTimeout(c.timeout), (c.hoverState = "out"), c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function () { "out" == c.hoverState && c.hide(); }, c.options.delay.hide)) : c.hide()) ); }), (c.prototype.show = function () { var b = a.Event("show.bs." + this.type); if (this.hasContent() && this.enabled) { this.$element.trigger(b); var d = a.contains( this.$element[0].ownerDocument.documentElement, this.$element[0] ); if (b.isDefaultPrevented() || !d) return; var e = this, f = this.tip(), g = this.getUID(this.type); this.setContent(), f.attr("id", g), this.$element.attr("aria-describedby", g), this.options.animation && f.addClass("fade"); var h = "function" == typeof this.options.placement ? this.options.placement.call(this, f[0], this.$element[0]) : this.options.placement, i = /\s?auto?\s?/i, j = i.test(h); j && (h = h.replace(i, "") || "top"), f .detach() .css({ top: 0, left: 0, display: "block" }) .addClass(h) .data("bs." + this.type, this), this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); var k = this.getPosition(), l = f[0].offsetWidth, m = f[0].offsetHeight; if (j) { var n = h, o = this.getPosition(this.$viewport); (h = "bottom" == h && k.bottom + m > o.bottom ? "top" : "top" == h && k.top - m < o.top ? "bottom" : "right" == h && k.right + l > o.width ? "left" : "left" == h && k.left - l < o.left ? "right" : h), f.removeClass(n).addClass(h); } var p = this.getCalculatedOffset(h, k, l, m); this.applyPlacement(p, h); var q = function () { var a = e.hoverState; e.$element.trigger("shown.bs." + e.type), (e.hoverState = null), "out" == a && e.leave(e); }; a.support.transition && this.$tip.hasClass("fade") ? f .one("bsTransitionEnd", q) .emulateTransitionEnd(c.TRANSITION_DURATION) : q(); } }), (c.prototype.applyPlacement = function (b, c) { var d = this.tip(), e = d[0].offsetWidth, f = d[0].offsetHeight, g = parseInt(d.css("margin-top"), 10), h = parseInt(d.css("margin-left"), 10); isNaN(g) && (g = 0), isNaN(h) && (h = 0), (b.top += g), (b.left += h), a.offset.setOffset( d[0], a.extend( { using: function (a) { d.css({ top: Math.round(a.top), left: Math.round(a.left) }); }, }, b ), 0 ), d.addClass("in"); var i = d[0].offsetWidth, j = d[0].offsetHeight; "top" == c && j != f && (b.top = b.top + f - j); var k = this.getViewportAdjustedDelta(c, b, i, j); k.left ? (b.left += k.left) : (b.top += k.top); var l = /top|bottom/.test(c), m = l ? 2 * k.left - e + i : 2 * k.top - f + j, n = l ? "offsetWidth" : "offsetHeight"; d.offset(b), this.replaceArrow(m, d[0][n], l); }), (c.prototype.replaceArrow = function (a, b, c) { this.arrow() .css(c ? "left" : "top", 50 * (1 - a / b) + "%") .css(c ? "top" : "left", ""); }), (c.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(); a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right"); }), (c.prototype.hide = function (b) { function d() { "in" != e.hoverState && f.detach(), e.$element .removeAttr("aria-describedby") .trigger("hidden.bs." + e.type), b && b(); } var e = this, f = a(this.$tip), g = a.Event("hide.bs." + this.type); return ( this.$element.trigger(g), g.isDefaultPrevented() ? void 0 : (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f .one("bsTransitionEnd", d) .emulateTransitionEnd(c.TRANSITION_DURATION) : d(), (this.hoverState = null), this) ); }), (c.prototype.fixTitle = function () { var a = this.$element; (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a .attr("data-original-title", a.attr("title") || "") .attr("title", ""); }), (c.prototype.hasContent = function () { return this.getTitle(); }), (c.prototype.getPosition = function (b) { b = b || this.$element; var c = b[0], d = "BODY" == c.tagName, e = c.getBoundingClientRect(); null == e.width && (e = a.extend({}, e, { width: e.right - e.left, height: e.bottom - e.top, })); var f = d ? { top: 0, left: 0 } : b.offset(), g = { scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop(), }, h = d ? { width: a(window).width(), height: a(window).height() } : null; return a.extend({}, e, g, h, f); }), (c.prototype.getCalculatedOffset = function (a, b, c, d) { return "bottom" == a ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } : "top" == a ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } : "left" == a ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width }; }), (c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { var e = { top: 0, left: 0 }; if (!this.$viewport) return e; var f = (this.options.viewport && this.options.viewport.padding) || 0, g = this.getPosition(this.$viewport); if (/right|left/.test(a)) { var h = b.top - f - g.scroll, i = b.top + f - g.scroll + d; h < g.top ? (e.top = g.top - h) : i > g.top + g.height && (e.top = g.top + g.height - i); } else { var j = b.left - f, k = b.left + f + c; j < g.left ? (e.left = g.left - j) : k > g.right && (e.left = g.left + g.width - k); } return e; }), (c.prototype.getTitle = function () { var a, b = this.$element, c = this.options; return (a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title)); }), (c.prototype.getUID = function (a) { do a += ~~(1e6 * Math.random()); while (document.getElementById(a)); return a; }), (c.prototype.tip = function () { if ( !this.$tip && ((this.$tip = a(this.options.template)), 1 != this.$tip.length) ) throw new Error( this.type + " `template` option must consist of exactly 1 top-level element!" ); return this.$tip; }), (c.prototype.arrow = function () { return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")); }), (c.prototype.enable = function () { this.enabled = !0; }), (c.prototype.disable = function () { this.enabled = !1; }), (c.prototype.toggleEnabled = function () { this.enabled = !this.enabled; }), (c.prototype.toggle = function (b) { var c = this; b && ((c = a(b.currentTarget).data("bs." + this.type)), c || ((c = new this.constructor( b.currentTarget, this.getDelegateOptions() )), a(b.currentTarget).data("bs." + this.type, c))), b ? ((c.inState.click = !c.inState.click), c.isInStateTrue() ? c.enter(c) : c.leave(c)) : c.tip().hasClass("in") ? c.leave(c) : c.enter(c); }), (c.prototype.destroy = function () { var a = this; clearTimeout(this.timeout), this.hide(function () { a.$element.off("." + a.type).removeData("bs." + a.type), a.$tip && a.$tip.detach(), (a.$tip = null), (a.$arrow = null), (a.$viewport = null); }); }); var d = a.fn.tooltip; (a.fn.tooltip = b), (a.fn.tooltip.Constructor = c), (a.fn.tooltip.noConflict = function () { return (a.fn.tooltip = d), this; }); })(jQuery), +(function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.popover"), f = "object" == typeof b && b; (e || !/destroy|hide/.test(b)) && (e || d.data("bs.popover", (e = new c(this, f))), "string" == typeof b && e[b]()); }); } var c = function (a, b) { this.init("popover", a, b); }; if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); (c.VERSION = "3.3.5"), (c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '', })), (c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)), (c.prototype.constructor = c), (c.prototype.getDefaults = function () { return c.DEFAULTS; }), (c.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(), c = this.getContent(); a.find(".popover-title")[this.options.html ? "html" : "text"](b), a .find(".popover-content") .children() .detach() .end() [ this.options.html ? "string" == typeof c ? "html" : "append" : "text" ](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide(); }), (c.prototype.hasContent = function () { return this.getTitle() || this.getContent(); }), (c.prototype.getContent = function () { var a = this.$element, b = this.options; return ( a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) ); }), (c.prototype.arrow = function () { return (this.$arrow = this.$arrow || this.tip().find(".arrow")); }); var d = a.fn.popover; (a.fn.popover = b), (a.fn.popover.Constructor = c), (a.fn.popover.noConflict = function () { return (a.fn.popover = d), this; }); })(jQuery), +(function (a) { "use strict"; function b(c, d) { (this.$body = a(document.body)), (this.$scrollElement = a(a(c).is(document.body) ? window : c)), (this.options = a.extend({}, b.DEFAULTS, d)), (this.selector = (this.options.target || "") + " .nav li > a"), (this.offsets = []), (this.targets = []), (this.activeTarget = null), (this.scrollHeight = 0), this.$scrollElement.on( "scroll.bs.scrollspy", a.proxy(this.process, this) ), this.refresh(), this.process(); } function c(c) { return this.each(function () { var d = a(this), e = d.data("bs.scrollspy"), f = "object" == typeof c && c; e || d.data("bs.scrollspy", (e = new b(this, f))), "string" == typeof c && e[c](); }); } (b.VERSION = "3.3.5"), (b.DEFAULTS = { offset: 10 }), (b.prototype.getScrollHeight = function () { return ( this.$scrollElement[0].scrollHeight || Math.max( this.$body[0].scrollHeight, document.documentElement.scrollHeight ) ); }), (b.prototype.refresh = function () { var b = this, c = "offset", d = 0; (this.offsets = []), (this.targets = []), (this.scrollHeight = this.getScrollHeight()), a.isWindow(this.$scrollElement[0]) || ((c = "position"), (d = this.$scrollElement.scrollTop())), this.$body .find(this.selector) .map(function () { var b = a(this), e = b.data("target") || b.attr("href"), f = /^#./.test(e) && a(e); return ( (f && f.length && f.is(":visible") && [[f[c]().top + d, e]]) || null ); }) .sort(function (a, b) { return a[0] - b[0]; }) .each(function () { b.offsets.push(this[0]), b.targets.push(this[1]); }); }), (b.prototype.process = function () { var a, b = this.$scrollElement.scrollTop() + this.options.offset, c = this.getScrollHeight(), d = this.options.offset + c - this.$scrollElement.height(), e = this.offsets, f = this.targets, g = this.activeTarget; if ((this.scrollHeight != c && this.refresh(), b >= d)) return g != (a = f[f.length - 1]) && this.activate(a); if (g && b < e[0]) return (this.activeTarget = null), this.clear(); for (a = e.length; a--; ) g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]); }), (b.prototype.activate = function (b) { (this.activeTarget = b), this.clear(); var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', d = a(c).parents("li").addClass("active"); d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy"); }), (b.prototype.clear = function () { a(this.selector) .parentsUntil(this.options.target, ".active") .removeClass("active"); }); var d = a.fn.scrollspy; (a.fn.scrollspy = c), (a.fn.scrollspy.Constructor = b), (a.fn.scrollspy.noConflict = function () { return (a.fn.scrollspy = d), this; }), a(window).on("load.bs.scrollspy.data-api", function () { a('[data-spy="scroll"]').each(function () { var b = a(this); c.call(b, b.data()); }); }); })(jQuery), +(function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.tab"); e || d.data("bs.tab", (e = new c(this))), "string" == typeof b && e[b](); }); } var c = function (b) { this.element = a(b); }; (c.VERSION = "3.3.5"), (c.TRANSITION_DURATION = 150), (c.prototype.show = function () { var b = this.element, c = b.closest("ul:not(.dropdown-menu)"), d = b.data("target"); if ( (d || ((d = b.attr("href")), (d = d && d.replace(/.*(?=#[^\s]*$)/, ""))), !b.parent("li").hasClass("active")) ) { var e = c.find(".active:last a"), f = a.Event("hide.bs.tab", { relatedTarget: b[0] }), g = a.Event("show.bs.tab", { relatedTarget: e[0] }); if ( (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) ) { var h = a(d); this.activate(b.closest("li"), c), this.activate(h, h.parent(), function () { e.trigger({ type: "hidden.bs.tab", relatedTarget: b[0] }), b.trigger({ type: "shown.bs.tab", relatedTarget: e[0] }); }); } } }), (c.prototype.activate = function (b, d, e) { function f() { g .removeClass("active") .find("> .dropdown-menu > .active") .removeClass("active") .end() .find('[data-toggle="tab"]') .attr("aria-expanded", !1), b .addClass("active") .find('[data-toggle="tab"]') .attr("aria-expanded", !0), h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu").length && b .closest("li.dropdown") .addClass("active") .end() .find('[data-toggle="tab"]') .attr("aria-expanded", !0), e && e(); } var g = d.find("> .active"), h = e && a.support.transition && ((g.length && g.hasClass("fade")) || !!d.find("> .fade").length); g.length && h ? g .one("bsTransitionEnd", f) .emulateTransitionEnd(c.TRANSITION_DURATION) : f(), g.removeClass("in"); }); var d = a.fn.tab; (a.fn.tab = b), (a.fn.tab.Constructor = c), (a.fn.tab.noConflict = function () { return (a.fn.tab = d), this; }); var e = function (c) { c.preventDefault(), b.call(a(this), "show"); }; a(document) .on("click.bs.tab.data-api", '[data-toggle="tab"]', e) .on("click.bs.tab.data-api", '[data-toggle="pill"]', e); })(jQuery), +(function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.affix"), f = "object" == typeof b && b; e || d.data("bs.affix", (e = new c(this, f))), "string" == typeof b && e[b](); }); } var c = function (b, d) { (this.options = a.extend({}, c.DEFAULTS, d)), (this.$target = a(this.options.target) .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)) .on( "click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this) )), (this.$element = a(b)), (this.affixed = null), (this.unpin = null), (this.pinnedOffset = null), this.checkPosition(); }; (c.VERSION = "3.3.5"), (c.RESET = "affix affix-top affix-bottom"), (c.DEFAULTS = { offset: 0, target: window }), (c.prototype.getState = function (a, b, c, d) { var e = this.$target.scrollTop(), f = this.$element.offset(), g = this.$target.height(); if (null != c && "top" == this.affixed) return c > e ? "top" : !1; if ("bottom" == this.affixed) return null != c ? e + this.unpin <= f.top ? !1 : "bottom" : a - d >= e + g ? !1 : "bottom"; var h = null == this.affixed, i = h ? e : f.top, j = h ? g : b; return null != c && c >= e ? "top" : null != d && i + j >= a - d ? "bottom" : !1; }), (c.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset; this.$element.removeClass(c.RESET).addClass("affix"); var a = this.$target.scrollTop(), b = this.$element.offset(); return (this.pinnedOffset = b.top - a); }), (c.prototype.checkPositionWithEventLoop = function () { setTimeout(a.proxy(this.checkPosition, this), 1); }), (c.prototype.checkPosition = function () { if (this.$element.is(":visible")) { var b = this.$element.height(), d = this.options.offset, e = d.top, f = d.bottom, g = Math.max(a(document).height(), a(document.body).height()); "object" != typeof d && (f = e = d), "function" == typeof e && (e = d.top(this.$element)), "function" == typeof f && (f = d.bottom(this.$element)); var h = this.getState(g, b, e, f); if (this.affixed != h) { null != this.unpin && this.$element.css("top", ""); var i = "affix" + (h ? "-" + h : ""), j = a.Event(i + ".bs.affix"); if ((this.$element.trigger(j), j.isDefaultPrevented())) return; (this.affixed = h), (this.unpin = "bottom" == h ? this.getPinnedOffset() : null), this.$element .removeClass(c.RESET) .addClass(i) .trigger(i.replace("affix", "affixed") + ".bs.affix"); } "bottom" == h && this.$element.offset({ top: g - b - f }); } }); var d = a.fn.affix; (a.fn.affix = b), (a.fn.affix.Constructor = c), (a.fn.affix.noConflict = function () { return (a.fn.affix = d), this; }), a(window).on("load", function () { a('[data-spy="affix"]').each(function () { var c = a(this), d = c.data(); (d.offset = d.offset || {}), null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), null != d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d); }); }); })(jQuery); /*! WOW - v1.1.2 - 2015-04-07 * Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */ (function () { var a, b, c, d, e, f = function (a, b) { return function () { return a.apply(b, arguments); }; }, g = [].indexOf || function (a) { for (var b = 0, c = this.length; c > b; b++) if (b in this && this[b] === a) return b; return -1; }; (b = (function () { function a() {} return ( (a.prototype.extend = function (a, b) { var c, d; for (c in b) (d = b[c]), null == a[c] && (a[c] = d); return a; }), (a.prototype.isMobile = function (a) { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( a ); }), (a.prototype.createEvent = function (a, b, c, d) { var e; return ( null == b && (b = !1), null == c && (c = !1), null == d && (d = null), null != document.createEvent ? ((e = document.createEvent("CustomEvent")), e.initCustomEvent(a, b, c, d)) : null != document.createEventObject ? ((e = document.createEventObject()), (e.eventType = a)) : (e.eventName = a), e ); }), (a.prototype.emitEvent = function (a, b) { return null != a.dispatchEvent ? a.dispatchEvent(b) : b in (null != a) ? a[b]() : "on" + b in (null != a) ? a["on" + b]() : void 0; }), (a.prototype.addEvent = function (a, b, c) { return null != a.addEventListener ? a.addEventListener(b, c, !1) : null != a.attachEvent ? a.attachEvent("on" + b, c) : (a[b] = c); }), (a.prototype.removeEvent = function (a, b, c) { return null != a.removeEventListener ? a.removeEventListener(b, c, !1) : null != a.detachEvent ? a.detachEvent("on" + b, c) : delete a[b]; }), (a.prototype.innerHeight = function () { return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight; }), a ); })()), (c = this.WeakMap || this.MozWeakMap || (c = (function () { function a() { (this.keys = []), (this.values = []); } return ( (a.prototype.get = function (a) { var b, c, d, e, f; for (f = this.keys, b = d = 0, e = f.length; e > d; b = ++d) if (((c = f[b]), c === a)) return this.values[b]; }), (a.prototype.set = function (a, b) { var c, d, e, f, g; for (g = this.keys, c = e = 0, f = g.length; f > e; c = ++e) if (((d = g[c]), d === a)) return void (this.values[c] = b); return this.keys.push(a), this.values.push(b); }), a ); })())), (a = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a = (function () { function a() { "undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn( "WOW.js cannot detect dom mutations, please call .sync() after loading new content." ); } return (a.notSupported = !0), (a.prototype.observe = function () {}), a; })())), (d = this.getComputedStyle || function (a) { return ( (this.getPropertyValue = function (b) { var c; return ( "float" === b && (b = "styleFloat"), e.test(b) && b.replace(e, function (a, b) { return b.toUpperCase(); }), (null != (c = a.currentStyle) ? c[b] : void 0) || null ); }), this ); }), (e = /(\-([a-z]){1})/g), (this.WOW = (function () { function e(a) { null == a && (a = {}), (this.scrollCallback = f(this.scrollCallback, this)), (this.scrollHandler = f(this.scrollHandler, this)), (this.resetAnimation = f(this.resetAnimation, this)), (this.start = f(this.start, this)), (this.scrolled = !0), (this.config = this.util().extend(a, this.defaults)), (this.animationNameCache = new c()), (this.wowEvent = this.util().createEvent(this.config.boxClass)); } return ( (e.prototype.defaults = { boxClass: "wow", animateClass: "animated", offset: 0, mobile: !0, live: !0, callback: null, }), (e.prototype.init = function () { var a; return ( (this.element = window.document.documentElement), "interactive" === (a = document.readyState) || "complete" === a ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), (this.finished = []) ); }), (e.prototype.start = function () { var b, c, d, e; if ( ((this.stopped = !1), (this.boxes = function () { var a, c, d, e; for ( d = this.element.querySelectorAll("." + this.config.boxClass), e = [], a = 0, c = d.length; c > a; a++ ) (b = d[a]), e.push(b); return e; }.call(this)), (this.all = function () { var a, c, d, e; for (d = this.boxes, e = [], a = 0, c = d.length; c > a; a++) (b = d[a]), e.push(b); return e; }.call(this)), this.boxes.length) ) if (this.disabled()) this.resetStyle(); else for (e = this.boxes, c = 0, d = e.length; d > c; c++) (b = e[c]), this.applyStyle(b, !0); return ( this.disabled() || (this.util().addEvent(window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), (this.interval = setInterval(this.scrollCallback, 50))), this.config.live ? new a( (function (a) { return function (b) { var c, d, e, f, g; for (g = [], c = 0, d = b.length; d > c; c++) (f = b[c]), g.push( function () { var a, b, c, d; for ( c = f.addedNodes || [], d = [], a = 0, b = c.length; b > a; a++ ) (e = c[a]), d.push(this.doSync(e)); return d; }.call(a) ); return g; }; })(this) ).observe(document.body, { childList: !0, subtree: !0 }) : void 0 ); }), (e.prototype.stop = function () { return ( (this.stopped = !0), this.util().removeEvent(window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval ? clearInterval(this.interval) : void 0 ); }), (e.prototype.sync = function () { return a.notSupported ? this.doSync(this.element) : void 0; }), (e.prototype.doSync = function (a) { var b, c, d, e, f; if ((null == a && (a = this.element), 1 === a.nodeType)) { for ( a = a.parentNode || a, e = a.querySelectorAll("." + this.config.boxClass), f = [], c = 0, d = e.length; d > c; c++ ) (b = e[c]), g.call(this.all, b) < 0 ? (this.boxes.push(b), this.all.push(b), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(b, !0), f.push((this.scrolled = !0))) : f.push(void 0); return f; } }), (e.prototype.show = function (a) { return ( this.applyStyle(a), (a.className = a.className + " " + this.config.animateClass), null != this.config.callback && this.config.callback(a), this.util().emitEvent(a, this.wowEvent), this.util().addEvent(a, "animationend", this.resetAnimation), this.util().addEvent(a, "oanimationend", this.resetAnimation), this.util().addEvent(a, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(a, "MSAnimationEnd", this.resetAnimation), a ); }), (e.prototype.applyStyle = function (a, b) { var c, d, e; return ( (d = a.getAttribute("data-wow-duration")), (c = a.getAttribute("data-wow-delay")), (e = a.getAttribute("data-wow-iteration")), this.animate( (function (f) { return function () { return f.customStyle(a, b, d, c, e); }; })(this) ) ); }), (e.prototype.animate = (function () { return "requestAnimationFrame" in window ? function (a) { return window.requestAnimationFrame(a); } : function (a) { return a(); }; })()), (e.prototype.resetStyle = function () { var a, b, c, d, e; for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++) (a = d[b]), e.push((a.style.visibility = "visible")); return e; }), (e.prototype.resetAnimation = function (a) { var b; return a.type.toLowerCase().indexOf("animationend") >= 0 ? ((b = a.target || a.srcElement), (b.className = b.className .replace(this.config.animateClass, "") .trim())) : void 0; }), (e.prototype.customStyle = function (a, b, c, d, e) { return ( b && this.cacheAnimationName(a), (a.style.visibility = b ? "hidden" : "visible"), c && this.vendorSet(a.style, { animationDuration: c }), d && this.vendorSet(a.style, { animationDelay: d }), e && this.vendorSet(a.style, { animationIterationCount: e }), this.vendorSet(a.style, { animationName: b ? "none" : this.cachedAnimationName(a), }), a ); }), (e.prototype.vendors = ["moz", "webkit"]), (e.prototype.vendorSet = function (a, b) { var c, d, e, f; d = []; for (c in b) (e = b[c]), (a["" + c] = e), d.push( function () { var b, d, g, h; for ( g = this.vendors, h = [], b = 0, d = g.length; d > b; b++ ) (f = g[b]), h.push( (a[ "" + f + c.charAt(0).toUpperCase() + c.substr(1) ] = e) ); return h; }.call(this) ); return d; }), (e.prototype.vendorCSS = function (a, b) { var c, e, f, g, h, i; for ( h = d(a), g = h.getPropertyCSSValue(b), f = this.vendors, c = 0, e = f.length; e > c; c++ ) (i = f[c]), (g = g || h.getPropertyCSSValue("-" + i + "-" + b)); return g; }), (e.prototype.animationName = function (a) { var b; try { b = this.vendorCSS(a, "animation-name").cssText; } catch (c) { b = d(a).getPropertyValue("animation-name"); } return "none" === b ? "" : b; }), (e.prototype.cacheAnimationName = function (a) { return this.animationNameCache.set(a, this.animationName(a)); }), (e.prototype.cachedAnimationName = function (a) { return this.animationNameCache.get(a); }), (e.prototype.scrollHandler = function () { return (this.scrolled = !0); }), (e.prototype.scrollCallback = function () { var a; return !this.scrolled || ((this.scrolled = !1), (this.boxes = function () { var b, c, d, e; for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++) (a = d[b]), a && (this.isVisible(a) ? this.show(a) : e.push(a)); return e; }.call(this)), this.boxes.length || this.config.live) ? void 0 : this.stop(); }), (e.prototype.offsetTop = function (a) { for (var b; void 0 === a.offsetTop; ) a = a.parentNode; for (b = a.offsetTop; (a = a.offsetParent); ) b += a.offsetTop; return b; }), (e.prototype.isVisible = function (a) { var b, c, d, e, f; return ( (c = a.getAttribute("data-wow-offset") || this.config.offset), (f = window.pageYOffset), (e = f + Math.min(this.element.clientHeight, this.util().innerHeight()) - c), (d = this.offsetTop(a)), (b = d + a.clientHeight), e >= d && b >= f ); }), (e.prototype.util = function () { return null != this._util ? this._util : (this._util = new b()); }), (e.prototype.disabled = function () { return ( !this.config.mobile && this.util().isMobile(navigator.userAgent) ); }), e ); })()); }.call(this)); /*! * Isotope PACKAGED v2.2.2 * * Licensed GPLv3 for open source use * or Isotope Commercial License for commercial use * * http://isotope.metafizzy.co * Copyright 2015 Metafizzy */ !(function (a) { function b() {} function c(a) { function c(b) { b.prototype.option || (b.prototype.option = function (b) { a.isPlainObject(b) && (this.options = a.extend(!0, this.options, b)); }); } function e(b, c) { a.fn[b] = function (e) { if ("string" == typeof e) { for ( var g = d.call(arguments, 1), h = 0, i = this.length; i > h; h++ ) { var j = this[h], k = a.data(j, b); if (k) if (a.isFunction(k[e]) && "_" !== e.charAt(0)) { var l = k[e].apply(k, g); if (void 0 !== l) return l; } else f("no such method '" + e + "' for " + b + " instance"); else f( "cannot call methods on " + b + " prior to initialization; attempted to call '" + e + "'" ); } return this; } return this.each(function () { var d = a.data(this, b); d ? (d.option(e), d._init()) : ((d = new c(this, e)), a.data(this, b, d)); }); }; } if (a) { var f = "undefined" == typeof console ? b : function (a) { console.error(a); }; return ( (a.bridget = function (a, b) { c(b), e(a, b); }), a.bridget ); } } var d = Array.prototype.slice; "function" == typeof define && define.amd ? define("jquery-bridget/jquery.bridget", ["jquery"], c) : c("object" == typeof exports ? require("jquery") : a.jQuery); })(window), (function (a) { function b(b) { var c = a.event; return (c.target = c.target || c.srcElement || b), c; } var c = document.documentElement, d = function () {}; c.addEventListener ? (d = function (a, b, c) { a.addEventListener(b, c, !1); }) : c.attachEvent && (d = function (a, c, d) { (a[c + d] = d.handleEvent ? function () { var c = b(a); d.handleEvent.call(d, c); } : function () { var c = b(a); d.call(a, c); }), a.attachEvent("on" + c, a[c + d]); }); var e = function () {}; c.removeEventListener ? (e = function (a, b, c) { a.removeEventListener(b, c, !1); }) : c.detachEvent && (e = function (a, b, c) { a.detachEvent("on" + b, a[b + c]); try { delete a[b + c]; } catch (d) { a[b + c] = void 0; } }); var f = { bind: d, unbind: e }; "function" == typeof define && define.amd ? define("eventie/eventie", f) : "object" == typeof exports ? (module.exports = f) : (a.eventie = f); })(window), function () { "use strict"; function a() {} function b(a, b) { for (var c = a.length; c--; ) if (a[c].listener === b) return c; return -1; } function c(a) { return function () { return this[a].apply(this, arguments); }; } var d = a.prototype, e = this, f = e.EventEmitter; (d.getListeners = function (a) { var b, c, d = this._getEvents(); if (a instanceof RegExp) { b = {}; for (c in d) d.hasOwnProperty(c) && a.test(c) && (b[c] = d[c]); } else b = d[a] || (d[a] = []); return b; }), (d.flattenListeners = function (a) { var b, c = []; for (b = 0; b < a.length; b += 1) c.push(a[b].listener); return c; }), (d.getListenersAsObject = function (a) { var b, c = this.getListeners(a); return c instanceof Array && ((b = {}), (b[a] = c)), b || c; }), (d.addListener = function (a, c) { var d, e = this.getListenersAsObject(a), f = "object" == typeof c; for (d in e) e.hasOwnProperty(d) && -1 === b(e[d], c) && e[d].push(f ? c : { listener: c, once: !1 }); return this; }), (d.on = c("addListener")), (d.addOnceListener = function (a, b) { return this.addListener(a, { listener: b, once: !0 }); }), (d.once = c("addOnceListener")), (d.defineEvent = function (a) { return this.getListeners(a), this; }), (d.defineEvents = function (a) { for (var b = 0; b < a.length; b += 1) this.defineEvent(a[b]); return this; }), (d.removeListener = function (a, c) { var d, e, f = this.getListenersAsObject(a); for (e in f) f.hasOwnProperty(e) && ((d = b(f[e], c)), -1 !== d && f[e].splice(d, 1)); return this; }), (d.off = c("removeListener")), (d.addListeners = function (a, b) { return this.manipulateListeners(!1, a, b); }), (d.removeListeners = function (a, b) { return this.manipulateListeners(!0, a, b); }), (d.manipulateListeners = function (a, b, c) { var d, e, f = a ? this.removeListener : this.addListener, g = a ? this.removeListeners : this.addListeners; if ("object" != typeof b || b instanceof RegExp) for (d = c.length; d--; ) f.call(this, b, c[d]); else for (d in b) b.hasOwnProperty(d) && (e = b[d]) && ("function" == typeof e ? f.call(this, d, e) : g.call(this, d, e)); return this; }), (d.removeEvent = function (a) { var b, c = typeof a, d = this._getEvents(); if ("string" === c) delete d[a]; else if (a instanceof RegExp) for (b in d) d.hasOwnProperty(b) && a.test(b) && delete d[b]; else delete this._events; return this; }), (d.removeAllListeners = c("removeEvent")), (d.emitEvent = function (a, b) { var c, d, e, f, g = this.getListenersAsObject(a); for (e in g) if (g.hasOwnProperty(e)) for (d = g[e].length; d--; ) (c = g[e][d]), c.once === !0 && this.removeListener(a, c.listener), (f = c.listener.apply(this, b || [])), f === this._getOnceReturnValue() && this.removeListener(a, c.listener); return this; }), (d.trigger = c("emitEvent")), (d.emit = function (a) { var b = Array.prototype.slice.call(arguments, 1); return this.emitEvent(a, b); }), (d.setOnceReturnValue = function (a) { return (this._onceReturnValue = a), this; }), (d._getOnceReturnValue = function () { return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0; }), (d._getEvents = function () { return this._events || (this._events = {}); }), (a.noConflict = function () { return (e.EventEmitter = f), a; }), "function" == typeof define && define.amd ? define("eventEmitter/EventEmitter", [], function () { return a; }) : "object" == typeof module && module.exports ? (module.exports = a) : (e.EventEmitter = a); }.call(this), (function (a) { function b(a) { if (a) { if ("string" == typeof d[a]) return a; a = a.charAt(0).toUpperCase() + a.slice(1); for (var b, e = 0, f = c.length; f > e; e++) if (((b = c[e] + a), "string" == typeof d[b])) return b; } } var c = "Webkit Moz ms Ms O".split(" "), d = document.documentElement.style; "function" == typeof define && define.amd ? define("get-style-property/get-style-property", [], function () { return b; }) : "object" == typeof exports ? (module.exports = b) : (a.getStyleProperty = b); })(window), (function (a, b) { function c(a) { var b = parseFloat(a), c = -1 === a.indexOf("%") && !isNaN(b); return c && b; } function d() {} function e() { for ( var a = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0, }, b = 0, c = h.length; c > b; b++ ) { var d = h[b]; a[d] = 0; } return a; } function f(b) { function d() { if (!m) { m = !0; var d = a.getComputedStyle; if ( ((j = (function () { var a = d ? function (a) { return d(a, null); } : function (a) { return a.currentStyle; }; return function (b) { var c = a(b); return ( c || g( "Style returned " + c + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1" ), c ); }; })()), (k = b("boxSizing"))) ) { var e = document.createElement("div"); (e.style.width = "200px"), (e.style.padding = "1px 2px 3px 4px"), (e.style.borderStyle = "solid"), (e.style.borderWidth = "1px 2px 3px 4px"), (e.style[k] = "border-box"); var f = document.body || document.documentElement; f.appendChild(e); var h = j(e); (l = 200 === c(h.width)), f.removeChild(e); } } } function f(a) { if ( (d(), "string" == typeof a && (a = document.querySelector(a)), a && "object" == typeof a && a.nodeType) ) { var b = j(a); if ("none" === b.display) return e(); var f = {}; (f.width = a.offsetWidth), (f.height = a.offsetHeight); for ( var g = (f.isBorderBox = !(!k || !b[k] || "border-box" !== b[k])), m = 0, n = h.length; n > m; m++ ) { var o = h[m], p = b[o]; p = i(a, p); var q = parseFloat(p); f[o] = isNaN(q) ? 0 : q; } var r = f.paddingLeft + f.paddingRight, s = f.paddingTop + f.paddingBottom, t = f.marginLeft + f.marginRight, u = f.marginTop + f.marginBottom, v = f.borderLeftWidth + f.borderRightWidth, w = f.borderTopWidth + f.borderBottomWidth, x = g && l, y = c(b.width); y !== !1 && (f.width = y + (x ? 0 : r + v)); var z = c(b.height); return ( z !== !1 && (f.height = z + (x ? 0 : s + w)), (f.innerWidth = f.width - (r + v)), (f.innerHeight = f.height - (s + w)), (f.outerWidth = f.width + t), (f.outerHeight = f.height + u), f ); } } function i(b, c) { if (a.getComputedStyle || -1 === c.indexOf("%")) return c; var d = b.style, e = d.left, f = b.runtimeStyle, g = f && f.left; return ( g && (f.left = b.currentStyle.left), (d.left = c), (c = d.pixelLeft), (d.left = e), g && (f.left = g), c ); } var j, k, l, m = !1; return f; } var g = "undefined" == typeof console ? d : function (a) { console.error(a); }, h = [ "paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth", ]; "function" == typeof define && define.amd ? define("get-size/get-size", [ "get-style-property/get-style-property", ], f) : "object" == typeof exports ? (module.exports = f(require("desandro-get-style-property"))) : (a.getSize = f(a.getStyleProperty)); })(window), (function (a) { function b(a) { "function" == typeof a && (b.isReady ? a() : g.push(a)); } function c(a) { var c = "readystatechange" === a.type && "complete" !== f.readyState; b.isReady || c || d(); } function d() { b.isReady = !0; for (var a = 0, c = g.length; c > a; a++) { var d = g[a]; d(); } } function e(e) { return ( "complete" === f.readyState ? d() : (e.bind(f, "DOMContentLoaded", c), e.bind(f, "readystatechange", c), e.bind(a, "load", c)), b ); } var f = a.document, g = []; (b.isReady = !1), "function" == typeof define && define.amd ? define("doc-ready/doc-ready", ["eventie/eventie"], e) : "object" == typeof exports ? (module.exports = e(require("eventie"))) : (a.docReady = e(a.eventie)); })(window), (function (a) { "use strict"; function b(a, b) { return a[g](b); } function c(a) { if (!a.parentNode) { var b = document.createDocumentFragment(); b.appendChild(a); } } function d(a, b) { c(a); for ( var d = a.parentNode.querySelectorAll(b), e = 0, f = d.length; f > e; e++ ) if (d[e] === a) return !0; return !1; } function e(a, d) { return c(a), b(a, d); } var f, g = (function () { if (a.matches) return "matches"; if (a.matchesSelector) return "matchesSelector"; for ( var b = ["webkit", "moz", "ms", "o"], c = 0, d = b.length; d > c; c++ ) { var e = b[c], f = e + "MatchesSelector"; if (a[f]) return f; } })(); if (g) { var h = document.createElement("div"), i = b(h, "div"); f = i ? b : e; } else f = d; "function" == typeof define && define.amd ? define("matches-selector/matches-selector", [], function () { return f; }) : "object" == typeof exports ? (module.exports = f) : (window.matchesSelector = f); })(Element.prototype), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", [ "doc-ready/doc-ready", "matches-selector/matches-selector", ], function (c, d) { return b(a, c, d); }) : "object" == typeof exports ? (module.exports = b( a, require("doc-ready"), require("desandro-matches-selector") )) : (a.fizzyUIUtils = b(a, a.docReady, a.matchesSelector)); })(window, function (a, b, c) { var d = {}; (d.extend = function (a, b) { for (var c in b) a[c] = b[c]; return a; }), (d.modulo = function (a, b) { return ((a % b) + b) % b; }); var e = Object.prototype.toString; (d.isArray = function (a) { return "[object Array]" == e.call(a); }), (d.makeArray = function (a) { var b = []; if (d.isArray(a)) b = a; else if (a && "number" == typeof a.length) for (var c = 0, e = a.length; e > c; c++) b.push(a[c]); else b.push(a); return b; }), (d.indexOf = Array.prototype.indexOf ? function (a, b) { return a.indexOf(b); } : function (a, b) { for (var c = 0, d = a.length; d > c; c++) if (a[c] === b) return c; return -1; }), (d.removeFrom = function (a, b) { var c = d.indexOf(a, b); -1 != c && a.splice(c, 1); }), (d.isElement = "function" == typeof HTMLElement || "object" == typeof HTMLElement ? function (a) { return a instanceof HTMLElement; } : function (a) { return ( a && "object" == typeof a && 1 == a.nodeType && "string" == typeof a.nodeName ); }), (d.setText = (function () { function a(a, c) { (b = b || (void 0 !== document.documentElement.textContent ? "textContent" : "innerText")), (a[b] = c); } var b; return a; })()), (d.getParent = function (a, b) { for (; a != document.body; ) if (((a = a.parentNode), c(a, b))) return a; }), (d.getQueryElement = function (a) { return "string" == typeof a ? document.querySelector(a) : a; }), (d.handleEvent = function (a) { var b = "on" + a.type; this[b] && this[b](a); }), (d.filterFindElements = function (a, b) { a = d.makeArray(a); for (var e = [], f = 0, g = a.length; g > f; f++) { var h = a[f]; if (d.isElement(h)) if (b) { c(h, b) && e.push(h); for ( var i = h.querySelectorAll(b), j = 0, k = i.length; k > j; j++ ) e.push(i[j]); } else e.push(h); } return e; }), (d.debounceMethod = function (a, b, c) { var d = a.prototype[b], e = b + "Timeout"; a.prototype[b] = function () { var a = this[e]; a && clearTimeout(a); var b = arguments, f = this; this[e] = setTimeout(function () { d.apply(f, b), delete f[e]; }, c || 100); }; }), (d.toDashed = function (a) { return a .replace(/(.)([A-Z])/g, function (a, b, c) { return b + "-" + c; }) .toLowerCase(); }); var f = a.console; return ( (d.htmlInit = function (c, e) { b(function () { for ( var b = d.toDashed(e), g = document.querySelectorAll(".js-" + b), h = "data-" + b + "-options", i = 0, j = g.length; j > i; i++ ) { var k, l = g[i], m = l.getAttribute(h); try { k = m && JSON.parse(m); } catch (n) { f && f.error( "Error parsing " + h + " on " + l.nodeName.toLowerCase() + (l.id ? "#" + l.id : "") + ": " + n ); continue; } var o = new c(l, k), p = a.jQuery; p && p.data(l, e, o); } }); }), d ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("outlayer/item", [ "eventEmitter/EventEmitter", "get-size/get-size", "get-style-property/get-style-property", "fizzy-ui-utils/utils", ], function (c, d, e, f) { return b(a, c, d, e, f); }) : "object" == typeof exports ? (module.exports = b( a, require("wolfy87-eventemitter"), require("get-size"), require("desandro-get-style-property"), require("fizzy-ui-utils") )) : ((a.Outlayer = {}), (a.Outlayer.Item = b( a, a.EventEmitter, a.getSize, a.getStyleProperty, a.fizzyUIUtils ))); })(window, function (a, b, c, d, e) { "use strict"; function f(a) { for (var b in a) return !1; return (b = null), !0; } function g(a, b) { a && ((this.element = a), (this.layout = b), (this.position = { x: 0, y: 0 }), this._create()); } function h(a) { return a.replace(/([A-Z])/g, function (a) { return "-" + a.toLowerCase(); }); } var i = a.getComputedStyle, j = i ? function (a) { return i(a, null); } : function (a) { return a.currentStyle; }, k = d("transition"), l = d("transform"), m = k && l, n = !!d("perspective"), o = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "otransitionend", transition: "transitionend", }[k], p = [ "transform", "transition", "transitionDuration", "transitionProperty", ], q = (function () { for (var a = {}, b = 0, c = p.length; c > b; b++) { var e = p[b], f = d(e); f && f !== e && (a[e] = f); } return a; })(); e.extend(g.prototype, b.prototype), (g.prototype._create = function () { (this._transn = { ingProperties: {}, clean: {}, onEnd: {} }), this.css({ position: "absolute" }); }), (g.prototype.handleEvent = function (a) { var b = "on" + a.type; this[b] && this[b](a); }), (g.prototype.getSize = function () { this.size = c(this.element); }), (g.prototype.css = function (a) { var b = this.element.style; for (var c in a) { var d = q[c] || c; b[d] = a[c]; } }), (g.prototype.getPosition = function () { var a = j(this.element), b = this.layout.options, c = b.isOriginLeft, d = b.isOriginTop, e = a[c ? "left" : "right"], f = a[d ? "top" : "bottom"], g = this.layout.size, h = -1 != e.indexOf("%") ? (parseFloat(e) / 100) * g.width : parseInt(e, 10), i = -1 != f.indexOf("%") ? (parseFloat(f) / 100) * g.height : parseInt(f, 10); (h = isNaN(h) ? 0 : h), (i = isNaN(i) ? 0 : i), (h -= c ? g.paddingLeft : g.paddingRight), (i -= d ? g.paddingTop : g.paddingBottom), (this.position.x = h), (this.position.y = i); }), (g.prototype.layoutPosition = function () { var a = this.layout.size, b = this.layout.options, c = {}, d = b.isOriginLeft ? "paddingLeft" : "paddingRight", e = b.isOriginLeft ? "left" : "right", f = b.isOriginLeft ? "right" : "left", g = this.position.x + a[d]; (c[e] = this.getXValue(g)), (c[f] = ""); var h = b.isOriginTop ? "paddingTop" : "paddingBottom", i = b.isOriginTop ? "top" : "bottom", j = b.isOriginTop ? "bottom" : "top", k = this.position.y + a[h]; (c[i] = this.getYValue(k)), (c[j] = ""), this.css(c), this.emitEvent("layout", [this]); }), (g.prototype.getXValue = function (a) { var b = this.layout.options; return b.percentPosition && !b.isHorizontal ? (a / this.layout.size.width) * 100 + "%" : a + "px"; }), (g.prototype.getYValue = function (a) { var b = this.layout.options; return b.percentPosition && b.isHorizontal ? (a / this.layout.size.height) * 100 + "%" : a + "px"; }), (g.prototype._transitionTo = function (a, b) { this.getPosition(); var c = this.position.x, d = this.position.y, e = parseInt(a, 10), f = parseInt(b, 10), g = e === this.position.x && f === this.position.y; if ((this.setPosition(a, b), g && !this.isTransitioning)) return void this.layoutPosition(); var h = a - c, i = b - d, j = {}; (j.transform = this.getTranslate(h, i)), this.transition({ to: j, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0, }); }), (g.prototype.getTranslate = function (a, b) { var c = this.layout.options; return ( (a = c.isOriginLeft ? a : -a), (b = c.isOriginTop ? b : -b), n ? "translate3d(" + a + "px, " + b + "px, 0)" : "translate(" + a + "px, " + b + "px)" ); }), (g.prototype.goTo = function (a, b) { this.setPosition(a, b), this.layoutPosition(); }), (g.prototype.moveTo = m ? g.prototype._transitionTo : g.prototype.goTo), (g.prototype.setPosition = function (a, b) { (this.position.x = parseInt(a, 10)), (this.position.y = parseInt(b, 10)); }), (g.prototype._nonTransition = function (a) { this.css(a.to), a.isCleaning && this._removeStyles(a.to); for (var b in a.onTransitionEnd) a.onTransitionEnd[b].call(this); }), (g.prototype._transition = function (a) { if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(a); var b = this._transn; for (var c in a.onTransitionEnd) b.onEnd[c] = a.onTransitionEnd[c]; for (c in a.to) (b.ingProperties[c] = !0), a.isCleaning && (b.clean[c] = !0); if (a.from) { this.css(a.from); var d = this.element.offsetHeight; d = null; } this.enableTransition(a.to), this.css(a.to), (this.isTransitioning = !0); }); var r = "opacity," + h(q.transform || "transform"); (g.prototype.enableTransition = function () { this.isTransitioning || (this.css({ transitionProperty: r, transitionDuration: this.layout.options.transitionDuration, }), this.element.addEventListener(o, this, !1)); }), (g.prototype.transition = g.prototype[k ? "_transition" : "_nonTransition"]), (g.prototype.onwebkitTransitionEnd = function (a) { this.ontransitionend(a); }), (g.prototype.onotransitionend = function (a) { this.ontransitionend(a); }); var s = { "-webkit-transform": "transform", "-moz-transform": "transform", "-o-transform": "transform", }; (g.prototype.ontransitionend = function (a) { if (a.target === this.element) { var b = this._transn, c = s[a.propertyName] || a.propertyName; if ( (delete b.ingProperties[c], f(b.ingProperties) && this.disableTransition(), c in b.clean && ((this.element.style[a.propertyName] = ""), delete b.clean[c]), c in b.onEnd) ) { var d = b.onEnd[c]; d.call(this), delete b.onEnd[c]; } this.emitEvent("transitionEnd", [this]); } }), (g.prototype.disableTransition = function () { this.removeTransitionStyles(), this.element.removeEventListener(o, this, !1), (this.isTransitioning = !1); }), (g.prototype._removeStyles = function (a) { var b = {}; for (var c in a) b[c] = ""; this.css(b); }); var t = { transitionProperty: "", transitionDuration: "" }; return ( (g.prototype.removeTransitionStyles = function () { this.css(t); }), (g.prototype.removeElem = function () { this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]); }), (g.prototype.remove = function () { if (!k || !parseFloat(this.layout.options.transitionDuration)) return void this.removeElem(); var a = this; this.once("transitionEnd", function () { a.removeElem(); }), this.hide(); }), (g.prototype.reveal = function () { delete this.isHidden, this.css({ display: "" }); var a = this.layout.options, b = {}, c = this.getHideRevealTransitionEndProperty("visibleStyle"); (b[c] = this.onRevealTransitionEnd), this.transition({ from: a.hiddenStyle, to: a.visibleStyle, isCleaning: !0, onTransitionEnd: b, }); }), (g.prototype.onRevealTransitionEnd = function () { this.isHidden || this.emitEvent("reveal"); }), (g.prototype.getHideRevealTransitionEndProperty = function (a) { var b = this.layout.options[a]; if (b.opacity) return "opacity"; for (var c in b) return c; }), (g.prototype.hide = function () { (this.isHidden = !0), this.css({ display: "" }); var a = this.layout.options, b = {}, c = this.getHideRevealTransitionEndProperty("hiddenStyle"); (b[c] = this.onHideTransitionEnd), this.transition({ from: a.visibleStyle, to: a.hiddenStyle, isCleaning: !0, onTransitionEnd: b, }); }), (g.prototype.onHideTransitionEnd = function () { this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")); }), (g.prototype.destroy = function () { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "", }); }), g ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("outlayer/outlayer", [ "eventie/eventie", "eventEmitter/EventEmitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item", ], function (c, d, e, f, g) { return b(a, c, d, e, f, g); }) : "object" == typeof exports ? (module.exports = b( a, require("eventie"), require("wolfy87-eventemitter"), require("get-size"), require("fizzy-ui-utils"), require("./item") )) : (a.Outlayer = b( a, a.eventie, a.EventEmitter, a.getSize, a.fizzyUIUtils, a.Outlayer.Item )); })(window, function (a, b, c, d, e, f) { "use strict"; function g(a, b) { var c = e.getQueryElement(a); if (!c) return void ( h && h.error( "Bad element for " + this.constructor.namespace + ": " + (c || a) ) ); (this.element = c), i && (this.$element = i(this.element)), (this.options = e.extend({}, this.constructor.defaults)), this.option(b); var d = ++k; (this.element.outlayerGUID = d), (l[d] = this), this._create(), this.options.isInitLayout && this.layout(); } var h = a.console, i = a.jQuery, j = function () {}, k = 0, l = {}; return ( (g.namespace = "outlayer"), (g.Item = f), (g.defaults = { containerStyle: { position: "relative" }, isInitLayout: !0, isOriginLeft: !0, isOriginTop: !0, isResizeBound: !0, isResizingContainer: !0, transitionDuration: "0.4s", hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, visibleStyle: { opacity: 1, transform: "scale(1)" }, }), e.extend(g.prototype, c.prototype), (g.prototype.option = function (a) { e.extend(this.options, a); }), (g.prototype._create = function () { this.reloadItems(), (this.stamps = []), this.stamp(this.options.stamp), e.extend(this.element.style, this.options.containerStyle), this.options.isResizeBound && this.bindResize(); }), (g.prototype.reloadItems = function () { this.items = this._itemize(this.element.children); }), (g.prototype._itemize = function (a) { for ( var b = this._filterFindItemElements(a), c = this.constructor.Item, d = [], e = 0, f = b.length; f > e; e++ ) { var g = b[e], h = new c(g, this); d.push(h); } return d; }), (g.prototype._filterFindItemElements = function (a) { return e.filterFindElements(a, this.options.itemSelector); }), (g.prototype.getItemElements = function () { for (var a = [], b = 0, c = this.items.length; c > b; b++) a.push(this.items[b].element); return a; }), (g.prototype.layout = function () { this._resetLayout(), this._manageStamps(); var a = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; this.layoutItems(this.items, a), (this._isLayoutInited = !0); }), (g.prototype._init = g.prototype.layout), (g.prototype._resetLayout = function () { this.getSize(); }), (g.prototype.getSize = function () { this.size = d(this.element); }), (g.prototype._getMeasurement = function (a, b) { var c, f = this.options[a]; f ? ("string" == typeof f ? (c = this.element.querySelector(f)) : e.isElement(f) && (c = f), (this[a] = c ? d(c)[b] : f)) : (this[a] = 0); }), (g.prototype.layoutItems = function (a, b) { (a = this._getItemsForLayout(a)), this._layoutItems(a, b), this._postLayout(); }), (g.prototype._getItemsForLayout = function (a) { for (var b = [], c = 0, d = a.length; d > c; c++) { var e = a[c]; e.isIgnored || b.push(e); } return b; }), (g.prototype._layoutItems = function (a, b) { if ((this._emitCompleteOnItems("layout", a), a && a.length)) { for (var c = [], d = 0, e = a.length; e > d; d++) { var f = a[d], g = this._getItemLayoutPosition(f); (g.item = f), (g.isInstant = b || f.isLayoutInstant), c.push(g); } this._processLayoutQueue(c); } }), (g.prototype._getItemLayoutPosition = function () { return { x: 0, y: 0 }; }), (g.prototype._processLayoutQueue = function (a) { for (var b = 0, c = a.length; c > b; b++) { var d = a[b]; this._positionItem(d.item, d.x, d.y, d.isInstant); } }), (g.prototype._positionItem = function (a, b, c, d) { d ? a.goTo(b, c) : a.moveTo(b, c); }), (g.prototype._postLayout = function () { this.resizeContainer(); }), (g.prototype.resizeContainer = function () { if (this.options.isResizingContainer) { var a = this._getContainerSize(); a && (this._setContainerMeasure(a.width, !0), this._setContainerMeasure(a.height, !1)); } }), (g.prototype._getContainerSize = j), (g.prototype._setContainerMeasure = function (a, b) { if (void 0 !== a) { var c = this.size; c.isBorderBox && (a += b ? c.paddingLeft + c.paddingRight + c.borderLeftWidth + c.borderRightWidth : c.paddingBottom + c.paddingTop + c.borderTopWidth + c.borderBottomWidth), (a = Math.max(a, 0)), (this.element.style[b ? "width" : "height"] = a + "px"); } }), (g.prototype._emitCompleteOnItems = function (a, b) { function c() { e.dispatchEvent(a + "Complete", null, [b]); } function d() { g++, g === f && c(); } var e = this, f = b.length; if (!b || !f) return void c(); for (var g = 0, h = 0, i = b.length; i > h; h++) { var j = b[h]; j.once(a, d); } }), (g.prototype.dispatchEvent = function (a, b, c) { var d = b ? [b].concat(c) : c; if ((this.emitEvent(a, d), i)) if (((this.$element = this.$element || i(this.element)), b)) { var e = i.Event(b); (e.type = a), this.$element.trigger(e, c); } else this.$element.trigger(a, c); }), (g.prototype.ignore = function (a) { var b = this.getItem(a); b && (b.isIgnored = !0); }), (g.prototype.unignore = function (a) { var b = this.getItem(a); b && delete b.isIgnored; }), (g.prototype.stamp = function (a) { if ((a = this._find(a))) { this.stamps = this.stamps.concat(a); for (var b = 0, c = a.length; c > b; b++) { var d = a[b]; this.ignore(d); } } }), (g.prototype.unstamp = function (a) { if ((a = this._find(a))) for (var b = 0, c = a.length; c > b; b++) { var d = a[b]; e.removeFrom(this.stamps, d), this.unignore(d); } }), (g.prototype._find = function (a) { return a ? ("string" == typeof a && (a = this.element.querySelectorAll(a)), (a = e.makeArray(a))) : void 0; }), (g.prototype._manageStamps = function () { if (this.stamps && this.stamps.length) { this._getBoundingRect(); for (var a = 0, b = this.stamps.length; b > a; a++) { var c = this.stamps[a]; this._manageStamp(c); } } }), (g.prototype._getBoundingRect = function () { var a = this.element.getBoundingClientRect(), b = this.size; this._boundingRect = { left: a.left + b.paddingLeft + b.borderLeftWidth, top: a.top + b.paddingTop + b.borderTopWidth, right: a.right - (b.paddingRight + b.borderRightWidth), bottom: a.bottom - (b.paddingBottom + b.borderBottomWidth), }; }), (g.prototype._manageStamp = j), (g.prototype._getElementOffset = function (a) { var b = a.getBoundingClientRect(), c = this._boundingRect, e = d(a), f = { left: b.left - c.left - e.marginLeft, top: b.top - c.top - e.marginTop, right: c.right - b.right - e.marginRight, bottom: c.bottom - b.bottom - e.marginBottom, }; return f; }), (g.prototype.handleEvent = function (a) { var b = "on" + a.type; this[b] && this[b](a); }), (g.prototype.bindResize = function () { this.isResizeBound || (b.bind(a, "resize", this), (this.isResizeBound = !0)); }), (g.prototype.unbindResize = function () { this.isResizeBound && b.unbind(a, "resize", this), (this.isResizeBound = !1); }), (g.prototype.onresize = function () { function a() { b.resize(), delete b.resizeTimeout; } this.resizeTimeout && clearTimeout(this.resizeTimeout); var b = this; this.resizeTimeout = setTimeout(a, 100); }), (g.prototype.resize = function () { this.isResizeBound && this.needsResizeLayout() && this.layout(); }), (g.prototype.needsResizeLayout = function () { var a = d(this.element), b = this.size && a; return b && a.innerWidth !== this.size.innerWidth; }), (g.prototype.addItems = function (a) { var b = this._itemize(a); return b.length && (this.items = this.items.concat(b)), b; }), (g.prototype.appended = function (a) { var b = this.addItems(a); b.length && (this.layoutItems(b, !0), this.reveal(b)); }), (g.prototype.prepended = function (a) { var b = this._itemize(a); if (b.length) { var c = this.items.slice(0); (this.items = b.concat(c)), this._resetLayout(), this._manageStamps(), this.layoutItems(b, !0), this.reveal(b), this.layoutItems(c); } }), (g.prototype.reveal = function (a) { this._emitCompleteOnItems("reveal", a); for (var b = a && a.length, c = 0; b && b > c; c++) { var d = a[c]; d.reveal(); } }), (g.prototype.hide = function (a) { this._emitCompleteOnItems("hide", a); for (var b = a && a.length, c = 0; b && b > c; c++) { var d = a[c]; d.hide(); } }), (g.prototype.revealItemElements = function (a) { var b = this.getItems(a); this.reveal(b); }), (g.prototype.hideItemElements = function (a) { var b = this.getItems(a); this.hide(b); }), (g.prototype.getItem = function (a) { for (var b = 0, c = this.items.length; c > b; b++) { var d = this.items[b]; if (d.element === a) return d; } }), (g.prototype.getItems = function (a) { a = e.makeArray(a); for (var b = [], c = 0, d = a.length; d > c; c++) { var f = a[c], g = this.getItem(f); g && b.push(g); } return b; }), (g.prototype.remove = function (a) { var b = this.getItems(a); if ((this._emitCompleteOnItems("remove", b), b && b.length)) for (var c = 0, d = b.length; d > c; c++) { var f = b[c]; f.remove(), e.removeFrom(this.items, f); } }), (g.prototype.destroy = function () { var a = this.element.style; (a.height = ""), (a.position = ""), (a.width = ""); for (var b = 0, c = this.items.length; c > b; b++) { var d = this.items[b]; d.destroy(); } this.unbindResize(); var e = this.element.outlayerGUID; delete l[e], delete this.element.outlayerGUID, i && i.removeData(this.element, this.constructor.namespace); }), (g.data = function (a) { a = e.getQueryElement(a); var b = a && a.outlayerGUID; return b && l[b]; }), (g.create = function (a, b) { function c() { g.apply(this, arguments); } return ( Object.create ? (c.prototype = Object.create(g.prototype)) : e.extend(c.prototype, g.prototype), (c.prototype.constructor = c), (c.defaults = e.extend({}, g.defaults)), e.extend(c.defaults, b), (c.prototype.settings = {}), (c.namespace = a), (c.data = g.data), (c.Item = function () { f.apply(this, arguments); }), (c.Item.prototype = new f()), e.htmlInit(c, a), i && i.bridget && i.bridget(a, c), c ); }), (g.Item = f), g ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("isotope/js/item", ["outlayer/outlayer"], b) : "object" == typeof exports ? (module.exports = b(require("outlayer"))) : ((a.Isotope = a.Isotope || {}), (a.Isotope.Item = b(a.Outlayer))); })(window, function (a) { "use strict"; function b() { a.Item.apply(this, arguments); } (b.prototype = new a.Item()), (b.prototype._create = function () { (this.id = this.layout.itemGUID++), a.Item.prototype._create.call(this), (this.sortData = {}); }), (b.prototype.updateSortData = function () { if (!this.isIgnored) { (this.sortData.id = this.id), (this.sortData["original-order"] = this.id), (this.sortData.random = Math.random()); var a = this.layout.options.getSortData, b = this.layout._sorters; for (var c in a) { var d = b[c]; this.sortData[c] = d(this.element, this); } } }); var c = b.prototype.destroy; return ( (b.prototype.destroy = function () { c.apply(this, arguments), this.css({ display: "" }); }), b ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("isotope/js/layout-mode", [ "get-size/get-size", "outlayer/outlayer", ], b) : "object" == typeof exports ? (module.exports = b(require("get-size"), require("outlayer"))) : ((a.Isotope = a.Isotope || {}), (a.Isotope.LayoutMode = b(a.getSize, a.Outlayer))); })(window, function (a, b) { "use strict"; function c(a) { (this.isotope = a), a && ((this.options = a.options[this.namespace]), (this.element = a.element), (this.items = a.filteredItems), (this.size = a.size)); } return ( (function () { function a(a) { return function () { return b.prototype[a].apply(this.isotope, arguments); }; } for ( var d = [ "_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", ], e = 0, f = d.length; f > e; e++ ) { var g = d[e]; c.prototype[g] = a(g); } })(), (c.prototype.needsVerticalResizeLayout = function () { var b = a(this.isotope.element), c = this.isotope.size && b; return c && b.innerHeight != this.isotope.size.innerHeight; }), (c.prototype._getMeasurement = function () { this.isotope._getMeasurement.apply(this, arguments); }), (c.prototype.getColumnWidth = function () { this.getSegmentSize("column", "Width"); }), (c.prototype.getRowHeight = function () { this.getSegmentSize("row", "Height"); }), (c.prototype.getSegmentSize = function (a, b) { var c = a + b, d = "outer" + b; if ((this._getMeasurement(c, d), !this[c])) { var e = this.getFirstItemSize(); this[c] = (e && e[d]) || this.isotope.size["inner" + b]; } }), (c.prototype.getFirstItemSize = function () { var b = this.isotope.filteredItems[0]; return b && b.element && a(b.element); }), (c.prototype.layout = function () { this.isotope.layout.apply(this.isotope, arguments); }), (c.prototype.getSize = function () { this.isotope.getSize(), (this.size = this.isotope.size); }), (c.modes = {}), (c.create = function (a, b) { function d() { c.apply(this, arguments); } return ( (d.prototype = new c()), b && (d.options = b), (d.prototype.namespace = a), (c.modes[a] = d), d ); }), c ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("masonry/masonry", [ "outlayer/outlayer", "get-size/get-size", "fizzy-ui-utils/utils", ], b) : "object" == typeof exports ? (module.exports = b( require("outlayer"), require("get-size"), require("fizzy-ui-utils") )) : (a.Masonry = b(a.Outlayer, a.getSize, a.fizzyUIUtils)); })(window, function (a, b, c) { var d = a.create("masonry"); return ( (d.prototype._resetLayout = function () { this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(); var a = this.cols; for (this.colYs = []; a--; ) this.colYs.push(0); this.maxY = 0; }), (d.prototype.measureColumns = function () { if ((this.getContainerWidth(), !this.columnWidth)) { var a = this.items[0], c = a && a.element; this.columnWidth = (c && b(c).outerWidth) || this.containerWidth; } var d = (this.columnWidth += this.gutter), e = this.containerWidth + this.gutter, f = e / d, g = d - (e % d), h = g && 1 > g ? "round" : "floor"; (f = Math[h](f)), (this.cols = Math.max(f, 1)); }), (d.prototype.getContainerWidth = function () { var a = this.options.isFitWidth ? this.element.parentNode : this.element, c = b(a); this.containerWidth = c && c.innerWidth; }), (d.prototype._getItemLayoutPosition = function (a) { a.getSize(); var b = a.size.outerWidth % this.columnWidth, d = b && 1 > b ? "round" : "ceil", e = Math[d](a.size.outerWidth / this.columnWidth); e = Math.min(e, this.cols); for ( var f = this._getColGroup(e), g = Math.min.apply(Math, f), h = c.indexOf(f, g), i = { x: this.columnWidth * h, y: g }, j = g + a.size.outerHeight, k = this.cols + 1 - f.length, l = 0; k > l; l++ ) this.colYs[h + l] = j; return i; }), (d.prototype._getColGroup = function (a) { if (2 > a) return this.colYs; for (var b = [], c = this.cols + 1 - a, d = 0; c > d; d++) { var e = this.colYs.slice(d, d + a); b[d] = Math.max.apply(Math, e); } return b; }), (d.prototype._manageStamp = function (a) { var c = b(a), d = this._getElementOffset(a), e = this.options.isOriginLeft ? d.left : d.right, f = e + c.outerWidth, g = Math.floor(e / this.columnWidth); g = Math.max(0, g); var h = Math.floor(f / this.columnWidth); (h -= f % this.columnWidth ? 0 : 1), (h = Math.min(this.cols - 1, h)); for ( var i = (this.options.isOriginTop ? d.top : d.bottom) + c.outerHeight, j = g; h >= j; j++ ) this.colYs[j] = Math.max(i, this.colYs[j]); }), (d.prototype._getContainerSize = function () { this.maxY = Math.max.apply(Math, this.colYs); var a = { height: this.maxY }; return ( this.options.isFitWidth && (a.width = this._getContainerFitWidth()), a ); }), (d.prototype._getContainerFitWidth = function () { for (var a = 0, b = this.cols; --b && 0 === this.colYs[b]; ) a++; return (this.cols - a) * this.columnWidth - this.gutter; }), (d.prototype.needsResizeLayout = function () { var a = this.containerWidth; return this.getContainerWidth(), a !== this.containerWidth; }), d ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("isotope/js/layout-modes/masonry", [ "../layout-mode", "masonry/masonry", ], b) : "object" == typeof exports ? (module.exports = b( require("../layout-mode"), require("masonry-layout") )) : b(a.Isotope.LayoutMode, a.Masonry); })(window, function (a, b) { "use strict"; function c(a, b) { for (var c in b) a[c] = b[c]; return a; } var d = a.create("masonry"), e = d.prototype._getElementOffset, f = d.prototype.layout, g = d.prototype._getMeasurement; c(d.prototype, b.prototype), (d.prototype._getElementOffset = e), (d.prototype.layout = f), (d.prototype._getMeasurement = g); var h = d.prototype.measureColumns; d.prototype.measureColumns = function () { (this.items = this.isotope.filteredItems), h.call(this); }; var i = d.prototype._manageStamp; return ( (d.prototype._manageStamp = function () { (this.options.isOriginLeft = this.isotope.options.isOriginLeft), (this.options.isOriginTop = this.isotope.options.isOriginTop), i.apply(this, arguments); }), d ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("isotope/js/layout-modes/fit-rows", ["../layout-mode"], b) : "object" == typeof exports ? (module.exports = b(require("../layout-mode"))) : b(a.Isotope.LayoutMode); })(window, function (a) { "use strict"; var b = a.create("fitRows"); return ( (b.prototype._resetLayout = function () { (this.x = 0), (this.y = 0), (this.maxY = 0), this._getMeasurement("gutter", "outerWidth"); }), (b.prototype._getItemLayoutPosition = function (a) { a.getSize(); var b = a.size.outerWidth + this.gutter, c = this.isotope.size.innerWidth + this.gutter; 0 !== this.x && b + this.x > c && ((this.x = 0), (this.y = this.maxY)); var d = { x: this.x, y: this.y }; return ( (this.maxY = Math.max(this.maxY, this.y + a.size.outerHeight)), (this.x += b), d ); }), (b.prototype._getContainerSize = function () { return { height: this.maxY }; }), b ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define("isotope/js/layout-modes/vertical", ["../layout-mode"], b) : "object" == typeof exports ? (module.exports = b(require("../layout-mode"))) : b(a.Isotope.LayoutMode); })(window, function (a) { "use strict"; var b = a.create("vertical", { horizontalAlignment: 0 }); return ( (b.prototype._resetLayout = function () { this.y = 0; }), (b.prototype._getItemLayoutPosition = function (a) { a.getSize(); var b = (this.isotope.size.innerWidth - a.size.outerWidth) * this.options.horizontalAlignment, c = this.y; return (this.y += a.size.outerHeight), { x: b, y: c }; }), (b.prototype._getContainerSize = function () { return { height: this.y }; }), b ); }), (function (a, b) { "use strict"; "function" == typeof define && define.amd ? define([ "outlayer/outlayer", "get-size/get-size", "matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope/js/item", "isotope/js/layout-mode", "isotope/js/layout-modes/masonry", "isotope/js/layout-modes/fit-rows", "isotope/js/layout-modes/vertical", ], function (c, d, e, f, g, h) { return b(a, c, d, e, f, g, h); }) : "object" == typeof exports ? (module.exports = b( a, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("./item"), require("./layout-mode"), require("./layout-modes/masonry"), require("./layout-modes/fit-rows"), require("./layout-modes/vertical") )) : (a.Isotope = b( a, a.Outlayer, a.getSize, a.matchesSelector, a.fizzyUIUtils, a.Isotope.Item, a.Isotope.LayoutMode )); })(window, function (a, b, c, d, e, f, g) { function h(a, b) { return function (c, d) { for (var e = 0, f = a.length; f > e; e++) { var g = a[e], h = c.sortData[g], i = d.sortData[g]; if (h > i || i > h) { var j = void 0 !== b[g] ? b[g] : b, k = j ? 1 : -1; return (h > i ? 1 : -1) * k; } } return 0; }; } var i = a.jQuery, j = String.prototype.trim ? function (a) { return a.trim(); } : function (a) { return a.replace(/^\s+|\s+$/g, ""); }, k = document.documentElement, l = k.textContent ? function (a) { return a.textContent; } : function (a) { return a.innerText; }, m = b.create("isotope", { layoutMode: "masonry", isJQueryFiltering: !0, sortAscending: !0, }); (m.Item = f), (m.LayoutMode = g), (m.prototype._create = function () { (this.itemGUID = 0), (this._sorters = {}), this._getSorters(), b.prototype._create.call(this), (this.modes = {}), (this.filteredItems = this.items), (this.sortHistory = ["original-order"]); for (var a in g.modes) this._initLayoutMode(a); }), (m.prototype.reloadItems = function () { (this.itemGUID = 0), b.prototype.reloadItems.call(this); }), (m.prototype._itemize = function () { for ( var a = b.prototype._itemize.apply(this, arguments), c = 0, d = a.length; d > c; c++ ) { var e = a[c]; e.id = this.itemGUID++; } return this._updateItemsSortData(a), a; }), (m.prototype._initLayoutMode = function (a) { var b = g.modes[a], c = this.options[a] || {}; (this.options[a] = b.options ? e.extend(b.options, c) : c), (this.modes[a] = new b(this)); }), (m.prototype.layout = function () { return !this._isLayoutInited && this.options.isInitLayout ? void this.arrange() : void this._layout(); }), (m.prototype._layout = function () { var a = this._getIsInstant(); this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, a), (this._isLayoutInited = !0); }), (m.prototype.arrange = function (a) { function b() { d.reveal(c.needReveal), d.hide(c.needHide); } this.option(a), this._getIsInstant(); var c = this._filter(this.items); this.filteredItems = c.matches; var d = this; this._bindArrangeComplete(), this._isInstant ? this._noTransition(b) : b(), this._sort(), this._layout(); }), (m.prototype._init = m.prototype.arrange), (m.prototype._getIsInstant = function () { var a = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; return (this._isInstant = a), a; }), (m.prototype._bindArrangeComplete = function () { function a() { b && c && d && e.dispatchEvent("arrangeComplete", null, [e.filteredItems]); } var b, c, d, e = this; this.once("layoutComplete", function () { (b = !0), a(); }), this.once("hideComplete", function () { (c = !0), a(); }), this.once("revealComplete", function () { (d = !0), a(); }); }), (m.prototype._filter = function (a) { var b = this.options.filter; b = b || "*"; for ( var c = [], d = [], e = [], f = this._getFilterTest(b), g = 0, h = a.length; h > g; g++ ) { var i = a[g]; if (!i.isIgnored) { var j = f(i); j && c.push(i), j && i.isHidden ? d.push(i) : j || i.isHidden || e.push(i); } } return { matches: c, needReveal: d, needHide: e }; }), (m.prototype._getFilterTest = function (a) { return i && this.options.isJQueryFiltering ? function (b) { return i(b.element).is(a); } : "function" == typeof a ? function (b) { return a(b.element); } : function (b) { return d(b.element, a); }; }), (m.prototype.updateSortData = function (a) { var b; a ? ((a = e.makeArray(a)), (b = this.getItems(a))) : (b = this.items), this._getSorters(), this._updateItemsSortData(b); }), (m.prototype._getSorters = function () { var a = this.options.getSortData; for (var b in a) { var c = a[b]; this._sorters[b] = n(c); } }), (m.prototype._updateItemsSortData = function (a) { for (var b = a && a.length, c = 0; b && b > c; c++) { var d = a[c]; d.updateSortData(); } }); var n = (function () { function a(a) { if ("string" != typeof a) return a; var c = j(a).split(" "), d = c[0], e = d.match(/^\[(.+)\]$/), f = e && e[1], g = b(f, d), h = m.sortDataParsers[c[1]]; return (a = h ? function (a) { return a && h(g(a)); } : function (a) { return a && g(a); }); } function b(a, b) { var c; return (c = a ? function (b) { return b.getAttribute(a); } : function (a) { var c = a.querySelector(b); return c && l(c); }); } return a; })(); (m.sortDataParsers = { parseInt: function (a) { return parseInt(a, 10); }, parseFloat: function (a) { return parseFloat(a); }, }), (m.prototype._sort = function () { var a = this.options.sortBy; if (a) { var b = [].concat.apply(a, this.sortHistory), c = h(b, this.options.sortAscending); this.filteredItems.sort(c), a != this.sortHistory[0] && this.sortHistory.unshift(a); } }), (m.prototype._mode = function () { var a = this.options.layoutMode, b = this.modes[a]; if (!b) throw new Error("No layout mode: " + a); return (b.options = this.options[a]), b; }), (m.prototype._resetLayout = function () { b.prototype._resetLayout.call(this), this._mode()._resetLayout(); }), (m.prototype._getItemLayoutPosition = function (a) { return this._mode()._getItemLayoutPosition(a); }), (m.prototype._manageStamp = function (a) { this._mode()._manageStamp(a); }), (m.prototype._getContainerSize = function () { return this._mode()._getContainerSize(); }), (m.prototype.needsResizeLayout = function () { return this._mode().needsResizeLayout(); }), (m.prototype.appended = function (a) { var b = this.addItems(a); if (b.length) { var c = this._filterRevealAdded(b); this.filteredItems = this.filteredItems.concat(c); } }), (m.prototype.prepended = function (a) { var b = this._itemize(a); if (b.length) { this._resetLayout(), this._manageStamps(); var c = this._filterRevealAdded(b); this.layoutItems(this.filteredItems), (this.filteredItems = c.concat(this.filteredItems)), (this.items = b.concat(this.items)); } }), (m.prototype._filterRevealAdded = function (a) { var b = this._filter(a); return ( this.hide(b.needHide), this.reveal(b.matches), this.layoutItems(b.matches, !0), b.matches ); }), (m.prototype.insert = function (a) { var b = this.addItems(a); if (b.length) { var c, d, e = b.length; for (c = 0; e > c; c++) (d = b[c]), this.element.appendChild(d.element); var f = this._filter(b).matches; for (c = 0; e > c; c++) b[c].isLayoutInstant = !0; for (this.arrange(), c = 0; e > c; c++) delete b[c].isLayoutInstant; this.reveal(f); } }); var o = m.prototype.remove; return ( (m.prototype.remove = function (a) { a = e.makeArray(a); var b = this.getItems(a); o.call(this, a); var c = b && b.length; if (c) for (var d = 0; c > d; d++) { var f = b[d]; e.removeFrom(this.filteredItems, f); } }), (m.prototype.shuffle = function () { for (var a = 0, b = this.items.length; b > a; a++) { var c = this.items[a]; c.sortData.random = Math.random(); } (this.options.sortBy = "random"), this._sort(), this._layout(); }), (m.prototype._noTransition = function (a) { var b = this.options.transitionDuration; this.options.transitionDuration = 0; var c = a.call(this); return (this.options.transitionDuration = b), c; }), (m.prototype.getFilteredItemElements = function () { for (var a = [], b = 0, c = this.filteredItems.length; c > b; b++) a.push(this.filteredItems[b].element); return a; }), m ); }); /*! * imagesLoaded PACKAGED v3.1.8 * JavaScript is all like "You images are done yet or what?" * MIT License */ (function () { function e() {} function t(e, t) { for (var n = e.length; n--; ) if (e[n].listener === t) return n; return -1; } function n(e) { return function () { return this[e].apply(this, arguments); }; } var i = e.prototype, r = this, o = r.EventEmitter; (i.getListeners = function (e) { var t, n, i = this._getEvents(); if ("object" == typeof e) { t = {}; for (n in i) i.hasOwnProperty(n) && e.test(n) && (t[n] = i[n]); } else t = i[e] || (i[e] = []); return t; }), (i.flattenListeners = function (e) { var t, n = []; for (t = 0; e.length > t; t += 1) n.push(e[t].listener); return n; }), (i.getListenersAsObject = function (e) { var t, n = this.getListeners(e); return n instanceof Array && ((t = {}), (t[e] = n)), t || n; }), (i.addListener = function (e, n) { var i, r = this.getListenersAsObject(e), o = "object" == typeof n; for (i in r) r.hasOwnProperty(i) && -1 === t(r[i], n) && r[i].push(o ? n : { listener: n, once: !1 }); return this; }), (i.on = n("addListener")), (i.addOnceListener = function (e, t) { return this.addListener(e, { listener: t, once: !0 }); }), (i.once = n("addOnceListener")), (i.defineEvent = function (e) { return this.getListeners(e), this; }), (i.defineEvents = function (e) { for (var t = 0; e.length > t; t += 1) this.defineEvent(e[t]); return this; }), (i.removeListener = function (e, n) { var i, r, o = this.getListenersAsObject(e); for (r in o) o.hasOwnProperty(r) && ((i = t(o[r], n)), -1 !== i && o[r].splice(i, 1)); return this; }), (i.off = n("removeListener")), (i.addListeners = function (e, t) { return this.manipulateListeners(!1, e, t); }), (i.removeListeners = function (e, t) { return this.manipulateListeners(!0, e, t); }), (i.manipulateListeners = function (e, t, n) { var i, r, o = e ? this.removeListener : this.addListener, s = e ? this.removeListeners : this.addListeners; if ("object" != typeof t || t instanceof RegExp) for (i = n.length; i--; ) o.call(this, t, n[i]); else for (i in t) t.hasOwnProperty(i) && (r = t[i]) && ("function" == typeof r ? o.call(this, i, r) : s.call(this, i, r)); return this; }), (i.removeEvent = function (e) { var t, n = typeof e, i = this._getEvents(); if ("string" === n) delete i[e]; else if ("object" === n) for (t in i) i.hasOwnProperty(t) && e.test(t) && delete i[t]; else delete this._events; return this; }), (i.removeAllListeners = n("removeEvent")), (i.emitEvent = function (e, t) { var n, i, r, o, s = this.getListenersAsObject(e); for (r in s) if (s.hasOwnProperty(r)) for (i = s[r].length; i--; ) (n = s[r][i]), n.once === !0 && this.removeListener(e, n.listener), (o = n.listener.apply(this, t || [])), o === this._getOnceReturnValue() && this.removeListener(e, n.listener); return this; }), (i.trigger = n("emitEvent")), (i.emit = function (e) { var t = Array.prototype.slice.call(arguments, 1); return this.emitEvent(e, t); }), (i.setOnceReturnValue = function (e) { return (this._onceReturnValue = e), this; }), (i._getOnceReturnValue = function () { return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0; }), (i._getEvents = function () { return this._events || (this._events = {}); }), (e.noConflict = function () { return (r.EventEmitter = o), e; }), "function" == typeof define && define.amd ? define("eventEmitter/EventEmitter", [], function () { return e; }) : "object" == typeof module && module.exports ? (module.exports = e) : (this.EventEmitter = e); }.call(this), (function (e) { function t(t) { var n = e.event; return (n.target = n.target || n.srcElement || t), n; } var n = document.documentElement, i = function () {}; n.addEventListener ? (i = function (e, t, n) { e.addEventListener(t, n, !1); }) : n.attachEvent && (i = function (e, n, i) { (e[n + i] = i.handleEvent ? function () { var n = t(e); i.handleEvent.call(i, n); } : function () { var n = t(e); i.call(e, n); }), e.attachEvent("on" + n, e[n + i]); }); var r = function () {}; n.removeEventListener ? (r = function (e, t, n) { e.removeEventListener(t, n, !1); }) : n.detachEvent && (r = function (e, t, n) { e.detachEvent("on" + t, e[t + n]); try { delete e[t + n]; } catch (i) { e[t + n] = void 0; } }); var o = { bind: i, unbind: r }; "function" == typeof define && define.amd ? define("eventie/eventie", o) : (e.eventie = o); })(this), (function (e, t) { "function" == typeof define && define.amd ? define(["eventEmitter/EventEmitter", "eventie/eventie"], function ( n, i ) { return t(e, n, i); }) : "object" == typeof exports ? (module.exports = t( e, require("wolfy87-eventemitter"), require("eventie") )) : (e.imagesLoaded = t(e, e.EventEmitter, e.eventie)); })(window, function (e, t, n) { function i(e, t) { for (var n in t) e[n] = t[n]; return e; } function r(e) { return "[object Array]" === d.call(e); } function o(e) { var t = []; if (r(e)) t = e; else if ("number" == typeof e.length) for (var n = 0, i = e.length; i > n; n++) t.push(e[n]); else t.push(e); return t; } function s(e, t, n) { if (!(this instanceof s)) return new s(e, t); "string" == typeof e && (e = document.querySelectorAll(e)), (this.elements = o(e)), (this.options = i({}, this.options)), "function" == typeof t ? (n = t) : i(this.options, t), n && this.on("always", n), this.getImages(), a && (this.jqDeferred = new a.Deferred()); var r = this; setTimeout(function () { r.check(); }); } function f(e) { this.img = e; } function c(e) { (this.src = e), (v[e] = this); } var a = e.jQuery, u = e.console, h = u !== void 0, d = Object.prototype.toString; (s.prototype = new t()), (s.prototype.options = {}), (s.prototype.getImages = function () { this.images = []; for (var e = 0, t = this.elements.length; t > e; e++) { var n = this.elements[e]; "IMG" === n.nodeName && this.addImage(n); var i = n.nodeType; if (i && (1 === i || 9 === i || 11 === i)) for ( var r = n.querySelectorAll("img"), o = 0, s = r.length; s > o; o++ ) { var f = r[o]; this.addImage(f); } } }), (s.prototype.addImage = function (e) { var t = new f(e); this.images.push(t); }), (s.prototype.check = function () { function e(e, r) { return ( t.options.debug && h && u.log("confirm", e, r), t.progress(e), n++, n === i && t.complete(), !0 ); } var t = this, n = 0, i = this.images.length; if (((this.hasAnyBroken = !1), !i)) return this.complete(), void 0; for (var r = 0; i > r; r++) { var o = this.images[r]; o.on("confirm", e), o.check(); } }), (s.prototype.progress = function (e) { this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded; var t = this; setTimeout(function () { t.emit("progress", t, e), t.jqDeferred && t.jqDeferred.notify && t.jqDeferred.notify(t, e); }); }), (s.prototype.complete = function () { var e = this.hasAnyBroken ? "fail" : "done"; this.isComplete = !0; var t = this; setTimeout(function () { if ((t.emit(e, t), t.emit("always", t), t.jqDeferred)) { var n = t.hasAnyBroken ? "reject" : "resolve"; t.jqDeferred[n](t); } }); }), a && (a.fn.imagesLoaded = function (e, t) { var n = new s(this, e, t); return n.jqDeferred.promise(a(this)); }), (f.prototype = new t()), (f.prototype.check = function () { var e = v[this.img.src] || new c(this.img.src); if (e.isConfirmed) return this.confirm(e.isLoaded, "cached was confirmed"), void 0; if (this.img.complete && void 0 !== this.img.naturalWidth) return ( this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), void 0 ); var t = this; e.on("confirm", function (e, n) { return t.confirm(e.isLoaded, n), !0; }), e.check(); }), (f.prototype.confirm = function (e, t) { (this.isLoaded = e), this.emit("confirm", this, t); }); var v = {}; return ( (c.prototype = new t()), (c.prototype.check = function () { if (!this.isChecked) { var e = new Image(); n.bind(e, "load", this), n.bind(e, "error", this), (e.src = this.src), (this.isChecked = !0); } }), (c.prototype.handleEvent = function (e) { var t = "on" + e.type; this[t] && this[t](e); }), (c.prototype.onload = function (e) { this.confirm(!0, "onload"), this.unbindProxyEvents(e); }), (c.prototype.onerror = function (e) { this.confirm(!1, "onerror"), this.unbindProxyEvents(e); }), (c.prototype.confirm = function (e, t) { (this.isConfirmed = !0), (this.isLoaded = e), this.emit("confirm", this, t); }), (c.prototype.unbindProxyEvents = function (e) { n.unbind(e.target, "load", this), n.unbind(e.target, "error", this); }), s ); })); /*! Waypoints - 4.0.0 Copyright © 2011-2015 Caleb Troughton Licensed under the MIT license. https://github.com/imakewebthings/waypoints/blog/master/licenses.txt */ (function () { "use strict"; var keyCounter = 0; var allWaypoints = {}; /* http://imakewebthings.com/waypoints/api/waypoint */ function Waypoint(options) { if (!options) { throw new Error("No options passed to Waypoint constructor"); } if (!options.element) { throw new Error("No element option passed to Waypoint constructor"); } if (!options.handler) { throw new Error("No handler option passed to Waypoint constructor"); } this.key = "waypoint-" + keyCounter; this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options); this.element = this.options.element; this.adapter = new Waypoint.Adapter(this.element); this.callback = options.handler; this.axis = this.options.horizontal ? "horizontal" : "vertical"; this.enabled = this.options.enabled; this.triggerPoint = null; this.group = Waypoint.Group.findOrCreate({ name: this.options.group, axis: this.axis, }); this.context = Waypoint.Context.findOrCreateByElement(this.options.context); if (Waypoint.offsetAliases[this.options.offset]) { this.options.offset = Waypoint.offsetAliases[this.options.offset]; } this.group.add(this); this.context.add(this); allWaypoints[this.key] = this; keyCounter += 1; } /* Private */ Waypoint.prototype.queueTrigger = function (direction) { this.group.queueTrigger(this, direction); }; /* Private */ Waypoint.prototype.trigger = function (args) { if (!this.enabled) { return; } if (this.callback) { this.callback.apply(this, args); } }; /* Public */ /* http://imakewebthings.com/waypoints/api/destroy */ Waypoint.prototype.destroy = function () { this.context.remove(this); this.group.remove(this); delete allWaypoints[this.key]; }; /* Public */ /* http://imakewebthings.com/waypoints/api/disable */ Waypoint.prototype.disable = function () { this.enabled = false; return this; }; /* Public */ /* http://imakewebthings.com/waypoints/api/enable */ Waypoint.prototype.enable = function () { this.context.refresh(); this.enabled = true; return this; }; /* Public */ /* http://imakewebthings.com/waypoints/api/next */ Waypoint.prototype.next = function () { return this.group.next(this); }; /* Public */ /* http://imakewebthings.com/waypoints/api/previous */ Waypoint.prototype.previous = function () { return this.group.previous(this); }; /* Private */ Waypoint.invokeAll = function (method) { var allWaypointsArray = []; for (var waypointKey in allWaypoints) { allWaypointsArray.push(allWaypoints[waypointKey]); } for (var i = 0, end = allWaypointsArray.length; i < end; i++) { allWaypointsArray[i][method](); } }; /* Public */ /* http://imakewebthings.com/waypoints/api/destroy-all */ Waypoint.destroyAll = function () { Waypoint.invokeAll("destroy"); }; /* Public */ /* http://imakewebthings.com/waypoints/api/disable-all */ Waypoint.disableAll = function () { Waypoint.invokeAll("disable"); }; /* Public */ /* http://imakewebthings.com/waypoints/api/enable-all */ Waypoint.enableAll = function () { Waypoint.invokeAll("enable"); }; /* Public */ /* http://imakewebthings.com/waypoints/api/refresh-all */ Waypoint.refreshAll = function () { Waypoint.Context.refreshAll(); }; /* Public */ /* http://imakewebthings.com/waypoints/api/viewport-height */ Waypoint.viewportHeight = function () { return window.innerHeight || document.documentElement.clientHeight; }; /* Public */ /* http://imakewebthings.com/waypoints/api/viewport-width */ Waypoint.viewportWidth = function () { return document.documentElement.clientWidth; }; Waypoint.adapters = []; Waypoint.defaults = { context: window, continuous: true, enabled: true, group: "default", horizontal: false, offset: 0, }; Waypoint.offsetAliases = { "bottom-in-view": function () { return this.context.innerHeight() - this.adapter.outerHeight(); }, "right-in-view": function () { return this.context.innerWidth() - this.adapter.outerWidth(); }, }; window.Waypoint = Waypoint; })(); (function () { "use strict"; function requestAnimationFrameShim(callback) { window.setTimeout(callback, 1000 / 60); } var keyCounter = 0; var contexts = {}; var Waypoint = window.Waypoint; var oldWindowLoad = window.onload; /* http://imakewebthings.com/waypoints/api/context */ function Context(element) { this.element = element; this.Adapter = Waypoint.Adapter; this.adapter = new this.Adapter(element); this.key = "waypoint-context-" + keyCounter; this.didScroll = false; this.didResize = false; this.oldScroll = { x: this.adapter.scrollLeft(), y: this.adapter.scrollTop(), }; this.waypoints = { vertical: {}, horizontal: {}, }; element.waypointContextKey = this.key; contexts[element.waypointContextKey] = this; keyCounter += 1; this.createThrottledScrollHandler(); this.createThrottledResizeHandler(); } /* Private */ Context.prototype.add = function (waypoint) { var axis = waypoint.options.horizontal ? "horizontal" : "vertical"; this.waypoints[axis][waypoint.key] = waypoint; this.refresh(); }; /* Private */ Context.prototype.checkEmpty = function () { var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal); var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical); if (horizontalEmpty && verticalEmpty) { this.adapter.off(".waypoints"); delete contexts[this.key]; } }; /* Private */ Context.prototype.createThrottledResizeHandler = function () { var self = this; function resizeHandler() { self.handleResize(); self.didResize = false; } this.adapter.on("resize.waypoints", function () { if (!self.didResize) { self.didResize = true; Waypoint.requestAnimationFrame(resizeHandler); } }); }; /* Private */ Context.prototype.createThrottledScrollHandler = function () { var self = this; function scrollHandler() { self.handleScroll(); self.didScroll = false; } this.adapter.on("scroll.waypoints", function () { if (!self.didScroll || Waypoint.isTouch) { self.didScroll = true; Waypoint.requestAnimationFrame(scrollHandler); } }); }; /* Private */ Context.prototype.handleResize = function () { Waypoint.Context.refreshAll(); }; /* Private */ Context.prototype.handleScroll = function () { var triggeredGroups = {}; var axes = { horizontal: { newScroll: this.adapter.scrollLeft(), oldScroll: this.oldScroll.x, forward: "right", backward: "left", }, vertical: { newScroll: this.adapter.scrollTop(), oldScroll: this.oldScroll.y, forward: "down", backward: "up", }, }; for (var axisKey in axes) { var axis = axes[axisKey]; var isForward = axis.newScroll > axis.oldScroll; var direction = isForward ? axis.forward : axis.backward; for (var waypointKey in this.waypoints[axisKey]) { var waypoint = this.waypoints[axisKey][waypointKey]; var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint; var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint; var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint; var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint; if (crossedForward || crossedBackward) { waypoint.queueTrigger(direction); triggeredGroups[waypoint.group.id] = waypoint.group; } } } for (var groupKey in triggeredGroups) { triggeredGroups[groupKey].flushTriggers(); } this.oldScroll = { x: axes.horizontal.newScroll, y: axes.vertical.newScroll, }; }; /* Private */ Context.prototype.innerHeight = function () { /*eslint-disable eqeqeq */ if (this.element == this.element.window) { return Waypoint.viewportHeight(); } /*eslint-enable eqeqeq */ return this.adapter.innerHeight(); }; /* Private */ Context.prototype.remove = function (waypoint) { delete this.waypoints[waypoint.axis][waypoint.key]; this.checkEmpty(); }; /* Private */ Context.prototype.innerWidth = function () { /*eslint-disable eqeqeq */ if (this.element == this.element.window) { return Waypoint.viewportWidth(); } /*eslint-enable eqeqeq */ return this.adapter.innerWidth(); }; /* Public */ /* http://imakewebthings.com/waypoints/api/context-destroy */ Context.prototype.destroy = function () { var allWaypoints = []; for (var axis in this.waypoints) { for (var waypointKey in this.waypoints[axis]) { allWaypoints.push(this.waypoints[axis][waypointKey]); } } for (var i = 0, end = allWaypoints.length; i < end; i++) { allWaypoints[i].destroy(); } }; /* Public */ /* http://imakewebthings.com/waypoints/api/context-refresh */ Context.prototype.refresh = function () { /*eslint-disable eqeqeq */ var isWindow = this.element == this.element.window; /*eslint-enable eqeqeq */ var contextOffset = isWindow ? undefined : this.adapter.offset(); var triggeredGroups = {}; var axes; this.handleScroll(); axes = { horizontal: { contextOffset: isWindow ? 0 : contextOffset.left, contextScroll: isWindow ? 0 : this.oldScroll.x, contextDimension: this.innerWidth(), oldScroll: this.oldScroll.x, forward: "right", backward: "left", offsetProp: "left", }, vertical: { contextOffset: isWindow ? 0 : contextOffset.top, contextScroll: isWindow ? 0 : this.oldScroll.y, contextDimension: this.innerHeight(), oldScroll: this.oldScroll.y, forward: "down", backward: "up", offsetProp: "top", }, }; for (var axisKey in axes) { var axis = axes[axisKey]; for (var waypointKey in this.waypoints[axisKey]) { var waypoint = this.waypoints[axisKey][waypointKey]; var adjustment = waypoint.options.offset; var oldTriggerPoint = waypoint.triggerPoint; var elementOffset = 0; var freshWaypoint = oldTriggerPoint == null; var contextModifier, wasBeforeScroll, nowAfterScroll; var triggeredBackward, triggeredForward; if (waypoint.element !== waypoint.element.window) { elementOffset = waypoint.adapter.offset()[axis.offsetProp]; } if (typeof adjustment === "function") { adjustment = adjustment.apply(waypoint); } else if (typeof adjustment === "string") { adjustment = parseFloat(adjustment); if (waypoint.options.offset.indexOf("%") > -1) { adjustment = Math.ceil((axis.contextDimension * adjustment) / 100); } } contextModifier = axis.contextScroll - axis.contextOffset; waypoint.triggerPoint = elementOffset + contextModifier - adjustment; wasBeforeScroll = oldTriggerPoint < axis.oldScroll; nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll; triggeredBackward = wasBeforeScroll && nowAfterScroll; triggeredForward = !wasBeforeScroll && !nowAfterScroll; if (!freshWaypoint && triggeredBackward) { waypoint.queueTrigger(axis.backward); triggeredGroups[waypoint.group.id] = waypoint.group; } else if (!freshWaypoint && triggeredForward) { waypoint.queueTrigger(axis.forward); triggeredGroups[waypoint.group.id] = waypoint.group; } else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) { waypoint.queueTrigger(axis.forward); triggeredGroups[waypoint.group.id] = waypoint.group; } } } Waypoint.requestAnimationFrame(function () { for (var groupKey in triggeredGroups) { triggeredGroups[groupKey].flushTriggers(); } }); return this; }; /* Private */ Context.findOrCreateByElement = function (element) { return Context.findByElement(element) || new Context(element); }; /* Private */ Context.refreshAll = function () { for (var contextId in contexts) { contexts[contextId].refresh(); } }; /* Public */ /* http://imakewebthings.com/waypoints/api/context-find-by-element */ Context.findByElement = function (element) { return contexts[element.waypointContextKey]; }; window.onload = function () { if (oldWindowLoad) { oldWindowLoad(); } Context.refreshAll(); }; Waypoint.requestAnimationFrame = function (callback) { var requestFn = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || requestAnimationFrameShim; requestFn.call(window, callback); }; Waypoint.Context = Context; })(); (function () { "use strict"; function byTriggerPoint(a, b) { return a.triggerPoint - b.triggerPoint; } function byReverseTriggerPoint(a, b) { return b.triggerPoint - a.triggerPoint; } var groups = { vertical: {}, horizontal: {}, }; var Waypoint = window.Waypoint; /* http://imakewebthings.com/waypoints/api/group */ function Group(options) { this.name = options.name; this.axis = options.axis; this.id = this.name + "-" + this.axis; this.waypoints = []; this.clearTriggerQueues(); groups[this.axis][this.name] = this; } /* Private */ Group.prototype.add = function (waypoint) { this.waypoints.push(waypoint); }; /* Private */ Group.prototype.clearTriggerQueues = function () { this.triggerQueues = { up: [], down: [], left: [], right: [], }; }; /* Private */ Group.prototype.flushTriggers = function () { for (var direction in this.triggerQueues) { var waypoints = this.triggerQueues[direction]; var reverse = direction === "up" || direction === "left"; waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint); for (var i = 0, end = waypoints.length; i < end; i += 1) { var waypoint = waypoints[i]; if (waypoint.options.continuous || i === waypoints.length - 1) { waypoint.trigger([direction]); } } } this.clearTriggerQueues(); }; /* Private */ Group.prototype.next = function (waypoint) { this.waypoints.sort(byTriggerPoint); var index = Waypoint.Adapter.inArray(waypoint, this.waypoints); var isLast = index === this.waypoints.length - 1; return isLast ? null : this.waypoints[index + 1]; }; /* Private */ Group.prototype.previous = function (waypoint) { this.waypoints.sort(byTriggerPoint); var index = Waypoint.Adapter.inArray(waypoint, this.waypoints); return index ? this.waypoints[index - 1] : null; }; /* Private */ Group.prototype.queueTrigger = function (waypoint, direction) { this.triggerQueues[direction].push(waypoint); }; /* Private */ Group.prototype.remove = function (waypoint) { var index = Waypoint.Adapter.inArray(waypoint, this.waypoints); if (index > -1) { this.waypoints.splice(index, 1); } }; /* Public */ /* http://imakewebthings.com/waypoints/api/first */ Group.prototype.first = function () { return this.waypoints[0]; }; /* Public */ /* http://imakewebthings.com/waypoints/api/last */ Group.prototype.last = function () { return this.waypoints[this.waypoints.length - 1]; }; /* Private */ Group.findOrCreate = function (options) { return groups[options.axis][options.name] || new Group(options); }; Waypoint.Group = Group; })(); (function () { "use strict"; var $ = window.jQuery; var Waypoint = window.Waypoint; function JQueryAdapter(element) { this.$element = $(element); } $.each( [ "innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop", ], function (i, method) { JQueryAdapter.prototype[method] = function () { var args = Array.prototype.slice.call(arguments); return this.$element[method].apply(this.$element, args); }; } ); $.each(["extend", "inArray", "isEmptyObject"], function (i, method) { JQueryAdapter[method] = $[method]; }); Waypoint.adapters.push({ name: "jquery", Adapter: JQueryAdapter, }); Waypoint.Adapter = JQueryAdapter; })(); (function () { "use strict"; var Waypoint = window.Waypoint; function createExtension(framework) { return function () { var waypoints = []; var overrides = arguments[0]; if (framework.isFunction(arguments[0])) { overrides = framework.extend({}, arguments[1]); overrides.handler = arguments[0]; } this.each(function () { var options = framework.extend({}, overrides, { element: this, }); if (typeof options.context === "string") { options.context = framework(this).closest(options.context)[0]; } waypoints.push(new Waypoint(options)); }); return waypoints; }; } if (window.jQuery) { window.jQuery.fn.waypoint = createExtension(window.jQuery); } if (window.Zepto) { window.Zepto.fn.waypoint = createExtension(window.Zepto); } })(); /* _ _ _ _ ___| (_) ___| | __ (_)___ / __| | |/ __| |/ / | / __| \__ \ | | (__| < _ | \__ \ |___/_|_|\___|_|\_(_)/ |___/ |__/ Version: 1.5.8 Author: Ken Wheeler Website: http://kenwheeler.github.io Docs: http://kenwheeler.github.io/slick Repo: http://github.com/kenwheeler/slick Issues: http://github.com/kenwheeler/slick/issues */ !(function (a) { "use strict"; "function" == typeof define && define.amd ? define(["jquery"], a) : "undefined" != typeof exports ? (module.exports = a(require("jquery"))) : a(jQuery); })(function (a) { "use strict"; var b = window.Slick || {}; (b = (function () { function c(c, d) { var f, e = this; (e.defaults = { accessibility: !0, adaptiveHeight: !1, appendArrows: a(c), appendDots: a(c), arrows: !0, asNavFor: null, prevArrow: '', nextArrow: '', autoplay: !1, autoplaySpeed: 3e3, centerMode: !1, centerPadding: "50px", cssEase: "ease", customPaging: function (a, b) { return ( '" ); }, dots: !1, dotsClass: "slick-dots", draggable: !0, easing: "linear", edgeFriction: 0.35, fade: !1, focusOnSelect: !1, infinite: !0, initialSlide: 0, lazyLoad: "ondemand", mobileFirst: !1, pauseOnHover: !0, pauseOnDotsHover: !1, respondTo: "window", responsive: null, rows: 1, rtl: !1, slide: "", slidesPerRow: 1, slidesToShow: 1, slidesToScroll: 1, speed: 500, swipe: !0, swipeToSlide: !1, touchMove: !0, touchThreshold: 5, useCSS: !0, variableWidth: !1, vertical: !1, verticalSwiping: !1, waitForAnimate: !0, zIndex: 1e3, }), (e.initials = { animating: !1, dragging: !1, autoPlayTimer: null, currentDirection: 0, currentLeft: null, currentSlide: 0, direction: 1, $dots: null, listWidth: null, listHeight: null, loadIndex: 0, $nextArrow: null, $prevArrow: null, slideCount: null, slideWidth: null, $slideTrack: null, $slides: null, sliding: !1, slideOffset: 0, swipeLeft: null, $list: null, touchObject: {}, transformsEnabled: !1, unslicked: !1, }), a.extend(e, e.initials), (e.activeBreakpoint = null), (e.animType = null), (e.animProp = null), (e.breakpoints = []), (e.breakpointSettings = []), (e.cssTransitions = !1), (e.hidden = "hidden"), (e.paused = !1), (e.positionProp = null), (e.respondTo = null), (e.rowCount = 1), (e.shouldClick = !0), (e.$slider = a(c)), (e.$slidesCache = null), (e.transformType = null), (e.transitionType = null), (e.visibilityChange = "visibilitychange"), (e.windowWidth = 0), (e.windowTimer = null), (f = a(c).data("slick") || {}), (e.options = a.extend({}, e.defaults, f, d)), (e.currentSlide = e.options.initialSlide), (e.originalSettings = e.options), "undefined" != typeof document.mozHidden ? ((e.hidden = "mozHidden"), (e.visibilityChange = "mozvisibilitychange")) : "undefined" != typeof document.webkitHidden && ((e.hidden = "webkitHidden"), (e.visibilityChange = "webkitvisibilitychange")), (e.autoPlay = a.proxy(e.autoPlay, e)), (e.autoPlayClear = a.proxy(e.autoPlayClear, e)), (e.changeSlide = a.proxy(e.changeSlide, e)), (e.clickHandler = a.proxy(e.clickHandler, e)), (e.selectHandler = a.proxy(e.selectHandler, e)), (e.setPosition = a.proxy(e.setPosition, e)), (e.swipeHandler = a.proxy(e.swipeHandler, e)), (e.dragHandler = a.proxy(e.dragHandler, e)), (e.keyHandler = a.proxy(e.keyHandler, e)), (e.autoPlayIterator = a.proxy(e.autoPlayIterator, e)), (e.instanceUid = b++), (e.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/), e.registerBreakpoints(), e.init(!0), e.checkResponsive(!0); } var b = 0; return c; })()), (b.prototype.addSlide = b.prototype.slickAdd = function (b, c, d) { var e = this; if ("boolean" == typeof c) (d = c), (c = null); else if (0 > c || c >= e.slideCount) return !1; e.unload(), "number" == typeof c ? 0 === c && 0 === e.$slides.length ? a(b).appendTo(e.$slideTrack) : d ? a(b).insertBefore(e.$slides.eq(c)) : a(b).insertAfter(e.$slides.eq(c)) : d === !0 ? a(b).prependTo(e.$slideTrack) : a(b).appendTo(e.$slideTrack), (e.$slides = e.$slideTrack.children(this.options.slide)), e.$slideTrack.children(this.options.slide).detach(), e.$slideTrack.append(e.$slides), e.$slides.each(function (b, c) { a(c).attr("data-slick-index", b); }), (e.$slidesCache = e.$slides), e.reinit(); }), (b.prototype.animateHeight = function () { var a = this; if ( 1 === a.options.slidesToShow && a.options.adaptiveHeight === !0 && a.options.vertical === !1 ) { var b = a.$slides.eq(a.currentSlide).outerHeight(!0); a.$list.animate({ height: b }, a.options.speed); } }), (b.prototype.animateSlide = function (b, c) { var d = {}, e = this; e.animateHeight(), e.options.rtl === !0 && e.options.vertical === !1 && (b = -b), e.transformsEnabled === !1 ? e.options.vertical === !1 ? e.$slideTrack.animate( { left: b }, e.options.speed, e.options.easing, c ) : e.$slideTrack.animate( { top: b }, e.options.speed, e.options.easing, c ) : e.cssTransitions === !1 ? (e.options.rtl === !0 && (e.currentLeft = -e.currentLeft), a({ animStart: e.currentLeft }).animate( { animStart: b }, { duration: e.options.speed, easing: e.options.easing, step: function (a) { (a = Math.ceil(a)), e.options.vertical === !1 ? ((d[e.animType] = "translate(" + a + "px, 0px)"), e.$slideTrack.css(d)) : ((d[e.animType] = "translate(0px," + a + "px)"), e.$slideTrack.css(d)); }, complete: function () { c && c.call(); }, } )) : (e.applyTransition(), (b = Math.ceil(b)), (d[e.animType] = e.options.vertical === !1 ? "translate3d(" + b + "px, 0px, 0px)" : "translate3d(0px," + b + "px, 0px)"), e.$slideTrack.css(d), c && setTimeout(function () { e.disableTransition(), c.call(); }, e.options.speed)); }), (b.prototype.asNavFor = function (b) { var c = this, d = c.options.asNavFor; d && null !== d && (d = a(d).not(c.$slider)), null !== d && "object" == typeof d && d.each(function () { var c = a(this).slick("getSlick"); c.unslicked || c.slideHandler(b, !0); }); }), (b.prototype.applyTransition = function (a) { var b = this, c = {}; (c[b.transitionType] = b.options.fade === !1 ? b.transformType + " " + b.options.speed + "ms " + b.options.cssEase : "opacity " + b.options.speed + "ms " + b.options.cssEase), b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c); }), (b.prototype.autoPlay = function () { var a = this; a.autoPlayTimer && clearInterval(a.autoPlayTimer), a.slideCount > a.options.slidesToShow && a.paused !== !0 && (a.autoPlayTimer = setInterval( a.autoPlayIterator, a.options.autoplaySpeed )); }), (b.prototype.autoPlayClear = function () { var a = this; a.autoPlayTimer && clearInterval(a.autoPlayTimer); }), (b.prototype.autoPlayIterator = function () { var a = this; a.options.infinite === !1 ? 1 === a.direction ? (a.currentSlide + 1 === a.slideCount - 1 && (a.direction = 0), a.slideHandler(a.currentSlide + a.options.slidesToScroll)) : (0 === a.currentSlide - 1 && (a.direction = 1), a.slideHandler(a.currentSlide - a.options.slidesToScroll)) : a.slideHandler(a.currentSlide + a.options.slidesToScroll); }), (b.prototype.buildArrows = function () { var b = this; b.options.arrows === !0 && ((b.$prevArrow = a(b.options.prevArrow).addClass("slick-arrow")), (b.$nextArrow = a(b.options.nextArrow).addClass("slick-arrow")), b.slideCount > b.options.slidesToShow ? (b.$prevArrow .removeClass("slick-hidden") .removeAttr("aria-hidden tabindex"), b.$nextArrow .removeClass("slick-hidden") .removeAttr("aria-hidden tabindex"), b.htmlExpr.test(b.options.prevArrow) && b.$prevArrow.prependTo(b.options.appendArrows), b.htmlExpr.test(b.options.nextArrow) && b.$nextArrow.appendTo(b.options.appendArrows), b.options.infinite !== !0 && b.$prevArrow .addClass("slick-disabled") .attr("aria-disabled", "true")) : b.$prevArrow .add(b.$nextArrow) .addClass("slick-hidden") .attr({ "aria-disabled": "true", tabindex: "-1" })); }), (b.prototype.buildDots = function () { var c, d, b = this; if (b.options.dots === !0 && b.slideCount > b.options.slidesToShow) { for ( d = '"), (b.$dots = a(d).appendTo(b.options.appendDots)), b.$dots .find("li") .first() .addClass("slick-active") .attr("aria-hidden", "false"); } }), (b.prototype.buildOut = function () { var b = this; (b.$slides = b.$slider .children(b.options.slide + ":not(.slick-cloned)") .addClass("slick-slide")), (b.slideCount = b.$slides.length), b.$slides.each(function (b, c) { a(c) .attr("data-slick-index", b) .data("originalStyling", a(c).attr("style") || ""); }), (b.$slidesCache = b.$slides), b.$slider.addClass("slick-slider"), (b.$slideTrack = 0 === b.slideCount ? a('
').appendTo(b.$slider) : b.$slides.wrapAll('
').parent()), (b.$list = b.$slideTrack .wrap('
') .parent()), b.$slideTrack.css("opacity", 0), (b.options.centerMode === !0 || b.options.swipeToSlide === !0) && (b.options.slidesToScroll = 1), a("img[data-lazy]", b.$slider).not("[src]").addClass("slick-loading"), b.setupInfinite(), b.buildArrows(), b.buildDots(), b.updateDots(), b.setSlideClasses( "number" == typeof b.currentSlide ? b.currentSlide : 0 ), b.options.draggable === !0 && b.$list.addClass("draggable"); }), (b.prototype.buildRows = function () { var b, c, d, e, f, g, h, a = this; if ( ((e = document.createDocumentFragment()), (g = a.$slider.children()), a.options.rows > 1) ) { for ( h = a.options.slidesPerRow * a.options.rows, f = Math.ceil(g.length / h), b = 0; f > b; b++ ) { var i = document.createElement("div"); for (c = 0; c < a.options.rows; c++) { var j = document.createElement("div"); for (d = 0; d < a.options.slidesPerRow; d++) { var k = b * h + (c * a.options.slidesPerRow + d); g.get(k) && j.appendChild(g.get(k)); } i.appendChild(j); } e.appendChild(i); } a.$slider.html(e), a.$slider .children() .children() .children() .css({ width: 100 / a.options.slidesPerRow + "%", display: "inline-block", }); } }), (b.prototype.checkResponsive = function (b, c) { var e, f, g, d = this, h = !1, i = d.$slider.width(), j = window.innerWidth || a(window).width(); if ( ("window" === d.respondTo ? (g = j) : "slider" === d.respondTo ? (g = i) : "min" === d.respondTo && (g = Math.min(j, i)), d.options.responsive && d.options.responsive.length && null !== d.options.responsive) ) { f = null; for (e in d.breakpoints) d.breakpoints.hasOwnProperty(e) && (d.originalSettings.mobileFirst === !1 ? g < d.breakpoints[e] && (f = d.breakpoints[e]) : g > d.breakpoints[e] && (f = d.breakpoints[e])); null !== f ? null !== d.activeBreakpoint ? (f !== d.activeBreakpoint || c) && ((d.activeBreakpoint = f), "unslick" === d.breakpointSettings[f] ? d.unslick(f) : ((d.options = a.extend( {}, d.originalSettings, d.breakpointSettings[f] )), b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b)), (h = f)) : ((d.activeBreakpoint = f), "unslick" === d.breakpointSettings[f] ? d.unslick(f) : ((d.options = a.extend( {}, d.originalSettings, d.breakpointSettings[f] )), b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b)), (h = f)) : null !== d.activeBreakpoint && ((d.activeBreakpoint = null), (d.options = d.originalSettings), b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b), (h = f)), b || h === !1 || d.$slider.trigger("breakpoint", [d, h]); } }), (b.prototype.changeSlide = function (b, c) { var f, g, h, d = this, e = a(b.target); switch ( (e.is("a") && b.preventDefault(), e.is("li") || (e = e.closest("li")), (h = 0 !== d.slideCount % d.options.slidesToScroll), (f = h ? 0 : (d.slideCount - d.currentSlide) % d.options.slidesToScroll), b.data.message) ) { case "previous": (g = 0 === f ? d.options.slidesToScroll : d.options.slidesToShow - f), d.slideCount > d.options.slidesToShow && d.slideHandler(d.currentSlide - g, !1, c); break; case "next": (g = 0 === f ? d.options.slidesToScroll : f), d.slideCount > d.options.slidesToShow && d.slideHandler(d.currentSlide + g, !1, c); break; case "index": var i = 0 === b.data.index ? 0 : b.data.index || e.index() * d.options.slidesToScroll; d.slideHandler(d.checkNavigable(i), !1, c), e.children().trigger("focus"); break; default: return; } }), (b.prototype.checkNavigable = function (a) { var c, d, b = this; if (((c = b.getNavigableIndexes()), (d = 0), a > c[c.length - 1])) a = c[c.length - 1]; else for (var e in c) { if (a < c[e]) { a = d; break; } d = c[e]; } return a; }), (b.prototype.cleanUpEvents = function () { var b = this; b.options.dots && null !== b.$dots && (a("li", b.$dots).off("click.slick", b.changeSlide), b.options.pauseOnDotsHover === !0 && b.options.autoplay === !0 && a("li", b.$dots) .off("mouseenter.slick", a.proxy(b.setPaused, b, !0)) .off("mouseleave.slick", a.proxy(b.setPaused, b, !1))), b.options.arrows === !0 && b.slideCount > b.options.slidesToShow && (b.$prevArrow && b.$prevArrow.off("click.slick", b.changeSlide), b.$nextArrow && b.$nextArrow.off("click.slick", b.changeSlide)), b.$list.off("touchstart.slick mousedown.slick", b.swipeHandler), b.$list.off("touchmove.slick mousemove.slick", b.swipeHandler), b.$list.off("touchend.slick mouseup.slick", b.swipeHandler), b.$list.off("touchcancel.slick mouseleave.slick", b.swipeHandler), b.$list.off("click.slick", b.clickHandler), a(document).off(b.visibilityChange, b.visibility), b.$list.off("mouseenter.slick", a.proxy(b.setPaused, b, !0)), b.$list.off("mouseleave.slick", a.proxy(b.setPaused, b, !1)), b.options.accessibility === !0 && b.$list.off("keydown.slick", b.keyHandler), b.options.focusOnSelect === !0 && a(b.$slideTrack).children().off("click.slick", b.selectHandler), a(window).off( "orientationchange.slick.slick-" + b.instanceUid, b.orientationChange ), a(window).off("resize.slick.slick-" + b.instanceUid, b.resize), a("[draggable!=true]", b.$slideTrack).off( "dragstart", b.preventDefault ), a(window).off("load.slick.slick-" + b.instanceUid, b.setPosition), a(document).off("ready.slick.slick-" + b.instanceUid, b.setPosition); }), (b.prototype.cleanUpRows = function () { var b, a = this; a.options.rows > 1 && ((b = a.$slides.children().children()), b.removeAttr("style"), a.$slider.html(b)); }), (b.prototype.clickHandler = function (a) { var b = this; b.shouldClick === !1 && (a.stopImmediatePropagation(), a.stopPropagation(), a.preventDefault()); }), (b.prototype.destroy = function (b) { var c = this; c.autoPlayClear(), (c.touchObject = {}), c.cleanUpEvents(), a(".slick-cloned", c.$slider).detach(), c.$dots && c.$dots.remove(), c.$prevArrow && c.$prevArrow.length && (c.$prevArrow .removeClass("slick-disabled slick-arrow slick-hidden") .removeAttr("aria-hidden aria-disabled tabindex") .css("display", ""), c.htmlExpr.test(c.options.prevArrow) && c.$prevArrow.remove()), c.$nextArrow && c.$nextArrow.length && (c.$nextArrow .removeClass("slick-disabled slick-arrow slick-hidden") .removeAttr("aria-hidden aria-disabled tabindex") .css("display", ""), c.htmlExpr.test(c.options.nextArrow) && c.$nextArrow.remove()), c.$slides && (c.$slides .removeClass( "slick-slide slick-active slick-center slick-visible slick-current" ) .removeAttr("aria-hidden") .removeAttr("data-slick-index") .each(function () { a(this).attr("style", a(this).data("originalStyling")); }), c.$slideTrack.children(this.options.slide).detach(), c.$slideTrack.detach(), c.$list.detach(), c.$slider.append(c.$slides)), c.cleanUpRows(), c.$slider.removeClass("slick-slider"), c.$slider.removeClass("slick-initialized"), (c.unslicked = !0), b || c.$slider.trigger("destroy", [c]); }), (b.prototype.disableTransition = function (a) { var b = this, c = {}; (c[b.transitionType] = ""), b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c); }), (b.prototype.fadeSlide = function (a, b) { var c = this; c.cssTransitions === !1 ? (c.$slides.eq(a).css({ zIndex: c.options.zIndex }), c.$slides .eq(a) .animate({ opacity: 1 }, c.options.speed, c.options.easing, b)) : (c.applyTransition(a), c.$slides.eq(a).css({ opacity: 1, zIndex: c.options.zIndex }), b && setTimeout(function () { c.disableTransition(a), b.call(); }, c.options.speed)); }), (b.prototype.fadeSlideOut = function (a) { var b = this; b.cssTransitions === !1 ? b.$slides .eq(a) .animate( { opacity: 0, zIndex: b.options.zIndex - 2 }, b.options.speed, b.options.easing ) : (b.applyTransition(a), b.$slides.eq(a).css({ opacity: 0, zIndex: b.options.zIndex - 2 })); }), (b.prototype.filterSlides = b.prototype.slickFilter = function (a) { var b = this; null !== a && (b.unload(), b.$slideTrack.children(this.options.slide).detach(), b.$slidesCache.filter(a).appendTo(b.$slideTrack), b.reinit()); }), (b.prototype.getCurrent = b.prototype.slickCurrentSlide = function () { var a = this; return a.currentSlide; }), (b.prototype.getDotCount = function () { var a = this, b = 0, c = 0, d = 0; if (a.options.infinite === !0) for (; b < a.slideCount; ) ++d, (b = c + a.options.slidesToShow), (c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow); else if (a.options.centerMode === !0) d = a.slideCount; else for (; b < a.slideCount; ) ++d, (b = c + a.options.slidesToShow), (c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow); return d - 1; }), (b.prototype.getLeft = function (a) { var c, d, f, b = this, e = 0; return ( (b.slideOffset = 0), (d = b.$slides.first().outerHeight(!0)), b.options.infinite === !0 ? (b.slideCount > b.options.slidesToShow && ((b.slideOffset = -1 * b.slideWidth * b.options.slidesToShow), (e = -1 * d * b.options.slidesToShow)), 0 !== b.slideCount % b.options.slidesToScroll && a + b.options.slidesToScroll > b.slideCount && b.slideCount > b.options.slidesToShow && (a > b.slideCount ? ((b.slideOffset = -1 * (b.options.slidesToShow - (a - b.slideCount)) * b.slideWidth), (e = -1 * (b.options.slidesToShow - (a - b.slideCount)) * d)) : ((b.slideOffset = ((-1 * b.slideCount) % b.options.slidesToScroll) * b.slideWidth), (e = ((-1 * b.slideCount) % b.options.slidesToScroll) * d)))) : a + b.options.slidesToShow > b.slideCount && ((b.slideOffset = (a + b.options.slidesToShow - b.slideCount) * b.slideWidth), (e = (a + b.options.slidesToShow - b.slideCount) * d)), b.slideCount <= b.options.slidesToShow && ((b.slideOffset = 0), (e = 0)), b.options.centerMode === !0 && b.options.infinite === !0 ? (b.slideOffset += b.slideWidth * Math.floor(b.options.slidesToShow / 2) - b.slideWidth) : b.options.centerMode === !0 && ((b.slideOffset = 0), (b.slideOffset += b.slideWidth * Math.floor(b.options.slidesToShow / 2))), (c = b.options.vertical === !1 ? -1 * a * b.slideWidth + b.slideOffset : -1 * a * d + e), b.options.variableWidth === !0 && ((f = b.slideCount <= b.options.slidesToShow || b.options.infinite === !1 ? b.$slideTrack.children(".slick-slide").eq(a) : b.$slideTrack .children(".slick-slide") .eq(a + b.options.slidesToShow)), (c = f[0] ? -1 * f[0].offsetLeft : 0), b.options.centerMode === !0 && ((f = b.options.infinite === !1 ? b.$slideTrack.children(".slick-slide").eq(a) : b.$slideTrack .children(".slick-slide") .eq(a + b.options.slidesToShow + 1)), (c = f[0] ? -1 * f[0].offsetLeft : 0), (c += (b.$list.width() - f.outerWidth()) / 2))), c ); }), (b.prototype.getOption = b.prototype.slickGetOption = function (a) { var b = this; return b.options[a]; }), (b.prototype.getNavigableIndexes = function () { var e, a = this, b = 0, c = 0, d = []; for ( a.options.infinite === !1 ? (e = a.slideCount) : ((b = -1 * a.options.slidesToScroll), (c = -1 * a.options.slidesToScroll), (e = 2 * a.slideCount)); e > b; ) d.push(b), (b = c + a.options.slidesToScroll), (c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow); return d; }), (b.prototype.getSlick = function () { return this; }), (b.prototype.getSlideCount = function () { var c, d, e, b = this; return ( (e = b.options.centerMode === !0 ? b.slideWidth * Math.floor(b.options.slidesToShow / 2) : 0), b.options.swipeToSlide === !0 ? (b.$slideTrack.find(".slick-slide").each(function (c, f) { return f.offsetLeft - e + a(f).outerWidth() / 2 > -1 * b.swipeLeft ? ((d = f), !1) : void 0; }), (c = Math.abs(a(d).attr("data-slick-index") - b.currentSlide) || 1)) : b.options.slidesToScroll ); }), (b.prototype.goTo = b.prototype.slickGoTo = function (a, b) { var c = this; c.changeSlide({ data: { message: "index", index: parseInt(a) } }, b); }), (b.prototype.init = function (b) { var c = this; a(c.$slider).hasClass("slick-initialized") || (a(c.$slider).addClass("slick-initialized"), c.buildRows(), c.buildOut(), c.setProps(), c.startLoad(), c.loadSlider(), c.initializeEvents(), c.updateArrows(), c.updateDots()), b && c.$slider.trigger("init", [c]), c.options.accessibility === !0 && c.initADA(); }), (b.prototype.initArrowEvents = function () { var a = this; a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.on("click.slick", { message: "previous" }, a.changeSlide), a.$nextArrow.on("click.slick", { message: "next" }, a.changeSlide)); }), (b.prototype.initDotEvents = function () { var b = this; b.options.dots === !0 && b.slideCount > b.options.slidesToShow && a("li", b.$dots).on("click.slick", { message: "index" }, b.changeSlide), b.options.dots === !0 && b.options.pauseOnDotsHover === !0 && b.options.autoplay === !0 && a("li", b.$dots) .on("mouseenter.slick", a.proxy(b.setPaused, b, !0)) .on("mouseleave.slick", a.proxy(b.setPaused, b, !1)); }), (b.prototype.initializeEvents = function () { var b = this; b.initArrowEvents(), b.initDotEvents(), b.$list.on( "touchstart.slick mousedown.slick", { action: "start" }, b.swipeHandler ), b.$list.on( "touchmove.slick mousemove.slick", { action: "move" }, b.swipeHandler ), b.$list.on( "touchend.slick mouseup.slick", { action: "end" }, b.swipeHandler ), b.$list.on( "touchcancel.slick mouseleave.slick", { action: "end" }, b.swipeHandler ), b.$list.on("click.slick", b.clickHandler), a(document).on(b.visibilityChange, a.proxy(b.visibility, b)), b.$list.on("mouseenter.slick", a.proxy(b.setPaused, b, !0)), b.$list.on("mouseleave.slick", a.proxy(b.setPaused, b, !1)), b.options.accessibility === !0 && b.$list.on("keydown.slick", b.keyHandler), b.options.focusOnSelect === !0 && a(b.$slideTrack).children().on("click.slick", b.selectHandler), a(window).on( "orientationchange.slick.slick-" + b.instanceUid, a.proxy(b.orientationChange, b) ), a(window).on( "resize.slick.slick-" + b.instanceUid, a.proxy(b.resize, b) ), a("[draggable!=true]", b.$slideTrack).on("dragstart", b.preventDefault), a(window).on("load.slick.slick-" + b.instanceUid, b.setPosition), a(document).on("ready.slick.slick-" + b.instanceUid, b.setPosition); }), (b.prototype.initUI = function () { var a = this; a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.show(), a.$nextArrow.show()), a.options.dots === !0 && a.slideCount > a.options.slidesToShow && a.$dots.show(), a.options.autoplay === !0 && a.autoPlay(); }), (b.prototype.keyHandler = function (a) { var b = this; a.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === a.keyCode && b.options.accessibility === !0 ? b.changeSlide({ data: { message: "previous" } }) : 39 === a.keyCode && b.options.accessibility === !0 && b.changeSlide({ data: { message: "next" } })); }), (b.prototype.lazyLoad = function () { function g(b) { a("img[data-lazy]", b).each(function () { var b = a(this), c = a(this).attr("data-lazy"), d = document.createElement("img"); (d.onload = function () { b.animate({ opacity: 0 }, 100, function () { b.attr("src", c).animate({ opacity: 1 }, 200, function () { b.removeAttr("data-lazy").removeClass("slick-loading"); }); }); }), (d.src = c); }); } var c, d, e, f, b = this; b.options.centerMode === !0 ? b.options.infinite === !0 ? ((e = b.currentSlide + (b.options.slidesToShow / 2 + 1)), (f = e + b.options.slidesToShow + 2)) : ((e = Math.max( 0, b.currentSlide - (b.options.slidesToShow / 2 + 1) )), (f = 2 + (b.options.slidesToShow / 2 + 1) + b.currentSlide)) : ((e = b.options.infinite ? b.options.slidesToShow + b.currentSlide : b.currentSlide), (f = e + b.options.slidesToShow), b.options.fade === !0 && (e > 0 && e--, f <= b.slideCount && f++)), (c = b.$slider.find(".slick-slide").slice(e, f)), g(c), b.slideCount <= b.options.slidesToShow ? ((d = b.$slider.find(".slick-slide")), g(d)) : b.currentSlide >= b.slideCount - b.options.slidesToShow ? ((d = b.$slider .find(".slick-cloned") .slice(0, b.options.slidesToShow)), g(d)) : 0 === b.currentSlide && ((d = b.$slider .find(".slick-cloned") .slice(-1 * b.options.slidesToShow)), g(d)); }), (b.prototype.loadSlider = function () { var a = this; a.setPosition(), a.$slideTrack.css({ opacity: 1 }), a.$slider.removeClass("slick-loading"), a.initUI(), "progressive" === a.options.lazyLoad && a.progressiveLazyLoad(); }), (b.prototype.next = b.prototype.slickNext = function () { var a = this; a.changeSlide({ data: { message: "next" } }); }), (b.prototype.orientationChange = function () { var a = this; a.checkResponsive(), a.setPosition(); }), (b.prototype.pause = b.prototype.slickPause = function () { var a = this; a.autoPlayClear(), (a.paused = !0); }), (b.prototype.play = b.prototype.slickPlay = function () { var a = this; (a.paused = !1), a.autoPlay(); }), (b.prototype.postSlide = function (a) { var b = this; b.$slider.trigger("afterChange", [b, a]), (b.animating = !1), b.setPosition(), (b.swipeLeft = null), b.options.autoplay === !0 && b.paused === !1 && b.autoPlay(), b.options.accessibility === !0 && b.initADA(); }), (b.prototype.prev = b.prototype.slickPrev = function () { var a = this; a.changeSlide({ data: { message: "previous" } }); }), (b.prototype.preventDefault = function (a) { a.preventDefault(); }), (b.prototype.progressiveLazyLoad = function () { var c, d, b = this; (c = a("img[data-lazy]", b.$slider).length), c > 0 && ((d = a("img[data-lazy]", b.$slider).first()), d .attr("src", d.attr("data-lazy")) .removeClass("slick-loading") .load(function () { d.removeAttr("data-lazy"), b.progressiveLazyLoad(), b.options.adaptiveHeight === !0 && b.setPosition(); }) .error(function () { d.removeAttr("data-lazy"), b.progressiveLazyLoad(); })); }), (b.prototype.refresh = function (b) { var c = this, d = c.currentSlide; c.destroy(!0), a.extend(c, c.initials, { currentSlide: d }), c.init(), b || c.changeSlide({ data: { message: "index", index: d } }, !1); }), (b.prototype.registerBreakpoints = function () { var c, d, e, b = this, f = b.options.responsive || null; if ("array" === a.type(f) && f.length) { b.respondTo = b.options.respondTo || "window"; for (c in f) if ( ((e = b.breakpoints.length - 1), (d = f[c].breakpoint), f.hasOwnProperty(c)) ) { for (; e >= 0; ) b.breakpoints[e] && b.breakpoints[e] === d && b.breakpoints.splice(e, 1), e--; b.breakpoints.push(d), (b.breakpointSettings[d] = f[c].settings); } b.breakpoints.sort(function (a, c) { return b.options.mobileFirst ? a - c : c - a; }); } }), (b.prototype.reinit = function () { var b = this; (b.$slides = b.$slideTrack .children(b.options.slide) .addClass("slick-slide")), (b.slideCount = b.$slides.length), b.currentSlide >= b.slideCount && 0 !== b.currentSlide && (b.currentSlide = b.currentSlide - b.options.slidesToScroll), b.slideCount <= b.options.slidesToShow && (b.currentSlide = 0), b.registerBreakpoints(), b.setProps(), b.setupInfinite(), b.buildArrows(), b.updateArrows(), b.initArrowEvents(), b.buildDots(), b.updateDots(), b.initDotEvents(), b.checkResponsive(!1, !0), b.options.focusOnSelect === !0 && a(b.$slideTrack).children().on("click.slick", b.selectHandler), b.setSlideClasses(0), b.setPosition(), b.$slider.trigger("reInit", [b]), b.options.autoplay === !0 && b.focusHandler(); }), (b.prototype.resize = function () { var b = this; a(window).width() !== b.windowWidth && (clearTimeout(b.windowDelay), (b.windowDelay = window.setTimeout(function () { (b.windowWidth = a(window).width()), b.checkResponsive(), b.unslicked || b.setPosition(); }, 50))); }), (b.prototype.removeSlide = b.prototype.slickRemove = function (a, b, c) { var d = this; return ( "boolean" == typeof a ? ((b = a), (a = b === !0 ? 0 : d.slideCount - 1)) : (a = b === !0 ? --a : a), d.slideCount < 1 || 0 > a || a > d.slideCount - 1 ? !1 : (d.unload(), c === !0 ? d.$slideTrack.children().remove() : d.$slideTrack.children(this.options.slide).eq(a).remove(), (d.$slides = d.$slideTrack.children(this.options.slide)), d.$slideTrack.children(this.options.slide).detach(), d.$slideTrack.append(d.$slides), (d.$slidesCache = d.$slides), d.reinit(), void 0) ); }), (b.prototype.setCSS = function (a) { var d, e, b = this, c = {}; b.options.rtl === !0 && (a = -a), (d = "left" == b.positionProp ? Math.ceil(a) + "px" : "0px"), (e = "top" == b.positionProp ? Math.ceil(a) + "px" : "0px"), (c[b.positionProp] = a), b.transformsEnabled === !1 ? b.$slideTrack.css(c) : ((c = {}), b.cssTransitions === !1 ? ((c[b.animType] = "translate(" + d + ", " + e + ")"), b.$slideTrack.css(c)) : ((c[b.animType] = "translate3d(" + d + ", " + e + ", 0px)"), b.$slideTrack.css(c))); }), (b.prototype.setDimensions = function () { var a = this; a.options.vertical === !1 ? a.options.centerMode === !0 && a.$list.css({ padding: "0px " + a.options.centerPadding }) : (a.$list.height( a.$slides.first().outerHeight(!0) * a.options.slidesToShow ), a.options.centerMode === !0 && a.$list.css({ padding: a.options.centerPadding + " 0px" })), (a.listWidth = a.$list.width()), (a.listHeight = a.$list.height()), a.options.vertical === !1 && a.options.variableWidth === !1 ? ((a.slideWidth = Math.ceil(a.listWidth / a.options.slidesToShow)), a.$slideTrack.width( Math.ceil( a.slideWidth * a.$slideTrack.children(".slick-slide").length ) )) : a.options.variableWidth === !0 ? a.$slideTrack.width(5e3 * a.slideCount) : ((a.slideWidth = Math.ceil(a.listWidth)), a.$slideTrack.height( Math.ceil( a.$slides.first().outerHeight(!0) * a.$slideTrack.children(".slick-slide").length ) )); var b = a.$slides.first().outerWidth(!0) - a.$slides.first().width(); a.options.variableWidth === !1 && a.$slideTrack.children(".slick-slide").width(a.slideWidth - b); }), (b.prototype.setFade = function () { var c, b = this; b.$slides.each(function (d, e) { (c = -1 * b.slideWidth * d), b.options.rtl === !0 ? a(e).css({ position: "relative", right: c, top: 0, zIndex: b.options.zIndex - 2, opacity: 0, }) : a(e).css({ position: "relative", left: c, top: 0, zIndex: b.options.zIndex - 2, opacity: 0, }); }), b.$slides .eq(b.currentSlide) .css({ zIndex: b.options.zIndex - 1, opacity: 1 }); }), (b.prototype.setHeight = function () { var a = this; if ( 1 === a.options.slidesToShow && a.options.adaptiveHeight === !0 && a.options.vertical === !1 ) { var b = a.$slides.eq(a.currentSlide).outerHeight(!0); a.$list.css("height", b); } }), (b.prototype.setOption = b.prototype.slickSetOption = function (b, c, d) { var f, g, e = this; if ("responsive" === b && "array" === a.type(c)) for (g in c) if ("array" !== a.type(e.options.responsive)) e.options.responsive = [c[g]]; else { for (f = e.options.responsive.length - 1; f >= 0; ) e.options.responsive[f].breakpoint === c[g].breakpoint && e.options.responsive.splice(f, 1), f--; e.options.responsive.push(c[g]); } else e.options[b] = c; d === !0 && (e.unload(), e.reinit()); }), (b.prototype.setPosition = function () { var a = this; a.setDimensions(), a.setHeight(), a.options.fade === !1 ? a.setCSS(a.getLeft(a.currentSlide)) : a.setFade(), a.$slider.trigger("setPosition", [a]); }), (b.prototype.setProps = function () { var a = this, b = document.body.style; (a.positionProp = a.options.vertical === !0 ? "top" : "left"), "top" === a.positionProp ? a.$slider.addClass("slick-vertical") : a.$slider.removeClass("slick-vertical"), (void 0 !== b.WebkitTransition || void 0 !== b.MozTransition || void 0 !== b.msTransition) && a.options.useCSS === !0 && (a.cssTransitions = !0), a.options.fade && ("number" == typeof a.options.zIndex ? a.options.zIndex < 3 && (a.options.zIndex = 3) : (a.options.zIndex = a.defaults.zIndex)), void 0 !== b.OTransform && ((a.animType = "OTransform"), (a.transformType = "-o-transform"), (a.transitionType = "OTransition"), void 0 === b.perspectiveProperty && void 0 === b.webkitPerspective && (a.animType = !1)), void 0 !== b.MozTransform && ((a.animType = "MozTransform"), (a.transformType = "-moz-transform"), (a.transitionType = "MozTransition"), void 0 === b.perspectiveProperty && void 0 === b.MozPerspective && (a.animType = !1)), void 0 !== b.webkitTransform && ((a.animType = "webkitTransform"), (a.transformType = "-webkit-transform"), (a.transitionType = "webkitTransition"), void 0 === b.perspectiveProperty && void 0 === b.webkitPerspective && (a.animType = !1)), void 0 !== b.msTransform && ((a.animType = "msTransform"), (a.transformType = "-ms-transform"), (a.transitionType = "msTransition"), void 0 === b.msTransform && (a.animType = !1)), void 0 !== b.transform && a.animType !== !1 && ((a.animType = "transform"), (a.transformType = "transform"), (a.transitionType = "transition")), (a.transformsEnabled = null !== a.animType && a.animType !== !1); }), (b.prototype.setSlideClasses = function (a) { var c, d, e, f, b = this; (d = b.$slider .find(".slick-slide") .removeClass("slick-active slick-center slick-current") .attr("aria-hidden", "true")), b.$slides.eq(a).addClass("slick-current"), b.options.centerMode === !0 ? ((c = Math.floor(b.options.slidesToShow / 2)), b.options.infinite === !0 && (a >= c && a <= b.slideCount - 1 - c ? b.$slides .slice(a - c, a + c + 1) .addClass("slick-active") .attr("aria-hidden", "false") : ((e = b.options.slidesToShow + a), d .slice(e - c + 1, e + c + 2) .addClass("slick-active") .attr("aria-hidden", "false")), 0 === a ? d .eq(d.length - 1 - b.options.slidesToShow) .addClass("slick-center") : a === b.slideCount - 1 && d.eq(b.options.slidesToShow).addClass("slick-center")), b.$slides.eq(a).addClass("slick-center")) : a >= 0 && a <= b.slideCount - b.options.slidesToShow ? b.$slides .slice(a, a + b.options.slidesToShow) .addClass("slick-active") .attr("aria-hidden", "false") : d.length <= b.options.slidesToShow ? d.addClass("slick-active").attr("aria-hidden", "false") : ((f = b.slideCount % b.options.slidesToShow), (e = b.options.infinite === !0 ? b.options.slidesToShow + a : a), b.options.slidesToShow == b.options.slidesToScroll && b.slideCount - a < b.options.slidesToShow ? d .slice(e - (b.options.slidesToShow - f), e + f) .addClass("slick-active") .attr("aria-hidden", "false") : d .slice(e, e + b.options.slidesToShow) .addClass("slick-active") .attr("aria-hidden", "false")), "ondemand" === b.options.lazyLoad && b.lazyLoad(); }), (b.prototype.setupInfinite = function () { var c, d, e, b = this; if ( (b.options.fade === !0 && (b.options.centerMode = !1), b.options.infinite === !0 && b.options.fade === !1 && ((d = null), b.slideCount > b.options.slidesToShow)) ) { for ( e = b.options.centerMode === !0 ? b.options.slidesToShow + 1 : b.options.slidesToShow, c = b.slideCount; c > b.slideCount - e; c -= 1 ) (d = c - 1), a(b.$slides[d]) .clone(!0) .attr("id", "") .attr("data-slick-index", d - b.slideCount) .prependTo(b.$slideTrack) .addClass("slick-cloned"); for (c = 0; e > c; c += 1) (d = c), a(b.$slides[d]) .clone(!0) .attr("id", "") .attr("data-slick-index", d + b.slideCount) .appendTo(b.$slideTrack) .addClass("slick-cloned"); b.$slideTrack .find(".slick-cloned") .find("[id]") .each(function () { a(this).attr("id", ""); }); } }), (b.prototype.setPaused = function (a) { var b = this; b.options.autoplay === !0 && b.options.pauseOnHover === !0 && ((b.paused = a), a ? b.autoPlayClear() : b.autoPlay()); }), (b.prototype.selectHandler = function (b) { var c = this, d = a(b.target).is(".slick-slide") ? a(b.target) : a(b.target).parents(".slick-slide"), e = parseInt(d.attr("data-slick-index")); return ( e || (e = 0), c.slideCount <= c.options.slidesToShow ? (c.setSlideClasses(e), c.asNavFor(e), void 0) : (c.slideHandler(e), void 0) ); }), (b.prototype.slideHandler = function (a, b, c) { var d, e, f, g, h = null, i = this; return ( (b = b || !1), (i.animating === !0 && i.options.waitForAnimate === !0) || (i.options.fade === !0 && i.currentSlide === a) || i.slideCount <= i.options.slidesToShow ? void 0 : (b === !1 && i.asNavFor(a), (d = a), (h = i.getLeft(d)), (g = i.getLeft(i.currentSlide)), (i.currentLeft = null === i.swipeLeft ? g : i.swipeLeft), i.options.infinite === !1 && i.options.centerMode === !1 && (0 > a || a > i.getDotCount() * i.options.slidesToScroll) ? (i.options.fade === !1 && ((d = i.currentSlide), c !== !0 ? i.animateSlide(g, function () { i.postSlide(d); }) : i.postSlide(d)), void 0) : i.options.infinite === !1 && i.options.centerMode === !0 && (0 > a || a > i.slideCount - i.options.slidesToScroll) ? (i.options.fade === !1 && ((d = i.currentSlide), c !== !0 ? i.animateSlide(g, function () { i.postSlide(d); }) : i.postSlide(d)), void 0) : (i.options.autoplay === !0 && clearInterval(i.autoPlayTimer), (e = 0 > d ? 0 !== i.slideCount % i.options.slidesToScroll ? i.slideCount - (i.slideCount % i.options.slidesToScroll) : i.slideCount + d : d >= i.slideCount ? 0 !== i.slideCount % i.options.slidesToScroll ? 0 : d - i.slideCount : d), (i.animating = !0), i.$slider.trigger("beforeChange", [i, i.currentSlide, e]), (f = i.currentSlide), (i.currentSlide = e), i.setSlideClasses(i.currentSlide), i.updateDots(), i.updateArrows(), i.options.fade === !0 ? (c !== !0 ? (i.fadeSlideOut(f), i.fadeSlide(e, function () { i.postSlide(e); })) : i.postSlide(e), i.animateHeight(), void 0) : (c !== !0 ? i.animateSlide(h, function () { i.postSlide(e); }) : i.postSlide(e), void 0))) ); }), (b.prototype.startLoad = function () { var a = this; a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.hide(), a.$nextArrow.hide()), a.options.dots === !0 && a.slideCount > a.options.slidesToShow && a.$dots.hide(), a.$slider.addClass("slick-loading"); }), (b.prototype.swipeDirection = function () { var a, b, c, d, e = this; return ( (a = e.touchObject.startX - e.touchObject.curX), (b = e.touchObject.startY - e.touchObject.curY), (c = Math.atan2(b, a)), (d = Math.round((180 * c) / Math.PI)), 0 > d && (d = 360 - Math.abs(d)), 45 >= d && d >= 0 ? e.options.rtl === !1 ? "left" : "right" : 360 >= d && d >= 315 ? e.options.rtl === !1 ? "left" : "right" : d >= 135 && 225 >= d ? e.options.rtl === !1 ? "right" : "left" : e.options.verticalSwiping === !0 ? d >= 35 && 135 >= d ? "left" : "right" : "vertical" ); }), (b.prototype.swipeEnd = function () { var c, b = this; if ( ((b.dragging = !1), (b.shouldClick = b.touchObject.swipeLength > 10 ? !1 : !0), void 0 === b.touchObject.curX) ) return !1; if ( (b.touchObject.edgeHit === !0 && b.$slider.trigger("edge", [b, b.swipeDirection()]), b.touchObject.swipeLength >= b.touchObject.minSwipe) ) switch (b.swipeDirection()) { case "left": (c = b.options.swipeToSlide ? b.checkNavigable(b.currentSlide + b.getSlideCount()) : b.currentSlide + b.getSlideCount()), b.slideHandler(c), (b.currentDirection = 0), (b.touchObject = {}), b.$slider.trigger("swipe", [b, "left"]); break; case "right": (c = b.options.swipeToSlide ? b.checkNavigable(b.currentSlide - b.getSlideCount()) : b.currentSlide - b.getSlideCount()), b.slideHandler(c), (b.currentDirection = 1), (b.touchObject = {}), b.$slider.trigger("swipe", [b, "right"]); } else b.touchObject.startX !== b.touchObject.curX && (b.slideHandler(b.currentSlide), (b.touchObject = {})); }), (b.prototype.swipeHandler = function (a) { var b = this; if ( !( b.options.swipe === !1 || ("ontouchend" in document && b.options.swipe === !1) || (b.options.draggable === !1 && -1 !== a.type.indexOf("mouse")) ) ) switch ( ((b.touchObject.fingerCount = a.originalEvent && void 0 !== a.originalEvent.touches ? a.originalEvent.touches.length : 1), (b.touchObject.minSwipe = b.listWidth / b.options.touchThreshold), b.options.verticalSwiping === !0 && (b.touchObject.minSwipe = b.listHeight / b.options.touchThreshold), a.data.action) ) { case "start": b.swipeStart(a); break; case "move": b.swipeMove(a); break; case "end": b.swipeEnd(a); } }), (b.prototype.swipeMove = function (a) { var d, e, f, g, h, b = this; return ( (h = void 0 !== a.originalEvent ? a.originalEvent.touches : null), !b.dragging || (h && 1 !== h.length) ? !1 : ((d = b.getLeft(b.currentSlide)), (b.touchObject.curX = void 0 !== h ? h[0].pageX : a.clientX), (b.touchObject.curY = void 0 !== h ? h[0].pageY : a.clientY), (b.touchObject.swipeLength = Math.round( Math.sqrt(Math.pow(b.touchObject.curX - b.touchObject.startX, 2)) )), b.options.verticalSwiping === !0 && (b.touchObject.swipeLength = Math.round( Math.sqrt( Math.pow(b.touchObject.curY - b.touchObject.startY, 2) ) )), (e = b.swipeDirection()), "vertical" !== e ? (void 0 !== a.originalEvent && b.touchObject.swipeLength > 4 && a.preventDefault(), (g = (b.options.rtl === !1 ? 1 : -1) * (b.touchObject.curX > b.touchObject.startX ? 1 : -1)), b.options.verticalSwiping === !0 && (g = b.touchObject.curY > b.touchObject.startY ? 1 : -1), (f = b.touchObject.swipeLength), (b.touchObject.edgeHit = !1), b.options.infinite === !1 && ((0 === b.currentSlide && "right" === e) || (b.currentSlide >= b.getDotCount() && "left" === e)) && ((f = b.touchObject.swipeLength * b.options.edgeFriction), (b.touchObject.edgeHit = !0)), (b.swipeLeft = b.options.vertical === !1 ? d + f * g : d + f * (b.$list.height() / b.listWidth) * g), b.options.verticalSwiping === !0 && (b.swipeLeft = d + f * g), b.options.fade === !0 || b.options.touchMove === !1 ? !1 : b.animating === !0 ? ((b.swipeLeft = null), !1) : (b.setCSS(b.swipeLeft), void 0)) : void 0) ); }), (b.prototype.swipeStart = function (a) { var c, b = this; return 1 !== b.touchObject.fingerCount || b.slideCount <= b.options.slidesToShow ? ((b.touchObject = {}), !1) : (void 0 !== a.originalEvent && void 0 !== a.originalEvent.touches && (c = a.originalEvent.touches[0]), (b.touchObject.startX = b.touchObject.curX = void 0 !== c ? c.pageX : a.clientX), (b.touchObject.startY = b.touchObject.curY = void 0 !== c ? c.pageY : a.clientY), (b.dragging = !0), void 0); }), (b.prototype.unfilterSlides = b.prototype.slickUnfilter = function () { var a = this; null !== a.$slidesCache && (a.unload(), a.$slideTrack.children(this.options.slide).detach(), a.$slidesCache.appendTo(a.$slideTrack), a.reinit()); }), (b.prototype.unload = function () { var b = this; a(".slick-cloned", b.$slider).remove(), b.$dots && b.$dots.remove(), b.$prevArrow && b.htmlExpr.test(b.options.prevArrow) && b.$prevArrow.remove(), b.$nextArrow && b.htmlExpr.test(b.options.nextArrow) && b.$nextArrow.remove(), b.$slides .removeClass("slick-slide slick-active slick-visible slick-current") .attr("aria-hidden", "true") .css("width", ""); }), (b.prototype.unslick = function (a) { var b = this; b.$slider.trigger("unslick", [b, a]), b.destroy(); }), (b.prototype.updateArrows = function () { var b, a = this; (b = Math.floor(a.options.slidesToShow / 2)), a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && !a.options.infinite && (a.$prevArrow .removeClass("slick-disabled") .attr("aria-disabled", "false"), a.$nextArrow .removeClass("slick-disabled") .attr("aria-disabled", "false"), 0 === a.currentSlide ? (a.$prevArrow .addClass("slick-disabled") .attr("aria-disabled", "true"), a.$nextArrow .removeClass("slick-disabled") .attr("aria-disabled", "false")) : a.currentSlide >= a.slideCount - a.options.slidesToShow && a.options.centerMode === !1 ? (a.$nextArrow .addClass("slick-disabled") .attr("aria-disabled", "true"), a.$prevArrow .removeClass("slick-disabled") .attr("aria-disabled", "false")) : a.currentSlide >= a.slideCount - 1 && a.options.centerMode === !0 && (a.$nextArrow .addClass("slick-disabled") .attr("aria-disabled", "true"), a.$prevArrow .removeClass("slick-disabled") .attr("aria-disabled", "false"))); }), (b.prototype.updateDots = function () { var a = this; null !== a.$dots && (a.$dots .find("li") .removeClass("slick-active") .attr("aria-hidden", "true"), a.$dots .find("li") .eq(Math.floor(a.currentSlide / a.options.slidesToScroll)) .addClass("slick-active") .attr("aria-hidden", "false")); }), (b.prototype.visibility = function () { var a = this; document[a.hidden] ? ((a.paused = !0), a.autoPlayClear()) : a.options.autoplay === !0 && ((a.paused = !1), a.autoPlay()); }), (b.prototype.initADA = function () { var b = this; b.$slides .add(b.$slideTrack.find(".slick-cloned")) .attr({ "aria-hidden": "true", tabindex: "-1" }) .find("a, input, button, select") .attr({ tabindex: "-1" }), b.$slideTrack.attr("role", "listbox"), b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function (c) { a(this).attr({ role: "option", "aria-describedby": "slick-slide" + b.instanceUid + c, }); }), null !== b.$dots && b.$dots .attr("role", "tablist") .find("li") .each(function (c) { a(this).attr({ role: "presentation", "aria-selected": "false", "aria-controls": "navigation" + b.instanceUid + c, id: "slick-slide" + b.instanceUid + c, }); }) .first() .attr("aria-selected", "true") .end() .find("button") .attr("role", "button") .end() .closest("div") .attr("role", "toolbar"), b.activateADA(); }), (b.prototype.activateADA = function () { var a = this, b = a.$slider.find("*").is(":focus"); a.$slideTrack .find(".slick-active") .attr({ "aria-hidden": "false", tabindex: "0" }) .find("a, input, button, select") .attr({ tabindex: "0" }), b && a.$slideTrack.find(".slick-active").focus(); }), (b.prototype.focusHandler = function () { var b = this; b.$slider.on("focus.slick blur.slick", "*", function (c) { c.stopImmediatePropagation(); var d = a(this); setTimeout(function () { b.isPlay && (d.is(":focus") ? (b.autoPlayClear(), (b.paused = !0)) : ((b.paused = !1), b.autoPlay())); }, 0); }); }), (a.fn.slick = function () { var g, a = this, c = arguments[0], d = Array.prototype.slice.call(arguments, 1), e = a.length, f = 0; for (f; e > f; f++) if ( ("object" == typeof c || "undefined" == typeof c ? (a[f].slick = new b(a[f], c)) : (g = a[f].slick[c].apply(a[f].slick, d)), "undefined" != typeof g) ) return g; return a; }); }); /*! bootstrap-progressbar v0.9.0 | Copyright (c) 2012-2015 Stephan Groß | MIT license | http://www.minddust.com */ !(function (t) { "use strict"; var e = function (n, s) { (this.$element = t(n)), (this.options = t.extend({}, e.defaults, s)); }; (e.defaults = { transition_delay: 300, refresh_speed: 50, display_text: "none", use_percentage: !0, percent_format: function (t) { return t + "%"; }, amount_format: function (t, e) { return t + " / " + e; }, update: t.noop, done: t.noop, fail: t.noop, }), (e.prototype.transition = function () { var n = this.$element, s = n.parent(), a = this.$back_text, r = this.$front_text, i = this.options, o = parseInt(n.attr("data-transitiongoal")), h = parseInt(n.attr("aria-valuemin")) || 0, d = parseInt(n.attr("aria-valuemax")) || 100, f = s.hasClass("vertical"), p = i.update && "function" == typeof i.update ? i.update : e.defaults.update, u = i.done && "function" == typeof i.done ? i.done : e.defaults.done, c = i.fail && "function" == typeof i.fail ? i.fail : e.defaults.fail; if (isNaN(o)) return void c("data-transitiongoal not set"); var l = Math.round((100 * (o - h)) / (d - h)); if ("center" === i.display_text && !a && !r) { (this.$back_text = a = t("") .addClass("progressbar-back-text") .prependTo(s)), (this.$front_text = r = t("") .addClass("progressbar-front-text") .prependTo(n)); var g; f ? ((g = s.css("height")), a.css({ height: g, "line-height": g }), r.css({ height: g, "line-height": g }), t(window).resize(function () { (g = s.css("height")), a.css({ height: g, "line-height": g }), r.css({ height: g, "line-height": g }); })) : ((g = s.css("width")), r.css({ width: g }), t(window).resize(function () { (g = s.css("width")), r.css({ width: g }); })); } setTimeout(function () { var t, e, c, g, _; f ? n.css("height", l + "%") : n.css("width", l + "%"); var x = setInterval(function () { f ? ((c = n.height()), (g = s.height())) : ((c = n.width()), (g = s.width())), (t = Math.round((100 * c) / g)), (e = Math.round(h + (c / g) * (d - h))), t >= l && ((t = l), (e = o), u(n), clearInterval(x)), "none" !== i.display_text && ((_ = i.use_percentage ? i.percent_format(t) : i.amount_format(e, d, h)), "fill" === i.display_text ? n.text(_) : "center" === i.display_text && (a.text(_), r.text(_))), n.attr("aria-valuenow", e), p(t, n); }, i.refresh_speed); }, i.transition_delay); }); var n = t.fn.progressbar; (t.fn.progressbar = function (n) { return this.each(function () { var s = t(this), a = s.data("bs.progressbar"), r = "object" == typeof n && n; a && r && t.extend(a.options, r), a || s.data("bs.progressbar", (a = new e(this, r))), a.transition(); }); }), (t.fn.progressbar.Constructor = e), (t.fn.progressbar.noConflict = function () { return (t.fn.progressbar = n), this; }); })(window.jQuery); // ProgressBar.js 0.9.0 // https://kimmobrunfeldt.github.io/progressbar.js // License: MIT !(function (a) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = a(); else if ("function" == typeof define && define.amd) define([], a); else { var b; (b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this), (b.ProgressBar = a()); } })(function () { var a; return (function b(a, c, d) { function e(g, h) { if (!c[g]) { if (!a[g]) { var i = "function" == typeof require && require; if (!h && i) return i(g, !0); if (f) return f(g, !0); var j = new Error("Cannot find module '" + g + "'"); throw ((j.code = "MODULE_NOT_FOUND"), j); } var k = (c[g] = { exports: {} }); a[g][0].call( k.exports, function (b) { var c = a[g][1][b]; return e(c ? c : b); }, k, k.exports, b, a, c, d ); } return c[g].exports; } for ( var f = "function" == typeof require && require, g = 0; g < d.length; g++ ) e(d[g]); return e; })( { 1: [ function (b, c, d) { (function () { var b = this, e = (function () { "use strict"; function e() {} function f(a, b) { var c; for (c in a) Object.hasOwnProperty.call(a, c) && b(c); } function g(a, b) { return ( f(b, function (c) { a[c] = b[c]; }), a ); } function h(a, b) { f(b, function (c) { "undefined" == typeof a[c] && (a[c] = b[c]); }); } function i(a, b, c, d, e, f, g) { var h, i, k, l = f > a ? 0 : (a - f) / e; for (h in b) b.hasOwnProperty(h) && ((i = g[h]), (k = "function" == typeof i ? i : o[i]), (b[h] = j(c[h], d[h], k, l))); return b; } function j(a, b, c, d) { return a + (b - a) * c(d); } function k(a, b) { var c = n.prototype.filter, d = a._filterArgs; f(c, function (e) { "undefined" != typeof c[e][b] && c[e][b].apply(a, d); }); } function l(a, b, c, d, e, f, g, h, j, l, m) { (v = b + c + d), (w = Math.min(m || u(), v)), (x = w >= v), (y = d - (v - w)), a.isPlaying() && !x ? ((a._scheduleId = l(a._timeoutHandler, s)), k(a, "beforeTween"), b + c > w ? i(1, e, f, g, 1, 1, h) : i(w, e, f, g, d, b + c, h), k(a, "afterTween"), j(e, a._attachment, y)) : a.isPlaying() && x && (j(g, a._attachment, y), a.stop(!0)); } function m(a, b) { var c = {}, d = typeof b; return ( "string" === d || "function" === d ? f(a, function (a) { c[a] = b; }) : f(a, function (a) { c[a] || (c[a] = b[a] || q); }), c ); } function n(a, b) { (this._currentState = a || {}), (this._configured = !1), (this._scheduleFunction = p), "undefined" != typeof b && this.setConfig(b); } var o, p, q = "linear", r = 500, s = 1e3 / 60, t = Date.now ? Date.now : function () { return +new Date(); }, u = "undefined" != typeof SHIFTY_DEBUG_NOW ? SHIFTY_DEBUG_NOW : t; p = "undefined" != typeof window ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || (window.mozCancelRequestAnimationFrame && window.mozRequestAnimationFrame) || setTimeout : setTimeout; var v, w, x, y; return ( (n.prototype.tween = function (a) { return this._isTweening ? this : ((void 0 === a && this._configured) || this.setConfig(a), (this._timestamp = u()), this._start(this.get(), this._attachment), this.resume()); }), (n.prototype.setConfig = function (a) { (a = a || {}), (this._configured = !0), (this._attachment = a.attachment), (this._pausedAtTime = null), (this._scheduleId = null), (this._delay = a.delay || 0), (this._start = a.start || e), (this._step = a.step || e), (this._finish = a.finish || e), (this._duration = a.duration || r), (this._currentState = g({}, a.from) || this.get()), (this._originalState = this.get()), (this._targetState = g({}, a.to) || this.get()); var b = this; this._timeoutHandler = function () { l( b, b._timestamp, b._delay, b._duration, b._currentState, b._originalState, b._targetState, b._easing, b._step, b._scheduleFunction ); }; var c = this._currentState, d = this._targetState; return ( h(d, c), (this._easing = m(c, a.easing || q)), (this._filterArgs = [ c, this._originalState, d, this._easing, ]), k(this, "tweenCreated"), this ); }), (n.prototype.get = function () { return g({}, this._currentState); }), (n.prototype.set = function (a) { this._currentState = a; }), (n.prototype.pause = function () { return ( (this._pausedAtTime = u()), (this._isPaused = !0), this ); }), (n.prototype.resume = function () { return ( this._isPaused && (this._timestamp += u() - this._pausedAtTime), (this._isPaused = !1), (this._isTweening = !0), this._timeoutHandler(), this ); }), (n.prototype.seek = function (a) { a = Math.max(a, 0); var b = u(); return this._timestamp + a === 0 ? this : ((this._timestamp = b - a), this.isPlaying() || ((this._isTweening = !0), (this._isPaused = !1), l( this, this._timestamp, this._delay, this._duration, this._currentState, this._originalState, this._targetState, this._easing, this._step, this._scheduleFunction, b ), this.pause()), this); }), (n.prototype.stop = function (a) { return ( (this._isTweening = !1), (this._isPaused = !1), (this._timeoutHandler = e), ( b.cancelAnimationFrame || b.webkitCancelAnimationFrame || b.oCancelAnimationFrame || b.msCancelAnimationFrame || b.mozCancelRequestAnimationFrame || b.clearTimeout )(this._scheduleId), a && (k(this, "beforeTween"), i( 1, this._currentState, this._originalState, this._targetState, 1, 0, this._easing ), k(this, "afterTween"), k(this, "afterTweenEnd"), this._finish.call( this, this._currentState, this._attachment )), this ); }), (n.prototype.isPlaying = function () { return this._isTweening && !this._isPaused; }), (n.prototype.setScheduleFunction = function (a) { this._scheduleFunction = a; }), (n.prototype.dispose = function () { var a; for (a in this) this.hasOwnProperty(a) && delete this[a]; }), (n.prototype.filter = {}), (n.prototype.formula = { linear: function (a) { return a; }, }), (o = n.prototype.formula), g(n, { now: u, each: f, tweenProps: i, tweenProp: j, applyFilter: k, shallowCopy: g, defaults: h, composeEasingObject: m, }), "function" == typeof SHIFTY_DEBUG_NOW && (b.timeoutHandler = l), "object" == typeof d ? (c.exports = n) : "function" == typeof a && a.amd ? a(function () { return n; }) : "undefined" == typeof b.Tweenable && (b.Tweenable = n), n ); })(); !(function () { e.shallowCopy(e.prototype.formula, { easeInQuad: function (a) { return Math.pow(a, 2); }, easeOutQuad: function (a) { return -(Math.pow(a - 1, 2) - 1); }, easeInOutQuad: function (a) { return (a /= 0.5) < 1 ? 0.5 * Math.pow(a, 2) : -0.5 * ((a -= 2) * a - 2); }, easeInCubic: function (a) { return Math.pow(a, 3); }, easeOutCubic: function (a) { return Math.pow(a - 1, 3) + 1; }, easeInOutCubic: function (a) { return (a /= 0.5) < 1 ? 0.5 * Math.pow(a, 3) : 0.5 * (Math.pow(a - 2, 3) + 2); }, easeInQuart: function (a) { return Math.pow(a, 4); }, easeOutQuart: function (a) { return -(Math.pow(a - 1, 4) - 1); }, easeInOutQuart: function (a) { return (a /= 0.5) < 1 ? 0.5 * Math.pow(a, 4) : -0.5 * ((a -= 2) * Math.pow(a, 3) - 2); }, easeInQuint: function (a) { return Math.pow(a, 5); }, easeOutQuint: function (a) { return Math.pow(a - 1, 5) + 1; }, easeInOutQuint: function (a) { return (a /= 0.5) < 1 ? 0.5 * Math.pow(a, 5) : 0.5 * (Math.pow(a - 2, 5) + 2); }, easeInSine: function (a) { return -Math.cos(a * (Math.PI / 2)) + 1; }, easeOutSine: function (a) { return Math.sin(a * (Math.PI / 2)); }, easeInOutSine: function (a) { return -0.5 * (Math.cos(Math.PI * a) - 1); }, easeInExpo: function (a) { return 0 === a ? 0 : Math.pow(2, 10 * (a - 1)); }, easeOutExpo: function (a) { return 1 === a ? 1 : -Math.pow(2, -10 * a) + 1; }, easeInOutExpo: function (a) { return 0 === a ? 0 : 1 === a ? 1 : (a /= 0.5) < 1 ? 0.5 * Math.pow(2, 10 * (a - 1)) : 0.5 * (-Math.pow(2, -10 * --a) + 2); }, easeInCirc: function (a) { return -(Math.sqrt(1 - a * a) - 1); }, easeOutCirc: function (a) { return Math.sqrt(1 - Math.pow(a - 1, 2)); }, easeInOutCirc: function (a) { return (a /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - a * a) - 1) : 0.5 * (Math.sqrt(1 - (a -= 2) * a) + 1); }, easeOutBounce: function (a) { return 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 7.5625 * (a -= 1.5 / 2.75) * a + 0.75 : 2.5 / 2.75 > a ? 7.5625 * (a -= 2.25 / 2.75) * a + 0.9375 : 7.5625 * (a -= 2.625 / 2.75) * a + 0.984375; }, easeInBack: function (a) { var b = 1.70158; return a * a * ((b + 1) * a - b); }, easeOutBack: function (a) { var b = 1.70158; return (a -= 1) * a * ((b + 1) * a + b) + 1; }, easeInOutBack: function (a) { var b = 1.70158; return (a /= 0.5) < 1 ? 0.5 * (a * a * (((b *= 1.525) + 1) * a - b)) : 0.5 * ((a -= 2) * a * (((b *= 1.525) + 1) * a + b) + 2); }, elastic: function (a) { return ( -1 * Math.pow(4, -8 * a) * Math.sin(((6 * a - 1) * (2 * Math.PI)) / 2) + 1 ); }, swingFromTo: function (a) { var b = 1.70158; return (a /= 0.5) < 1 ? 0.5 * (a * a * (((b *= 1.525) + 1) * a - b)) : 0.5 * ((a -= 2) * a * (((b *= 1.525) + 1) * a + b) + 2); }, swingFrom: function (a) { var b = 1.70158; return a * a * ((b + 1) * a - b); }, swingTo: function (a) { var b = 1.70158; return (a -= 1) * a * ((b + 1) * a + b) + 1; }, bounce: function (a) { return 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 7.5625 * (a -= 1.5 / 2.75) * a + 0.75 : 2.5 / 2.75 > a ? 7.5625 * (a -= 2.25 / 2.75) * a + 0.9375 : 7.5625 * (a -= 2.625 / 2.75) * a + 0.984375; }, bouncePast: function (a) { return 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 2 - (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) : 2.5 / 2.75 > a ? 2 - (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) : 2 - (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375); }, easeFromTo: function (a) { return (a /= 0.5) < 1 ? 0.5 * Math.pow(a, 4) : -0.5 * ((a -= 2) * Math.pow(a, 3) - 2); }, easeFrom: function (a) { return Math.pow(a, 4); }, easeTo: function (a) { return Math.pow(a, 0.25); }, }); })(), (function () { function a(a, b, c, d, e, f) { function g(a) { return ((n * a + o) * a + p) * a; } function h(a) { return ((q * a + r) * a + s) * a; } function i(a) { return (3 * n * a + 2 * o) * a + p; } function j(a) { return 1 / (200 * a); } function k(a, b) { return h(m(a, b)); } function l(a) { return a >= 0 ? a : 0 - a; } function m(a, b) { var c, d, e, f, h, j; for (e = a, j = 0; 8 > j; j++) { if (((f = g(e) - a), l(f) < b)) return e; if (((h = i(e)), l(h) < 1e-6)) break; e -= f / h; } if (((c = 0), (d = 1), (e = a), c > e)) return c; if (e > d) return d; for (; d > c; ) { if (((f = g(e)), l(f - a) < b)) return e; a > f ? (c = e) : (d = e), (e = 0.5 * (d - c) + c); } return e; } var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; return ( (p = 3 * b), (o = 3 * (d - b) - p), (n = 1 - p - o), (s = 3 * c), (r = 3 * (e - c) - s), (q = 1 - s - r), k(a, j(f)) ); } function b(b, c, d, e) { return function (f) { return a(f, b, c, d, e, 1); }; } (e.setBezierFunction = function (a, c, d, f, g) { var h = b(c, d, f, g); return ( (h.displayName = a), (h.x1 = c), (h.y1 = d), (h.x2 = f), (h.y2 = g), (e.prototype.formula[a] = h) ); }), (e.unsetBezierFunction = function (a) { delete e.prototype.formula[a]; }); })(), (function () { function a(a, b, c, d, f, g) { return e.tweenProps(d, b, a, c, 1, g, f); } var b = new e(); (b._filterArgs = []), (e.interpolate = function (c, d, f, g, h) { var i = e.shallowCopy({}, c), j = h || 0, k = e.composeEasingObject(c, g || "linear"); b.set({}); var l = b._filterArgs; (l.length = 0), (l[0] = i), (l[1] = c), (l[2] = d), (l[3] = k), e.applyFilter(b, "tweenCreated"), e.applyFilter(b, "beforeTween"); var m = a(c, i, d, f, k, j); return e.applyFilter(b, "afterTween"), m; }); })(), (function (a) { function b(a, b) { var c, d = [], e = a.length; for (c = 0; e > c; c++) d.push("_" + b + "_" + c); return d; } function c(a) { var b = a.match(v); return ( b ? (1 === b.length || a[0].match(u)) && b.unshift("") : (b = ["", ""]), b.join(A) ); } function d(b) { a.each(b, function (a) { var c = b[a]; "string" == typeof c && c.match(z) && (b[a] = e(c)); }); } function e(a) { return i(z, a, f); } function f(a) { var b = g(a); return "rgb(" + b[0] + "," + b[1] + "," + b[2] + ")"; } function g(a) { return ( (a = a.replace(/#/, "")), 3 === a.length && ((a = a.split("")), (a = a[0] + a[0] + a[1] + a[1] + a[2] + a[2])), (B[0] = h(a.substr(0, 2))), (B[1] = h(a.substr(2, 2))), (B[2] = h(a.substr(4, 2))), B ); } function h(a) { return parseInt(a, 16); } function i(a, b, c) { var d = b.match(a), e = b.replace(a, A); if (d) for (var f, g = d.length, h = 0; g > h; h++) (f = d.shift()), (e = e.replace(A, c(f))); return e; } function j(a) { return i(x, a, k); } function k(a) { for ( var b = a.match(w), c = b.length, d = a.match(y)[0], e = 0; c > e; e++ ) d += parseInt(b[e], 10) + ","; return (d = d.slice(0, -1) + ")"); } function l(d) { var e = {}; return ( a.each(d, function (a) { var f = d[a]; if ("string" == typeof f) { var g = r(f); e[a] = { formatString: c(f), chunkNames: b(g, a) }; } }), e ); } function m(b, c) { a.each(c, function (a) { for ( var d = b[a], e = r(d), f = e.length, g = 0; f > g; g++ ) b[c[a].chunkNames[g]] = +e[g]; delete b[a]; }); } function n(b, c) { a.each(c, function (a) { var d = b[a], e = o(b, c[a].chunkNames), f = p(e, c[a].chunkNames); (d = q(c[a].formatString, f)), (b[a] = j(d)); }); } function o(a, b) { for (var c, d = {}, e = b.length, f = 0; e > f; f++) (c = b[f]), (d[c] = a[c]), delete a[c]; return d; } function p(a, b) { C.length = 0; for (var c = b.length, d = 0; c > d; d++) C.push(a[b[d]]); return C; } function q(a, b) { for (var c = a, d = b.length, e = 0; d > e; e++) c = c.replace(A, +b[e].toFixed(4)); return c; } function r(a) { return a.match(w); } function s(b, c) { a.each(c, function (a) { var d, e = c[a], f = e.chunkNames, g = f.length, h = b[a]; if ("string" == typeof h) { var i = h.split(" "), j = i[i.length - 1]; for (d = 0; g > d; d++) b[f[d]] = i[d] || j; } else for (d = 0; g > d; d++) b[f[d]] = h; delete b[a]; }); } function t(b, c) { a.each(c, function (a) { var d = c[a], e = d.chunkNames, f = e.length, g = b[e[0]], h = typeof g; if ("string" === h) { for (var i = "", j = 0; f > j; j++) (i += " " + b[e[j]]), delete b[e[j]]; b[a] = i.substr(1); } else b[a] = g; }); } var u = /(\d|\-|\.)/, v = /([^\-0-9\.]+)/g, w = /[0-9.\-]+/g, x = new RegExp( "rgb\\(" + w.source + /,\s*/.source + w.source + /,\s*/.source + w.source + "\\)", "g" ), y = /^.*\(/, z = /#([0-9]|[a-f]){3,6}/gi, A = "VAL", B = [], C = []; a.prototype.filter.token = { tweenCreated: function (a, b, c, e) { d(a), d(b), d(c), (this._tokenData = l(a)); }, beforeTween: function (a, b, c, d) { s(d, this._tokenData), m(a, this._tokenData), m(b, this._tokenData), m(c, this._tokenData); }, afterTween: function (a, b, c, d) { n(a, this._tokenData), n(b, this._tokenData), n(c, this._tokenData), t(d, this._tokenData); }, }; })(e); }.call(null)); }, {}, ], 2: [ function (a, b, c) { var d = a("./shape"), e = a("./utils"), f = function (a, b) { (this._pathTemplate = "M 50,50 m 0,-{radius} a {radius},{radius} 0 1 1 0,{2radius} a {radius},{radius} 0 1 1 0,-{2radius}"), d.apply(this, arguments); }; (f.prototype = new d()), (f.prototype.constructor = f), (f.prototype._pathString = function (a) { var b = a.strokeWidth; a.trailWidth && a.trailWidth > a.strokeWidth && (b = a.trailWidth); var c = 50 - b / 2; return e.render(this._pathTemplate, { radius: c, "2radius": 2 * c, }); }), (f.prototype._trailString = function (a) { return this._pathString(a); }), (b.exports = f); }, { "./shape": 7, "./utils": 8 }, ], 3: [ function (a, b, c) { var d = a("./shape"), e = a("./utils"), f = function (a, b) { (this._pathTemplate = "M 0,{center} L 100,{center}"), d.apply(this, arguments); }; (f.prototype = new d()), (f.prototype.constructor = f), (f.prototype._initializeSvg = function (a, b) { a.setAttribute("viewBox", "0 0 100 " + b.strokeWidth), a.setAttribute("preserveAspectRatio", "none"); }), (f.prototype._pathString = function (a) { return e.render(this._pathTemplate, { center: a.strokeWidth / 2, }); }), (f.prototype._trailString = function (a) { return this._pathString(a); }), (b.exports = f); }, { "./shape": 7, "./utils": 8 }, ], 4: [ function (a, b, c) { b.exports = { Line: a("./line"), Circle: a("./circle"), SemiCircle: a("./semicircle"), Path: a("./path"), Shape: a("./shape"), utils: a("./utils"), }; }, { "./circle": 2, "./line": 3, "./path": 5, "./semicircle": 6, "./shape": 7, "./utils": 8, }, ], 5: [ function (a, b, c) { var d = a("shifty"), e = a("./utils"), f = { easeIn: "easeInCubic", easeOut: "easeOutCubic", easeInOut: "easeInOutCubic", }, g = function (a, b) { b = e.extend( { duration: 800, easing: "linear", from: {}, to: {}, step: function () {}, }, b ); var c; (c = e.isString(a) ? document.querySelector(a) : a), (this.path = c), (this._opts = b), (this._tweenable = null); var d = this.path.getTotalLength(); (this.path.style.strokeDasharray = d + " " + d), this.set(0); }; (g.prototype.value = function () { var a = this._getComputedDashOffset(), b = this.path.getTotalLength(), c = 1 - a / b; return parseFloat(c.toFixed(6), 10); }), (g.prototype.set = function (a) { this.stop(), (this.path.style.strokeDashoffset = this._progressToOffset(a)); var b = this._opts.step; if (e.isFunction(b)) { var c = this._easing(this._opts.easing), d = this._calculateTo(a, c), f = this._opts.shape || this; b(d, f, this._opts.attachment); } }), (g.prototype.stop = function () { this._stopTween(), (this.path.style.strokeDashoffset = this._getComputedDashOffset()); }), (g.prototype.animate = function (a, b, c) { (b = b || {}), e.isFunction(b) && ((c = b), (b = {})); var f = e.extend({}, b), g = e.extend({}, this._opts); b = e.extend(g, b); var h = this._easing(b.easing), i = this._resolveFromAndTo(a, h, f); this.stop(), this.path.getBoundingClientRect(); var j = this._getComputedDashOffset(), k = this._progressToOffset(a), l = this; (this._tweenable = new d()), this._tweenable.tween({ from: e.extend({ offset: j }, i.from), to: e.extend({ offset: k }, i.to), duration: b.duration, easing: h, step: function (a) { l.path.style.strokeDashoffset = a.offset; var c = b.shape || l; b.step(a, c, b.attachment); }, finish: function (a) { e.isFunction(c) && c(); }, }); }), (g.prototype._getComputedDashOffset = function () { var a = window.getComputedStyle(this.path, null); return parseFloat(a.getPropertyValue("stroke-dashoffset"), 10); }), (g.prototype._progressToOffset = function (a) { var b = this.path.getTotalLength(); return b - a * b; }), (g.prototype._resolveFromAndTo = function (a, b, c) { return c.from && c.to ? { from: c.from, to: c.to } : { from: this._calculateFrom(b), to: this._calculateTo(a, b) }; }), (g.prototype._calculateFrom = function (a) { return d.interpolate( this._opts.from, this._opts.to, this.value(), a ); }), (g.prototype._calculateTo = function (a, b) { return d.interpolate(this._opts.from, this._opts.to, a, b); }), (g.prototype._stopTween = function () { null !== this._tweenable && (this._tweenable.stop(), this._tweenable.dispose(), (this._tweenable = null)); }), (g.prototype._easing = function (a) { return f.hasOwnProperty(a) ? f[a] : a; }), (b.exports = g); }, { "./utils": 8, shifty: 1 }, ], 6: [ function (a, b, c) { var d = a("./shape"), e = a("./circle"), f = a("./utils"), g = function (a, b) { (this._pathTemplate = "M 50,50 m -{radius},0 a {radius},{radius} 0 1 1 {2radius},0"), d.apply(this, arguments); }; (g.prototype = new d()), (g.prototype.constructor = g), (g.prototype._initializeSvg = function (a, b) { a.setAttribute("viewBox", "0 0 100 50"); }), (g.prototype._initializeTextElement = function (a, b, c) { a.text.style && ((c.style.top = "auto"), (c.style.bottom = "0"), a.text.alignToBottom ? f.setStyle(c, "transform", "translate(-50%, 0)") : f.setStyle(c, "transform", "translate(-50%, 50%)")); }), (g.prototype._pathString = e.prototype._pathString), (g.prototype._trailString = e.prototype._trailString), (b.exports = g); }, { "./circle": 2, "./shape": 7, "./utils": 8 }, ], 7: [ function (a, b, c) { var d = a("./path"), e = a("./utils"), f = "Object is destroyed", g = function h(a, b) { if (!(this instanceof h)) throw new Error("Constructor was called without new keyword"); if (0 !== arguments.length) { this._opts = e.extend( { color: "#555", strokeWidth: 1, trailColor: null, trailWidth: null, fill: null, text: { style: { color: null, position: "absolute", left: "50%", top: "50%", padding: 0, margin: 0, transform: { prefix: !0, value: "translate(-50%, -50%)", }, }, alignToBottom: !0, value: "", className: "progressbar-text", }, svgStyle: { display: "block", width: "100%" }, }, b, !0 ); var c, f = this._createSvgView(this._opts); if (((c = e.isString(a) ? document.querySelector(a) : a), !c)) throw new Error("Container does not exist: " + a); (this._container = c), this._container.appendChild(f.svg), this._opts.svgStyle && e.setStyles(f.svg, this._opts.svgStyle), (this.text = null), this._opts.text.value && ((this.text = this._createTextElement( this._opts, this._container )), this._container.appendChild(this.text)), (this.svg = f.svg), (this.path = f.path), (this.trail = f.trail); var g = e.extend( { attachment: void 0, shape: this }, this._opts ); this._progressPath = new d(f.path, g); } }; (g.prototype.animate = function (a, b, c) { if (null === this._progressPath) throw new Error(f); this._progressPath.animate(a, b, c); }), (g.prototype.stop = function () { if (null === this._progressPath) throw new Error(f); void 0 !== this._progressPath && this._progressPath.stop(); }), (g.prototype.destroy = function () { if (null === this._progressPath) throw new Error(f); this.stop(), this.svg.parentNode.removeChild(this.svg), (this.svg = null), (this.path = null), (this.trail = null), (this._progressPath = null), null !== this.text && (this.text.parentNode.removeChild(this.text), (this.text = null)); }), (g.prototype.set = function (a) { if (null === this._progressPath) throw new Error(f); this._progressPath.set(a); }), (g.prototype.value = function () { if (null === this._progressPath) throw new Error(f); return void 0 === this._progressPath ? 0 : this._progressPath.value(); }), (g.prototype.setText = function (a) { if (null === this._progressPath) throw new Error(f); null === this.text && ((this.text = this._createTextElement( this._opts, this._container )), this._container.appendChild(this.text)), this.text.removeChild(this.text.firstChild), this.text.appendChild(document.createTextNode(a)); }), (g.prototype._createSvgView = function (a) { var b = document.createElementNS( "http://www.w3.org/2000/svg", "svg" ); this._initializeSvg(b, a); var c = null; (a.trailColor || a.trailWidth) && ((c = this._createTrail(a)), b.appendChild(c)); var d = this._createPath(a); return b.appendChild(d), { svg: b, path: d, trail: c }; }), (g.prototype._initializeSvg = function (a, b) { a.setAttribute("viewBox", "0 0 100 100"); }), (g.prototype._createPath = function (a) { var b = this._pathString(a); return this._createPathElement(b, a); }), (g.prototype._createTrail = function (a) { var b = this._trailString(a), c = e.extend({}, a); return ( c.trailColor || (c.trailColor = "#eee"), c.trailWidth || (c.trailWidth = c.strokeWidth), (c.color = c.trailColor), (c.strokeWidth = c.trailWidth), (c.fill = null), this._createPathElement(b, c) ); }), (g.prototype._createPathElement = function (a, b) { var c = document.createElementNS( "http://www.w3.org/2000/svg", "path" ); return ( c.setAttribute("d", a), c.setAttribute("stroke", b.color), c.setAttribute("stroke-width", b.strokeWidth), b.fill ? c.setAttribute("fill", b.fill) : c.setAttribute("fill-opacity", "0"), c ); }), (g.prototype._createTextElement = function (a, b) { var c = document.createElement("p"); c.appendChild(document.createTextNode(a.text.value)); var d = a.text.style; return ( d && ((b.style.position = "relative"), e.setStyles(c, d), d.color || (c.style.color = a.color)), (c.className = a.text.className), this._initializeTextElement(a, b, c), c ); }), (g.prototype._initializeTextElement = function (a, b, c) {}), (g.prototype._pathString = function (a) { throw new Error("Override this function for each progress bar"); }), (g.prototype._trailString = function (a) { throw new Error("Override this function for each progress bar"); }), (b.exports = g); }, { "./path": 5, "./utils": 8 }, ], 8: [ function (a, b, c) { function d(a, b, c) { (a = a || {}), (b = b || {}), (c = c || !1); for (var e in b) if (b.hasOwnProperty(e)) { var f = a[e], g = b[e]; c && l(f) && l(g) ? (a[e] = d(f, g, c)) : (a[e] = g); } return a; } function e(a, b) { var c = a; for (var d in b) if (b.hasOwnProperty(d)) { var e = b[d], f = "\\{" + d + "\\}", g = new RegExp(f, "g"); c = c.replace(g, e); } return c; } function f(a, b, c) { for (var d = 0; d < n.length; ++d) { var e = n[d]; a.style[e + h(b)] = c; } a.style[b] = c; } function g(a, b) { m(b, function (b, c) { null !== b && void 0 !== b && (l(b) && b.prefix === !0 ? f(a, c, b.value) : (a.style[c] = b)); }); } function h(a) { return a.charAt(0).toUpperCase() + a.slice(1); } function i(a) { return "string" == typeof a || a instanceof String; } function j(a) { return "function" == typeof a; } function k(a) { return "[object Array]" === Object.prototype.toString.call(a); } function l(a) { if (k(a)) return !1; var b = typeof a; return "object" === b && !!a; } function m(a, b) { for (var c in a) if (a.hasOwnProperty(c)) { var d = a[c]; b(d, c); } } var n = "Webkit Moz O ms".split(" "); b.exports = { extend: d, render: e, setStyle: f, setStyles: g, capitalize: h, isString: i, isFunction: j, isObject: l, forEachObject: m, }; }, {}, ], }, {}, [4] )(4); }); /*! * Chart.js * http://chartjs.org/ * Version: 1.0.2 * * Copyright 2015 Nick Downie * Released under the MIT license * https://github.com/nnnick/Chart.js/blob/master/LICENSE.md */ (function () { "use strict"; var t = this, i = t.Chart, e = function (t) { (this.canvas = t.canvas), (this.ctx = t); var i = function (t, i) { return t["offset" + i] ? t["offset" + i] : document.defaultView.getComputedStyle(t).getPropertyValue(i); }, e = (this.width = i(t.canvas, "Width")), n = (this.height = i(t.canvas, "Height")); (t.canvas.width = e), (t.canvas.height = n); var e = (this.width = t.canvas.width), n = (this.height = t.canvas.height); return ( (this.aspectRatio = this.width / this.height), s.retinaScale(this), this ); }; (e.defaults = { global: { animation: !0, animationSteps: 60, animationEasing: "easeOutQuart", showScale: !0, scaleOverride: !1, scaleSteps: null, scaleStepWidth: null, scaleStartValue: null, scaleLineColor: "rgba(0,0,0,.1)", scaleLineWidth: 1, scaleShowLabels: !0, scaleLabel: "<%=value%>", scaleIntegersOnly: !0, scaleBeginAtZero: !1, scaleFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", scaleFontSize: 12, scaleFontStyle: "normal", scaleFontColor: "#666", responsive: !1, maintainAspectRatio: !0, showTooltips: !0, customTooltips: !1, tooltipEvents: ["mousemove", "touchstart", "touchmove", "mouseout"], tooltipFillColor: "rgba(0,0,0,0.8)", tooltipFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", tooltipFontSize: 14, tooltipFontStyle: "normal", tooltipFontColor: "#fff", tooltipTitleFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", tooltipTitleFontSize: 14, tooltipTitleFontStyle: "bold", tooltipTitleFontColor: "#fff", tooltipYPadding: 6, tooltipXPadding: 6, tooltipCaretSize: 8, tooltipCornerRadius: 6, tooltipXOffset: 10, tooltipTemplate: "<%if (label){%><%=label%>: <%}%><%= value %>", multiTooltipTemplate: "<%= value %>", multiTooltipKeyBackground: "#fff", onAnimationProgress: function () {}, onAnimationComplete: function () {}, }, }), (e.types = {}); var s = (e.helpers = {}), n = (s.each = function (t, i, e) { var s = Array.prototype.slice.call(arguments, 3); if (t) if (t.length === +t.length) { var n; for (n = 0; n < t.length; n++) i.apply(e, [t[n], n].concat(s)); } else for (var o in t) i.apply(e, [t[o], o].concat(s)); }), o = (s.clone = function (t) { var i = {}; return ( n(t, function (e, s) { t.hasOwnProperty(s) && (i[s] = e); }), i ); }), a = (s.extend = function (t) { return ( n(Array.prototype.slice.call(arguments, 1), function (i) { n(i, function (e, s) { i.hasOwnProperty(s) && (t[s] = e); }); }), t ); }), h = (s.merge = function () { var t = Array.prototype.slice.call(arguments, 0); return t.unshift({}), a.apply(null, t); }), l = (s.indexOf = function (t, i) { if (Array.prototype.indexOf) return t.indexOf(i); for (var e = 0; e < t.length; e++) if (t[e] === i) return e; return -1; }), r = ((s.where = function (t, i) { var e = []; return ( s.each(t, function (t) { i(t) && e.push(t); }), e ); }), (s.findNextWhere = function (t, i, e) { e || (e = -1); for (var s = e + 1; s < t.length; s++) { var n = t[s]; if (i(n)) return n; } }), (s.findPreviousWhere = function (t, i, e) { e || (e = t.length); for (var s = e - 1; s >= 0; s--) { var n = t[s]; if (i(n)) return n; } }), (s.inherits = function (t) { var i = this, e = t && t.hasOwnProperty("constructor") ? t.constructor : function () { return i.apply(this, arguments); }, s = function () { this.constructor = e; }; return ( (s.prototype = i.prototype), (e.prototype = new s()), (e.extend = r), t && a(e.prototype, t), (e.__super__ = i.prototype), e ); })), c = (s.noop = function () {}), u = (s.uid = (function () { var t = 0; return function () { return "chart-" + t++; }; })()), d = (s.warn = function (t) { window.console && "function" == typeof window.console.warn && console.warn(t); }), p = (s.amd = "function" == typeof define && define.amd), f = (s.isNumber = function (t) { return !isNaN(parseFloat(t)) && isFinite(t); }), g = (s.max = function (t) { return Math.max.apply(Math, t); }), m = (s.min = function (t) { return Math.min.apply(Math, t); }), v = ((s.cap = function (t, i, e) { if (f(i)) { if (t > i) return i; } else if (f(e) && e > t) return e; return t; }), (s.getDecimalPlaces = function (t) { return t % 1 !== 0 && f(t) ? t.toString().split(".")[1].length : 0; })), S = (s.radians = function (t) { return t * (Math.PI / 180); }), x = ((s.getAngleFromPoint = function (t, i) { var e = i.x - t.x, s = i.y - t.y, n = Math.sqrt(e * e + s * s), o = 2 * Math.PI + Math.atan2(s, e); return 0 > e && 0 > s && (o += 2 * Math.PI), { angle: o, distance: n }; }), (s.aliasPixel = function (t) { return t % 2 === 0 ? 0 : 0.5; })), y = ((s.splineCurve = function (t, i, e, s) { var n = Math.sqrt(Math.pow(i.x - t.x, 2) + Math.pow(i.y - t.y, 2)), o = Math.sqrt(Math.pow(e.x - i.x, 2) + Math.pow(e.y - i.y, 2)), a = (s * n) / (n + o), h = (s * o) / (n + o); return { inner: { x: i.x - a * (e.x - t.x), y: i.y - a * (e.y - t.y) }, outer: { x: i.x + h * (e.x - t.x), y: i.y + h * (e.y - t.y) }, }; }), (s.calculateOrderOfMagnitude = function (t) { return Math.floor(Math.log(t) / Math.LN10); })), C = ((s.calculateScaleRange = function (t, i, e, s, n) { var o = 2, a = Math.floor(i / (1.5 * e)), h = o >= a, l = g(t), r = m(t); l === r && ((l += 0.5), r >= 0.5 && !s ? (r -= 0.5) : (l += 0.5)); for ( var c = Math.abs(l - r), u = y(c), d = Math.ceil(l / (1 * Math.pow(10, u))) * Math.pow(10, u), p = s ? 0 : Math.floor(r / (1 * Math.pow(10, u))) * Math.pow(10, u), f = d - p, v = Math.pow(10, u), S = Math.round(f / v); (S > a || a > 2 * S) && !h; ) if (S > a) (v *= 2), (S = Math.round(f / v)), S % 1 !== 0 && (h = !0); else if (n && u >= 0) { if ((v / 2) % 1 !== 0) break; (v /= 2), (S = Math.round(f / v)); } else (v /= 2), (S = Math.round(f / v)); return ( h && ((S = o), (v = f / S)), { steps: S, stepValue: v, min: p, max: p + S * v } ); }), (s.template = function (t, i) { function e(t, i) { var e = /\W/.test(t) ? new Function( "obj", "var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('" + t .replace(/[\r\t\n]/g, " ") .split("<%") .join(" ") .replace(/((^|%>)[^\t]*)'/g, "$1\r") .replace(/\t=(.*?)%>/g, "',$1,'") .split(" ") .join("');") .split("%>") .join("p.push('") .split("\r") .join("\\'") + "');}return p.join('');" ) : (s[t] = s[t]); return i ? e(i) : e; } if (t instanceof Function) return t(i); var s = {}; return e(t, i); })), w = ((s.generateLabels = function (t, i, e, s) { var o = new Array(i); return ( labelTemplateString && n(o, function (i, n) { o[n] = C(t, { value: e + s * (n + 1) }); }), o ); }), (s.easingEffects = { linear: function (t) { return t; }, easeInQuad: function (t) { return t * t; }, easeOutQuad: function (t) { return -1 * t * (t - 2); }, easeInOutQuad: function (t) { return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1); }, easeInCubic: function (t) { return t * t * t; }, easeOutCubic: function (t) { return 1 * ((t = t / 1 - 1) * t * t + 1); }, easeInOutCubic: function (t) { return (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2); }, easeInQuart: function (t) { return t * t * t * t; }, easeOutQuart: function (t) { return -1 * ((t = t / 1 - 1) * t * t * t - 1); }, easeInOutQuart: function (t) { return (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2); }, easeInQuint: function (t) { return 1 * (t /= 1) * t * t * t * t; }, easeOutQuint: function (t) { return 1 * ((t = t / 1 - 1) * t * t * t * t + 1); }, easeInOutQuint: function (t) { return (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2); }, easeInSine: function (t) { return -1 * Math.cos((t / 1) * (Math.PI / 2)) + 1; }, easeOutSine: function (t) { return 1 * Math.sin((t / 1) * (Math.PI / 2)); }, easeInOutSine: function (t) { return -0.5 * (Math.cos((Math.PI * t) / 1) - 1); }, easeInExpo: function (t) { return 0 === t ? 1 : 1 * Math.pow(2, 10 * (t / 1 - 1)); }, easeOutExpo: function (t) { return 1 === t ? 1 : 1 * (-Math.pow(2, (-10 * t) / 1) + 1); }, easeInOutExpo: function (t) { return 0 === t ? 0 : 1 === t ? 1 : (t /= 0.5) < 1 ? 0.5 * Math.pow(2, 10 * (t - 1)) : 0.5 * (-Math.pow(2, -10 * --t) + 2); }, easeInCirc: function (t) { return t >= 1 ? t : -1 * (Math.sqrt(1 - (t /= 1) * t) - 1); }, easeOutCirc: function (t) { return 1 * Math.sqrt(1 - (t = t / 1 - 1) * t); }, easeInOutCirc: function (t) { return (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1); }, easeInElastic: function (t) { var i = 1.70158, e = 0, s = 1; return 0 === t ? 0 : 1 == (t /= 1) ? 1 : (e || (e = 0.3), s < Math.abs(1) ? ((s = 1), (i = e / 4)) : (i = (e / (2 * Math.PI)) * Math.asin(1 / s)), -( s * Math.pow(2, 10 * (t -= 1)) * Math.sin((2 * (1 * t - i) * Math.PI) / e) )); }, easeOutElastic: function (t) { var i = 1.70158, e = 0, s = 1; return 0 === t ? 0 : 1 == (t /= 1) ? 1 : (e || (e = 0.3), s < Math.abs(1) ? ((s = 1), (i = e / 4)) : (i = (e / (2 * Math.PI)) * Math.asin(1 / s)), s * Math.pow(2, -10 * t) * Math.sin((2 * (1 * t - i) * Math.PI) / e) + 1); }, easeInOutElastic: function (t) { var i = 1.70158, e = 0, s = 1; return 0 === t ? 0 : 2 == (t /= 0.5) ? 1 : (e || (e = 0.3 * 1.5), s < Math.abs(1) ? ((s = 1), (i = e / 4)) : (i = (e / (2 * Math.PI)) * Math.asin(1 / s)), 1 > t ? -0.5 * s * Math.pow(2, 10 * (t -= 1)) * Math.sin((2 * (1 * t - i) * Math.PI) / e) : s * Math.pow(2, -10 * (t -= 1)) * Math.sin((2 * (1 * t - i) * Math.PI) / e) * 0.5 + 1); }, easeInBack: function (t) { var i = 1.70158; return 1 * (t /= 1) * t * ((i + 1) * t - i); }, easeOutBack: function (t) { var i = 1.70158; return 1 * ((t = t / 1 - 1) * t * ((i + 1) * t + i) + 1); }, easeInOutBack: function (t) { var i = 1.70158; return (t /= 0.5) < 1 ? 0.5 * t * t * (((i *= 1.525) + 1) * t - i) : 0.5 * ((t -= 2) * t * (((i *= 1.525) + 1) * t + i) + 2); }, easeInBounce: function (t) { return 1 - w.easeOutBounce(1 - t); }, easeOutBounce: function (t) { return (t /= 1) < 1 / 2.75 ? 7.5625 * t * t : 2 / 2.75 > t ? 1 * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) : 2.5 / 2.75 > t ? 1 * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) : 1 * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375); }, easeInOutBounce: function (t) { return 0.5 > t ? 0.5 * w.easeInBounce(2 * t) : 0.5 * w.easeOutBounce(2 * t - 1) + 0.5; }, })), b = (s.requestAnimFrame = (function () { return ( window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (t) { return window.setTimeout(t, 1e3 / 60); } ); })()), P = (s.cancelAnimFrame = (function () { return ( window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame || function (t) { return window.clearTimeout(t, 1e3 / 60); } ); })()), L = ((s.animationLoop = function (t, i, e, s, n, o) { var a = 0, h = w[e] || w.linear, l = function () { a++; var e = a / i, r = h(e); t.call(o, r, e, a), s.call(o, r, e), i > a ? (o.animationFrame = b(l)) : n.apply(o); }; b(l); }), (s.getRelativePosition = function (t) { var i, e, s = t.originalEvent || t, n = t.currentTarget || t.srcElement, o = n.getBoundingClientRect(); return ( s.touches ? ((i = s.touches[0].clientX - o.left), (e = s.touches[0].clientY - o.top)) : ((i = s.clientX - o.left), (e = s.clientY - o.top)), { x: i, y: e } ); }), (s.addEvent = function (t, i, e) { t.addEventListener ? t.addEventListener(i, e) : t.attachEvent ? t.attachEvent("on" + i, e) : (t["on" + i] = e); })), k = (s.removeEvent = function (t, i, e) { t.removeEventListener ? t.removeEventListener(i, e, !1) : t.detachEvent ? t.detachEvent("on" + i, e) : (t["on" + i] = c); }), F = ((s.bindEvents = function (t, i, e) { t.events || (t.events = {}), n(i, function (i) { (t.events[i] = function () { e.apply(t, arguments); }), L(t.chart.canvas, i, t.events[i]); }); }), (s.unbindEvents = function (t, i) { n(i, function (i, e) { k(t.chart.canvas, e, i); }); })), R = (s.getMaximumWidth = function (t) { var i = t.parentNode; return i.clientWidth; }), T = (s.getMaximumHeight = function (t) { var i = t.parentNode; return i.clientHeight; }), A = ((s.getMaximumSize = s.getMaximumWidth), (s.retinaScale = function (t) { var i = t.ctx, e = t.canvas.width, s = t.canvas.height; window.devicePixelRatio && ((i.canvas.style.width = e + "px"), (i.canvas.style.height = s + "px"), (i.canvas.height = s * window.devicePixelRatio), (i.canvas.width = e * window.devicePixelRatio), i.scale(window.devicePixelRatio, window.devicePixelRatio)); })), M = (s.clear = function (t) { t.ctx.clearRect(0, 0, t.width, t.height); }), W = (s.fontString = function (t, i, e) { return i + " " + t + "px " + e; }), z = (s.longestText = function (t, i, e) { t.font = i; var s = 0; return ( n(e, function (i) { var e = t.measureText(i).width; s = e > s ? e : s; }), s ); }), B = (s.drawRoundedRectangle = function (t, i, e, s, n, o) { t.beginPath(), t.moveTo(i + o, e), t.lineTo(i + s - o, e), t.quadraticCurveTo(i + s, e, i + s, e + o), t.lineTo(i + s, e + n - o), t.quadraticCurveTo(i + s, e + n, i + s - o, e + n), t.lineTo(i + o, e + n), t.quadraticCurveTo(i, e + n, i, e + n - o), t.lineTo(i, e + o), t.quadraticCurveTo(i, e, i + o, e), t.closePath(); }); (e.instances = {}), (e.Type = function (t, i, s) { (this.options = i), (this.chart = s), (this.id = u()), (e.instances[this.id] = this), i.responsive && this.resize(), this.initialize.call(this, t); }), a(e.Type.prototype, { initialize: function () { return this; }, clear: function () { return M(this.chart), this; }, stop: function () { return P(this.animationFrame), this; }, resize: function (t) { this.stop(); var i = this.chart.canvas, e = R(this.chart.canvas), s = this.options.maintainAspectRatio ? e / this.chart.aspectRatio : T(this.chart.canvas); return ( (i.width = this.chart.width = e), (i.height = this.chart.height = s), A(this.chart), "function" == typeof t && t.apply(this, Array.prototype.slice.call(arguments, 1)), this ); }, reflow: c, render: function (t) { return ( t && this.reflow(), this.options.animation && !t ? s.animationLoop( this.draw, this.options.animationSteps, this.options.animationEasing, this.options.onAnimationProgress, this.options.onAnimationComplete, this ) : (this.draw(), this.options.onAnimationComplete.call(this)), this ); }, generateLegend: function () { return C(this.options.legendTemplate, this); }, destroy: function () { this.clear(), F(this, this.events); var t = this.chart.canvas; (t.width = this.chart.width), (t.height = this.chart.height), t.style.removeProperty ? (t.style.removeProperty("width"), t.style.removeProperty("height")) : (t.style.removeAttribute("width"), t.style.removeAttribute("height")), delete e.instances[this.id]; }, showTooltip: function (t, i) { "undefined" == typeof this.activeElements && (this.activeElements = []); var o = function (t) { var i = !1; return t.length !== this.activeElements.length ? (i = !0) : (n( t, function (t, e) { t !== this.activeElements[e] && (i = !0); }, this ), i); }.call(this, t); if (o || i) { if ( ((this.activeElements = t), this.draw(), this.options.customTooltips && this.options.customTooltips(!1), t.length > 0) ) if (this.datasets && this.datasets.length > 1) { for ( var a, h, r = this.datasets.length - 1; r >= 0 && ((a = this.datasets[r].points || this.datasets[r].bars || this.datasets[r].segments), (h = l(a, t[0])), -1 === h); r-- ); var c = [], u = [], d = function () { var t, i, e, n, o, a = [], l = [], r = []; return ( s.each(this.datasets, function (i) { (t = i.points || i.bars || i.segments), t[h] && t[h].hasValue() && a.push(t[h]); }), s.each( a, function (t) { l.push(t.x), r.push(t.y), c.push( s.template(this.options.multiTooltipTemplate, t) ), u.push({ fill: t._saved.fillColor || t.fillColor, stroke: t._saved.strokeColor || t.strokeColor, }); }, this ), (o = m(r)), (e = g(r)), (n = m(l)), (i = g(l)), { x: n > this.chart.width / 2 ? n : i, y: (o + e) / 2 } ); }.call(this, h); new e.MultiTooltip({ x: d.x, y: d.y, xPadding: this.options.tooltipXPadding, yPadding: this.options.tooltipYPadding, xOffset: this.options.tooltipXOffset, fillColor: this.options.tooltipFillColor, textColor: this.options.tooltipFontColor, fontFamily: this.options.tooltipFontFamily, fontStyle: this.options.tooltipFontStyle, fontSize: this.options.tooltipFontSize, titleTextColor: this.options.tooltipTitleFontColor, titleFontFamily: this.options.tooltipTitleFontFamily, titleFontStyle: this.options.tooltipTitleFontStyle, titleFontSize: this.options.tooltipTitleFontSize, cornerRadius: this.options.tooltipCornerRadius, labels: c, legendColors: u, legendColorBackground: this.options.multiTooltipKeyBackground, title: t[0].label, chart: this.chart, ctx: this.chart.ctx, custom: this.options.customTooltips, }).draw(); } else n( t, function (t) { var i = t.tooltipPosition(); new e.Tooltip({ x: Math.round(i.x), y: Math.round(i.y), xPadding: this.options.tooltipXPadding, yPadding: this.options.tooltipYPadding, fillColor: this.options.tooltipFillColor, textColor: this.options.tooltipFontColor, fontFamily: this.options.tooltipFontFamily, fontStyle: this.options.tooltipFontStyle, fontSize: this.options.tooltipFontSize, caretHeight: this.options.tooltipCaretSize, cornerRadius: this.options.tooltipCornerRadius, text: C(this.options.tooltipTemplate, t), chart: this.chart, custom: this.options.customTooltips, }).draw(); }, this ); return this; } }, toBase64Image: function () { return this.chart.canvas.toDataURL.apply(this.chart.canvas, arguments); }, }), (e.Type.extend = function (t) { var i = this, s = function () { return i.apply(this, arguments); }; if ( ((s.prototype = o(i.prototype)), a(s.prototype, t), (s.extend = e.Type.extend), t.name || i.prototype.name) ) { var n = t.name || i.prototype.name, l = e.defaults[i.prototype.name] ? o(e.defaults[i.prototype.name]) : {}; (e.defaults[n] = a(l, t.defaults)), (e.types[n] = s), (e.prototype[n] = function (t, i) { var o = h(e.defaults.global, e.defaults[n], i || {}); return new s(t, o, this); }); } else d("Name not provided for this chart, so it hasn't been registered"); return i; }), (e.Element = function (t) { a(this, t), this.initialize.apply(this, arguments), this.save(); }), a(e.Element.prototype, { initialize: function () {}, restore: function (t) { return ( t ? n( t, function (t) { this[t] = this._saved[t]; }, this ) : a(this, this._saved), this ); }, save: function () { return (this._saved = o(this)), delete this._saved._saved, this; }, update: function (t) { return ( n( t, function (t, i) { (this._saved[i] = this[i]), (this[i] = t); }, this ), this ); }, transition: function (t, i) { return ( n( t, function (t, e) { this[e] = (t - this._saved[e]) * i + this._saved[e]; }, this ), this ); }, tooltipPosition: function () { return { x: this.x, y: this.y }; }, hasValue: function () { return f(this.value); }, }), (e.Element.extend = r), (e.Point = e.Element.extend({ display: !0, inRange: function (t, i) { var e = this.hitDetectionRadius + this.radius; return ( Math.pow(t - this.x, 2) + Math.pow(i - this.y, 2) < Math.pow(e, 2) ); }, draw: function () { if (this.display) { var t = this.ctx; t.beginPath(), t.arc(this.x, this.y, this.radius, 0, 2 * Math.PI), t.closePath(), (t.strokeStyle = this.strokeColor), (t.lineWidth = this.strokeWidth), (t.fillStyle = this.fillColor), t.fill(), t.stroke(); } }, })), (e.Arc = e.Element.extend({ inRange: function (t, i) { var e = s.getAngleFromPoint(this, { x: t, y: i }), n = e.angle >= this.startAngle && e.angle <= this.endAngle, o = e.distance >= this.innerRadius && e.distance <= this.outerRadius; return n && o; }, tooltipPosition: function () { var t = this.startAngle + (this.endAngle - this.startAngle) / 2, i = (this.outerRadius - this.innerRadius) / 2 + this.innerRadius; return { x: this.x + Math.cos(t) * i, y: this.y + Math.sin(t) * i }; }, draw: function (t) { var i = this.ctx; i.beginPath(), i.arc( this.x, this.y, this.outerRadius, this.startAngle, this.endAngle ), i.arc( this.x, this.y, this.innerRadius, this.endAngle, this.startAngle, !0 ), i.closePath(), (i.strokeStyle = this.strokeColor), (i.lineWidth = this.strokeWidth), (i.fillStyle = this.fillColor), i.fill(), (i.lineJoin = "bevel"), this.showStroke && i.stroke(); }, })), (e.Rectangle = e.Element.extend({ draw: function () { var t = this.ctx, i = this.width / 2, e = this.x - i, s = this.x + i, n = this.base - (this.base - this.y), o = this.strokeWidth / 2; this.showStroke && ((e += o), (s -= o), (n += o)), t.beginPath(), (t.fillStyle = this.fillColor), (t.strokeStyle = this.strokeColor), (t.lineWidth = this.strokeWidth), t.moveTo(e, this.base), t.lineTo(e, n), t.lineTo(s, n), t.lineTo(s, this.base), t.fill(), this.showStroke && t.stroke(); }, height: function () { return this.base - this.y; }, inRange: function (t, i) { return ( t >= this.x - this.width / 2 && t <= this.x + this.width / 2 && i >= this.y && i <= this.base ); }, })), (e.Tooltip = e.Element.extend({ draw: function () { var t = this.chart.ctx; (t.font = W(this.fontSize, this.fontStyle, this.fontFamily)), (this.xAlign = "center"), (this.yAlign = "above"); var i = (this.caretPadding = 2), e = t.measureText(this.text).width + 2 * this.xPadding, s = this.fontSize + 2 * this.yPadding, n = s + this.caretHeight + i; this.x + e / 2 > this.chart.width ? (this.xAlign = "left") : this.x - e / 2 < 0 && (this.xAlign = "right"), this.y - n < 0 && (this.yAlign = "below"); var o = this.x - e / 2, a = this.y - n; if (((t.fillStyle = this.fillColor), this.custom)) this.custom(this); else { switch (this.yAlign) { case "above": t.beginPath(), t.moveTo(this.x, this.y - i), t.lineTo( this.x + this.caretHeight, this.y - (i + this.caretHeight) ), t.lineTo( this.x - this.caretHeight, this.y - (i + this.caretHeight) ), t.closePath(), t.fill(); break; case "below": (a = this.y + i + this.caretHeight), t.beginPath(), t.moveTo(this.x, this.y + i), t.lineTo( this.x + this.caretHeight, this.y + i + this.caretHeight ), t.lineTo( this.x - this.caretHeight, this.y + i + this.caretHeight ), t.closePath(), t.fill(); } switch (this.xAlign) { case "left": o = this.x - e + (this.cornerRadius + this.caretHeight); break; case "right": o = this.x - (this.cornerRadius + this.caretHeight); } B(t, o, a, e, s, this.cornerRadius), t.fill(), (t.fillStyle = this.textColor), (t.textAlign = "center"), (t.textBaseline = "middle"), t.fillText(this.text, o + e / 2, a + s / 2); } }, })), (e.MultiTooltip = e.Element.extend({ initialize: function () { (this.font = W(this.fontSize, this.fontStyle, this.fontFamily)), (this.titleFont = W( this.titleFontSize, this.titleFontStyle, this.titleFontFamily )), (this.height = this.labels.length * this.fontSize + (this.labels.length - 1) * (this.fontSize / 2) + 2 * this.yPadding + 1.5 * this.titleFontSize), (this.ctx.font = this.titleFont); var t = this.ctx.measureText(this.title).width, i = z(this.ctx, this.font, this.labels) + this.fontSize + 3, e = g([i, t]); this.width = e + 2 * this.xPadding; var s = this.height / 2; this.y - s < 0 ? (this.y = s) : this.y + s > this.chart.height && (this.y = this.chart.height - s), this.x > this.chart.width / 2 ? (this.x -= this.xOffset + this.width) : (this.x += this.xOffset); }, getLineHeight: function (t) { var i = this.y - this.height / 2 + this.yPadding, e = t - 1; return 0 === t ? i + this.titleFontSize / 2 : i + (1.5 * this.fontSize * e + this.fontSize / 2) + 1.5 * this.titleFontSize; }, draw: function () { if (this.custom) this.custom(this); else { B( this.ctx, this.x, this.y - this.height / 2, this.width, this.height, this.cornerRadius ); var t = this.ctx; (t.fillStyle = this.fillColor), t.fill(), t.closePath(), (t.textAlign = "left"), (t.textBaseline = "middle"), (t.fillStyle = this.titleTextColor), (t.font = this.titleFont), t.fillText( this.title, this.x + this.xPadding, this.getLineHeight(0) ), (t.font = this.font), s.each( this.labels, function (i, e) { (t.fillStyle = this.textColor), t.fillText( i, this.x + this.xPadding + this.fontSize + 3, this.getLineHeight(e + 1) ), (t.fillStyle = this.legendColorBackground), t.fillRect( this.x + this.xPadding, this.getLineHeight(e + 1) - this.fontSize / 2, this.fontSize, this.fontSize ), (t.fillStyle = this.legendColors[e].fill), t.fillRect( this.x + this.xPadding, this.getLineHeight(e + 1) - this.fontSize / 2, this.fontSize, this.fontSize ); }, this ); } }, })), (e.Scale = e.Element.extend({ initialize: function () { this.fit(); }, buildYLabels: function () { this.yLabels = []; for (var t = v(this.stepValue), i = 0; i <= this.steps; i++) this.yLabels.push( C(this.templateString, { value: (this.min + i * this.stepValue).toFixed(t), }) ); this.yLabelWidth = this.display && this.showLabels ? z(this.ctx, this.font, this.yLabels) : 0; }, addXLabel: function (t) { this.xLabels.push(t), this.valuesCount++, this.fit(); }, removeXLabel: function () { this.xLabels.shift(), this.valuesCount--, this.fit(); }, fit: function () { (this.startPoint = this.display ? this.fontSize : 0), (this.endPoint = this.display ? this.height - 1.5 * this.fontSize - 5 : this.height), (this.startPoint += this.padding), (this.endPoint -= this.padding); var t, i = this.endPoint - this.startPoint; for ( this.calculateYRange(i), this.buildYLabels(), this.calculateXLabelRotation(); i > this.endPoint - this.startPoint; ) (i = this.endPoint - this.startPoint), (t = this.yLabelWidth), this.calculateYRange(i), this.buildYLabels(), t < this.yLabelWidth && this.calculateXLabelRotation(); }, calculateXLabelRotation: function () { this.ctx.font = this.font; var t, i, e = this.ctx.measureText(this.xLabels[0]).width, s = this.ctx.measureText(this.xLabels[this.xLabels.length - 1]).width; if ( ((this.xScalePaddingRight = s / 2 + 3), (this.xScalePaddingLeft = e / 2 > this.yLabelWidth + 10 ? e / 2 : this.yLabelWidth + 10), (this.xLabelRotation = 0), this.display) ) { var n, o = z(this.ctx, this.font, this.xLabels); this.xLabelWidth = o; for ( var a = Math.floor(this.calculateX(1) - this.calculateX(0)) - 6; (this.xLabelWidth > a && 0 === this.xLabelRotation) || (this.xLabelWidth > a && this.xLabelRotation <= 90 && this.xLabelRotation > 0); ) (n = Math.cos(S(this.xLabelRotation))), (t = n * e), (i = n * s), t + this.fontSize / 2 > this.yLabelWidth + 8 && (this.xScalePaddingLeft = t + this.fontSize / 2), (this.xScalePaddingRight = this.fontSize / 2), this.xLabelRotation++, (this.xLabelWidth = n * o); this.xLabelRotation > 0 && (this.endPoint -= Math.sin(S(this.xLabelRotation)) * o + 3); } else (this.xLabelWidth = 0), (this.xScalePaddingRight = this.padding), (this.xScalePaddingLeft = this.padding); }, calculateYRange: c, drawingArea: function () { return this.startPoint - this.endPoint; }, calculateY: function (t) { var i = this.drawingArea() / (this.min - this.max); return this.endPoint - i * (t - this.min); }, calculateX: function (t) { var i = (this.xLabelRotation > 0, this.width - (this.xScalePaddingLeft + this.xScalePaddingRight)), e = i / Math.max(this.valuesCount - (this.offsetGridLines ? 0 : 1), 1), s = e * t + this.xScalePaddingLeft; return this.offsetGridLines && (s += e / 2), Math.round(s); }, update: function (t) { s.extend(this, t), this.fit(); }, draw: function () { var t = this.ctx, i = (this.endPoint - this.startPoint) / this.steps, e = Math.round(this.xScalePaddingLeft); this.display && ((t.fillStyle = this.textColor), (t.font = this.font), n( this.yLabels, function (n, o) { var a = this.endPoint - i * o, h = Math.round(a), l = this.showHorizontalLines; (t.textAlign = "right"), (t.textBaseline = "middle"), this.showLabels && t.fillText(n, e - 10, a), 0 !== o || l || (l = !0), l && t.beginPath(), o > 0 ? ((t.lineWidth = this.gridLineWidth), (t.strokeStyle = this.gridLineColor)) : ((t.lineWidth = this.lineWidth), (t.strokeStyle = this.lineColor)), (h += s.aliasPixel(t.lineWidth)), l && (t.moveTo(e, h), t.lineTo(this.width, h), t.stroke(), t.closePath()), (t.lineWidth = this.lineWidth), (t.strokeStyle = this.lineColor), t.beginPath(), t.moveTo(e - 5, h), t.lineTo(e, h), t.stroke(), t.closePath(); }, this ), n( this.xLabels, function (i, e) { var s = this.calculateX(e) + x(this.lineWidth), n = this.calculateX(e - (this.offsetGridLines ? 0.5 : 0)) + x(this.lineWidth), o = this.xLabelRotation > 0, a = this.showVerticalLines; 0 !== e || a || (a = !0), a && t.beginPath(), e > 0 ? ((t.lineWidth = this.gridLineWidth), (t.strokeStyle = this.gridLineColor)) : ((t.lineWidth = this.lineWidth), (t.strokeStyle = this.lineColor)), a && (t.moveTo(n, this.endPoint), t.lineTo(n, this.startPoint - 3), t.stroke(), t.closePath()), (t.lineWidth = this.lineWidth), (t.strokeStyle = this.lineColor), t.beginPath(), t.moveTo(n, this.endPoint), t.lineTo(n, this.endPoint + 5), t.stroke(), t.closePath(), t.save(), t.translate(s, o ? this.endPoint + 12 : this.endPoint + 8), t.rotate(-1 * S(this.xLabelRotation)), (t.font = this.font), (t.textAlign = o ? "right" : "center"), (t.textBaseline = o ? "middle" : "top"), t.fillText(i, 0, 0), t.restore(); }, this )); }, })), (e.RadialScale = e.Element.extend({ initialize: function () { (this.size = m([this.height, this.width])), (this.drawingArea = this.display ? this.size / 2 - (this.fontSize / 2 + this.backdropPaddingY) : this.size / 2); }, calculateCenterOffset: function (t) { var i = this.drawingArea / (this.max - this.min); return (t - this.min) * i; }, update: function () { this.lineArc ? (this.drawingArea = this.display ? this.size / 2 - (this.fontSize / 2 + this.backdropPaddingY) : this.size / 2) : this.setScaleSize(), this.buildYLabels(); }, buildYLabels: function () { this.yLabels = []; for (var t = v(this.stepValue), i = 0; i <= this.steps; i++) this.yLabels.push( C(this.templateString, { value: (this.min + i * this.stepValue).toFixed(t), }) ); }, getCircumference: function () { return (2 * Math.PI) / this.valuesCount; }, setScaleSize: function () { var t, i, e, s, n, o, a, h, l, r, c, u, d = m([ this.height / 2 - this.pointLabelFontSize - 5, this.width / 2, ]), p = this.width, g = 0; for ( this.ctx.font = W( this.pointLabelFontSize, this.pointLabelFontStyle, this.pointLabelFontFamily ), i = 0; i < this.valuesCount; i++ ) (t = this.getPointPosition(i, d)), (e = this.ctx.measureText( C(this.templateString, { value: this.labels[i] }) ).width + 5), 0 === i || i === this.valuesCount / 2 ? ((s = e / 2), t.x + s > p && ((p = t.x + s), (n = i)), t.x - s < g && ((g = t.x - s), (a = i))) : i < this.valuesCount / 2 ? t.x + e > p && ((p = t.x + e), (n = i)) : i > this.valuesCount / 2 && t.x - e < g && ((g = t.x - e), (a = i)); (l = g), (r = Math.ceil(p - this.width)), (o = this.getIndexAngle(n)), (h = this.getIndexAngle(a)), (c = r / Math.sin(o + Math.PI / 2)), (u = l / Math.sin(h + Math.PI / 2)), (c = f(c) ? c : 0), (u = f(u) ? u : 0), (this.drawingArea = d - (u + c) / 2), this.setCenterPoint(u, c); }, setCenterPoint: function (t, i) { var e = this.width - i - this.drawingArea, s = t + this.drawingArea; (this.xCenter = (s + e) / 2), (this.yCenter = this.height / 2); }, getIndexAngle: function (t) { var i = (2 * Math.PI) / this.valuesCount; return t * i - Math.PI / 2; }, getPointPosition: function (t, i) { var e = this.getIndexAngle(t); return { x: Math.cos(e) * i + this.xCenter, y: Math.sin(e) * i + this.yCenter, }; }, draw: function () { if (this.display) { var t = this.ctx; if ( (n( this.yLabels, function (i, e) { if (e > 0) { var s, n = e * (this.drawingArea / this.steps), o = this.yCenter - n; if (this.lineWidth > 0) if ( ((t.strokeStyle = this.lineColor), (t.lineWidth = this.lineWidth), this.lineArc) ) t.beginPath(), t.arc(this.xCenter, this.yCenter, n, 0, 2 * Math.PI), t.closePath(), t.stroke(); else { t.beginPath(); for (var a = 0; a < this.valuesCount; a++) (s = this.getPointPosition( a, this.calculateCenterOffset( this.min + e * this.stepValue ) )), 0 === a ? t.moveTo(s.x, s.y) : t.lineTo(s.x, s.y); t.closePath(), t.stroke(); } if (this.showLabels) { if ( ((t.font = W( this.fontSize, this.fontStyle, this.fontFamily )), this.showLabelBackdrop) ) { var h = t.measureText(i).width; (t.fillStyle = this.backdropColor), t.fillRect( this.xCenter - h / 2 - this.backdropPaddingX, o - this.fontSize / 2 - this.backdropPaddingY, h + 2 * this.backdropPaddingX, this.fontSize + 2 * this.backdropPaddingY ); } (t.textAlign = "center"), (t.textBaseline = "middle"), (t.fillStyle = this.fontColor), t.fillText(i, this.xCenter, o); } } }, this ), !this.lineArc) ) { (t.lineWidth = this.angleLineWidth), (t.strokeStyle = this.angleLineColor); for (var i = this.valuesCount - 1; i >= 0; i--) { if (this.angleLineWidth > 0) { var e = this.getPointPosition( i, this.calculateCenterOffset(this.max) ); t.beginPath(), t.moveTo(this.xCenter, this.yCenter), t.lineTo(e.x, e.y), t.stroke(), t.closePath(); } var s = this.getPointPosition( i, this.calculateCenterOffset(this.max) + 5 ); (t.font = W( this.pointLabelFontSize, this.pointLabelFontStyle, this.pointLabelFontFamily )), (t.fillStyle = this.pointLabelFontColor); var o = this.labels.length, a = this.labels.length / 2, h = a / 2, l = h > i || i > o - h, r = i === h || i === o - h; (t.textAlign = 0 === i ? "center" : i === a ? "center" : a > i ? "left" : "right"), (t.textBaseline = r ? "middle" : l ? "bottom" : "top"), t.fillText(this.labels[i], s.x, s.y); } } } }, })), s.addEvent( window, "resize", (function () { var t; return function () { clearTimeout(t), (t = setTimeout(function () { n(e.instances, function (t) { t.options.responsive && t.resize(t.render, !0); }); }, 50)); }; })() ), p ? define(function () { return e; }) : "object" == typeof module && module.exports && (module.exports = e), (t.Chart = e), (e.noConflict = function () { return (t.Chart = i), e; }); }.call(this), function () { "use strict"; var t = this, i = t.Chart, e = i.helpers, s = { scaleBeginAtZero: !0, scaleShowGridLines: !0, scaleGridLineColor: "rgba(0,0,0,.05)", scaleGridLineWidth: 1, scaleShowHorizontalLines: !0, scaleShowVerticalLines: !0, barShowStroke: !0, barStrokeWidth: 2, barValueSpacing: 5, barDatasetSpacing: 1, legendTemplate: '
    <% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
', }; i.Type.extend({ name: "Bar", defaults: s, initialize: function (t) { var s = this.options; (this.ScaleClass = i.Scale.extend({ offsetGridLines: !0, calculateBarX: function (t, i, e) { var n = this.calculateBaseWidth(), o = this.calculateX(e) - n / 2, a = this.calculateBarWidth(t); return o + a * i + i * s.barDatasetSpacing + a / 2; }, calculateBaseWidth: function () { return ( this.calculateX(1) - this.calculateX(0) - 2 * s.barValueSpacing ); }, calculateBarWidth: function (t) { var i = this.calculateBaseWidth() - (t - 1) * s.barDatasetSpacing; return i / t; }, })), (this.datasets = []), this.options.showTooltips && e.bindEvents(this, this.options.tooltipEvents, function (t) { var i = "mouseout" !== t.type ? this.getBarsAtEvent(t) : []; this.eachBars(function (t) { t.restore(["fillColor", "strokeColor"]); }), e.each(i, function (t) { (t.fillColor = t.highlightFill), (t.strokeColor = t.highlightStroke); }), this.showTooltip(i); }), (this.BarClass = i.Rectangle.extend({ strokeWidth: this.options.barStrokeWidth, showStroke: this.options.barShowStroke, ctx: this.chart.ctx, })), e.each( t.datasets, function (i) { var s = { label: i.label || null, fillColor: i.fillColor, strokeColor: i.strokeColor, bars: [], }; this.datasets.push(s), e.each( i.data, function (e, n) { s.bars.push( new this.BarClass({ value: e, label: t.labels[n], datasetLabel: i.label, strokeColor: i.strokeColor, fillColor: i.fillColor, highlightFill: i.highlightFill || i.fillColor, highlightStroke: i.highlightStroke || i.strokeColor, }) ); }, this ); }, this ), this.buildScale(t.labels), (this.BarClass.prototype.base = this.scale.endPoint), this.eachBars(function (t, i, s) { e.extend(t, { width: this.scale.calculateBarWidth(this.datasets.length), x: this.scale.calculateBarX(this.datasets.length, s, i), y: this.scale.endPoint, }), t.save(); }, this), this.render(); }, update: function () { this.scale.update(), e.each(this.activeElements, function (t) { t.restore(["fillColor", "strokeColor"]); }), this.eachBars(function (t) { t.save(); }), this.render(); }, eachBars: function (t) { e.each( this.datasets, function (i, s) { e.each(i.bars, t, this, s); }, this ); }, getBarsAtEvent: function (t) { for ( var i, s = [], n = e.getRelativePosition(t), o = function (t) { s.push(t.bars[i]); }, a = 0; a < this.datasets.length; a++ ) for (i = 0; i < this.datasets[a].bars.length; i++) if (this.datasets[a].bars[i].inRange(n.x, n.y)) return e.each(this.datasets, o), s; return s; }, buildScale: function (t) { var i = this, s = function () { var t = []; return ( i.eachBars(function (i) { t.push(i.value); }), t ); }, n = { templateString: this.options.scaleLabel, height: this.chart.height, width: this.chart.width, ctx: this.chart.ctx, textColor: this.options.scaleFontColor, fontSize: this.options.scaleFontSize, fontStyle: this.options.scaleFontStyle, fontFamily: this.options.scaleFontFamily, valuesCount: t.length, beginAtZero: this.options.scaleBeginAtZero, integersOnly: this.options.scaleIntegersOnly, calculateYRange: function (t) { var i = e.calculateScaleRange( s(), t, this.fontSize, this.beginAtZero, this.integersOnly ); e.extend(this, i); }, xLabels: t, font: e.fontString( this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily ), lineWidth: this.options.scaleLineWidth, lineColor: this.options.scaleLineColor, showHorizontalLines: this.options.scaleShowHorizontalLines, showVerticalLines: this.options.scaleShowVerticalLines, gridLineWidth: this.options.scaleShowGridLines ? this.options.scaleGridLineWidth : 0, gridLineColor: this.options.scaleShowGridLines ? this.options.scaleGridLineColor : "rgba(0,0,0,0)", padding: this.options.showScale ? 0 : this.options.barShowStroke ? this.options.barStrokeWidth : 0, showLabels: this.options.scaleShowLabels, display: this.options.showScale, }; this.options.scaleOverride && e.extend(n, { calculateYRange: e.noop, steps: this.options.scaleSteps, stepValue: this.options.scaleStepWidth, min: this.options.scaleStartValue, max: this.options.scaleStartValue + this.options.scaleSteps * this.options.scaleStepWidth, }), (this.scale = new this.ScaleClass(n)); }, addData: function (t, i) { e.each( t, function (t, e) { this.datasets[e].bars.push( new this.BarClass({ value: t, label: i, x: this.scale.calculateBarX( this.datasets.length, e, this.scale.valuesCount + 1 ), y: this.scale.endPoint, width: this.scale.calculateBarWidth(this.datasets.length), base: this.scale.endPoint, strokeColor: this.datasets[e].strokeColor, fillColor: this.datasets[e].fillColor, }) ); }, this ), this.scale.addXLabel(i), this.update(); }, removeData: function () { this.scale.removeXLabel(), e.each( this.datasets, function (t) { t.bars.shift(); }, this ), this.update(); }, reflow: function () { e.extend(this.BarClass.prototype, { y: this.scale.endPoint, base: this.scale.endPoint, }); var t = e.extend({ height: this.chart.height, width: this.chart.width, }); this.scale.update(t); }, draw: function (t) { var i = t || 1; this.clear(); this.chart.ctx; this.scale.draw(i), e.each( this.datasets, function (t, s) { e.each( t.bars, function (t, e) { t.hasValue() && ((t.base = this.scale.endPoint), t .transition( { x: this.scale.calculateBarX( this.datasets.length, s, e ), y: this.scale.calculateY(t.value), width: this.scale.calculateBarWidth( this.datasets.length ), }, i ) .draw()); }, this ); }, this ); }, }); }.call(this), function () { "use strict"; var t = this, i = t.Chart, e = i.helpers, s = { segmentShowStroke: !0, segmentStrokeColor: "#fff", segmentStrokeWidth: 2, percentageInnerCutout: 50, animationSteps: 100, animationEasing: "easeOutBounce", animateRotate: !0, animateScale: !1, legendTemplate: '
    <% for (var i=0; i
  • <%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>
', }; i.Type.extend({ name: "Doughnut", defaults: s, initialize: function (t) { (this.segments = []), (this.outerRadius = (e.min([this.chart.width, this.chart.height]) - this.options.segmentStrokeWidth / 2) / 2), (this.SegmentArc = i.Arc.extend({ ctx: this.chart.ctx, x: this.chart.width / 2, y: this.chart.height / 2, })), this.options.showTooltips && e.bindEvents(this, this.options.tooltipEvents, function (t) { var i = "mouseout" !== t.type ? this.getSegmentsAtEvent(t) : []; e.each(this.segments, function (t) { t.restore(["fillColor"]); }), e.each(i, function (t) { t.fillColor = t.highlightColor; }), this.showTooltip(i); }), this.calculateTotal(t), e.each( t, function (t, i) { this.addData(t, i, !0); }, this ), this.render(); }, getSegmentsAtEvent: function (t) { var i = [], s = e.getRelativePosition(t); return ( e.each( this.segments, function (t) { t.inRange(s.x, s.y) && i.push(t); }, this ), i ); }, addData: function (t, i, e) { var s = i || this.segments.length; this.segments.splice( s, 0, new this.SegmentArc({ value: t.value, outerRadius: this.options.animateScale ? 0 : this.outerRadius, innerRadius: this.options.animateScale ? 0 : (this.outerRadius / 100) * this.options.percentageInnerCutout, fillColor: t.color, highlightColor: t.highlight || t.color, showStroke: this.options.segmentShowStroke, strokeWidth: this.options.segmentStrokeWidth, strokeColor: this.options.segmentStrokeColor, startAngle: 1.5 * Math.PI, circumference: this.options.animateRotate ? 0 : this.calculateCircumference(t.value), label: t.label, }) ), e || (this.reflow(), this.update()); }, calculateCircumference: function (t) { return 2 * Math.PI * (Math.abs(t) / this.total); }, calculateTotal: function (t) { (this.total = 0), e.each( t, function (t) { this.total += Math.abs(t.value); }, this ); }, update: function () { this.calculateTotal(this.segments), e.each(this.activeElements, function (t) { t.restore(["fillColor"]); }), e.each(this.segments, function (t) { t.save(); }), this.render(); }, removeData: function (t) { var i = e.isNumber(t) ? t : this.segments.length - 1; this.segments.splice(i, 1), this.reflow(), this.update(); }, reflow: function () { e.extend(this.SegmentArc.prototype, { x: this.chart.width / 2, y: this.chart.height / 2, }), (this.outerRadius = (e.min([this.chart.width, this.chart.height]) - this.options.segmentStrokeWidth / 2) / 2), e.each( this.segments, function (t) { t.update({ outerRadius: this.outerRadius, innerRadius: (this.outerRadius / 100) * this.options.percentageInnerCutout, }); }, this ); }, draw: function (t) { var i = t ? t : 1; this.clear(), e.each( this.segments, function (t, e) { t.transition( { circumference: this.calculateCircumference(t.value), outerRadius: this.outerRadius, innerRadius: (this.outerRadius / 100) * this.options.percentageInnerCutout, }, i ), (t.endAngle = t.startAngle + t.circumference), t.draw(), 0 === e && (t.startAngle = 1.5 * Math.PI), e < this.segments.length - 1 && (this.segments[e + 1].startAngle = t.endAngle); }, this ); }, }), i.types.Doughnut.extend({ name: "Pie", defaults: e.merge(s, { percentageInnerCutout: 0 }), }); }.call(this), function () { "use strict"; var t = this, i = t.Chart, e = i.helpers, s = { scaleShowGridLines: !0, scaleGridLineColor: "rgba(0,0,0,.05)", scaleGridLineWidth: 1, scaleShowHorizontalLines: !0, scaleShowVerticalLines: !0, bezierCurve: !0, bezierCurveTension: 0.4, pointDot: !0, pointDotRadius: 4, pointDotStrokeWidth: 1, pointHitDetectionRadius: 20, datasetStroke: !0, datasetStrokeWidth: 2, datasetFill: !0, legendTemplate: '
    <% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
', }; i.Type.extend({ name: "Line", defaults: s, initialize: function (t) { (this.PointClass = i.Point.extend({ strokeWidth: this.options.pointDotStrokeWidth, radius: this.options.pointDotRadius, display: this.options.pointDot, hitDetectionRadius: this.options.pointHitDetectionRadius, ctx: this.chart.ctx, inRange: function (t) { return ( Math.pow(t - this.x, 2) < Math.pow(this.radius + this.hitDetectionRadius, 2) ); }, })), (this.datasets = []), this.options.showTooltips && e.bindEvents(this, this.options.tooltipEvents, function (t) { var i = "mouseout" !== t.type ? this.getPointsAtEvent(t) : []; this.eachPoints(function (t) { t.restore(["fillColor", "strokeColor"]); }), e.each(i, function (t) { (t.fillColor = t.highlightFill), (t.strokeColor = t.highlightStroke); }), this.showTooltip(i); }), e.each( t.datasets, function (i) { var s = { label: i.label || null, fillColor: i.fillColor, strokeColor: i.strokeColor, pointColor: i.pointColor, pointStrokeColor: i.pointStrokeColor, points: [], }; this.datasets.push(s), e.each( i.data, function (e, n) { s.points.push( new this.PointClass({ value: e, label: t.labels[n], datasetLabel: i.label, strokeColor: i.pointStrokeColor, fillColor: i.pointColor, highlightFill: i.pointHighlightFill || i.pointColor, highlightStroke: i.pointHighlightStroke || i.pointStrokeColor, }) ); }, this ), this.buildScale(t.labels), this.eachPoints(function (t, i) { e.extend(t, { x: this.scale.calculateX(i), y: this.scale.endPoint, }), t.save(); }, this); }, this ), this.render(); }, update: function () { this.scale.update(), e.each(this.activeElements, function (t) { t.restore(["fillColor", "strokeColor"]); }), this.eachPoints(function (t) { t.save(); }), this.render(); }, eachPoints: function (t) { e.each( this.datasets, function (i) { e.each(i.points, t, this); }, this ); }, getPointsAtEvent: function (t) { var i = [], s = e.getRelativePosition(t); return ( e.each( this.datasets, function (t) { e.each(t.points, function (t) { t.inRange(s.x, s.y) && i.push(t); }); }, this ), i ); }, buildScale: function (t) { var s = this, n = function () { var t = []; return ( s.eachPoints(function (i) { t.push(i.value); }), t ); }, o = { templateString: this.options.scaleLabel, height: this.chart.height, width: this.chart.width, ctx: this.chart.ctx, textColor: this.options.scaleFontColor, fontSize: this.options.scaleFontSize, fontStyle: this.options.scaleFontStyle, fontFamily: this.options.scaleFontFamily, valuesCount: t.length, beginAtZero: this.options.scaleBeginAtZero, integersOnly: this.options.scaleIntegersOnly, calculateYRange: function (t) { var i = e.calculateScaleRange( n(), t, this.fontSize, this.beginAtZero, this.integersOnly ); e.extend(this, i); }, xLabels: t, font: e.fontString( this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily ), lineWidth: this.options.scaleLineWidth, lineColor: this.options.scaleLineColor, showHorizontalLines: this.options.scaleShowHorizontalLines, showVerticalLines: this.options.scaleShowVerticalLines, gridLineWidth: this.options.scaleShowGridLines ? this.options.scaleGridLineWidth : 0, gridLineColor: this.options.scaleShowGridLines ? this.options.scaleGridLineColor : "rgba(0,0,0,0)", padding: this.options.showScale ? 0 : this.options.pointDotRadius + this.options.pointDotStrokeWidth, showLabels: this.options.scaleShowLabels, display: this.options.showScale, }; this.options.scaleOverride && e.extend(o, { calculateYRange: e.noop, steps: this.options.scaleSteps, stepValue: this.options.scaleStepWidth, min: this.options.scaleStartValue, max: this.options.scaleStartValue + this.options.scaleSteps * this.options.scaleStepWidth, }), (this.scale = new i.Scale(o)); }, addData: function (t, i) { e.each( t, function (t, e) { this.datasets[e].points.push( new this.PointClass({ value: t, label: i, x: this.scale.calculateX(this.scale.valuesCount + 1), y: this.scale.endPoint, strokeColor: this.datasets[e].pointStrokeColor, fillColor: this.datasets[e].pointColor, }) ); }, this ), this.scale.addXLabel(i), this.update(); }, removeData: function () { this.scale.removeXLabel(), e.each( this.datasets, function (t) { t.points.shift(); }, this ), this.update(); }, reflow: function () { var t = e.extend({ height: this.chart.height, width: this.chart.width, }); this.scale.update(t); }, draw: function (t) { var i = t || 1; this.clear(); var s = this.chart.ctx, n = function (t) { return null !== t.value; }, o = function (t, i, s) { return e.findNextWhere(i, n, s) || t; }, a = function (t, i, s) { return e.findPreviousWhere(i, n, s) || t; }; this.scale.draw(i), e.each( this.datasets, function (t) { var h = e.where(t.points, n); e.each( t.points, function (t, e) { t.hasValue() && t.transition( { y: this.scale.calculateY(t.value), x: this.scale.calculateX(e), }, i ); }, this ), this.options.bezierCurve && e.each( h, function (t, i) { var s = i > 0 && i < h.length - 1 ? this.options.bezierCurveTension : 0; (t.controlPoints = e.splineCurve( a(t, h, i), t, o(t, h, i), s )), t.controlPoints.outer.y > this.scale.endPoint ? (t.controlPoints.outer.y = this.scale.endPoint) : t.controlPoints.outer.y < this.scale.startPoint && (t.controlPoints.outer.y = this.scale.startPoint), t.controlPoints.inner.y > this.scale.endPoint ? (t.controlPoints.inner.y = this.scale.endPoint) : t.controlPoints.inner.y < this.scale.startPoint && (t.controlPoints.inner.y = this.scale.startPoint); }, this ), (s.lineWidth = this.options.datasetStrokeWidth), (s.strokeStyle = t.strokeColor), s.beginPath(), e.each( h, function (t, i) { if (0 === i) s.moveTo(t.x, t.y); else if (this.options.bezierCurve) { var e = a(t, h, i); s.bezierCurveTo( e.controlPoints.outer.x, e.controlPoints.outer.y, t.controlPoints.inner.x, t.controlPoints.inner.y, t.x, t.y ); } else s.lineTo(t.x, t.y); }, this ), s.stroke(), this.options.datasetFill && h.length > 0 && (s.lineTo(h[h.length - 1].x, this.scale.endPoint), s.lineTo(h[0].x, this.scale.endPoint), (s.fillStyle = t.fillColor), s.closePath(), s.fill()), e.each(h, function (t) { t.draw(); }); }, this ); }, }); }.call(this), function () { "use strict"; var t = this, i = t.Chart, e = i.helpers, s = { scaleShowLabelBackdrop: !0, scaleBackdropColor: "rgba(255,255,255,0.75)", scaleBeginAtZero: !0, scaleBackdropPaddingY: 2, scaleBackdropPaddingX: 2, scaleShowLine: !0, segmentShowStroke: !0, segmentStrokeColor: "#fff", segmentStrokeWidth: 2, animationSteps: 100, animationEasing: "easeOutBounce", animateRotate: !0, animateScale: !1, legendTemplate: '
    <% for (var i=0; i
  • <%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>
', }; i.Type.extend({ name: "PolarArea", defaults: s, initialize: function (t) { (this.segments = []), (this.SegmentArc = i.Arc.extend({ showStroke: this.options.segmentShowStroke, strokeWidth: this.options.segmentStrokeWidth, strokeColor: this.options.segmentStrokeColor, ctx: this.chart.ctx, innerRadius: 0, x: this.chart.width / 2, y: this.chart.height / 2, })), (this.scale = new i.RadialScale({ display: this.options.showScale, fontStyle: this.options.scaleFontStyle, fontSize: this.options.scaleFontSize, fontFamily: this.options.scaleFontFamily, fontColor: this.options.scaleFontColor, showLabels: this.options.scaleShowLabels, showLabelBackdrop: this.options.scaleShowLabelBackdrop, backdropColor: this.options.scaleBackdropColor, backdropPaddingY: this.options.scaleBackdropPaddingY, backdropPaddingX: this.options.scaleBackdropPaddingX, lineWidth: this.options.scaleShowLine ? this.options.scaleLineWidth : 0, lineColor: this.options.scaleLineColor, lineArc: !0, width: this.chart.width, height: this.chart.height, xCenter: this.chart.width / 2, yCenter: this.chart.height / 2, ctx: this.chart.ctx, templateString: this.options.scaleLabel, valuesCount: t.length, })), this.updateScaleRange(t), this.scale.update(), e.each( t, function (t, i) { this.addData(t, i, !0); }, this ), this.options.showTooltips && e.bindEvents(this, this.options.tooltipEvents, function (t) { var i = "mouseout" !== t.type ? this.getSegmentsAtEvent(t) : []; e.each(this.segments, function (t) { t.restore(["fillColor"]); }), e.each(i, function (t) { t.fillColor = t.highlightColor; }), this.showTooltip(i); }), this.render(); }, getSegmentsAtEvent: function (t) { var i = [], s = e.getRelativePosition(t); return ( e.each( this.segments, function (t) { t.inRange(s.x, s.y) && i.push(t); }, this ), i ); }, addData: function (t, i, e) { var s = i || this.segments.length; this.segments.splice( s, 0, new this.SegmentArc({ fillColor: t.color, highlightColor: t.highlight || t.color, label: t.label, value: t.value, outerRadius: this.options.animateScale ? 0 : this.scale.calculateCenterOffset(t.value), circumference: this.options.animateRotate ? 0 : this.scale.getCircumference(), startAngle: 1.5 * Math.PI, }) ), e || (this.reflow(), this.update()); }, removeData: function (t) { var i = e.isNumber(t) ? t : this.segments.length - 1; this.segments.splice(i, 1), this.reflow(), this.update(); }, calculateTotal: function (t) { (this.total = 0), e.each( t, function (t) { this.total += t.value; }, this ), (this.scale.valuesCount = this.segments.length); }, updateScaleRange: function (t) { var i = []; e.each(t, function (t) { i.push(t.value); }); var s = this.options.scaleOverride ? { steps: this.options.scaleSteps, stepValue: this.options.scaleStepWidth, min: this.options.scaleStartValue, max: this.options.scaleStartValue + this.options.scaleSteps * this.options.scaleStepWidth, } : e.calculateScaleRange( i, e.min([this.chart.width, this.chart.height]) / 2, this.options.scaleFontSize, this.options.scaleBeginAtZero, this.options.scaleIntegersOnly ); e.extend(this.scale, s, { size: e.min([this.chart.width, this.chart.height]), xCenter: this.chart.width / 2, yCenter: this.chart.height / 2, }); }, update: function () { this.calculateTotal(this.segments), e.each(this.segments, function (t) { t.save(); }), this.reflow(), this.render(); }, reflow: function () { e.extend(this.SegmentArc.prototype, { x: this.chart.width / 2, y: this.chart.height / 2, }), this.updateScaleRange(this.segments), this.scale.update(), e.extend(this.scale, { xCenter: this.chart.width / 2, yCenter: this.chart.height / 2, }), e.each( this.segments, function (t) { t.update({ outerRadius: this.scale.calculateCenterOffset(t.value), }); }, this ); }, draw: function (t) { var i = t || 1; this.clear(), e.each( this.segments, function (t, e) { t.transition( { circumference: this.scale.getCircumference(), outerRadius: this.scale.calculateCenterOffset(t.value), }, i ), (t.endAngle = t.startAngle + t.circumference), 0 === e && (t.startAngle = 1.5 * Math.PI), e < this.segments.length - 1 && (this.segments[e + 1].startAngle = t.endAngle), t.draw(); }, this ), this.scale.draw(); }, }); }.call(this), function () { "use strict"; var t = this, i = t.Chart, e = i.helpers; i.Type.extend({ name: "Radar", defaults: { scaleShowLine: !0, angleShowLineOut: !0, scaleShowLabels: !1, scaleBeginAtZero: !0, angleLineColor: "rgba(0,0,0,.1)", angleLineWidth: 1, pointLabelFontFamily: "'Arial'", pointLabelFontStyle: "normal", pointLabelFontSize: 10, pointLabelFontColor: "#666", pointDot: !0, pointDotRadius: 3, pointDotStrokeWidth: 1, pointHitDetectionRadius: 20, datasetStroke: !0, datasetStrokeWidth: 2, datasetFill: !0, legendTemplate: '
    <% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
', }, initialize: function (t) { (this.PointClass = i.Point.extend({ strokeWidth: this.options.pointDotStrokeWidth, radius: this.options.pointDotRadius, display: this.options.pointDot, hitDetectionRadius: this.options.pointHitDetectionRadius, ctx: this.chart.ctx, })), (this.datasets = []), this.buildScale(t), this.options.showTooltips && e.bindEvents(this, this.options.tooltipEvents, function (t) { var i = "mouseout" !== t.type ? this.getPointsAtEvent(t) : []; this.eachPoints(function (t) { t.restore(["fillColor", "strokeColor"]); }), e.each(i, function (t) { (t.fillColor = t.highlightFill), (t.strokeColor = t.highlightStroke); }), this.showTooltip(i); }), e.each( t.datasets, function (i) { var s = { label: i.label || null, fillColor: i.fillColor, strokeColor: i.strokeColor, pointColor: i.pointColor, pointStrokeColor: i.pointStrokeColor, points: [], }; this.datasets.push(s), e.each( i.data, function (e, n) { var o; this.scale.animation || (o = this.scale.getPointPosition( n, this.scale.calculateCenterOffset(e) )), s.points.push( new this.PointClass({ value: e, label: t.labels[n], datasetLabel: i.label, x: this.options.animation ? this.scale.xCenter : o.x, y: this.options.animation ? this.scale.yCenter : o.y, strokeColor: i.pointStrokeColor, fillColor: i.pointColor, highlightFill: i.pointHighlightFill || i.pointColor, highlightStroke: i.pointHighlightStroke || i.pointStrokeColor, }) ); }, this ); }, this ), this.render(); }, eachPoints: function (t) { e.each( this.datasets, function (i) { e.each(i.points, t, this); }, this ); }, getPointsAtEvent: function (t) { var i = e.getRelativePosition(t), s = e.getAngleFromPoint( { x: this.scale.xCenter, y: this.scale.yCenter }, i ), n = (2 * Math.PI) / this.scale.valuesCount, o = Math.round((s.angle - 1.5 * Math.PI) / n), a = []; return ( (o >= this.scale.valuesCount || 0 > o) && (o = 0), s.distance <= this.scale.drawingArea && e.each(this.datasets, function (t) { a.push(t.points[o]); }), a ); }, buildScale: function (t) { (this.scale = new i.RadialScale({ display: this.options.showScale, fontStyle: this.options.scaleFontStyle, fontSize: this.options.scaleFontSize, fontFamily: this.options.scaleFontFamily, fontColor: this.options.scaleFontColor, showLabels: this.options.scaleShowLabels, showLabelBackdrop: this.options.scaleShowLabelBackdrop, backdropColor: this.options.scaleBackdropColor, backdropPaddingY: this.options.scaleBackdropPaddingY, backdropPaddingX: this.options.scaleBackdropPaddingX, lineWidth: this.options.scaleShowLine ? this.options.scaleLineWidth : 0, lineColor: this.options.scaleLineColor, angleLineColor: this.options.angleLineColor, angleLineWidth: this.options.angleShowLineOut ? this.options.angleLineWidth : 0, pointLabelFontColor: this.options.pointLabelFontColor, pointLabelFontSize: this.options.pointLabelFontSize, pointLabelFontFamily: this.options.pointLabelFontFamily, pointLabelFontStyle: this.options.pointLabelFontStyle, height: this.chart.height, width: this.chart.width, xCenter: this.chart.width / 2, yCenter: this.chart.height / 2, ctx: this.chart.ctx, templateString: this.options.scaleLabel, labels: t.labels, valuesCount: t.datasets[0].data.length, })), this.scale.setScaleSize(), this.updateScaleRange(t.datasets), this.scale.buildYLabels(); }, updateScaleRange: function (t) { var i = (function () { var i = []; return ( e.each(t, function (t) { t.data ? (i = i.concat(t.data)) : e.each(t.points, function (t) { i.push(t.value); }); }), i ); })(), s = this.options.scaleOverride ? { steps: this.options.scaleSteps, stepValue: this.options.scaleStepWidth, min: this.options.scaleStartValue, max: this.options.scaleStartValue + this.options.scaleSteps * this.options.scaleStepWidth, } : e.calculateScaleRange( i, e.min([this.chart.width, this.chart.height]) / 2, this.options.scaleFontSize, this.options.scaleBeginAtZero, this.options.scaleIntegersOnly ); e.extend(this.scale, s); }, addData: function (t, i) { this.scale.valuesCount++, e.each( t, function (t, e) { var s = this.scale.getPointPosition( this.scale.valuesCount, this.scale.calculateCenterOffset(t) ); this.datasets[e].points.push( new this.PointClass({ value: t, label: i, x: s.x, y: s.y, strokeColor: this.datasets[e].pointStrokeColor, fillColor: this.datasets[e].pointColor, }) ); }, this ), this.scale.labels.push(i), this.reflow(), this.update(); }, removeData: function () { this.scale.valuesCount--, this.scale.labels.shift(), e.each( this.datasets, function (t) { t.points.shift(); }, this ), this.reflow(), this.update(); }, update: function () { this.eachPoints(function (t) { t.save(); }), this.reflow(), this.render(); }, reflow: function () { e.extend(this.scale, { width: this.chart.width, height: this.chart.height, size: e.min([this.chart.width, this.chart.height]), xCenter: this.chart.width / 2, yCenter: this.chart.height / 2, }), this.updateScaleRange(this.datasets), this.scale.setScaleSize(), this.scale.buildYLabels(); }, draw: function (t) { var i = t || 1, s = this.chart.ctx; this.clear(), this.scale.draw(), e.each( this.datasets, function (t) { e.each( t.points, function (t, e) { t.hasValue() && t.transition( this.scale.getPointPosition( e, this.scale.calculateCenterOffset(t.value) ), i ); }, this ), (s.lineWidth = this.options.datasetStrokeWidth), (s.strokeStyle = t.strokeColor), s.beginPath(), e.each( t.points, function (t, i) { 0 === i ? s.moveTo(t.x, t.y) : s.lineTo(t.x, t.y); }, this ), s.closePath(), s.stroke(), (s.fillStyle = t.fillColor), s.fill(), e.each(t.points, function (t) { t.hasValue() && t.draw(); }); }, this ); }, }); }.call(this)); /*! * chaffle v1.0.0 * * Licensed under MIT * Author : blivesta * */ (function ($) { var namespace = "chaffle"; var methods = { init: function (options) { options = $.extend({ speed: 20, time: 140 }, options); return this.each(function () { var _this = this; var $this = $(this); var data = $this.data(namespace); if (!data) { options = $.extend({}, options); $this.data(namespace, { options: options }); } var $text = $this.text(); var substitution; var shuffle_timer; var shuffle_timer_delay; var shuffle = function () { $this.text(substitution); if ($text.length - substitution.length > 0) { for (i = 0; i < $text.length - substitution.length; i++) { var shuffleStr = random_text.call(); $this.append(shuffleStr); } } else { clearInterval(shuffle_timer); } }; var shuffle_delay = function () { if (substitution.length < $text.length) { substitution = $text.substr(0, substitution.length + 1); } else { clearInterval(shuffle_timer_delay); } }; var random_text = function () { var str; var lang = $this.data("lang"); switch (lang) { case "en": str = String.fromCharCode(33 + Math.round(Math.random() * 99)); break; case "ja": str = String.fromCharCode(19968 + Math.round(Math.random() * 80)); break; case "ja-hiragana": str = String.fromCharCode(12352 + Math.round(Math.random() * 50)); break; case "ja-katakana": str = String.fromCharCode(12448 + Math.round(Math.random() * 84)); break; } return str; }; var start = function () { substitution = ""; clearInterval(shuffle_timer); clearInterval(shuffle_timer_delay); shuffle_timer = setInterval(function () { shuffle.call(_this); }, options.speed); shuffle_timer_delay = setInterval(function () { shuffle_delay.call(this); }, options.time); }; $this .unbind("mouseover." + namespace) .bind("mouseover." + namespace, function () { start.call(_this); }); }); }, destroy: function () { return this.each(function () { var $this = $(this); $(window).unbind("." + namespace); $this.removeData(namespace); }); }, }; $.fn.chaffle = function (method) { if (methods[method]) { return methods[method].apply( this, Array.prototype.slice.call(arguments, 1) ); } else if (typeof method === "object" || !method) { return methods.init.apply(this, arguments); } else { $.error("Method " + method + " does not exist on jQuery." + namespace); } }; })(jQuery); /*jshint browser:true */ /*! * FitVids 1.1 * * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ * Released under the WTFPL license - http://sam.zoy.org/wtfpl/ * */ (function ($) { "use strict"; $.fn.fitVids = function (options) { var settings = { customSelector: null, ignore: null, }; if (!document.getElementById("fit-vids-style")) { // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js var head = document.head || document.getElementsByTagName("head")[0]; var css = ".fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}"; var div = document.createElement("div"); div.innerHTML = '

x

"; head.appendChild(div.childNodes[1]); } if (options) { $.extend(settings, options); } return this.each(function () { var selectors = [ 'iframe[src*="player.vimeo.com"]', 'iframe[src*="youtube.com"]', 'iframe[src*="youtube-nocookie.com"]', 'iframe[src*="kickstarter.com"][src*="video.html"]', "object", "embed", ]; if (settings.customSelector) { selectors.push(settings.customSelector); } var ignoreList = ".fitvidsignore"; if (settings.ignore) { ignoreList = ignoreList + ", " + settings.ignore; } var $allVideos = $(this).find(selectors.join(",")); $allVideos = $allVideos.not("object object"); // SwfObj conflict patch $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. $allVideos.each(function (count) { var $this = $(this); if ($this.parents(ignoreList).length > 0) { return; // Disable FitVids on this video. } if ( (this.tagName.toLowerCase() === "embed" && $this.parent("object").length) || $this.parent(".fluid-width-video-wrapper").length ) { return; } if ( !$this.css("height") && !$this.css("width") && (isNaN($this.attr("height")) || isNaN($this.attr("width"))) ) { $this.attr("height", 9); $this.attr("width", 16); } var height = this.tagName.toLowerCase() === "object" || ($this.attr("height") && !isNaN(parseInt($this.attr("height"), 10))) ? parseInt($this.attr("height"), 10) : $this.height(), width = !isNaN(parseInt($this.attr("width"), 10)) ? parseInt($this.attr("width"), 10) : $this.width(), aspectRatio = height / width; if (!$this.attr("id")) { var videoID = "fitvid" + count; $this.attr("id", videoID); } $this .wrap('
') .parent(".fluid-width-video-wrapper") .css("padding-top", aspectRatio * 100 + "%"); $this.removeAttr("height").removeAttr("width"); }); }); }; // Works with either jQuery or Zepto })(window.jQuery || window.Zepto); /*! * The Final Countdown for jQuery v2.1.0 (http://hilios.github.io/jQuery.countdown/) * Copyright (c) 2015 Edson Hilios * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ !(function (a) { "use strict"; "function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery); })(function (a) { "use strict"; function b(a) { if (a instanceof Date) return a; if (String(a).match(g)) return ( String(a).match(/^[0-9]*$/) && (a = Number(a)), String(a).match(/\-/) && (a = String(a).replace(/\-/g, "/")), new Date(a) ); throw new Error("Couldn't cast `" + a + "` to a date object."); } function c(a) { var b = a.toString().replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); return new RegExp(b); } function d(a) { return function (b) { var d = b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi); if (d) for (var f = 0, g = d.length; g > f; ++f) { var h = d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/), j = c(h[0]), k = h[1] || "", l = h[3] || "", m = null; (h = h[2]), i.hasOwnProperty(h) && ((m = i[h]), (m = Number(a[m]))), null !== m && ("!" === k && (m = e(l, m)), "" === k && 10 > m && (m = "0" + m.toString()), (b = b.replace(j, m.toString()))); } return (b = b.replace(/%%/, "%")); }; } function e(a, b) { var c = "s", d = ""; return ( a && ((a = a.replace(/(:|;|\s)/gi, "").split(/\,/)), 1 === a.length ? (c = a[0]) : ((d = a[0]), (c = a[1]))), 1 === Math.abs(b) ? d : c ); } var f = [], g = [], h = { precision: 100, elapse: !1 }; g.push(/^[0-9]*$/.source), g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source), g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source), (g = new RegExp(g.join("|"))); var i = { Y: "years", m: "months", n: "daysToMonth", w: "weeks", d: "daysToWeek", D: "totalDays", H: "hours", M: "minutes", S: "seconds", }, j = function (b, c, d) { (this.el = b), (this.$el = a(b)), (this.interval = null), (this.offset = {}), (this.options = a.extend({}, h)), (this.instanceNumber = f.length), f.push(this), this.$el.data("countdown-instance", this.instanceNumber), d && ("function" == typeof d ? (this.$el.on("update.countdown", d), this.$el.on("stoped.countdown", d), this.$el.on("finish.countdown", d)) : (this.options = a.extend({}, h, d))), this.setFinalDate(c), this.start(); }; a.extend(j.prototype, { start: function () { null !== this.interval && clearInterval(this.interval); var a = this; this.update(), (this.interval = setInterval(function () { a.update.call(a); }, this.options.precision)); }, stop: function () { clearInterval(this.interval), (this.interval = null), this.dispatchEvent("stoped"); }, toggle: function () { this.interval ? this.stop() : this.start(); }, pause: function () { this.stop(); }, resume: function () { this.start(); }, remove: function () { this.stop.call(this), (f[this.instanceNumber] = null), delete this.$el.data().countdownInstance; }, setFinalDate: function (a) { this.finalDate = b(a); }, update: function () { if (0 === this.$el.closest("html").length) return void this.remove(); var b, c = void 0 !== a._data(this.el, "events"), d = new Date(); (b = this.finalDate.getTime() - d.getTime()), (b = Math.ceil(b / 1e3)), (b = !this.options.elapse && 0 > b ? 0 : Math.abs(b)), this.totalSecsLeft !== b && c && ((this.totalSecsLeft = b), (this.elapsed = d >= this.finalDate), (this.offset = { seconds: this.totalSecsLeft % 60, minutes: Math.floor(this.totalSecsLeft / 60) % 60, hours: Math.floor(this.totalSecsLeft / 60 / 60) % 24, days: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7, daysToWeek: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7, daysToMonth: Math.floor( (this.totalSecsLeft / 60 / 60 / 24) % 30.4368 ), totalDays: Math.floor(this.totalSecsLeft / 60 / 60 / 24), weeks: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7), months: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 30.4368), years: Math.abs(this.finalDate.getFullYear() - d.getFullYear()), }), this.options.elapse || 0 !== this.totalSecsLeft ? this.dispatchEvent("update") : (this.stop(), this.dispatchEvent("finish"))); }, dispatchEvent: function (b) { var c = a.Event(b + ".countdown"); (c.finalDate = this.finalDate), (c.elapsed = this.elapsed), (c.offset = a.extend({}, this.offset)), (c.strftime = d(this.offset)), this.$el.trigger(c); }, }), (a.fn.countdown = function () { var b = Array.prototype.slice.call(arguments, 0); return this.each(function () { var c = a(this).data("countdown-instance"); if (void 0 !== c) { var d = f[c], e = b[0]; j.prototype.hasOwnProperty(e) ? d[e].apply(d, b.slice(1)) : null === String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i) ? (d.setFinalDate.call(d, e), d.start()) : a.error( "Method %s does not exist on jQuery.countdown".replace( /\%s/gi, e ) ); } else new j(this, b[0], b[1]); }); }); }); jQuery(document).ready(function ($) { "use-strict"; var $window = $(window); /** * Count To * @constructor */ function OScountTo() { $(".counter-group").each(function (index) { var $this = $(this); var waypoint = $this.waypoint({ handler: function (direction) { $this.find(".timer:not(.counted)").countTo().addClass("counted"); this.destroy(); }, offset: "90%", }); }); } OScountTo(); /** * Browser Detection * @constructor */ function OsBrowserDetect() { var browser = ""; var nAgt = navigator.userAgent; if ((verOffset = nAgt.indexOf("OPR/")) != -1) { browser = "opera"; } else if ((verOffset = nAgt.indexOf("MSIE")) != -1) { browser = "ie"; } else if ((verOffset = nAgt.indexOf("Chrome")) != -1) { browser = "chrome"; } else if ((verOffset = nAgt.indexOf("Safari")) != -1) { browser = "safari"; } else if ((verOffset = nAgt.indexOf("Firefox")) != -1) { browser = "firefox"; } $("html").addClass(browser); } OsBrowserDetect(); /** * OS Detection * @constructor */ function OsOSDetect() { $("html").addClass(window.navigator.platform); } OsOSDetect(); /** * Parallax background * @constructor */ function OsParallax() { var ParallaxBreakPoint = 768; if ($("[data-stellar-background-ratio]").length > 0) { $(window).on("resize load", function () { if (window.innerWidth < ParallaxBreakPoint) { $("html").removeClass("parallax-on"); $.stellar("destroy"); } else { $("html").addClass("parallax-on"); $.stellar({ scrollProperty: "scroll", horizontalScrolling: false, verticalScrolling: Modernizr.csstransitions, responsive: true, parallaxBackgrounds: true, }); } }); } } OsParallax(); /** * Shuffle text * @constructor */ function OsShuffleText() { $(".chaffle").each(function () { $(this).chaffle({ speed: 20, time: 60, }); }); } OsShuffleText(); /** * OsSlider use for many purpose * @constructor */ function OsSlider() { $(".slider").each(function () { var option = { autoplay: !$(this).hasClass("no-autoplay"), fade: !$(this).hasClass("slide"), speed: $(this).data("animation-speed") || 400, dots: $(this).hasClass("control-nav"), arrows: $(this).hasClass("direction-nav") ? true : false, autoplaySpeed: $(this).data("autoplay-speed") || 5000, adaptiveHeight: $(this).hasClass("auto-height") ? true : false, swipeToSlide: $(this).hasClass("swipe-to-slide") ? true : false, infinite: $(this).hasClass("no-loop") ? false : true, }; if ($(this).data("item-width")) { var CarouselBaseWidth = parseInt($(this).data("item-width"), 10); option.respondTo = "slider"; if ($(this).hasClass("slide-all")) { option.responsive = OsCarouselResponsiveCalculator( CarouselBaseWidth, true ); } else { option.responsive = OsCarouselResponsiveCalculator(CarouselBaseWidth); } } if ($(this).hasClass("caption-slider")) { //on start $(this).on("init", function (event, slick) { OsSliderCaptionInit($(this)); OsSliderCaptionShow($(this)); }); //on before slide $(this).on("beforeChange", function ( event, slick, currentSlide, nextSlide ) { OsSliderCaptionHide($(this)); }); //on after slide done $(this).on("afterChange", function (event, slick, currentSlide) { OsSliderCaptionShow($(this)); }); } $(this).slick(option); //Caption slider support function function OsSliderCaptionInit(container) { var $sliderElement = container.find(".caption"); $sliderElement.each(function () { var $captionAnimation = $(this); var animationDuration = "1000ms"; if ($(this).data("animation-duration")) { animationDuration = $(this).data("animation-duration") + "ms"; } $(this).css("animation-duration", animationDuration); $captionAnimation.addClass("caption-hide"); }); } function OsSliderCaptionShow(container) { var $sliderElement = container.find(".slick-active .caption"); $sliderElement.each(function (index) { var $captionAnimation = $(this); var delayTime = $(this).data("caption-delay") || index * 350 + 400; var captionAnimationData = $captionAnimation.data("caption-animation") || "fadeInUp"; setTimeout(function () { $captionAnimation .removeClass("caption-hide") .addClass(captionAnimationData); }, delayTime); }); } function OsSliderCaptionHide(container) { var $sliderElement = container.find(".slick-active .caption"); $sliderElement.each(function () { var $captionAnimation = $(this); var captionAnimationData = $captionAnimation.data("caption-animation") || "fadeInUp"; $captionAnimation .removeClass(captionAnimationData) .addClass("caption-hide"); }); } }); /** * Calculator for support OsSlider * @param CarouselBaseWidth * @returns {Array} * @constructor */ function OsCarouselResponsiveCalculator(CarouselBaseWidth, slideAll) { var CarouselMaxWidth = 1920; var CarouselNumberBreakppoint = Math.floor( CarouselMaxWidth / CarouselBaseWidth ); var CarouselBreakpoint = []; for (var i = 1; i < CarouselNumberBreakppoint + 1; i++) { CarouselBreakpoint.push({ breakpoint: CarouselBaseWidth * i, settings: { slidesToShow: i, slidesToScroll: slideAll === true ? i : 1, }, }); } CarouselBreakpoint.push({ breakpoint: 9999, settings: { slidesToShow: CarouselNumberBreakppoint + 1, slidesToScroll: slideAll === true ? i : 1, }, }); return CarouselBreakpoint; } } OsSlider(); /** * Product thumbnail slider * @constructor */ function OsProductThumbnailSlider() { $(".product-thumbnail-slider").each(function () { var $this = $(this), $slider01 = $this.find(".syn-slider-1"), $slider02 = $this.find(".syn-slider-2"); $slider01.slick({ infinite: false, fade: $slider01.hasClass("animation-fade") ? true : false, speed: 400, adaptiveHeight: $slider01.hasClass("height-auto") ? true : false, arrows: $slider01.hasClass("dir-nav") ? true : false, dots: $slider01.hasClass("control-nav") ? true : false, }); $slider01.on("beforeChange", function ( event, slick, currentSlide, nextSlide ) { syncPosition(nextSlide); }); var visibleItems = []; var option = 0; $slider02.on("init", function (event, slick) { $(this).find(".slick-slide").eq(0).addClass("synced"); var WW = window.innerWidth; if (WW >= 1020) { option = 4; } if (WW < 1020) { option = 3; } for (var i = 0; i < option; i++) { visibleItems.push(i); } }); $window.on("resize load", function (event) { var WW = window.innerWidth; if (WW >= 1020) { option = 4; } if (WW < 1020) { option = 3; } return option; }); $slider02.on("afterChange", function (event, slick, currentSlide) { visibleItems.length = 0; for (var i = currentSlide; i < currentSlide + option; i++) { visibleItems.push(i); } }); $slider02.slick({ swipeToSlide: true, infinite: false, slidesToShow: 4, slidesToScroll: 1, speed: 400, arrows: $slider02.hasClass("direction-nav") ? true : false, centerPadding: "0px", vertical: $slider02.hasClass("v-mode") ? true : false, verticalSwiping: $slider02.hasClass("v-mode") ? true : false, responsive: [ { breakpoint: 1230, settings: { slidesToShow: 4, vertical: false, verticalSwiping: false, }, }, { breakpoint: 1020, settings: { slidesToShow: 3, vertical: false, verticalSwiping: false, }, }, ], }); function syncPosition(value) { var current = value; $slider02 .find(".slick-slide") .removeClass("synced") .eq(current) .addClass("synced"); center(current); } $slider02.on("click", ".slick-slide", function (e) { e.preventDefault(); var number = $(this).data("slick-index"); $slider01.slick("slickGoTo", number); }); function center(number) { var num = number; var found = false; var lastSlideIndex = $slider02.find(".slick-slide:last").index(); for (var i in visibleItems) { if (num === visibleItems[i]) { var found = true; } } if (found === false) { if (num > visibleItems[visibleItems.length - 1]) { if (num == lastSlideIndex) { $slider02.slick("slickGoTo", num - visibleItems.length + 1); } else { $slider02.slick("slickGoTo", num - visibleItems.length + 2); } } else { if (num - 1 === -1) { $slider02.slick("slickGoTo", 0); } else { $slider02.slick("slickGoTo", num - 1); } } } else if (num === visibleItems[visibleItems.length - 1]) { $slider02.slick("slickGoTo", visibleItems[1]); } else if (num === visibleItems[0]) { $slider02.slick("slickGoTo", num - 1); } } }); } OsProductThumbnailSlider(); /** * Isotope * @constructor */ function OsIsotop() { $(".isotope-container").each(function () { var $this = $(this); var option = { layoutMode: "masonry", itemSelector: ".grid-item", transitionDuration: "0.3s", }; if ($this.find(".grid-sizer").length > 0) { option.masonry = {}; option.masonry.columnWidth = ".grid-sizer"; } var $grid = $this.find(".isotope-grid").isotope(option); // Build layout when image is loaded $grid.imagesLoaded().progress(function () { $grid.isotope("layout"); }); // Isotope filter var $Filter = $this.find(".portfolio-filter"); $Filter.find(".filter-button").on("click", function (event) { event.preventDefault(); $grid.isotope({ filter: $(this).attr("data-filter") }); $(this).siblings().removeClass("is-checked"); $(this).addClass("is-checked"); }); //Fix parallax background $grid.on("layoutComplete", function () { $(window).trigger("resize.px.parallax"); }); }); } OsIsotop(); /** * Masonry with responsive with based on base width * @constructor */ function OsMasonryFlex() { $(".masonry-container").each(function () { var minwidth = parseInt($(this).data("masonry-grid-width"), 10) || 370; var $container = $(this); var oldWidth = $container.innerWidth(); var oldRatio = oldWidth / minwidth; var $masonryOpt = { itemSelector: ".masonry-item" }; var $masonry = $container.masonry($masonryOpt); function ResizeItem(containerWidth) { var Ratio = Math.floor(containerWidth / minwidth); if (Ratio === 0) { Ratio = 1; } else if (Ratio != oldRatio) { var itemWidth = 1 / Ratio; $container .children(".masonry-item") .css({ width: itemWidth * 100 + "%" }); } } ResizeItem(oldWidth); // On ImagesLoaded $masonry.imagesLoaded().progress(function () { $masonry.masonry("layout"); }); // Window on resize $(window).on("resize", function () { var newWidth = $container.innerWidth(); if (newWidth != oldWidth) { ResizeItem(newWidth); oldWidth = newWidth; } }); //Fix parallax background $masonry.on("layoutComplete", function () { $(window).trigger("resize.px.parallax"); }); }); } OsMasonryFlex(); /** * Portfolio Images Galley with magnific popup * @constructor */ function OsPortfolioZoomedGallery() { $(".group-portfolio , .magnific-gallery").each(function () { $(this).magnificPopup({ delegate: ".zoom-button", // the selector for gallery item type: "image", gallery: { enabled: true, }, mainClass: "mfp-fade", zoom: { enabled: $(this).hasClass("no-zoom-effect") ? false : true, duration: 300, easing: "ease-in-out", opener: function (openerElement) { if (openerElement.hasClass("img-wrapper")) { return openerElement.find("img"); } else { return openerElement.parents(".overlay"); } }, }, }); }); } OsPortfolioZoomedGallery(); /** * Progress bar * @constructor */ function OsProgressbar() { $(".group-progressbar").each(function () { var $this = $(this); var waypoint = $this.waypoint({ handler: function (direction) { $this.find(".progressbar").progressbar({ display_text: "center" }); this.destroy(); }, offset: "80%", }); }); } OsProgressbar(); /** * Piechart and doughnut chart * @constructor */ function OsPiechart() { $(".piechart").each(function () { var option = { segmentShowStroke: false, responsive: true }; var data = []; $(this) .children(".pie-legend") .children("li") .each(function () { var temp = {}; var $this = $(this); temp.value = $this.data("value"); temp.color = $this.children(".__color").css("background-color"); temp.label = $this.children(".__legend").html(); data.push(temp); }); if ($(this).hasClass("doughnut")) { option.percentageInnerCutout = 55; } var ctx = $(this) .children(".chart") .children("canvas") .get(0) .getContext("2d"); var PieChart = new Chart(ctx).Pie(data, option); }); } OsPiechart(); /** * Piechart * @constructor */ function OsEasyPiechart() { $(".easy-piechart").each(function () { var $this = $(this); var value = Number($this.data("value")) / 100; var option = { strokeWidth: 5, trailWidth: 5, duration: 1500, easing: "bounce", text: { value: "0%", }, step: function (state, bar) { bar.setText((bar.value() * 100).toFixed(0) + "%"); }, }; var circle = new ProgressBar.Circle($(this)[0], option); $this.waypoint({ handler: function (direction) { circle.animate(value); this.destroy(); }, offset: "68%", }); }); } OsEasyPiechart(); /** * Coverbox * @param $selector * @constructor */ function OsCoverBox($selector) { $children = $selector.children(".cover-box"); var oldCol = 0; // reinit cover box if number col change , change to normal style if data-* in current window screen was not set $(window).on("resize load", function () { var numCol = returnNumcol($selector); if (numCol === 0) { $children.removeClass("active").addClass("normal-style").css({ width: "100%", "margin-right": "0%", }); oldCol = numCol; } else if (!(numCol === oldCol)) { //Active all child if has only one col if (numCol === 1) { $children.initBox(numCol); $children.activeBox(numCol); } else { $children.initBox(numCol); $children .filter(function (index) { // Return caro layout return ( (index % numCol === 0 && (index / numCol) % 2 === 0) || ((index - 1) % numCol === 0 && ((index - 1) / numCol) % 2 === 1) ); }) .activeBox(numCol); } oldCol = numCol; } }); //switch class active in row of coverbox $children.on("mouseover", function () { var numCol = returnNumcol($selector); if (numCol > 0 && !$(this).hasClass("active")) { var From = parseInt($(this).index() / numCol, 10) * numCol; $children.slice(From, From + numCol).deactiveBox(); $(this).activeBox(numCol); } }); function returnNumcol($elem) { var WW = window.innerWidth; var numCol = 0; if (WW >= 480) { numCol = $elem.data("xs") || numCol; } if (WW >= 768) { numCol = $elem.data("sm") || numCol; } if (WW >= 1020) { numCol = $elem.data("md") || numCol; } if (WW >= 1230) { numCol = $elem.data("lg") || numCol; } if (WW >= 1400) { numCol = $elem.data("xlg") || numCol; } return numCol; } $.fn.initBox = function (numCol) { $(this).removeClass("active normal-style"); $(this).css({ width: 100 / (numCol + 1) + "%", "margin-right": "0%", }); }; $.fn.activeBox = function (numCol) { $(this).addClass("active"); $(this).css("margin-right", 100 / (numCol + 1) + "%"); }; $.fn.deactiveBox = function () { $(this).removeClass("active"); $(this).css("margin-right", "0"); }; } /** * Active Coverbox * @constructor */ function OsCoverBoxActive() { $(".cover-box-container").each(function () { OsCoverBox($(this)); }); } OsCoverBoxActive(); function OsGoogleMap() { // When the window has finished loading create our google map below var marker_image = "assets/images/logo/map-marker.png"; if ($("#map").length > 0) { if ($("#map").attr("data-marker-image") != undefined) { marker_image = $("#map").attr("data-marker-image"); } google.maps.event.addDomListener(window, "load", init); } function init() { // Basic options for a simple Google Map // For more options see: https://developers.google.com/maps/documentation/javascript/reference#MapOptions var mapOptions = { // How zoomed in you want the map to start at (always required) zoom: 11, scrollwheel: false, // The latitude and longitude to center the map (always required) center: new google.maps.LatLng(40.67, -73.94), // New York // How you would like to style the map. // This is where you would paste any style found on Snazzy Maps. styles: [ { featureType: "water", elementType: "geometry.fill", stylers: [{ color: "#d3d3d3" }], }, { featureType: "transit", stylers: [{ color: "#808080" }, { visibility: "off" }], }, { featureType: "road.highway", elementType: "geometry.stroke", stylers: [{ visibility: "on" }, { color: "#b3b3b3" }], }, { featureType: "road.highway", elementType: "geometry.fill", stylers: [{ color: "#ffffff" }], }, { featureType: "road.local", elementType: "geometry.fill", stylers: [ { visibility: "on" }, { color: "#ffffff" }, { weight: 1.8 }, ], }, { featureType: "road.local", elementType: "geometry.stroke", stylers: [{ color: "#d7d7d7" }], }, { featureType: "poi", elementType: "geometry.fill", stylers: [{ visibility: "on" }, { color: "#ebebeb" }], }, { featureType: "administrative", elementType: "geometry", stylers: [{ color: "#a7a7a7" }], }, { featureType: "road.arterial", elementType: "geometry.fill", stylers: [{ color: "#ffffff" }], }, { featureType: "road.arterial", elementType: "geometry.fill", stylers: [{ color: "#ffffff" }], }, { featureType: "landscape", elementType: "geometry.fill", stylers: [{ visibility: "on" }, { color: "#efefef" }], }, { featureType: "road", elementType: "labels.text.fill", stylers: [{ color: "#696969" }], }, { featureType: "administrative", elementType: "labels.text.fill", stylers: [{ visibility: "on" }, { color: "#737373" }], }, { featureType: "poi", elementType: "labels.icon", stylers: [{ visibility: "off" }], }, { featureType: "poi", elementType: "labels", stylers: [{ visibility: "off" }], }, { featureType: "road.arterial", elementType: "geometry.stroke", stylers: [{ color: "#d6d6d6" }], }, { featureType: "road", elementType: "labels.icon", stylers: [{ visibility: "off" }], }, {}, { featureType: "poi", elementType: "geometry.fill", stylers: [{ color: "#dadada" }], }, ], }; // Get the HTML DOM element that will contain your map // We are using a div with id="map" seen below in the var mapElement = document.getElementById("map"); // Create the Google Map using our element and options defined above var map = new google.maps.Map(mapElement, mapOptions); // Let's also add a marker while we're at it var marker = new google.maps.Marker({ position: new google.maps.LatLng(40.6, -73.94), map: map, title: "Megatron", icon: marker_image, }); var marker2 = new google.maps.Marker({ position: new google.maps.LatLng(40.68, -73.8), map: map, title: "Megatron", icon: marker_image, }); var marker3 = new google.maps.Marker({ position: new google.maps.LatLng(40.73, -74.128), map: map, title: "Megatron", icon: marker_image, }); } } OsGoogleMap(); /** * Add info for main nav * @constructor */ function OsNavAdditionInfo() { $('.os-menu a[href="#"]').on("click", function (event) { event.preventDefault(); }); $(".os-menu li").has("ul").addClass("li-node").parent().addClass("ul-node"); //$('.os-menu .mega-menu:not(.menu-fullwidth)').parent().css('position', 'relative') } OsNavAdditionInfo(); function OsBackToTop() { if ($("#back-to-top-btn").length > 0) { $("#back-to-top-btn").on("click", function () { $("html,body").animate( { scrollTop: 0, }, 400 ); }); $(window).on("scroll", function () { if ($(this).scrollTop() >= $("#page-body").position().top) { $("#back-to-top-btn").addClass("show-this"); } else { $("#back-to-top-btn").removeClass("show-this"); } }); } } OsBackToTop(); /** * Action with nav fixed * @constructor */ function OsNavFixed() { if ($(".nav-fixed").length > 0) { var $body = $("body"); var $appear_target = $("#page-body"); $(window).on("scroll , load", function () { var windowToTop = $(this).scrollTop(); if (windowToTop > 1 && !$body.hasClass("$body")) { $body.addClass("nav-fixed-transformed"); } else { $body.removeClass("nav-fixed-transformed"); } if (windowToTop >= $appear_target.position().top) { $body.addClass("nav-fixed-appeared"); } else { $body.removeClass("nav-fixed-appeared"); } }); } } OsNavFixed(); /** * Smooth scroll when click a link to internal object * @constructor */ function OsEasingClick() { $('.easing-link-group a[href^="#"] , a.easing-link[href^="#"]') .not('[href="#"]') .on("click", function (event) { event.preventDefault(); var $this = $(this); var elementPostion = $($this.attr("href")).offset().top; $("html,body").animate( { scrollTop: elementPostion, }, 400, function () { $("body").removeClass("mobile-nav-open"); } ); }); } OsEasingClick(); /** * Sticky nav * @constructor */ function OsStickyNav() { $(".nav-sticky").each(function () { var sticky = new Waypoint.Sticky({ element: $(this)[0], }); }); } OsStickyNav(); /** * Selectmenu with Jquery UI * @constructor */ function OsSelectMenu() { $(".select-menu").each(function () { $(this).selectmenu(); }); } OsSelectMenu(); /** * Mobile Menu * @constructor */ function OsMobileMenu() { // === Moblie Menu Layout === var $Menu = $(".mobile-menu"); var $ActiveLink = $Menu.find("li").has("ul").children("a"); var $MenuChildUl = $Menu.find("li ul"); // Prevent default action of link href="#" // Active menu when click link on li $ActiveLink.on("click", function () { $(this).closest("li").addClass("active"); $(this).closest("ul").addClass("active"); }); // Add back button and select it $MenuChildUl.prepend( '
  • ' + 'BACK' + "
  • " ); // Add event to back button $MenuChildUl.find(".__back a").on("click", function (event) { event.preventDefault(); $(this).closest("li.active").removeClass("active"); $(this).closest("ul.active").removeClass("active"); }); // Close Menu function CloseMenu() { $("body").removeClass("mobile-nav-open"); //Reset to init setTimeout(function () { $Menu.find("li.active").removeClass("active"); }, 300); } // === Moblie Menu Action === $(".mobile-nav-toggle").on("click", function (event) { event.preventDefault(); if ($("body").hasClass("mobile-nav-open")) { CloseMenu(); } else { $("body").addClass("mobile-nav-open"); } }); $(window).on("resize", function () { if (window.innerWidth >= 992) { $("body").removeClass("mobile-nav-open"); } }); } OsMobileMenu(); /** * Offcanvas nav * @constructor */ function OsOffcanvas() { $(".offcanvas-nav-toggle").on("click", function (event) { event.preventDefault(); $("body").toggleClass("offcanvas-nav-open"); }); $(window).on("resize", function () { if (window.innerWidth < 1230) { $("body").removeClass("offcanvas-nav-open"); } }); } OsOffcanvas(); /** * Shop side bar offcanvas * @constructor */ function OsShopSidebarOffcanvas() { $(".shop-sidebar-toggle").each(function () { $(this).on("click", function (event) { event.preventDefault(); $("body").toggleClass("shop-sidebar-open"); }); $(window).on("resize", function () { if (window.innerWidth < 1230) { $("body").removeClass("shop-sidebar-open"); } }); }); } OsShopSidebarOffcanvas(); /** * Nav Popup * @constructor */ function OsNavPopup() { $(".nav-menu-popup").hide(); $(".nav-menu-popup-trigger").each(function () { $(this).on("click", function () { event.preventDefault(event); $("body").toggleClass("nav-menu-popup-open"); $(".nav-menu-popup").fadeToggle(); }); }); } OsNavPopup(); /** * Accordion * @constructor */ function OsAccordion() { $(".accordion").each(function () { var $accordion = $(this); $accordion.accordion({ active: $accordion.data("ui-active") || 0, animate: $accordion.data("ui-animate") || 300, collapsible: true, header: ".accordion-header", heightStyle: $accordion.data("ui-height-style") || "auto", icons: false, }); $(window).on("resize load", function () { $accordion.accordion("refresh"); }); }); } OsAccordion(); /** * Expendable Section * @constructor */ function OsExpendableSection() { $(".expendable-section").each(function () { var $container = $(this), $header = $(this).children(".expendable-section-header"); if (!$header.hasClass("header-active")) { $header.next(".expendable-section-body").hide(); } $header.on("click", function (event) { event.preventDefault(); var $content = $(this).next(".expendable-section-body"); if ($(this).hasClass("header-active") && $content.is(":visible")) { $(this).removeClass("header-active"); $content.slideUp(400); } else { $(this).addClass("header-active"); $content.slideDown(400); } }); }); } OsExpendableSection(); /** * Toggle block * @constructor */ function OsToggleBlock() { $(".toggle-block-container").each(function () { var $container = $(this); var $target = $container.find(".toggle-block-target"); $target.hide(); $container.find(".toggle-block-trigger").on("click", function (event) { event.preventDefault(); $target.slideToggle(300); }); }); } OsToggleBlock(); /** * Price Filter * @constructor */ /*function OsPriceFilter() { $(".price-filter").each(function () { String.prototype.toDec = function () { return parseInt(this, 10); }; var $sliderRange = $(this).find('.price-slider-range'), $valueFrom = $(this).find('span.from'), $valueTo = $(this).find('span.to'), minprice = $(this).data('min') || 0, maxprice = $(this).data('max') || 400, from = $(this).data('from') || 1, to = $(this).data('to') || 200; $sliderRange.slider({ range: true, min: minprice, max: maxprice, values: [from, to], slide: function (event, ui) { $valueFrom.text(ui.values[0]); $valueTo.text(ui.values[1]); } }); $valueFrom.text($sliderRange.slider("values", 0)); $valueTo.text($sliderRange.slider("values", 1)); }); }*/ //OsPriceFilter(); /** * Count Down * @constructor */ function OsCountDown() { $(".countdown-clock").each(function () { var FinalTime = $(this).data("final-time"); $(this).countdown(FinalTime, function (event) { $(this).html( event.strftime( "" + "
    %mMonths
    " + "
    %dDays
    " + "
    %HHours
    " + "
    %MMinutes
    " + "
    %SSeconds
    " ) ); }); }); } OsCountDown(); function OsModal() { if ($.modal) { $.modal.defaults = { overlay: "#000", // Overlay color opacity: 0.7, // Overlay opacity zIndex: 1140, // Overlay z-index. escapeClose: true, // Allows the user to close the modal by pressing `ESC` clickClose: true, // Allows the user to close the modal by clicking the overlay closeText: "Close", // Text content for the close tag. closeClass: "", // Add additional class(es) to the close tag. showClose: true, // Shows a (X) icon/link in the top-right corner modalClass: "modal", // CSS class added to the element being displayed in the modal. spinnerHtml: '', // HTML appended to the default spinner during AJAX requests. showSpinner: true, // Enable/disable the default spinner during AJAX requests. fadeDuration: 300, // Number of milliseconds the fade transition takes (null means no transition) fadeDelay: 0, // Point during the overlay's fade-in that the modal begins to fade in (.5 = 50%, 1.5 = 150%, etc.) }; function page_disable_scrolling(event, modal) { var ScrollBarWidth = window.innerWidth - $(window).width(); $("html").css({ overflow: "hidden", "padding-right": ScrollBarWidth + "px", }); if ($(".product-thumbnail-slider").length > 0) { $(".product-thumbnail-slider .syn-slider-1").slick("setDimensions"); $(".product-thumbnail-slider .syn-slider-2").slick("setDimensions"); } if ($(".modal").length > 0) { $(".modal").on("mousewheel", function (e) { var event = e.originalEvent, d = event.wheelDelta || -event.detail; this.scrollTop += (d < 0 ? 1 : -1) * 30; e.preventDefault(); }); } if ($(".jquery-modal.blocker").length > 0) { $(".jquery-modal.blocker").on("mousewheel", function (e) { e.preventDefault(); }); } } function page_enable_scrolling(event, modal) { $("html").css({ overflow: "", "padding-right": "" }); } $(document).on($.modal.OPEN, page_disable_scrolling); $(document).on($.modal.CLOSE, page_enable_scrolling); $(window).on("resize", function () { $.modal.resize(); }); } //- Call modal with link $("a[data-modal-open]").on("click", function (event) { event.preventDefault(); $(this).modal(); }); $("a[data-modal-close]").on("click", function () { $.modal.close(); return false; }); } OsModal(); /** * Rating star * @constructor */ function OsRatingStar() { $(".star-ratings").each(function () { var point = parseInt($(this).attr("data-rating"), 10); if (point === 5) { $(this).children("span").addClass("rated"); } else { $(this).children().eq(point).prevAll().addClass("rated"); } }); } OsRatingStar(); /** * Tabs * @constructor */ function OsTabs() { $(".tabs").each(function () { var $this = $(this); if (!($(this).data("ui-disable") == null)) { var data_disable = $(this) .data("ui-disable") .split(",") .map(function (e) { return parseInt(e, 10); }); } $this.tabs({ active: $this.data("active") || 0, hide: { effect: "fadeOut", duration: 100 }, show: { effect: "fadeIn", duration: 100 }, disabled: data_disable, }); }); } //OsTabs(); /** * Quantity Input * @constructor */ function OsQuantityInput() { $(".quantity-input").each(function () { $(this) .find("button") .on("click", function (event) { event.preventDefault(); var $button = $(this); var oldValue = $button .parents(".quantity-input") .find("input.number") .val(); if ($button.hasClass("add")) { var newVal = parseFloat(oldValue) + 1; } if ($button.hasClass("subract")) { if (oldValue > 0) { var newVal = parseFloat(oldValue) - 1; } else { newVal = 0; } } $button.parents(".quantity-input").find("input.number").val(newVal); }); }); } OsQuantityInput(); /** * Select Menu * @constructor */ function OsSelectMenu() { $(".select-menu").each(function () { var $seclectMenu = $(this); var menuClass = $seclectMenu.parent(".select-wrapper").data("menu-class"); $seclectMenu.selectmenu({ icons: { button: $(this).data("ui-icon") || "icon-down-open-big" }, }); if (!(menuClass === undefined)) { $seclectMenu.selectmenu("menuWidget").addClass(menuClass); } $(window).on("resize load", function () { $seclectMenu.selectmenu("refresh"); }); }); } OsSelectMenu(); /** * Use wow to put animation when scrolling * @constructor */ function OsAnimation() { wow = new WOW({ boxClass: "wow", // default animateClass: "animated", // default offset: 0, // default mobile: true, // default live: true, // default }); wow.init(); } OsAnimation(); /** * Submit contact form with ajax * @constructor */ function OsContactSubmit() { $("#contact_form").on("submit", function (event) { event.preventDefault(); var $submit_button = $(this).find('button[type="submit"]'); var backup_button = $submit_button.html(); var data = $(this).serialize(); $submit_button.html("PROCESSING").attr("disabled", "disabled"); $.ajax({ type: "POST", url: "phpscript/contact.php", data: data, success: function (result) { $submit_button.html('SUCCESSFUL '); setTimeout(function () { $submit_button.removeAttr("disabled").html(backup_button); }, 2000); }, }); }); } OsContactSubmit(); /** * Add particle background effect * @constructor */ function OsParticleEffect() { if ($("#particles-js").length > 0) { particlesJS("particles-js", { particles: { number: { value: 80, density: { enable: true, value_area: 800, }, }, color: { value: "#ffffff", }, shape: { type: "circle", stroke: { width: 0, color: "#000000", }, polygon: { nb_sides: 5, }, image: { src: "img/github.svg", width: 100, height: 100, }, }, opacity: { value: 0.5, random: false, anim: { enable: false, speed: 1, opacity_min: 0.1, sync: false, }, }, size: { value: 3, random: true, anim: { enable: false, speed: 40, size_min: 0.1, sync: false, }, }, line_linked: { enable: true, distance: 150, color: "#ffffff", opacity: 0.4, width: 1, }, move: { enable: true, speed: 6, direction: "none", random: false, straight: false, out_mode: "out", bounce: false, attract: { enable: false, rotateX: 600, rotateY: 1200, }, }, }, interactivity: { detect_on: "canvas", events: { onhover: { enable: true, mode: "grab", }, onclick: { enable: true, mode: "push", }, resize: true, }, modes: { grab: { distance: 140, line_linked: { opacity: 1, }, }, bubble: { distance: 400, size: 40, duration: 2, opacity: 8, speed: 3, }, repulse: { distance: 200, duration: 0.4, }, push: { particles_nb: 4, }, remove: { particles_nb: 2, }, }, }, retina_detect: true, }); } } OsParticleEffect(); //FitVids $(".post .__header").fitVids(); //Mobile Menu //$(".mobile-menu > ul > li.li-node.menu-item--expanded > a").attr("href", "#"); //$(".mobile-menu > ul > li.li-node.menu-item--expanded > ul > li.li-node > a").attr("href", "#"); //Modal $("#modal-login .register-btn").on("click", function () { $("#modal-login .close").trigger("click"); }); if ($(".left-nav-wrapper").length > 0) { $("body").addClass("homepage-leftmenu"); } //Tootip $('[data-toggle="tooltip"]').tooltip(); //Resize Slick Slider when Popup $(".modal").on("shown.bs.modal", function (e) { $(".syn-slider-1").slick("setPosition", 0); $(".syn-slider-2").slick("setPosition", 0); }); $("#edit-mail-wrapper .form-email").attr( "placeholder", "Enter your email..." ); if ($(".block-page-title-block h1.page-title > span").length > 0) { $("h1.text-responsive.page-title").text( $(".block-page-title-block h1.page-title > span").text() ); } else { $("h1.text-responsive.page-title").text( $(".block-page-title-block h1.page-title").text() ); } }); jQuery(document).ajaxComplete(function () { //alert(jQuery('input[name="product_id"]').attr("value")); jQuery(".__price .product-price").removeClass("display"); jQuery(".__price .product-price").each(function () { if ( jQuery('input[name="product_id"]').attr("value") == jQuery(this).attr("data-id") ) { jQuery(this).addClass("display"); } }); }); /** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ Drupal.debounce = function (func, wait, immediate) { var timeout = void 0; var result = void 0; return function () { for ( var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++ ) { args[_key] = arguments[_key]; } var context = this; var later = function later() { timeout = null; if (!immediate) { result = func.apply(context, args); } }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) { result = func.apply(context, args); } return result; }; }; /** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ (function ($, Drupal, debounce) { $.fn.drupalGetSummary = function () { var callback = this.data("summaryCallback"); return this[0] && callback ? $.trim(callback(this[0])) : ""; }; $.fn.drupalSetSummary = function (callback) { var self = this; if (typeof callback !== "function") { var val = callback; callback = function callback() { return val; }; } return this.data("summaryCallback", callback) .off("formUpdated.summary") .on("formUpdated.summary", function () { self.trigger("summaryUpdated"); }) .trigger("summaryUpdated"); }; Drupal.behaviors.formSingleSubmit = { attach: function attach() { function onFormSubmit(e) { var $form = $(e.currentTarget); var formValues = $form.serialize(); var previousValues = $form.attr("data-drupal-form-submit-last"); if (previousValues === formValues) { e.preventDefault(); } else { $form.attr("data-drupal-form-submit-last", formValues); } } $("body") .once("form-single-submit") .on("submit.singleSubmit", 'form:not([method~="GET"])', onFormSubmit); }, }; function triggerFormUpdated(element) { $(element).trigger("formUpdated"); } function fieldsList(form) { var $fieldList = $(form) .find("[name]") .map(function (index, element) { return element.getAttribute("id"); }); return $.makeArray($fieldList); } Drupal.behaviors.formUpdated = { attach: function attach(context) { var $context = $(context); var contextIsForm = $context.is("form"); var $forms = (contextIsForm ? $context : $context.find("form")).once( "form-updated" ); var formFields = void 0; if ($forms.length) { $.makeArray($forms).forEach(function (form) { var events = "change.formUpdated input.formUpdated "; var eventHandler = debounce(function (event) { triggerFormUpdated(event.target); }, 300); formFields = fieldsList(form).join(","); form.setAttribute("data-drupal-form-fields", formFields); $(form).on(events, eventHandler); }); } if (contextIsForm) { formFields = fieldsList(context).join(","); var currentFields = $(context).attr("data-drupal-form-fields"); if (formFields !== currentFields) { triggerFormUpdated(context); } } }, detach: function detach(context, settings, trigger) { var $context = $(context); var contextIsForm = $context.is("form"); if (trigger === "unload") { var $forms = (contextIsForm ? $context : $context.find("form") ).removeOnce("form-updated"); if ($forms.length) { $.makeArray($forms).forEach(function (form) { form.removeAttribute("data-drupal-form-fields"); $(form).off(".formUpdated"); }); } } }, }; Drupal.behaviors.fillUserInfoFromBrowser = { attach: function attach(context, settings) { var userInfo = ["name", "mail", "homepage"]; var $forms = $("[data-user-info-from-browser]").once( "user-info-from-browser" ); if ($forms.length) { userInfo.forEach(function (info) { var $element = $forms.find("[name=" + info + "]"); var browserData = localStorage.getItem("Drupal.visitor." + info); var emptyOrDefault = $element.val() === "" || $element.attr("data-drupal-default-value") === $element.val(); if ($element.length && emptyOrDefault && browserData) { $element.val(browserData); } }); } $forms.on("submit", function () { userInfo.forEach(function (info) { var $element = $forms.find("[name=" + info + "]"); if ($element.length) { localStorage.setItem("Drupal.visitor." + info, $element.val()); } }); }); }, }; var handleFragmentLinkClickOrHashChange = function handleFragmentLinkClickOrHashChange( e ) { var url = void 0; if (e.type === "click") { url = e.currentTarget.location ? e.currentTarget.location : e.currentTarget; } else { url = window.location; } var hash = url.hash.substr(1); if (hash) { var $target = $("#" + hash); $("body").trigger("formFragmentLinkClickOrHashChange", [$target]); setTimeout(function () { return $target.trigger("focus"); }, 300); } }; var debouncedHandleFragmentLinkClickOrHashChange = debounce( handleFragmentLinkClickOrHashChange, 300, true ); $(window).on( "hashchange.form-fragment", debouncedHandleFragmentLinkClickOrHashChange ); $(document).on( "click.form-fragment", 'a[href*="#"]', debouncedHandleFragmentLinkClickOrHashChange ); })(jQuery, Drupal, Drupal.debounce);