! function(e, t) { "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return t(e) } : t(e) }("undefined" != typeof window ? window : this, function(e, t) { function n(e) { var t = !!e && "length" in e && e.length, n = oe.type(e); return "function" !== n && !oe.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e) } function r(e, t, n) { if (oe.isFunction(t)) return oe.grep(e, function(e, r) { return !!t.call(e, r, e) !== n }); if (t.nodeType) return oe.grep(e, function(e) { return e === t !== n }); if ("string" == typeof t) { if (ge.test(t)) return oe.filter(t, e, n); t = oe.filter(t, e) } return oe.grep(e, function(e) { return Z.call(t, e) > -1 !== n }) } function i(e, t) { for (; (e = e[t]) && 1 !== e.nodeType;); return e } function o(e) { var t = {}; return oe.each(e.match(we) || [], function(e, n) { t[n] = !0 }), t } function s() { G.removeEventListener("DOMContentLoaded", s), e.removeEventListener("load", s), oe.ready() } function a() { this.expando = oe.expando + a.uid++ } function u(e, t, n) { var r; if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(je, "-$&").toLowerCase(), n = e.getAttribute(r), "string" == typeof n) { try { n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : Se.test(n) ? oe.parseJSON(n) : n) } catch (e) {} Ne.set(e, t, n) } else n = void 0; return n } function l(e, t, n, r) { var i, o = 1, s = 20, a = r ? function() { return r.cur() } : function() { return oe.css(e, t, "") }, u = a(), l = n && n[3] || (oe.cssNumber[t] ? "" : "px"), c = (oe.cssNumber[t] || "px" !== l && +u) && Ae.exec(oe.css(e, t)); if (c && c[3] !== l) { l = l || c[3], n = n || [], c = +u || 1; do o = o || ".5", c /= o, oe.style(e, t, c + l); while (o !== (o = a() / u) && 1 !== o && --s) } return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i } function c(e, t) { var n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : []; return void 0 === t || t && oe.nodeName(e, t) ? oe.merge([e], n) : n } function f(e, t) { for (var n = 0, r = e.length; r > n; n++) Ee.set(e[n], "globalEval", !t || Ee.get(t[n], "globalEval")) } function p(e, t, n, r, i) { for (var o, s, a, u, l, p, d = t.createDocumentFragment(), h = [], g = 0, v = e.length; v > g; g++) if (o = e[g], o || 0 === o) if ("object" === oe.type(o)) oe.merge(h, o.nodeType ? [o] : o); else if (Re.test(o)) { for (s = s || d.appendChild(t.createElement("div")), a = (Oe.exec(o) || ["", ""])[1].toLowerCase(), u = Pe[a] || Pe._default, s.innerHTML = u[1] + oe.htmlPrefilter(o) + u[2], p = u[0]; p--;) s = s.lastChild; oe.merge(h, s.childNodes), s = d.firstChild, s.textContent = "" } else h.push(t.createTextNode(o)); for (d.textContent = "", g = 0; o = h[g++];) if (r && oe.inArray(o, r) > -1) i && i.push(o); else if (l = oe.contains(o.ownerDocument, o), s = c(d.appendChild(o), "script"), l && f(s), n) for (p = 0; o = s[p++];) Fe.test(o.type || "") && n.push(o); return d } function d() { return !0 } function h() { return !1 } function g() { try { return G.activeElement } catch (e) {} } function v(e, t, n, r, i, o) { var s, a; if ("object" == typeof t) { "string" != typeof n && (r = r || n, n = void 0); for (a in t) v(e, a, n, r, t[a], o); return e } if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), i === !1) i = h; else if (!i) return e; return 1 === o && (s = i, i = function(e) { return oe().off(e), s.apply(this, arguments) }, i.guid = s.guid || (s.guid = oe.guid++)), e.each(function() { oe.event.add(this, t, i, r, n) }) } function m(e, t) { return oe.nodeName(e, "table") && oe.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e } function y(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e } function x(e) { var t = Xe.exec(e.type); return t ? e.type = t[1] : e.removeAttribute("type"), e } function b(e, t) { var n, r, i, o, s, a, u, l; if (1 === t.nodeType) { if (Ee.hasData(e) && (o = Ee.access(e), s = Ee.set(t, o), l = o.events)) { delete s.handle, s.events = {}; for (i in l) for (n = 0, r = l[i].length; r > n; n++) oe.event.add(t, i, l[i][n]) } Ne.hasData(e) && (a = Ne.access(e), u = oe.extend({}, a), Ne.set(t, u)) } } function w(e, t) { var n = t.nodeName.toLowerCase(); "input" === n && He.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue) } function T(e, t, n, r) { t = J.apply([], t); var i, o, s, a, u, l, f = 0, d = e.length, h = d - 1, g = t[0], v = oe.isFunction(g); if (v || d > 1 && "string" == typeof g && !re.checkClone && _e.test(g)) return e.each(function(i) { var o = e.eq(i); v && (t[0] = g.call(this, i, o.html())), T(o, t, n, r) }); if (d && (i = p(t, e[0].ownerDocument, !1, e, r), o = i.firstChild, 1 === i.childNodes.length && (i = o), o || r)) { for (s = oe.map(c(i, "script"), y), a = s.length; d > f; f++) u = i, f !== h && (u = oe.clone(u, !0, !0), a && oe.merge(s, c(u, "script"))), n.call(e[f], u, f); if (a) for (l = s[s.length - 1].ownerDocument, oe.map(s, x), f = 0; a > f; f++) u = s[f], Fe.test(u.type || "") && !Ee.access(u, "globalEval") && oe.contains(l, u) && (u.src ? oe._evalUrl && oe._evalUrl(u.src) : oe.globalEval(u.textContent.replace(ze, ""))) } return e } function C(e, t, n) { for (var r, i = t ? oe.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || oe.cleanData(c(r)), r.parentNode && (n && oe.contains(r.ownerDocument, r) && f(c(r, "script")), r.parentNode.removeChild(r)); return e } function k(e, t) { var n = oe(t.createElement(e)).appendTo(t.body), r = oe.css(n[0], "display"); return n.detach(), r } function E(e) { var t = G, n = Ve[e]; return n || (n = k(e, t), "none" !== n && n || (Ue = (Ue || oe("', inline_markup: '
{content}
', custom_markup: "", social_tools: '
Tweet
' }, a); var u, v, y, w, b, k, P, x = this, $ = !1, I = t(window).height(), j = t(window).width(); return doresize = !0, scroll_pos = _(), t(window).unbind("resize.prettyphoto").bind("resize.prettyphoto", function() { c(), g() }), a.keyboard_shortcuts && t(document).unbind("keydown.prettyphoto").bind("keydown.prettyphoto", function(e) { if ("undefined" != typeof $pp_pic_holder && $pp_pic_holder.is(":visible")) switch (e.keyCode) { case 37: t.prettyPhoto.changePage("previous"), e.preventDefault(); break; case 39: t.prettyPhoto.changePage("next"), e.preventDefault(); break; case 27: settings.modal || t.prettyPhoto.close(), e.preventDefault() } }), t.prettyPhoto.initialize = function() { return settings = a, "pp_default" == settings.theme && (settings.horizontal_padding = 16), theRel = t(this).attr(settings.hook), galleryRegExp = /\[(?:.*)\]/, isSet = !!galleryRegExp.exec(theRel), pp_images = isSet ? jQuery.map(x, function(e) { return -1 != t(e).attr(settings.hook).indexOf(theRel) ? t(e).attr("href") : void 0 }) : t.makeArray(t(this).attr("href")), pp_titles = isSet ? jQuery.map(x, function(e) { return -1 != t(e).attr(settings.hook).indexOf(theRel) ? t(e).find("img").attr("alt") ? t(e).find("img").attr("alt") : "" : void 0 }) : t.makeArray(t(this).find("img").attr("alt")), pp_descriptions = isSet ? jQuery.map(x, function(e) { return -1 != t(e).attr(settings.hook).indexOf(theRel) ? t(e).attr("title") ? t(e).attr("title") : "" : void 0 }) : t.makeArray(t(this).attr("title")), pp_images.length > settings.overlay_gallery_max && (settings.overlay_gallery = !1), set_position = jQuery.inArray(t(this).attr("href"), pp_images), rel_index = isSet ? set_position : t("a[" + settings.hook + "^='" + theRel + "']").index(t(this)), f(this), settings.allow_resize && t(window).bind("scroll.prettyphoto", function() { c() }), t.prettyPhoto.open(), !1 }, t.prettyPhoto.open = function(e) { return "undefined" == typeof settings && (settings = a, pp_images = t.makeArray(arguments[0]), pp_titles = t.makeArray(arguments[1] ? arguments[1] : ""), pp_descriptions = t.makeArray(arguments[2] ? arguments[2] : ""), isSet = pp_images.length > 1, set_position = arguments[3] ? arguments[3] : 0, f(e.target)), settings.hideflash && t("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility", "hidden"), l(t(pp_images).size()), t(".pp_loaderIcon").show(), settings.deeplinking && i(), settings.social_tools && (facebook_like_link = settings.social_tools.replace("{location_href}", encodeURIComponent(location.href)), $pp_pic_holder.find(".pp_social").html(facebook_like_link)), $ppt.is(":hidden") && $ppt.css("opacity", 0).show(), $pp_overlay.show().fadeTo(settings.animation_speed, settings.opacity), $pp_pic_holder.find(".currentTextHolder").text(set_position + 1 + settings.counter_separator_label + t(pp_images).size()), "undefined" != typeof pp_descriptions[set_position] && "" != pp_descriptions[set_position] ? $pp_pic_holder.find(".pp_description").show().html(unescape(pp_descriptions[set_position])) : $pp_pic_holder.find(".pp_description").hide(), movie_width = parseFloat(p("width", pp_images[set_position])) ? p("width", pp_images[set_position]) : settings.default_width.toString(), movie_height = parseFloat(p("height", pp_images[set_position])) ? p("height", pp_images[set_position]) : settings.default_height.toString(), $ = !1, -1 != movie_height.indexOf("%") && (movie_height = parseFloat(t(window).height() * parseFloat(movie_height) / 100 - 150), $ = !0), -1 != movie_width.indexOf("%") && (movie_width = parseFloat(t(window).width() * parseFloat(movie_width) / 100 - 150), $ = !0), $pp_pic_holder.fadeIn(function() { switch ($ppt.html(settings.show_title && "" != pp_titles[set_position] && "undefined" != typeof pp_titles[set_position] ? unescape(pp_titles[set_position]) : " "), imgPreloader = "", skipInjection = !1, h(pp_images[set_position])) { case "image": imgPreloader = new Image, nextImage = new Image, isSet && set_position < t(pp_images).size() - 1 && (nextImage.src = pp_images[set_position + 1]), prevImage = new Image, isSet && pp_images[set_position - 1] && (prevImage.src = pp_images[set_position - 1]), $pp_pic_holder.find("#pp_full_res")[0].innerHTML = settings.image_markup.replace(/{path}/g, pp_images[set_position]), imgPreloader.onload = function() { u = r(imgPreloader.width, imgPreloader.height), s() }, imgPreloader.onerror = function() { alert("Image cannot be loaded. Make sure the path is correct and image exist."), t.prettyPhoto.close() }, imgPreloader.src = pp_images[set_position]; break; case "youtube": u = r(movie_width, movie_height), movie_id = p("v", pp_images[set_position]), "" == movie_id && (movie_id = pp_images[set_position].split("youtu.be/"), movie_id = movie_id[1], movie_id.indexOf("?") > 0 && (movie_id = movie_id.substr(0, movie_id.indexOf("?"))), movie_id.indexOf("&") > 0 && (movie_id = movie_id.substr(0, movie_id.indexOf("&")))), movie = "http://www.youtube.com/embed/" + movie_id, movie += p("rel", pp_images[set_position]) ? "?rel=" + p("rel", pp_images[set_position]) : "?rel=1", settings.autoplay && (movie += "&autoplay=1"), toInject = settings.iframe_markup.replace(/{width}/g, u.width).replace(/{height}/g, u.height).replace(/{wmode}/g, settings.wmode).replace(/{path}/g, movie); break; case "vimeo": u = r(movie_width, movie_height), movie_id = pp_images[set_position]; var e = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/, i = movie_id.match(e); movie = "http://player.vimeo.com/video/" + i[3] + "?title=0&byline=0&portrait=0", settings.autoplay && (movie += "&autoplay=1;"), vimeo_width = u.width + "/embed/?moog_width=" + u.width, toInject = settings.iframe_markup.replace(/{width}/g, vimeo_width).replace(/{height}/g, u.height).replace(/{path}/g, movie); break; case "quicktime": u = r(movie_width, movie_height), u.height += 15, u.contentHeight += 15, u.containerHeight += 15, toInject = settings.quicktime_markup.replace(/{width}/g, u.width).replace(/{height}/g, u.height).replace(/{wmode}/g, settings.wmode).replace(/{path}/g, pp_images[set_position]).replace(/{autoplay}/g, settings.autoplay); break; case "flash": u = r(movie_width, movie_height), flash_vars = pp_images[set_position], flash_vars = flash_vars.substring(pp_images[set_position].indexOf("flashvars") + 10, pp_images[set_position].length), filename = pp_images[set_position], filename = filename.substring(0, filename.indexOf("?")), toInject = settings.flash_markup.replace(/{width}/g, u.width).replace(/{height}/g, u.height).replace(/{wmode}/g, settings.wmode).replace(/{path}/g, filename + "?" + flash_vars); break; case "iframe": u = r(movie_width, movie_height), frame_url = pp_images[set_position], frame_url = frame_url.substr(0, frame_url.indexOf("iframe") - 1), toInject = settings.iframe_markup.replace(/{width}/g, u.width).replace(/{height}/g, u.height).replace(/{path}/g, frame_url); break; case "ajax": doresize = !1, u = r(movie_width, movie_height), doresize = !0, skipInjection = !0, t.get(pp_images[set_position], function(t) { toInject = settings.inline_markup.replace(/{content}/g, t), $pp_pic_holder.find("#pp_full_res")[0].innerHTML = toInject, s() }); break; case "custom": u = r(movie_width, movie_height), toInject = settings.custom_markup; break; case "inline": myClone = t(pp_images[set_position]).clone().append('
').css({ width: settings.default_width }).wrapInner('
').appendTo(t("body")).show(), doresize = !1, u = r(t(myClone).width(), t(myClone).height()), doresize = !0, t(myClone).remove(), toInject = settings.inline_markup.replace(/{content}/g, t(pp_images[set_position]).html()) } imgPreloader || skipInjection || ($pp_pic_holder.find("#pp_full_res")[0].innerHTML = toInject, s()) }), !1 }, t.prettyPhoto.changePage = function(e) { currentGalleryPage = 0, "previous" == e ? (set_position--, set_position < 0 && (set_position = t(pp_images).size() - 1)) : "next" == e ? (set_position++, set_position > t(pp_images).size() - 1 && (set_position = 0)) : set_position = e, rel_index = set_position, doresize || (doresize = !0), settings.allow_expand && t(".pp_contract").removeClass("pp_contract").addClass("pp_expand"), n(function() { t.prettyPhoto.open() }) }, t.prettyPhoto.changeGalleryPage = function(t) { "next" == t ? (currentGalleryPage++, currentGalleryPage > totalPage && (currentGalleryPage = 0)) : "previous" == t ? (currentGalleryPage--, currentGalleryPage < 0 && (currentGalleryPage = totalPage)) : currentGalleryPage = t, slide_speed = "next" == t || "previous" == t ? settings.animation_speed : 0, slide_to = currentGalleryPage * itemsPerPage * itemWidth, $pp_gallery.find("ul").animate({ left: -slide_to }, slide_speed) }, t.prettyPhoto.startSlideshow = function() { "undefined" == typeof P ? ($pp_pic_holder.find(".pp_play").unbind("click").removeClass("pp_play").addClass("pp_pause").click(function() { return t.prettyPhoto.stopSlideshow(), !1 }), P = setInterval(t.prettyPhoto.startSlideshow, settings.slideshow)) : t.prettyPhoto.changePage("next") }, t.prettyPhoto.stopSlideshow = function() { $pp_pic_holder.find(".pp_pause").unbind("click").removeClass("pp_pause").addClass("pp_play").click(function() { return t.prettyPhoto.startSlideshow(), !1 }), clearInterval(P), P = void 0 }, t.prettyPhoto.close = function() { $pp_overlay.is(":animated") || (t.prettyPhoto.stopSlideshow(), $pp_pic_holder.stop().find("object,embed").css("visibility", "hidden"), t("div.pp_pic_holder,div.ppt,.pp_fade").fadeOut(settings.animation_speed, function() { t(this).remove() }), $pp_overlay.fadeOut(settings.animation_speed, function() { settings.hideflash && t("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility", "visible"), t(this).remove(), t(window).unbind("scroll.prettyphoto"), o(), settings.callback(), doresize = !0, v = !1, delete settings })) }, !pp_alreadyInitialized && e() && (pp_alreadyInitialized = !0, hashIndex = e(), hashRel = hashIndex, hashIndex = hashIndex.substring(hashIndex.indexOf("/") + 1, hashIndex.length - 1), hashRel = hashRel.substring(0, hashRel.indexOf("/")), setTimeout(function() { t("a[" + a.hook + "^='" + hashRel + "']:eq(" + hashIndex + ")").trigger("click") }, 50)), this.unbind("click.prettyphoto").bind("click.prettyphoto", t.prettyPhoto.initialize) } }(jQuery); var pp_alreadyInitialized = !1; ! function() { var t = !1; window.JQClass = function() {}, JQClass.classes = {}, JQClass.extend = function e(i) { function n() { !t && this._init && this._init.apply(this, arguments) } var s = this.prototype; t = !0; var o = new this; t = !1; for (var a in i) o[a] = "function" == typeof i[a] && "function" == typeof s[a] ? function(t, e) { return function() { var i = this._super; this._super = function(e) { return s[t].apply(this, e || []) }; var n = e.apply(this, arguments); return this._super = i, n } }(a, i[a]) : i[a]; return n.prototype = o, n.prototype.constructor = n, n.extend = e, n } }(), function($) { function camelCase(t) { return t.replace(/-([a-z])/g, function(t, e) { return e.toUpperCase() }) } JQClass.classes.JQPlugin = JQClass.extend({ name: "plugin", defaultOptions: {}, regionalOptions: {}, _getters: [], _getMarker: function() { return "is-" + this.name }, _init: function() { $.extend(this.defaultOptions, this.regionalOptions && this.regionalOptions[""] || {}); var t = camelCase(this.name); $[t] = this, $.fn[t] = function(e) { var i = Array.prototype.slice.call(arguments, 1); return $[t]._isNotChained(e, i) ? $[t][e].apply($[t], [this[0]].concat(i)) : this.each(function() { if ("string" == typeof e) { if ("_" === e[0] || !$[t][e]) throw "Unknown method: " + e; $[t][e].apply($[t], [this].concat(i)) } else $[t]._attach(this, e) }) } }, setDefaults: function(t) { $.extend(this.defaultOptions, t || {}) }, _isNotChained: function(t, e) { return "option" === t && (0 === e.length || 1 === e.length && "string" == typeof e[0]) || $.inArray(t, this._getters) > -1 }, _attach: function(t, e) { if (t = $(t), !t.hasClass(this._getMarker())) { t.addClass(this._getMarker()), e = $.extend({}, this.defaultOptions, this._getMetadata(t), e || {}); var i = $.extend({ name: this.name, elem: t, options: e }, this._instSettings(t, e)); t.data(this.name, i), this._postAttach(t, i), this.option(t, e) } }, _instSettings: function(t, e) { return {} }, _postAttach: function(t, e) {}, _getMetadata: function(d) { try { var f = d.data(this.name.toLowerCase()) || ""; f = f.replace(/'/g, '"'), f = f.replace(/([a-zA-Z0-9]+):/g, function(t, e, i) { var n = f.substring(0, i).match(/"/g); return n && n.length % 2 !== 0 ? e + ":" : '"' + e + '":' }), f = $.parseJSON("{" + f + "}"); for (var g in f) { var h = f[g]; "string" == typeof h && h.match(/^new Date\((.*)\)$/) && (f[g] = eval(h)) } return f } catch (t) { return {} } }, _getInst: function(t) { return $(t).data(this.name) || {} }, option: function(t, e, i) { t = $(t); var n = t.data(this.name); if (!e || "string" == typeof e && null == i) { var s = (n || {}).options; return s && e ? s[e] : s } if (t.hasClass(this._getMarker())) { var s = e || {}; "string" == typeof e && (s = {}, s[e] = i), this._optionsChanged(t, n, s), $.extend(n.options, s) } }, _optionsChanged: function(t, e, i) {}, destroy: function(t) { t = $(t), t.hasClass(this._getMarker()) && (this._preDestroy(t, this._getInst(t)), t.removeData(this.name).removeClass(this._getMarker())) }, _preDestroy: function(t, e) {} }), $.JQPlugin = { createPlugin: function(t, e) { "object" == typeof t && (e = t, t = "JQPlugin"), t = camelCase(t); var i = camelCase(e.name); JQClass.classes[i] = JQClass.classes[t].extend(e), new JQClass.classes[i] } } }(jQuery), function(t) { var e = "countdown", i = 0, n = 1, s = 2, o = 3, a = 4, r = 5, l = 6; t.JQPlugin.createPlugin({ name: e, defaultOptions: { until: null, since: null, timezone: null, serverSync: null, format: "dHMS", layout: "", compact: !1, padZeroes: !1, significant: 0, description: "", expiryUrl: "", expiryText: "", alwaysExpire: !1, onExpiry: null, onTick: null, tickInterval: 1 }, regionalOptions: { "": { labels: ["Years", "Months", "Weeks", "Days", "Hours", "Minutes", "Seconds"], labels1: ["Year", "Month", "Week", "Day", "Hour", "Minute", "Second"], compactLabels: ["y", "m", "w", "d"], whichLabels: null, digits: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], timeSeparator: ":", isRTL: !1 } }, _getters: ["getTimes"], _rtlClass: e + "-rtl", _sectionClass: e + "-section", _amountClass: e + "-amount", _periodClass: e + "-period", _rowClass: e + "-row", _holdingClass: e + "-holding", _showClass: e + "-show", _descrClass: e + "-descr", _timerElems: [], _init: function() { function e(t) { var r = t < 1e12 ? s ? performance.now() + performance.timing.navigationStart : n() : t || n(); r - a >= 1e3 && (i._updateElems(), a = r), o(e) } var i = this; this._super(), this._serverSyncs = []; var n = "function" == typeof Date.now ? Date.now : function() { return (new Date).getTime() }, s = window.performance && "function" == typeof window.performance.now, o = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || null, a = 0; !o || t.noRequestAnimationFrame ? (t.noRequestAnimationFrame = null, setInterval(function() { i._updateElems() }, 980)) : (a = window.animationStartTime || window.webkitAnimationStartTime || window.mozAnimationStartTime || window.oAnimationStartTime || window.msAnimationStartTime || n(), o(e)) }, UTCDate: function(t, e, i, n, s, o, a, r) { "object" == typeof e && e.constructor == Date && (r = e.getMilliseconds(), a = e.getSeconds(), o = e.getMinutes(), s = e.getHours(), n = e.getDate(), i = e.getMonth(), e = e.getFullYear()); var l = new Date; return l.setUTCFullYear(e), l.setUTCDate(1), l.setUTCMonth(i || 0), l.setUTCDate(n || 1), l.setUTCHours(s || 0), l.setUTCMinutes((o || 0) - (Math.abs(t) < 30 ? 60 * t : t)), l.setUTCSeconds(a || 0), l.setUTCMilliseconds(r || 0), l }, periodsToSeconds: function(t) { return 31557600 * t[0] + 2629800 * t[1] + 604800 * t[2] + 86400 * t[3] + 3600 * t[4] + 60 * t[5] + t[6] }, resync: function() { var e = this; t("." + this._getMarker()).each(function() { var i = t.data(this, e.name); if (i.options.serverSync) { for (var n = null, s = 0; s < e._serverSyncs.length; s++) if (e._serverSyncs[s][0] == i.options.serverSync) { n = e._serverSyncs[s]; break } if (null == n[2]) { var o = t.isFunction(i.options.serverSync) ? i.options.serverSync.apply(this, []) : null; n[2] = (o ? (new Date).getTime() - o.getTime() : 0) - n[1] } i._since && i._since.setMilliseconds(i._since.getMilliseconds() + n[2]), i._until.setMilliseconds(i._until.getMilliseconds() + n[2]) } }); for (var i = 0; i < e._serverSyncs.length; i++) null != e._serverSyncs[i][2] && (e._serverSyncs[i][1] += e._serverSyncs[i][2], delete e._serverSyncs[i][2]) }, _instSettings: function(t, e) { return { _periods: [0, 0, 0, 0, 0, 0, 0] } }, _addElem: function(t) { this._hasElem(t) || this._timerElems.push(t) }, _hasElem: function(e) { return t.inArray(e, this._timerElems) > -1 }, _removeElem: function(e) { this._timerElems = t.map(this._timerElems, function(t) { return t == e ? null : t }) }, _updateElems: function() { for (var t = this._timerElems.length - 1; t >= 0; t--) this._updateCountdown(this._timerElems[t]) }, _optionsChanged: function(e, i, n) { n.layout && (n.layout = n.layout.replace(/</g, "<").replace(/>/g, ">")), this._resetExtraLabels(i.options, n); var s = i.options.timezone != n.timezone; t.extend(i.options, n), this._adjustSettings(e, i, null != n.until || null != n.since || s); var o = new Date; (i._since && i._since < o || i._until && i._until > o) && this._addElem(e[0]), this._updateCountdown(e, i) }, _updateCountdown: function(e, i) { if (e = e.jquery ? e : t(e), i = i || this._getInst(e)) { if (e.html(this._generateHTML(i)).toggleClass(this._rtlClass, i.options.isRTL), t.isFunction(i.options.onTick)) { var n = "lap" != i._hold ? i._periods : this._calculatePeriods(i, i._show, i.options.significant, new Date); 1 != i.options.tickInterval && this.periodsToSeconds(n) % i.options.tickInterval != 0 || i.options.onTick.apply(e[0], [n]) } var s = "pause" != i._hold && (i._since ? i._now.getTime() < i._since.getTime() : i._now.getTime() >= i._until.getTime()); if (s && !i._expiring) { if (i._expiring = !0, this._hasElem(e[0]) || i.options.alwaysExpire) { if (this._removeElem(e[0]), t.isFunction(i.options.onExpiry) && i.options.onExpiry.apply(e[0], []), i.options.expiryText) { var o = i.options.layout; i.options.layout = i.options.expiryText, this._updateCountdown(e[0], i), i.options.layout = o } i.options.expiryUrl && (window.location = i.options.expiryUrl) } i._expiring = !1 } else "pause" == i._hold && this._removeElem(e[0]) } }, _resetExtraLabels: function(t, e) { for (var i in e) i.match(/[Ll]abels[02-9]|compactLabels1/) && (t[i] = e[i]); for (var i in t) i.match(/[Ll]abels[02-9]|compactLabels1/) && "undefined" == typeof e[i] && (t[i] = null) }, _adjustSettings: function(e, i, n) { for (var s = null, o = 0; o < this._serverSyncs.length; o++) if (this._serverSyncs[o][0] == i.options.serverSync) { s = this._serverSyncs[o][1]; break } if (null != s) var a = i.options.serverSync ? s : 0, r = new Date; else { var l = t.isFunction(i.options.serverSync) ? i.options.serverSync.apply(e[0], []) : null, r = new Date, a = l ? r.getTime() - l.getTime() : 0; this._serverSyncs.push([i.options.serverSync, a]) } var p = i.options.timezone; p = null == p ? -r.getTimezoneOffset() : p, (n || !n && null == i._until && null == i._since) && (i._since = i.options.since, null != i._since && (i._since = this.UTCDate(p, this._determineTime(i._since, null)), i._since && a && i._since.setMilliseconds(i._since.getMilliseconds() + a)), i._until = this.UTCDate(p, this._determineTime(i.options.until, r)), a && i._until.setMilliseconds(i._until.getMilliseconds() + a)), i._show = this._determineShow(i) }, _preDestroy: function(t, e) { this._removeElem(t[0]), t.empty() }, pause: function(t) { this._hold(t, "pause") }, lap: function(t) { this._hold(t, "lap") }, resume: function(t) { this._hold(t, null) }, toggle: function(e) { var i = t.data(e, this.name) || {}; this[i._hold ? "resume" : "pause"](e) }, toggleLap: function(e) { var i = t.data(e, this.name) || {}; this[i._hold ? "resume" : "lap"](e) }, _hold: function(e, i) { var n = t.data(e, this.name); if (n) { if ("pause" == n._hold && !i) { n._periods = n._savePeriods; var s = n._since ? "-" : "+"; n[n._since ? "_since" : "_until"] = this._determineTime(s + n._periods[0] + "y" + s + n._periods[1] + "o" + s + n._periods[2] + "w" + s + n._periods[3] + "d" + s + n._periods[4] + "h" + s + n._periods[5] + "m" + s + n._periods[6] + "s"), this._addElem(e) } n._hold = i, n._savePeriods = "pause" == i ? n._periods : null, t.data(e, this.name, n), this._updateCountdown(e, n) } }, getTimes: function(e) { var i = t.data(e, this.name); return i ? "pause" == i._hold ? i._savePeriods : i._hold ? this._calculatePeriods(i, i._show, i.options.significant, new Date) : i._periods : null }, _determineTime: function(t, e) { var i = this, n = function(t) { var e = new Date; return e.setTime(e.getTime() + 1e3 * t), e }, s = function(t) { t = t.toLowerCase(); for (var e = new Date, n = e.getFullYear(), s = e.getMonth(), o = e.getDate(), a = e.getHours(), r = e.getMinutes(), l = e.getSeconds(), p = /([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g, _ = p.exec(t); _;) { switch (_[2] || "s") { case "s": l += parseInt(_[1], 10); break; case "m": r += parseInt(_[1], 10); break; case "h": a += parseInt(_[1], 10); break; case "d": o += parseInt(_[1], 10); break; case "w": o += 7 * parseInt(_[1], 10); break; case "o": s += parseInt(_[1], 10), o = Math.min(o, i._getDaysInMonth(n, s)); break; case "y": n += parseInt(_[1], 10), o = Math.min(o, i._getDaysInMonth(n, s)) } _ = p.exec(t) } return new Date(n, s, o, a, r, l, 0) }, o = null == t ? e : "string" == typeof t ? s(t) : "number" == typeof t ? n(t) : t; return o && o.setMilliseconds(0), o }, _getDaysInMonth: function(t, e) { return 32 - new Date(t, e, 32).getDate() }, _normalLabels: function(t) { return t }, _generateHTML: function(e) { var p = this; e._periods = e._hold ? e._periods : this._calculatePeriods(e, e._show, e.options.significant, new Date); for (var _ = !1, c = 0, u = e.options.significant, h = t.extend({}, e._show), d = i; d <= l; d++) _ |= "?" == e._show[d] && e._periods[d] > 0, h[d] = "?" != e._show[d] || _ ? e._show[d] : null, c += h[d] ? 1 : 0, u -= e._periods[d] > 0 ? 1 : 0; for (var m = [!1, !1, !1, !1, !1, !1, !1], d = l; d >= i; d--) e._show[d] && (e._periods[d] ? m[d] = !0 : (m[d] = u > 0, u--)); var g = e.options.compact ? e.options.compactLabels : e.options.labels, f = e.options.whichLabels || this._normalLabels, w = function(t) { var i = e.options["compactLabels" + f(e._periods[t])]; return h[t] ? p._translateDigits(e, e._periods[t]) + (i ? i[t] : g[t]) + " " : "" }, y = e.options.padZeroes ? 2 : 1, v = function(t) { var i = e.options["labels" + f(e._periods[t])]; return !e.options.significant && h[t] || e.options.significant && m[t] ? '' + p._minDigits(e, e._periods[t], y) + '' + (i ? i[t] : g[t]) + "" : "" }; return e.options.layout ? this._buildLayout(e, h, e.options.layout, e.options.compact, e.options.significant, m) : (e.options.compact ? '' + w(i) + w(n) + w(s) + w(o) + (h[a] ? this._minDigits(e, e._periods[a], 2) : "") + (h[r] ? (h[a] ? e.options.timeSeparator : "") + this._minDigits(e, e._periods[r], 2) : "") + (h[l] ? (h[a] || h[r] ? e.options.timeSeparator : "") + this._minDigits(e, e._periods[l], 2) : "") : '' + v(i) + v(n) + v(s) + v(o) + v(a) + v(r) + v(l)) + "" + (e.options.description ? '' + e.options.description + "" : "") }, _buildLayout: function(e, p, _, c, u, h) { for (var d = e.options[c ? "compactLabels" : "labels"], m = e.options.whichLabels || this._normalLabels, g = function(t) { return (e.options[(c ? "compactLabels" : "labels") + m(e._periods[t])] || d)[t] }, f = function(t, i) { return e.options.digits[Math.floor(t / i) % 10] }, w = { desc: e.options.description, sep: e.options.timeSeparator, yl: g(i), yn: this._minDigits(e, e._periods[i], 1), ynn: this._minDigits(e, e._periods[i], 2), ynnn: this._minDigits(e, e._periods[i], 3), y1: f(e._periods[i], 1), y10: f(e._periods[i], 10), y100: f(e._periods[i], 100), y1000: f(e._periods[i], 1e3), ol: g(n), on: this._minDigits(e, e._periods[n], 1), onn: this._minDigits(e, e._periods[n], 2), onnn: this._minDigits(e, e._periods[n], 3), o1: f(e._periods[n], 1), o10: f(e._periods[n], 10), o100: f(e._periods[n], 100), o1000: f(e._periods[n], 1e3), wl: g(s), wn: this._minDigits(e, e._periods[s], 1), wnn: this._minDigits(e, e._periods[s], 2), wnnn: this._minDigits(e, e._periods[s], 3), w1: f(e._periods[s], 1), w10: f(e._periods[s], 10), w100: f(e._periods[s], 100), w1000: f(e._periods[s], 1e3), dl: g(o), dn: this._minDigits(e, e._periods[o], 1), dnn: this._minDigits(e, e._periods[o], 2), dnnn: this._minDigits(e, e._periods[o], 3), d1: f(e._periods[o], 1), d10: f(e._periods[o], 10), d100: f(e._periods[o], 100), d1000: f(e._periods[o], 1e3), hl: g(a), hn: this._minDigits(e, e._periods[a], 1), hnn: this._minDigits(e, e._periods[a], 2), hnnn: this._minDigits(e, e._periods[a], 3), h1: f(e._periods[a], 1), h10: f(e._periods[a], 10), h100: f(e._periods[a], 100), h1000: f(e._periods[a], 1e3), ml: g(r), mn: this._minDigits(e, e._periods[r], 1), mnn: this._minDigits(e, e._periods[r], 2), mnnn: this._minDigits(e, e._periods[r], 3), m1: f(e._periods[r], 1), m10: f(e._periods[r], 10), m100: f(e._periods[r], 100), m1000: f(e._periods[r], 1e3), sl: g(l), sn: this._minDigits(e, e._periods[l], 1), snn: this._minDigits(e, e._periods[l], 2), snnn: this._minDigits(e, e._periods[l], 3), s1: f(e._periods[l], 1), s10: f(e._periods[l], 10), s100: f(e._periods[l], 100), s1000: f(e._periods[l], 1e3) }, y = _, v = i; v <= l; v++) { var D = "yowdhms".charAt(v), C = new RegExp("\\{" + D + "<\\}([\\s\\S]*)\\{" + D + ">\\}", "g"); y = y.replace(C, !u && p[v] || u && h[v] ? "$1" : "") } return t.each(w, function(t, e) { var i = new RegExp("\\{" + t + "\\}", "g"); y = y.replace(i, e) }), y }, _minDigits: function(t, e, i) { return e = "" + e, e.length >= i ? this._translateDigits(t, e) : (e = "0000000000" + e, this._translateDigits(t, e.substr(e.length - i))) }, _translateDigits: function(t, e) { return ("" + e).replace(/[0-9]/g, function(e) { return t.options.digits[e] }) }, _determineShow: function(t) { var e = t.options.format, p = []; return p[i] = e.match("y") ? "?" : e.match("Y") ? "!" : null, p[n] = e.match("o") ? "?" : e.match("O") ? "!" : null, p[s] = e.match("w") ? "?" : e.match("W") ? "!" : null, p[o] = e.match("d") ? "?" : e.match("D") ? "!" : null, p[a] = e.match("h") ? "?" : e.match("H") ? "!" : null, p[r] = e.match("m") ? "?" : e.match("M") ? "!" : null, p[l] = e.match("s") ? "?" : e.match("S") ? "!" : null, p }, _calculatePeriods: function(t, e, p, _) { t._now = _, t._now.setMilliseconds(0); var c = new Date(t._now.getTime()); t._since ? _.getTime() < t._since.getTime() ? t._now = _ = c : _ = t._since : (c.setTime(t._until.getTime()), _.getTime() > t._until.getTime() && (t._now = _ = c)); var u = [0, 0, 0, 0, 0, 0, 0]; if (e[i] || e[n]) { var h = this._getDaysInMonth(_.getFullYear(), _.getMonth()), d = this._getDaysInMonth(c.getFullYear(), c.getMonth()), m = c.getDate() == _.getDate() || c.getDate() >= Math.min(h, d) && _.getDate() >= Math.min(h, d), g = function(t) { return 60 * (60 * t.getHours() + t.getMinutes()) + t.getSeconds() }, f = Math.max(0, 12 * (c.getFullYear() - _.getFullYear()) + c.getMonth() - _.getMonth() + (c.getDate() < _.getDate() && !m || m && g(c) < g(_) ? -1 : 0)); u[i] = e[i] ? Math.floor(f / 12) : 0, u[n] = e[n] ? f - 12 * u[i] : 0, _ = new Date(_.getTime()); var w = _.getDate() == h, y = this._getDaysInMonth(_.getFullYear() + u[i], _.getMonth() + u[n]); _.getDate() > y && _.setDate(y), _.setFullYear(_.getFullYear() + u[i]), _.setMonth(_.getMonth() + u[n]), w && _.setDate(y) } var v = Math.floor((c.getTime() - _.getTime()) / 1e3), D = function(t, i) { u[t] = e[t] ? Math.floor(v / i) : 0, v -= u[t] * i }; if (D(s, 604800), D(o, 86400), D(a, 3600), D(r, 60), D(l, 1), v > 0 && !t._since) for (var C = [1, 12, 4.3482, 7, 24, 60, 60], M = l, T = 1, S = l; S >= i; S--) e[S] && (u[M] >= T && (u[M] = 0, v = 1), v > 0 && (u[S]++, v = 0, M = S, T = 1)), T *= C[S]; if (p) for (var S = i; S <= l; S++) p && u[S] ? p-- : p || (u[S] = 0); return u } }) }(jQuery); ! function(t) { function e() {} function i(t) { function i(e) { e.prototype.option || (e.prototype.option = function(e) { t.isPlainObject(e) && (this.options = t.extend(!0, this.options, e)) }) } function n(e, i) { t.fn[e] = function(n) { if ("string" == typeof n) { for (var s = o.call(arguments, 1), a = 0, u = this.length; u > a; a++) { var p = this[a], h = t.data(p, e); if (h) if (t.isFunction(h[n]) && "_" !== n.charAt(0)) { var f = h[n].apply(h, s); if (void 0 !== f) return f } else r("no such method '" + n + "' for " + e + " instance"); else r("cannot call methods on " + e + " prior to initialization; attempted to call '" + n + "'") } return this } return this.each(function() { var o = t.data(this, e); o ? (o.option(n), o._init()) : (o = new i(this, n), t.data(this, e, o)) }) } } if (t) { var r = "undefined" == typeof console ? e : function(t) { console.error(t) }; return t.bridget = function(t, e) { i(e), n(t, e) }, t.bridget } } var o = Array.prototype.slice; "function" == typeof define && define.amd ? define("jquery-bridget/jquery.bridget", ["jquery"], i) : i("object" == typeof exports ? require("jquery") : t.jQuery) }(window), function(t) { function e(e) { var i = t.event; return i.target = i.target || i.srcElement || e, i } var i = document.documentElement, o = function() {}; i.addEventListener ? o = function(t, e, i) { t.addEventListener(e, i, !1) } : i.attachEvent && (o = function(t, i, o) { t[i + o] = o.handleEvent ? function() { var i = e(t); o.handleEvent.call(o, i) } : function() { var i = e(t); o.call(t, i) }, t.attachEvent("on" + i, t[i + o]) }); var n = function() {}; i.removeEventListener ? n = function(t, e, i) { t.removeEventListener(e, i, !1) } : i.detachEvent && (n = function(t, e, i) { t.detachEvent("on" + e, t[e + i]); try { delete t[e + i] } catch (o) { t[e + i] = void 0 } }); var r = { bind: o, unbind: n }; "function" == typeof define && define.amd ? define("eventie/eventie", r) : "object" == typeof exports ? module.exports = r : t.eventie = r }(window), function() { function t() {} function e(t, e) { for (var i = t.length; i--;) if (t[i].listener === e) return i; return -1 } function i(t) { return function() { return this[t].apply(this, arguments) } } var o = t.prototype, n = this, r = n.EventEmitter; o.getListeners = function(t) { var e, i, o = this._getEvents(); if (t instanceof RegExp) { e = {}; for (i in o) o.hasOwnProperty(i) && t.test(i) && (e[i] = o[i]) } else e = o[t] || (o[t] = []); return e }, o.flattenListeners = function(t) { var e, i = []; for (e = 0; t.length > e; e += 1) i.push(t[e].listener); return i }, o.getListenersAsObject = function(t) { var e, i = this.getListeners(t); return i instanceof Array && (e = {}, e[t] = i), e || i }, o.addListener = function(t, i) { var o, n = this.getListenersAsObject(t), r = "object" == typeof i; for (o in n) n.hasOwnProperty(o) && -1 === e(n[o], i) && n[o].push(r ? i : { listener: i, once: !1 }); return this }, o.on = i("addListener"), o.addOnceListener = function(t, e) { return this.addListener(t, { listener: e, once: !0 }) }, o.once = i("addOnceListener"), o.defineEvent = function(t) { return this.getListeners(t), this }, o.defineEvents = function(t) { for (var e = 0; t.length > e; e += 1) this.defineEvent(t[e]); return this }, o.removeListener = function(t, i) { var o, n, r = this.getListenersAsObject(t); for (n in r) r.hasOwnProperty(n) && (o = e(r[n], i), -1 !== o && r[n].splice(o, 1)); return this }, o.off = i("removeListener"), o.addListeners = function(t, e) { return this.manipulateListeners(!1, t, e) }, o.removeListeners = function(t, e) { return this.manipulateListeners(!0, t, e) }, o.manipulateListeners = function(t, e, i) { var o, n, r = t ? this.removeListener : this.addListener, s = t ? this.removeListeners : this.addListeners; if ("object" != typeof e || e instanceof RegExp) for (o = i.length; o--;) r.call(this, e, i[o]); else for (o in e) e.hasOwnProperty(o) && (n = e[o]) && ("function" == typeof n ? r.call(this, o, n) : s.call(this, o, n)); return this }, o.removeEvent = function(t) { var e, i = typeof t, o = this._getEvents(); if ("string" === i) delete o[t]; else if (t instanceof RegExp) for (e in o) o.hasOwnProperty(e) && t.test(e) && delete o[e]; else delete this._events; return this }, o.removeAllListeners = i("removeEvent"), o.emitEvent = function(t, e) { var i, o, n, r, s = this.getListenersAsObject(t); for (n in s) if (s.hasOwnProperty(n)) for (o = s[n].length; o--;) i = s[n][o], i.once === !0 && this.removeListener(t, i.listener), r = i.listener.apply(this, e || []), r === this._getOnceReturnValue() && this.removeListener(t, i.listener); return this }, o.trigger = i("emitEvent"), o.emit = function(t) { var e = Array.prototype.slice.call(arguments, 1); return this.emitEvent(t, e) }, o.setOnceReturnValue = function(t) { return this._onceReturnValue = t, this }, o._getOnceReturnValue = function() { return !this.hasOwnProperty("_onceReturnValue") || this._onceReturnValue }, o._getEvents = function() { return this._events || (this._events = {}) }, t.noConflict = function() { return n.EventEmitter = r, t }, "function" == typeof define && define.amd ? define("eventEmitter/EventEmitter", [], function() { return t }) : "object" == typeof module && module.exports ? module.exports = t : n.EventEmitter = t }.call(this), function(t) { function e(t) { if (t) { if ("string" == typeof o[t]) return t; t = t.charAt(0).toUpperCase() + t.slice(1); for (var e, n = 0, r = i.length; r > n; n++) if (e = i[n] + t, "string" == typeof o[e]) return e } } var i = "Webkit Moz ms Ms O".split(" "), o = document.documentElement.style; "function" == typeof define && define.amd ? define("get-style-property/get-style-property", [], function() { return e }) : "object" == typeof exports ? module.exports = e : t.getStyleProperty = e }(window), function(t) { function e(t) { var e = parseFloat(t), i = -1 === t.indexOf("%") && !isNaN(e); return i && e } function i() {} function o() { for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = 0, i = s.length; i > e; e++) { var o = s[e]; t[o] = 0 } return t } function n(i) { function n() { if (!d) { d = !0; var o = t.getComputedStyle; if (p = function() { var t = o ? function(t) { return o(t, null) } : function(t) { return t.currentStyle }; return function(e) { var i = t(e); return i || r("Style returned " + i + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), i } }(), h = i("boxSizing")) { var n = document.createElement("div"); n.style.width = "200px", n.style.padding = "1px 2px 3px 4px", n.style.borderStyle = "solid", n.style.borderWidth = "1px 2px 3px 4px", n.style[h] = "border-box"; var s = document.body || document.documentElement; s.appendChild(n); var a = p(n); f = 200 === e(a.width), s.removeChild(n) } } } function a(t) { if (n(), "string" == typeof t && (t = document.querySelector(t)), t && "object" == typeof t && t.nodeType) { var i = p(t); if ("none" === i.display) return o(); var r = {}; r.width = t.offsetWidth, r.height = t.offsetHeight; for (var a = r.isBorderBox = !(!h || !i[h] || "border-box" !== i[h]), d = 0, l = s.length; l > d; d++) { var c = s[d], y = i[c]; y = u(t, y); var m = parseFloat(y); r[c] = isNaN(m) ? 0 : m } var g = r.paddingLeft + r.paddingRight, v = r.paddingTop + r.paddingBottom, _ = r.marginLeft + r.marginRight, I = r.marginTop + r.marginBottom, z = r.borderLeftWidth + r.borderRightWidth, L = r.borderTopWidth + r.borderBottomWidth, x = a && f, E = e(i.width); E !== !1 && (r.width = E + (x ? 0 : g + z)); var b = e(i.height); return b !== !1 && (r.height = b + (x ? 0 : v + L)), r.innerWidth = r.width - (g + z), r.innerHeight = r.height - (v + L), r.outerWidth = r.width + _, r.outerHeight = r.height + I, r } } function u(e, i) { if (t.getComputedStyle || -1 === i.indexOf("%")) return i; var o = e.style, n = o.left, r = e.runtimeStyle, s = r && r.left; return s && (r.left = e.currentStyle.left), o.left = i, i = o.pixelLeft, o.left = n, s && (r.left = s), i } var p, h, f, d = !1; return a } var r = "undefined" == typeof console ? i : function(t) { console.error(t) }, s = ["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"], n) : "object" == typeof exports ? module.exports = n(require("desandro-get-style-property")) : t.getSize = n(t.getStyleProperty) }(window), function(t) { function e(t) { "function" == typeof t && (e.isReady ? t() : s.push(t)) } function i(t) { var i = "readystatechange" === t.type && "complete" !== r.readyState; e.isReady || i || o() } function o() { e.isReady = !0; for (var t = 0, i = s.length; i > t; t++) { var o = s[t]; o() } } function n(n) { return "complete" === r.readyState ? o() : (n.bind(r, "DOMContentLoaded", i), n.bind(r, "readystatechange", i), n.bind(t, "load", i)), e } var r = t.document, s = []; e.isReady = !1, "function" == typeof define && define.amd ? define("doc-ready/doc-ready", ["eventie/eventie"], n) : "object" == typeof exports ? module.exports = n(require("eventie")) : t.docReady = n(t.eventie) }(window), function(t) { function e(t, e) { return t[s](e) } function i(t) { if (!t.parentNode) { var e = document.createDocumentFragment(); e.appendChild(t) } } function o(t, e) { i(t); for (var o = t.parentNode.querySelectorAll(e), n = 0, r = o.length; r > n; n++) if (o[n] === t) return !0; return !1 } function n(t, o) { return i(t), e(t, o) } var r, s = function() { if (t.matches) return "matches"; if (t.matchesSelector) return "matchesSelector"; for (var e = ["webkit", "moz", "ms", "o"], i = 0, o = e.length; o > i; i++) { var n = e[i], r = n + "MatchesSelector"; if (t[r]) return r } }(); if (s) { var a = document.createElement("div"), u = e(a, "div"); r = u ? e : n } else r = o; "function" == typeof define && define.amd ? define("matches-selector/matches-selector", [], function() { return r }) : "object" == typeof exports ? module.exports = r : window.matchesSelector = r }(Element.prototype), function(t, e) { "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["doc-ready/doc-ready", "matches-selector/matches-selector"], function(i, o) { return e(t, i, o) }) : "object" == typeof exports ? module.exports = e(t, require("doc-ready"), require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.docReady, t.matchesSelector) }(window, function(t, e, i) { var o = {}; o.extend = function(t, e) { for (var i in e) t[i] = e[i]; return t }, o.modulo = function(t, e) { return (t % e + e) % e }; var n = Object.prototype.toString; o.isArray = function(t) { return "[object Array]" == n.call(t) }, o.makeArray = function(t) { var e = []; if (o.isArray(t)) e = t; else if (t && "number" == typeof t.length) for (var i = 0, n = t.length; n > i; i++) e.push(t[i]); else e.push(t); return e }, o.indexOf = Array.prototype.indexOf ? function(t, e) { return t.indexOf(e) } : function(t, e) { for (var i = 0, o = t.length; o > i; i++) if (t[i] === e) return i; return -1 }, o.removeFrom = function(t, e) { var i = o.indexOf(t, e); - 1 != i && t.splice(i, 1) }, o.isElement = "function" == typeof HTMLElement || "object" == typeof HTMLElement ? function(t) { return t instanceof HTMLElement } : function(t) { return t && "object" == typeof t && 1 == t.nodeType && "string" == typeof t.nodeName }, o.setText = function() { function t(t, i) { e = e || (void 0 !== document.documentElement.textContent ? "textContent" : "innerText"), t[e] = i } var e; return t }(), o.getParent = function(t, e) { for (; t != document.body;) if (t = t.parentNode, i(t, e)) return t }, o.getQueryElement = function(t) { return "string" == typeof t ? document.querySelector(t) : t }, o.handleEvent = function(t) { var e = "on" + t.type; this[e] && this[e](t) }, o.filterFindElements = function(t, e) { t = o.makeArray(t); for (var n = [], r = 0, s = t.length; s > r; r++) { var a = t[r]; if (o.isElement(a)) if (e) { i(a, e) && n.push(a); for (var u = a.querySelectorAll(e), p = 0, h = u.length; h > p; p++) n.push(u[p]) } else n.push(a) } return n }, o.debounceMethod = function(t, e, i) { var o = t.prototype[e], n = e + "Timeout"; t.prototype[e] = function() { var t = this[n]; t && clearTimeout(t); var e = arguments, r = this; this[n] = setTimeout(function() { o.apply(r, e), delete r[n] }, i || 100) } }, o.toDashed = function(t) { return t.replace(/(.)([A-Z])/g, function(t, e, i) { return e + "-" + i }).toLowerCase() }; var r = t.console; return o.htmlInit = function(i, n) { e(function() { for (var e = o.toDashed(n), s = document.querySelectorAll(".js-" + e), a = "data-" + e + "-options", u = 0, p = s.length; p > u; u++) { var h, f = s[u], d = f.getAttribute(a); try { h = d && JSON.parse(d) } catch (t) { r && r.error("Error parsing " + a + " on " + f.nodeName.toLowerCase() + (f.id ? "#" + f.id : "") + ": " + t); continue } var l = new i(f, h), c = t.jQuery; c && c.data(f, n, l) } }) }, o }), function(t, e) { "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(i, o, n, r) { return e(t, i, o, n, r) }) : "object" == typeof exports ? module.exports = e(t, require("wolfy87-eventemitter"), require("get-size"), require("desandro-get-style-property"), require("fizzy-ui-utils")) : (t.Outlayer = {}, t.Outlayer.Item = e(t, t.EventEmitter, t.getSize, t.getStyleProperty, t.fizzyUIUtils)) }(window, function(t, e, i, o, n) { function r(t) { for (var e in t) return !1; return e = null, !0 } function s(t, e) { t && (this.element = t, this.layout = e, this.position = { x: 0, y: 0 }, this._create()) } var a = t.getComputedStyle, u = a ? function(t) { return a(t, null) } : function(t) { return t.currentStyle }, p = o("transition"), h = o("transform"), f = p && h, d = !!o("perspective"), l = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "otransitionend", transition: "transitionend" }[p], c = ["transform", "transition", "transitionDuration", "transitionProperty"], y = function() { for (var t = {}, e = 0, i = c.length; i > e; e++) { var n = c[e], r = o(n); r && r !== n && (t[n] = r) } return t }(); n.extend(s.prototype, e.prototype), s.prototype._create = function() { this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }) }, s.prototype.handleEvent = function(t) { var e = "on" + t.type; this[e] && this[e](t) }, s.prototype.getSize = function() { this.size = i(this.element) }, s.prototype.css = function(t) { var e = this.element.style; for (var i in t) { var o = y[i] || i; e[o] = t[i] } }, s.prototype.getPosition = function() { var t = u(this.element), e = this.layout.options, i = e.isOriginLeft, o = e.isOriginTop, n = parseInt(t[i ? "left" : "right"], 10), r = parseInt(t[o ? "top" : "bottom"], 10); n = isNaN(n) ? 0 : n, r = isNaN(r) ? 0 : r; var s = this.layout.size; n -= i ? s.paddingLeft : s.paddingRight, r -= o ? s.paddingTop : s.paddingBottom, this.position.x = n, this.position.y = r }, s.prototype.layoutPosition = function() { var t = this.layout.size, e = this.layout.options, i = {}, o = e.isOriginLeft ? "paddingLeft" : "paddingRight", n = e.isOriginLeft ? "left" : "right", r = e.isOriginLeft ? "right" : "left", s = this.position.x + t[o]; s = e.percentPosition && !e.isHorizontal ? 100 * (s / t.width) + "%" : s + "px", i[n] = s, i[r] = ""; var a = e.isOriginTop ? "paddingTop" : "paddingBottom", u = e.isOriginTop ? "top" : "bottom", p = e.isOriginTop ? "bottom" : "top", h = this.position.y + t[a]; h = e.percentPosition && e.isHorizontal ? 100 * (h / t.height) + "%" : h + "px", i[u] = h, i[p] = "", this.css(i), this.emitEvent("layout", [this]) }; var m = d ? function(t, e) { return "translate3d(" + t + "px, " + e + "px, 0)" } : function(t, e) { return "translate(" + t + "px, " + e + "px)" }; s.prototype._transitionTo = function(t, e) { this.getPosition(); var i = this.position.x, o = this.position.y, n = parseInt(t, 10), r = parseInt(e, 10), s = n === this.position.x && r === this.position.y; if (this.setPosition(t, e), s && !this.isTransitioning) return void this.layoutPosition(); var a = t - i, u = e - o, p = {}, h = this.layout.options; a = h.isOriginLeft ? a : -a, u = h.isOriginTop ? u : -u, p.transform = m(a, u), this.transition({ to: p, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }) }, s.prototype.goTo = function(t, e) { this.setPosition(t, e), this.layoutPosition() }, s.prototype.moveTo = f ? s.prototype._transitionTo : s.prototype.goTo, s.prototype.setPosition = function(t, e) { this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10) }, s.prototype._nonTransition = function(t) { this.css(t.to), t.isCleaning && this._removeStyles(t.to); for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this) }, s.prototype._transition = function(t) { if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t); var e = this._transn; for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i]; for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0); if (t.from) { this.css(t.from); var o = this.element.offsetHeight; o = null } this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0 }; var g = h && n.toDashed(h) + ",opacity"; s.prototype.enableTransition = function() { this.isTransitioning || (this.css({ transitionProperty: g, transitionDuration: this.layout.options.transitionDuration }), this.element.addEventListener(l, this, !1)) }, s.prototype.transition = s.prototype[p ? "_transition" : "_nonTransition"], s.prototype.onwebkitTransitionEnd = function(t) { this.ontransitionend(t) }, s.prototype.onotransitionend = function(t) { this.ontransitionend(t) }; var v = { "-webkit-transform": "transform", "-moz-transform": "transform", "-o-transform": "transform" }; s.prototype.ontransitionend = function(t) { if (t.target === this.element) { var e = this._transn, i = v[t.propertyName] || t.propertyName; if (delete e.ingProperties[i], r(e.ingProperties) && this.disableTransition(), i in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[i]), i in e.onEnd) { var o = e.onEnd[i]; o.call(this), delete e.onEnd[i] } this.emitEvent("transitionEnd", [this]) } }, s.prototype.disableTransition = function() { this.removeTransitionStyles(), this.element.removeEventListener(l, this, !1), this.isTransitioning = !1 }, s.prototype._removeStyles = function(t) { var e = {}; for (var i in t) e[i] = ""; this.css(e) }; var _ = { transitionProperty: "", transitionDuration: "" }; return s.prototype.removeTransitionStyles = function() { this.css(_) }, s.prototype.removeElem = function() { this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]) }, s.prototype.remove = function() { if (!p || !parseFloat(this.layout.options.transitionDuration)) return void this.removeElem(); var t = this; this.once("transitionEnd", function() { t.removeElem() }), this.hide() }, s.prototype.reveal = function() { delete this.isHidden, this.css({ display: "" }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty("visibleStyle"); e[i] = this.onRevealTransitionEnd, this.transition({ from: t.hiddenStyle, to: t.visibleStyle, isCleaning: !0, onTransitionEnd: e }) }, s.prototype.onRevealTransitionEnd = function() { this.isHidden || this.emitEvent("reveal") }, s.prototype.getHideRevealTransitionEndProperty = function(t) { var e = this.layout.options[t]; if (e.opacity) return "opacity"; for (var i in e) return i }, s.prototype.hide = function() { this.isHidden = !0, this.css({ display: "" }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty("hiddenStyle"); e[i] = this.onHideTransitionEnd, this.transition({ from: t.visibleStyle, to: t.hiddenStyle, isCleaning: !0, onTransitionEnd: e }) }, s.prototype.onHideTransitionEnd = function() { this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")) }, s.prototype.destroy = function() { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }) }, s }), function(t, e) { "function" == typeof define && define.amd ? define("outlayer/outlayer", ["eventie/eventie", "eventEmitter/EventEmitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(i, o, n, r, s) { return e(t, i, o, n, r, s) }) : "object" == typeof exports ? module.exports = e(t, require("eventie"), require("wolfy87-eventemitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.eventie, t.EventEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item) }(window, function(t, e, i, o, n, r) { function s(t, e) { var i = n.getQueryElement(t); if (!i) return void(a && a.error("Bad element for " + this.constructor.namespace + ": " + (i || t))); this.element = i, u && (this.$element = u(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e); var o = ++h; this.element.outlayerGUID = o, f[o] = this, this._create(), this.options.isInitLayout && this.layout() } var a = t.console, u = t.jQuery, p = function() {}, h = 0, f = {}; return s.namespace = "outlayer", s.Item = r, s.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)" } }, n.extend(s.prototype, i.prototype), s.prototype.option = function(t) { n.extend(this.options, t) }, s.prototype._create = function() { this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this.element.style, this.options.containerStyle), this.options.isResizeBound && this.bindResize() }, s.prototype.reloadItems = function() { this.items = this._itemize(this.element.children) }, s.prototype._itemize = function(t) { for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], n = 0, r = e.length; r > n; n++) { var s = e[n], a = new i(s, this); o.push(a) } return o }, s.prototype._filterFindItemElements = function(t) { return n.filterFindElements(t, this.options.itemSelector) }, s.prototype.getItemElements = function() { for (var t = [], e = 0, i = this.items.length; i > e; e++) t.push(this.items[e].element); return t }, s.prototype.layout = function() { this._resetLayout(), this._manageStamps(); var t = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; this.layoutItems(this.items, t), this._isLayoutInited = !0 }, s.prototype._init = s.prototype.layout, s.prototype._resetLayout = function() { this.getSize() }, s.prototype.getSize = function() { this.size = o(this.element) }, s.prototype._getMeasurement = function(t, e) { var i, r = this.options[t]; r ? ("string" == typeof r ? i = this.element.querySelector(r) : n.isElement(r) && (i = r), this[t] = i ? o(i)[e] : r) : this[t] = 0 }, s.prototype.layoutItems = function(t, e) { t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout() }, s.prototype._getItemsForLayout = function(t) { for (var e = [], i = 0, o = t.length; o > i; i++) { var n = t[i]; n.isIgnored || e.push(n) } return e }, s.prototype._layoutItems = function(t, e) { if (this._emitCompleteOnItems("layout", t), t && t.length) { for (var i = [], o = 0, n = t.length; n > o; o++) { var r = t[o], s = this._getItemLayoutPosition(r); s.item = r, s.isInstant = e || r.isLayoutInstant, i.push(s) } this._processLayoutQueue(i) } }, s.prototype._getItemLayoutPosition = function() { return { x: 0, y: 0 } }, s.prototype._processLayoutQueue = function(t) { for (var e = 0, i = t.length; i > e; e++) { var o = t[e]; this._positionItem(o.item, o.x, o.y, o.isInstant) } }, s.prototype._positionItem = function(t, e, i, o) { o ? t.goTo(e, i) : t.moveTo(e, i) }, s.prototype._postLayout = function() { this.resizeContainer() }, s.prototype.resizeContainer = function() { if (this.options.isResizingContainer) { var t = this._getContainerSize(); t && (this._setContainerMeasure(t.width, !0), this._setContainerMeasure(t.height, !1)) } }, s.prototype._getContainerSize = p, s.prototype._setContainerMeasure = function(t, e) { if (void 0 !== t) { var i = this.size; i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px" } }, s.prototype._emitCompleteOnItems = function(t, e) { function i() { n.emitEvent(t + "Complete", [e]) } function o() { s++, s === r && i() } var n = this, r = e.length; if (!e || !r) return void i(); for (var s = 0, a = 0, u = e.length; u > a; a++) { var p = e[a]; p.once(t, o) } }, s.prototype.ignore = function(t) { var e = this.getItem(t); e && (e.isIgnored = !0) }, s.prototype.unignore = function(t) { var e = this.getItem(t); e && delete e.isIgnored }, s.prototype.stamp = function(t) { if (t = this._find(t)) { this.stamps = this.stamps.concat(t); for (var e = 0, i = t.length; i > e; e++) { var o = t[e]; this.ignore(o) } } }, s.prototype.unstamp = function(t) { if (t = this._find(t)) for (var e = 0, i = t.length; i > e; e++) { var o = t[e]; n.removeFrom(this.stamps, o), this.unignore(o) } }, s.prototype._find = function(t) { return t ? ("string" == typeof t && (t = this.element.querySelectorAll(t)), t = n.makeArray(t)) : void 0 }, s.prototype._manageStamps = function() { if (this.stamps && this.stamps.length) { this._getBoundingRect(); for (var t = 0, e = this.stamps.length; e > t; t++) { var i = this.stamps[t]; this._manageStamp(i) } } }, s.prototype._getBoundingRect = function() { var t = this.element.getBoundingClientRect(), e = this.size; this._boundingRect = { left: t.left + e.paddingLeft + e.borderLeftWidth, top: t.top + e.paddingTop + e.borderTopWidth, right: t.right - (e.paddingRight + e.borderRightWidth), bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth) } }, s.prototype._manageStamp = p, s.prototype._getElementOffset = function(t) { var e = t.getBoundingClientRect(), i = this._boundingRect, n = o(t), r = { left: e.left - i.left - n.marginLeft, top: e.top - i.top - n.marginTop, right: i.right - e.right - n.marginRight, bottom: i.bottom - e.bottom - n.marginBottom }; return r }, s.prototype.handleEvent = function(t) { var e = "on" + t.type; this[e] && this[e](t) }, s.prototype.bindResize = function() { this.isResizeBound || (e.bind(t, "resize", this), this.isResizeBound = !0) }, s.prototype.unbindResize = function() { this.isResizeBound && e.unbind(t, "resize", this), this.isResizeBound = !1 }, s.prototype.onresize = function() { function t() { e.resize(), delete e.resizeTimeout } this.resizeTimeout && clearTimeout(this.resizeTimeout); var e = this; this.resizeTimeout = setTimeout(t, 100) }, s.prototype.resize = function() { this.isResizeBound && this.needsResizeLayout() && this.layout() }, s.prototype.needsResizeLayout = function() { var t = o(this.element), e = this.size && t; return e && t.innerWidth !== this.size.innerWidth }, s.prototype.addItems = function(t) { var e = this._itemize(t); return e.length && (this.items = this.items.concat(e)), e }, s.prototype.appended = function(t) { var e = this.addItems(t); e.length && (this.layoutItems(e, !0), this.reveal(e)) }, s.prototype.prepended = function(t) { var e = this._itemize(t); if (e.length) { var i = this.items.slice(0); this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i) } }, s.prototype.reveal = function(t) { this._emitCompleteOnItems("reveal", t); for (var e = t && t.length, i = 0; e && e > i; i++) { var o = t[i]; o.reveal() } }, s.prototype.hide = function(t) { this._emitCompleteOnItems("hide", t); for (var e = t && t.length, i = 0; e && e > i; i++) { var o = t[i]; o.hide() } }, s.prototype.revealItemElements = function(t) { var e = this.getItems(t); this.reveal(e) }, s.prototype.hideItemElements = function(t) { var e = this.getItems(t); this.hide(e) }, s.prototype.getItem = function(t) { for (var e = 0, i = this.items.length; i > e; e++) { var o = this.items[e]; if (o.element === t) return o } }, s.prototype.getItems = function(t) { t = n.makeArray(t); for (var e = [], i = 0, o = t.length; o > i; i++) { var r = t[i], s = this.getItem(r); s && e.push(s) } return e }, s.prototype.remove = function(t) { var e = this.getItems(t); if (this._emitCompleteOnItems("remove", e), e && e.length) for (var i = 0, o = e.length; o > i; i++) { var r = e[i]; r.remove(), n.removeFrom(this.items, r) } }, s.prototype.destroy = function() { var t = this.element.style; t.height = "", t.position = "", t.width = ""; for (var e = 0, i = this.items.length; i > e; e++) { var o = this.items[e]; o.destroy() } this.unbindResize(); var n = this.element.outlayerGUID; delete f[n], delete this.element.outlayerGUID, u && u.removeData(this.element, this.constructor.namespace) }, s.data = function(t) { t = n.getQueryElement(t); var e = t && t.outlayerGUID; return e && f[e] }, s.create = function(t, e) { function i() { s.apply(this, arguments) } return Object.create ? i.prototype = Object.create(s.prototype) : n.extend(i.prototype, s.prototype), i.prototype.constructor = i, i.defaults = n.extend({}, s.defaults), n.extend(i.defaults, e), i.prototype.settings = {}, i.namespace = t, i.data = s.data, i.Item = function() { r.apply(this, arguments) }, i.Item.prototype = new r, n.htmlInit(i, t), u && u.bridget && u.bridget(t, i), i }, s.Item = r, s }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/item", ["outlayer/outlayer"], e) : "object" == typeof exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer)) }(window, function(t) { function e() { t.Item.apply(this, arguments) } e.prototype = new t.Item, e.prototype._create = function() { this.id = this.layout.itemGUID++, t.Item.prototype._create.call(this), this.sortData = {} }, e.prototype.updateSortData = function() { if (!this.isIgnored) { this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random(); var t = this.layout.options.getSortData, e = this.layout._sorters; for (var i in t) { var o = e[i]; this.sortData[i] = o(this.element, this) } } }; var i = e.prototype.destroy; return e.prototype.destroy = function() { i.apply(this, arguments), this.css({ display: "" }) }, e }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer)) }(window, function(t, e) { function i(t) { this.isotope = t, t && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size) } return function() { function t(t) { return function() { return e.prototype[t].apply(this.isotope, arguments) } } for (var o = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout"], n = 0, r = o.length; r > n; n++) { var s = o[n]; i.prototype[s] = t(s) } }(), i.prototype.needsVerticalResizeLayout = function() { var e = t(this.isotope.element), i = this.isotope.size && e; return i && e.innerHeight != this.isotope.size.innerHeight }, i.prototype._getMeasurement = function() { this.isotope._getMeasurement.apply(this, arguments) }, i.prototype.getColumnWidth = function() { this.getSegmentSize("column", "Width") }, i.prototype.getRowHeight = function() { this.getSegmentSize("row", "Height") }, i.prototype.getSegmentSize = function(t, e) { var i = t + e, o = "outer" + e; if (this._getMeasurement(i, o), !this[i]) { var n = this.getFirstItemSize(); this[i] = n && n[o] || this.isotope.size["inner" + e] } }, i.prototype.getFirstItemSize = function() { var e = this.isotope.filteredItems[0]; return e && e.element && t(e.element) }, i.prototype.layout = function() { this.isotope.layout.apply(this.isotope, arguments) }, i.prototype.getSize = function() { this.isotope.getSize(), this.size = this.isotope.size }, i.modes = {}, i.create = function(t, e) { function o() { i.apply(this, arguments) } return o.prototype = new i, e && (o.options = e), o.prototype.namespace = t, i.modes[t] = o, o }, i }), function(t, e) { "function" == typeof define && define.amd ? define("masonry/masonry", ["outlayer/outlayer", "get-size/get-size", "fizzy-ui-utils/utils"], e) : "object" == typeof exports ? module.exports = e(require("outlayer"), require("get-size"), require("fizzy-ui-utils")) : t.Masonry = e(t.Outlayer, t.getSize, t.fizzyUIUtils) }(window, function(t, e, i) { var o = t.create("masonry"); return o.prototype._resetLayout = function() { this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(); var t = this.cols; for (this.colYs = []; t--;) this.colYs.push(0); this.maxY = 0 }, o.prototype.measureColumns = function() { if (this.getContainerWidth(), !this.columnWidth) { var t = this.items[0], i = t && t.element; this.columnWidth = i && e(i).outerWidth || this.containerWidth } var o = this.columnWidth += this.gutter, n = this.containerWidth + this.gutter, r = n / o, s = o - n % o, a = s && 1 > s ? "round" : "floor"; r = Math[a](r), this.cols = Math.max(r, 1) }, o.prototype.getContainerWidth = function() { var t = this.options.isFitWidth ? this.element.parentNode : this.element, i = e(t); this.containerWidth = i && i.innerWidth }, o.prototype._getItemLayoutPosition = function(t) { t.getSize(); var e = t.size.outerWidth % this.columnWidth, o = e && 1 > e ? "round" : "ceil", n = Math[o](t.size.outerWidth / this.columnWidth); n = Math.min(n, this.cols); for (var r = this._getColGroup(n), s = Math.min.apply(Math, r), a = i.indexOf(r, s), u = { x: this.columnWidth * a, y: s }, p = s + t.size.outerHeight, h = this.cols + 1 - r.length, f = 0; h > f; f++) this.colYs[a + f] = p; return u }, o.prototype._getColGroup = function(t) { if (2 > t) return this.colYs; for (var e = [], i = this.cols + 1 - t, o = 0; i > o; o++) { var n = this.colYs.slice(o, o + t); e[o] = Math.max.apply(Math, n) } return e }, o.prototype._manageStamp = function(t) { var i = e(t), o = this._getElementOffset(t), n = this.options.isOriginLeft ? o.left : o.right, r = n + i.outerWidth, s = Math.floor(n / this.columnWidth); s = Math.max(0, s); var a = Math.floor(r / this.columnWidth); a -= r % this.columnWidth ? 0 : 1, a = Math.min(this.cols - 1, a); for (var u = (this.options.isOriginTop ? o.top : o.bottom) + i.outerHeight, p = s; a >= p; p++) this.colYs[p] = Math.max(u, this.colYs[p]) }, o.prototype._getContainerSize = function() { this.maxY = Math.max.apply(Math, this.colYs); var t = { height: this.maxY }; return this.options.isFitWidth && (t.width = this._getContainerFitWidth()), t }, o.prototype._getContainerFitWidth = function() { for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++; return (this.cols - t) * this.columnWidth - this.gutter }, o.prototype.needsResizeLayout = function() { var t = this.containerWidth; return this.getContainerWidth(), t !== this.containerWidth }, o }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/layout-modes/masonry", ["../layout-mode", "masonry/masonry"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry) }(window, function(t, e) { function i(t, e) { for (var i in e) t[i] = e[i]; return t } var o = t.create("masonry"), n = o.prototype._getElementOffset, r = o.prototype.layout, s = o.prototype._getMeasurement; i(o.prototype, e.prototype), o.prototype._getElementOffset = n, o.prototype.layout = r, o.prototype._getMeasurement = s; var a = o.prototype.measureColumns; o.prototype.measureColumns = function() { this.items = this.isotope.filteredItems, a.call(this) }; var u = o.prototype._manageStamp; return o.prototype._manageStamp = function() { this.options.isOriginLeft = this.isotope.options.isOriginLeft, this.options.isOriginTop = this.isotope.options.isOriginTop, u.apply(this, arguments) }, o }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) { var e = t.create("fitRows"); return e.prototype._resetLayout = function() { this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth"); }, e.prototype._getItemLayoutPosition = function(t) { t.getSize(); var e = t.size.outerWidth + this.gutter, i = this.isotope.size.innerWidth + this.gutter; 0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY); var o = { x: this.x, y: this.y }; return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o }, e.prototype._getContainerSize = function() { return { height: this.maxY } }, e }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) { var e = t.create("vertical", { horizontalAlignment: 0 }); return e.prototype._resetLayout = function() { this.y = 0 }, e.prototype._getItemLayoutPosition = function(t) { t.getSize(); var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment, i = this.y; return this.y += t.size.outerHeight, { x: e, y: i } }, e.prototype._getContainerSize = function() { return { height: this.y } }, e }), function(t, e) { "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(i, o, n, r, s, a) { return e(t, i, o, n, r, s, a) }) : "object" == typeof exports ? module.exports = e(t, 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")) : t.Isotope = e(t, t.Outlayer, t.getSize, t.matchesSelector, t.fizzyUIUtils, t.Isotope.Item, t.Isotope.LayoutMode) }(window, function(t, e, i, o, n, r, s) { function a(t, e) { return function(i, o) { for (var n = 0, r = t.length; r > n; n++) { var s = t[n], a = i.sortData[s], u = o.sortData[s]; if (a > u || u > a) { var p = void 0 !== e[s] ? e[s] : e, h = p ? 1 : -1; return (a > u ? 1 : -1) * h } } return 0 } } var u = t.jQuery, p = String.prototype.trim ? function(t) { return t.trim() } : function(t) { return t.replace(/^\s+|\s+$/g, "") }, h = document.documentElement, f = h.textContent ? function(t) { return t.textContent } : function(t) { return t.innerText }, d = e.create("isotope", { layoutMode: "masonry", isJQueryFiltering: !0, sortAscending: !0 }); d.Item = r, d.LayoutMode = s, d.prototype._create = function() { this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"]; for (var t in s.modes) this._initLayoutMode(t) }, d.prototype.reloadItems = function() { this.itemGUID = 0, e.prototype.reloadItems.call(this) }, d.prototype._itemize = function() { for (var t = e.prototype._itemize.apply(this, arguments), i = 0, o = t.length; o > i; i++) { var n = t[i]; n.id = this.itemGUID++ } return this._updateItemsSortData(t), t }, d.prototype._initLayoutMode = function(t) { var e = s.modes[t], i = this.options[t] || {}; this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this) }, d.prototype.layout = function() { return !this._isLayoutInited && this.options.isInitLayout ? void this.arrange() : void this._layout() }, d.prototype._layout = function() { var t = this._getIsInstant(); this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0 }, d.prototype.arrange = function(t) { function e() { o.reveal(i.needReveal), o.hide(i.needHide) } this.option(t), this._getIsInstant(); var i = this._filter(this.items); this.filteredItems = i.matches; var o = this; this._bindArrangeComplete(), this._isInstant ? this._noTransition(e) : e(), this._sort(), this._layout() }, d.prototype._init = d.prototype.arrange, d.prototype._getIsInstant = function() { var t = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; return this._isInstant = t, t }, d.prototype._bindArrangeComplete = function() { function t() { e && i && o && n.emitEvent("arrangeComplete", [n.filteredItems]) } var e, i, o, n = this; this.once("layoutComplete", function() { e = !0, t() }), this.once("hideComplete", function() { i = !0, t() }), this.once("revealComplete", function() { o = !0, t() }) }, d.prototype._filter = function(t) { var e = this.options.filter; e = e || "*"; for (var i = [], o = [], n = [], r = this._getFilterTest(e), s = 0, a = t.length; a > s; s++) { var u = t[s]; if (!u.isIgnored) { var p = r(u); p && i.push(u), p && u.isHidden ? o.push(u) : p || u.isHidden || n.push(u) } } return { matches: i, needReveal: o, needHide: n } }, d.prototype._getFilterTest = function(t) { return u && this.options.isJQueryFiltering ? function(e) { return u(e.element).is(t) } : "function" == typeof t ? function(e) { return t(e.element) } : function(e) { return o(e.element, t) } }, d.prototype.updateSortData = function(t) { var e; t ? (t = n.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e) }, d.prototype._getSorters = function() { var t = this.options.getSortData; for (var e in t) { var i = t[e]; this._sorters[e] = l(i) } }, d.prototype._updateItemsSortData = function(t) { for (var e = t && t.length, i = 0; e && e > i; i++) { var o = t[i]; o.updateSortData() } }; var l = function() { function t(t) { if ("string" != typeof t) return t; var i = p(t).split(" "), o = i[0], n = o.match(/^\[(.+)\]$/), r = n && n[1], s = e(r, o), a = d.sortDataParsers[i[1]]; return t = a ? function(t) { return t && a(s(t)) } : function(t) { return t && s(t) } } function e(t, e) { var i; return i = t ? function(e) { return e.getAttribute(t) } : function(t) { var i = t.querySelector(e); return i && f(i) } } return t }(); d.sortDataParsers = { parseInt: function(t) { return parseInt(t, 10) }, parseFloat: function(t) { return parseFloat(t) } }, d.prototype._sort = function() { var t = this.options.sortBy; if (t) { var e = [].concat.apply(t, this.sortHistory), i = a(e, this.options.sortAscending); this.filteredItems.sort(i), t != this.sortHistory[0] && this.sortHistory.unshift(t) } }, d.prototype._mode = function() { var t = this.options.layoutMode, e = this.modes[t]; if (!e) throw Error("No layout mode: " + t); return e.options = this.options[t], e }, d.prototype._resetLayout = function() { e.prototype._resetLayout.call(this), this._mode()._resetLayout() }, d.prototype._getItemLayoutPosition = function(t) { return this._mode()._getItemLayoutPosition(t) }, d.prototype._manageStamp = function(t) { this._mode()._manageStamp(t) }, d.prototype._getContainerSize = function() { return this._mode()._getContainerSize() }, d.prototype.needsResizeLayout = function() { return this._mode().needsResizeLayout() }, d.prototype.appended = function(t) { var e = this.addItems(t); if (e.length) { var i = this._filterRevealAdded(e); this.filteredItems = this.filteredItems.concat(i) } }, d.prototype.prepended = function(t) { var e = this._itemize(t); if (e.length) { this._resetLayout(), this._manageStamps(); var i = this._filterRevealAdded(e); this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = e.concat(this.items) } }, d.prototype._filterRevealAdded = function(t) { var e = this._filter(t); return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems(e.matches, !0), e.matches }, d.prototype.insert = function(t) { var e = this.addItems(t); if (e.length) { var i, o, n = e.length; for (i = 0; n > i; i++) o = e[i], this.element.appendChild(o.element); var r = this._filter(e).matches; for (i = 0; n > i; i++) e[i].isLayoutInstant = !0; for (this.arrange(), i = 0; n > i; i++) delete e[i].isLayoutInstant; this.reveal(r) } }; var c = d.prototype.remove; return d.prototype.remove = function(t) { t = n.makeArray(t); var e = this.getItems(t); c.call(this, t); var i = e && e.length; if (i) for (var o = 0; i > o; o++) { var r = e[o]; n.removeFrom(this.filteredItems, r) } }, d.prototype.shuffle = function() { for (var t = 0, e = this.items.length; e > t; t++) { var i = this.items[t]; i.sortData.random = Math.random() } this.options.sortBy = "random", this._sort(), this._layout() }, d.prototype._noTransition = function(t) { var e = this.options.transitionDuration; this.options.transitionDuration = 0; var i = t.call(this); return this.options.transitionDuration = e, i }, d.prototype.getFilteredItemElements = function() { for (var t = [], e = 0, i = this.filteredItems.length; i > e; e++) t.push(this.filteredItems[e].element); return t }, d }); ! function(t, e, i, s) { function n(e, i) { this.settings = null, this.options = t.extend({}, n.Defaults, i), this.$element = t(e), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = { time: null, target: null, pointer: null, stage: { start: null, current: null }, direction: null }, this._states = { current: {}, tags: { initializing: ["busy"], animating: ["busy"], dragging: ["interacting"] } }, t.each(["onResize", "onThrottledResize"], t.proxy(function(e, i) { this._handlers[i] = t.proxy(this[i], this) }, this)), t.each(n.Plugins, t.proxy(function(t, e) { this._plugins[t.charAt(0).toLowerCase() + t.slice(1)] = new e(this) }, this)), t.each(n.Workers, t.proxy(function(e, i) { this._pipe.push({ filter: i.filter, run: t.proxy(i.run, this) }) }, this)), this.setup(), this.initialize() } n.Defaults = { items: 3, loop: !1, center: !1, rewind: !1, mouseDrag: !0, touchDrag: !0, pullDrag: !0, freeDrag: !1, margin: 0, stagePadding: 0, merge: !1, mergeFit: !0, autoWidth: !1, startPosition: 0, rtl: !1, smartSpeed: 250, fluidSpeed: !1, dragEndSpeed: !1, responsive: {}, responsiveRefreshRate: 200, responsiveBaseElement: e, fallbackEasing: "swing", info: !1, nestedItemSelector: !1, itemElement: "div", stageElement: "div", refreshClass: "owl-refresh", loadedClass: "owl-loaded", loadingClass: "owl-loading", rtlClass: "owl-rtl", responsiveClass: "owl-responsive", dragClass: "owl-drag", itemClass: "owl-item", stageClass: "owl-stage", stageOuterClass: "owl-stage-outer", grabClass: "owl-grab" }, n.Width = { Default: "default", Inner: "inner", Outer: "outer" }, n.Type = { Event: "event", State: "state" }, n.Plugins = {}, n.Workers = [{ filter: ["width", "settings"], run: function() { this._width = this.$element.width() } }, { filter: ["width", "items", "settings"], run: function(t) { t.current = this._items && this._items[this.relative(this._current)] } }, { filter: ["items", "settings"], run: function() { this.$stage.children(".cloned").remove() } }, { filter: ["width", "items", "settings"], run: function(t) { var e = this.settings.margin || "", i = !this.settings.autoWidth, s = this.settings.rtl, n = { width: "auto", "margin-left": s ? e : "", "margin-right": s ? "" : e }; !i && this.$stage.children().css(n), t.css = n } }, { filter: ["width", "items", "settings"], run: function(t) { var e = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, i = null, s = this._items.length, n = !this.settings.autoWidth, o = []; for (t.items = { merge: !1, width: e }; s--;) i = this._mergers[s], i = this.settings.mergeFit && Math.min(i, this.settings.items) || i, t.items.merge = i > 1 || t.items.merge, o[s] = n ? e * i : this._items[s].width(); this._widths = o } }, { filter: ["items", "settings"], run: function() { var e = [], i = this._items, s = this.settings, n = Math.max(2 * s.items, 4), o = 2 * Math.ceil(i.length / 2), r = s.loop && i.length ? s.rewind ? n : Math.max(n, o) : 0, a = "", h = ""; for (r /= 2; r--;) e.push(this.normalize(e.length / 2, !0)), a += i[e[e.length - 1]][0].outerHTML, e.push(this.normalize(i.length - 1 - (e.length - 1) / 2, !0)), h = i[e[e.length - 1]][0].outerHTML + h; this._clones = e, t(a).addClass("cloned").appendTo(this.$stage), t(h).addClass("cloned").prependTo(this.$stage) } }, { filter: ["width", "items", "settings"], run: function() { for (var t = this.settings.rtl ? 1 : -1, e = this._clones.length + this._items.length, i = -1, s = 0, n = 0, o = []; ++i < e;) s = o[i - 1] || 0, n = this._widths[this.relative(i)] + this.settings.margin, o.push(s + n * t); this._coordinates = o } }, { filter: ["width", "items", "settings"], run: function() { var t = this.settings.stagePadding, e = this._coordinates, i = { width: Math.ceil(Math.abs(e[e.length - 1])) + 2 * t, "padding-left": t || "", "padding-right": t || "" }; this.$stage.css(i) } }, { filter: ["width", "items", "settings"], run: function(t) { var e = this._coordinates.length, i = !this.settings.autoWidth, s = this.$stage.children(); if (i && t.items.merge) for (; e--;) t.css.width = this._widths[this.relative(e)], s.eq(e).css(t.css); else i && (t.css.width = t.items.width, s.css(t.css)) } }, { filter: ["items"], run: function() { this._coordinates.length < 1 && this.$stage.removeAttr("style") } }, { filter: ["width", "items", "settings"], run: function(t) { t.current = t.current ? this.$stage.children().index(t.current) : 0, t.current = Math.max(this.minimum(), Math.min(this.maximum(), t.current)), this.reset(t.current) } }, { filter: ["position"], run: function() { this.animate(this.coordinates(this._current)) } }, { filter: ["width", "position", "items", "settings"], run: function() { var t, e, i, s, n = this.settings.rtl ? 1 : -1, o = 2 * this.settings.stagePadding, r = this.coordinates(this.current()) + o, a = r + this.width() * n, h = []; for (i = 0, s = this._coordinates.length; s > i; i++) t = this._coordinates[i - 1] || 0, e = Math.abs(this._coordinates[i]) + o * n, (this.op(t, "<=", r) && this.op(t, ">", a) || this.op(e, "<", r) && this.op(e, ">", a)) && h.push(i); this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + h.join("), :eq(") + ")").addClass("active"), this.settings.center && (this.$stage.children(".center").removeClass("center"), this.$stage.children().eq(this.current()).addClass("center")) } }], n.prototype.initialize = function() { if (this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading")) { var e, i, n; e = this.$element.find("img"), i = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : s, n = this.$element.children(i).width(), e.length && 0 >= n && this.preloadAutoWidthImages(e) } this.$element.addClass(this.options.loadingClass), this.$stage = t("<" + this.settings.stageElement + ' class="' + this.settings.stageClass + '"/>').wrap('
'), this.$element.append(this.$stage.parent()), this.replace(this.$element.children().not(this.$stage.parent())), this.$element.is(":visible") ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized") }, n.prototype.setup = function() { var e = this.viewport(), i = this.options.responsive, s = -1, n = null; i ? (t.each(i, function(t) { e >= t && t > s && (s = Number(t)) }), n = t.extend({}, this.options, i[s]), "function" == typeof n.stagePadding && (n.stagePadding = n.stagePadding()), delete n.responsive, n.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + s))) : n = t.extend({}, this.options), this.trigger("change", { property: { name: "settings", value: n } }), this._breakpoint = s, this.settings = n, this.invalidate("settings"), this.trigger("changed", { property: { name: "settings", value: this.settings } }) }, n.prototype.optionsLogic = function() { this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1) }, n.prototype.prepare = function(e) { var i = this.trigger("prepare", { content: e }); return i.data || (i.data = t("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(e)), this.trigger("prepared", { content: i.data }), i.data }, n.prototype.update = function() { for (var e = 0, i = this._pipe.length, s = t.proxy(function(t) { return this[t] }, this._invalidated), n = {}; i > e;)(this._invalidated.all || t.grep(this._pipe[e].filter, s).length > 0) && this._pipe[e].run(n), e++; this._invalidated = {}, !this.is("valid") && this.enter("valid") }, n.prototype.width = function(t) { switch (t = t || n.Width.Default) { case n.Width.Inner: case n.Width.Outer: return this._width; default: return this._width - 2 * this.settings.stagePadding + this.settings.margin } }, n.prototype.refresh = function() { this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed") }, n.prototype.onThrottledResize = function() { e.clearTimeout(this.resizeTimer), this.resizeTimer = e.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate) }, n.prototype.onResize = function() { return !!this._items.length && (this._width !== this.$element.width() && (!!this.$element.is(":visible") && (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized"))))) }, n.prototype.registerEventHandlers = function() { t.support.transition && this.$stage.on(t.support.transition.end + ".owl.core", t.proxy(this.onTransitionEnd, this)), this.settings.responsive !== !1 && this.on(e, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", t.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() { return !1 })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", t.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", t.proxy(this.onDragEnd, this))) }, n.prototype.onDragStart = function(e) { var s = null; 3 !== e.which && (t.support.transform ? (s = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","), s = { x: s[16 === s.length ? 12 : 4], y: s[16 === s.length ? 13 : 5] }) : (s = this.$stage.position(), s = { x: this.settings.rtl ? s.left + this.$stage.width() - this.width() + this.settings.margin : s.left, y: s.top }), this.is("animating") && (t.support.transform ? this.animate(s.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === e.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = t(e.target), this._drag.stage.start = s, this._drag.stage.current = s, this._drag.pointer = this.pointer(e), t(i).on("mouseup.owl.core touchend.owl.core", t.proxy(this.onDragEnd, this)), t(i).one("mousemove.owl.core touchmove.owl.core", t.proxy(function(e) { var s = this.difference(this._drag.pointer, this.pointer(e)); t(i).on("mousemove.owl.core touchmove.owl.core", t.proxy(this.onDragMove, this)), Math.abs(s.x) < Math.abs(s.y) && this.is("valid") || (e.preventDefault(), this.enter("dragging"), this.trigger("drag")) }, this))) }, n.prototype.onDragMove = function(t) { var e = null, i = null, s = null, n = this.difference(this._drag.pointer, this.pointer(t)), o = this.difference(this._drag.stage.start, n); this.is("dragging") && (t.preventDefault(), this.settings.loop ? (e = this.coordinates(this.minimum()), i = this.coordinates(this.maximum() + 1) - e, o.x = ((o.x - e) % i + i) % i + e) : (e = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), i = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), s = this.settings.pullDrag ? -1 * n.x / 5 : 0, o.x = Math.max(Math.min(o.x, e + s), i + s)), this._drag.stage.current = o, this.animate(o.x)) }, n.prototype.onDragEnd = function(e) { var s = this.difference(this._drag.pointer, this.pointer(e)), n = this._drag.stage.current, o = s.x > 0 ^ this.settings.rtl ? "left" : "right"; t(i).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== s.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(n.x, 0 !== s.x ? o : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = o, (Math.abs(s.x) > 3 || (new Date).getTime() - this._drag.time > 300) && this._drag.target.one("click.owl.core", function() { return !1 })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged")) }, n.prototype.closest = function(e, i) { var s = -1, n = 30, o = this.width(), r = this.coordinates(); return this.settings.freeDrag || t.each(r, t.proxy(function(t, a) { return "left" === i && e > a - n && a + n > e ? s = t : "right" === i && e > a - o - n && a - o + n > e ? s = t + 1 : this.op(e, "<", a) && this.op(e, ">", r[t + 1] || a - o) && (s = "left" === i ? t + 1 : t), -1 === s }, this)), this.settings.loop || (this.op(e, ">", r[this.minimum()]) ? s = e = this.minimum() : this.op(e, "<", r[this.maximum()]) && (s = e = this.maximum())), s }, n.prototype.animate = function(e) { var i = this.speed() > 0; this.is("animating") && this.onTransitionEnd(), i && (this.enter("animating"), this.trigger("translate")), t.support.transform3d && t.support.transition ? this.$stage.css({ transform: "translate3d(" + e + "px,0px,0px)", transition: this.speed() / 1e3 + "s" }) : i ? this.$stage.animate({ left: e + "px" }, this.speed(), this.settings.fallbackEasing, t.proxy(this.onTransitionEnd, this)) : this.$stage.css({ left: e + "px" }) }, n.prototype.is = function(t) { return this._states.current[t] && this._states.current[t] > 0 }, n.prototype.current = function(t) { if (t === s) return this._current; if (0 === this._items.length) return s; if (t = this.normalize(t), this._current !== t) { var e = this.trigger("change", { property: { name: "position", value: t } }); e.data !== s && (t = this.normalize(e.data)), this._current = t, this.invalidate("position"), this.trigger("changed", { property: { name: "position", value: this._current } }) } return this._current }, n.prototype.invalidate = function(e) { return "string" === t.type(e) && (this._invalidated[e] = !0, this.is("valid") && this.leave("valid")), t.map(this._invalidated, function(t, e) { return e }) }, n.prototype.reset = function(t) { t = this.normalize(t), t !== s && (this._speed = 0, this._current = t, this.suppress(["translate", "translated"]), this.animate(this.coordinates(t)), this.release(["translate", "translated"])) }, n.prototype.normalize = function(t, e) { var i = this._items.length, n = e ? 0 : this._clones.length; return !this.isNumeric(t) || 1 > i ? t = s : (0 > t || t >= i + n) && (t = ((t - n / 2) % i + i) % i + n / 2), t }, n.prototype.relative = function(t) { return t -= this._clones.length / 2, this.normalize(t, !0) }, n.prototype.maximum = function(t) { var e, i, s, n = this.settings, o = this._coordinates.length; if (n.loop) o = this._clones.length / 2 + this._items.length - 1; else if (n.autoWidth || n.merge) { for (e = this._items.length, i = this._items[--e].width(), s = this.$element.width(); e-- && (i += this._items[e].width() + this.settings.margin, !(i > s));); o = e + 1 } else o = n.center ? this._items.length - 1 : this._items.length - n.items; return t && (o -= this._clones.length / 2), Math.max(o, 0) }, n.prototype.minimum = function(t) { return t ? 0 : this._clones.length / 2 }, n.prototype.items = function(t) { return t === s ? this._items.slice() : (t = this.normalize(t, !0), this._items[t]) }, n.prototype.mergers = function(t) { return t === s ? this._mergers.slice() : (t = this.normalize(t, !0), this._mergers[t]) }, n.prototype.clones = function(e) { var i = this._clones.length / 2, n = i + this._items.length, o = function(t) { return t % 2 === 0 ? n + t / 2 : i - (t + 1) / 2 }; return e === s ? t.map(this._clones, function(t, e) { return o(e) }) : t.map(this._clones, function(t, i) { return t === e ? o(i) : null }) }, n.prototype.speed = function(t) { return t !== s && (this._speed = t), this._speed }, n.prototype.coordinates = function(e) { var i, n = 1, o = e - 1; return e === s ? t.map(this._coordinates, t.proxy(function(t, e) { return this.coordinates(e) }, this)) : (this.settings.center ? (this.settings.rtl && (n = -1, o = e + 1), i = this._coordinates[e], i += (this.width() - i + (this._coordinates[o] || 0)) / 2 * n) : i = this._coordinates[o] || 0, i = Math.ceil(i)) }, n.prototype.duration = function(t, e, i) { return 0 === i ? 0 : Math.min(Math.max(Math.abs(e - t), 1), 6) * Math.abs(i || this.settings.smartSpeed) }, n.prototype.to = function(t, e) { var i = this.current(), s = null, n = t - this.relative(i), o = (n > 0) - (0 > n), r = this._items.length, a = this.minimum(), h = this.maximum(); this.settings.loop ? (!this.settings.rewind && Math.abs(n) > r / 2 && (n += -1 * o * r), t = i + n, s = ((t - a) % r + r) % r + a, s !== t && h >= s - n && s - n > 0 && (i = s - n, t = s, this.reset(i))) : this.settings.rewind ? (h += 1, t = (t % h + h) % h) : t = Math.max(a, Math.min(h, t)), this.speed(this.duration(i, t, e)), this.current(t), this.$element.is(":visible") && this.update() }, n.prototype.next = function(t) { t = t || !1, this.to(this.relative(this.current()) + 1, t) }, n.prototype.prev = function(t) { t = t || !1, this.to(this.relative(this.current()) - 1, t) }, n.prototype.onTransitionEnd = function(t) { return (t === s || (t.stopPropagation(), (t.target || t.srcElement || t.originalTarget) === this.$stage.get(0))) && (this.leave("animating"), void this.trigger("translated")) }, n.prototype.viewport = function() { var s; if (this.options.responsiveBaseElement !== e) s = t(this.options.responsiveBaseElement).width(); else if (e.innerWidth) s = e.innerWidth; else { if (!i.documentElement || !i.documentElement.clientWidth) throw "Can not detect viewport width."; s = i.documentElement.clientWidth } return s }, n.prototype.replace = function(e) { this.$stage.empty(), this._items = [], e && (e = e instanceof jQuery ? e : t(e)), this.settings.nestedItemSelector && (e = e.find("." + this.settings.nestedItemSelector)), e.filter(function() { return 1 === this.nodeType }).each(t.proxy(function(t, e) { e = this.prepare(e), this.$stage.append(e), this._items.push(e), this._mergers.push(1 * e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1) }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items") }, n.prototype.add = function(e, i) { var n = this.relative(this._current); i = i === s ? this._items.length : this.normalize(i, !0), e = e instanceof jQuery ? e : t(e), this.trigger("add", { content: e, position: i }), e = this.prepare(e), 0 === this._items.length || i === this._items.length ? (0 === this._items.length && this.$stage.append(e), 0 !== this._items.length && this._items[i - 1].after(e), this._items.push(e), this._mergers.push(1 * e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)) : (this._items[i].before(e), this._items.splice(i, 0, e), this._mergers.splice(i, 0, 1 * e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)), this._items[n] && this.reset(this._items[n].index()), this.invalidate("items"), this.trigger("added", { content: e, position: i }) }, n.prototype.remove = function(t) { t = this.normalize(t, !0), t !== s && (this.trigger("remove", { content: this._items[t], position: t }), this._items[t].remove(), this._items.splice(t, 1), this._mergers.splice(t, 1), this.invalidate("items"), this.trigger("removed", { content: null, position: t })) }, n.prototype.preloadAutoWidthImages = function(e) { e.each(t.proxy(function(e, i) { this.enter("pre-loading"), i = t(i), t(new Image).one("load", t.proxy(function(t) { i.attr("src", t.target.src), i.css("opacity", 1), this.leave("pre-loading"), !this.is("pre-loading") && !this.is("initializing") && this.refresh() }, this)).attr("src", i.attr("src") || i.attr("data-src") || i.attr("data-src-retina")) }, this)) }, n.prototype.destroy = function() { this.$element.off(".owl.core"), this.$stage.off(".owl.core"), t(i).off(".owl.core"), this.settings.responsive !== !1 && (e.clearTimeout(this.resizeTimer), this.off(e, "resize", this._handlers.onThrottledResize)); for (var s in this._plugins) this._plugins[s].destroy(); this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel") }, n.prototype.op = function(t, e, i) { var s = this.settings.rtl; switch (e) { case "<": return s ? t > i : i > t; case ">": return s ? i > t : t > i; case ">=": return s ? i >= t : t >= i; case "<=": return s ? t >= i : i >= t } }, n.prototype.on = function(t, e, i, s) { t.addEventListener ? t.addEventListener(e, i, s) : t.attachEvent && t.attachEvent("on" + e, i) }, n.prototype.off = function(t, e, i, s) { t.removeEventListener ? t.removeEventListener(e, i, s) : t.detachEvent && t.detachEvent("on" + e, i) }, n.prototype.trigger = function(e, i, s, o, r) { var a = { item: { count: this._items.length, index: this.current() } }, h = t.camelCase(t.grep(["on", e, s], function(t) { return t }).join("-").toLowerCase()), l = t.Event([e, "owl", s || "carousel"].join(".").toLowerCase(), t.extend({ relatedTarget: this }, a, i)); return this._supress[e] || (t.each(this._plugins, function(t, e) { e.onTrigger && e.onTrigger(l) }), this.register({ type: n.Type.Event, name: e }), this.$element.trigger(l), this.settings && "function" == typeof this.settings[h] && this.settings[h].call(this, l)), l }, n.prototype.enter = function(e) { t.each([e].concat(this._states.tags[e] || []), t.proxy(function(t, e) { this._states.current[e] === s && (this._states.current[e] = 0), this._states.current[e]++ }, this)) }, n.prototype.leave = function(e) { t.each([e].concat(this._states.tags[e] || []), t.proxy(function(t, e) { this._states.current[e]-- }, this)) }, n.prototype.register = function(e) { if (e.type === n.Type.Event) { if (t.event.special[e.name] || (t.event.special[e.name] = {}), !t.event.special[e.name].owl) { var i = t.event.special[e.name]._default; t.event.special[e.name]._default = function(t) { return !i || !i.apply || t.namespace && -1 !== t.namespace.indexOf("owl") ? t.namespace && t.namespace.indexOf("owl") > -1 : i.apply(this, arguments) }, t.event.special[e.name].owl = !0 } } else e.type === n.Type.State && (this._states.tags[e.name] ? this._states.tags[e.name] = this._states.tags[e.name].concat(e.tags) : this._states.tags[e.name] = e.tags, this._states.tags[e.name] = t.grep(this._states.tags[e.name], t.proxy(function(i, s) { return t.inArray(i, this._states.tags[e.name]) === s }, this))) }, n.prototype.suppress = function(e) { t.each(e, t.proxy(function(t, e) { this._supress[e] = !0 }, this)) }, n.prototype.release = function(e) { t.each(e, t.proxy(function(t, e) { delete this._supress[e] }, this)) }, n.prototype.pointer = function(t) { var i = { x: null, y: null }; return t = t.originalEvent || t || e.event, t = t.touches && t.touches.length ? t.touches[0] : t.changedTouches && t.changedTouches.length ? t.changedTouches[0] : t, t.pageX ? (i.x = t.pageX, i.y = t.pageY) : (i.x = t.clientX, i.y = t.clientY), i }, n.prototype.isNumeric = function(t) { return !isNaN(parseFloat(t)) }, n.prototype.difference = function(t, e) { return { x: t.x - e.x, y: t.y - e.y } }, t.fn.owlCarousel = function(e) { var i = Array.prototype.slice.call(arguments, 1); return this.each(function() { var s = t(this), o = s.data("owl.carousel"); o || (o = new n(this, "object" == typeof e && e), s.data("owl.carousel", o), t.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(e, i) { o.register({ type: n.Type.Event, name: i }), o.$element.on(i + ".owl.carousel.core", t.proxy(function(t) { t.namespace && t.relatedTarget !== this && (this.suppress([i]), o[i].apply(this, [].slice.call(arguments, 1)), this.release([i])) }, o)) })), "string" == typeof e && "_" !== e.charAt(0) && o[e].apply(o, i) }) }, t.fn.owlCarousel.Constructor = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { var n = function(e) { this._core = e, this._interval = null, this._visible = null, this._handlers = { "initialized.owl.carousel": t.proxy(function(t) { t.namespace && this._core.settings.autoRefresh && this.watch() }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers) }; n.Defaults = { autoRefresh: !0, autoRefreshInterval: 500 }, n.prototype.watch = function() { this._interval || (this._visible = this._core.$element.is(":visible"), this._interval = e.setInterval(t.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)) }, n.prototype.refresh = function() { this._core.$element.is(":visible") !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh()) }, n.prototype.destroy = function() { var t, i; e.clearInterval(this._interval); for (t in this._handlers) this._core.$element.off(t, this._handlers[t]); for (i in Object.getOwnPropertyNames(this)) "function" != typeof this[i] && (this[i] = null) }, t.fn.owlCarousel.Constructor.Plugins.AutoRefresh = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { var n = function(e) { this._core = e, this._loaded = [], this._handlers = { "initialized.owl.carousel change.owl.carousel resized.owl.carousel": t.proxy(function(e) { if (e.namespace && this._core.settings && this._core.settings.lazyLoad && (e.property && "position" == e.property.name || "initialized" == e.type)) for (var i = this._core.settings, n = i.center && Math.ceil(i.items / 2) || i.items, o = i.center && -1 * n || 0, r = (e.property && e.property.value !== s ? e.property.value : this._core.current()) + o, a = this._core.clones().length, h = t.proxy(function(t, e) { this.load(e) }, this); o++ < n;) this.load(a / 2 + this._core.relative(r)), a && t.each(this._core.clones(this._core.relative(r)), h), r++ }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers) }; n.Defaults = { lazyLoad: !1 }, n.prototype.load = function(i) { var s = this._core.$stage.children().eq(i), n = s && s.find(".owl-lazy"); !n || t.inArray(s.get(0), this._loaded) > -1 || (n.each(t.proxy(function(i, s) { var n, o = t(s), r = e.devicePixelRatio > 1 && o.attr("data-src-retina") || o.attr("data-src"); this._core.trigger("load", { element: o, url: r }, "lazy"), o.is("img") ? o.one("load.owl.lazy", t.proxy(function() { o.css("opacity", 1), this._core.trigger("loaded", { element: o, url: r }, "lazy") }, this)).attr("src", r) : (n = new Image, n.onload = t.proxy(function() { o.css({ "background-image": "url(" + r + ")", opacity: "1" }), this._core.trigger("loaded", { element: o, url: r }, "lazy") }, this), n.src = r) }, this)), this._loaded.push(s.get(0))) }, n.prototype.destroy = function() { var t, e; for (t in this.handlers) this._core.$element.off(t, this.handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.Lazy = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { var n = function(e) { this._core = e, this._handlers = { "initialized.owl.carousel refreshed.owl.carousel": t.proxy(function(t) { t.namespace && this._core.settings.autoHeight && this.update() }, this), "changed.owl.carousel": t.proxy(function(t) { t.namespace && this._core.settings.autoHeight && "position" == t.property.name && this.update() }, this), "loaded.owl.lazy": t.proxy(function(t) { t.namespace && this._core.settings.autoHeight && t.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update() }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers) }; n.Defaults = { autoHeight: !1, autoHeightClass: "owl-height" }, n.prototype.update = function() { var e = this._core._current, i = e + this._core.settings.items, s = this._core.$stage.children().toArray().slice(e, i), n = [], o = 0; t.each(s, function(e, i) { n.push(t(i).height()) }), o = Math.max.apply(null, n), this._core.$stage.parent().height(o).addClass(this._core.settings.autoHeightClass) }, n.prototype.destroy = function() { var t, e; for (t in this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.AutoHeight = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { var n = function(e) { this._core = e, this._videos = {}, this._playing = null, this._handlers = { "initialized.owl.carousel": t.proxy(function(t) { t.namespace && this._core.register({ type: "state", name: "playing", tags: ["interacting"] }) }, this), "resize.owl.carousel": t.proxy(function(t) { t.namespace && this._core.settings.video && this.isInFullScreen() && t.preventDefault() }, this), "refreshed.owl.carousel": t.proxy(function(t) { t.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove() }, this), "changed.owl.carousel": t.proxy(function(t) { t.namespace && "position" === t.property.name && this._playing && this.stop() }, this), "prepared.owl.carousel": t.proxy(function(e) { if (e.namespace) { var i = t(e.content).find(".owl-video"); i.length && (i.css("display", "none"), this.fetch(i, t(e.content))) } }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", t.proxy(function(t) { this.play(t) }, this)) }; n.Defaults = { video: !1, videoHeight: !1, videoWidth: !1 }, n.prototype.fetch = function(t, e) { var i = function() { return t.attr("data-vimeo-id") ? "vimeo" : t.attr("data-vzaar-id") ? "vzaar" : "youtube" }(), s = t.attr("data-vimeo-id") || t.attr("data-youtube-id") || t.attr("data-vzaar-id"), n = t.attr("data-width") || this._core.settings.videoWidth, o = t.attr("data-height") || this._core.settings.videoHeight, r = t.attr("href"); if (!r) throw new Error("Missing video URL."); if (s = r.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/), s[3].indexOf("youtu") > -1) i = "youtube"; else if (s[3].indexOf("vimeo") > -1) i = "vimeo"; else { if (!(s[3].indexOf("vzaar") > -1)) throw new Error("Video URL not supported."); i = "vzaar" } s = s[6], this._videos[r] = { type: i, id: s, width: n, height: o }, e.attr("data-video", r), this.thumbnail(t, this._videos[r]) }, n.prototype.thumbnail = function(e, i) { var s, n, o, r = i.width && i.height ? 'style="width:' + i.width + "px;height:" + i.height + 'px;"' : "", a = e.find("img"), h = "src", l = "", c = this._core.settings, p = function(t) { n = '
', s = c.lazyLoad ? '
' : '
', e.after(s), e.after(n) }; return e.wrap('
"), this._core.settings.lazyLoad && (h = "data-src", l = "owl-lazy"), a.length ? (p(a.attr(h)), a.remove(), !1) : void("youtube" === i.type ? (o = "//img.youtube.com/vi/" + i.id + "/hqdefault.jpg", p(o)) : "vimeo" === i.type ? t.ajax({ type: "GET", url: "//vimeo.com/api/v2/video/" + i.id + ".json", jsonp: "callback", dataType: "jsonp", success: function(t) { o = t[0].thumbnail_large, p(o) } }) : "vzaar" === i.type && t.ajax({ type: "GET", url: "//vzaar.com/api/videos/" + i.id + ".json", jsonp: "callback", dataType: "jsonp", success: function(t) { o = t.framegrab_url, p(o) } })) }, n.prototype.stop = function() { this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video") }, n.prototype.play = function(e) { var i, s = t(e.target), n = s.closest("." + this._core.settings.itemClass), o = this._videos[n.attr("data-video")], r = o.width || "100%", a = o.height || this._core.$stage.height(); this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), n = this._core.items(this._core.relative(n.index())), this._core.reset(n.index()), "youtube" === o.type ? i = '' : "vimeo" === o.type ? i = '' : "vzaar" === o.type && (i = ''), t('
' + i + "
").insertAfter(n.find(".owl-video")), this._playing = n.addClass("owl-video-playing")) }, n.prototype.isInFullScreen = function() { var e = i.fullscreenElement || i.mozFullScreenElement || i.webkitFullscreenElement; return e && t(e).parent().hasClass("owl-video-frame") }, n.prototype.destroy = function() { var t, e; this._core.$element.off("click.owl.video"); for (t in this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.Video = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { var n = function(e) { this.core = e, this.core.options = t.extend({}, n.Defaults, this.core.options), this.swapping = !0, this.previous = s, this.next = s, this.handlers = { "change.owl.carousel": t.proxy(function(t) { t.namespace && "position" == t.property.name && (this.previous = this.core.current(), this.next = t.property.value) }, this), "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": t.proxy(function(t) { t.namespace && (this.swapping = "translated" == t.type) }, this), "translate.owl.carousel": t.proxy(function(t) { t.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap() }, this) }, this.core.$element.on(this.handlers) }; n.Defaults = { animateOut: !1, animateIn: !1 }, n.prototype.swap = function() { if (1 === this.core.settings.items && t.support.animation && t.support.transition) { this.core.speed(0); var e, i = t.proxy(this.clear, this), s = this.core.$stage.children().eq(this.previous), n = this.core.$stage.children().eq(this.next), o = this.core.settings.animateIn, r = this.core.settings.animateOut; this.core.current() !== this.previous && (r && (e = this.core.coordinates(this.previous) - this.core.coordinates(this.next), s.one(t.support.animation.end, i).css({ left: e + "px" }).addClass("animated owl-animated-out").addClass(r)), o && n.one(t.support.animation.end, i).addClass("animated owl-animated-in").addClass(o)) } }, n.prototype.clear = function(e) { t(e.target).css({ left: "" }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd() }, n.prototype.destroy = function() { var t, e; for (t in this.handlers) this.core.$element.off(t, this.handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null); }, t.fn.owlCarousel.Constructor.Plugins.Animate = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { var n = function(e) { this._core = e, this._timeout = null, this._paused = !1, this._handlers = { "changed.owl.carousel": t.proxy(function(t) { t.namespace && "settings" === t.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : t.namespace && "position" === t.property.name && this._core.settings.autoplay && this._setAutoPlayInterval() }, this), "initialized.owl.carousel": t.proxy(function(t) { t.namespace && this._core.settings.autoplay && this.play() }, this), "play.owl.autoplay": t.proxy(function(t, e, i) { t.namespace && this.play(e, i) }, this), "stop.owl.autoplay": t.proxy(function(t) { t.namespace && this.stop() }, this), "mouseover.owl.autoplay": t.proxy(function() { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() }, this), "mouseleave.owl.autoplay": t.proxy(function() { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play() }, this), "touchstart.owl.core": t.proxy(function() { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() }, this), "touchend.owl.core": t.proxy(function() { this._core.settings.autoplayHoverPause && this.play() }, this) }, this._core.$element.on(this._handlers), this._core.options = t.extend({}, n.Defaults, this._core.options) }; n.Defaults = { autoplay: !1, autoplayTimeout: 5e3, autoplayHoverPause: !1, autoplaySpeed: !1 }, n.prototype.play = function(t, e) { this._paused = !1, this._core.is("rotating") || (this._core.enter("rotating"), this._setAutoPlayInterval()) }, n.prototype._getNextTimeout = function(s, n) { return this._timeout && e.clearTimeout(this._timeout), e.setTimeout(t.proxy(function() { this._paused || this._core.is("busy") || this._core.is("interacting") || i.hidden || this._core.next(n || this._core.settings.autoplaySpeed) }, this), s || this._core.settings.autoplayTimeout) }, n.prototype._setAutoPlayInterval = function() { this._timeout = this._getNextTimeout() }, n.prototype.stop = function() { this._core.is("rotating") && (e.clearTimeout(this._timeout), this._core.leave("rotating")) }, n.prototype.pause = function() { this._core.is("rotating") && (this._paused = !0) }, n.prototype.destroy = function() { var t, e; this.stop(); for (t in this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.autoplay = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { "use strict"; var n = function(e) { this._core = e, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = { next: this._core.next, prev: this._core.prev, to: this._core.to }, this._handlers = { "prepared.owl.carousel": t.proxy(function(e) { e.namespace && this._core.settings.dotsData && this._templates.push('
' + t(e.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot") + "
") }, this), "added.owl.carousel": t.proxy(function(t) { t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 0, this._templates.pop()) }, this), "remove.owl.carousel": t.proxy(function(t) { t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 1) }, this), "changed.owl.carousel": t.proxy(function(t) { t.namespace && "position" == t.property.name && this.draw() }, this), "initialized.owl.carousel": t.proxy(function(t) { t.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation")) }, this), "refreshed.owl.carousel": t.proxy(function(t) { t.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation")) }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this.$element.on(this._handlers) }; n.Defaults = { nav: !1, navText: ["prev", "next"], navSpeed: !1, navElement: "div", navContainer: !1, navContainerClass: "owl-nav", navClass: ["owl-prev", "owl-next"], slideBy: 1, dotClass: "owl-dot", dotsClass: "owl-dots", dots: !0, dotsEach: !1, dotsData: !1, dotsSpeed: !1, dotsContainer: !1 }, n.prototype.initialize = function() { var e, i = this._core.settings; this._controls.$relative = (i.navContainer ? t(i.navContainer) : t("
").addClass(i.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = t("<" + i.navElement + ">").addClass(i.navClass[0]).html(i.navText[0]).prependTo(this._controls.$relative).on("click", t.proxy(function(t) { this.prev(i.navSpeed) }, this)), this._controls.$next = t("<" + i.navElement + ">").addClass(i.navClass[1]).html(i.navText[1]).appendTo(this._controls.$relative).on("click", t.proxy(function(t) { this.next(i.navSpeed) }, this)), i.dotsData || (this._templates = [t("
").addClass(i.dotClass).append(t("")).prop("outerHTML")]), this._controls.$absolute = (i.dotsContainer ? t(i.dotsContainer) : t("
").addClass(i.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "div", t.proxy(function(e) { var s = t(e.target).parent().is(this._controls.$absolute) ? t(e.target).index() : t(e.target).parent().index(); e.preventDefault(), this.to(s, i.dotsSpeed) }, this)); for (e in this._overrides) this._core[e] = t.proxy(this[e], this) }, n.prototype.destroy = function() { var t, e, i, s; for (t in this._handlers) this.$element.off(t, this._handlers[t]); for (e in this._controls) this._controls[e].remove(); for (s in this.overides) this._core[s] = this._overrides[s]; for (i in Object.getOwnPropertyNames(this)) "function" != typeof this[i] && (this[i] = null) }, n.prototype.update = function() { var t, e, i, s = this._core.clones().length / 2, n = s + this._core.items().length, o = this._core.maximum(!0), r = this._core.settings, a = r.center || r.autoWidth || r.dotsData ? 1 : r.dotsEach || r.items; if ("page" !== r.slideBy && (r.slideBy = Math.min(r.slideBy, r.items)), r.dots || "page" == r.slideBy) for (this._pages = [], t = s, e = 0, i = 0; n > t; t++) { if (e >= a || 0 === e) { if (this._pages.push({ start: Math.min(o, t - s), end: t - s + a - 1 }), Math.min(o, t - s) === o) break; e = 0, ++i } e += this._core.mergers(this._core.relative(t)) } }, n.prototype.draw = function() { var e, i = this._core.settings, s = this._core.items().length <= i.items, n = this._core.relative(this._core.current()), o = i.loop || i.rewind; this._controls.$relative.toggleClass("disabled", !i.nav || s), i.nav && (this._controls.$previous.toggleClass("disabled", !o && n <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !o && n >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !i.dots || s), i.dots && (e = this._pages.length - this._controls.$absolute.children().length, i.dotsData && 0 !== e ? this._controls.$absolute.html(this._templates.join("")) : e > 0 ? this._controls.$absolute.append(new Array(e + 1).join(this._templates[0])) : 0 > e && this._controls.$absolute.children().slice(e).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(t.inArray(this.current(), this._pages)).addClass("active")) }, n.prototype.onTrigger = function(e) { var i = this._core.settings; e.page = { index: t.inArray(this.current(), this._pages), count: this._pages.length, size: i && (i.center || i.autoWidth || i.dotsData ? 1 : i.dotsEach || i.items) } }, n.prototype.current = function() { var e = this._core.relative(this._core.current()); return t.grep(this._pages, t.proxy(function(t, i) { return t.start <= e && t.end >= e }, this)).pop() }, n.prototype.getPosition = function(e) { var i, s, n = this._core.settings; return "page" == n.slideBy ? (i = t.inArray(this.current(), this._pages), s = this._pages.length, e ? ++i : --i, i = this._pages[(i % s + s) % s].start) : (i = this._core.relative(this._core.current()), s = this._core.items().length, e ? i += n.slideBy : i -= n.slideBy), i }, n.prototype.next = function(e) { t.proxy(this._overrides.to, this._core)(this.getPosition(!0), e) }, n.prototype.prev = function(e) { t.proxy(this._overrides.to, this._core)(this.getPosition(!1), e) }, n.prototype.to = function(e, i, s) { var n; !s && this._pages.length ? (n = this._pages.length, t.proxy(this._overrides.to, this._core)(this._pages[(e % n + n) % n].start, i)) : t.proxy(this._overrides.to, this._core)(e, i) }, t.fn.owlCarousel.Constructor.Plugins.Navigation = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { "use strict"; var n = function(i) { this._core = i, this._hashes = {}, this.$element = this._core.$element, this._handlers = { "initialized.owl.carousel": t.proxy(function(i) { i.namespace && "URLHash" === this._core.settings.startPosition && t(e).trigger("hashchange.owl.navigation") }, this), "prepared.owl.carousel": t.proxy(function(e) { if (e.namespace) { var i = t(e.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash"); if (!i) return; this._hashes[i] = e.content } }, this), "changed.owl.carousel": t.proxy(function(i) { if (i.namespace && "position" === i.property.name) { var s = this._core.items(this._core.relative(this._core.current())), n = t.map(this._hashes, function(t, e) { return t === s ? e : null }).join(); if (!n || e.location.hash.slice(1) === n) return; e.location.hash = n } }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this.$element.on(this._handlers), t(e).on("hashchange.owl.navigation", t.proxy(function(t) { var i = e.location.hash.substring(1), n = this._core.$stage.children(), o = this._hashes[i] && n.index(this._hashes[i]); o !== s && o !== this._core.current() && this._core.to(this._core.relative(o), !1, !0) }, this)) }; n.Defaults = { URLhashListener: !1 }, n.prototype.destroy = function() { var i, s; t(e).off("hashchange.owl.navigation"); for (i in this._handlers) this._core.$element.off(i, this._handlers[i]); for (s in Object.getOwnPropertyNames(this)) "function" != typeof this[s] && (this[s] = null) }, t.fn.owlCarousel.Constructor.Plugins.Hash = n }(window.Zepto || window.jQuery, window, document), function(t, e, i, s) { function n(e, i) { var n = !1, o = e.charAt(0).toUpperCase() + e.slice(1); return t.each((e + " " + a.join(o + " ") + o).split(" "), function(t, e) { return r[e] !== s ? (n = !i || e, !1) : void 0 }), n } function o(t) { return n(t, !0) } var r = t("").get(0).style, a = "Webkit Moz O ms".split(" "), h = { transition: { end: { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd", transition: "transitionend" } }, animation: { end: { WebkitAnimation: "webkitAnimationEnd", MozAnimation: "animationend", OAnimation: "oAnimationEnd", animation: "animationend" } } }, l = { csstransforms: function() { return !!n("transform") }, csstransforms3d: function() { return !!n("perspective") }, csstransitions: function() { return !!n("transition") }, cssanimations: function() { return !!n("animation") } }; l.csstransitions() && (t.support.transition = new String(o("transition")), t.support.transition.end = h.transition.end[t.support.transition]), l.cssanimations() && (t.support.animation = new String(o("animation")), t.support.animation.end = h.animation.end[t.support.animation]), l.csstransforms() && (t.support.transform = new String(o("transform")), t.support.transform3d = l.csstransforms3d()) }(window.Zepto || window.jQuery, window, document);