1! function(t) { 2 "use strict"; 3 4 function e(t) { 5 return new RegExp("(^|\\s+)" + t + "(\\s+|$)") 6 } 7 8 function i(t, e) { 9 (n(t, e) ? s : o)(t, e) 10 } 11 var n, o, s; 12 "classList" in document.documentElement ? (n = function(t, e) { 13 return t.classList.contains(e) 14 }, o = function(t, e) { 15 t.classList.add(e) 16 }, s = function(t, e) { 17 t.classList.remove(e) 18 }) : (n = function(t, i) { 19 return e(i).test(t.className) 20 }, o = function(t, e) { 21 n(t, e) || (t.className = t.className + " " + e) 22 }, s = function(t, i) { 23 t.className = t.className.replace(e(i), " ") 24 }); 25 var r = { 26 hasClass: n, 27 addClass: o, 28 removeClass: s, 29 toggleClass: i, 30 has: n, 31 add: o, 32 remove: s, 33 toggle: i 34 }; 35 "function" == typeof define && define.amd ? define(r) : t.classie = r 36}(window), 37 function(t, e) { 38 "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(i) { 39 return e(t, i) 40 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery) 41}(window, function(t, e) { 42 "use strict"; 43 44 function i(i, s, a) { 45 function l(t, e, n) { 46 var o, s = "$()." + i + '("' + e + '")'; 47 return t.each(function(t, l) { 48 var c = a.data(l, i); 49 if (!c) return void r(i + " not initialized. Cannot call methods, i.e. " + s); 50 var u = c[e]; 51 if (!u || "_" == e.charAt(0)) return void r(s + " is not a valid method"); 52 var d = u.apply(c, n); 53 o = void 0 === o ? d : o 54 }), void 0 !== o ? o : t 55 } 56 57 function c(t, e) { 58 t.each(function(t, n) { 59 var o = a.data(n, i); 60 o ? (o.option(e), o._init()) : (o = new s(n, e), a.data(n, i, o)) 61 }) 62 }(a = a || e || t.jQuery) && (s.prototype.option || (s.prototype.option = function(t) { 63 a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t)) 64 }), a.fn[i] = function(t) { 65 if ("string" == typeof t) { 66 return l(this, t, o.call(arguments, 1)) 67 } 68 return c(this, t), this 69 }
69, n(a)) 70 } 71 72 function n(t) { 73 !t || t && t.bridget || (t.bridget = i) 74 } 75 var o = Array.prototype.slice, 76 s = t.console, 77 r = void 0 === s ? function() {} : function(t) { 78 s.error(t) 79 }; 80 return n(e || t.jQuery), i 81}), 82 function(t, e) { 83 "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e() 84}("undefined" != typeof window ? window : this, function() 85{ 86 87 /** WC Edit Start **/ 88 if(window.location.href.includes('challenge')) 89 { 90 return false; 91 } 92 /** WC Edit End **/ 93 94 95 function t() {} 96 var e = t.prototype; 97 return e.on = function(t, e) { 98 if (t && e) { 99 var i = this._events = this._events || {}, 100 n = i[t] = i[t] || []; 101 return -1 == n.indexOf(e) && n.push(e), this 102 } 103 }, e.once = function(t, e) { 104 if (t && e) { 105 this.on(t, e); 106 var i = this._onceEvents = this._onceEvents || {}; 107 return (i[t] = i[t] || {})[e] = !0, this 108 } 109 }, e.off = function(t, e) { 110 var i = this._events && this._events[t]; 111 if (i && i.length) { 112 var n = i.indexOf(e); 113 return -1 != n && i.splice(n, 1), this 114 } 115 }, e.emitEvent = function(t, e) { 116 var i = this._events && this._events[t]; 117 if (i && i.length) { 118 var n = 0, 119 o = i[n]; 120 e = e || []; 121 for (var s = this._onceEvents && this._onceEvents[t]; o;) { 122 var r = s && s[o]; 123 r && (this.off(t, o), delete s[o]), o.apply(this, e), n += r ? 0 : 1, o = i[n] 124 } 125 return this 126 } 127 }, t 128}), 129 function(t, e) { 130 "use strict"; 131 "function" == typeof define && define.amd ? define("get-size/get-size", [], function() { 132 return e() 133 }) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e() 134}(window, function() { 135 "use strict"; 136 137 function t(t) { 138 var e = parseFloat(t); 139 return -1 == t.indexOf("%") && !isNaN(e) && e 140 } 141 142 function e() {} 143 144 function i() { 145 for (var t = { 146 width: 0, 147 height: 0, 148 innerWidth: 0, 149 innerHeight: 0, 150 outerWidth: 0, 151 outerHeight: 0 152 }, e = 0; e < c; e++) { 153 t[l[e]] = 0 154 } 155 return t 156 } 157 158 function n(t) { 159 var e = getComputedStyle(t); 160 return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), e 161 } 162 163 function o() { 164 if (!u) { 165 u = !0; 166 var e = document.createElement("div"); 167 e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box"; 168 var i = document.body || document.documentElement; 169 i.appendChild(e); 170 var o = n(e); 171 s.isBoxSizeOuter = r = 200 == t(o.width), i.removeChild(e) 172 } 173 } 174 175 function s(e) { 176 if (o(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) { 177 var s = n(e); 178 if ("none" == s.display) return i(); 179 var a = {}; 180 a.width = e.offsetWidth, a.height = e.offsetHeight; 181 for (var u = a.isBorderBox = "border-box" == s.boxSizing, d = 0; d < c; d++) { 182 var h = l[d], 183 p = s[h], 184 f = parseFloat(p); 185 a[h] = isNaN(f) ? 0 : f 186 } 187 var g = a.paddingLeft + a.paddingRight, 188 m = a.paddingTop + a.paddingBottom, 189 v = a.marginLeft + a.marginRight, 190 y = a.marginTop + a.marginBottom, 191 b = a.borderLeftWidth + a.borderRightWidth, 192 w = a.borderTopWidth + a.borderBottomWidth, 193 S = u && r, 194 C = t(s.width); 195 !1 !== C && (a.width = C + (S ? 0 : g + b)); 196 var x = t(s.height); 197 return !1 !== x && (a.height = x + (S ? 0 : m + w)), a.innerWidth = a.width - (g + b), a.innerHeight = a.height - (m + w), a.outerWidth = a.width + v, a.outerHeight = a.height + y, a 198 } 199 } 200 var r, a = "undefined" == typeof console ? e : function(t) { 201 console.error(t) 202 }, 203 l = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], 204 c = l.length, 205 u = !1; 206 return s 207}), 208 function(t, e) { 209 "use strict"; 210 "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e() 211}(window, function() { 212 "use strict"; 213 var t = function() { 214 var t = Element.prototype; 215 if (t.matches) return "matches"; 216 if (t.matchesSelector) return "matchesSelector"; 217 for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) { 218 var n = e[i], 219 o = n + "MatchesSelector"; 220 if (t[o]) return o 221 } 222 }(); 223 return function(e, i) { 224 return e[t](i) 225 } 226}), 227 function(t, e) { 228 "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(i) { 229 return e(t, i) 230 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector) 231}(window, function(t, e) { 232 var i = {}; 233 i.extend = function(t, e) { 234 for (var i in e) t[i] = e[i]; 235 return t 236 }, i.modulo = function(t, e) { 237 return (t % e + e) % e 238 }, i.makeArray = function(t) { 239 var e = []; 240 if (Array.isArray(t)) e = t; 241 else if (t && "number" == typeof t.length) 242 for (var i = 0; i < t.length; i++) e.push(t[i]); 243 else e.push(t); 244 return e 245 }, i.removeFrom = function(t, e) { 246 var i = t.indexOf(e); - 1 != i && t.splice(i, 1) 247 }, i.getParent = function(t, i) { 248 for (; t != document.body;) 249 if (t = t.parentNode, e(t, i)) return t 250 }, i.getQueryElement = function(t) { 251 return "string" == typeof t ? document.querySelector(t) : t 252 }, i.handleEvent = function(t) { 253 var e = "on" + t.type; 254 this[e] && this[e](t) 255 }, i.filterFindElements = function(t, n) { 256 t = i.makeArray(t); 257 var o = []; 258 return t.forEach(function(t) { 259 if (t instanceof HTMLElement) { 260 if (!n) return void o.push(t); 261 e(t, n) && o.push(t); 262 for (var i = t.querySelectorAll(n), s = 0; s < i.length; s++) o.push(i[s]) 263 } 264 }), o 265 }, i.debounceMethod = function(t, e, i) { 266 var n = t.prototype[e], 267 o = e + "Timeout"; 268 t.prototype[e] = function() { 269 var t = this[o]; 270 t && clearTimeout(t); 271 var e = arguments, 272 s = this; 273 this[o] = setTimeout(function() { 274 n.apply(s, e), delete s[o] 275 }, i || 100) 276 } 277 }, i.docReady = function(t) { 278 var e = document.readyState; 279 "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t) 280 }, i.toDashed = function(t) { 281 return t.replace(/(.)([A-Z])/g, function(t, e, i) { 282 return e + "-" + i 283 }).toLowerCase() 284 }; 285 var n = t.console; 286 return i.htmlInit = function(e, o) { 287 i.docReady(function() { 288 var s = i.toDashed(o), 289 r = "data-" + s, 290 a = document.querySelectorAll("[" + r + "]"), 291 l = document.querySelectorAll(".js-" + s), 292 c = i.makeArray(a).concat(i.makeArray(l)), 293 u = r + "-options", 294 d = t.jQuery;
295 c.forEach(function(t) { 296 var i, s = t.getAttribute(r) || t.getAttribute(u); 297 try { 298 i = s && JSON.parse(s) 299 } catch (e) { 300 return void(n && n.error("Error parsing " + r + " on " + t.className + ": " + e)) 301 } 302 var a = new e(t, i); 303 d && d.data(t, o, a) 304 }) 305 }) 306 }, i 307}), 308 function(t, e) { 309 "function" == typeof define && define.amd ? define("flickity/js/cell", ["get-size/get-size"], function(i) { 310 return e(t, i) 311 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("get-size")) : (t.Flickity = t.Flickity || {}, t.Flickity.Cell = e(t, t.getSize)) 312}(window, function(t, e) { 313 function i(t, e) { 314 this.element = t, this.parent = e, this.create() 315 } 316 var n = i.prototype; 317 return n.create = function() { 318 this.element.style.position = "absolute", this.x = 0, this.shift = 0 319 }, n.destroy = function() { 320 this.element.style.position = ""; 321 var t = this.parent.originSide; 322 this.element.style[t] = "" 323 }, n.getSize = function() { 324 this.size = e(this.element) 325 }, n.setPosition = function(t) { 326 this.x = t, this.updateTarget(), this.renderPosition(t) 327 }, n.updateTarget = n.setDefaultTarget = function() { 328 var t = "left" == this.parent.originSide ? "marginLeft" : "marginRight"; 329 this.target = this.x + this.size[t] + this.size.width * this.parent.cellAlign 330 }, n.renderPosition = function(t) { 331 var e = this.parent.originSide; 332 this.element.style[e] = this.parent.getPositionValue(t) 333 }, n.wrapShift = function(t) { 334 this.shift = t, this.renderPosition(this.x + this.parent.slideableWidth * t) 335 }, n.remove = function() { 336 this.element.parentNode.removeChild(this.element) 337 }, i 338}), 339 function(t, e) { 340 "function" == typeof define && define.amd ? define("flickity/js/slide", e) : "object" == typeof module && module.exports ? module.exports = e() : (t.Flickity = t.Flickity || {}, t.Flickity.Slide = e()) 341}(window, function() { 342 "use strict"; 343 344 function t(t) { 345 this.parent = t, this.isOriginLeft = "left" == t.originSide, this.cells = [], this.outerWidth = 0, this.height = 0 346 } 347 var e = t.prototype; 348 return e.addCell = function(t) { 349 if (this.cells.push(t), this.outerWidth += t.size.outerWidth, this.height = Math.max(t.size.outerHeight, this.height), 1 == this.cells.length) { 350 this.x = t.x; 351 var e = this.isOriginLeft ? "marginLeft" : "marginRight"; 352 this.firstMargin = t.size[e] 353 } 354 }, e.updateTarget = function() { 355 var t = this.isOriginLeft ? "marginRight" : "marginLeft", 356 e = this.getLastCell(), 357 i = e ? e.size[t] : 0, 358 n = this.outerWidth - (this.firstMargin + i); 359 this.target = this.x + this.firstMargin + n * this.parent.cellAlign 360 }, e.getLastCell = function() { 361 return this.cells[this.cells.length - 1] 362 }, e.select = function() { 363 this.changeSelectedClass("add") 364 }, e.unselect = function() { 365 this.changeSelectedClass("remove") 366 }, e.changeSelectedClass = function(t) { 367 this.cells.forEach(function(e) { 368 e.element.classList[t]("is-selected") 369 }) 370 }, e.getCellElements = function() { 371 return this.cells.map(function(t) { 372 return t.element 373 }) 374 }, t 375}), 376 function(t, e) { 377 "function" == typeof define && define.amd ? define("flickity/js/animate", ["fizzy-ui-utils/utils"], function(i) { 378 return e(t, i) 379 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("fizzy-ui-utils")) : (t.Flickity = t.Flickity || {}, t.Flickity.animatePrototype = e(t, t.fizzyUIUtils)) 380}(window, function(t, e) { 381 var i = t.requestAnimationFrame || t.webkitRequestAnimationFrame, 382 n = 0; 383 i || (i = function(t) { 384 var e = (new Date).getTime(), 385 i = Math.max(0, 16 - (e - n)), 386 o = setTimeout(t, i); 387 return n = e + i, o 388 }); 389 var o = {}; 390 o.startAnimation = function() { 391 this.isAnimating || (this.isAnimating = !0, this.restingFrames = 0, this.animate()) 392 }, o.animate = function() { 393 this.applyDragForce(), this.applySelectedAttraction(); 394 var t = this.x; 395 if (this.integratePhysics(), this.positionSlider(), this.settle(t), this.isAnimating) { 396 var e = this; 397 i(function() { 398 e.animate() 399 }) 400 } 401 }; 402 var s = function() { 403 return "string" == typeof document.documentElement.style.transform ? "transform" : "WebkitTransform" 404 }(); 405 return o.positionSlider = function() { 406 var t = this.x; 407 this.options.wrapAround && this.cells.length > 1 && (t = e.modulo(t, this.slideableWidth), t -= this.slideableWidth, this.shiftWrapCells(t)), t += this.cursorPosition, t = this.options.rightToLeft && s ? -t : t; 408 var i = this.getPositionValue(t); 409 this.slider.style[s] = this.isAnimating ? "translate3d(" + i + ",0,0)" : "translateX("
409+ i + ")"; 410 var n = this.slides[0]; 411 if (n) { 412 var o = -this.x - n.target, 413 r = o / this.slidesWidth; 414 this.dispatchEvent("scroll", null, [r, o]) 415 } 416 }, o.positionSliderAtSelected = function() { 417 this.cells.length && (this.x = -this.selectedSlide.target, this.positionSlider()) 418 }, o.getPositionValue = function(t) { 419 return this.options.percentPosition ? .01 * Math.round(t / this.size.innerWidth * 1e4) + "%" : Math.round(t) + "px" 420 }, o.settle = function(t) { 421 this.isPointerDown || Math.round(100 * this.x) != Math.round(100 * t) || this.restingFrames++, this.restingFrames > 2 && (this.isAnimating = !1, delete this.isFreeScrolling, this.positionSlider(), this.dispatchEvent("settle")) 422 }, o.shiftWrapCells = function(t) { 423 var e = this.cursorPosition + t; 424 this._shiftCells(this.beforeShiftCells, e, -1); 425 var i = this.size.innerWidth - (t + this.slideableWidth + this.cursorPosition); 426 this._shiftCells(this.afterShiftCells, i, 1) 427 }, o._shiftCells = function(t, e, i) { 428 for (var n = 0; n < t.length; n++) { 429 var o = t[n], 430 s = e > 0 ? i : 0; 431 o.wrapShift(s), e -= o.size.outerWidth 432 } 433 }, o._unshiftCells = function(t) { 434 if (t && t.length) 435 for (var e = 0; e < t.length; e++) t[e].wrapShift(0) 436 }, o.integratePhysics = function() { 437 this.x += this.velocity, this.velocity *= this.getFrictionFactor() 438 }, o.applyForce = function(t) { 439 this.velocity += t 440 }, o.getFrictionFactor = function() { 441 return 1 - this.options[this.isFreeScrolling ? "freeScrollFriction" : "friction"] 442 }, o.getRestingPosition = function() { 443 return this.x + this.velocity / (1 - this.getFrictionFactor()) 444 }, o.applyDragForce = function() { 445 if (this.isPointerDown) { 446 var t = this.dragX - this.x, 447 e = t - this.velocity; 448 this.applyForce(e) 449 } 450 }, o.applySelectedAttraction = function() { 451 if (!this.isPointerDown && !this.isFreeScrolling && this.cells.length) { 452 var t = -1 * this.selectedSlide.target - this.x, 453 e = t * this.options.selectedAttraction; 454 this.applyForce(e) 455 } 456 }, o 457}), 458 function(t, e) { 459 if ("function" == typeof define && define.amd) define("flickity/js/flickity", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./cell", "./slide", "./animate"], function(i, n, o, s, r, a) { 460 return e(t, i, n, o, s, r, a) 461 }); 462 else if ("object" == typeof module && module.exports) module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./cell"), require("./sli
462de"), require("./animate")); 463 else { 464 var i = t.Flickity; 465 t.Flickity = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, i.Cell, i.Slide, i.animatePrototype) 466 } 467}(window, function(t, e, i, n, o, s, r) { 468 function a(t, e) { 469 for (t = n.makeArray(t); t.length;) e.appendChild(t.shift()) 470 } 471 472 function l(t, e) { 473 var i = n.getQueryElement(t); 474 if (!i) return void(d && d.error("Bad element for Flickity: " + (i || t))); 475 if (this.element = i, this.element.flickityGUID) { 476 var o = p[this.element.flickityGUID]; 477 return o.option(e), o 478 } 479 c && (this.$element = c(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e), this._create() 480 } 481 var c = t.jQuery, 482 u = t.getComputedStyle, 483 d = t.console, 484 h = 0, 485 p = {}; 486 l.defaults = { 487 accessibility: !0, 488 cellAlign: "center", 489 freeScrollFriction: .075, 490 friction: .28, 491 namespaceJQueryEvents: !0, 492 percentPosition: !0, 493 resize: !0, 494 selectedAttraction: .025, 495 setGallerySize: !0 496 }, l.createMethods = []; 497 var f = l.prototype;
498 n.extend(f, e.prototype), f._create = function() { 499 var e = this.guid = ++h; 500 this.element.flickityGUID = e, p[e] = this, this.selectedIndex = 0, this.restingFrames = 0, this.x = 0, this.velocity = 0, this.originSide = this.options.rightToLeft ? "right" : "left", this.viewport = document.createElement("div"), this.viewport.className = "flickity-viewport", this._createSlider(), (this.options.resize || this.options.watchCSS) && t.addEventListener("resize", this), l.createMethods.forEach(function(t) { 501 this[t]() 502 }, this), this.options.watchCSS ? this.watchCSS() : this.activate() 503 }, f.option = function(t) { 504 n.extend(this.options, t) 505 }, f.activate = function() { 506 if (!this.isActive) { 507 this.isActive = !0, this.element.classList.add("flickity-enabled"), this.options.rightToLeft && this.element.classList.add("flickity-rtl"), this.getSize(); 508 a(this._filterFindCellElements(this.element.children), this.slider), this.viewport.appendChild(this.slider), this.element.appendChild(this.viewport), this.reloadCells(), this.options.accessibility && (this.element.tabIndex = 0, this.element.addEventListener("keydown", this)), this.emitEvent("activate"); 509 var t, e = this.options.initialIndex; 510 t = this.isInitActivated ? this.selectedIndex : void 0 !== e && this.cells[e] ? e : 0, this.select(t, !1, !0), this.isInitActivated = !0 511 } 512 }, f._createSlider = function() { 513 var t = document.createElement("div"); 514 t.className = "flickity-slider", t.style[this.originSide] = 0, this.slider = t 515 }, f._filterFindCellElements = function(t) { 516 return n.filterFindElements(t, this.options.cellSelector) 517 }, f.reloadCells = function() { 518 this.cells = this._makeCells(this.slider.children), this.positionCells(), this._getWrapShiftCells(), this.setGallerySize() 519 }, f._makeCells = function(t) { 520 return this._filterFindCellElements(t).map(function(t) { 521 return new o(t, this) 522 }, this) 523 }, f.getLastCell = function() { 524 return this.cells[this.cells.length - 1] 525 }, f.getLastSlide = function() { 526 return this.slides[this.slides.length - 1] 527 }, f.positionCells = function() { 528 this._sizeCells(this.cells), this._positionCells(0) 529 }, f._positionCells = function(t) { 530 t = t || 0, this.maxCellHeight = t ? this.maxCellHeight || 0 : 0; 531 var e = 0; 532 if (t > 0) { 533 var i = this.cells[t - 1]; 534 e = i.x + i.size.outerWidth 535 } 536 for (var n = this.cells.length, o = t; o < n; o++) { 537 var s = this.cells[o]; 538 s.setPosition(e), e += s.size.outerWidth, this.maxCellHeight = Math.max(s.size.outerHeight, this.maxCellHeight) 539 } 540 this.slideableWidth = e, this.updateSlides(), this._containSlides(), this.slidesWidth = n ? this.getLastSlide().target - this.slides[0].target : 0 541 }, f._sizeCells = function(t) { 542 t.forEach(function(t) { 543 t.getSize() 544 }) 545 }, f.updateSlides = function() { 546 if (this.slides = [], this.cells.length) { 547 var t = new s(this); 548 this.slides.push(t); 549 var e = "left" == this.originSide, 550 i = e ? "marginRight" : "marginLeft", 551 n = this._getCanCellFit(); 552 this.cells.forEach(function(e, o) { 553 if (!t.cells.length) return void t.addCell(e); 554 var r = t.outerWidth - t.firstMargin + (e.size.outerWidth - e.size[i]); 555 n.call(this, o, r) ? t.addCell(e) : (t.updateTarget(), t = new s(this), this.slides.push(t), t.addCell(e)) 556 }, this), t.updateTarget(), this.updateSelectedSlide() 557 } 558 }, f._getCanCellFit = function() { 559 var t = this.options.groupCells; 560 if (!t) return function() { 561 return !1 562 }; 563 if ("number" == typeof t) { 564 var e = parseInt(t, 10); 565 return function(t) { 566 return t % e != 0 567 } 568 } 569 var i = "string" == typeof t && t.match(/^(\d+)%$/), 570 n = i ? parseInt(i[1], 10) / 100 : 1; 571 return function(t, e) { 572 return e <= (this.size.innerWidth + 1) * n 573 } 574 }, f._init = f.reposition = function() { 575 this.positionCells(), this.positionSliderAtSelected() 576 }, f.getSize = function() { 577 this.size = i(this.element), this.setCellAlign(), this.cursorPosition = this.size.innerWidth * this.cellAlign 578 }; 579 var g = { 580 center: { 581 left: .5, 582 right: .5 583 }, 584 left: { 585 left: 0, 586 right: 1 587 }, 588 right: { 589 right: 0, 590 left: 1 591 } 592 }; 593 return f.setCellAlign = function() { 594 var t = g[this.options.cellAlign]; 595 this.cellAlign = t ? t[this.originSide] : this.options.cellAlign 596 }, f.setGallerySize = function() { 597 if (this.options.setGallerySize) { 598 var t = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight; 599 this.viewport.style.height = t + "px" 600 } 601 }, f._getWrapShiftCells = function() { 602 if (this.options.wrapAround) { 603 this._unshiftCells(this.beforeShiftCells), this._unshiftCells(this.afterShiftCells); 604 var t = this.cursorPosition, 605 e = this.cells.length - 1; 606 this.beforeShiftCells = this._getGapCells(t, e, -1), t = this.size.innerWidth - this.cursorPosition, this.afterShiftCells = this._getGapCells(t, 0, 1) 607 } 608 }, f._getGapCells = function(t, e, i) { 609 for (var n = []; t > 0;) { 610 var o = this.cells[e]; 611 if (!o) break; 612 n.push(o), e += i, t -= o.size.outerWidth 613 } 614 return n 615 }, f._containSlides = function() { 616 if (this.options.contain && !this.options.wrapAround && this.cells.length) { 617 var t = this.options.rightToLeft, 618 e = t ? "marginRight" : "marginLeft", 619 i = t ? "marginLeft" : "marginRight", 620 n = this.slideableWidth - this.getLastCell().size[i], 621 o = n < this.size.innerWidth, 622 s = this.cursorPosition + this.cells[0].size[e], 623 r = n - this.size.innerWidth * (1 - this.cellAlign);
624 this.slides.forEach(function(t) { 625 o ? t.target = n * this.cellAlign : (t.target = Math.max(t.target, s), t.target = Math.min(t.target, r)) 626 }, this) 627 } 628 }, f.dispatchEvent = function(t, e, i) { 629 var n = e ? [e].concat(i) : i; 630 if (this.emitEvent(t, n), c && this.$element) { 631 t += this.options.namespaceJQueryEvents ? ".flickity" : ""; 632 var o = t; 633 if (e) { 634 var s = c.Event(e); 635 s.type = t, o = s 636 } 637 this.$element.trigger(o, i) 638 } 639 }, f.select = function(t, e, i) { 640 this.isActive && (t = parseInt(t, 10), this._wrapSelect(t), (this.options.wrapAround || e) && (t = n.modulo(t, this.slides.length)), this.slides[t] && (this.selectedIndex = t, this.updateSelectedSlide(), i ? this.positionSliderAtSelected() : this.startAnimation(), this.options.adaptiveHeight && this.setGallerySize(), this.dispatchEvent("select"), this.dispatchEvent("cellSelect"))) 641 }, f._wrapSelect = function(t) { 642 var e = this.slides.length; 643 if (!(this.options.wrapAround && e > 1)) return t; 644 var i = n.modulo(t, e), 645 o = Math.abs(i - this.selectedIndex), 646 s = Math.abs(i + e - this.selectedIndex), 647 r = Math.abs(i - e - this.selectedIndex); 648 !this.isDragSelect && s < o ? t += e : !this.isDragSelect && r < o && (t -= e), t < 0 ? this.x -= this.slideableWidth : t >= e && (this.x += this.slideableWidth) 649 }, f.previous = function(t, e) { 650 this.select(this.selectedIndex - 1, t, e) 651 }, f.next = function(t, e) { 652 this.select(this.selectedIndex + 1, t, e) 653 }, f.updateSelectedSlide = function() { 654 var t = this.slides[this.selectedIndex]; 655 t && (this.unselectSelectedSlide(), this.selectedSlide = t, t.select(), this.selectedCells = t.cells, this.selectedElements = t.getCellElements(), this.selectedCell = t.cells[0], this.selectedElement = this.selectedElements[0]) 656 }, f.unselectSelectedSlide = function() { 657 this.selectedSlide && this.selectedSlide.unselect() 658 }, f.selectCell = function(t, e, i) { 659 var n; 660 "number" == typeof t ? n = this.cells[t] : ("string" == typeof t && (t = this.element.querySelector(t)), n = this.getCell(t)); 661 for (var o = 0; n && o < this.slides.length; o++) { 662 if (-1 != this.slides[o].cells.indexOf(n)) return void this.select(o, e, i) 663 } 664 }, f.getCell = function(t) { 665 for (var e = 0; e < this.cells.length; e++) { 666 var i = this.cells[e]; 667 if (i.element == t) return i 668 } 669 }, f.getCells = function(t) { 670 t = n.makeArray(t); 671 var e = []; 672 return t.forEach(function(t) { 673 var i = this.getCell(t); 674 i && e.push(i) 675 }, this), e 676 }, f.getCellElements = function() { 677 return this.cells.map(function(t) { 678 return t.element 679 }) 680 }, f.getParentCell = function(t) { 681 var e = this.getCell(t); 682 return e || (t = n.getParent(t, ".flickity-slider > *"), this.getCell(t)) 683 }, f.getAdjacentCellElements = function(t, e) { 684 if (!t) return this.selectedSlide.getCellElements(); 685 e = void 0 === e ? this.selectedIndex : e; 686 var i = this.slides.length; 687 if (1 + 2 * t >= i) return this.getCellElements(); 688 for (var o = [], s = e - t; s <= e + t; s++) { 689 var r = this.options.wrapAround ? n.modulo(s, i) : s, 690 a = this.slides[r]; 691 a && (o = o.concat(a.getCellElements())) 692 } 693 return o 694 }, f.uiChange = function() { 695 this.emitEvent("uiChange") 696 }, f.childUIPointerDown = function(t) { 697 this.emitEvent("childUIPointerDown", [t]) 698 }, f.onresize = function() { 699 this.watchCSS(), this.resize() 700 }, n.debounceMethod(l, "onresize", 150), f.resize = function() { 701 if (this.isActive) {
702 this.getSize(), this.options.wrapAround && (this.x = n.modulo(this.x, this.slideableWidth)), this.positionCells(), this._getWrapShiftCells(), this.setGallerySize(), this.emitEvent("resize"); 703 var t = this.selectedElements && this.selectedElements[0]; 704 this.selectCell(t, !1, !0) 705 } 706 }, f.watchCSS = function() { 707 this.options.watchCSS && (-1 != u(this.element, ":after").content.indexOf("flickity") ? this.activate() : this.deactivate()) 708 }, f.onkeydown = function(t) { 709 if (this.options.accessibility && (!document.activeElement || document.activeElement == this.element)) 710 if (37 == t.keyCode) { 711 var e = this.options.rightToLeft ? "next" : "previous"; 712 this.uiChange(), this[e]() 713 } else if (39 == t.keyCode) { 714 var i = this.options.rightToLeft ? "previous" : "next"; 715 this.uiChange(), this[i]() 716 } 717 }, f.deactivate = function() { 718 this.isActive && (this.element.classList.remove("flickity-enabled"), this.element.classList.remove("flickity-rtl"), this.cells.forEach(function(t) { 719 t.destroy() 720 }), this.unselectSelectedSlide(), this.element.removeChild(this.viewport), a(this.slider.children, this.element), this.options.accessibility && (this.element.removeAttribute("tabIndex"), this.element.removeEventListener("keydown", this)), this.isActive = !1, this.emitEvent("deactivate")) 721 }, f.destroy = function() { 722 this.deactivate(), t.removeEventListener("resize", this), this.emitEvent("destroy"), c && this.$element && c.removeData(this.element, "flickity"), delete this.element.flickityGUID, delete p[this.guid] 723 }, n.extend(f, r), l.data = function(t) { 724 t = n.getQueryElement(t); 725 var e = t && t.flickityGUID; 726 return e && p[e] 727 }, n.htmlInit(l, "flickity"), c && c.bridget && c.bridget("flickity", l), l.Cell = o, l 728}), 729 function(t, e) { 730 "function" == typeof define && define.amd ? define("unipointer/unipointer", ["ev-emitter/ev-emitter"], function(i) { 731 return e(t, i) 732 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.Unipointer = e(t, t.EvEmitter) 733}(window, function(t, e) { 734 function i() {} 735 736 function n() {} 737 var o = n.prototype = Object.create(e.prototype); 738 o.bindStartEvent = function(t) { 739 this._bindStartEvent(t, !0) 740 }, o.unbindStartEvent = function(t) { 741 this._bindStartEvent(t, !1) 742 }, o._bindStartEvent = function(e, i) { 743 i = void 0 === i || !!i; 744 var n = i ? "addEventListener" : "removeEventListener"; 745 t.navigator.pointerEnabled ? e[n]("pointerdown", this) : t.navigator.msPointerEnabled ? e[n]("MSPointerDown", this) : (e[n]("mousedown", this), e[n]("touchstart", this)) 746 }, o.handleEvent = function(t) { 747 var e = "on" + t.type; 748 this[e] && this[e](t) 749 }, o.getTouch = function(t) { 750 for (var e = 0; e < t.length; e++) { 751 var i = t[e]; 752 if (i.identifier == this.pointerIdentifier) return i 753 } 754 }, o.onmousedown = function(t) { 755 var e = t.button; 756 e && 0 !== e && 1 !== e || this._pointerDown(t, t) 757 }, o.ontouchstart = function(t) { 758 this._pointerDown(t, t.changedTouches[0]) 759 }, o.onMSPointerDown = o.onpointerdown = function(t) { 760 this._pointerDown(t, t) 761 }, o._pointerDown = function(t, e) { 762 this.isPointerDown || (this.isPointerDown = !0, this.pointerIdentifier = void 0 !== e.pointerId ? e.pointerId : e.identifier, this.pointerDown(t, e)) 763 }, o.pointerDown = function(t, e) { 764 this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e]) 765 }; 766 var s = { 767 mousedown: ["mousemove", "mouseup"], 768 touchstart: ["touchmove", "touchend", "touchcancel"], 769 pointerdown: ["pointermove", "pointerup", "pointercancel"], 770 MSPointerDown: ["MSPointerMove", "MSPointerUp", "MSPointerCancel"] 771 }; 772 return o._bindPostStartEvents = function(e) { 773 if (e) { 774 var i = s[e.type]; 775 i.forEach(function(e) { 776 t.addEventListener(e, this) 777 }, this), this._boundPointerEvents = i 778 } 779 }, o._unbindPostStartEvents = function() { 780 this._boundPointerEvents && (this._boundPointerEvents.forEach(function(e) { 781 t.removeEventListener(e, this) 782 }, this), delete this._boundPointerEvents) 783 }, o.onmousemove = function(t) { 784 this._pointerMove(t, t) 785 }, o.onMSPointerMove = o.onpointermove = function(t) { 786 t.pointerId == this.pointerIdentifier && this._pointerMove(t, t) 787 }, o.ontouchmove = function(t) { 788 var e = this.getTouch(t.changedTouches); 789 e && this._pointerMove(t, e) 790 }, o._pointerMove = function(t, e) { 791 this.pointerMove(t, e) 792 }, o.pointerMove = function(t, e) { 793 this.emitEvent("pointerMove", [t, e]) 794 }, o.onmouseup = function(t) { 795 this._pointerUp(t, t) 796 }, o.onMSPointerUp = o.onpointerup = function(t) { 797 t.pointerId == this.pointerIdentifier && this._pointerUp(t, t) 798 }, o.ontouchend = function(t) { 799 var e = this.getTouch(t.changedTouches); 800 e && this._pointerUp(t, e) 801 }, o._pointerUp = function(t, e) { 802 this._pointerDone(), this.pointerUp(t, e) 803 }, o.pointerUp = function(t, e) { 804 this.emitEvent("pointerUp", [t, e]) 805 }, o._pointerDone = function() { 806 this.isPointerDown = !1, delete this.pointerIdentifier, this._unbindPostStartEvents(), this.pointerDone() 807 }, o.pointerDone = i, o.onMSPointerCancel = o.onpointercancel = function(t) { 808 t.pointerId == this.pointerIdentifier && this._pointerCancel(t, t) 809 }, o.ontouchcancel = function(t) { 810 var e = this.getTouch(t.changedTouches); 811 e && this._pointerCancel(t, e) 812 }, o._pointerCancel = function(t, e) { 813 this._pointerDone(), this.pointerCancel(t, e) 814 }, o.pointerCancel = function(t, e) { 815 this.emitEvent("pointerCancel", [t, e]) 816 }, n.getPointerPoint = function(t) { 817 return { 818 x: t.pageX, 819 y: t.pageY 820 } 821 }, n 822}), 823 function(t, e) { 824 "function" == typeof define && define.amd ? define("unidragger/unidragger", ["unipointer/unipointer"], function(i) { 825 return e(t, i) 826 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("unipointer")) : t.Unidragger = e(t, t.Unipointer) 827}(window, function(t, e) { 828 function i() {} 829 830 function n() {} 831 var o = n.prototype = Object.create(e.prototype); 832 o.bindHandles = function() { 833 this._bindHandles(!0) 834 }, o.unbindHandles = function() { 835 this._bindHandles(!1) 836 }; 837 var s = t.navigator; 838 return o._bindHandles = function(t) { 839 t = void 0 === t || !!t; 840 var e; 841 e = s.pointerEnabled ? function(e) { 842 e.style.touchAction = t ? "none" : "" 843 } : s.msPointerEnabled ? function(e) { 844 e.style.msTouchAction = t ? "none" : "" 845 } : i; 846 for (var n = t ? "addEventListener" : "removeEventListener", o = 0; o < this.handles.length; o++) { 847 var r = this.handles[o]; 848 this._bindStartEvent(r, t), e(r), r[n]("click", this) 849 } 850 }, o.pointerDown = function(t, e) { 851 if ("INPUT" == t.target.nodeName && "range" == t.target.type) return this.isPointerDown = !1, void delete this.pointerIdentifier; 852 this._dragPointerDown(t, e); 853 var i = document.activeElement; 854 i && i.blur && i.blur(), this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e]) 855 }, o._dragPointerDown = function(t, i) { 856 this.pointerDownPoint = e.getPointerPoint(i), this.canPreventDefaultOnPointerDown(t, i) && t.preventDefault() 857 }, o.canPreventDefaultOnPointerDown = function(t) { 858 return "SELECT" != t.target.nodeName 859 }, o.pointerMove = function(t, e) { 860 var i = this._dragPointerMove(t, e); 861 this.emitEvent("pointerMove", [t, e, i]), this._dragMove(t, e, i) 862 }, o._dragPointerMove = function(t, i) { 863 var n = e.getPointerPoint(i), 864 o = { 865 x: n.x - this.pointerDownPoint.x, 866 y: n.y - this.pointerDownPoint.y 867 }; 868 return !this.isDragging && this.hasDragStarted(o) && this._dragStart(t, i), o 869 }, o.hasDragStarted = function(t) { 870 return Math.abs(t.x) > 3 || Math.abs(t.y) > 3 871 }, o.pointerUp = function(t, e) { 872 this.emitEvent("pointerUp", [t, e]), this._dragPointerUp(t, e) 873 }, o._dragPointerUp = function(t, e) { 874 this.isDragging ? this._dragEnd(t, e) : this._staticClick(t, e) 875 }, o._dragStart = function(t, i) { 876 this.isDragging = !0, this.dragStartPoint = e.getPointerPoint(i), this.isPreventing
876Clicks = !0, this.dragStart(t, i) 877 }, o.dragStart = function(t, e) { 878 this.emitEvent("dragStart", [t, e]) 879 }, o._dragMove = function(t, e, i) { 880 this.isDragging && this.dragMove(t, e, i) 881 }, o.dragMove = function(t, e, i) { 882 t.preventDefault(), this.emitEvent("dragMove", [t, e, i]) 883 }, o._dragEnd = function(t, e) { 884 this.isDragging = !1, setTimeout(function() { 885 delete this.isPreventingClicks 886 }.bind(this)), this.dragEnd(t, e) 887 }, o.dragEnd = function(t, e) { 888 this.emitEvent("dragEnd", [t, e]) 889 }, o.onclick = function(t) { 890 this.isPreventingClicks && t.preventDefault() 891 }, o._staticClick = function(t, e) { 892 if (!this.isIgnoringMouseUp || "mouseup" != t.type) { 893 var i = t.target.nodeName; 894 "INPUT" != i && "TEXTAREA" != i || t.target.focus(), this.staticClick(t, e), "mouseup" != t.type && (this.isIgnoringMouseUp = !0, setTimeout(function() { 895 delete this.isIgnoringMouseUp 896 }.bind(this), 400)) 897 } 898 }, o.staticClick = function(t, e) { 899 this.emitEvent("staticClick", [t, e]) 900 }, n.getPointerPoint = e.getPointerPoint, n 901}), 902 function(t, e) { 903 "function" == typeof define && define.amd ? define("flickity/js/drag", ["./flickity", "unidragger/unidragger", "fizzy-ui-utils/utils"], function(i, n, o) { 904 return e(t, i, n, o) 905 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("unidragger"), require("fizzy-ui-utils")) : t.Flickity = e(t, t.Flickity, t.Unidragger, t.fizzyUIUtils) 906}(window, function(t, e, i, n) { 907 function o() { 908 return { 909 x: t.pageXOffset, 910 y: t.pageYOffset 911 } 912 } 913 n.extend(e.defaults, { 914 draggable: !0, 915 dragThreshold: 3 916 }), e.createMethods.push("_createDrag"); 917 var s = e.prototype; 918 n.extend(s, i.prototype); 919 var r = "createTouch" in document, 920 a = !1; 921 s._createDrag = function() { 922 this.on("activate", this.bindDrag), this.on("uiChange", this._uiChangeDrag), this.on("childUIPointerDown", this._childUIPointerDownDrag), this.on("deactivate", this.unbindDrag), r && !a && (t.addEventListener("touchmove", function() {}), a = !0) 923 }, s.bindDrag = function() { 924 this.options.draggable && !this.isDragBound && (this.element.classList.add("is-draggable"), this.handles = [this.viewport], this.bindHandles(), this.isDragBound = !0) 925 }, s.unbindDrag = function() { 926 this.isDragBound && (this.element.classList.remove("is-draggable"), this.unbindHandles(), delete this.isDragBound) 927 }, s._uiChangeDrag = function() { 928 delete this.isFreeScrolling 929 }, s._childUIPointerDownDrag = function(t) { 930 t.preventDefault(), this.pointerDownFocus(t) 931 }; 932 var l = { 933 TEXTAREA: !0, 934 INPUT: !0, 935 OPTION: !0 936 }, 937 c = { 938 radio: !0, 939 checkbox: !0, 940 button: !0, 941 submit: !0, 942 image: !0, 943 file: !0 944 }; 945 s.pointerDown = function(e, i) { 946 if (l[e.target.nodeName] && !c[e.target.type]) return this.isPointerDown = !1, void delete this.pointerIdentifier; 947 this._dragPointerDown(e, i); 948 var n = document.activeElement; 949 n && n.blur && n != this.element && n != document.body && n.blur(), this.pointerDownFocus(e), this.dragX = this.x, this.viewport.classList.add("is-pointer-down"), this._bindPostStartEvents(e), this.pointerDownScroll = o(), t.addEventListener("scroll", this), this.dispatchEvent("pointerDown", e, [i]) 950 }; 951 var u = { 952 touchstart: !0, 953 MSPointerDown: !0 954 }, 955 d = { 956 INPUT: !0, 957 SELECT: !0 958 }; 959 return s.pointerDownFocus = function(e) { 960 if (this.options.accessibility && !u[e.type] && !d[e.target.nodeName]) { 961 var i = t.pageYOffset; 962 this.element.focus(), t.pageYOffset != i && t.scrollTo(t.pageXOffset, i) 963 } 964 }, s.canPreventDefaultOnPointerDown = function(t) { 965 var e = "touchstart" == t.type, 966 i = t.target.nodeName; 967 return !e && "SELECT" != i 968 }, s.hasDragStarted = function(t) { 969 return Math.abs(t.x) > this.options.dragThreshold 970 }, s.pointerUp = function(t, e) { 971 delete this.isTouchScrolling, this.viewport.classList.remove("is-pointer-down"), this.dispatchEvent("pointerUp", t, [e]), this._dragPointerUp(t, e) 972 }, s.pointerDone = function() { 973 t.removeEventListener("scroll", this), delete this.pointerDownScroll 974 }, s.dragStart = function(e, i) { 975 this.dragStartPosition = this.x, this.startAnimation(), t.removeEventListener("scroll", this), this.dispatchEvent("dragStart", e, [i]) 976 }, s.pointerMove = function(t, e) { 977 var i = this._dragPointerMove(t, e); 978 this.dispatchEvent("pointerMove", t, [e, i]), this._dragMove(t, e, i) 979 }, s.dragMove = function(t, e, i) { 980 t.preventDefault(), this.previousDragX = this.dragX; 981 var n = this.options.rightToLeft ? -1 : 1, 982 o = this.dragStartPosition + i.x * n; 983 if (!this.options.wrapAround && this.slides.length) { 984 var s = Math.max(-this.slides[0].target, this.dragStartPosition); 985 o = o > s ? .5 * (o + s) : o; 986 var r = Math.min(-this.getLastSlide().target, this.dragStartPosition); 987 o = o < r ? .5 * (o + r) : o 988 } 989 this.dragX = o, this.dragMoveTime = new Date, this.dispatchEvent("dragMove", t, [e, i]) 990 }, 991 s.dragEnd = function(t, e) { 992 this.options.freeScroll && (this.isFreeScrolling = !0); 993 var i = this.dragEndRestingSelect(); 994 if (this.options.freeScroll && !this.options.wrapAround) { 995 var n = this.getRestingPosition(); 996 this.isFreeScrolling = -n > this.slides[0].target && -n < this.getLastSlide().target 997 } else this.options.freeScroll || i != this.selectedIndex || (i += this.dragEndBoostSelect()); 998 delete this.previousDragX, this.isDragSelect = this.options.wrapAround, this.select(i), delete this.isDragSelect, this.dispatchEvent("dragEnd", t, [e]) 999 }, s.dragEndRestingSelect = function() { 1000 var t = this.getRestingPosition(), 1001 e = Math.abs(this.getSlideDistance(-t, this.selectedIndex)), 1002 i = this._getClosestResting(t, e, 1), 1003 n = this._getClosestResting(t, e, -1); 1004 return i.distance < n.distance ? i.index : n.index 1005 }, s._getClosestResting = function(t, e, i) { 1006 for (var n = this.selectedIndex, o = 1 / 0, s = this.options.contain && !this.options.wrapAround ? function(t, e) { 1007 return t <= e 1008 } : function(t, e) { 1009 return t < e 1010 };
1010 s(e, o) && (n += i, o = e, null !== (e = this.getSlideDistance(-t, n)));) e = Math.abs(e); 1011 return { 1012 distance: o, 1013 index: n - i 1014 } 1015 }, s.getSlideDistance = function(t, e) { 1016 var i = this.slides.length, 1017 o = this.options.wrapAround && i > 1, 1018 s = o ? n.modulo(e, i) : e, 1019 r = this.slides[s]; 1020 if (!r) return null; 1021 var a = o ? this.slideableWidth * Math.floor(e / i) : 0; 1022 return t - (r.target + a) 1023 }, s.dragEndBoostSelect = function() { 1024 if (void 0 === this.previousDragX || !this.dragMoveTime || new Date - this.dragMoveTime > 100) return 0; 1025 var t = this.getSlideDistance(-this.dragX, this.selectedIndex), 1026 e = this.previousDragX - this.dragX; 1027 return t > 0 && e > 0 ? 1 : t < 0 && e < 0 ? -1 : 0 1028 }, s.staticClick = function(t, e) { 1029 var i = this.getParentCell(t.target), 1030 n = i && i.element, 1031 o = i && this.cells.indexOf(i); 1032 this.dispatchEvent("staticClick", t, [e, n, o]) 1033 }, s.onscroll = function() { 1034 var t = o(), 1035 e = this.pointerDownScroll.x - t.x, 1036 i = this.pointerDownScroll.y - t.y; 1037 (Math.abs(e) > 3 || Math.abs(i) > 3) && this._pointerDone() 1038 }, e 1039}), 1040 function(t, e) { 1041 "function" == typeof define && define.amd ? define("tap-listener/tap-listener", ["unipointer/unipointer"], function(i) { 1042 return e(t, i) 1043 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("unipointer")) : t.TapListener = e(t, t.Unipointer) 1044}(window, function(t, e) { 1045 function i(t) { 1046 this.bindTap(t) 1047 } 1048 var n = i.prototype = Object.create(e.prototype); 1049 return n.bindTap = function(t) { 1050 t && (this.unbindTap(), this.tapElement = t, this._bindStartEvent(t, !0)) 1051 }, n.unbindTap = function() { 1052 this.tapElement && (this._bindStartEvent(this.tapElement, !0), delete this.tapElement) 1053 }, n.pointerUp = function(i, n) { 1054 if (!this.isIgnoringMouseUp || "mouseup" != i.type) { 1055 var o = e.getPointerPoint(n), 1056 s = this.tapElement.getBoundingClientRect(), 1057 r = t.pageXOffset, 1058 a = t.pageYOffset; 1059 if (o.x >= s.left + r && o.x <= s.right + r && o.y >= s.top + a && o.y <= s.bottom + a && this.emitEvent("tap", [i, n]), "mouseup" != i.type) { 1060 this.isIgnoringMouseUp = !0; 1061 var l = this; 1062 setTimeout(function() { 1063 delete l.isIgnoringMouseUp 1064 }, 400) 1065 } 1066 } 1067 }, n.destroy = function() { 1068 this.pointerDone(), this.unbindTap() 1069 }, i 1070}), 1071 function(t, e) { 1072 "function" == typeof define && define.amd ? define("flickity/js/prev-next-button", ["./flickity", "tap-listener/tap-listener", "fizzy-ui-utils/utils"], function(i, n, o) { 1073 return e(t, i, n, o) 1074 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("tap-listener"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.TapListener, t.fizzyUIUtils) 1075}(window, function(t, e, i, n) { 1076 "use strict"; 1077 1078 function o(t, e) { 1079 this.direction = t, this.parent = e, this._create() 1080 } 1081 1082 function s(t) { 1083 return "string" == typeof t ? t : "M " + t.x0 + ",50 L " + t.x1 + "," + (t.y1 + 50) + " L " + t.x2 + "," + (t.y2 + 50) + " L " + t.x3 + ",50 L " + t.x2 + "," + (50 - t.y2) + " L " + t.x1 + "," + (50 - t.y1) + " Z" 1084 } 1085 var r = "http://www.w3.org/2000/svg"; 1086 o.prototype = new i, o.prototype._create = function() { 1087 this.isEnabled = !0, this.isPrevious = -1 == this.direction; 1088 var t = this.parent.options.rightToLeft ? 1 : -1; 1089 this.isLeft = this.direction == t; 1090 var e = this.element = document.createElement("button"); 1091 e.className = "flickity-prev-next-button", e.className += this.isPrevious ? " previous" : " next", e.setAttribute("type", "button"), this.disable(), e.setAttribute("aria-label", this.isPrevious ? "previous" : "next"); 1092 var i = this.createSVG(); 1093 e.appendChild(i), this.on("tap", this.onTap), this.parent.on("select", this.update.bind(this)), this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent)) 1094 }, o.prototype.activate = function() { 1095 this.bindTap(this.element), this.element.addEventListener("click", this), this.parent.element.appendChild(this.element) 1096 }, o.prototype.deactivate = function() { 1097 this.parent.element.removeChild(this.element), i.prototype.destroy.call(this), this.element.removeEventListener("click", this) 1098 }, o.prototype.createSVG = function() { 1099 var t = document.createElementNS(r, "svg"); 1100 t.setAttribute("viewBox", "0 0 100 100"); 1101 var e = document.createElementNS(r, "path"), 1102 i = s(this.parent.options.arrowShape); 1103 return e.setAttribute("d", i), e.setAttribute("class", "arrow"), this.isLeft || e.setAttribute("transform", "translate(100, 100) rotate(180) "), t.appendChild(e), t 1104 }, o.prototype.onTap = function() { 1105 if (this.isEnabled) { 1106 this.parent.uiChange(); 1107 var t = this.isPrevious ? "previous" : "next"; 1108 this.parent[t]() 1109 } 1110 }, o.prototype.handleEvent = n.handleEvent, o.prototype.onclick = function() { 1111 var t = document.activeElement; 1112 t && t == this.element && this.onTap() 1113 }, o.prototype.enable = function() { 1114 this.isEnabled || (this.element.disabled = !1, this.isEnabled = !0) 1115 }, o.prototype.disable = function() { 1116 this.isEnabled && (this.element.disabled = !0, this.isEnabled = !1) 1117 }, o.prototype.update = function() { 1118 var t = this.parent.slides; 1119 if (this.parent.options.wrapAround && t.length > 1) return void this.enable(); 1120 var e = t.length ? t.length - 1 : 0, 1121 i = this.isPrevious ? 0 : e; 1122 this[this.parent.selectedIndex == i ? "disable" : "enable"]() 1123 }, o.prototype.destroy = function() { 1124 this.deactivate() 1125 }, n.extend(e.defaults, { 1126 prevNextButtons: !0, 1127 arrowShape: { 1128 x0: 10, 1129 x1: 60, 1130 y1: 50, 1131 x2: 70, 1132 y2: 40, 1133 x3: 30 1134 } 1135 }), e.createMethods.push("_createPrevNextButtons"); 1136 var a = e.prototype; 1137 return a._createPrevNextButtons = function() { 1138 this.options.prevNextButtons && (this.prevButton = new o(-1, this), this.nextButton = new o(1, this), this.on("activate", this.activatePrevNextButtons)) 1139 }, a.activatePrevNextButtons = function() { 1140 this.prevButton.activate(), this.nextButton.activate(), this.on("deactivate", this.deactivatePrevNextButtons) 1141 }, a.deactivatePrevNextButtons = function() { 1142 this.prevButton.deactivate(), this.nextButton.deactivate(), this.off("deactivate", this.deactivatePrevNextButtons) 1143 }, e.PrevNextButton = o, e 1144}), 1145 function(t, e) { 1146 "function" == typeof define && define.amd ? define("flickity/js/page-dots", ["./flickity", "tap-listener/tap-listener", "fizzy-ui-utils/utils"], function(i, n, o) { 1147 return e(t, i, n, o) 1148 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("tap-listener"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.TapListener, t.fizzyUIUtils) 1149}(window, function(t, e, i, n) { 1150 function o(t) { 1151 this.parent = t, this._create() 1152 } 1153 o.prototype = new i, o.prototype._create = function() { 1154 this.holder = document.createElement("ol"), this.holder.className = "flickity-page-dots", this.dots = [], this.on("tap", this.onTap), this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent)) 1155 }, o.prototype.activate = function() { 1156 this.setDots(), this.bindTap(this.holder), this.parent.element.appendChild(this.holder) 1157 }, o.prototype.deactivate = function() { 1158 this.parent.element.removeChild(this.holder), i.prototype.destroy.call(this) 1159 }, o.prototype.setDots = function() { 1160 var t = this.parent.slides.length - this.dots.length; 1161 t > 0 ? this.addDots(t) : t < 0 && this.removeDots(-t) 1162 }, o.prototype.addDots = function(t) { 1163 for (var e = document.createDocumentFragment(), i = []; t;) { 1164 var n = document.createElement("li"); 1165 n.className = "dot", e.appendChild(n), i.push(n), t-- 1166 } 1167 this.holder.appendChild(e), this.dots = this.dots.concat(i) 1168 }, o.prototype.removeDots = function(t) { 1169 this.dots.splice(this.dots.length - t, t).forEach(function(t) { 1170 this.holder.removeChild(t) 1171 }, this) 1172 }, o.prototype.updateSelected = function() { 1173 this.selectedDot && (this.selectedDot.className = "dot"), this.dots.length && (this.selectedDot = this.dots[this.parent.selectedIndex], this.selectedDot.className = "dot is-selected") 1174 }, o.prototype.onTap = function(t) { 1175 var e = t.target; 1176 if ("LI" == e.nodeName) { 1177 this.parent.uiChange(); 1178 var i = this.dots.indexOf(e); 1179 this.parent.select(i) 1180 } 1181 }, o.prototype.destroy = function() { 1182 this.deactivate() 1183 }, e.PageDots = o, n.extend(e.defaults, { 1184 pageDots: !0 1185 }), e.createMethods.push("_createPageDots"); 1186 var s = e.prototype; 1187 return s._createPageDots = function() { 1188 this.options.pageDots && (this.pageDots = new o(this), this.on("activate", this.activatePageDots), this.on("select", this.updateSelectedPageDots), this.on("cellChange", this.updatePageDots), this.on("resize", this.updatePageDots), this.on("deactivate", this.deactivatePageDots)) 1189 }, s.activatePageDots = function() { 1190 this.pageDots.activate() 1191 }, s.updateSelectedPageDots = function() { 1192 this.pageDots.updateSelected() 1193 }, s.updatePageDots = function() { 1194 this.pageDots.setDots() 1195 }, s.deactivatePageDots = function() { 1196 this.pageDots.deactivate() 1197 }, e.PageDots = o, e 1198}), 1199 function(t, e) { 1200 "function" == typeof define && define.amd ? define("flickity/js/player", ["ev-emitter/ev-emitter", "fizzy-ui-utils/utils", "./flickity"], function(t, i, n) { 1201 return e(t, i, n) 1202 }) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("fizzy-ui-utils"), require("./flickity")) : e(t.EvEmitter, t.fizzyUIUtils, t.Flickity) 1203}(window, function(t, e, i) { 1204 function n(t) { 1205 this.parent = t, this.state = "stopped", s && (this.onVisibilityChange = function() { 1206 this.visibilityChange() 1207 }.bind(this), this.onVisibilityPlay = function() { 1208 this.visibilityPlay() 1209 }.bind(this)) 1210 } 1211 var o, s; 1212 "hidden" in document ? (o = "hidden", s = "visibilitychange") : "webkitHidden" in document && (o = "webkitHidden", s = "webkitvisibilitychange"), n.prototype = Object.create(t.prototype), n.prototype.play = function() { 1213 if ("playing" != this.state) { 1214 var t = document[o]; 1215 if (s && t) return void document.addEventListener(s, this.onVisibilityPlay); 1216 this.state = "playing", s && document.addEventListener(s, this.onVisibilityChange), this.tick() 1217 } 1218 }, n.prototype.tick = function() { 1219 if ("playing" == this.state) { 1220 var t = this.parent.options.autoPlay; 1221 t = "number" == typeof t ? t : 3e3; 1222 var e = this; 1223 this.clear(), this.timeout = setTimeout(function() { 1224 e.parent.next(!0), e.tick() 1225 }, t) 1226 } 1227 }, n.prototype.stop = function() { 1228 this.state = "stopped", this.clear(), s && document.removeEventListener(s, this.onVisibilityChange) 1229 }, n.prototype.clear = function() { 1230 clearTimeout(this.timeout) 1231 }, n.prototype.pause = function() { 1232 "playing" == this.state && (this.state = "paused", this.clear()) 1233 }, n.prototype.unpause = function() { 1234 "paused" == this.state && this.play() 1235 }, n.prototype.visibilityChange = function() { 1236 this[document[o] ? "pause" : "unpause"]() 1237 }, n.prototype.visibilityPlay = function() { 1238 this.play(), document.removeEventListener(s, this.onVisibilityPlay) 1239 }, e.extend(i.defaults, { 1240 pauseAutoPlayOnHover: !0 1241 }), i.createMethods.push("_createPlayer"); 1242 var r = i.prototype; 1243 return r._createPlayer = function() { 1244 this.player = new n(this), this.on("activate", this.activatePlayer), this.on("uiChange", this.stopPlayer), this.on("pointerDown", this.stopPlayer), this.on("deactivate", this.deactivatePlayer) 1245 }, r.activatePlayer = function() { 1246 this.options.autoPlay && (this.player.play(), this.element.addEventListener("mouseenter", this)) 1247 }, r.playPlayer = function() { 1248 this.player.play() 1249 }, r.stopPlayer = function() { 1250 this.player.stop() 1251 }, r.pausePlayer = function() { 1252 this.player.pause() 1253 }, r.unpausePlayer = function() { 1254 this.player.unpause() 1255 }, r.deactivatePlayer = function() { 1256 this.player.stop(), this.element.removeEventListener("mouseenter", this) 1257 }, r.onmouseenter = function() { 1258 this.options.pauseAutoPlayOnHover && (this.player.pause(), this.element.addEventListener("mouseleave", this)) 1259 }, r.onmouseleave = function() { 1260 this.player.unpause(), this.element.removeEventListener("mouseleave", this) 1261 }, i.Player = n, i 1262}), 1263 function(t, e) { 1264 "function" == typeof define && define.amd ? define("flickity/js/add-remove-cell", ["./flickity", "fizzy-ui-utils/utils"], function(i, n) { 1265 return e(t, i, n) 1266 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.fizzyUIUtils) 1267}(window, function(t, e, i) { 1268 function n(t) { 1269 var e = document.createDocumentFragment(); 1270 return t.forEach(function(t) { 1271 e.appendChild(t.element) 1272 }), e 1273 } 1274 var o = e.prototype; 1275 return o.insert = function(t, e) { 1276 var i = this._makeCells(t); 1277 if (i && i.length) { 1278 var o = this.cells.length; 1279 e = void 0 === e ? o : e; 1280 var s = n(i), 1281 r = e == o; 1282 if (r) this.slider.appendChild(s); 1283 else { 1284 var a = this.cells[e].element; 1285 this.slider.insertBefore(s, a) 1286 } 1287 if (0 === e) this.cells = i.concat(this.cells); 1288 else if (r) this.cells = this.cells.concat(i); 1289 else { 1290 var l = this.cells.splice(e, o - e);
1291 this.cells = this.cells.concat(i).concat(l) 1292 } 1293 this._sizeCells(i); 1294 var c = e > this.selectedIndex ? 0 : i.length; 1295 this._cellAddedRemoved(e, c) 1296 } 1297 }, o.append = function(t) { 1298 this.insert(t, this.cells.length) 1299 }, o.prepend = function(t) { 1300 this.insert(t, 0) 1301 }, o.remove = function(t) { 1302 var e, n, o = this.getCells(t), 1303 s = 0, 1304 r = o.length; 1305 for (e = 0; e < r; e++) { 1306 n = o[e]; 1307 s -= this.cells.indexOf(n) < this.selectedIndex ? 1 : 0 1308 } 1309 for (e = 0; e < r; e++) n = o[e], n.remove(), i.removeFrom(this.cells, n); 1310 o.length && this._cellAddedRemoved(0, s) 1311 }, o._cellAddedRemoved = function(t, e) { 1312 e = e || 0, this.selectedIndex += e, this.selectedIndex = Math.max(0, Math.min(this.slides.length - 1, this.selectedIndex)), this.cellChange(t, !0), this.emitEvent("cellAddedRemoved", [t, e]) 1313 }, o.cellSizeChange = function(t) { 1314 var e = this.getCell(t); 1315 if (e) { 1316 e.getSize(); 1317 var i = this.cells.indexOf(e); 1318 this.cellChange(i) 1319 } 1320 }, o.cellChange = function(t, e) { 1321 var i = this.slideableWidth; 1322 if (this._positionCells(t), this._getWrapShiftCells(), this.setGallerySize(), this.emitEvent("cellChange", [t]), this.options.freeScroll) { 1323 var n = i - this.slideableWidth; 1324 this.x += n * this.cellAlign, this.positionSlider() 1325 } else e && this.positionSliderAtSelected(), this.select(this.selectedIndex) 1326 }, e 1327}), 1328 function(t, e) { 1329 "function" == typeof define && define.amd ? define("flickity/js/lazyload", ["./flickity", "fizzy-ui-utils/utils"], function(i, n) { 1330 return e(t, i, n) 1331 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.fizzyUIUtils) 1332}(window, function(t, e, i) { 1333 "use strict"; 1334 1335 function n(t) { 1336 if ("IMG" == t.nodeName && t.getAttribute("data-flickity-lazyload")) return [t]; 1337 var e = t.querySelectorAll("img[data-flickity-lazyload]"); 1338 return i.makeArray(e) 1339 } 1340 1341 function o(t, e) { 1342 this.img = t, this.flickity = e, this.load() 1343 } 1344 e.createMethods.push("_createLazyload"); 1345 var s = e.prototype; 1346 return s._createLazyload = function() { 1347 this.on("select", this.lazyLoad) 1348 }, s.lazyLoad = function() { 1349 var t = this.options.lazyLoad; 1350 if (t) { 1351 var e = "number" == typeof t ? t : 0, 1352 i = this.getAdjacentCellElements(e), 1353 s = []; 1354 i.forEach(function(t) { 1355 var e = n(t); 1356 s = s.concat(e) 1357 }), s.forEach(function(t) { 1358 new o(t, this) 1359 }, this) 1360 } 1361 }, o.prototype.handleEvent = i.handleEvent, o.prototype.load = function() { 1362 this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.img.getAttribute("data-flickity-lazyload"), this.img.removeAttribute("data-flickity-lazyload") 1363 }, o.prototype.onload = function(t) { 1364 this.complete(t, "flickity-lazyloaded") 1365 }, o.prototype.onerror = function(t) { 1366 this.complete(t, "flickity-lazyerror") 1367 }, o.prototype.complete = function(t, e) { 1368 this.img.removeEventListener("load", this), this.img.removeEventListener("error", this); 1369 var i = this.flickity.getParentCell(this.img), 1370 n = i && i.element; 1371 this.flickity.cellSizeChange(n), this.img.classList.add(e), this.flickity.dispatchEvent("lazyLoad", t, n) 1372 }, e.LazyLoader = o, e 1373}), 1374 function(t, e) { 1375 "function" == typeof define && define.amd ? define("flickity/js/index", ["./flickity", "./drag", "./prev-next-button", "./page-dots", "./player", "./add-remove-cell", "./lazyload"], e) : "object" == typeof module && module.exports && (module.exports = e(require("./flickity"), require("./drag"), require("./prev-next-button"), require("./page-dots"), require("./player"), require("./add-remove-cell"), require("./lazyload"))) 1376}(window, function(t) { 1377 return t 1378}), 1379 function(t, e) { 1380 "function" == typeof define && define.amd ? define("flickity-as-nav-for/as-nav-for", ["flickity/js/index", "fizzy-ui-utils/utils"], e) : "object" == typeof module && module.exports ? module.exports = e(require("flickity"), require("fizzy-ui-utils")) : t.Flickity = e(t.Flickity, t.fizzyUIUtils) 1381}(window, function(t, e) { 1382 function i(t, e, i) { 1383 return (e - t) * i + t 1384 } 1385 t.createMethods.push("_createAsNavFor"); 1386 var n = t.prototype; 1387 return n._createAsNavFor = function() { 1388 this.on("activate", this.activateAsNavFor), this.on("deactivate", this.deactivateAsNavFor), this.on("destroy", this.destroyAsNavFor); 1389 var t = this.options.asNavFor; 1390 if (t) { 1391 var e = this; 1392 setTimeout(function() { 1393 e.setNavCompanion(t) 1394 }) 1395 } 1396 }, n.setNavCompanion = function(i) { 1397 i = e.getQueryElement(i); 1398 var n = t.data(i); 1399 if (n && n != this) { 1400 this.navCompanion = n; 1401 var o = this; 1402 this.onNavCompanionSelect = function() { 1403 o.navCompanionSelect() 1404 }, n.on("select", this.onNavCompanionSelect), this.on("staticClick", this.onNavStaticClick), this.navCompanionSelect(!0) 1405 } 1406 }, n.navCompanionSelect = function(t) { 1407 if (this.navCompanion) { 1408 var e = this.navCompanion.selectedCells[0], 1409 n = this.navCompanion.cells.indexOf(e), 1410 o = n + this.navCompanion.selectedCells.length - 1, 1411 s = Math.floor(i(n, o, this.navCompanion.cellAlign)); 1412 if (this.selectCell(s, !1, t), this.removeNavSelectedElements(), !(s >= this.cells.length)) { 1413 var r = this.cells.slice(n, o + 1); 1414 this.navSelectedElements = r.map(function(t) { 1415 return t.element 1416 }), this.changeNavSelectedClass("add") 1417 } 1418 } 1419 }, n.changeNavSelectedClass = function(t) {
1420 this.navSelectedElements.forEach(function(e) { 1421 e.classList[t]("is-nav-selected") 1422 }) 1423 }, n.activateAsNavFor = function() { 1424 this.navCompanionSelect(!0) 1425 }, n.removeNavSelectedElements = function() { 1426 this.navSelectedElements && (this.changeNavSelectedClass("remove"), delete this.navSelectedElements) 1427 }, n.onNavStaticClick = function(t, e, i, n) { 1428 "number" == typeof n && this.navCompanion.selectCell(n) 1429 }, n.deactivateAsNavFor = function() { 1430 this.removeNavSelectedElements() 1431 }, n.destroyAsNavFor = function() { 1432 this.navCompanion && (this.navCompanion.off("select", this.onNavCompanionSelect), this.off("staticClick", this.onNavStaticClick), delete this.navCompanion) 1433 }, t 1434}), 1435 function(t, e) { 1436 "use strict"; 1437 "function" == typeof define && define.amd ? define("imagesloaded/imagesloaded", ["ev-emitter/ev-emitter"], function(i) { 1438 return e(t, i) 1439 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.imagesLoaded = e(t, t.EvEmitter) 1440}(window, function(t, e) { 1441 function i(t, e) { 1442 for (var i in e) t[i] = e[i]; 1443 return t 1444 } 1445 1446 function n(t) { 1447 var e = []; 1448 if (Array.isArray(t)) e = t; 1449 else if ("number" == typeof t.length) 1450 for (var i = 0; i < t.length; i++) e.push(t[i]); 1451 else e.push(t); 1452 return e 1453 } 1454 1455 function o(t, e, s) { 1456 return this instanceof o ? ("string" == typeof t && (t = document.querySelectorAll(t)), this.elements = n(t), this.options = i({}, this.options), "function" == typeof e ? s = e : i(this.options, e), s && this.on("always", s), this.getImages(), a && (this.jqDeferred = new a.Deferred), void setTimeout(function() { 1457 this.check() 1458 }.bind(this))) : new o(t, e, s) 1459 } 1460 1461 function s(t) { 1462 this.img = t 1463 } 1464 1465 function r(t, e) { 1466 this.url = t, this.element = e, this.img = new Image 1467 } 1468 var a = t.jQuery, 1469 l = t.console; 1470 o.prototype = Object.create(e.prototype), o.prototype.options = {}, o.prototype.getImages = function() { 1471 this.images = [], this.elements.forEach(this.addElementImages, this) 1472 }, o.prototype.addElementImages = function(t) { 1473 "IMG" == t.nodeName && this.addImage(t), !0 === this.options.background && this.addElementBackgroundImages(t); 1474 var e = t.nodeType; 1475 if (e && c[e]) { 1476 for (var i = t.querySelectorAll("img"), n = 0; n < i.length; n++) { 1477 var o = i[n]; 1478 this.addImage(o) 1479 } 1480 if ("string" == typeof this.options.background) { 1481 var s = t.querySelectorAll(this.options.background); 1482 for (n = 0; n < s.length; n++) { 1483 var r = s[n]; 1484 this.addElementBackgroundImages(r) 1485 } 1486 } 1487 } 1488 }; 1489 var c = { 1490 1: !0, 1491 9: !0, 1492 11: !0 1493 }; 1494 return o.prototype.addElementBackgroundImages = function(t) { 1495 var e = getComputedStyle(t); 1496 if (e) 1497 for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(e.backgroundImage); null !== n;) { 1498 var o = n && n[2]; 1499 o && this.addBackground(o, t), n = i.exec(e.backgroundImage) 1500 } 1501 }, o.prototype.addImage = function(t) { 1502 var e = new s(t); 1503 this.images.push(e) 1504 }, o.prototype.addBackground = function(t, e) { 1505 var i = new r(t, e); 1506 this.images.push(i) 1507 }, o.prototype.check = function() { 1508 function t(t, i, n) { 1509 setTimeout(function() { 1510 e.progress(t, i, n) 1511 }) 1512 } 1513 var e = this; 1514 return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function(e) { 1515 e.once("progress", t), e.check() 1516 }) : void this.complete() 1517 }, o.prototype.progress = function(t, e, i) { 1518 this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, this.emitEvent("progress", [this, t, e]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), this.progressedCount == this.images.length && this.complete(), this.options.debug && l && l.log("progress: " + i, t, e) 1519 }, o.prototype.complete = function() { 1520 var t = this.hasAnyBroken ? "fail" : "done"; 1521 if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) { 1522 var e = this.hasAnyBroken ? "reject" : "resolve"; 1523 this.jqDeferred[e](this) 1524 } 1525 }
1525, s.prototype = Object.create(e.prototype), s.prototype.check = function() { 1526 return this.getIsImageComplete() ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), void(this.proxyImage.src = this.img.src)) 1527 }, s.prototype.getIsImageComplete = function() { 1528 return this.img.complete && void 0 !== this.img.naturalWidth 1529 }, s.prototype.confirm = function(t, e) { 1530 this.isLoaded = t, this.emitEvent("progress", [this, this.img, e]) 1531 }, s.prototype.handleEvent = function(t) { 1532 var e = "on" + t.type; 1533 this[e] && this[e](t) 1534 }, s.prototype.onload = function() { 1535 this.confirm(!0, "onload"), this.unbindEvents() 1536 }, s.prototype.onerror = function() { 1537 this.confirm(!1, "onerror"), this.unbindEvents() 1538 }, s.prototype.unbindEvents = function() { 1539 this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) 1540 }, r.prototype = Object.create(s.prototype), r.prototype.check = function() { 1541 this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url, this.getIsImageComplete() && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents()) 1542 }, r.prototype.unbindEvents = function() { 1543 this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) 1544 }, r.prototype.confirm = function(t, e) { 1545 this.isLoaded = t, this.emitEvent("progress", [this, this.element, e]) 1546 }, o.makeJQueryPlugin = function(e) { 1547 (e = e || t.jQuery) && (a = e, a.fn.imagesLoaded = function(t, e) { 1548 return new o(this, t, e).jqDeferred.promise(a(this)) 1549 }) 1550 }, o.makeJQueryPlugin(), o 1551}), 1552 function(t, e) { 1553 "function" == typeof define && define.amd ? define(["flickity/js/index", "imagesloaded/imagesloaded"], function(i, n) { 1554 return e(t, i, n) 1555 }) : "object" == typeof module && module.exports ? module.exports = e(t, require("flickity"), require("imagesloaded")) : t.Flickity = e(t, t.Flickity, t.imagesLoaded) 1556}(window, function(t, e, i) { 1557 "use strict"; 1558 e.createMethods.push("_createImagesLoaded"); 1559 var n = e.prototype; 1560 return n._createImagesLoaded = function() { 1561 this.on("activate", this.imagesLoaded) 1562 }, n.imagesLoaded = function() { 1563 function t(t, i) { 1564 var n = e.getParentCell(i.img); 1565 e.cellSizeChange(n && n.element), e.options.freeScroll || e.positionSliderAtSelected() 1566 } 1567 if (this.options.imagesLoaded) { 1568 var e = this; 1569 i(this.slider).on("progress", t) 1570 } 1571 }, e 1572}), 1573 function() { 1574 var t; 1575 t = function() { 1576 function t(t, e) { 1577 var i, n; 1578 if (this.options = { 1579 target: "instafeed", 1580 get: "popular", 1581 resolution: "thumbnail", 1582 sortBy: "none", 1583 links: !0, 1584 mock: !1, 1585 useHttp: !1 1586 }, "object" == typeof t) 1587 for (i in t) n = t[i], this.options[i] = n; 1588 this.context = null != e ? e : this, this.unique = this._genKey() 1589 } 1590 return t.prototype.hasNext = function() { 1591 return "string" == typeof this.context.nextUrl && this.context.nextUrl.length > 0 1592 }, t.prototype.next = function() { 1593 return !!this.hasNext() && this.run(this.context.nextUrl) 1594 }, t.prototype.run = function(e) { 1595 var i, n, o; 1596 if ("string" != typeof this.options.clientId && "string" != typeof this.options.accessToken) throw new Error("Missing clientId or accessToken."); 1597 if ("string" != typeof this.options.accessToken && "string" != typeof this.options.clientId) throw new Error("Missing clientId or accessToken."); 1598 return null != this.options.before && "function" == typeof this.options.before && this.options.before.call(this), "undefined" != typeof document && null !== document && (o = document.createElement("script"), o.id = "instafeed-fetcher", o.src = e || this._buildUrl(), i = document.getElementsByTagName("head"), i[0].appendChild(o), n = "instafeedCache" + this.unique, window[n] = new t(this.options, this), window[n].unique = this.unique), !0 1599 }, t.prototype.parse = function(t) { 1600 var e, i, n, o, s, r, a, l, c, u, d, h, p, f, g, m, v, y, b, w, S, C, x, I, E, k, T, _, P, M, A; 1601 if ("object" != typeof t) { 1602 if (null != this.options.error && "function" == typeof this.options.error) return this.options.error.call(this, "Invalid JSON data"), !1; 1603 throw new Error("Invalid JSON response") 1604 } 1605 if (200 !== t.meta.code) { 1606 if (null != this.options.error && "function" == typeof this.options.error) return this.options.error.call(this, t.meta.error_message), !1; 1607 throw new Error("Error from Instagram: " + t.meta.error_message) 1608 } 1609 if (0 === t.data.length) { 1610 if (null != this.options.error && "function" == typeof this.options.error) return this.options.error.call(this, "No images were returned from Instagram"), !1; 1611 throw new Error("No images were returned from Instagram") 1612 } 1613 if (null != this.options.success && "function" == typeof this.options.success && this.options.success.call(this, t), this.context.nextUrl = "", null != t.pagination && (this.context.nextUrl = t.pagination.next_url), "none" !== this.options.sortBy) switch (P = "random" === this.options.sortBy ? ["", "random"] : this.options.sortBy.split("-"), _ = "least" === P[0], P[1]) { 1614 case "random": 1615 t.data.sort(function() { 1616 return .5 - Math.random() 1617 }); 1618 break; 1619 case "recent": 1620 t.data = this._sortBy(t.data, "created_time", _); 1621 break; 1622 case "liked": 1623 t.data = this._sortBy(t.data, "likes.count", _); 1624 break; 1625 case "commented": 1626 t.data = this._sortBy(t.data, "comments.count", _); 1627 break; 1628 default: 1629 throw new Error("Invalid option for sortBy: '" + this.options.sortBy + "'.") 1630 } 1631 if ("undefined" != typeof document && null !== document && !1 === this.options.mock) { 1632 if (g = t.data, T = parseInt(this.options.limit, 10), null != this.options.limit && g.length > T && (g = g.slice(0, T)), r = document.createDocumentFragment(), null != this.options.filter && "function" == typeof this.options.filter && (g = this._filter(g, this.options.filter)), null != this.options.template && "string" == typeof this.options.template) { 1633 for (l = "", p = "", "", A = document.createElement("div"), u = 0, x = g.length; u < x; u++) { 1634 if (d = g[u], "object" != typeof(h = d.images[this.options.resolution])) throw s = "No image found for resolution: " + this.options.resolution + ".", new Error(s); 1635 b = h.width, v = h.height, y = "square", b > v && (y = "landscape"), b < v && (y = "portrait"), f = h.url, c = window.location.protocol.indexOf("http") >= 0, c && !this.options.useHttp && (f = f.replace(/https?:\/\//, "//")), p = this._makeTemplate(this.options.template, { 1636 model: d, 1637 id: d.id, 1638 link: d.link,
1639 type: d.type, 1640 image: f, 1641 width: b, 1642 height: v, 1643 orientation: y, 1644 caption: this._getObjectProperty(d, "caption.text"), 1645 likes: d.likes.count, 1646 comments: d.comments.count, 1647 location: this._getObjectProperty(d, "location.name") 1648 }), l += p 1649 } 1650 for (A.innerHTML = l, o = [], n = 0, i = A.childNodes.length; n < i;) o.push(A.childNodes[n]), n += 1; 1651 for (S = 0, I = o.length; S < I; S++) k = o[S], r.appendChild(k) 1652 } else 1653 for (C = 0, E = g.length; C < E; C++) { 1654 if (d = g[C], m = document.createElement("img"), h = d.images[this.options.resolution], "object" != typeof h) throw s = "No image found for resolution: " + this.options.resolution + ".", new Error(s); 1655 f = h.url, c = window.location.protocol.indexOf("http") >= 0, c && !this.options.useHttp && (f = f.replace(/https?:\/\//, "//")), m.src = f, !0 === this.options.links ? (e = document.createElement("a"), e.href = d.link, e.appendChild(m), r.appendChild(e)) : r.appendChild(m) 1656 } 1657 if ("string" == typeof(M = this.options.target) && (M = document.getElementById(M)), null == M) throw s = 'No element with id="' + this.options.target + '" on page.', new Error(s); 1658 M.appendChild(r), a = document.getElementsByTagName("head")[0], a.removeChild(document.getElementById("instafeed-fetcher")), w = "instafeedCache" + this.unique, window[w] = void 0; 1659 try { 1660 delete window[w] 1661 } catch (t) { 1662 t 1663 } 1664 } 1665 return null != this.options.after && "function" == typeof this.options.after && this.options.after.call(this), !0 1666 }, t.prototype._buildUrl = function() { 1667 var t, e, i; 1668 switch (t = "https://api.instagram.com/v1", this.options.get) { 1669 case "popular": 1670 e = "media/popular"; 1671 break; 1672 case "tagged": 1673 if (!this.options.tagName) throw new Error("No tag name specified. Use the 'tagName' option."); 1674 e = "tags/" + this.options.tagName + "/media/recent"; 1675 break; 1676 case "location": 1677 if (!this.options.locationId) throw new Error("No location specified. Use the 'locationId' option."); 1678 e = "locations/" + this.options.locationId + "/media/recent"; 1679 break; 1680 case "user": 1681 if (!this.options.userId) throw new Error("No user specified. Use the 'userId' option."); 1682 e = "users/" + this.options.userId + "/media/recent"; 1683 break; 1684 default: 1685 throw new Error("Invalid option for get: '" + this.options.get + "'.") 1686 } 1687 return i = t + "/" + e, null != this.options.accessToken ? i += "?access_token=" + this.options.accessToken : i += "?client_id=" + this.options.clientId, null != this.options.limit && (i += "&count=" + this.options.limit), i += "&callback=instafeedCache" + this.unique + ".parse" 1688 }, t.prototype._genKey = function() { 1689 var t; 1690 return "" + (t = function() { 1691 return (65536 * (1 + Math.random()) | 0).toString(16).substring(1) 1692 })() + t() + t() + t() 1693 }, t.prototype._makeTemplate = function(t, e) { 1694 var i, n, o, s, r; 1695 for (n = /(?:\{{2})([\w\[\]\.]+)(?:\}{2})/, i = t; n.test(i);) s = i.match(n)[1], r = null != (o = this._getObjectProperty(e, s)) ? o : "", i = i.replace(n, function() { 1696 return "" + r 1697 }); 1698 return i 1699 }, t.prototype._getObjectProperty = function(t, e) { 1700 var i, n; 1701 for (e = e.replace(/\[(\w+)\]/g, ".$1"), n = e.split("."); n.length;) { 1702 if (i = n.shift(), !(null != t && i in t)) return null; 1703 t = t[i] 1704 } 1705 return t 1706 }, t.prototype._sortBy = function(t, e, i) { 1707 var n; 1708 return n = function(t, n) { 1709 var o, s; 1710 return o = this._getObjectProperty(t, e), s = this._getObjectProperty(n, e), i ? o > s ? 1 : -1 : o < s ? 1 : -1 1711 }, t.sort(n.bind(this)), t 1712 }, t.prototype._filter = function(t, e) { 1713 var i, n, o, s, r; 1714 for (i = [], n = function(t) { 1715 if (e(t)) return i.push(t) 1716 }, o = 0, r = t.length; o < r; o++) s = t[o], n(s); 1717 return i 1718 }, t 1719 }(), 1720 function(t, e) { 1721 "function" == typeof define && define.amd ? define([], e) : "object" == typeof module && module.exports ? module.exports = e() : t.Instafeed = e() 1722 }(this, function() { 1723 return t 1724 }) 1725}.call(this), 1726 function(t) { 1727 "use strict"; 1728 t.ajaxChimp = { 1729 responses: { 1730 "We have sent you a confirmation email": 0, 1731 "Please enter a value": 1, 1732 "An email address must contain a single @": 2,
1733 "The domain portion of the email address is invalid (the portion after the @: )": 3, 1734 "The username portion of the email address is invalid (the portion before the @: )": 4, 1735 "This email address looks fake or invalid. Please enter a real email address": 5 1736 }, 1737 translations: { 1738 en: null 1739 }, 1740 init: function(e, i) { 1741 t(e).ajaxChimp(i) 1742 } 1743 }, t.fn.ajaxChimp = function(e) { 1744 return t(this).each(function(i, n) { 1745 var o = t(n), 1746 s = o.find("input[type=email]"), 1747 r = o.find("label[for=" + s.attr("id") + "]"), 1748 a = t.extend({ 1749 url: o.attr("action"), 1750 language: "en" 1751 }, e), 1752 l = a.url.replace("/post?", "/post-json?").concat("&c=?"); 1753 o.attr("novalidate", "true"), s.attr("name", "EMAIL"), o.submit(function() { 1754 function e(e) { 1755 if ("success" === e.result) i = "We have sent you a confirmation email", r.removeClass("error").addClass("valid"), s.removeClass("error").addClass("valid"); 1756 else { 1757 s.removeClass("valid").addClass("error"), r.removeClass("valid").addClass("error"); 1758 try { 1759 var n = e.msg.split(" - ", 2); 1760 if (void 0 === n[1]) i = e.msg; 1761 else { 1762 parseInt(n[0], 10).toString() === n[0] ? (n[0], i = n[1]) : (-1, i = e.msg) 1763 } 1764 } catch (t) { 1765 -1, i = e.msg 1766 } 1767 } 1768 "en" !== a.language && void 0 !== t.ajaxChimp.responses[i] && t.ajaxChimp.translations && t.ajaxChimp.translations[a.language] && t.ajaxChimp.translations[a.language][t.ajaxChimp.responses[i]] && (i = t.ajaxChimp.translations[a.language][t.ajaxChimp.responses[i]]), r.html(i), r.show(2e3), a.callback && a.callback(e) 1769 } 1770 var i, n = {}, 1771 c = o.serializeArray(); 1772 t.each(c, function(t, e) { 1773 n[e.name] = e.value 1774 }), t.ajax({ 1775 url: l, 1776 data: n, 1777 success: e, 1778 dataType: "jsonp", 1779 error: function(t, e) { 1780 console.log("mailchimp ajax submit error: " + e) 1781 } 1782 }); 1783 var u = "Submitting..."; 1784 return "en" !== a.language && t.ajaxChimp.translations && t.ajaxChimp.translations[a.language] && t.ajaxChimp.translations[a.language].submit && (u = t.ajaxChimp.translations[a.language].submit), r.html(u).show(2e3), !1 1785 }) 1786 }), this 1787 } 1788}(jQuery), 1789 function(t, e, i, n) { 1790 function o(e, i) { 1791 this.element = t(e), this.settings = t.extend({}, C, i), this._defaults = C, this._name = h, this.init() 1792 } 1793 1794 function s(e) { 1795 S && (e.element.addClass("navbar-hidden").animate({ 1796 top: -1 * parseInt(e.element.css("height"), 10) + e.settings.navbarOffset 1797 }, { 1798 queue: !1, 1799 duration: e.settings.animationDuration 1800 }), t(".dropdown.open .dropdown-toggle", e.element).dropdown("toggle"), S = !1, e.element.trigger("hide.autoHidingNavbar")) 1801 } 1802 1803 function r(t) { 1804 S || (t.element.removeClass("navbar-hidden").animate({ 1805 top: 0 1806 }, { 1807 queue: !1, 1808 duration: t.settings.animationDuration 1809 }), S = !0, t.element.trigger("show.autoHidingNavbar")) 1810 } 1811 1812 function a(t) { 1813 var e = p.scrollTop(), 1814 i = e - b; 1815 if (b = e, 0 > i) { 1816 if (S) return; 1817 (t.settings.showOnUpscroll || d >= e) && r(t) 1818 } else if (i > 0) { 1819 if (!S) return void(t.settings.showOnBottom && e + w === f.height() && r(t)); 1820 e >= d && s(t) 1821 } 1822 } 1823 1824 function l(t) { 1825 t.settings.disableAutohide || (y = (new Date).getTime(), a(t)) 1826 } 1827 1828 function c(t) { 1829 f.on("scroll." + h, function() { 1830 (new Date).getTime() - y > v ? l(t) : (clearTimeout(g), 1831 g = setTimeout(function() { 1832 l(t) 1833 }, v)) 1834 }), p.on("resize." + h, function() { 1835 clearTimeout(m), m = setTimeout(function() { 1836 w = p.height() 1837 }, v) 1838 }) 1839 } 1840 1841 function u() { 1842 f.off("." + h), p.off("." + h) 1843 } 1844 var d, h = "autoHidingNavbar", 1845 p = t(e), 1846 f = t(i), 1847 g = null, 1848 m = null, 1849 v = 70, 1850 y = 0, 1851 b = null, 1852 w = p.height(), 1853 S = !0, 1854 C = { 1855 disableAutohide: !1, 1856 showOnUpscroll: !0, 1857 showOnBottom: !0, 1858 hideOffset: "auto", 1859 animationDuration: 200, 1860 navbarOffset: 0 1861 }; 1862 o.prototype = { 1863 init: function() { 1864 return this.elements = { 1865 navbar: this.element 1866 }, this.setDisableAutohide(this.settings.disableAutohide), this.setShowOnUpscroll(this.settings.showOnUpscroll), this.setShowOnBottom(this.settings.showOnBottom), this.setHideOffset(this.settings.hideOffset), this.setAnimationDuration(this.settings.animationDuration), d = "auto" === this.settings.hideOffset ? parseInt(this.element.css("height"), 10) : this.settings.hideOffset, c(this), this.element 1867 }, 1868 setDisableAutohide: function(t) { 1869 return this.settings.disableAutohide = t, this.element 1870 }, 1871 setShowOnUpscroll: function(t) { 1872 return this.settings.showOnUpscroll = t, this.element 1873 }, 1874 setShowOnBottom: function(t) { 1875 return this.settings.showOnBottom = t, this.element 1876 }, 1877 setHideOffset: function(t) { 1878 return this.settings.hideOffset = t, this.element 1879 }, 1880 setAnimationDuration: function(t) { 1881 return this.settings.animationDuration = t, this.element 1882 }, 1883 show: function() { 1884 return r(this), this.element 1885 }, 1886 hide: function() { 1887 return s(this), this.element 1888 }, 1889 destroy: function() { 1890 return u(), r(this), t.data(this, "plugin_" + h, null), this.element 1891 } 1892 }, t.fn[h] = function(e) { 1893 var i = arguments; 1894 if (e === n || "object" == typeof e) return this.each(function() { 1895 t.data(this, "plugin_" + h) || t.data(this, "plugin_" + h, new o(this, e)) 1896 }); 1897 if ("string" == typeof e && "_" !== e[0] && "init" !== e) { 1898 var s; 1899 return this.each(function() { 1900 var n = t.data(this, "plugin_" + h); 1901 n instanceof o && "function" == typeof n[e] && (s = n[e].apply(n, Array.prototype.slice.call(i, 1))) 1902 }), s !== n ? s : this 1903 } 1904 } 1905}(jQuery, window, document), 1906 function(t, e) { 1907 e.cookie = function(e, i, n) { 1908 var o, s, r = ""; 1909 if (void 0 === i) return (s = t.cookie.match(new RegExp("(?:^|;)\\s?" + e.replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$1") + "=(.*?)(?:;|$)", "i"))) && unescape(s[1]); 1910 n || (n = {}), i || (i = "", n.expires = -1), n.expires && ("number" == typeof n.expires || n.expires.toUTCString) && (o = new Date, "number" == typeof n.expires ? o.setTime(+new Date + 864e5 * n.expires) : o = n.expires, r = "; expires=" + o.toUTCString()), t.cookie = [e, "=", encodeURIComponent(i), r, n.path ? "; path=" + n.path : "", n.domain ? "; domain=" + n.domain : "", n.secure ? "; secure" : ""].join("") 1911 } 1912}(document, jQuery), jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, { 1913 def: "easeOutQuad", 1914 swing: function(t, e, i, n, o) { 1915 return jQuery.easing[jQuery.easing.def](t, e, i, n, o) 1916 }, 1917 easeInQuad: function(t, e, i, n, o) { 1918 return n * (e /= o) * e + i 1919 }, 1920 easeOutQuad: function(t, e, i, n, o) { 1921 return -n * (e /= o) * (e - 2) + i 1922 }, 1923 easeInOutQuad: function(t, e, i, n, o) { 1924 return (e /= o / 2) < 1 ? n / 2 * e * e + i : -n / 2 * (--e * (e - 2) - 1) + i 1925 }, 1926 easeInCubic: function(t, e, i, n, o) { 1927 return n * (e /= o) * e * e + i 1928 }, 1929 easeOutCubic: function(t, e, i, n, o) { 1930 return n * ((e = e / o - 1) * e * e + 1) + i 1931 }, 1932 easeInOutCubic: function(t, e, i, n, o) { 1933 return (e /= o / 2) < 1 ? n / 2 * e * e * e + i : n / 2 * ((e -= 2) * e * e + 2) + i 1934 }, 1935 easeInQuart: function(t, e, i, n, o) { 1936 return n * (e /= o) * e * e * e + i 1937 }, 1938 easeOutQuart: function(t, e, i, n, o) { 1939 return -n * ((e = e / o - 1) * e * e * e - 1) + i 1940 }, 1941 easeInOutQuart: function(t, e, i, n, o) { 1942 return (e /= o / 2) < 1 ? n / 2 * e * e * e * e + i : -n / 2 * ((e -= 2) * e * e * e - 2) + i 1943 }, 1944 easeInQuint: function(t, e, i, n, o) { 1945 return n * (e /= o) * e * e * e * e + i 1946 }, 1947 easeOutQuint: function(t, e, i, n, o) { 1948 return n * ((e = e / o - 1) * e * e * e * e + 1) + i 1949 }, 1950 easeInOutQuint: function(t, e, i, n, o) { 1951 return (e /= o / 2) < 1 ? n / 2 * e * e * e * e * e + i : n / 2 * ((e -= 2) * e * e * e * e + 2) + i 1952 }, 1953 easeInSine: function(t, e, i, n, o) { 1954 return -n * Math.cos(e / o * (Math.PI / 2)) + n + i 1955 }, 1956 easeOutSine: function(t, e, i, n, o) { 1957 return n * Math.sin(e / o * (Math.PI / 2)) + i 1958 }, 1959 easeInOutSine: function(t, e, i, n, o) { 1960 return -n / 2 * (Math.cos(Math.PI * e / o) - 1) + i 1961 }, 1962 easeInExpo: function(t, e, i, n, o) { 1963 return 0 == e ? i : n * Math.pow(2, 10 * (e / o - 1)) + i 1964 }, 1965 easeOutExpo: function(t, e, i, n, o) { 1966 return e == o ? i + n : n * (1 - Math.pow(2, -10 * e / o)) + i 1967 }, 1968 easeInOutExpo: function(t, e, i, n, o) { 1969 return 0 == e ? i : e == o ? i + n : (e /= o / 2) < 1 ? n / 2 * Math.pow(2, 10 * (e - 1)) + i : n / 2 * (2 - Math.pow(2, -10 * --e)) + i 1970 }, 1971 easeInCirc: function(t, e, i, n, o) { 1972 return -n * (Math.sqrt(1 - (e /= o) * e) - 1) + i 1973 }, 1974 easeOutCirc: function(t, e, i, n, o) { 1975 return n * Math.sqrt(1 - (e = e / o - 1) * e) + i 1976 }, 1977 easeInOutCirc: function(t, e, i, n, o) { 1978 return (e /= o / 2) < 1 ? -n / 2 * (Math.sqrt(1 - e * e) - 1) + i : n / 2 * (Math.sqrt(1 - (e -= 2) * e) + 1) + i 1979 }, 1980 easeInElastic: function(t, e, i, n, o) { 1981 var s = 1.70158, 1982 r = 0, 1983 a = n; 1984 if (0 == e) return i; 1985 if (1 == (e /= o)) return i + n; 1986 if (r || (r = .3 * o), a < Math.abs(n)) { 1987 a = n; 1988 var s = r / 4 1989 } else var s = r / (2 * Math.PI) * Math.asin(n / a); 1990 return -a * Math.pow(2, 10 * (e -= 1)) * Math.sin((e * o - s) * (2 * Math.PI) / r) + i 1991 }, 1992 easeOutElastic: function(t, e, i, n, o) { 1993 var s = 1.70158, 1994 r = 0, 1995 a = n; 1996 if (0 == e) return i; 1997 if (1 == (e /= o)) return i + n; 1998 if (r || (r = .3 * o), a < Math.abs(n)) { 1999 a = n; 2000 var s = r / 4 2001 } else var s = r / (2 * Math.PI) * Math.asin(n / a); 2002 return a * Math.pow(2, -10 * e) * Math.sin((e * o - s) * (2 * Math.PI) / r) + n + i 2003 }, 2004 easeInOutElastic: function(t, e, i, n, o) { 2005 var s = 1.70158, 2006 r = 0, 2007 a = n; 2008 if (0 == e) return i; 2009 if (2 == (e /= o / 2)) return i + n; 2010 if (r || (r = o * (.3 * 1.5)), a < Math.abs(n)) { 2011 a = n; 2012 var s = r / 4 2013 } else var s = r / (2 * Math.PI) * Math.asin(n / a); 2014 return e < 1 ? a * Math.pow(2, 10 * (e -= 1)) * Math.sin((e * o - s) * (2 * Math.PI) / r) * -.5 + i : a * Math.pow(2, -10 * (e -= 1)) * Math.sin((e * o - s) * (2 * Math.PI) / r) * .5 + n + i 2015 }, 2016 easeInBack: function(t, e, i, n, o, s) { 2017 return void 0 == s && (s = 1.70158), n * (e /= o) * e * ((s + 1) * e - s) + i 2018 }, 2019 easeOutBack: function(t, e, i, n, o, s) { 2020 return void 0 == s && (s = 1.70158), n * ((e = e / o - 1) * e * ((s + 1) * e + s) + 1) + i 2021 }, 2022 easeInOutBack: function(t, e, i, n, o, s) { 2023 return void 0 == s && (s = 1.70158), (e /= o / 2) < 1 ? n / 2 * (e * e * ((1 + (s *= 1.525)) * e - s)) + i : n / 2 * ((e -= 2) * e * ((1 + (s *= 1.525)) * e + s) + 2) + i 2024 }, 2025 easeInBounce: function(t, e, i, n, o) { 2026 return n - jQuery.easing.easeOutBounce(t, o - e, 0, n, o) + i 2027 }, 2028 easeOutBounce: function(t, e, i, n, o) { 2029 return (e /= o) < 1 / 2.75 ? n * (7.5625 * e * e) + i : e < 2 / 2.75 ? n * (7.5625 * (e -= 1.5 / 2.75) * e + .75) + i : e < 2.5 / 2.75 ? n * (7.5625 * (e -= 2.25 / 2.75) * e + .9375) + i : n * (7.5625 * (e -= 2.625 / 2.75) * e + .984375) + i 2030 }, 2031 easeInOutBounce: function(t, e, i, n, o) { 2032 return e < o / 2 ? .5 * jQuery.easing.easeInBounce(t, 2 * e, 0, n, o) + i : .5 * jQuery.easing.easeOutBounce(t, 2 * e - o, 0, n, o) + .5 * n + i 2033 } 2034}), 2035 function(t) { 2036 t.fn.gMap = function(e, i) { 2037 switch (e) { 2038 case "addMarker": 2039 return t(this).trigger("gMap.addMarker", [i.latitude, i.longitude, i.content, i.icon, i.popup]); 2040 case "centerAt": 2041 return t(this).trigger("gMap.centerAt", [i.latitude, i.longitude, i.zoom]); 2042 case "clearMarkers": 2043 return t(this).trigger("gMap.clearMarkers") 2044 } 2045 var n = t.extend({}, t.fn.gMap.defaults, e); 2046 return this.each(function() { 2047 var e = new google.maps.Map(this); 2048 t(this).data("gMap.reference", e); 2049 var i = new google.maps.Geocoder; 2050 n.address ? i.geocode({ 2051 address: n.address 2052 }, function(t) { 2053 t && t.length && e.setCenter(t[0].geometry.location) 2054 }) : n.latitude && n.longitude ? e.setCenter(new google.maps.LatLng(n.latitude, n.longitude)) : t.isArray(n.markers) && n.markers.length > 0 ? n.markers[0].address ? i.geocode({ 2055 address: n.markers[0].address 2056 }, function(t) { 2057 t && t.length > 0 && e.setCenter(t[0].geometry.location) 2058 }) : e.setCenter(new google.maps.LatLng(n.markers[0].latitude, n.markers[0].longitude)) : e.setCenter(new google.maps.LatLng(34.885931, 9.84375)), e.setZoom(n.zoom), e.setMapTypeId(google.maps.MapTypeId[n.maptype]); 2059 var o = { 2060 scrollwheel: n.scrollwheel, 2061 disableDoubleClickZoom: !n.doubleclickzoom 2062 }; 2063 !1 === n.controls ? t.extend(o, { 2064 disableDefaultUI: !0 2065 }) : 0 !== n.controls.length && t.extend(o, n.controls, { 2066 disableDefaultUI: !0 2067 }), e.setOptions(o), e.setOptions({ 2068 styles: n.styles 2069 }); 2070 var s, r, a = new google.maps.Marker; 2071 s = new google.maps.MarkerImage(n.icon.image), s.size = new google.maps.Size(n.icon.iconsize[0], n.icon.iconsize[1]), s.anchor = new google.maps.Point(n.icon.iconanchor[0], n.icon.iconanchor[1]), a.setIcon(s), n.icon.shadow && (r = new google.maps.MarkerImage(n.icon.shadow), r.size = new google.maps.Size(n.icon.shadowsize[0], n.icon.shadowsize[1]), r.anchor = new google.maps.Point(n.icon.shadowanchor[0], n.icon.shadowanchor[1]), a.setShadow(r)), t(this).bind("gMap.centerAt", function(t, i, n, o) { 2072 o && e.setZoom(o), e.panTo(new google.maps.LatLng(parseFloat(i), parseFloat(n))) 2073 }); 2074 var l = []; 2075 t(this).bind("gMap.clearMarkers", function() { 2076 for (; l[0];) l.pop().setMap(null) 2077 }); 2078 var c; 2079 t(this).bind("gMap.addMarker", function(t, i, o, s, r, u) { 2080 var d, h, p = new google.maps.LatLng(parseFloat(i), parseFloat(o)), 2081 f = new google.maps.Marker({ 2082 position: p 2083 }); 2084 if (r ? (d = new google.maps.MarkerImage(r.image), d.size = new google.maps.Size(r.iconsize[0], r.iconsize[1]), d.anch
2084or = new google.maps.Point(r.iconanchor[0], r.iconanchor[1]), f.setIcon(d), r.shadow && (h = new google.maps.MarkerImage(r.shadow), h.size = new google.maps.Size(r.shadowsize[0], r.shadowsize[1]), h.anchor = new google.maps.Point(r.shadowanchor[0], r.shadowanchor[1]), a.setShadow(h))) : (f.setIcon(a.getIcon()), f.setShadow(a.getShadow())), s) { 2085 "_latlng" === s && (s = i + ", " + o); 2086 var g = new google.maps.InfoWindow({ 2087 content: n.html_prepend + s + n.html_append 2088 }); 2089 google.maps.event.addListener(f, "click", function() { 2090 c && c.close(), g.open(e, f), c = g 2091 }), u && google.maps.event.addListenerOnce(e, "tilesloaded", function() { 2092 g.open(e, f) 2093 }) 2094 } 2095 f.setMap(e), l.push(f) 2096 }); 2097 for (var u, d = this, h = 0; h < n.markers.length; h++) u = n.markers[h], u.address ? ("_address" === u.html && (u.html = u.address), i.geocode({ 2098 address: u.address 2099 }, function(e) { 2100 return function(i) { 2101 i && i.length > 0 && t(d).trigger("gMap.addMarker", [i[0].geometry.location.lat(), i[0].geometry.location.lng(), e.html, e.icon, e.popup]) 2102 } 2103 }(u))) : t(this).trigger("gMap.addMarker", [u.latitude, u.longitude, u.html, u.icon, u.popup]) 2104 }) 2105 }, t.fn.gMap.defaults = { 2106 address: "", 2107 latitude: 0, 2108 longitude: 0, 2109 zoom: 1, 2110 markers: [], 2111 controls: [], 2112 styles: [], 2113 scrollwheel: !1, 2114 doubleclickzoom: !0, 2115 maptype: "ROADMAP", 2116 html_prepend: '<div class="gmap_marker">', 2117 html_append: "</div>", 2118 icon: { 2119 image: "http://www.google.com/mapfiles/marker.png", 2120 shadow: "http://www.google.com/mapfiles/shadow50.png", 2121 iconsize: [20, 34], 2122 shadowsize: [37, 34], 2123 iconanchor: [9, 34], 2124 shadowanchor: [6, 34] 2125 } 2126 } 2127}(jQuery), "object" != typeof JSON && (JSON = {}), 2128 function() { 2129 "use strict"; 2130 2131 function f(t) { 2132 return t < 10 ? "0" + t : t 2133 } 2134 2135 function quote(t) { 2136 return escapable.lastIndex = 0, escapable.test(t) ? '"' + t.replace(escapable, function(t) { 2137 var e = meta[t]; 2138 return "string" == typeof e ? e : "\\u" + ("0000" + t.charCodeAt(0).toString(16)).slice(-4) 2139 }) + '"' : '"' + t + '"' 2140 } 2141 2142 function str(t, e) { 2143 var i, n, o, s, r, a = gap, 2144 l = e[t]; 2145 switch (l && "object" == typeof l && "function" == typeof l.toJSON && (l = l.toJSON(t)), "function" == typeof rep && (l = rep.call(e, t, l)), typeof l) { 2146 case "string": 2147 return quote(l); 2148 case "number": 2149 return isFinite(l) ? String(l) : "null"; 2150 case "boolean": 2151 case "null": 2152 return String(l); 2153 case "object": 2154 if (!l) return "null"; 2155 if (gap += indent, r = [], "[object Array]" === Object.prototype.toString.apply(l)) { 2156 for (s = l.length, i = 0; i < s; i += 1) r[i] = str(i, l) || "null"; 2157 return o = 0 === r.length ? "[]" : gap ? "[\n" + gap + r.join(",\n" + gap) + "\n" + a + "]" : "[" + r.join(",") + "]", gap = a, o 2158 } 2159 if (rep && "object" == typeof rep) 2160 for (s = rep.length, i = 0; i < s; i += 1) "string" == typeof rep[i] && (n = rep[i], (o = str(n, l)) && r.push(quote(n) + (gap ? ": " : ":") + o)); 2161 else 2162 for (n in l) Object.prototype.hasOwnProperty.call(l, n) && (o = str(n, l)) && r.push(quote(n) + (gap ? ": " : ":") + o); 2163 return o = 0 === r.length ? "{}" : gap ? "{\n" + gap + r.join(",\n" + gap) + "\n" + a + "}" : "{" + r.join(",") + "}", gap = a, o 2164 } 2165 } 2166 "function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function(t) { 2167 return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null 2168 }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function(t) { 2169 return this.valueOf() 2170 }); 2171 var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, 2172 escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, 2173 gap, indent, meta = { 2174 "\b": "\\b", 2175 "\t": "\\t", 2176 "\n": "\\n", 2177 "\f": "\\f", 2178 "\r": "\\r", 2179 '"': '\\"', 2180 "\\": "\\\\" 2181 }, 2182 rep; 2183 "function" != typeof JSON.stringify && (JSON.stringify = function(t, e, i) { 2184 var n; 2185 if (gap = "", indent = "", "number" == typeof i) 2186 for (n = 0; n < i; n += 1) indent += " ";
2187 else "string" == typeof i && (indent = i); 2188 if (rep = e, !e || "function" == typeof e || "object" == typeof e && "number" == typeof e.length) return str("", { 2189 "": t 2190 }); 2191 throw new Error("JSON.stringify") 2192 }), "function" != typeof JSON.parse && (JSON.parse = function(text, reviver) { 2193 function walk(t, e) { 2194 var i, n, o = t[e]; 2195 if (o && "object" == typeof o) 2196 for (i in o) Object.prototype.hasOwnProperty.call(o, i) && (n = walk(o, i), void 0 !== n ? o[i] = n : delete o[i]); 2197 return reviver.call(t, e, o) 2198 } 2199 var j; 2200 if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function(t) { 2201 return "\\u" + ("0000" + t.charCodeAt(0).toString(16)).slice(-4) 2202 })), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({ 2203 "": j 2204 }, "") : j; 2205 throw new SyntaxError("JSON.parse") 2206 }) 2207}(), 2208 function(t, e) { 2209 "use strict"; 2210 var i = t.History = t.History || {}, 2211 n = t.jQuery; 2212 if (void 0 !== i.Adapter) throw new Error("History.js Adapter has already been loaded..."); 2213 i.Adapter = { 2214 bind: function(t, e, i) { 2215 n(t).bind(e, i) 2216 }, 2217 trigger: function(t, e, i) { 2218 n(t).trigger(e, i) 2219 }, 2220 extractEventData: function(t, e, i) { 2221 return e && e.originalEvent && e.originalEvent[t] || i && i[t] || void 0 2222 }, 2223 onDomLoad: function(t) { 2224 n(t) 2225 } 2226 }, void 0 !== i.init && i.init() 2227}(window), 2228 function(t, e) { 2229 "use strict"; 2230 var i = t.document, 2231 n = t.setTimeout || n, 2232 o = t.clearTimeout || o, 2233 s = t.setInterval || s, 2234 r = t.History = t.History || {}; 2235 if (void 0 !== r.initHtml4) throw new Error("History.js HTML4 Support has already been loaded..."); 2236 r.initHtml4 = function() { 2237 if (void 0 !== r.initHtml4.initialized) return !1; 2238 r.initHtml4.initialized = !0, r.enabled = !0, r.savedHashes = [], r.isLastHash = function(t) { 2239 var e = r.getHashByIndex(); 2240 return t === e 2241 }, r.isHashEqual = function(t, e) { 2242 return t = encodeURIComponent(t).replace(/%25/g, "%"), e = encodeURIComponent(e).replace(/%25/g, "%"), t === e 2243 }, r.saveHash = function(t) { 2244 return !r.isLastHash(t) && (r.savedHashes.push(t), !0) 2245 }, r.getHashByIndex = function(t) { 2246 return void 0 === t ? r.savedHashes[r.savedHashes.length - 1] : t < 0 ? r.savedHashes[r.savedHashes.length + t] : r.savedHashes[t] 2247 }, r.discardedHashes = {}, r.discardedStates = {}, r.discardState = function(t, e, i) { 2248 var n, o = r.getHashByState(t); 2249 return n = { 2250 discardedState: t, 2251 backState: i, 2252 forwardState: e 2253 }, r.discardedStates[o] = n, !0 2254 }, r.discardHash = function(t, e, i) { 2255 var n = { 2256 discardedHash: t, 2257 backState: i, 2258 forwardState: e 2259 }; 2260 return r.discardedHashes[t] = n, !0 2261 }, r.discardedState = function(t) { 2262 var e = r.getHashByState(t); 2263 return r.discardedStates[e] || !1 2264 }, r.discardedHash = function(t) { 2265 return r.discardedHashes[t] || !1 2266 }, r.recycleState = function(t) { 2267 var e = r.getHashByState(t); 2268 return r.discardedState(t) && delete r.discardedStates[e], !0 2269 }, r.emulated.hashChange && (r.hashChangeInit = function() { 2270 r.checkerFunction = null; 2271 var e, n, o, a, l = "", 2272 c = Boolean(r.getHash()); 2273 return r.isInternetExplorer() ? (e = "historyjs-iframe", n = i.createElement("iframe"), n.setAttribute("id", e), n.setAttribute("src", "#"), n.style.display = "none", i.body.appendChild(n), n.contentWindow.document.open(), n.contentWindow.document.close(), o = "", a = !1, r.checkerFunction = function() { 2274 if (a) return !1; 2275 a = !0; 2276 var e = r.getHash(), 2277 i = r.getHash(n.contentWindow.document); 2278 return e !== l ? (l = e, i !== e && (o = i = e, n.contentWindow.document.open(), n.contentWindow.document.close(), n.contentWindow.document.location.hash = r.escapeHash(e)), r.Adapter.trigger(t, "hashchange")) : i !== o && (o = i, c && "" === i ? r.back() : r.setHash(i, !1)), a = !1, !0 2279 }) : r.checkerFunction = function() { 2280 var e = r.getHash() || ""; 2281 return e !== l && (l = e, r.Adapter.trigger(t, "hashchange")), !0 2282 }, r.intervalList.push(s(r.checkerFunction, r.options.hashChangeInterval)), !0 2283 }, r.Adapter.onDomLoad(r.hashChangeInit)), r.emulated.pushState && (r.onHashChange = function(e) { 2284 var i, n = e && e.newURL || r.getLocationHref(), 2285 o = r.getHashByUrl(n), 2286 s = null; 2287 return r.isLastHash(o) ? (r.busy(!1), !1) : (r.doubleCheckComplete(), r.saveHash(o), o && r.isTraditionalAnchor(o) ? (r.Adapter.trigger(t, "anchorchange"), r.busy(!1), !1) : (s = r.extractState(r.getFullUrl(o || r.getLocationHref()), !0), r.isLastSavedState(s) ? (r.busy(!1), !1) : (r.getHashByState(s), i = r.discardedState(s), i ? (r.getHashByIndex(-2) === r.getHashByState(i.forwardState) ? r.back(!1) : r.forward(!1), !1) : (r.pushState(s.data, s.title, encodeURI(s.url), !1), !0)))) 2288 }, r.Adapter.bind(t, "hashchange", r.onHashChange), r.pushState = function(e, i, n, o) { 2289 if (n = encodeURI(n).replace(/%25/g, "%"), r.getHashByUrl(n)) throw new Error("History.js does not support states with fragment-identifiers (hashes/anchors)."); 2290 if (!1 !== o && r.busy()) return r.pushQueue({ 2291 scope: r, 2292 callback: r.pushState, 2293 args: arguments, 2294 queue: o 2295 }), !1; 2296 r.busy(!0); 2297 var s = r.createStateObject(e, i, n), 2298 a = r.getHashByState(s), 2299 l = r.getState(!1), 2300 c = r.getHashByState(l), 2301 u = r.getHash(), 2302 d = r.expectedStateId == s.id; 2303 return r.storeState(s), r.expectedStateId = s.id, r.recycleState(s), r.setTitle(s), a === c ? (r.busy(!1), !1) : (r.saveState(s), d || r.Adapter.trigger(t, "statechange"), !r.isHashEqual(a, u) && !r.isHashEqual(a, r.getShortUrl(r.getLocationHref())) && r.setHash(a, !1), r.busy(!1), !0) 2304 }, r.replaceState = function(e, i, n, o) { 2305 if (n = encodeURI(n).replace(/%25/g, "%"), r.getHashByUrl(n)) throw new Error("History.js does not support states with fragment-identifiers (hashes/anchors)."); 2306 if (!1 !== o && r.busy()) return r.pushQueue({ 2307 scope: r, 2308 callback: r.replaceState, 2309 args: arguments, 2310 queue: o 2311 }), !1; 2312 r.busy(!0); 2313 var s = r.createStateObject(e, i, n), 2314 a = r.getHashByState(s), 2315 l = r.getState(!1), 2316 c = r.getHashByState(l), 2317 u = r.getStateByIndex(-2); 2318 return r.discardState(l, s, u), a === c ? (r.storeState(s), r.expectedStateId = s.id, r.recycleState(s), r.setTitle(s), r.saveState(s), r.Adapter.trigger(t, "statechange"), r.busy(!1)) : r.pushState(s.data, s.title, s.url, !1), !0 2319 }), r.emulated.pushState && r.getHash() && !r.emulated.hashChange && r.Adapter.onDomLoad(function() { 2320 r.Adapter.trigger(t, "hashchange") 2321 }) 2322 }, void 0 !== r.init && r.init() 2323}(window), 2324 function(t, e) { 2325 "use strict"; 2326 var i = t.console || e, 2327 n = t.document, 2328 o = t.navigator, 2329 s = !1, 2330 r = t.setTimeout, 2331 a = t.clearTimeout, 2332 l = t.setInterval, 2333 c = t.clearInterval, 2334 u = t.JSON, 2335 d = t.alert, 2336 h = t.History = t.History || {}, 2337 p = t.history; 2338 try { 2339 s = t.sessionStorage, s.setItem("TEST", "1"), s.removeItem("TEST") 2340 } catch (t) { 2341 s = !1 2342 } 2343 if (u.stringify = u.stringify || u.encode, u.parse = u.parse || u.decode, void 0 !== h.init) throw new Error("History.js Core has already been loaded..."); 2344 h.init = function(t) { 2345 return void 0 !== h.Adapter && (void 0 !== h.initCore && h.initCore(), void 0 !== h.initHtml4 && h.initHtml4(), !0) 2346 }, h.initCore = function(f) { 2347 if (void 0 !== h.initCore.initialized) return !1; 2348 if (h.initCore.initialized = !0, h.options = h.options || {}, h.options.hashChangeInterval = h.options.hashChangeInterval || 100, h.options.safariPollInterval = h.options.safariPollInterval || 500, h.options.doubleCheckInterval = h.options.doubleCheckInterval || 500, h.options.disableSuid = h.options.disableSuid || !1, h.options.storeInterval = h.options.storeInterval || 1e3, h.options.busyDelay = h.options.busyDelay || 250, h.options.debug = h.options.debug || !1, h.options.initialTitle = h.options.initialTitle || n.title, h.options.html4Mode = h.options.html4Mode || !1, h.options.delayInit = h.options.delayInit || !1, h.intervalList = [], h.clearAllIntervals = function() { 2349 var t, e = h.intervalList; 2350 if (void 0 !== e && null !== e) { 2351 for (t = 0; t < e.length; t++) c(e[t]); 2352 h.intervalList = null 2353 } 2354 }, h.debug = function() { 2355 (h.options.debug || !1) && h.log.apply(h, arguments) 2356 }, h.log = function() { 2357 var t, e, o, s, r, a = void 0 !== i && void 0 !== i.log && void 0 !== i.log.apply, 2358 l = n.getElementById("log"); 2359 for (a ? (s = Array.prototype.slice.call(arguments), t = s.shift(), void 0 !== i.debug ? i.debug.apply(i, [t, s]) : i.log.apply(i, [t, s])) : t = "\n" + arguments[0] + "\n", e = 1, o = arguments.length; e < o; ++e) { 2360 if ("object" == typeof(r = arguments[e]) && void 0 !== u) try { 2361 r = u.stringify(r) 2362 } catch (t) {} 2363 t += "\n" + r + "\n" 2364 } 2365 return l ? (l.value += t + "\n-----\n", l.scrollTop = l.scrollHeight - l.clientHeight) : a || d(t), !0 2366 }, h.getInternetExplorerMajorVersion = function() { 2367 return h.getInternetExplorerMajorVersion.cached = void 0 !== h.getInternetExplorerMajorVersion.cached ? h.getInternetExplorerMajorVersion.cached : function() { 2368 for (var t = 3, e = n.createElement("div"), i = e.getElementsByTagName("i"); 2369 (e.innerHTML = "\x3c!--[if gt IE " + ++t + "]><i></i><![endif]--\x3e") && i[0];); 2370 return t > 4 && t 2371 }() 2372 }, h.isInternetExplorer = function() { 2373 return h.isInternetExplorer.cached = void 0 !== h.isInternetExplorer.cached ? h.isInternetExplorer.cached : Boolean(h.getInternetExplorerMajorVersion()) 2374 }, h.options.html4Mode ? h.emulated = { 2375 pushState: !0, 2376 hashChange: !0 2377 } : h.emulated = { 2378 pushState: !Boolean(t.history && t.history.pushState && t.history.replaceState && !/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(o.userAgent) && !/AppleWeb
2378Kit\/5([0-2]|3[0-2])/i.test(o.userAgent)), 2379 hashChange: Boolean(!("onhashchange" in t || "onhashchange" in n) || h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8) 2380 }, h.enabled = !h.emulated.pushState, h.bugs = { 2381 setHash: Boolean(!h.emulated.pushState && "Apple Computer, Inc." === o.vendor && /AppleWebKit\/5([0-2]|3[0-3])/.test(o.userAgent)), 2382 safariPoll: Boolean(!h.emulated.pushState && "Apple Computer, Inc." === o.vendor && /AppleWebKit\/5([0-2]|3[0-3])/.test(o.userAgent)), 2383 ieDoubleCheck: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8), 2384 hashEscape: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 7) 2385 }, h.isEmptyObject = function(t) { 2386 for (var e in t) 2387 if (t.hasOwnProperty(e)) return !1; 2388 return !0 2389 }, h.cloneObject = function(t) { 2390 var e, i; 2391 return t ? (e = u.stringify(t), i = u.parse(e)) : i = {}, i 2392 }, h.getRootUrl = function() { 2393 var t = n.location.protocol + "//" + (n.location.hostname || n.location.host); 2394 return n.location.port && (t += ":" + n.location.port), t += "/" 2395 }, h.getBaseHref = function() { 2396 var t = n.getElementsByTagName("base"), 2397 e = null, 2398 i = ""; 2399 return 1 === t.length && (e = t[0], i = e.href.replace(/[^\/]+$/, "")), i = i.replace(/\/+$/, ""), i && (i += "/"), i 2400 }, h.getBaseUrl = function() { 2401 return h.getBaseHref() || h.getBasePageUrl() || h.getRootUrl() 2402 }, h.getPageUrl = function() { 2403 var t = h.getState(!1, !1), 2404 e = (t || {}).url || h.getLocationHref(); 2405 return e.replace(/\/+$/, "").replace(/[^\/]+$/, function(t, e, i) { 2406 return /\./.test(t) ? t : t + "/" 2407 }) 2408 }, h.getBasePageUrl = function() { 2409 return h.getLocationHref().replace(/[#\?].*/, "").replace(/[^\/]+$/, function(t, e, i) { 2410 return /[^\/]$/.test(t) ? "" : t 2411 }).replace(/\/+$/, "") + "/" 2412 }, h.getFullUrl = function(t, e) { 2413 var i = t, 2414 n = t.substring(0, 1); 2415 return e = void 0 === e || e, /[a-z]+\:\/\//.test(t) || (i = "/" === n ? h.getRootUrl() + t.replace(/^\/+/, "") : "#" === n ? h.getPageUrl().replace(/#.*/, "") + t : "?" === n ? h.getPageUrl().replace(/[\?#].*/, "") + t : e ? h.getBaseUrl() + t.replace(/^(\.\/)+/, "") : h.getBasePageUrl() + t.replace(/^(\.\/)+/, "")), i.replace(/\#$/, "") 2416 }, h.getShortUrl = function(t) { 2417 var e = t, 2418 i = h.getBaseUrl(), 2419 n = h.getRootUrl(); 2420 return h.emulated.pushState && (e = e.replace(i, "")), e = e.replace(n, "/"), h.isTraditionalAnchor(e) && (e = "./" + e), e = e.replace(/^(\.\/)+/g, "./").replace(/\#$/, "") 2421 }, h.getLocationHref = function(t) { 2422 return t = t || n, t.URL === t.location.href ? t.location.href : t.location.href === decodeURIComponent(t.URL) ? t.URL : t.location.hash && decodeURIComponent(t.location.href.replace(/^[^#]+/, "")) === t.location.hash ? t.location.href : -1 == t.URL.indexOf("#") && -1 != t.location.href.indexOf("#") ? t.location.href : t.URL || t.location.href 2423 }, h.store = {}, h.idToState = h.idToState || {}, h.stateToId = h.stateToId || {}, h.urlToId = h.urlToId || {}, h.storedStates = h.storedStates || [], h.savedStates = h.savedStates || [], h.normalizeStore = function() { 2424 h.store.idToState = h.store.idToState || {}, h.store.urlToId = h.store.urlToId || {}, h.store.stateToId = h.store.stateToId || {} 2425 }, h.getState = function(t, e) { 2426 void 0 === t && (t = !0), void 0 === e && (e = !0); 2427 var i = h.getLastSavedState(); 2428 return !i && e && (i = h.createStateObject()), t && (i = h.cloneObject(i), i.url = i.cleanUrl || i.url), i 2429 }, h.getIdByState = function(t) { 2430 var e, i = h.extractId(t.url); 2431 if (!i) 2432 if (e = h.getStateString(t), void 0 !== h.stateToId[e]) i = h.stateToId[e]; 2433 else if (void 0 !== h.store.stateToId[e]) i = h.store.stateToId[e]; 2434 else { 2435 for (; i = (new Date).getTime() + String(Math.random()).replace(/\D/g, ""), void 0 !== h.idToState[i] || void 0 !== h.store.idToState[i];); 2436 h.stateToId[e] = i, h.idToState[i] = t 2437 } 2438 return i 2439 }, h.normalizeState = function(t) { 2440 var e, i; 2441 return t && "object" == typeof t || (t = {}), void 0 !== t.normalized ? t : (t.data && "object" == typeof t.data || (t.data = {}), e = {}, e.normalized = !0, e.title = t.title || "", e.url = h.getFullUrl(t.url ? t.url : h.getLocationHref()), e.hash = h.getShortUrl(e.url), e.data = h.cloneObject(t.data), e.id = h.getIdByState(e), e.cleanUrl = e.url.replace(/\??\&_suid.*/, ""), e.url = e.cleanUrl, i = !h.isEmptyObject(e.data), (e.title || i) && !0 !== h.options.disableSuid && (e.hash = h.getShortUrl(e.url).replace(/\??\&_suid.*/, ""), /\?/.test(e.hash) || (e.hash += "?"), e.hash += "&_suid=" + e.id), e.hashedUrl = h.getFullUrl(e.hash), (h.emulated.pushState || h.bugs.safariPoll) && h.hasUrlDuplicate(e) && (e.url = e.hashedUrl), e) 2442 }, h.createStateObject = function(t, e, i) { 2443 var n = { 2444 data: t, 2445 title: e, 2446 url: i 2447 }; 2448 return n = h.normalizeState(n) 2449 }
2449, h.getStateById = function(t) { 2450 return t = String(t), h.idToState[t] || h.store.idToState[t] || e 2451 }, h.getStateString = function(t) { 2452 var e, i; 2453 return e = h.normalizeState(t), i = { 2454 data: e.data, 2455 title: t.title, 2456 url: t.url 2457 }, u.stringify(i) 2458 }, h.getStateId = function(t) { 2459 var e; 2460 return e = h.normalizeState(t), e.id 2461 }, h.getHashByState = function(t) { 2462 var e; 2463 return e = h.normalizeState(t), e.hash 2464 }, h.extractId = function(t) { 2465 var e, i; 2466 return i = -1 != t.indexOf("#") ? t.split("#")[0] : t, e = /(.*)\&_suid=([0-9]+)$/.exec(i), e ? e[1] || t : t, (e ? String(e[2] || "") : "") || !1 2467 }, h.isTraditionalAnchor = function(t) { 2468 return !/[\/\?\.]/.test(t) 2469 }, h.extractState = function(t, e) { 2470 var i, n, o = null; 2471 return e = e || !1, i = h.extractId(t), i && (o = h.getStateById(i)), o || (n = h.getFullUrl(t), i = h.getIdByUrl(n) || !1, i && (o = h.getStateById(i)), !o && e && !h.isTraditionalAnchor(t) && (o = h.createStateObject(null, null, n))), o 2472 }, h.getIdByUrl = function(t) { 2473 return h.urlToId[t] || h.store.urlToId[t] || e 2474 }, h.getLastSavedState = function() { 2475 return h.savedStates[h.savedStates.length - 1] || e 2476 }, h.getLastStoredState = function() { 2477 return h.storedStates[h.storedStates.length - 1] || e 2478 }, h.hasUrlDuplicate = function(t) { 2479 var e; 2480 return e = h.extractState(t.url), e && e.id !== t.id 2481 }, h.storeState = function(t) { 2482 return h.urlToId[t.url] = t.id, h.storedStates.push(h.cloneObject(t)), t 2483 }, h.isLastSavedState = function(t) { 2484 var e, i, n, o = !1; 2485 return h.savedStates.length && (e = t.id, i = h.getLastSavedState(), n = i.id, o = e === n), o 2486 }, h.saveState = function(t) { 2487 return !h.isLastSavedState(t) && (h.savedStates.push(h.cloneObject(t)), !0) 2488 }, h.getStateByIndex = function(t) { 2489 return void 0 === t ? h.savedStates[h.savedStates.length - 1] : t < 0 ? h.savedStates[h.savedStates.length + t] : h.savedStates[t] 2490 }, h.getCurrentIndex = function() { 2491 return h.savedStates.length < 1 ? 0 : h.savedStates.length - 1 2492 }, h.getHash = function(t) { 2493 var e = h.getLocationHref(t); 2494 return h.getHashByUrl(e) 2495 }, h.unescapeHash = function(t) { 2496 var e = h.normalizeHash(t); 2497 return e = decodeURIComponent(e) 2498 }, h.normalizeHash = function(t) { 2499 return t.replace(/[^#]*#/, "").replace(/#.*/, "") 2500 }, h.setHash = function(t, e) { 2501 var i, o; 2502 return !1 !== e && h.busy() ? (h.pushQueue({ 2503 scope: h, 2504 callback: h.setHash, 2505 args: arguments, 2506 queue: e 2507 }), !1) : (h.busy(!0), i = h.extractState(t, !0), i && !h.emulated.pushState ? h.pushState(i.data, i.title, i.url, !1) : h.getHash() !== t && (h.bugs.setHash ? (o = h.getPageUrl(), h.pushState(null, null, o + "#" + t, !1)) : n.location.hash = t), h) 2508 }, h.escapeHash = function(e) { 2509 var i = h.normalizeHash(e); 2510 return i = t.encodeURIComponent(i), h.bugs.hashEscape || (i = i.replace(/\%21/g, "!").replace(/\%26/g, "&").replace(/\%3D/g, "=").replace(/\%3F/g, "?")), i 2511 }, h.getHashByUrl = function(t) { 2512 var e = String(t).replace(/([^#]*)#?([^#]*)#?(.*)/, "$2"); 2513 return e = h.unescapeHash(e) 2514 }, h.setTitle = function(t) { 2515 var e, i = t.title; 2516 i || (e = h.getStateByIndex(0)) && e.url === t.url && (i = e.title || h.options.initialTitle);
2517 try { 2518 n.getElementsByTagName("title")[0].innerHTML = i.replace("<", "<").replace(">", ">").replace(" & ", " & ") 2519 } catch (t) {} 2520 return n.title = i, h 2521 }, h.queues = [], h.busy = function(t) { 2522 if (void 0 !== t ? h.busy.flag = t : void 0 === h.busy.flag && (h.busy.flag = !1), !h.busy.flag) { 2523 a(h.busy.timeout); 2524 var e = function() { 2525 var t, i, n; 2526 if (!h.busy.flag) 2527 for (t = h.queues.length - 1; t >= 0; --t) i = h.queues[t], 0 !== i.length && (n = i.shift(), h.fireQueueItem(n), h.busy.timeout = r(e, h.options.busyDelay)) 2528 }; 2529 h.busy.timeout = r(e, h.options.busyDelay) 2530 } 2531 return h.busy.flag 2532 }, h.busy.flag = !1, h.fireQueueItem = function(t) { 2533 return t.callback.apply(t.scope || h, t.args || []) 2534 }, h.pushQueue = function(t) { 2535 return h.queues[t.queue || 0] = h.queues[t.queue || 0] || [], h.queues[t.queue || 0].push(t), h 2536 }, h.queue = function(t, e) { 2537 return "function" == typeof t && (t = { 2538 callback: t 2539 }), void 0 !== e && (t.queue = e), h.busy() ? h.pushQueue(t) : h.fireQueueItem(t), h 2540 }, h.clearQueue = function() { 2541 return h.busy.flag = !1, h.queues = [], h 2542 }, h.stateChanged = !1, h.doubleChecker = !1, h.doubleCheckComplete = function() { 2543 return h.stateChanged = !0, h.doubleCheckClear(), h 2544 }, h.doubleCheckClear = function() { 2545 return h.doubleChecker && (a(h.doubleChecker), h.doubleChecker = !1), h 2546 }, h.doubleCheck = function(t) { 2547 return h.stateChanged = !1, h.doubleCheckClear(), h.bugs.ieDoubleCheck && (h.doubleChecker = r(function() { 2548 return h.doubleCheckClear(), h.stateChanged || t(), !0 2549 }, h.options.doubleCheckInterval)), h 2550 }, h.safariStatePoll = function() { 2551 var e, i = h.extractState(h.getLocationHref()); 2552 if (!h.isLastSavedState(i)) return e = i, e || (e = h.createStateObject()), h.Adapter.trigger(t, "popstate"), h 2553 }, h.back = function(t) { 2554 return !1 !== t && h.busy() ? (h.pushQueue({ 2555 scope: h, 2556 callback: h.back, 2557 args: arguments, 2558 queue: t 2559 }), !1) : (h.busy(!0), h.doubleCheck(function() { 2560 h.back(!1) 2561 }), p.go(-1), !0) 2562 }, h.forward = function(t) { 2563 return !1 !== t && h.busy() ? (h.pushQueue({ 2564 scope: h, 2565 callback: h.forward, 2566 args: arguments, 2567 queue: t 2568 }), !1) : (h.busy(!0), h.doubleCheck(function() { 2569 h.forward(!1) 2570 }), p.go(1), !0) 2571 }, h.go = function(t, e) { 2572 var i; 2573 if (t > 0) 2574 for (i = 1; i <= t; ++i) h.forward(e); 2575 else { 2576 if (!(t < 0)) throw new Error("History.go: History.go requires a positive or negative integer passed."); 2577 for (i = -1; i >= t; --i) h.back(e) 2578 } 2579 return h 2580 }, h.emulated.pushState) { 2581 var g = function() {}; 2582 h.pushState = h.pushState || g, h.replaceState = h.replaceState || g 2583 } else h.onPopState = function(e, i) { 2584 var n, o, s = !1, 2585 r = !1; 2586 return h.doubleCheckComplete(), n = h.getHash(), n ? (o = h.extractState(n || h.getLocationHref(), !0), o ? h.replaceState(o.data, o.title, o.url, !1) : (h.Adapter.trigger(t, "anchorchange"), h.busy(!1)), h.expectedStateId = !1, !1) : (s = h.Adapter.extractEventData("state", e, i) || !1, r = s ? h.getStateById(s) : h.expectedStateId ? h.getStateById(h.expectedStateId) : h.extractState(h.getLocationHref()), r || (r = h.createStateObject(null, null, h.getLocationHref())), h.expectedStateId = !1, h.isLastSavedState(r) ? (h.busy(!1), !1) : (h.storeState(r), h.saveState(r), h.setTitle(r), h.Adapter.trigger(t, "statechange"), h.busy(!1), !0)) 2587 }, h.Adapter.bind(t, "popstate", h.onPopState), h.pushState = function(e, i, n, o) { 2588 if (h.getHashByUrl(n) && h.emulated.pushState) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors)."); 2589 if (!1 !== o && h.busy()) return h.pushQueue({ 2590 scope: h, 2591 callback: h.pushState, 2592 args: arguments, 2593 queue: o 2594 }), !1; 2595 h.busy(!0); 2596 var s = h.createStateObject(e, i, n); 2597 return h.isLastSavedState(s) ? h.busy(!1) : (h.storeState(s), h.expectedStateId = s.id, p.pushState(s.id, s.title, s.url), h.Adapter.trigger(t, "popstate")), !0 2598 }, h.replaceState = function(e, i, n, o) { 2599 if (h.getHashByUrl(n) && h.emulated.pushState) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors)."); 2600 if (!1 !== o && h.busy()) return h.pushQueue({ 2601 scope: h, 2602 callback: h.replaceState, 2603 args: arguments, 2604 queue: o 2605 }), !1; 2606 h.busy(!0); 2607 var s = h.createStateObject(e, i, n); 2608 return h.isLastSavedState(s) ? h.busy(!1) : (h.storeState(s), h.expectedStateId = s.id, p.replaceState(s.id, s.title, s.url), h.Adapter.trigger(t, "popstate")), !0 2609 }; 2610 if (s) {
2611 try { 2612 h.store = u.parse(s.getItem("History.store")) || {} 2613 } catch (t) { 2614 h.store = {} 2615 } 2616 h.normalizeStore() 2617 } else h.store = {}, h.normalizeStore(); 2618 h.Adapter.bind(t, "unload", h.clearAllIntervals), h.saveState(h.storeState(h.extractState(h.getLocationHref(), !0))), s && (h.onUnload = function() { 2619 var t, e, i; 2620 try { 2621 t = u.parse(s.getItem("History.store")) || {} 2622 } catch (e) { 2623 t = {} 2624 } 2625 t.idToState = t.idToState || {}, t.urlToId = t.urlToId || {}, t.stateToId = t.stateToId || {}; 2626 for (e in h.idToState) h.idToState.hasOwnProperty(e) && (t.idToState[e] = h.idToState[e]); 2627 for (e in h.urlToId) h.urlToId.hasOwnProperty(e) && (t.urlToId[e] = h.urlToId[e]); 2628 for (e in h.stateToId) h.stateToId.hasOwnProperty(e) && (t.stateToId[e] = h.stateToId[e]); 2629 h.store = t, h.normalizeStore(), i = u.stringify(t); 2630 try { 2631 s.setItem("History.store", i) 2632 } catch (t) { 2633 if (t.code !== DOMException.QUOTA_EXCEEDED_ERR) throw t; 2634 s.length && (s.removeItem("History.store"), s.setItem("History.store", i)) 2635 } 2636 }, h.intervalList.push(l(h.onUnload, h.options.storeInterval)), h.Adapter.bind(t, "beforeunload", h.onUnload), h.Adapter.bind(t, "unload", h.onUnload)), h.emulated.pushState || (h.bugs.safariPoll && h.intervalList.push(l(h.safariStatePoll, h.options.safariPollInterval)), "Apple Computer, Inc." !== o.vendor && "Mozilla" !== (o.appCodeName || "") || (h.Adapter.bind(t, "hashchange", function() { 2637 h.Adapter.trigger(t, "popstate") 2638 }), h.getHash() && h.Adapter.onDomLoad(function() { 2639 h.Adapter.trigger(t, "hashchange") 2640 }))) 2641 }, (!h.options || !h.options.delayInit) && h.init() 2642}(window), 2643 function(t) { 2644 "function" == typeof define && define.amd ? define(["jquery"], t) : t("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto) 2645}(function(t) { 2646 var e, i, n, o, s, r, a = "Close", 2647 l = "BeforeClose", 2648 c = "MarkupParse", 2649 u = "Open", 2650 d = "Change", 2651 h = "mfp", 2652 p = "." + h, 2653 f = "mfp-ready", 2654 g = "mfp-removing", 2655 m = "mfp-prevent-close", 2656 v = function() {}, 2657 y = !!window.jQuery, 2658 b = t(window), 2659 w = function(t, i) { 2660 e.ev.on(h + t + p, i) 2661 }, 2662 S = function(e, i, n, o) { 2663 var s = document.createElement("div"); 2664 return s.className = "mfp-" + e, n && (s.innerHTML = n), o ? i && i.appendChild(s) : (s = t(s), i && s.appendTo(i)), s 2665 }, 2666 C = function(i, n) { 2667 e.ev.triggerHandler(h + i, n), e.st.callbacks && (i = i.charAt(0).toLowerCase() + i.slice(1), e.st.callbacks[i] && e.st.callbacks[i].apply(e, t.isArray(n) ? n : [n])) 2668 }, 2669 x = function(i) { 2670 return i === r && e.currTemplate.closeBtn || (e.currTemplate.closeBtn = t(e.st.closeMarkup.replace("%title%", e.st.tClose)), r = i), e.currTemplate.closeBtn 2671 }, 2672 I = function() { 2673 t.magnificPopup.instance || (e = new v, e.init(), t.magnificPopup.instance = e) 2674 }, 2675 E = function() { 2676 var t = document.createElement("p").style, 2677 e = ["ms", "O", "Moz", "Webkit"]; 2678 if (void 0 !== t.transition) return !0; 2679 for (; e.length;) 2680 if (e.pop() + "Transition" in t) return !0; 2681 return !1 2682 }; 2683 v.prototype = { 2684 constructor: v, 2685 init: function() { 2686 var i = navigator.appVersion; 2687 e.isLowIE = e.isIE8 = document.all && !document.addEventListener, e.isAndroid = /android/gi.test(i), e.isIOS = /iphone|ipad|ipod/gi.test(i), e.supportsTransition = E(), e.probablyMobile = e.isAndroid || e.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), n = t(document), e.popupsCache = {} 2688 }, 2689 open: function(i) { 2690 var o; 2691 if (!1 === i.isObj) { 2692 e.items = i.items.toArray(), e.index = 0; 2693 var r, a = i.items; 2694 for (o = 0; o < a.length; o++) 2695 if (r = a[o], r.parsed && (r = r.el[0]), r === i.el[0]) { 2696 e.index = o; 2697 break 2698 } 2699 } else e.items = t.isArray(i.items) ? i.items : [i.items], e.index = i.index || 0; 2700 if (e.isOpen) return void e.updateItemHTML(); 2701 e.types = [], s = "", i.mainEl && i.mainEl.length ? e.ev = i.mainEl.eq(0) : e.ev = n, i.key ? (e.popupsCache[i.key] || (e.popupsCache[i.key] = {}), e.currTemplate = e.popupsCache[i.key]) : e.currTemplate = {}, e.st = t.extend(!0, {}, t.magnificPopup.defaults, i), e.fixedContentPos = "auto" === e.st.fixedContentPos ? !e.probablyMobile : e.st.fixedContentPos, e.st.modal && (e.st.closeOnContentClick = !1, e.st.closeOnBgClick = !1, e.st.showCloseBtn = !1, e.st.enableEscapeKey = !1), e.bgOverlay || (e.bgOverlay = S("bg").on("click" + p, function() { 2702 e.close() 2703 }), e.wrap = S("wrap").attr("tabindex", -1).on("click" + p, function(t) { 2704 e._checkIfClose(t.target) && e.close() 2705 }), e.container = S("container", e.wrap)), e.contentContainer = S("content"), e.st.preloader && (e.preloader = S("preloader", e.container, e.st.tLoading)); 2706 var l = t.magnificPopup.modules; 2707 for (o = 0; o < l.length; o++) { 2708 var d = l[o]; 2709 d = d.charAt(0).toUpperCase() + d.slice(1), e["init" + d].call(e) 2710 } 2711 C("BeforeOpen"), e.st.showCloseBtn && (e.st.closeBtnInside ? (w(c, function(t, e, i, n) { 2712 i.close_replaceWith = x(n.type) 2713 }), s += " mfp-close-btn-in") : e.wrap.append(x())), e.st.alignTop && (s += " mfp-align-top"), e.fixedContentPos ? e.wrap.css({ 2714 overflow: e.st.overflowY, 2715 overflowX: "hidden", 2716 overflowY: e.st.overflowY 2717 }) : e.wrap.css({ 2718 top: b.scrollTop(), 2719 position: "absolute" 2720 }), (!1 === e.st.fixedBgPos || "auto" === e.st.fixedBgPos && !e.fixedContentPos) && e.bgOverlay.css({ 2721 height: n.height(), 2722 position: "absolute" 2723 }), e.st.enableEscapeKey && n.on("keyup" + p, function(t) { 2724 27 === t.keyCode && e.close() 2725 }), b.on("resize" + p, function() { 2726 e.updateSize() 2727 }), e.st.closeOnContentClick || (s += " mfp-auto-cursor"), s && e.wrap.addClass(s); 2728 var h = e.wH = b.height(), 2729 g = {}; 2730 if (e.fixedContentPos && e._hasScrollBar(h)) { 2731 var m = e._getScrollbarSize(); 2732 m && (g.marginRight = m) 2733 } 2734 e.fixedContentPos && (e.isIE7 ? t("body, html").css("overflow", "hidden") : g.overflow = "hidden"); 2735 var v = e.st.mainClass; 2736 return e.isIE7 && (v += " mfp-ie7"), v && e._addClassToMFP(v), e.updateItemHTML(), C("BuildControls"), t("html").css(g), e.bgOverlay.add(e.wrap).prependTo(e.st.prepe
2736ndTo || t(document.body)), e._lastFocusedEl = document.activeElement, setTimeout(function() { 2737 e.content ? (e._addClassToMFP(f), e._setFocus()) : e.bgOverlay.addClass(f), n.on("focusin" + p, e._onFocusIn) 2738 }, 16), e.isOpen = !0, e.updateSize(h), C(u), i 2739 }, 2740 close: function() { 2741 e.isOpen && (C(l), e.isOpen = !1, e.st.removalDelay && !e.isLowIE && e.supportsTransition ? (e._addClassToMFP(g), setTimeout(function() { 2742 e._close() 2743 }, e.st.removalDelay)) : e._close()) 2744 }, 2745 _close: function() { 2746 C(a); 2747 var i = g + " " + f + " "; 2748 if (e.bgOverlay.detach(), e.wrap.detach(), e.container.empty(), e.st.mainClass && (i += e.st.mainClass + " "), e._removeClassFromMFP(i), e.fixedContentPos) { 2749 var o = { 2750 marginRight: "" 2751 }; 2752 e.isIE7 ? t("body, html").css("overflow", "") : o.overflow = "", t("html").css(o) 2753 } 2754 n.off("keyup.mfp focusin" + p), e.ev.off(p), e.wrap.attr("class", "mfp-wrap").removeAttr("style"), e.bgOverlay.attr("class", "mfp-bg"), e.container.attr("class", "mfp-container"), !e.st.showCloseBtn || e.st.closeBtnInside && !0 !== e.currTemplate[e.currItem.type] || e.currTemplate.closeBtn && e.currTemplate.closeBtn.detach(), e.st.autoFocusLast && e._lastFocusedEl && t(e._lastFocusedEl).focus(), e.currItem = null, e.content = null, e.currTemplate = null, e.prevHeight = 0, C("AfterClose") 2755 }, 2756 updateSize: function(t) { 2757 if (e.isIOS) { 2758 var i = document.documentElement.clientWidth / window.innerWidth, 2759 n = window.innerHeight * i; 2760 e.wrap.css("height", n), e.wH = n 2761 } else e.wH = t || b.height(); 2762 e.fixedContentPos || e.wrap.css("height", e.wH), C("Resize") 2763 }, 2764 updateItemHTML: function() { 2765 var i = e.items[e.index]; 2766 e.contentContainer.detach(), e.content && e.content.detach(), i.parsed || (i = e.parseEl(e.index)); 2767 var n = i.type; 2768 if (C("BeforeChange", [e.currItem ? e.currItem.type : "", n]), e.currItem = i, !e.currTemplate[n]) { 2769 var s = !!e.st[n] && e.st[n].markup; 2770 C("FirstMarkupParse", s), e.currTemplate[n] = !s || t(s) 2771 } 2772 o && o !== i.type && e.container.removeClass("mfp-" + o + "-holder"); 2773 var r = e["get" + n.charAt(0).toUpperCase() + n.slice(1)](i, e.currTemplate[n]); 2774 e.appendContent(r, n), i.preloaded = !0, C(d, i), o = i.type, e.container.prepend(e.contentContainer), C("AfterChange") 2775 }, 2776 appendContent: function(t, i) { 2777 e.content = t, t ? e.st.showCloseBtn && e.st.closeBtnInside && !0 === e.currTemplate[i] ? e.content.find(".mfp-close").length || e.content.append(x()) : e.content = t : e.content = "", C("BeforeAppend"), e.container.addClass("mfp-" + i + "-holder"), e.contentContainer.append(e.content) 2778 }, 2779 parseEl: function(i) { 2780 var n, o = e.items[i]; 2781 if (o.tagName ? o = { 2782 el: t(o) 2783 } : (n = o.type, o = { 2784 data: o, 2785 src: o.src 2786 }), o.el) { 2787 for (var s = e.types, r = 0; r < s.length; r++) 2788 if (o.el.hasClass("mfp-" + s[r])) { 2789 n = s[r]; 2790 break 2791 } 2792 o.src = o.el.attr("data-mfp-src"), o.src || (o.src = o.el.attr("href")) 2793 } 2794 return o.type = n || e.st.type || "inline", o.index = i, o.parsed = !0, e.items[i] = o, C("ElementParse", o), e.items[i] 2795 }, 2796 addGroup: function(t, i) { 2797 var n = function(n) { 2798 n.mfpEl = this, e._openClick(n, t, i) 2799 }; 2800 i || (i = {}); 2801 var o = "click.magnificPopup"; 2802 i.mainEl = t, i.items ? (i.isObj = !0, t.off(o).on(o, n)) : (i.isObj = !1, i.delegate ? t.off(o).on(o, i.delegate, n) : (i.items = t, t.off(o).on(o, n))) 2803 }, 2804 _openClick: function(i, n, o) { 2805 if ((void 0 !== o.midClick ? o.midClick : t.magnificPopup.defaults.midClick) || !(2 === i.which || i.ctrlKey || i.metaKey || i.altKey || i.shiftKey)) { 2806 var s = void 0 !== o.disableOn ? o.disableOn : t.magnificPopup.defaults.disableOn; 2807 if (s) 2808 if (t.isFunction(s)) { 2809 if (!s.call(e)) return !0 2810 } else if (b.width() < s) return !0; 2811 i.type && (i.preventDefault(), e.isOpen && i.stopPropagation()), o.el = t(i.mfpEl), o.delegate && (o.items = n.find(o.delegate)), e.open(o) 2812 } 2813 }, 2814 updateStatus: function(t, n) { 2815 if (e.preloader) { 2816 i !== t && e.container.removeClass("mfp-s-" + i), n || "loading" !== t || (n = e.st.tLoading); 2817 var o = { 2818 status: t, 2819 text: n 2820 }; 2821 C("UpdateStatus", o), t = o.status, n = o.text, e.preloader.html(n), e.preloader.find("a").on("click", function(t) { 2822 t.stopImmediatePropagation() 2823 }), e.container.addClass("mfp-s-" + t), i = t 2824 } 2825 }, 2826 _checkIfClose: function(i) { 2827 if (!t(i).hasClass(m)) { 2828 var n = e.st.closeOnContentClick, 2829 o = e.st.closeOnBgClick; 2830 if (n && o) return !0; 2831 if (!e.content || t(i).hasClass("mfp-close") || e.preloader && i === e.preloader[0]) return !0; 2832 if (i === e.content[0] || t.contains(e.content[0], i)) { 2833 if (n) return !0 2834 } else if (o && t.contains(document, i)) return !0; 2835 return !1 2836 } 2837 }, 2838 _addClassToMFP: function(t) { 2839 e.bgOverlay.addClass(t), e.wrap.addClass(t) 2840 }, 2841 _removeClassFromMFP: function(t) { 2842 this.bgOverlay.removeClass(t), e.wrap.removeClass(t) 2843 }, 2844 _hasScrollBar: function(t) { 2845 return (e.isIE7 ? n.height() : document.body.scrollHeight) > (t || b.height()) 2846 }, 2847 _setFocus: function() { 2848 (e.st.focus ? e.content.find(e.st.focus).eq(0) : e.wrap).focus() 2849 }, 2850 _onFocusIn: function(i) { 2851 return i.target === e.wrap[0] || t.contains(e.wrap[0], i.target) ? void 0 : (e._setFocus(), !1) 2852 }, 2853 _parseMarkup: function(e, i, n) { 2854 var o; 2855 n.data && (i = t.extend(n.data, i)), C(c, [e, i, n]), t.each(i, function(i, n) { 2856 if (void 0 === n || !1 === n) return !0; 2857 if (o = i.split("_"), o.length > 1) { 2858 var s = e.find(p + "-" + o[0]); 2859 if (s.length > 0) { 2860 var r = o[1]; 2861 "replaceWith" === r ? s[0] !== n[0] && s.replaceWith(n) : "img" === r ? s.is("img") ? s.attr("src", n) : s.replaceWith(t("<img>").attr("src", n).attr("class", s.attr("class"))) : s.attr(o[1], n) 2862 } 2863 } else e.find(p + "-" + i).html(n) 2864 }) 2865 }, 2866 _getScrollbarSize: function() { 2867 if (void 0 === e.scrollbarSize) { 2868 var t = document.createElement("div"); 2869 t.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(t), e.scrollbarSize = t.offsetWidth - t.clientWidth, document.body.removeChild(t) 2870 } 2871 return e.scrollbarSize 2872 } 2873 }, t.magnificPopup = { 2874 instance: null, 2875 proto: v.prototype, 2876 modules: [], 2877 open: function(e, i) { 2878 return I(), e = e ? t.extend(!0, {}, e) : {}, e.isObj = !0, e.index = i || 0, this.instance.open(e) 2879 }, 2880 close: function() { 2881 return t.magnificPopup.instance && t.magnificPopup.instance.close() 2882 }, 2883 registerModule: function(e, i) { 2884 i.options && (t.magnificPopup.defaults[e] = i.options), t.extend(this.proto, i.proto), this.modules.push(e) 2885 }, 2886 defaults: { 2887 disableOn: 0, 2888 key: null, 2889 midClick: !1, 2890 mainClass: "", 2891 preloader: !0, 2892 focus: "", 2893 closeOnContentClick: !1, 2894 closeOnBgClick: !0, 2895 closeBtnInside: !0, 2896 showCloseBtn: !0, 2897 enableEscapeKey: !0, 2898 modal: !1, 2899 alignTop: !1, 2900 removalDelay: 0, 2901 prependTo: null, 2902 fixedContentPos: "auto", 2903 fixedBgPos: "auto", 2904 overflowY: "auto", 2905 closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>', 2906 tClose: "Close (Esc)", 2907 tLoading: "Loading...", 2908 autoFocusLast: !0 2909 } 2910 }, t.fn.magnificPopup = function(i) { 2911 I(); 2912 var n = t(this); 2913 if ("string" == typeof i) 2914 if ("open" === i) { 2915 var o, s = y ? n.data("magnificPopup") : n[0].magnificPopup, 2916 r = parseInt(arguments[1], 10) || 0; 2917 s.items ? o = s.items[r] : (o = n, s.delegate && (o = o.find(s.delegate)), o = o.eq(r)), e._openClick({ 2918 mfpEl: o 2919 }, n, s) 2920 } else e.isOpen && e[i].apply(e, Array.prototype.slice.call(arguments, 1)); 2921 else i = t.extend(!0, {}, i), y ? n.data("magnificPopup", i) : n[0].magnificPopup = i, e.addGroup(n, i); 2922 return n 2923 }; 2924 var k, T, _, P = "inline", 2925 M = function() { 2926 _ && (T.after(_.addClass(k)).detach(), _ = null) 2927 }; 2928 t.magnificPopup.registerModule(P, { 2929 options: { 2930 hiddenClass: "hide", 2931 markup: "", 2932 tNotFound: "Content not found" 2933 }, 2934 proto: { 2935 initInline: function() { 2936 e.types.push(P), w(a + "." + P, function() { 2937 M() 2938 }) 2939 }, 2940 getInline: function(i, n) { 2941 if (M(), i.src) { 2942 var o = e.st.inline, 2943 s = t(i.src); 2944 if (s.length) { 2945 var r = s[0].parentNode;
2946 r && r.tagName && (T || (k = o.hiddenClass, T = S(k), k = "mfp-" + k), _ = s.after(T).detach().removeClass(k)), e.updateStatus("ready") 2947 } else e.updateStatus("error", o.tNotFound), s = t("<div>"); 2948 return i.inlineElement = s, s 2949 } 2950 return e.updateStatus("ready"), e._parseMarkup(n, {}, i), n 2951 } 2952 } 2953 }); 2954 var A, L = "ajax", 2955 D = function() { 2956 A && t(document.body).removeClass(A) 2957 }, 2958 z = function() { 2959 D(), e.req && e.req.abort() 2960 }; 2961 t.magnificPopup.registerModule(L, { 2962 options: { 2963 settings: null, 2964 cursor: "mfp-ajax-cur", 2965 tError: '<a href="%url%">The content</a> could not be loaded.' 2966 }, 2967 proto: { 2968 initAjax: function() { 2969 e.types.push(L), A = e.st.ajax.cursor, w(a + "." + L, z), w("BeforeChange." + L, z) 2970 }, 2971 getAjax: function(i) { 2972 A && t(document.body).addClass(A), e.updateStatus("loading"); 2973 var n = t.extend({ 2974 url: i.src, 2975 success: function(n, o, s) { 2976 var r = { 2977 data: n, 2978 xhr: s 2979 }; 2980 C("ParseAjax", r), e.appendContent(t(r.data), L), i.finished = !0, D(), e._setFocus(), setTimeout(function() { 2981 e.wrap.addClass(f) 2982 }, 16), e.updateStatus("ready"), C("AjaxContentAdded") 2983 }, 2984 error: function() { 2985 D(), i.finished = i.loadError = !0, e.updateStatus("error", e.st.ajax.tError.replace("%url%", i.src)) 2986 } 2987 }, e.st.ajax.settings); 2988 return e.req = t.ajax(n), "" 2989 } 2990 } 2991 }); 2992 var H, O = function(i) { 2993 if (i.data && void 0 !== i.data.title) return i.data.title;
2994 var n = e.st.image.titleSrc; 2995 if (n) { 2996 if (t.isFunction(n)) return n.call(e, i); 2997 if (i.el) return i.el.attr(n) || "" 2998 } 2999 return "" 3000 }; 3001 t.magnificPopup.registerModule("image", { 3002 options: { 3003 markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>', 3004 cursor: "mfp-zoom-out-cur", 3005 titleSrc: "title", 3006 verticalFit: !0, 3007 tError: '<a href="%url%">The image</a> could not be loaded.' 3008 }, 3009 proto: { 3010 initImage: function() { 3011 var i = e.st.image, 3012 n = ".image"; 3013 e.types.push("image"), w(u + n, function() { 3014 "image" === e.currItem.type && i.cursor && t(document.body).addClass(i.cursor) 3015 }), w(a + n, function() { 3016 i.cursor && t(document.body).removeClass(i.cursor), b.off("resize" + p) 3017 }), w("Resize" + n, e.resizeImage), e.isLowIE && w("AfterChange", e.resizeImage) 3018 }, 3019 resizeImage: function() { 3020 var t = e.currItem; 3021 if (t && t.img && e.st.image.verticalFit) { 3022 var i = 0; 3023 e.isLowIE && (i = parseInt(t.img.css("padding-top"), 10) + parseInt(t.img.css("padding-bottom"), 10)), t.img.css("max-height", e.wH - i) 3024 } 3025 }, 3026 _onImageHasSize: function(t) { 3027 t.img && (t.hasSize = !0, H && clearInterval(H), t.isCheckingImgSize = !1, C("ImageHasSize", t), t.imgHidden && (e.content && e.content.removeClass("mfp-loading"), t.imgHidden = !1)) 3028 }, 3029 findImageSize: function(t) { 3030 var i = 0, 3031 n = t.img[0], 3032 o = function(s) { 3033 H && clearInterval(H), H = setInterval(function() { 3034 return n.naturalWidth > 0 ? void e._onImageHasSize(t) : (i > 200 && clearInterval(H), i++, void(3 === i ? o(10) : 40 === i ? o(50) : 100 === i && o(500))) 3035 }, s) 3036 }; 3037 o(1) 3038 }, 3039 getImage: function(i, n) { 3040 var o = 0, 3041 s = function() { 3042 i && (i.img[0].complete ? (i.img.off(".mfploader"), i === e.currItem && (e._onImageHasSize(i), e.updateStatus("ready")), i.hasSize = !0, i.loaded = !0, C("ImageLoadComplete")) : (o++, 200 > o ? setTimeout(s, 100) : r())) 3043 }, 3044 r = function() { 3045 i && (i.img.off(".mfploader"), i === e.currItem && (e._onImageHasSize(i), e.updateStatus("error", a.tError.replace("%url%", i.src))), i.hasSize = !0, i.loaded = !0, i.loadError = !0) 3046 }, 3047 a = e.st.image, 3048 l = n.find(".mfp-img"); 3049 if (l.length) { 3050 var c = document.createElement("img"); 3051 c.className = "mfp-img", i.el && i.el.find("img").length && (c.alt = i.el.find("img").attr("alt")), i.img = t(c).on("load.mfploader", s).on("error.mfploader", r), c.src = i.src, l.is("img") && (i.img = i.img.clone()), c = i.img[0], c.naturalWidth > 0 ? i.hasSize = !0 : c.width || (i.hasSize = !1) 3052 } 3053 return e._parseMarkup(n, { 3054 title: O(i), 3055 img_replaceWith: i.img 3056 }, i), e.resizeImage(), i.hasSize ? (H && clearInterval(H), i.loadError ? (n.addClass("mfp-loading"), e.updateStatus("error", a.tError.replace("%url%", i.src))) : (n.removeClass("mfp-loading"), e.updateStatus("ready")), n) : (e.updateStatus("loading"), i.loading = !0, i.hasSize || (i.imgHidden = !0, n.addClass("mfp-loading"), e.findImageSize(i)), n) 3057 } 3058 } 3059 }); 3060 var j, B = function() { 3061 return void 0 === j && (j = void 0 !== document.createElement("p").style.MozTransform), j 3062 }; 3063 t.magnificPopup.registerModule("zoom", { 3064 options: { 3065 enabled: !1, 3066 easing: "ease-in-out", 3067 duration: 300, 3068 opener: function(t) { 3069 return t.is("img") ? t : t.find("img") 3070 } 3071 }, 3072 proto: { 3073 initZoom: function() { 3074 var t, i = e.st.zoom, 3075 n = ".zoom"; 3076 if (i.enabled && e.supportsTransition) { 3077 var o, s, r = i.duration, 3078 c = function(t) { 3079 var e = t.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"), 3080 n = "all " + i.duration / 1e3 + "s " + i.easing, 3081 o = { 3082 position: "fixed", 3083 zIndex: 9999, 3084 left: 0, 3085 top: 0, 3086 "-webkit-backface-visibility": "hidden" 3087 }, 3088 s = "transition"; 3089 return o["-webkit-" + s] = o["-moz-" + s] = o["-o-" + s] = o[s] = n, e.css(o), e 3090 }, 3091 u = function() { 3092 e.content.css("visibility", "visible") 3093 }; 3094 w("BuildControls" + n, function() { 3095 if (e._allowZoom()) { 3096 if (clearTimeout(o), e.content.css("visibility", "hidden"), !(t = e._getItemToZoom())) return void u(); 3097 s = c(t), s.css(e._getOffset()), e.wrap.append(s), o = setTimeout(function() { 3098 s.css(e._getOffset(!0)), o = setTimeout(function() { 3099 u(), setTimeout(function() { 3100 s.remove(), t = s = null, C("ZoomAnimationEnded") 3101 }, 16) 3102 }, r) 3103 }, 16) 3104 } 3105 }), w(l + n, function() { 3106 if (e._allowZoom()) { 3107 if (clearTimeout(o), e.st.removalDelay = r, !t) { 3108 if (!(t = e._getItemToZoom())) return; 3109 s = c(t) 3110 } 3111 s.css(e._getOffset(!0)), e.wrap.append(s), e.content.css("visibility", "hidden"), setTimeout(function() { 3112 s.css(e._getOffset()) 3113 }, 16) 3114 } 3115 }), w(a + n, function() { 3116 e._allowZoom() && (u(), s && s.remove(), t = null) 3117 }) 3118 } 3119 }, 3120 _allowZoom: function() { 3121 return "image" === e.currItem.type 3122 }, 3123 _getItemToZoom: function() { 3124 return !!e.currItem.hasSize && e.currItem.img 3125 }, 3126 _getOffset: function(i) { 3127 var n; 3128 n = i ? e.currItem.img : e.st.zoom.opener(e.currItem.el || e.currItem); 3129 var o = n.offset(), 3130 s = parseInt(n.css("padding-top"), 10), 3131 r = parseInt(n.css("padding-bottom"), 10); 3132 o.top -= t(window).scrollTop() - s; 3133 var a = { 3134 width: n.width(), 3135 height: (y ? n.innerHeight() : n[0].offsetHeight) - r - s 3136 }; 3137 return B() ? a["-moz-transform"] = a.transform = "translate(" + o.left + "px," + o.top + "px)" : (a.left = o.left, a.top = o.top), a 3138 } 3139 } 3140 }); 3141 var N = "iframe", 3142 U = function(t) { 3143 if (e.currTemplate[N]) { 3144 var i = e.currTemplate[N].find("iframe"); 3145 i.length && (t || (i[0].src = "//about:blank"), e.isIE8 && i.css("display", t ? "block" : "none")) 3146 } 3147 }; 3148 t.magnificPopup.registerModule(N, { 3149 options: { 3150 markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>', 3151 srcAction: "iframe_src", 3152 patterns: { 3153 youtube: { 3154 index: "youtube.com", 3155 id: "v=", 3156 src: "//www.youtube.com/embed/%id%?autoplay=1" 3157 }, 3158 vimeo: { 3159 index: "vimeo.com/", 3160 id: "/", 3161 src: "//player.vimeo.com/video/%id%?autoplay=1" 3162 }, 3163 gmaps: { 3164 index: "//maps.google.", 3165 src: "%id%&output=embed" 3166 } 3167 } 3168 }, 3169 proto: { 3170 initIframe: function() { 3171 e.types.push(N), w("BeforeChange", function(t, e, i) { 3172 e !== i && (e === N ? U() : i === N && U(!0)) 3173 }), w(a + "." + N, function() { 3174 U() 3175 }) 3176 }, 3177 getIframe: function(i, n) { 3178 var o = i.src, 3179 s = e.st.iframe; 3180 t.each(s.patterns, function() { 3181 return o.indexOf(this.index) > -1 ? (this.id && (o = "string" == typeof this.id ? o.substr(o.lastIndexOf(this.id
3181) + this.id.length, o.length) : this.id.call(this, o)), o = this.src.replace("%id%", o), !1) : void 0 3182 }); 3183 var r = {}; 3184 return s.srcAction && (r[s.srcAction] = o), e._parseMarkup(n, r, i), e.updateStatus("ready"), n 3185 } 3186 } 3187 }); 3188 var W = function(t) { 3189 var i = e.items.length; 3190 return t > i - 1 ? t - i : 0 > t ? i + t : t 3191 }, 3192 q = function(t, e, i) { 3193 return t.replace(/%curr%/gi, e + 1).replace(/%total%/gi, i) 3194 }; 3195 t.magnificPopup.registerModule("gallery", { 3196 options: { 3197 enabled: !1, 3198 arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>', 3199 preload: [0, 2], 3200 navigateByImgClick: !0, 3201 arrows: !0, 3202 tPrev: "Previous (Left arrow key)", 3203 tNext: "Next (Right arrow key)", 3204 tCounter: "%curr% of %total%" 3205 }, 3206 proto: { 3207 initGallery: function() { 3208 var i = e.st.gallery, 3209 o = ".mfp-gallery"; 3210 return e.direction = !0, !(!i || !i.enabled) && (s += " mfp-gallery", w(u + o, function() { 3211 i.navigateByImgClick && e.wrap.on("click" + o, ".mfp-img", function() { 3212 return e.items.length > 1 ? (e.next(), !1) : void 0 3213 }), n.on("keydown" + o, function(t) { 3214 37 === t.keyCode ? e.prev() : 39 === t.keyCode && e.next() 3215 }) 3216 }), w("UpdateStatus" + o, function(t, i) { 3217 i.text && (i.text = q(i.text, e.currItem.index, e.items.length)) 3218 }), w(c + o, function(t, n, o, s) { 3219 var r = e.items.length; 3220 o.counter = r > 1 ? q(i.tCounter, s.index, r) : "" 3221 }), w("BuildControls" + o, function() { 3222 if (e.items.length > 1 && i.arrows && !e.arrowLeft) { 3223 var n = i.arrowMarkup, 3224 o = e.arrowLeft = t(n.replace(/%title%/gi, i.tPrev).replace(/%dir%/gi, "left")).addClass(m), 3225 s = e.arrowRight = t(n.replace(/%title%/gi, i.tNext).replace(/%dir%/gi, "right")).addClass(m); 3226 o.click(function() { 3227 e.prev() 3228 }), s.click(function() { 3229 e.next() 3230 }), e.container.append(o.add(s)) 3231 } 3232 }), w(d + o, function() { 3233 e._preloadTimeout && clearTimeout(e._preloadTimeout), e._preloadTimeout = setTimeout(function() { 3234 e.preloadNearbyImages(), e._preloadTimeout = null 3235 }, 16) 3236 }), void w(a + o, function() { 3237 n.off(o), e.wrap.off("click" + o), e.arrowRight = e.arrowLeft = null 3238 })) 3239 }, 3240 next: function() { 3241 e.direction = !0, e.index = W(e.index + 1), e.updateItemHTML() 3242 }, 3243 prev: function() { 3244 e.direction = !1, e.index = W(e.index - 1), e.updateItemHTML() 3245 }, 3246 goTo: function(t) { 3247 e.direction = t >= e.index, e.index = t, e.updateItemHTML() 3248 }, 3249 preloadNearbyImages: function() { 3250 var t, i = e.st.gallery.preload, 3251 n = Math.min(i[0], e.items.length), 3252 o = Math.min(i[1], e.items.length); 3253 for (t = 1; t <= (e.direction ? o : n); t++) e._preloadItem(e.index + t); 3254 for (t = 1; t <= (e.direction ? n : o); t++) e._preloadItem(e.index - t) 3255 }, 3256 _preloadItem: function(i) { 3257 if (i = W(i), !e.items[i].preloaded) { 3258 var n = e.items[i]; 3259 n.parsed || (n = e.parseEl(i)), C("LazyLoad", n), "image" === n.type && (n.img = t('<img class="mfp-img" />').on("load.mfploader", function() { 3260 n.hasSize = !0 3261 }).on("error.mfploader", function() { 3262 n.hasSize = !0, n.loadError = !0, C("LazyLoadError", n) 3263 }).attr("src", n.src)), n.preloaded = !0 3264 } 3265 } 3266 } 3267 }); 3268 var R = "retina"; 3269 t.magnificPopup.registerModule(R, { 3270 options: { 3271 replaceSrc: function(t) { 3272 return t.src.replace(/\.\w+$/, function(t) { 3273 return "@2x" + t 3274 }) 3275 }, 3276 ratio: 1 3277 }, 3278 proto: { 3279 initRetina: function() { 3280 if (window.devicePixelRatio > 1) { 3281 var t = e.st.retina, 3282 i = t.ratio; 3283 (i = isNaN(i) ? i() : i) > 1 && (w("ImageHasSize." + R, function(t, e) { 3284 e.img.css({
3285 "max-width": e.img[0].naturalWidth / i, 3286 width: "100%" 3287 }) 3288 }), w("ElementParse." + R, function(e, n) { 3289 n.src = t.replaceSrc(n, i) 3290 })) 3291 } 3292 } 3293 } 3294 }), I() 3295}), 3296 function(t) { 3297 "use strict"; 3298 "function" == typeof define && define.amd ? define(["jquery"], t) : "undefined" != typeof module && module.exports ? module.exports = t(require("jquery")) : t(jQuery) 3299}(function(t) { 3300 var e = -1, 3301 i = -1, 3302 n = function(t) { 3303 return parseFloat(t) || 0 3304 }, 3305 o = function(e) { 3306 var i = t(e), 3307 o = null, 3308 s = []; 3309 return i.each(function() { 3310 var e = t(this), 3311 i = e.offset().top - n(e.css("margin-top")), 3312 r = s.length > 0 ? s[s.length - 1] : null; 3313 null === r ? s.push(e) : Math.floor(Math.abs(o - i)) <= 1 ? s[s.length - 1] = r.add(e) : s.push(e), o = i 3314 }), s 3315 }, 3316 s = function(e) { 3317 var i = { 3318 byRow: !0, 3319 property: "height", 3320 target: null, 3321 remove: !1 3322 }; 3323 return "object" == typeof e ? t.extend(i, e) : ("boolean" == typeof e ? i.byRow = e : "remove" === e && (i.remove = !0), i) 3324 }, 3325 r = t.fn.matchHeight = function(e) { 3326 var i = s(e); 3327 if (i.remove) { 3328 var n = this; 3329 return this.css(i.property, ""), t.each(r._groups, function(t, e) { 3330 e.elements = e.elements.not(n) 3331 }), this 3332 } 3333 return this.length <= 1 && !i.target ? this : (r._groups.push({ 3334 elements: this, 3335 options: i 3336 }), r._apply(this, i), this) 3337 }; 3338 r.version = "0.7.0", r._groups = [], r._throttle = 80, r._maintainScroll = !1, r._beforeUpdate = null, r._afterUpdate = null, r._rows = o, r._parse = n, r._parseOptions = s, r._apply = function(e, i) { 3339 var a = s(i), 3340 l = t(e), 3341 c = [l], 3342 u = t(window).scrollTop(), 3343 d = t("html").outerHeight(!0), 3344 h = l.parents().filter(":hidden"); 3345 return h.each(function() { 3346 var e = t(this); 3347 e.data("style-cache", e.attr("style")) 3348 }), h.css("display", "block"), a.byRow && !a.target && (l.each(function() { 3349 var e = t(this), 3350 i = e.css("display"); 3351 "inline-block" !== i && "flex" !== i && "inline-flex" !== i && (i = "block"), e.data("style-cache", e.attr("style")), e.css({ 3352 display: i, 3353 "padding-top": "0", 3354 "padding-bottom": "0", 3355 "margin-top": "0", 3356 "margin-bottom": "0", 3357 "border-top-width": "0", 3358 "border-bottom-width": "0", 3359 height: "100px", 3360 overflow: "hidden" 3361 }) 3362 }), c = o(l), l.each(function() { 3363 var e = t(this); 3364 e.attr("style", e.data("style-cache") || "") 3365 })), t.each(c, function(e, i) { 3366 var o = t(i), 3367 s = 0; 3368 if (a.target) s = a.target.outerHeight(!1); 3369 else { 3370 if (a.byRow && o.length <= 1) return void o.css(a.property, ""); 3371 o.each(function() { 3372 var e = t(this), 3373 i = e.attr("style"), 3374 n = e.css("display"); 3375 "inline-block" !== n && "flex" !== n && "inline-flex" !== n && (n = "block"); 3376 var o = { 3377 display: n 3378 }; 3379 o[a.property] = "", e.css(o), e.outerHeight(!1) > s && (s = e.outerHeight(!1)), i ? e.attr("style", i) : e.css("display", "") 3380 }) 3381 } 3382 o.each(function() { 3383 var e = t(this), 3384 i = 0; 3385 a.target && e.is(a.target) || ("border-box" !== e.css("box-sizing") && (i += n(e.css("border-top-width")) + n(e.css("border-bottom-width")), i += n(e.css("padding-top")) + n(e.css("padding-bottom"))), e.css(a.property, s - i + "px")) 3386 }) 3387 }), h.each(function() { 3388 var e = t(this); 3389 e.attr("style", e.data("style-cache") || null) 3390 }), r._maintainScroll && t(window).scrollTop(u / d * t("html").outerHeight(!0)), this 3391 }, r._applyDataApi = function() { 3392 var e = {}; 3393 t("[data-match-height], [data-mh]").each(function() { 3394 var i = t(this), 3395 n = i.attr("data-mh") || i.attr("data-match-height"); 3396 e[n] = n in e ? e[n].add(i) : i 3397 }), t.each(e, function() { 3398 this.matchHeight(!0) 3399 }) 3400 }; 3401 var a = function(e) { 3402 r._beforeUpdate && r._beforeUpdate(e, r._groups), t.each(r._groups, function() { 3403 r._apply(this.elements, this.options) 3404 }), r._afterUpdate && r._afterUpdate(e, r._groups) 3405 }; 3406 r._update = function(n, o) { 3407 if (o && "resize" === o.type) { 3408 var s = t(window).width(); 3409 if (s === e) return; 3410 e = s 3411 } 3412 n ? -1 === i && (i = setTimeout(function() { 3413 a(o), i = -1 3414 }, r._throttle)) : a(o) 3415 }, t(r._applyDataApi), t(window).bind("load", function(t) { 3416 r._update(!1, t) 3417 }), t(window).bind("resize orientationchange", function(t) { 3418 r._update(!0, t) 3419 }) 3420}), 3421 function(t) { 3422 function e() { 3423 t[i].glbl || (a = { 3424 $wndw: t(window), 3425 $docu: t(document), 3426 $html: t("html"), 3427 $body: t("body") 3428 }, o = {}, s = {}, r = {}, t.each([o, s, r], function(t, e) { 3429 e.add = function(t) { 3430 t = t.split(" "); 3431 for (var i = 0, n = t.length; i < n; i++) e[t[i]] = e.mm(t[i]) 3432 } 3433 }), o.mm = function(t) { 3434 return "mm-" + t 3435 }, o.add("wrapper menu panels panel nopanel current highest opened subopened navbar hasnavbar title btn prev next listview nolistview inset vertical selected divider spacer hidden fullsubopen"), o.umm = function(t) { 3436 return "mm-" == t.slice(0, 3) && (t = t.slice(3)), t 3437 }, s.mm = function(t) { 3438 return "mm-" + t 3439 }, s.add("parent child"), r.mm = function(t) { 3440 return t + ".mm" 3441 }, r.add("transitionend webkitTransitionEnd click scroll keydown mousedown mouseup touchstart touchmove touchend orientationchange"), t[i]._c = o, t[i]._d = s, t[i]._e = r, t[i].glbl = a) 3442 } 3443 var i = "mmenu", 3444 n = "5.7.8"; 3445 if (!(t[i] && t[i].version > n)) { 3446 t[i] = function(t, e, i) { 3447 this.$menu = t, this._api = ["bind", "getInstance", "update", "initPanels", "openPanel", "closePanel", "closeAllPanels", "setSelected"], this.opts = e, this.conf = i, this.vars = {}, this.cbck = {}, "function" == typeof this.___deprecated && this.___deprecated(), this._initMenu(), this._initAnchors(); 3448 var n = this.$pnls.children(); 3449 return this._initAddons(), this.initPanels(n), "function" == typeof this.___debug && this.___debug(), this 3450 }, t[i].version = n, t[i].addons = {}, t[i].uniqueId = 0, t[i].defaults = { 3451 extensions: [], 3452 initMenu: function() {}, 3453 initPanels: function() {}, 3454 navbar: { 3455 add: !0, 3456 title: "Menu", 3457 titleLink: "panel" 3458 }, 3459 onClick: { 3460 setSelected: !0 3461 }, 3462 slidingSubmenus: !0 3463 }, t[i].configuration = { 3464 classNames: { 3465 divider: "Divider", 3466 inset: "Inset", 3467 panel: "Panel", 3468 selected: "Selected", 3469 spacer: "Spacer", 3470 vertical: "Vertical" 3471 }, 3472 clone: !1, 3473 openingInterval: 25, 3474 panelNodetype: "ul, ol, div", 3475 transitionDuration: 400 3476 }, t[i].prototype = { 3477 init: function(t) { 3478 this.initPanels(t) 3479 }, 3480 getInstance: function() { 3481 return this 3482 }, 3483 update: function() { 3484 this.trigger("update") 3485 }, 3486 initPanels: function(t) { 3487 t = t.not("." + o.nopanel), t = this._initPanels(t), this.opts.initPanels.call(this, t), this.trigger("initPanels", t), this.trigger("update") 3488 }, 3489 openPanel: function(e) { 3490 var n = e.parent(), 3491 s = this; 3492 if (n.hasClass(o.vertical)) { 3493 var r = n.parents("." + o.subopened);
3494 if (r.length) return void this.openPanel(r.first()); 3495 n.addClass(o.opened), this.trigger("openPanel", e), this.trigger("openingPanel", e), this.trigger("openedPanel", e) 3496 } else { 3497 if (e.hasClass(o.current)) return; 3498 var a = this.$pnls.children("." + o.panel), 3499 l = a.filter("." + o.current); 3500 a.removeClass(o.highest).removeClass(o.current).not(e).not(l).not("." + o.vertical).addClass(o.hidden), t[i].support.csstransitions || l.addClass(o.hidden), e.hasClass(o.opened) ? e.nextAll("." + o.opened).addClass(o.highest).removeClass(o.opened).removeClass(o.subopened) : (e.addClass(o.highest), l.addClass(o.subopened)), e.removeClass(o.hidden).addClass(o.current), s.trigger("openPanel", e), setTimeout(function() { 3501 e.removeClass(o.subopened).addClass(o.opened), s.trigger("openingPanel", e), s.__transitionend(e, function() { 3502 s.trigger("openedPanel", e) 3503 }, s.conf.transitionDuration) 3504 }, this.conf.openingInterval) 3505 } 3506 }, 3507 closePanel: function(t) { 3508 var e = t.parent(); 3509 e.hasClass(o.vertical) && (e.removeClass(o.opened), this.trigger("closePanel", t), this.trigger("closingPanel", t), this.trigger("closedPanel", t)) 3510 }, 3511 closeAllPanels: function() { 3512 this.$menu.find("." + o.listview).children().removeClass(o.selected).filter("." + o.vertical).removeClass(o.opened); 3513 var t = this.$pnls.children("." + o.panel), 3514 e = t.first(); 3515 this.$pnls.children("." + o.panel).not(e).removeClass(o.subopened).removeClass(o.opened).removeClass(o.current).removeClass(o.highest).addClass(o.hidden), this.openPanel(e) 3516 }, 3517 togglePanel: function(t) { 3518 var e = t.parent(); 3519 e.hasClass(o.vertical) && this[e.hasClass(o.opened) ? "closePanel" : "openPanel"](t) 3520 }, 3521 setSelected: function(t) { 3522 this.$menu.find("." + o.listview).children("." + o.selected).removeClass(o.selected), t.addClass(o.selected), this.trigger("setSelected", t) 3523 }, 3524 bind: function(t, e) { 3525 t = "init" == t ? "initPanels" : t, this.cbck[t] = this.cbck[t] || [], this.cbck[t].push(e) 3526 }, 3527 trigger: function() { 3528 var t = this, 3529 e = Array.prototype.slice.call(arguments), 3530 i = e.shift(); 3531 if (i = "init" == i ? "initPanels" : i, this.cbck[i]) 3532 for (var n = 0, o = this.cbck[i].length; n < o; n++) this.cbck[i][n].apply(t, e) 3533 }, 3534 _initMenu: function() { 3535 this.conf.clone && (this.$orig = this.$menu, this.$menu = this.$orig.clone(!0), this.$menu.add(this.$menu.find("[id]")).filter("[id]").each(function() { 3536 t(this).attr("id", o.mm(t(this).attr("id"))) 3537 })), this.opts.initMenu.call(this, this.$menu, this.$orig), this.$menu.attr("id", this.$menu.attr("id") || this.__getUniqueId()), this.$pnls = t('<div class="' + o.panels + '" />').append(this.$menu.children(this.conf.panelNodetype)).prependTo(this.$menu), this.$menu.parent().addClass(o.wrapper); 3538 var e = [o.menu]; 3539 this.opts.slidingSubmenus || e.push(o.vertical), this.opts.extensions = this.opts.extensions.length ? "mm-" + this.opts.extensions.join(" mm-") : "", this.opts.extensions && e.push(this.opts.extensions), this.$menu.addClass(e.join(" ")), this.trigger("_initMenu") 3540 }, 3541 _initPanels: function(e) { 3542 var n = this, 3543 r = this.__findAddBack(e, "ul, ol"); 3544 this.__refactorClass(r, this.conf.classNames.inset, "inset").addClass(o.nolistview + " " + o.nopanel), r.not("." + o.nolistview).addClass(o.listview); 3545 var a = this.__findAddBack(e, "." + o.listview).children(); 3546 this.__refactorClass(a, this.conf.classNames.selected, "selected"), this.__refactorClass(a, this.conf.classNames.divider, "divider"), this.__refactorClass(a, this.conf.classNames.spacer, "spacer"), this.__refactorClass(this.__findAddBack(e, "." + this.conf.classNames.panel), this.conf.classNames.panel, "panel"); 3547 var l = t(), 3548 c = e.add(e.find("." + o.panel)).add(this.__findAddBack(e, "." + o.listview).children().children(this.conf.panelNodetype)).not("." + o.nopanel); 3549 this.__refactorClass(c, this.conf.classNames.vertical, "vertical"), this.opts.slidingSubmenus || c.addClass(o.vertical), c.each(function() { 3550 var e = t(this), 3551 i = e; 3552 e.is("ul, ol") ? (e.wrap('<div class="' + o.panel + '" />'), i = e.parent()) : i.addClass(o.panel); 3553 var s = e.attr("id"); 3554 e.removeAttr("id"), i.attr("id", s || n.__getUniqueId()), e.hasClass(o.vertical) && (e.removeClass(n.conf.classNames.vertical), i.add(i.parent()).addClass(o.vertical)), l = l.add(i) 3555 }); 3556 var u = t("." + o.panel, this.$menu); 3557 l.each(function(e) { 3558 var r, a, l = t(this), 3559 c = l.parent(), 3560 u = c.children("a, span").first(); 3561 if (c.is("." + o.panels) || (c.data(s.child, l), l.data(s.parent, c)), c.children("." + o.next).length || c.parent().is("." + o.listview) && (r = l.attr("id"), a = t('<a class="' + o.next + '" href="#' + r + '" data-target="#' + r + '" />').insertBefore(u), u.is("span") && a.addClass(o.fullsubopen)), !l.children("." + o.navbar).length && !c.hasClass(o.vertical)) { 3562 c.parent().is("." + o.listview) ? c = c.closest("." + o.panel) : (u = c.closest("." + o.panel).find('a[href="#' + l.attr("id") + '"]').first(), c = u.closest("." + o.panel)); 3563 var d = !1, 3564 h = t('<div class="' + o.navbar + '" />'); 3565 if (n.opts.navbar.add && l.addClass(o.hasnavbar), c.length) { 3566 switch (r = c.attr("id"), n.opts.navbar.titleLink) { 3567 case "anchor": 3568 d = u.attr("href"); 3569 break; 3570 case "panel": 3571 case "parent": 3572 d = "#" + r; 3573 break; 3574 default: 3575 d = !1 3576 } 3577 h.append('<a class="' + o.btn + " " + o.prev + '" href="#' + r + '" data-target="#' + r + '" />').append(t('<a class="' + o.title + '"' + (d ? ' href="' + d + '"' : "") + " />").text(u.text())).prependTo(l) 3578 } else n.opts.navbar.title && h.append('<a class="' + o.title + '">' + t[i].i18n(n.opts.navbar.title) + "</a>").prependTo(l) 3579 } 3580 }); 3581 var d = this.__findAddBack(e, "." + o.listview).children("." + o.selected).removeClass(o.selected).last(
3581).addClass(o.selected); 3582 d.add(d.parentsUntil("." + o.menu, "li")).filter("." + o.vertical).addClass(o.opened).end().each(function() { 3583 t(this).parentsUntil("." + o.menu, "." + o.panel).not("." + o.vertical).first().addClass(o.opened).parentsUntil("." + o.menu, "." + o.panel).not("." + o.vertical).first().addClass(o.opened).addClass(o.subopened) 3584 }), d.children("." + o.panel).not("." + o.vertical).addClass(o.opened).parentsUntil("." + o.menu, "." + o.panel).not("." + o.vertical).first().addClass(o.opened).addClass(o.subopened); 3585 var h = u.filter("." + o.opened); 3586 return h.length || (h = l.first()), h.addClass(o.opened).last().addClass(o.current), l.not("." + o.vertical).not(h.last()).addClass(o.hidden).end().filter(function() { 3587 return !t(this).parent().hasClass(o.panels) 3588 }).appendTo(this.$pnls), this.trigger("_initPanels", l), l 3589 }, 3590 _initAnchors: function() { 3591 var e = this; 3592 a.$body.on(r.click + "-oncanvas", "a[href]", function(n) { 3593 var s = t(this), 3594 r = !1, 3595 a = e.$menu.find(s).length; 3596 for (var l in t[i].addons) 3597 if (t[i].addons[l].clickAnchor.call(e, s, a)) { 3598 r = !0; 3599 break 3600 } 3601 var c = s.attr("href"); 3602 if (!r && a && c.length > 1 && "#" == c.slice(0, 1)) try { 3603 var u = t(c, e.$menu); 3604 u.is("." + o.panel) && (r = !0, e[s.parent().hasClass(o.vertical) ? "togglePanel" : "openPanel"](u)) 3605 } catch (t) {} 3606 if (r && n.preventDefault(), !r && a && s.is("." + o.listview + " > li > a") && !s.is('[rel="external"]') && !s.is('[target="_blank"]')) { 3607 e.__valueOrFn(e.opts.onClick.setSelected, s) && e.setSelected(t(n.target).parent()); 3608 var d = e.__valueOrFn(e.opts.onClick.preventDefault, s, "#" == c.slice(0, 1)); 3609 d && n.preventDefault(), e.__valueOrFn(e.opts.onClick.close, s, d) && e.close() 3610 } 3611 }), this.trigger("_initAnchors") 3612 }, 3613 _initAddons: function() { 3614 var e; 3615 for (e in t[i].addons) t[i].addons[e].add.call(this), t[i].addons[e].add = function() {}; 3616 for (e in t[i].addons) t[i].addons[e].setup.call(this); 3617 this.trigger("_initAddons") 3618 }, 3619 _getOriginalMenuId: function() { 3620 var t = this.$menu.attr("id"); 3621 return t && t.length && this.conf.clone && (t = o.umm(t)), t 3622 }, 3623 __api: function() { 3624 var e = this, 3625 i = {}; 3626 return t.each(this._api, function(t) { 3627 var n = this; 3628 i[n] = function() { 3629 var t = e[n].apply(e, arguments); 3630 return void 0 === t ? i : t 3631 } 3632 }), i 3633 }, 3634 __valueOrFn: function(t, e, i) { 3635 return "function" == typeof t ? t.call(e[0]) : void 0 === t && void 0 !== i ? i : t 3636 }, 3637 __refactorClass: function(t, e, i) { 3638 return t.filter("." + e).removeClass(e).addClass(o[i]) 3639 }, 3640 __findAddBack: function(t, e) { 3641 return t.find(e).add(t.filter(e)) 3642 }, 3643 __filterListItems: function(t) { 3644 return t.not("." + o.divider).not("." + o.hidden) 3645 }, 3646 __transitionend: function(e, i, n) { 3647 var o = !1, 3648 s = function(n) { 3649 if (void 0 !== n) { 3650 if (!t(n.target).is(e)) return !1; 3651 e.unbind(r.transitionend), e.unbind(r.webkitTransitionEnd) 3652 } 3653 o || i.call(e[0]), o = !0 3654 }; 3655 e.on(r.transitionend, s), e.on(r.webkitTransitionEnd, s), setTimeout(s, 1.1 * n) 3656 }, 3657 __getUniqueId: function() { 3658 return o.mm(t[i].uniqueId++) 3659 } 3660 }, t.fn[i] = function(n, o) { 3661 e(), n = t.extend(!0, {}, t[i].defaults, n), o = t.extend(!0, {}, t[i].configuration, o); 3662 var s = t(); 3663 return this.each(function() { 3664 var e = t(this); 3665 if (!e.data(i)) { 3666 var r = new t[i](e, n, o); 3667 r.$menu.data(i, r.__api()), s = s.add(r.$menu) 3668 } 3669 }), s 3670 }, t[i].i18n = function() { 3671 var e = {}; 3672 return function(i) { 3673 switch (typeof i) { 3674 case "object": 3675 return t.extend(e, i), e; 3676 case "string": 3677 return e[i] || i; 3678 case "undefined": 3679 default: 3680 return e 3681 } 3682 } 3683 }(), t[i].support = { 3684 touch: "ontouchstart" in window || navigator.msMaxTouchPoints || !1, 3685 csstransitions: function() { 3686 if ("undefined" != typeof Modernizr && void 0 !== Modernizr.csstransitions) return Modernizr.csstransitions; 3687 var t = document.body || document.documentElement, 3688 e = t.style, 3689 i = "transition"; 3690 if ("string" == typeof e[i]) return !0; 3691 var n = ["Moz", "webkit", "Webkit", "Khtml", "O", "ms"]; 3692 i = i.charAt(0).toUpperCase() + i.substr(1); 3693 for (var o = 0; o < n.length; o++) 3694 if ("string" == typeof e[n[o] + i]) return !0; 3695 return !1 3696 }(), 3697 csstransforms: function() { 3698 return "undefined" == typeof Modernizr || void 0 === Modernizr.csstransforms || Modernizr.csstransforms 3699 }(), 3700 csstransforms3d: function() { 3701 return "undefined" == typeof Modernizr || void 0 === Modernizr.csstransforms3d || Modernizr.csstransforms3d 3702 }() 3703 }; 3704 var o, s, r, a 3705 } 3706}(jQuery), 3707 function(t) { 3708 var e = "mmenu", 3709 i = "offCanvas"; 3710 t[e].addons[i] = { 3711 setup: function() { 3712 if (this.opts[i]) { 3713 var o = this.opts[i], 3714 s = this.conf[i]; 3715 r = t[e].glbl, this._api = t.merge(this._api, ["open", "close", "setPage"]), "top" != o.position && "bottom" != o.position || (o.zposition = "front"), "string" != typeof s.pageSelector && (s.pageSelector = "> " + s.pageNodetype), r.$allMenus = (r.$allMenus || t()).add(this.$menu), this.vars.opened = !1; 3716 var a = [n.offcanvas]; 3717 "left" != o.position && a.push(n.mm(o.position)), "back" != o.zposition && a.push(n.mm(o.zposition)), this.$menu.addClass(a.join(" ")).parent().removeClass(n.wrapper), t[e].support.csstransforms || this.$menu.addClass(n["no-csstransforms"]), t[e].support.csstransforms3d || this.$menu.addClass(n["no-csstransforms3d"]), this.setPage(r.$page), this._initBlocker(), this["_initWindow_" + i](), this.$menu[s.menuInjectMethod + "To"](s.menuWrapperSelector); 3718 var l = window.location.hash; 3719 if (l) { 3720 var c = this._getOriginalMenuId();
3721 c && c == l.slice(1) && this.open() 3722 } 3723 } 3724 }, 3725 add: function() { 3726 n = t[e]._c, o = t[e]._d, s = t[e]._e, n.add("offcanvas slideout blocking modal background opening blocker page no-csstransforms3d"), o.add("style"), s.add("resize") 3727 }, 3728 clickAnchor: function(t, e) { 3729 var o = this; 3730 if (this.opts[i]) { 3731 var s = this._getOriginalMenuId(); 3732 if (s && t.is('[href="#' + s + '"]')) { 3733 if (e) return !0; 3734 var a = t.closest("." + n.menu); 3735 if (a.length) { 3736 var l = a.data("mmenu"); 3737 if (l && l.close) return l.close(), o.__transitionend(a, function() { 3738 o.open() 3739 }, o.conf.transitionDuration), !0 3740 } 3741 return this.open(), !0 3742 } 3743 if (r.$page) return s = r.$page.first().attr("id"), s && t.is('[href="#' + s + '"]') ? (this.close(), !0) : void 0 3744 } 3745 } 3746 }, t[e].defaults[i] = { 3747 position: "left", 3748 zposition: "back", 3749 blockUI: !0, 3750 moveBackground: !0 3751 }, t[e].configuration[i] = { 3752 pageNodetype: "div", 3753 pageSelector: null, 3754 noPageSelector: [], 3755 wrapPageIfNeeded: !0, 3756 menuWrapperSelector: "body", 3757 menuInjectMethod: "prepend" 3758 }, t[e].prototype.open = function() { 3759 if (!this.vars.opened) { 3760 var t = this; 3761 this._openSetup(), setTimeout(function() { 3762 t._openFinish() 3763 }, this.conf.openingInterval), this.trigger("open") 3764 } 3765 }, t[e].prototype._openSetup = function() { 3766 var e = this, 3767 a = this.opts[i]; 3768 this.closeAllOthers(), r.$page.each(function() { 3769 t(this).data(o.style, t(this).attr("style") || "") 3770 }), r.$wndw.trigger(s.resize + "-" + i, [!0]); 3771 var l = [n.opened]; 3772 a.blockUI && l.push(n.blocking), "modal" == a.blockUI && l.push(n.modal), a.moveBackground && l.push(n.background), "left" != a.position && l.push(n.mm(this.opts[i].position)), "back" != a.zposition && l.push(n.mm(this.opts[i].zposition)), this.opts.extensions && l.push(this.opts.extensions), r.$html.addClass(l.join(" ")), setTimeout(function() { 3773 e.vars.opened = !0 3774 }, this.conf.openingInterval), this.$menu.addClass(n.current + " " + n.opened) 3775 }, t[e].prototype._openFinish = function() { 3776 var t = this; 3777 this.__transitionend(r.$page.first(), function() { 3778 t.trigger("opened") 3779 }, this.conf.transitionDuration), r.$html.addClass(n.opening), this.trigger("opening") 3780 }, t[e].prototype.close = function() { 3781 if (this.vars.opened) { 3782 var e = this; 3783 this.__transitionend(r.$page.first(), function() { 3784 e.$menu.removeClass(n.current + " " + n.opened); 3785 var s = [n.opened, n.blocking, n.modal, n.background, n.mm(e.opts[i].position), n.mm(e.opts[i].zposition)]; 3786 e.opts.extensions && s.push(e.opts.extensions), r.$html.removeClass(s.join(" ")), r.$page.each(function() { 3787 t(this).attr("style", t(this).data(o.style)) 3788 }), e.vars.opened = !1, e.trigger("closed") 3789 }, this.conf.transitionDuration), r.$html.removeClass(n.opening), this.trigger("close"), this.trigger("closing") 3790 } 3791 }, t[e].prototype.closeAllOthers = function() { 3792 r.$allMenus.not(this.$menu).each(function() { 3793 var i = t(this).data(e); 3794 i && i.close && i.close() 3795 }) 3796 }, t[e].prototype.setPage = function(e) { 3797 var o = this, 3798 s = this.conf[i]; 3799 e && e.length || (e = r.$body.find(s.pageSelector), s.noPageSelector.length && (e = e.not(s.noPageSelector.join(", "))), e.length > 1 && s.wrapPageIfNeeded && (e = e.wrapAll("<" + this.conf[i].pageNodetype + " />").parent())), e.each(function() { 3800 t(this).attr("id", t(this).attr("id") || o.__getUniqueId()) 3801 }), e.addClass(n.page + " " + n.slideout), r.$page = e, this.trigger("setPage", e) 3802 }, t[e].prototype["_initWindow_" + i] = function() { 3803 r.$wndw.off(s.keydown + "-" + i).on(s.keydown + "-" + i, function(t) { 3804 if (r.$html.hasClass(n.opened) && 9 == t.keyCode) return t.preventDefault(), !1 3805 }); 3806 var t = 0; 3807 r.$wndw.off(s.resize + "-" + i).on(s.resize + "-" + i, function(e, i) { 3808 if (1 == r.$page.length && (i || r.$html.hasClass(n.opened))) { 3809 var o = r.$wndw.height(); 3810 (i || o != t) && (t = o, r.$page.css("minHeight", o)) 3811 } 3812 }) 3813 }, t[e].prototype._initBlocker = function() { 3814 var e = this; 3815 this.opts[i].blockUI && (r.$blck || (r.$blck = t('<div id="' + n.blocker + '" class="' + n.slideout + '" />')), r.$blck.appendTo(r.$body).off(s.touchstart + "-" + i + " " + s.touchmove + "-" + i).on(s.touchstart + "-" + i + " " + s.touchmove + "-" + i, function(t) { 3816 t.preventDefault(), t.stopPropagation(), r.$blck.trigger(s.mousedown + "-" + i) 3817 }
3817).off(s.mousedown + "-" + i).on(s.mousedown + "-" + i, function(t) { 3818 t.preventDefault(), r.$html.hasClass(n.modal) || (e.closeAllOthers(), e.close()) 3819 })) 3820 }; 3821 var n, o, s, r 3822 }(jQuery), 3823 function(t) { 3824 var e = "mmenu", 3825 i = "scrollBugFix"; 3826 t[e].addons[i] = { 3827 setup: function() { 3828 var o = this, 3829 a = this.opts[i]; 3830 if (this.conf[i], r = t[e].glbl, t[e].support.touch && this.opts.offCanvas && this.opts.offCanvas.blockUI && ("boolean" == typeof a && (a = { 3831 fix: a 3832 }), "object" != typeof a && (a = {}), a = this.opts[i] = t.extend(!0, {}, t[e].defaults[i], a), a.fix)) { 3833 var l = this.$menu.attr("id"), 3834 c = !1; 3835 this.bind("opening", function() { 3836 this.$pnls.children("." + n.current).scrollTop(0) 3837 }), r.$docu.on(s.touchmove, function(t) { 3838 o.vars.opened && t.preventDefault() 3839 }), r.$body.on(s.touchstart, "#" + l + "> ." + n.panels + "> ." + n.current, function(t) { 3840 o.vars.opened && (c || (c = !0, 0 === t.currentTarget.scrollTop ? t.currentTarget.scrollTop = 1 : t.currentTarget.scrollHeight === t.currentTarget.scrollTop + t.currentTarget.offsetHeight && (t.currentTarget.scrollTop -= 1), c = !1)) 3841 }).on(s.touchmove, "#" + l + "> ." + n.panels + "> ." + n.current, function(e) { 3842 o.vars.opened && t(this)[0].scrollHeight > t(this).innerHeight() && e.stopPropagation() 3843 }), r.$wndw.on(s.orientationchange, function() { 3844 o.$pnls.children("." + n.current).scrollTop(0).css({ 3845 "-webkit-overflow-scrolling": "auto" 3846 }).css({ 3847 "-webkit-overflow-scrolling": "touch" 3848 }) 3849 }) 3850 } 3851 }, 3852 add: function() { 3853 n = t[e]._c, o = t[e]._d, s = t[e]._e 3854 }, 3855 clickAnchor: function(t, e) {} 3856 }, t[e].defaults[i] = { 3857 fix: !0 3858 }; 3859 var n, o, s, r 3860 }(jQuery), 3861 function t(e, i, n) { 3862 function o(r, a) { 3863 if (!i[r]) { 3864 if (!e[r]) { 3865 var l = "function" == typeof require && require; 3866 if (!a && l) return l(r, !0); 3867 if (s) return s(r, !0); 3868 var c = new Error("Cannot find module '" + r + "'"); 3869 throw c.code = "MODULE_NOT_FOUND", c 3870 } 3871 var u = i[r] = { 3872 exports: {} 3873 }; 3874 e[r][0].call(u.exports, function(t) { 3875 var i = e[r][1][t]; 3876 return o(i || t) 3877 }, u, u.exports, t, e, i, n) 3878 } 3879 return i[r].exports 3880 } 3881 for (var s = "function" == typeof require && require, r = 0; r < n.length; r++) o(n[r]); 3882 return o 3883}({ 3884 1: [function(t, e, i) { 3885 "use strict"; 3886 3887 function n(t) { 3888 t.fn.perfectScrollbar = function(t) { 3889 return this.each(function() { 3890 if ("object" == typeof t || void 0 === t) { 3891 var e = t; 3892 s.get(this) || o.initialize(this, e) 3893 } else { 3894 var i = t; 3895 "update" === i ? o.update(this) : "destroy" === i && o.destroy(this) 3896 } 3897 }) 3898 } 3899 } 3900 var o = t("../main"), 3901 s = t("../plugin/instances"); 3902 if ("function" == typeof define && define.amd) define(["jquery"], n); 3903 else { 3904 var r = window.jQuery ? window.jQuery : window.$; 3905 void 0 !== r && n(r) 3906 } 3907 e.exports = n 3908 }, { 3909 "../main": 7, 3910 "../plugin/instances": 18 3911 }], 3912 2: [function(t, e, i) { 3913 "use strict"; 3914 3915 function n(t, e) { 3916 var i = t.className.split(" "); 3917 i.indexOf(e) < 0 && i.push(e), t.className = i.join(" ") 3918 } 3919 3920 function o(t, e) { 3921 var i = t.className.split(" "), 3922 n = i.indexOf(e); 3923 n >= 0 && i.splice(n, 1), t.className = i.join(" ") 3924 } 3925 i.add = function(t, e) { 3926 t.classList ? t.classList.add(e) : n(t, e) 3927 }, i.remove = function(t, e) { 3928 t.classList ? t.classList.remove(e) : o(t, e) 3929 }, i.list = function(t) { 3930 return t.classList ? Array.prototype.slice.apply(t.classList) : t.className.split(" ") 3931 } 3932 }, {}], 3933 3: [function(t, e, i) { 3934 "use strict"; 3935 3936 function n(t, e) { 3937 return window.getComputedStyle(t)[e] 3938 } 3939 3940 function o(t, e, i) { 3941 return "number" == typeof i && (i = i.toString() + "px"), t.style[e] = i, t 3942 } 3943 3944 function s(t, e) { 3945 for (var i in e) { 3946 var n = e[i]; 3947 "number" == typeof n && (n = n.toString() + "px"), t.style[i] = n 3948 } 3949 return t 3950 } 3951 var r = {}; 3952 r.e = function(t, e) { 3953 var i = document.createElement(t); 3954 return i.className = e, i 3955 }, r.appendTo = function(t, e) { 3956 return e.appendChild(t), t 3957 }, r.css = function(t, e, i) { 3958 return "object" == typeof e ? s(t, e) : void 0 === i ? n(t, e) : o(t, e, i) 3959 }, r.matches = function(t, e) { 3960 return void 0 !== t.matches ? t.matches(e) : void 0 !== t.matchesSelector ? t.matchesSelector(e) : void 0 !== t.webkitMatchesSelector ? t.webkitMatchesSelector(e) : void 0 !== t.mozMatchesSelector ? t.mozMatchesSelector(e) : void 0 !== t.msMatchesSelector ? t.msMatchesSelector(e) : void 0 3961 }, r.remove = function(t) { 3962 void 0 !== t.remove ? t.remove() : t.parentNode && t.parentNode.removeChild(t) 3963 }, r.queryChildren = function(t, e) { 3964 return Array.prototype.filter.call(t.childNodes, function(t) { 3965 return r.matches(t, e) 3966 }) 3967 }, e.exports = r 3968 }, {}], 3969 4: [function(t, e, i) { 3970 "use strict"; 3971 var n = function(t) { 3972 this.element = t, this.events = {} 3973 }; 3974 n.prototype.bind = function(t, e) { 3975 void 0 === this.events[t] && (this.events[t] = []), this.events[t].push(e), this.element.addEventListener(t, e, !1) 3976 }, n.prototype.unbind = function(t, e) { 3977 var i = void 0 !== e; 3978 this.events[t] = this.events[t].filter(function(n) { 3979 return !(!i || n === e) || (this.element.removeEventListener(t, n, !1), !1) 3980 }, this) 3981 }, n.prototype.unbindAll = function() { 3982 for (var t in this.events) this.unbind(t) 3983 }; 3984 var o = function() { 3985 this.eventElements = [] 3986 }; 3987 o.prototype.eventElement = function(t) { 3988 var e = this.eventElements.filter(function(e) { 3989 return e.element === t 3990 })[0]; 3991 return void 0 === e && (e = new n(t), this.eventElements.push(e)), e 3992 }, o.prototype.bind = function(t, e, i) { 3993 this.eventElement(t).bind(e, i) 3994 }, o.prototype.unbind = function(t, e, i) { 3995 this.eventElement(t).unbind(e, i) 3996 }, o.prototype.unbindAll = function() { 3997 for (var t = 0; t < this.eventElements.length; t++) this.eventElements[t].unbindAll() 3998 }, o.prototype.once = function(t, e, i) { 3999 var n = this.eventElement(t), 4000 o = function(t) { 4001 n.unbind(e, o), i(t) 4002 }; 4003 n.bind(e, o) 4004 }, e.exports = o 4005 }, {}], 4006 5: [function(t, e, i) { 4007 "use strict"; 4008 e.exports = function() { 4009 function t() { 4010 return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) 4011 } 4012 return function() { 4013 return t() + t() + "-" + t() + "-" + t() + "-" + t() + "-" + t() + t() + t() 4014 } 4015 }() 4016 }, {}], 4017 6: [function(t, e, i) { 4018 "use strict"; 4019 var n = t("./class"), 4020 o = t("./dom"), 4021 s = i.toInt = function(t) { 4022 return parseInt(t, 10) || 0 4023 }, 4024 r = i.clone = function(t) { 4025 if (t) { 4026 if (t.constructor === Array) return t.map(r); 4027 if ("object" == typeof t) { 4028 var e = {}; 4029 for (var i in t) e[i] = r(t[i]); 4030 return e 4031 } 4032 return t 4033 } 4034 return null 4035 }; 4036 i.extend = function(t, e) { 4037 var i = r(t); 4038 for (var n in e) i[n] = r(e[n]); 4039 return i 4040 }, i.isEditable = function(t) { 4041 return o.matches(t, "input,[contenteditable]") || o.matches(t, "select,[contenteditable]") || o.matches(t, "textarea,[contenteditable]") || o.matches(t, "button,[contenteditable]") 4042 }, i.removePsClasses = function(t) { 4043 for (var e = n.list(t), i = 0; i < e.length; i++) { 4044 var o = e[i]; 4045 0 === o.indexOf("ps-") && n.remove(t, o) 4046 } 4047 }, i.outerWidth = function(t) { 4048 return s(o.css(t, "width")) + s(o.css(t, "paddingLeft")) + s(o.css(t, "paddingRight")) + s(o.css(t, "borderLeftWidth")) + s(o.css(t, "borderRightWidth")) 4049 }, i.startScrolling = function(t, e) { 4050 n.add(t, "ps-in-scrolling"), void 0 !== e ? n.add(t, "ps-" + e) : (n.add(t, "ps-x"), n.add(t, "ps-y")) 4051 }, i.stopScrolling = function(t, e) { 4052 n.remove(t, "ps-in-scrolling"), void 0 !== e ? n.remove(t, "ps-" + e) : (n.remove(t, "ps-x"), n.remove(t, "ps-y")) 4053 }, i.env = { 4054 isWebKit: "WebkitAppearance" in document.documentElement.style, 4055 supportsTouch: "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch, 4056 supportsIePointer: null !== window.navigator.msMaxTouchPoints 4057 } 4058 }, { 4059 "./class": 2, 4060 "./dom": 3 4061 }], 4062 7: [function(t, e, i) { 4063 "use strict"; 4064 var n = t("./plugin/destroy"), 4065 o = t("./plugin/initialize"), 4066 s = t("./plugin/update"); 4067 e.exports = { 4068 initialize: o, 4069 update: s, 4070 destroy: n 4071 } 4072 }, { 4073 "./plugin/destroy": 9, 4074 "./plugin/initialize": 17, 4075 "./plugin/update": 21 4076 }], 4077 8: [function(t, e, i) { 4078 "use strict"; 4079 e.exports = { 4080 handlers: ["click-rail", "drag-scrollbar", "keyboard", "wheel", "touch"], 4081 maxScrollbarLength: null, 4082 minScrollbarLength: null, 4083 scrollXMarginOffset: 0, 4084 scrollYMarginOffset: 0, 4085 suppressScrollX: !1, 4086 suppressScrollY: !1, 4087 swipePropagation: !0, 4088 useBothWheelAxes: !1, 4089 wheelPropagation: !1, 4090 wheelSpeed: 1, 4091 theme: "default" 4092 } 4093 }, {}], 4094 9: [function(t, e, i) { 4095 "use strict"; 4096 var n = t("../lib/helper"), 4097 o = t("../lib/dom"), 4098 s = t("./instances"); 4099 e.exports = function(t) { 4100 var e = s.get(t); 4101 e && (e.event.unbindAll(), o.remove(e.scrollbarX), o.remove(e.scrollbarY), o.remove(e.scrollbarXRail), o.remove(e.scrollbarYRail), n.removePsClasses(t), s.remove(t)) 4102 } 4103 }, { 4104 "../lib/dom": 3, 4105 "../lib/helper": 6, 4106 "./instances": 18 4107 }], 4108 10: [function(t, e, i) { 4109 "use strict"; 4110 4111 function n(t, e) { 4112 function i(t) { 4113 return t.getBoundingClientRect() 4114 } 4115 var n = function(t) { 4116 t.stopPropagation() 4117 }; 4118 e.event.bind(e.scrollbarY, "click", n), e.event.bind(e.scrollbarYRail, "click", function(n) { 4119 var o = n.pageY - window.pageYOffset - i(e.scrollbarYRail).top, 4120 a = o > e.scrollbarYTop ? 1 : -1; 4121 r(t, "top", t.scrollTop + a * e.containerHeight), s(t), n.stopPropagation() 4122 }), e.event.bind(e.scrollbarX, "click", n), e.event.bind(e.scrollbarXRail, "click", function(n) { 4123 var o = n.pageX - window.pageXOffset - i(e.scrollbarXRail).left, 4124 a = o > e.scrollbarXLeft ? 1 : -1; 4125 r(t, "left", t.scrollLeft + a * e.containerWidth), s(t), n.stopPropagation() 4126 }) 4127 } 4128 var o = t("../instances"), 4129 s = t("../update-geometry"), 4130 r = t("../update-scroll"); 4131 e.exports = function(t) { 4132 n(t, o.get(t)) 4133 } 4134 }, { 4135 "../instances": 18, 4136 "../update-geometry": 19, 4137 "../update-scroll": 20 4138 }], 4139 11: [function(t, e, i) { 4140 "use strict"; 4141 4142 function n(t, e) { 4143 function i(i) { 4144 var o = n + i * e.railXRatio, 4145 r = Math.max(0, e.scrollbarXRail.getBoundingClientRect().left) + e.railXRatio * (e.railXWidth - e.scrollbarXWidth); 4146 e.scrollbarXLeft = o < 0 ? 0 : o > r ? r : o; 4147 var a = s.toInt(e.scrollbarXLeft * (e.contentWidth - e.containerWidth) / (e.containerWidth - e.railXRatio * e.scrollbarXWidth)) - e.negativeScrollAdjustment; 4148 c(t, "left", a) 4149 } 4150 var n = null, 4151 o = null, 4152 a = function(e) { 4153 i(e.pageX - o), l(t), e.stopPropagation(), e.preventDefault() 4154 }, 4155 u = function() { 4156 s.stopScrolling(t, "x"), e.event.unbind(e.ownerDocument, "mousemove", a) 4157 }; 4158 e.event.bind(e.scrollbarX, "mousedown", function(i) { 4159 o = i.pageX, n = s.toInt(r.css(e.scrollbarX, "left")) * e.railXRatio, s.startScrolling(t, "x"), e.event.bind(e.ownerDocument, "mousemove", a), e.event.once(e.ownerDocument, "mouseup", u), i.stopPropagation(), i.preventDefault() 4160 }) 4161 } 4162 4163 function o(t, e) { 4164 function i(i) { 4165 var o = n + i * e.railYRatio, 4166 r = Math.max(0, e.scrollbarYRail.getBoundingClientRect().top) + e.railYRatio * (e.railYHeight - e.scrollbarYHeight); 4167 e.scrollbarYTop = o < 0 ? 0 : o > r ? r : o; 4168 var a = s.toInt(e.scrollbarYTop * (e.contentHeight - e.containerHeight) / (e.containerHeight - e.railYRatio * e.scrollbarYHeight)); 4169 c(t, "top", a) 4170 } 4171 var n = null, 4172 o = null, 4173 a = function(e) { 4174 i(e.pageY - o), l(t), e.stopPropagation(), e.preventDefault() 4175 }, 4176 u = function() { 4177 s.stopScrolling(t, "y"), e.event.unbind(e.ownerDocument, "mousemove", a) 4178 }; 4179 e.event.bind(e.scrollbarY, "mousedown", function(i) { 4180 o = i.pageY, n = s.toInt(r.css(e.scrollbarY, "top")) * e.railYRatio, s.startScrolling(t, "y"), e.event.bind(e.ownerDocument, "mousemove", a), e.event.once(e.ownerDocument, "mouseup", u), i.stopPropagation(), i.preventDefault() 4181 }) 4182 } 4183 var s = t("../../lib/helper"), 4184 r = t("../../lib/dom"), 4185 a = t("../instances"), 4186 l = t("../update-geometry"), 4187 c = t("../update-scroll"); 4188 e.exports = function(t) { 4189 var e = a.get(t); 4190 n(t, e), o(t, e) 4191 } 4192 }, { 4193 "../../lib/dom": 3, 4194 "../../lib/helper": 6, 4195 "../instances": 18, 4196 "../update-geometry": 19, 4197 "../update-scroll": 20 4198 }], 4199 12: [function(t, e, i) { 4200 "use strict"; 4201 4202 function n(t, e) { 4203 function i(i, n) { 4204 var o = t.scrollTop; 4205 if (0 === i) { 4206 if (!e.scrollbarYActive) return !1; 4207 if (0 === o && n > 0 || o >= e.contentHeight - e.containerHeight && n < 0) return !e.settings.wheelPropagation 4208 } 4209 var s = t.scrollLeft; 4210 if (0 === n) { 4211 if (!e.scrollbarXActive) return !1; 4212 if (0 === s && i < 0 || s >= e.contentWidth - e.containerWidth && i > 0) return !e.settings.wheelPropagation 4213 } 4214 return !0 4215 } 4216 var n = !1; 4217 e.event.bind(t, "mouseenter", function() { 4218 n = !0 4219 }), e.event.bind(t, "mouseleave", function() { 4220 n = !1 4221 }); 4222 var r = !1; 4223 e.event.bind(e.ownerDocument, "keydown", function(c) { 4224 if (!(c.isDefaultPrevented && c.isDefaultPrevented() || c.defaultPrevented)) { 4225 var u = s.matches(e.scrollbarX, ":focus") || s.matches(e.scrollbarY, ":focus"); 4226 if (n || u) { 4227 var d = document.activeElement ? document.activeElement : e.ownerDocument.activeElement; 4228 if (d) {
4229 if ("IFRAME" === d.tagName) d = d.contentDocument.activeElement; 4230 else 4231 for (; d.shadowRoot;) d = d.shadowRoot.activeElement; 4232 if (o.isEditable(d)) return 4233 } 4234 var h = 0, 4235 p = 0; 4236 switch (c.which) { 4237 case 37: 4238 h = c.metaKey ? -e.contentWidth : c.altKey ? -e.containerWidth : -30; 4239 break; 4240 case 38: 4241 p = c.metaKey ? e.contentHeight : c.altKey ? e.containerHeight : 30; 4242 break; 4243 case 39: 4244 h = c.metaKey ? e.contentWidth : c.altKey ? e.containerWidth : 30; 4245 break; 4246 case 40: 4247 p = c.metaKey ? -e.contentHeight : c.altKey ? -e.containerHeight : -30; 4248 break; 4249 case 33: 4250 p = 90; 4251 break; 4252 case 32: 4253 p = c.shiftKey ? 90 : -90; 4254 break; 4255 case 34: 4256 p = -90; 4257 break; 4258 case 35: 4259 p = c.ctrlKey ? -e.contentHeight : -e.containerHeight; 4260 break; 4261 case 36: 4262 p = c.ctrlKey ? t.scrollTop : e.containerHeight; 4263 break; 4264 default: 4265 return 4266 } 4267 l(t, "top", t.scrollTop - p), l(t, "left", t.scrollLeft + h), a(t), (r = i(h, p)) && c.preventDefault() 4268 } 4269 } 4270 }) 4271 } 4272 var o = t("../../lib/helper"), 4273 s = t("../../lib/dom"), 4274 r = t("../instances"), 4275 a = t("../update-geometry"), 4276 l = t("../update-scroll"); 4277 e.exports = function(t) { 4278 n(t, r.get(t)) 4279 } 4280 }, { 4281 "../../lib/dom": 3, 4282 "../../lib/helper": 6, 4283 "../instances": 18, 4284 "../update-geometry": 19, 4285 "../update-scroll": 20 4286 }], 4287 13: [function(t, e, i) { 4288 "use strict"; 4289 4290 function n(t, e) { 4291 function i(i, n) { 4292 var o = t.scrollTop; 4293 if (0 === i) { 4294 if (!e.scrollbarYActive) return !1; 4295 if (0 === o && n > 0 || o >= e.contentHeight - e.containerHeight && n < 0) return !e.settings.wheelPropagation 4296 } 4297 var s = t.scrollLeft; 4298 if (0 === n) { 4299 if (!e.scrollbarXActive) return !1; 4300 if (0 === s && i < 0 || s >= e.contentWidth - e.containerWidth && i > 0) return !e.settings.wheelPropagation 4301 } 4302 return !0 4303 } 4304 4305 function n(t) { 4306 var e = t.deltaX, 4307 i = -1 * t.deltaY; 4308 return void 0 !== e && void 0 !== i || (e = -1 * t.wheelDeltaX / 6, i = t.wheelDeltaY / 6), t.deltaMode && 1 === t.deltaMode && (e *= 10, i *= 10), e !== e && i !== i && (e = 0, i = t.wheelDelta), t.shiftKey ? [-i, -e] : [e, i] 4309 } 4310 4311 function o(e, i) { 4312 var n = t.querySelector("textarea:hover, select[multiple]:hover, .ps-child:hover"); 4313 if (n) { 4314 if (!window.getComputedStyle(n).overflow.match(/(scroll|auto)/)) return !1; 4315 var o = n.scrollHeight - n.clientHeight; 4316 if (o > 0 && !(0 === n.scrollTop && i > 0 || n.scrollTop === o && i < 0)) return !0; 4317 var s = n.scrollLeft - n.clientWidth; 4318 if (s > 0 && !(0 === n.scrollLeft && e < 0 || n.scrollLeft === s && e > 0)) return !0 4319 } 4320 return !1 4321 } 4322 4323 function a(a) { 4324 var c = n(a), 4325 u = c[0], 4326 d = c[1]; 4327 o(u, d) || (l = !1, e.settings.useBothWheelAxes ? e.scrollbarYActive && !e.scrollbarXActive ? (d ? r(t, "top", t.scrollTop - d * e.settings.wheelSpeed) : r(t, "top", t.scrollTop + u * e.settings.wheelSpeed), l = !0) : e.scrollbarXActive && !e.scrollbarYActive && (u ? r(t, "left", t.scrollLeft + u * e.settings.wheelSpeed) : r(t, "left", t.scrollLeft - d * e.settings.wheelSpeed), l = !0) : (r(t, "top", t.scrollTop - d * e.settings.wheelSpeed), r(t, "left", t.scrollLeft + u * e.settings.wheelSpeed)), s(t), (l = l || i(u, d)) && (a.stopPropagation(), a.preventDefault())) 4328 } 4329 var l = !1; 4330 void 0 !== window.onwheel ? e.event.bind(t, "wheel", a) : void 0 !== window.onmousewheel && e.event.bind(t, "mousewheel", a) 4331 } 4332 var o = t("../instances"), 4333 s = t("../update-geometry"), 4334 r = t("../update-scroll"); 4335 e.exports = function(t) { 4336 n(t, o.get(t)) 4337 } 4338 }, { 4339 "../instances": 18, 4340 "../update-geometry": 19, 4341 "../update-scroll": 20 4342 }], 4343 14: [function(t, e, i) { 4344 "use strict"; 4345 4346 function n(t, e) { 4347 e.event.bind(t, "scroll", function() { 4348 s(t) 4349 }) 4350 } 4351 var o = t("../instances"), 4352 s = t("../update-geometry"); 4353 e.exports = function(t) { 4354 n(t, o.get(t)) 4355 } 4356 }, { 4357 "../instances": 18, 4358 "../update-geometry": 19 4359 }], 4360 15: [function(t, e, i) { 4361 "use strict"; 4362 4363 function n(t, e) { 4364 function i() { 4365 var t = window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : ""; 4366 return 0 === t.toString().length ? null : t.getRangeAt(0).commonAncestorContainer 4367 } 4368 4369 function n() { 4370 c || (c = setInterval(function() { 4371 return s.get(t) ? (a(t, "top", t.scrollTop + u.top), a(t, "left", t.scrollLeft + u.left), void r(t)) : void clearInterval(c) 4372 }, 50)) 4373 } 4374 4375 function l() { 4376 c && (clearInterval(c), c = null), o.stopScrolling(t) 4377 } 4378 var c = null, 4379 u = { 4380 top: 0, 4381 left: 0 4382 }, 4383 d = !1; 4384 e.event.bind(e.ownerDocument, "selectionchange", function() { 4385 t.contains(i()) ? d = !0 : (d = !1, l()) 4386 }), e.event.bind(window, "mouseup", function() { 4387 d && (d = !1, l()) 4388 }), e.event.bind(window, "keyup", function() { 4389 d && (d = !1, l()) 4390 }), e.event.bind(window, "mousemove", function(e) { 4391 if (d) { 4392 var i = { 4393 x: e.pageX, 4394 y: e.pageY 4395 }, 4396 s = { 4397 left: t.offsetLeft, 4398 right: t.offsetLeft + t.offsetWidth, 4399 top: t.offsetTop, 4400 bottom: t.offsetTop + t.offsetHeight 4401 }; 4402 i.x < s.left + 3 ? (u.left = -5, o.startScrolling(t, "x")) : i.x > s.right - 3 ? (u.left = 5, o.startScrolling(t, "x")) : u.left = 0, i.y < s.top + 3 ? (u.top = s.top + 3 - i.y < 5 ? -5 : -20, o.startScrolling(t, "y")) : i.y > s.bottom - 3 ? (u.top = i.y - s.bottom + 3 < 5 ? 5 : 20, o.startScrolling(t, "y")) : u.top = 0, 0 === u.top && 0 === u.left ? l() : n() 4403 } 4404 }) 4405 } 4406 var o = t("../../lib/helper"), 4407 s = t("../instances"), 4408 r = t("../update-geometry"), 4409 a = t("../update-scroll"); 4410 e.exports = function(t) { 4411 n(t, s.get(t)) 4412 } 4413 }, { 4414 "../../lib/helper": 6, 4415 "../instances": 18, 4416 "../update-geometry": 19, 4417 "../update-scroll": 20 4418 }], 4419 16: [function(t, e, i) { 4420 "use strict"; 4421 4422 function n(t, e, i, n) { 4423 function o(i, n) { 4424 var o = t.scrollTop, 4425 s = t.scrollLeft, 4426 r = Math.abs(i), 4427 a = Math.abs(n); 4428 if (a > r) { 4429 if (n < 0 && o === e.contentHeight - e.containerHeight || n > 0 && 0 === o) return !e.settings.swipePropagation 4430 } else if (r > a && (i < 0 && s === e.contentWidth - e.containerWidth || i > 0 && 0 === s)) return !e.settings.swipePropagation; 4431 return !0 4432 } 4433 4434 function l(e, i) { 4435 a(t, "top", t.scrollTop - i), a(t, "left", t.scrollLeft - e), r(t) 4436 } 4437 4438 function c() { 4439 w = !0 4440 } 4441 4442 function u() { 4443 w = !1 4444 } 4445 4446 function d(t) { 4447 return t.targetTouches ? t.targetTouches[0] : t 4448 } 4449 4450 function h(t) { 4451 return !(!t.targetTouches || 1 !== t.targetTouches.length) || !(!t.pointerType || "mouse" === t.pointerType || t.pointerType === t.MSPOINTER_TYPE_MOUSE) 4452 } 4453 4454 function p(t) { 4455 if (h(t)) { 4456 S = !0; 4457 var e = d(t); 4458 m.pageX = e.pageX, m.pageY = e.pageY, v = (new Date).getTime(), null !== b && clearInterval(b), t.stopPropagation() 4459 } 4460 } 4461 4462 function f(t) { 4463 if (!S && e.settings.swipePropagation && p(t), !w && S && h(t)) { 4464 var i = d(t), 4465 n = { 4466 pageX: i.pageX, 4467 pageY: i.pageY 4468 }, 4469 s = n.pageX - m.pageX, 4470 r = n.pageY - m.pageY; 4471 l(s, r), m = n; 4472 var a = (new Date).getTime(), 4473 c = a - v; 4474 c > 0 && (y.x = s / c, y.y = r / c, v = a), o(s, r) && (t.stopPropagation(), t.preventDefault()) 4475 } 4476 } 4477 4478 function g() { 4479 !w && S && (S = !1, clearInterval(b), b = setInterval(function() { 4480 return s.get(t) && (y.x || y.y) ? Math.abs(y.x) < .01 && Math.abs(y.y) < .01 ? void clearInterval(b) : (l(30 * y.x, 30 * y.y), y.x *= .8, void(y.y *= .8)) : void clearInterval(b) 4481 }, 10)) 4482 } 4483 var m = {}, 4484 v = 0, 4485 y = {}, 4486 b = null, 4487 w = !1, 4488 S = !1; 4489 i ? (e.event.bind(window, "touchstart", c), e.event.bind(window, "touchend", u), e.event.bind(t, "touchstart", p), e.event.bind(t, "touchmove", f), e.event.bind(t, "touchend", g)) : n && (window.PointerEvent ? (e.event.bind(window, "pointerdown", c), e.event.bind(window, "pointerup", u), e.event.bind(t, "pointerdown", p), e.event.bind(t, "pointermove", f), e.event.bind(t, "pointerup", g)) : window.MSPointerEvent && (e.event.bind(window, "MSPointerDown", c), e.event.bind(window, "MSPointerUp", u), e.event.bind(t, "MSPointerDown", p), e.event.bind(t, "MSPointerMove", f), e.event.bind(t, "MSPointerUp", g))) 4490 } 4491 var o = t("../../lib/helper"), 4492 s = t("../instances"), 4493 r = t("../update-geometry"), 4494 a = t("../update-scroll"); 4495 e.exports = function(t) { 4496 if (o.env.supportsTouch || o.env.supportsIePointer) { 4497 n(t, s.get(t), o.env.supportsTouch, o.env.supportsIePointer) 4498 } 4499 } 4500 }, { 4501 "../../lib/helper": 6, 4502 "../instances": 18, 4503 "../update-geometry": 19, 4504 "../update-scroll": 20 4505 }], 4506 17: [function(t, e, i) { 4507 "use strict"; 4508 var n = t("../lib/helper"), 4509 o = t("../lib/class"), 4510 s = t("./instances"), 4511 r = t("./update-geometry"), 4512 a = { 4513 "click-rail": t("./handler/click-rail"), 4514 "drag-scrollbar": t("./handler/drag-scrollbar"), 4515 keyboard: t("./handler/keyboard"), 4516 wheel: t("./handler/mouse-wheel"), 4517 touch: t("./handler/touch"), 4518 selection: t("./handler/selection") 4519 }, 4520 l = t("./handler/native-scroll"); 4521 e.exports = function(t, e) { 4522 e = "object" == typeof e ? e : {}, o.add(t, "ps-container"); 4523 var i = s.add(t); 4524 i.settings = n.extend(i.settings, e), o.add(t, "ps-theme-" + i.settings.theme), i.settings.handlers.forEac
4524h(function(e) { 4525 a[e](t) 4526 }), l(t), r(t) 4527 } 4528 }, { 4529 "../lib/class": 2, 4530 "../lib/helper": 6, 4531 "./handler/click-rail": 10, 4532 "./handler/drag-scrollbar": 11, 4533 "./handler/keyboard": 12, 4534 "./handler/mouse-wheel": 13, 4535 "./handler/native-scroll": 14, 4536 "./handler/selection": 15, 4537 "./handler/touch": 16, 4538 "./instances": 18, 4539 "./update-geometry": 19 4540 }], 4541 18: [function(t, e, i) { 4542 "use strict"; 4543 4544 function n(t) { 4545 function e() { 4546 l.add(t, "ps-focus") 4547 } 4548 4549 function i() { 4550 l.remove(t, "ps-focus") 4551 } 4552 var n = this; 4553 n.settings = a.clone(c), n.containerWidth = null, n.containerHeight = null, n.contentWidth = null, n.contentHeight = null, n.isRtl = "rtl" === u.css(t, "direction"), n.isNegativeScroll = function() { 4554 var e = t.scrollLeft, 4555 i = null; 4556 return t.scrollLeft = -1, i = t.scrollLeft < 0, t.scrollLeft = e, i 4557 }(), n.negativeScrollAdjustment = n.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, n.event = new d, n.ownerDocument = t.ownerDocument || document, n.scrollbarXRail = u.appendTo(u.e("div", "ps-scrollbar-x-rail"), t), n.scrollbarX = u.appendTo(u.e("div", "ps-scrollbar-x"), n.scrollbarXRail), n.scrollbarX.setAttribute("tabindex", 0), n.event.bind(n.scrollbarX, "focus", e), n.event.bind(n.scrollbarX, "blur", i), n.scrollbarXActive = null, n.scrollbarXWidth = null, n.scrollbarXLeft = null, n.scrollbarXBottom = a.toInt(u.css(n.scrollbarXRail, "bottom")), n.isScrollbarXUsingBottom = n.scrollbarXBottom === n.scrollbarXBottom, n.scrollbarXTop = n.isScrollbarXUsingBottom ? null : a.toInt(u.css(n.scrollbarXRail, "top")), n.railBorderXWidth = a.toInt(u.css(n.scrollbarXRail, "borderLeftWidth")) + a.toInt(u.css(n.scrollbarXRail, "borderRightWidth")), u.css(n.scrollbarXRail, "display", "block"), n.railXMarginWidth = a.toInt(u.css(n.scrollbarXRail, "marginLeft")) + a.toInt(u.css(n.scrollbarXRail, "marginRight")), u.css(n.scrollbarXRail, "display", ""), n.railXWidth = null, n.railXRatio = null, n.scrollbarYRail = u.appendTo(u.e("div", "ps-scrollbar-y-rail"), t), n.scrollbarY = u.appendTo(u.e("div", "ps-scrollbar-y"), n.scrollbarYRail), n.scrollbarY.setAttribute("tabindex", 0), n.event.bind(n.scrollbarY, "focus", e), n.event.bind(n.scrollbarY, "blur", i), n.scrollbarYActive = null, n.scrollbarYHeight = null, n.scrollbarYTop = null, n.scrollbarYRight = a.toInt(u.css(n.scrollbarYRail, "right")), n.isScrollbarYUsingRight = n.scrollbarYRight === n.scrollbarYRight, n.scrollbarYLeft = n.isScrollbarYUsingRight ? null : a.toInt(u.css(n.scrollbarYRail, "left")), n.scrollbarYOuterWidth = n.isRtl ? a.outerWidth(n.scrollbarY) : null, n.railBorderYWidth = a.toInt(u.css(n.scrollbarYRail, "borderTopWidth")) + a.toInt(u.css(n.scrollbarYRail, "borderBottomWidth")), u.css(n.scrollbarYRail, "display", "block"), n.railYMarginHeight = a.toInt(u.css(n.scrollbarYRail, "marginTop")) + a.toInt(u.css(n.scrollbarYRail, "marginBottom")), u.css(n.scrollbarYRail, "display", ""), n.railYHeight = null, n.railYRatio = null 4558 } 4559 4560 function o(t) { 4561 return t.getAttribute("data-ps-id") 4562 } 4563 4564 function s(t, e) { 4565 t.setAttribute("data-ps-id", e) 4566 } 4567 4568 function r(t) { 4569 t.removeAttribute("data-ps-id") 4570 } 4571 var a = t("../lib/helper"), 4572 l = t("../lib/class"), 4573 c = t("./default-setting"), 4574 u = t("../lib/dom"), 4575 d = t("../lib/event-manager"), 4576 h = t("../lib/guid"), 4577 p = {}; 4578 i.add = function(t) { 4579 var e = h(); 4580 return s(t, e), p[e] = new n(t), p[e] 4581 }, i.remove = function(t) { 4582 delete p[o(t)], r(t) 4583 }, i.get = function(t) { 4584 return p[o(t)] 4585 } 4586 }, { 4587 "../lib/class": 2, 4588 "../lib/dom": 3, 4589 "../lib/event-manager": 4, 4590 "../lib/guid": 5, 4591 "../lib/helper": 6, 4592 "./default-setting": 8 4593 }], 4594 19: [function(t, e, i) { 4595 "use strict"; 4596 4597 function n(t, e) { 4598 return t.settings.minScrollbarLength && (e = Math.max(e, t.settings.minScrollbarLength)), t.settings.maxScrollbarLength && (e = Math.min(e, t.settings.maxScrollbarLength)), e 4599 } 4600 4601 function o(t, e) { 4602 var i = { 4603 width: e.railXWidth 4604 }; 4605 e.isRtl ? i.left = e.negativeScrollAdjustment + t.scrollLeft + e.containerWidth - e.contentWidth : i.left = t.scrollLeft, e.isScrollbarXUsingBottom ? i.bottom = e.scrollbarXBottom - t.scrollTop : i.top = e.scrollbarXTop + t.scrollTop, a.css(e.scrollbarXRail, i); 4606 var n = { 4607 top: t.scrollTop, 4608 height: e.railYHeight 4609 }; 4610 e.isScrollbarYUsingRight ? e.isRtl ? n.right = e.contentWidth - (e.negativeScrollAdjustment + t.scrollLeft) - e.scrollbarYRight - e.scrollbarYOuterWidth : n.right = e.scrollbarYRight - t.scrollLeft : e.isRtl ? n.left = e.negativeScrollAdjustment + t.scrollLeft + 2 * e.containerWidth - e.contentWidth - e.scrollbarYLeft - e.scrollbarYOuterWidth : n.left = e.scrollbarYLeft + t.scrollLeft, a.css(e.scrollbarYRail, n), a.css(e.scrollbarX, { 4611 left: e.scrollbarXLeft, 4612 width: e.scrollbarXWidth - e.railBorderXWidth 4613 }), a.css(e.scrollbarY, { 4614 top: e.scrollbarYTop, 4615 height: e.scrollbarYHeight - e.railBorderYWidth 4616 }) 4617 } 4618 var s = t("../lib/helper"), 4619 r = t("../lib/class"), 4620 a = t("../lib/dom"), 4621 l = t("./instances"), 4622 c = t("./update-scroll"); 4623 e.exports = function(t) { 4624 var e = l.get(t); 4625 e.containerWidth = t.clientWidth, e.containerHeight = t.clientHeight, e.contentWidth = t.scrollWidth, e.contentHeight = t.scrollHeight; 4626 var i; 4627 t.contains(e.scrollbarXRail) || (i = a.queryChildren(t, ".ps-scrollbar-x-rail"), i.length >
4627 0 && i.forEach(function(t) { 4628 a.remove(t) 4629 }), a.appendTo(e.scrollbarXRail, t)), t.contains(e.scrollbarYRail) || (i = a.queryChildren(t, ".ps-scrollbar-y-rail"), i.length > 0 && i.forEach(function(t) { 4630 a.remove(t) 4631 }), a.appendTo(e.scrollbarYRail, t)), !e.settings.suppressScrollX && e.containerWidth + e.settings.scrollXMarginOffset < e.contentWidth ? (e.scrollbarXActive = !0, e.railXWidth = e.containerWidth - e.railXMarginWidth, e.railXRatio = e.containerWidth / e.railXWidth, e.scrollbarXWidth = n(e, s.toInt(e.railXWidth * e.containerWidth / e.contentWidth)), e.scrollbarXLeft = s.toInt((e.negativeScrollAdjustment + t.scrollLeft) * (e.railXWidth - e.scrollbarXWidth) / (e.contentWidth - e.containerWidth))) : e.scrollbarXActive = !1, !e.settings.suppressScrollY && e.containerHeight + e.settings.scrollYMarginOffset < e.contentHeight ? (e.scrollbarYActive = !0, e.railYHeight = e.containerHeight - e.railYMarginHeight, e.railYRatio = e.containerHeight / e.railYHeight, e.scrollbarYHeight = n(e, s.toInt(e.railYHeight * e.containerHeight / e.contentHeight)), e.scrollbarYTop = s.toInt(t.scrollTop * (e.railYHeight - e.scrollbarYHeight) / (e.contentHeight - e.containerHeight))) : e.scrollbarYActive = !1, e.scrollbarXLeft >= e.railXWidth - e.scrollbarXWidth && (e.scrollbarXLeft = e.railXWidth - e.scrollbarXWidth), e.scrollbarYTop >= e.railYHeight - e.scrollbarYHeight && (e.scrollbarYTop = e.railYHeight - e.scrollbarYHeight), o(t, e), e.scrollbarXActive ? r.add(t, "ps-active-x") : (r.remove(t, "ps-active-x"), e.scrollbarXWidth = 0, e.scrollbarXLeft = 0, c(t, "left", 0)), e.scrollbarYActive ? r.add(t, "ps-active-y") : (r.remove(t, "ps-active-y"), e.scrollbarYHeight = 0, e.scrollbarYTop = 0, c(t, "top", 0)) 4632 } 4633 }, { 4634 "../lib/class": 2, 4635 "../lib/dom": 3, 4636 "../lib/helper": 6, 4637 "./instances": 18, 4638 "./update-scroll": 20 4639 }], 4640 20: [function(t, e, i) { 4641 "use strict"; 4642 var n, o, s = t("./instances"), 4643 r = function(t) { 4644 var e = document.createEvent("Event"); 4645 return e.initEvent(t, !0, !0), e 4646 }; 4647 e.exports = function(t, e, i) { 4648 if (void 0 === t) throw "You must provide an element to the update-scroll function"; 4649 if (void 0 === e) throw "You must provide an axis to the update-scroll function"; 4650 if (void 0 === i) throw "You must provide a value to the update-scroll function"; 4651 "top" === e && i <= 0 && (t.scrollTop = i = 0, t.dispatchEvent(r("ps-y-reach-start"))), "left" === e && i <= 0 && (t.scrollLeft = i = 0, t.dispatchEvent(r("ps-x-reach-start"))); 4652 var a = s.get(t); 4653 "top" === e && i >= a.contentHeight - a.containerHeight && (i = a.contentHeight - a.containerHeight, i - t.scrollTop <= 1 ? i = t.scrollTop : t.scrollTop = i, t.dispatchEvent(r("ps-y-reach-end"))), "left" === e && i >= a.contentWidth - a.containerWidth && (i = a.contentWidth - a.containerWidth, i - t.scrollLeft <= 1 ? i = t.scrollLeft : t.scrollLeft = i, t.dispatchEvent(r("ps-x-reach-end"))), n || (n = t.scrollTop), o || (o = t.scrollLeft), "top" === e && i < n && t.dispatchEvent(r("ps-scroll-up")), "top" === e && i > n && t.dispatchEvent(r("ps-scroll-down")), "left" === e && i < o && t.dispatchEvent(r("ps-scroll-left")), "left" === e && i > o && t.dispatchEvent(r("ps-scroll-right")), "top" === e && (t.scrollTop = n = i, t.dispatchEvent(r("ps-scroll-y"))), "left" === e && (t.scrollLeft = o = i, t.dispatchEvent(r("ps-scroll-x"))) 4654 } 4655 }, { 4656 "./instances": 18 4657 }], 4658 21: [function(t, e, i) { 4659 "use strict"; 4660 var n = t("../lib/helper"), 4661 o = t("../lib/dom"), 4662 s = t("./instances"), 4663 r = t("./update-geometry"), 4664 a = t("./update-scroll"); 4665 e.exports = function(t) { 4666 var e = s.get(t); 4667 e && (e.negativeScrollAdjustment = e.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, o.css(e.scrollbarXRail, "display", "block"), o.css(e.scrollbarYRail, "display", "block"), e.railXMarginWidth = n.toInt(o.css(e.scrollbarXRail, "marginLeft")) + n.toInt(o.css(e.scrollbarXRail, "marginRight")), e.railYMarginHeight = n.toInt(o.css(e.scrollbarYRail, "marginTop")) + n.toInt(
4667o.css(e.scrollbarYRail, "marginBottom")), o.css(e.scrollbarXRail, "display", "none"), o.css(e.scrollbarYRail, "display", "none"), r(t), a(t, "top", t.scrollTop), a(t, "left", t.scrollLeft), o.css(e.scrollbarXRail, "display", ""), o.css(e.scrollbarYRail, "display", "")) 4668 } 4669 }, { 4670 "../lib/dom": 3, 4671 "../lib/helper": 6, 4672 "./instances": 18, 4673 "./update-geometry": 19, 4674 "./update-scroll": 20 4675 }] 4676}, {}, [1]), 4677 function(t) { 4678 "use strict"; 4679 4680 function e(t, e) { 4681 for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); 4682 return t 4683 } 4684 4685 function i(t, i) { 4686 this.el = t, this.options = e({}, this.options), e(this.options, i), this._init() 4687 } 4688 var n = { 4689 WebkitTransition: "webkitTransitionEnd", 4690 MozTransition: "transitionend", 4691 OTransition: "oTransitionEnd", 4692 msTransition: "MSTransitionEnd", 4693 transition: "transitionend" 4694 }, 4695 o = n[Modernizr.prefixed("transition")], 4696 s = { 4697 transitions: Modernizr.csstransitions 4698 }; 4699 i.prototype.options = { 4700 onSubmit: function() { 4701 return !1 4702 } 4703 }, i.prototype._init = function() { 4704 this.current = 0, this.questions = [].slice.call(this.el.querySelectorAll("ol.questions > li")), this.questionsCount = this.questions.length, classie.addClass(this.questions[0], "current"), this.ctrlNext = this.el.querySelector("button.next"), this.progress = this.el.querySelector("div.progress"), this.questionStatus = this.el.querySelector("span.number"), this.currentNum = this.questionStatus.querySelector("span.number-current"), this.currentNum.innerHTML = Number(this.current + 1), this.totalQuestionNum = this.questionStatus.querySelector("span.number-total"), this.totalQuestionNum.innerHTML = this.questionsCount, this.simInner = this.el.querySelector(".simform-inner.lastItemAlternate"), this.error = this.el.querySelector("span.error-message"), this._initEvents() 4705 }, i.prototype._initEvents = function() { 4706 var t = this, 4707 e = this.questions[this.current].querySelector("input"), 4708 i = function() { 4709 e.removeEventListener("focus", i), classie.addClass(t.ctrlNext, "show") 4710 }; 4711 e.addEventListener("focus", i), this.ctrlNext.addEventListener("click", function(e) { 4712 e.preventDefault(), t._nextQuestion() 4713 }), document.addEventListener("keydown", function(e) { 4714 13 === (e.keyCode || e.which) && (e.preventDefault(), t._nextQuestion()) 4715 }), this.el.addEventListener("keydown", function(t) { 4716 9 === (t.keyCode || t.which) && t.preventDefault() 4717 }) 4718 }, i.prototype._nextQuestion = function() { 4719 if (!this._validade()) return !1; 4720 this.current === this.questionsCount - 1 && (this.isFilled = !0), this.current === this.questionsCount - 2 && classie.addClass(this.simInner, "last-item"), this._clearError(); 4721 var t = this.questions[this.current]; 4722 if (++this.current, this._progress(), !this.isFilled) { 4723 this._updateQuestionNumber(), classie.addClass(this.el, "show-next"); 4724 var e = this.questions[this.current]; 4725 classie.removeClass(t, "current"), classie.addClass(e, "current") 4726 } 4727 var i = this, 4728 n = function(t) { 4729 s.transitions && this.removeEventListener(o, n), i.isFilled ? i._submit() : (classie.removeClass(i.el, "show-next"), i.currentNum.innerHTML = i.nextQuestionNum.innerHTML, i.questionStatus.removeChild(i.nextQuestionNum), e.querySelector("input").focus()) 4730 }; 4731 s.transitions ? this.progress.addEventListener(o, n) : n() 4732 }, i.prototype._progress = function() { 4733 this.progress.style.width = this.current * (100 / this.questionsCount) + "%" 4734 }, i.prototype._updateQuestionNumber = function() { 4735 this.nextQuestionNum = document.createElement("span"), this.nextQuestionNum.className = "number-next", this.nextQuestionNum.innerHTML = Number(this.current + 1), this.questionStatus.appendChild(this.nextQuestionNum) 4736 }, i.prototype._submit = function() { 4737 this.options.onSubmit(this.el) 4738 }, i.prototype._validade = function() { 4739 var t = this.questions[this.current].querySelector("input"); 4740 if ("" === t.value) return this._showError("EMPTYSTR"), !1; 4741 if ("email" == t.type) { 4742 var e = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 4743 if (!t.value.match(e)) return !1 4744 } 4745 return !0 4746 }, i.prototype._showError = function(t) { 4747 var e = ""; 4748 switch (t) { 4749 case "EMPTYSTR": 4750 e = "Please fill the field before continuing"; 4751 break; 4752 case "INVALIDEMAIL": 4753 e = "Please fill a valid email address" 4754 } 4755 this.error.innerHTML = e, classie.addClass(this.error, "show") 4756 }, i.prototype._clearError = function() { 4757 classie.removeClass(this.error, "show") 4758 }, t.stepsForm = i 4759}(window), 4760 function(t) { 4761 t(["jquery"], function(t) { 4762 return function() { 4763 function e(t, e, i) { 4764 return f({ 4765 type: S.error, 4766 iconClass: g().iconClasses.error, 4767 message: t, 4768 optionsOverride: i, 4769 title: e 4770 }) 4771 } 4772 4773 function i(e, i) { 4774 return e || (e = g()), v = t("#" + e.containerId), v.length ? v : (i && (v = d(e)), v) 4775 } 4776 4777 function n(t, e, i) { 4778 return f({ 4779 type: S.info, 4780 iconClass: g().iconClasses.info, 4781 message: t, 4782 optionsOverride: i, 4783 title: e 4784 }) 4785 } 4786 4787 function o(t) { 4788 y = t 4789 } 4790 4791 function s(t, e, i) { 4792 return f({ 4793 type: S.success, 4794 iconClass: g().iconClasses.success, 4795 message: t, 4796 optionsOverride: i, 4797 title: e 4798 }) 4799 } 4800 4801 function r(t, e, i) { 4802 return f({ 4803 type: S.warning, 4804 iconClass: g().iconClasses.warning, 4805 message: t, 4806 optionsOverride: i, 4807 title: e 4808 }) 4809 } 4810 4811 function a(t, e) { 4812 var n = g(); 4813 v || i(n), u(t, n, e) || c(n) 4814 } 4815 4816 function l(e) { 4817 var n = g(); 4818 return v || i(n), e && 0 === t(":focus", e).length ? void m(e) : void(v.children().length && v.remove()) 4819 } 4820 4821 function c(e) { 4822 for (var i = v.children(), n = i.length - 1; n >= 0; n--) u(t(i[n]), e) 4823 } 4824 4825 function u(e, i, n) { 4826 var o = !(!n || !n.force) && n.force;
4827 return !(!e || !o && 0 !== t(":focus", e).length || (e[i.hideMethod]({ 4828 duration: i.hideDuration, 4829 easing: i.hideEasing, 4830 complete: function() { 4831 m(e) 4832 } 4833 }), 0)) 4834 } 4835 4836 function d(e) { 4837 return v = t("<div/>").attr("id", e.containerId).addClass(e.positionClass), v.appendTo(t(e.target)), v 4838 } 4839 4840 function h() { 4841 return { 4842 tapToDismiss: !0, 4843 toastClass: "toast", 4844 containerId: "toast-container", 4845 debug: !1, 4846 showMethod: "fadeIn", 4847 showDuration: 30000, 4848 showEasing: "swing", 4849 onShown: void 0, 4850 hideMethod: "fadeOut", 4851 hideDuration: 1e3, 4852 hideEasing: "swing", 4853 onHidden: void 0, 4854 closeMethod: false, 4855 closeDuration: !1, 4856 closeEasing: !1, 4857 closeOnHover: !0, 4858 extendedTimeOut: 1e3, 4859 iconClasses: { 4860 error: "toast-error", 4861 info: "toast-info", 4862 success: "toast-success", 4863 warning: "toast-warning" 4864 }, 4865 iconClass: "toast-info", 4866 positionClass: "toast-top-right", 4867 timeOut: 5e3, 4868 titleClass: "toast-title", 4869 messageClass: "toast-message", 4870 escapeHtml: !1, 4871 target: "body", 4872 closeHtml: '<button type="button">×</button>', 4873 closeClass: "toast-close-button", 4874 newestOnTop: !0, 4875 preventDuplicates: !1, 4876 progressBar: !1, 4877 progressClass: "toast-progress", 4878 rtl: !1 4879 } 4880 } 4881 4882 function p(t) { 4883 y && y(t) 4884 } 4885 4886 function f(e) { 4887 function n(t) { 4888 return null == t && (t = ""), t.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">") 4889 } 4890 4891 function o() { 4892 var t = ""; 4893 switch (e.iconClass) { 4894 case "toast-success": 4895 case "toast-info": 4896 t = "polite"; 4897 break; 4898 default: 4899 t = "assertive" 4900 } 4901 E.attr("aria-live", t) 4902 } 4903 4904 function s() { 4905 e.iconClass && E.addClass(C.toastClass).addClass(x) 4906 } 4907 4908 function r() { 4909 C.newestOnTop ? v.prepend(E) : v.append(E) 4910 } 4911 4912 function a() { 4913 if (e.title) { 4914 var t = e.title; 4915 C.escapeHtml && (t = n(e.title)), k.append(t).addClass(C.titleClass), E.append(k) 4916 } 4917 } 4918 4919 function l() { 4920 if (e.message) { 4921 var t = e.message; 4922 C.escapeHtml && (t = n(e.message)), T.append(t).addClass(C.messageClass), E.append(T) 4923 } 4924 } 4925 4926 function c() { 4927 C.closeButton && (P.addClass(C.closeClass).attr("role", "button"), E.prepend(P)) 4928 } 4929 4930 function u() { 4931 C.progressBar && (_.addClass(C.progressClass), E.prepend(_)) 4932 } 4933 4934 function d() { 4935 C.rtl && E.addClass("rtl") 4936 } 4937 4938 function h(e) { 4939 var i = e && !1 !== C.closeMethod ? C.closeMethod : C.hideMethod, 4940 n = e && !1 !== C.closeDuration ? C.closeDuration : C.hideDuration, 4941 o = e && !1 !== C.closeEasing ? C.closeEasing : C.hideEasing; 4942 if (!t(":focus", E).length || e) return clearTimeout(M.intervalId), E[i]({ 4943 duration: n, 4944 easing: o, 4945 complete: function() { 4946 m(E), clearTimeout(I), C.onHidden && "hidden" !== A.state && C.onHidden(), A.state = "hidden", A.endTime = new Date, p(A) 4947 } 4948 }) 4949 } 4950 4951 function f() { 4952 (C.timeOut > 0 || C.extendedTimeOut > 0) && (I = setTimeout(h, C.extendedTimeOut), M.maxHideTime = parseFloat(C.extendedTimeOut), M.hideEta = (new Date).getTime() + M.maxHideTime) 4953 } 4954 4955 function y() { 4956 clearTimeout(I), M.hideEta = 0, E.stop(!0, !0)[C.showMethod]({ 4957 duration: C.showDuration, 4958 easing: C.showEasing 4959 }) 4960 } 4961 4962 function S() {
4963 var t = (M.hideEta - (new Date).getTime()) / M.maxHideTime * 100; 4964 _.width(t + "%") 4965 } 4966 var C = g(), 4967 x = e.iconClass || C.iconClass; 4968 if (void 0 !== e.optionsOverride && (C = t.extend(C, e.optionsOverride), x = e.optionsOverride.iconClass || x), ! function(t, e) { 4969 if (t.preventDuplicates) { 4970 if (e.message === b) return !0; 4971 b = e.message 4972 } 4973 return !1 4974 }(C, e)) { 4975 w++, v = i(C, !0); 4976 var I = null, 4977 E = t("<div/>"), 4978 k = t("<div/>"), 4979 T = t("<div/>"), 4980 _ = t("<div/>"), 4981 P = t(C.closeHtml), 4982 M = { 4983 intervalId: null, 4984 hideEta: null, 4985 maxHideTime: null 4986 }, 4987 A = { 4988 toastId: w, 4989 state: "visible", 4990 startTime: new Date, 4991 options: C, 4992 map: e 4993 }; 4994 return function() { 4995 s(), a(), l(), c(), u(), d(), r(), o() 4996 }(), 4997 function() { 4998 E.hide(), E[C.showMethod]({ 4999 duration: C.showDuration, 5000 easing: C.showEasing, 5001 complete: C.onShown 5002 }), C.timeOut > 0 && (I = setTimeout(h, C.timeOut), M.maxHideTime = parseFloat(C.timeOut), M.hideEta = (new Date).getTime() + M.maxHideTime, C.progressBar && (M.intervalId = setInterval(S, 10))) 5003 }(), 5004 function() { 5005 C.closeOnHover && E.hover(y, f), !C.onclick && C.tapToDismiss && E.click(h), C.closeButton && P && P.click(function(t) { 5006 t.stopPropagation ? t.stopPropagation() : void 0 !== t.cancelBubble && !0 !== t.cancelBubble && (t.cancelBubble = !0), C.onCloseClick && C.onCloseClick(t), h(!0) 5007 }), C.onclick && E.click(function(t) { 5008 C.onclick(t), h() 5009 }) 5010 }(), p(A), C.debug && console && console.log(A), E 5011 } 5012 } 5013 5014 function g() { 5015 return t.extend({}, h(), C.options) 5016 } 5017 5018 function m(t) { 5019 v || (v = i()), t.is(":visible") || (t.remove(), t = null, 0 === v.children().length && (v.remove(), b = void 0)) 5020 } 5021 var v, y, b, w = 0, 5022 S = { 5023 error: "error", 5024 info: "info", 5025 success: "success", 5026 warning: "warning" 5027 }, 5028 C = { 5029 clear: a, 5030 remove: l, 5031 error: e, 5032 getContainer: i, 5033 info: n, 5034 options: {}, 5035 subscribe: o, 5036 success: s, 5037 version: "2.1.3", 5038 warning: r 5039 }; 5040 return C 5041 }() 5042 }) 5043}("function" == typeof define && define.amd ? define : function(t, e) { 5044 "undefined" != typeof module && module.exports ? module.exports = e(require("jquery")) : window.toastr = e(window.jQuery) 5045}), 5046 function() { 5047 var t, e, i, n, o, s = function(t, e) { 5048 return function() { 5049 return t.apply(e, arguments) 5050 } 5051 }, 5052 r = [].indexOf || function(t) { 5053 for (var e = 0, i = this.length; i > e; e++) 5054 if (e in this && this[e] === t) return e; 5055 return -1 5056 }; 5057 e = function() { 5058 function t() {} 5059 return t.prototype.extend = function(t, e) { 5060 var i, n; 5061 for (i in e) n = e[i], null == t[i] && (t[i] = n); 5062 return t 5063 }, t.prototype.isMobile = function(t) { 5064 return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t) 5065 }, t.prototype.createEvent = function(t, e, i, n) { 5066 var o; 5067 return null == e && (e = !1), null == i && (i = !1), null == n && (n = null), null != document.createEvent ? (o = document.createEvent("CustomEvent"), o.initCustomEvent(t, e, i, n)) : null != document.createEventObject ? (o = document.createEventObject(), o.eventType = t) : o.eventName = t, o 5068 }, t.prototype.emitEvent = function(t, e) { 5069 return null != t.dispatchEvent ? t.dispatchEvent(e) : e in (null != t) ? t[e]() : "on" + e in (null != t) ? t["on" + e]() : void 0 5070 }, t.prototype.addEvent = function(t, e, i) { 5071 return null != t.addEventListener ? t.addEventListener(e, i, !1) : null != t.attachEvent ? t.attachEvent("on" + e, i) : t[e] = i 5072 }, t.prototype.removeEvent = function(t, e, i) { 5073 return null != t.removeEventListener ? t.removeEventListener(e, i, !1) : null != t.detachEvent ? t.detachEvent("on" + e, i) : delete t[e] 5074 }
vendor: 6,357 bytes, lines 5074-5180
5074, t.prototype.innerHeight = function() { 5075 return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight 5076 }, t 5077 }(), i = this.WeakMap || this.MozWeakMap || (i = function() { 5078 function t() { 5079 this.keys = [], this.values = [] 5080 } 5081 return t.prototype.get = function(t) { 5082 var e, i, n, o; 5083 for (o = this.keys, e = i = 0, n = o.length; n > i; e = ++i) 5084 if (o[e] === t) return this.values[e] 5085 }, t.prototype.set = function(t, e) { 5086 var i, n, o, s; 5087 for (s = this.keys, i = n = 0, o = s.length; o > n; i = ++n) 5088 if (s[i] === t) return void(this.values[i] = e); 5089 return this.keys.push(t), this.values.push(e) 5090 }, t 5091 }()), t = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (t = function() { 5092 function t() { 5093 "undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.") 5094 } 5095 return t.notSupported = !0, t.prototype.observe = function() {}, t 5096 }()), n = this.getComputedStyle || function(t) { 5097 return this.getPropertyValue = function(e) { 5098 var i; 5099 return "float" === e && (e = "styleFloat"), o.test(e) && e.replace(o, function(t, e) { 5100 return e.toUpperCase() 5101 }), (null != (i = t.currentStyle) ? i[e] : void 0) || null 5102 }, this 5103 }, o = /(\-([a-z]){1})/g, this.WOW = function() { 5104 function o(t) { 5105 null == t && (t = {}), this.scrollCallback = s(this.scrollCallback, this), this.scrollHandler = s(this.scrollHandler, this), this.resetAnimation = s(this.resetAnimation, this), this.start = s(this.start, this), this.scrolled = !0, this.config = this.util().extend(t, this.defaults), this.animationNameCache = new i, this.wowEvent = this.util().createEvent(this.config.boxClass) 5106 } 5107 return o.prototype.defaults = { 5108 boxClass: "wow", 5109 animateClass: "animated", 5110 offset: 0, 5111 mobile: !0, 5112 live: !0, 5113 callback: null 5114 }, o.prototype.init = function() { 5115 var t; 5116 return this.element = window.document.documentElement, "interactive" === (t = document.readyState) || "complete" === t ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = [] 5117 }, o.prototype.start = function() { 5118 var e, i, n, o; 5119 if (this.stopped = !1, this.boxes = function() { 5120 var t, i, n, o; 5121 for (n = this.element.querySelectorAll("." + this.config.boxClass), o = [], t = 0, i = n.length; i > t; t++) e = n[t], o.push(e); 5122 return o 5123 }.call(this), this.all = function() { 5124 var t, i, n, o; 5125 for (n = this.boxes, o = [], t = 0, i = n.length; i > t; t++) e = n[t], o.push(e); 5126 return o 5127 }.call(this), this.boxes.length) 5128 if (this.disabled()) this.resetStyle(); 5129 else 5130 for (o = this.boxes, i = 0, n = o.length; n > i; i++) e = o[i], this.applyStyle(e, !0); 5131 return this.disabled() || (this.util().addEvent(window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live ? new t(function(t) { 5132 return function(e) { 5133 var i, n, o, s, r; 5134 for (r = [], i = 0, n = e.length; n > i; i++) s = e[i], r.push(function() { 5135 var t, e, i, n; 5136 for (i = s.addedNodes || [], n = [], t = 0, e = i.length; e > t; t++) o = i[t], n.push(this.doSync(o)); 5137 return n 5138 }.call(t)); 5139 return r 5140 } 5141 }(this)).observe(document.body, { 5142 childList: !0, 5143 subtree: !0 5144 }) : void 0 5145 }, o.prototype.stop = function() { 5146 return this.stopped = !0, this.util().removeEvent(window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval ? clearInterval(this.interval) : void 0 5147 }, o.prototype.sync = function() { 5148 return t.notSupported ? this.doSync(this.element) : void 0 5149 }, o.prototype.doSync = function(t) { 5150 var e, i, n, o, s; 5151 if (null == t && (t = this.element), 1 === t.nodeType) { 5152 for (t = t.parentNode || t, o = t.querySelectorAll("." + this.config.boxClass), s = [], i = 0, n = o.length; n > i; i++) e = o[i], r.call(this.all, e) < 0 ? (this.boxes.push(e), this.all.push(e), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(e, !0), s.push(this.scrolled = !0)) : s.push(void 0); 5153 return s 5154 } 5155 }, o.prototype.show = function(t) { 5156 return this.applyStyle(t), t.className = t.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(t), this.util().emitEvent(t, this.wowEvent), this.util().addEvent(t, "animationend", this.resetAnimation), this.util().addEvent(t, "oanimationend", this.resetAnimation), this.util().addEvent(t, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(t, "MSAnimationEnd", this.resetAnimation), t 5157 }, o.prototype.applyStyle = function(t, e) { 5158 var i, n, o; 5159 return n = t.getAttribute("data-wow-duration"), i = t.getAttribute("data-wow-delay"), o = t.getAttribute("data-wow-iteration"), this.animate(function(s) { 5160 return function() { 5161 return s.customStyle(t, e, n, i, o) 5162 } 5163 }(this)) 5164 }, o.prototype.animate = function() { 5165 return "requestAnimationFrame" in window ? function(t) { 5166 return window.requestAnimationFrame(t) 5167 } : function(t) { 5168 return t() 5169 } 5170 }(), o.prototype.resetStyle = function() { 5171 var t, e, i, n, o; 5172 for (n = this.boxes, o = [], e = 0, i = n.length; i > e; e++) t = n[e], o.push(t.style.visibility = "visible"); 5173 return o 5174 }, o.prototype.resetAnimation = function(t) { 5175 var e; 5176 return t.type.toLowerCase().indexOf("animationend") >= 0 ? (e = t.target || t.srcElement, e.className = e.className.replace(this.config.animateClass, "").trim()) : void 0 5177 }, o.prototype.customStyle = function(t, e, i, n, o) { 5178 return e && this.cacheAnimationName(t), t.style.visibility = e ? "hidden" : "visible", i && this.vendorSet(t.style, { 5179 animationDuration: i 5180 }), n && this.vendorSet(t.style, {
5181 animationDelay: n 5182 }), o && this.vendorSet(t.style, { 5183 animationIterationCount: o 5184 }), this.vendorSet(t.style, { 5185 animationName: e ? "none" : this.cachedAnimationName(t) 5186 }), t 5187 }, o.prototype.vendors = ["moz", "webkit"], o.prototype.vendorSet = function(t, e) { 5188 var i, n, o, s; 5189 n = []; 5190 for (i in e) o = e[i], t["" + i] = o, n.push(function() { 5191 var e, n, r, a; 5192 for (r = this.vendors, a = [], e = 0, n = r.length; n > e; e++) s = r[e], a.push(t["" + s + i.charAt(0).toUpperCase() + i.substr(1)] = o); 5193 return a 5194 }.call(this)); 5195 return n 5196 }, o.prototype.vendorCSS = function(t, e) { 5197 var i, o, s, r, a, l; 5198 for (a = n(t), r = a.getPropertyCSSValue(e), s = this.vendors, i = 0, o = s.length; o > i; i++) l = s[i], r = r || a.getPropertyCSSValue("-" + l + "-" + e); 5199 return r 5200 }, o.prototype.animationName = function(t) { 5201 var e; 5202 try { 5203 e = this.vendorCSS(t, "animation-name").cssText 5204 } catch (i) { 5205 e = n(t).getPropertyValue("animation-name") 5206 } 5207 return "none" === e ? "" : e 5208 }, o.prototype.cacheAnimationName = function(t) { 5209 return this.animationNameCache.set(t, this.animationName(t)) 5210 }, o.prototype.cachedAnimationName = function(t) { 5211 return this.animationNameCache.get(t) 5212 }, o.prototype.scrollHandler = function() { 5213 return this.scrolled = !0 5214 }, o.prototype.scrollCallback = function() { 5215 var t; 5216 return !this.scrolled || (this.scrolled = !1, this.boxes = function() { 5217 var e, i, n, o; 5218 for (n = this.boxes, o = [], e = 0, i = n.length; i > e; e++)(t = n[e]) && (this.isVisible(t) ? this.show(t) : o.push(t)); 5219 return o 5220 }.call(this), this.boxes.length || this.config.live) ? void 0 : this.stop() 5221 }, o.prototype.offsetTop = function(t) { 5222 for (var e; void 0 === t.offsetTop;) t = t.parentNode; 5223 for (e = t.offsetTop; t = t.offsetParent;) e += t.offsetTop; 5224 return e 5225 }, o.prototype.isVisible = function(t) { 5226 var e, i, n, o, s; 5227 return i = t.getAttribute("data-wow-offset") || this.config.offset, s = window.pageYOffset, o = s + Math.min(this.element.clientHeight, this.util().innerHeight()) - i, n = this.offsetTop(t), e = n + t.clientHeight, o >= n && e >= s 5228 }, o.prototype.util = function() { 5229 return null != this._util ? this._util : this._util = new e 5230 }, o.prototype.disabled = function() { 5231 return !this.config.mobile && this.util().isMobile(navigator.userAgent) 5232 }, o 5233 }() 5234}.call(this), "function" != typeof Object.create && (Object.create = function(t) { 5235 function e() {} 5236 return e.prototype = t, new e 5237}), 5238 function(t, e, i) { 5239 var n = function(t) { 5240 var n = i.createElement("script"), 5241 s = i.getElementsByTagName("head")[0]; 5242 "file://" == e.location.origin ? n.src = "http://www.youtube.com/iframe_api" : n.src = "//www.youtube.com/iframe_api", s.appendChild(n), s = null, n = null, o(t) 5243 }, 5244 o = function(i) { 5245 "undefined" == typeof YT && void 0 === e.loadingPlayer ? (e.loadingPlayer = !0, e.dfd = t.Deferred(), e.onYouTubeIframeAPIReady = function() { 5246 e.onYouTubeIframeAPIReady = null, e.dfd.resolve("done"), i() 5247 }) : "object" == typeof YT ? i() : e.dfd.done(function(t) { 5248 i() 5249 }) 5250 }; 5251 YTPlayer = { 5252 player: null, 5253 defaults: { 5254 ratio: 16 / 9, 5255 videoId: "GDuvfi8rLzQ", 5256 mute: !0, 5257 repeat: !0, 5258 width: t(e).width(), 5259 playButtonClass: "YTPlayer-play", 5260 pauseButtonClass: "YTPlayer-pause", 5261 muteButtonClass: "YTPlayer-mute", 5262 volumeUpClass: "YTPlayer-volume-up", 5263 volumeDownClass: "YTPlayer-volume-down", 5264 start: 0, 5265 pauseOnScroll: !1, 5266 fitToBackground: !0, 5267 playerVars: { 5268 iv_load_policy: 3, 5269 modestbranding: 1, 5270 autoplay: 1, 5271 controls: 0, 5272 showinfo: 0, 5273 wmode: "opaque", 5274 branding: 0, 5275 autohide: 0 5276 }, 5277 events: null 5278 }, 5279 init: function(i, o) { 5280 var s = this; 5281 return s.userOptions = o, s.$body = t("body"), s.$node = t(i), s.$window = t(e), s.defaults.events = { 5282 onReady: function(t) { 5283 s.onPlayerReady(t), s.options.pauseOnScroll && s.pauseOnScroll(), "function" == typeof s.options.callback && s.options.callback.call(this) 5284 }, 5285 onStateChange: function(t) { 5286 1 === t.data ? (s.$node.find("img").fadeOut(400), s.$node.addClass("loaded")) : 0 === t.data && s.options.repeat && s.player.seekTo(s.options.start) 5287 } 5288 }, s.options = t.extend(!0, {}
5288, s.defaults, s.userOptions), s.options.height = Math.ceil(s.options.width / s.options.ratio), s.ID = (new Date).getTime(), s.holderID = "YTPlayer-ID-" + s.ID, s.options.fitToBackground ? s.createBackgroundVideo() : s.createContainerVideo(), s.$window.on("resize.YTplayer" + s.ID, function() { 5289 s.resize(s) 5290 }), n(s.onYouTubeIframeAPIReady.bind(s)), s.resize(s), s 5291 }, 5292 pauseOnScroll: function() { 5293 var t = this; 5294 t.$window.on("scroll.YTplayer" + t.ID, function() { 5295 1 === t.player.getPlayerState() && t.player.pauseVideo() 5296 }), t.$window.scrollStopped(function() { 5297 2 === t.player.getPlayerState() && t.player.playVideo() 5298 }) 5299 }, 5300 createContainerVideo: function() { 5301 var e = this, 5302 i = t('<div id="ytplayer-container' + e.ID + '" > <div id="' + e.holderID + '" class="ytplayer-player-inline"></div> </div> <div id="ytplayer-shield" class="ytplayer-shield"></div>'); 5303 e.$node.append(i), e.$YTPlayerString = i, i = null 5304 }, 5305 createBackgroundVideo: function() { 5306 var e = this, 5307 i = t('<div id="ytplayer-container' + e.ID + '" class="ytplayer-container background"> <div id="' + e.holderID + '" class="ytplayer-player"></div> </div> <div id="ytplayer-shield" class="ytplayer-shield"></div>'); 5308 e.$node.append(i), e.$YTPlayerString = i, i = null 5309 }, 5310 resize: function(i) { 5311 var n = t(e); 5312 i.options.fitToBackground || (n = i.$node); 5313 var o, s, r = n.width(), 5314 a = n.height(), 5315 l = t("#" + i.holderID); 5316 r / i.options.ratio < a ? (o = Math.ceil(a * i.options.ratio), l.width(o).height(a).css({ 5317 left: (r - o) / 2, 5318 top: 0 5319 })) : (s = Math.ceil(r / i.options.ratio), l.width(r).height(s).css({ 5320 left: 0, 5321 top: (a - s) / 2 5322 })), l = null, n = null 5323 }, 5324 onYouTubeIframeAPIReady: function() { 5325 var t = this; 5326 t.player = new e.YT.Player(t.holderID, t.options) 5327 }, 5328 onPlayerReady: function(t) { 5329 this.options.mute && t.target.mute(), t.target.playVideo() 5330 }, 5331 getPlayer: function() { 5332 return this.player 5333 }, 5334 destroy: function() { 5335 var i = this; 5336 i.$node.removeData("yt-init").removeData("ytPlayer").removeClass("loaded"), i.$YTPlayerString.remove(), t(e).off("resize.YTplayer" + i.ID), t(e).off("scroll.YTplayer" + i.ID), i.$body = null, i.$node = null, i.$YTPlayerString = null, i.player.destroy(), i.player = null 5337 } 5338 }, t.fn.scrollStopped = function(e) { 5339 var i = t(this), 5340 n = this; 5341 i.scroll(function() { 5342 i.data("scrollTimeout") && clearTimeout(i.data("scrollTimeout")), i.data("scrollTimeout", setTimeout(e, 250, n)) 5343 }) 5344 }, t.fn.YTPlayer = function(e) { 5345 return this.each(function() { 5346 var i = this; 5347 t(i).data("yt-init", !0); 5348 var n = Object.create(YTPlayer); 5349 n.init(i, e), t.data(i, "ytPlayer", n) 5350 }) 5351 } 5352}(jQuery, window, document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.