var jsmart = {}; if (jsmart.autocomputecallback = function () { }, !jquery) throw new error("nsmart requires jquery"); +function (a, b, c, d) { "use strict"; function g(d, g) { var h = d, i = this; return b(a).on("scroll", function () { i.each(function () { var a = b(this), c = a.data("smart.animation"); c && c.animate() }) }), e.$device().$touchable && b(c).on("ps-scroll-y", function () { i.each(function () { var a = b(this), c = a.data("smart.animation"); c && c.animate() }) }), this.each(function () { var j, k, l, a = h, c = "string" == typeof a && a, d = this, e = b(d), i = e.attr("pvid"); return "undefined" != typeof i && "" !== i && (j = b("#smv_" + i), j.hasclass("animated") && "1" !== j.attr("smexecuted")) ? !0 : (null == a && (k = e.attr("smanim"), "undefined" != typeof k && (a = b.parsejson(k))), l = e.data("smart.animation"), l ? c ? (l.options = b.extend({}, f.defaults, b.parsejson(e.attr("smanim"))), l.ac = l.options, "undefined" == typeof g ? l[a]() : l[a](g)) : (l.options = b.extend({}, f.defaults, l.options), l.ac = l.options, l.queue[0] = l.ac.animationname + l.ac.direction || "", l.animate()) : "object" == typeof a ? (e.data("smart.animation", l = new f(this, a)), l.animate()) : (a = {}, e.data("smart.animation", l = new f(this, a)), l.animate()), void 0) }) } var e = a.smarth$ = new function () { function v() { if (!k) { k = { $touchable: "ontouchstart" in a || "createtouch" in c }; var b; (q.pointerenabled || (b = q.mspointerenabled)) && (k.$touchactionattr = b ? "mstouchaction" : "touchaction") } return k } function w(b) { var d, e, k, o, q, t, v; return l || (l = -1, "microsoft internet explorer" == r && a.attachevent && a.activexobject ? (d = s.indexof("msie"), l = f, n = u(s.substring(d + 5, s.indexof(";", d))), m = c.documentmode || n) : "netscape" == r && a.addeventlistener ? (e = s.indexof("firefox"), k = s.indexof("safari"), o = s.indexof("chrome"), q = s.indexof("applewebkit"), e >= 0 ? (l = g, m = u(s.substring(e + 8))) : k >= 0 ? (t = s.substring(0, k).lastindexof("/"), l = o >= 0 ? i : h, m = u(s.substring(t + 1, k))) : (v = /trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/i.exec(s), v && (l = f, m = n = u(v[1]))), q >= 0 && (p = u(s.substring(q + 12)))) : (v = /(opera)(?:.*version|)[ \/]([\w.]+)/i.exec(s), v && (l = j, m = u(v[2])))), b == l } function x() { return w(f) } function y() { return x() && (6 > m || "backcompat" == c.compatmode) } function z() { return w(g) } function a() { return w(h) } function b() { return w(i) } function c() { return w(j) } function d() { return a() && p > 534 && 535 > p } function e() { return w(), p > 537 || m > 42 || l == f && m >= 11 } function f() { return x() && 10 > m } function g(a) { var b, c; return function (e) { if (!b) { b = !0; var f = a.substr(0, 1).touppercase() + a.substr(1); l([a].concat(["webkit", "ms", "moz", "o", "webkit"]), function (b, g) { var h = a; return g && (h = b + f), e.style[h] != d ? c = h : void 0 }) } return c } } function h(a) { var b; return function (c) { return b = b || g(a)(c) || a } } function j(a) { return {}.tostring.call(a) } function l(a, b) { var c, d; if ("[object array]" == j(a)) { for (c = 0; c < a.length; c++)if (d = b(a[c], c, a)) return d } else for (c in a) if (d = b(a[c], c, a)) return d } var k, k, b = this, f = 1, g = 2, h = 3, i = 4, j = 5, l = 0, m = 0, n = 0, p = 0, q = navigator, r = q.appname, s = q.useragent, u = (c.documentelement, parsefloat); h("transform"), k = {}, l(["boolean", "number", "string", "function", "array", "date", "regexp", "object"], function (a) { k["[object " + a + "]"] = a.tolowercase() }), b.$device = v, b.$isbrowserie = x, b.$isbrowseriequirks = y, b.$isbrowserfirefox = z, b.$isbrowsersafari = a, b.$isbrowserchrome = b, b.$isbrowseropera = c, b.$isbrowserbadtransform = d, b.$isbrowser3dsafe = e, b.$isbrowserie10earlier = f, b.$browserversion = function () { return m }, b.$browserengineversion = function () { return n || m }, b.$webkitversion = function () { return w(), p } }, f = function (a, c) { this.$element = b(a), this.options = b.extend({}, f.defaults, c), this.inittop = this.$element.position().top, this.initleft = this.$element.position().left, this.prefixes = ["", "-moz-", "-o-animation-", "-webkit-"], this.queue = [], this.ac = c, this.queue[0] = this.ac.animationname + this.ac.direction || "", this.st = null }; f.version = "1.0", f.defaults = { container: a, threshold: 0 }, f.prototype = { belowthefold: function (c, e) { var f, g; return e.container === d || e.container === a ? (g = b(a), f = (a.innerheight ? a.innerheight : g.height()) + g.scrolltop()) : f = b(e.container).offset().top + b(e.container).height(), f <= c.offset().top - e.threshold }, rightoffold: function (c, e) { return !1 }, abovethetop: function (c, e) { var f; return f = e.container === d || e.container === a ? b(a).scrolltop() : b(e.container).offset().top, f >= c.offset().top + e.threshold + c.height() }, leftofbegin: function (c, e) { var f; return f = e.container === d || e.container === a ? b(a).scrollleft() : b(e.container).offset().left, f >= c.offset().left + e.threshold + c.width() }, initq: function () { 0 === this.queue.length && (this.queue[0] = this.ac.animationname + this.ac.direction || "") }, play: function () { this.adddoneatt(), this.initq(); var a = e.$device(); !a.$touchable && e.$isbrowserie() && e.$isbrowserie10earlier() < 10 ? this.playie() : this.playnoraml() }, replay: function () { this.removedoneatt(), this.play() }, prev: function (a) { this.cleanse(), this.$element.css({ opacity: 0 }), "undefined" == typeof a ? (this.ac = b.parsejson(this.$element.attr("smanim")), this.queue[0] = this.ac.animationname + this.ac.direction || "", this.$element.attr("prevhisani", this.queue[0]), this.play()) : (this.adddoneatt(), this.palywithdata(a)) }, stop: function () { null !== this.st && cleartimeout(this.st); var a = this.ac.animationname + this.ac.direction || ""; this.$element.removeclass(a).css({ opacity: 0 }).stop(!0, !0) }, playie: function () { this.isaminfix(this.queue[0]) ? this[this.queue[0]]() : this.playnoraml() }, playnoraml: function () { var a, b; if (0 != this.queue.length) { for (a = this.prefixes.length; a--;)this.$element.css(this.prefixes[a] + "animation-duration", this.options.duration + "s"), this.$element.css(this.prefixes[a] + "animation-delay", this.options.delay + "s"), this.$element.css(this.prefixes[a] + "animation-iteration-count", this.options.infinite); this.$element.addclass(this.queue[0]), b = this, this.end("animationend", function () { b.$element.css({ opacity: 1 }), b.$element.hasclass(b.queue[0]) && (b.options.keep || 0 == b.queue.length || "infinite" === b.options.infinite || b.cleanse(), b.queue.shift(), b.queue.length ? b.animate() : b.execchildanim(b.$element)) }) } }, palywithdata: function (a) { var d, b = this.prefixes.length, c = a.animationname + a.direction; for (this.$element.attr("prevhisani", c); b--;)this.$element.css(this.prefixes[b] + "animation-duration", a.duration + "s"), this.$element.css(this.prefixes[b] + "animation-delay", a.delay + "s"), this.$element.css(this.prefixes[b] + "animation-iteration-count", a.infinite); this.$element.addclass(a.animationname + a.direction), d = this, this.end("animationend", function () { d.$element.css({ opacity: 1 }), d.cleananim(c), d.execchildanim(d.$element) }) }, adddoneatt: function () { this.$element.attr("sm-finished", !0) }, removedoneatt: function () { this.$element.removeattr("sm-finished") }, fadein: function () { var a = this; this.st = settimeout(function () { a.$element.animate({ opacity: 1 }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, fadeinleft: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("left")); a.$element.animate({ left: b - a.$element.width() }).animate({ left: b, opacity: 1 }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, fadeinleftbig: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("left")); a.$element.animate({ left: 0 - a.$element.width() }).animate({ left: b, opacity: 1 }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, fadeinright: function () { var c = this; this.st = settimeout(function () { var d = parseint(c.$element.css("left")), e = d + c.$element.width(), f = b(a).width(); e > f && (e = f - c.$element.width()), c.$element.animate({ left: e }).animate({ left: d, opacity: 1 }, 1e3 * (c.ac.duration || 0), function () { c.execchildanim(c.$element) }) }, 1e3 * (c.ac.delay || 0)) }, fadeinrightbig: function () { var c = this; this.st = settimeout(function () { var d = parseint(c.$element.css("left")), e = d + c.$element.width(), f = b(a).width(); e > f && (e = f - c.$element.width()), c.$element.animate({ right: 0 - c.$element.width() }).animate({ left: d, opacity: 1 }, 1e3 * (c.ac.duration || 0), function () { c.execchildanim(c.$element) }) }, 1e3 * (c.ac.delay || 0)) }, fadeindown: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("top")); a.$element.animate({ top: b - a.$element.height() }).animate({ top: b, opacity: 1 }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, fadeindownbig: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("top")); a.$element.animate({ top: 0 - a.$element.height() }).animate({ top: b, opacity: 1 }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, fadeinup: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("top")); a.$element.animate({ top: b + a.$element.height() }).animate({ top: b, opacity: 1 }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, fadeinupbig: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("top")); a.$element.animate({ bottom: 0 - a.$element.height() }).animate({ top: b, opacity: 1 }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, slideinleft: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("left")); a.$element.animate({ left: b - a.$element.width() }).animate({ opacity: 1 }).animate({ left: b }, 1e3 * (a.ac.duration || 0) + 300, function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, slideinright: function () { var c = this; this.st = settimeout(function () { var d = parseint(c.$element.css("left")), e = d + c.$element.width(), f = b(a).width(); e > f && (e = f - c.$element.width()), c.$element.animate({ left: e }).animate({ opacity: 1 }).animate({ left: d }, 1e3 * (c.ac.duration || 0), function () { c.execchildanim(c.$element) }) }, 1e3 * (c.ac.delay || 0)) }, slideindown: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("top")); a.$element.animate({ top: b - a.$element.height() }).animate({ opacity: 1 }).animate({ top: b }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, slideinup: function () { var a = this; this.st = settimeout(function () { var b = parseint(a.$element.css("top")); a.$element.animate({ top: b + a.$element.height() }).animate({ opacity: 1 }).animate({ top: b }, 1e3 * (a.ac.duration || 0), function () { a.execchildanim(a.$element) }) }, 1e3 * (a.ac.delay || 0)) }, isaminfix: function (a) { var b = !1; switch (a) { case "fadein": case "fadeinleft": case "fadeinleftbig": case "fadeinright": case "fadeinrightbig": case "fadeinrightbig": case "fadeindown": case "fadeindownbig": case "fadeinup": case "fadeinupbig": case "slideinleft": case "slideinright": case "slideindown": case "slideinup": b = !0 }return b }, animate: function () { var a = this.$element.attr("sm-finished"); this.abovethetop(this.$element, this.options) || this.leftofbegin(this.$element, this.options) || "undefined" != typeof a || this.belowthefold(this.$element, this.options) || this.rightoffold(this.$element, this.options) || "undefined" != typeof this.$element.attr("sm-finished") || this.play() }, cleanse: function () { var a = this.$element.attr("prevhisani"); "undefined" != typeof a && "" !== a && this.$element.removeclass("hisani"), this.cleananim(this.queue[0]) }, cleananim: function (a) { this.$element.removeclass(a); for (var b = this.prefixes.length; b--;)this.$element.css(this.prefixes[b] + "animation-duration", ""), this.$element.css(this.prefixes[b] + "animation-delay", ""), this.$element.css(this.prefixes[b] + "animation-iteration-count", "") }, end: function (a, b) { var c = this, d = a.tolowercase() + " webkit" + a + " o" + a + " ms" + a; this.$element.bind(d, function () { "function" == typeof b && b(), c.$element.unbind(d) }) }, execchildanim: function (a) { a.attr("smexecuted", "1"), "true" === a.attr("iscontainer") && a.find(".animated").smanimate() } }, b.fn.smanimate = g, b.fn.smanimate.constructor = f }("undefined" == typeof window ? this : window, jquery, document), +function (a) { "use strict"; function c(c, d) { function e(b, c) { var d = b, f = d.position().top + c, g = d.attr("pvid"); return "undefined" != typeof g && "" !== g ? e(a("#smv_" + g), f) : f } var f = c, g = this.sort(function (b, c) { return e(a(b), 0) - e(a(c), 0) }); return g.each(function () { var i, c = f, e = "string" == typeof c && c, g = this, h = a(g); 0 !== h.height() && (i = h.data("smart.remcopute"), i ? e ? "undefined" == typeof d ? i[c]() : d.length > 1 ? i[c].apply(i, d) : i[c](d) : i.recomputeh() : "object" == typeof c ? (h.data("smart.remcopute", i = new b(this, c)), i.recomputeh()) : "string" == typeof c ? (h.data("smart.remcopute", i = new b(this, c)), "undefined" == typeof d ? i[c]() : d.length > 1 ? i[c].apply(i, d) : i[c](d)) : (c = {}, h.data("smart.remcopute", i = new b(this, c)), i.recomputeh())) }) } var b = function (b, c) { var d, e, f, g; this.$element = a(b), this.options = a.extend({}, c), this.initw = parseint(this.$element.css("width")), this.inith = parseint(this.$element.css("min-height")), d = this.$element.position(), e = d.left, f = e + this.$element.width(), g = d.top, this.$element.attr("hish", this.inith), this.$element.attr("origh", this.inith), this.$mainview = a("#smv_main"), this.$area1view = a("#smv_area1"), this.$relationeles = this.$element.siblings().filter(function () { var b = a(this), c = b.width(), d = b.position(), h = d.left, i = d.left + c, j = d.top; return j > g && !b.hasclass("smartfixed") && (h >= e && f >= h || i >= e && f >= i || e >= h && i >= e || f >= h && i >= f) }) }; b.prototype = { recomputeh: function () { var b, a = this.$element.height(); 0 !== a && (b = parseint(this.$element.attr("hish")), a > b && (this.recomputehto(a, b), this.$element.attr("hish", a))) }, recomputeto: function (a, b) { var c = 0; c = "undefined" != typeof b ? b : this.$element.height(), this.recomputehto(a, c), this.$element.height(a).attr("hish", a) }, recomputehto: function (b, c) { var f, g, h, i, d = b, e = d - c; 0 !== e && (f = this.innerrecompute(this.$element, this.$relationeles, e, !0), g = this.$element.attr("pvid"), "undefined" != typeof g && "" !== g && (this.rejustclostparenth(g, this.$element, f), h = a("#smv_" + g), this.recomputeview(h, f)), i = this.$element.attr("tareaid"), "" === i ? this.rejustmainareah(f) : this.rejustareah(i, f), "function" == typeof jsmart.autocomputecallback && jsmart.autocomputecallback()) }, recomputeview: function (b, c) { var f, g, h, i, d = b.height(), e = d; "1" === c.dirct ? c.maxh > e && (f = this.getrelationviews(b), g = this.innerrecompute(b, f, c.expandh), b.addclass("expandflag"), h = b.attr("pvid"), "undefined" != typeof h && "" !== h && (this.rejustclostparenth(h, b, g), i = a("#smv_" + h), this.recomputeview(i, g))) : (f = this.getrelationviews(b), g = this.innerrecompute(b, f, c.expandh), b.addclass("expandflag"), h = b.attr("pvid"), "undefined" != typeof h && "" !== h && (this.rejustclostparenth(h, b, g), i = a("#smv_" + h), this.recomputeview(i, g))) }, innerrecompute: function (b, c, d, e) { var h, f = 0, g = b.height(); return 0 !== d && (e || b.height(g + d), c.each(function () { var g, b = a(this), c = b.height(), e = b.position().top + c + d; e > f && (f = e), g = b.position().top + d, b.css({ top: g }) })), 0 == f && (f = b.position().top + g + d), h = {}, h.dirct = d >= 0 ? "1" : "0", h.maxh = f, h.expandh = d, h }, getrelationviews: function (b) { var c = b.position(), d = c.top, e = c.left, f = c.left + b.width(); return b.siblings().filter(function () { var b = a(this), c = b.width(), g = b.position(), h = g.left, i = g.left + c, j = g.top; return j > d && !b.hasclass("smartfixed") && (h >= e && f >= h || i >= e && f >= i || e >= h && i >= e || f >= h && i >= f) }) }, rejustclostparenth: function (a, b, c) { var d = b.parent(), e = d.attr("id"); e !== "smv_" + a && d.hasclass("smareac") && !d.hasclass("expandflag") ? d.addclass("expandflag").height(d.height() + c.expandh) : d.height(d.height() + c.expandh) }, rejustareah: function (b, c) { var d, e, f, h; "area1" !== b && (d = a("#smv_" + b), "1" === c.dirct ? (e = d.height(), d.height(e + c.expandh), d.hasclass("expandflag") || d.attr("hish", e).addclass("expandflag")) : (h = parseint(d.css("min-height")), d.hasclass("expandflag") ? (f = d.height() + c.expandh, f = h > f ? h : f, d.height(f)) : (f = d.height() + c.expandh, f = h > f ? h : f, d.height(f).attr("hish", f).addclass("expandflag")))) }, rejustmainareah: function (a) { var b, c, d, e; "1" === a.dirct ? (b = this.$mainview.height(), this.$mainview.height(b + a.expandh), 1 == this.$area1view.length && (c = this.$area1view.height(), this.$area1view.height(c + a.expandh)), this.$mainview.hasclass("expandflag") || (this.$mainview.attr("hish", b).addclass("expandflag"), 1 == this.$area1view.length && this.$area1view.attr("hish", c).addclass("expandflag"))) : (e = parseint(this.$mainview.css("min-height")), this.$mainview.hasclass("expandflag") ? (d = this.$mainview.height() + a.expandh, d = e > d ? e : d, this.$mainview.height(d), 1 == this.$area1view.length && (c = this.$area1view.height() + a.expandh, c = e > c ? e : c, this.$area1view.height(c))) : (d = this.$mainview.height() + a.expandh, d = e > d ? e : d, this.$mainview.height(d).attr("hish", d).addclass("expandflag"), 1 == this.$area1view.length && (c = this.$area1view.height() + a.expandh, this.$area1view.height(c).attr("hish", c)))) } }, a.fn.smrecompute = c, a.fn.smrecompute.constructor = b }(jquery);