1!function(t) { 2 "use strict"; 3 t.fn.fitVids = function(e) { 4 var i = { 5 customSelector: null 6 }; 7 if (!document.getElementById("fit-vids-style")) { 8 var r = document.head || document.getElementsByTagName("head")[0], d = ".fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}", a = document.createElement("div"); 9 a.innerHTML = '<p>x</p><style id="fit-vids-style">' + d + "</style>", r.appendChild(a.childNodes[1]) 10 } 11 return e && t.extend(i, e), this.each(function() { 12 var e = ["iframe[src*='player.vimeo.com']", "iframe[src*='youtube.com']", "iframe[src*='youtube-nocookie.com']", "iframe[src*='kickstarter.com'][src*='video.html']", "object", "embed"]; 13 i.customSelector && e.push(i.customSelector); 14 var r = t(this).find(e.join(",")); 15 r = r.not("object object"), r.each(function() { 16 var e = t(this); 17 if (!("embed" === this.tagName.toLowerCase() && e.parent("object").length || e.parent(".fluid-width-video-wrapper").length)) { 18 var i = "object" === this.tagName.toLowerCase() || e.attr("height")&&!isNaN(parseInt(e.attr("height"), 10)) ? parseInt(e.attr("height"), 10): e.height(), r = isNaN(parseInt(e.attr("width"), 10)) ? e.width(): parseInt(e.attr("width"), 10), d = i / r; 19 if (!e.attr("id")) { 20 var a = "fitvid" + Math.floor(999999 * Math.random()); 21 e.attr("id", a) 22 } 23 e.wrap('<div class="fluid-width-video-wrapper"></div>').parent(".fluid-width-video-wrapper").css("padding-top", 100 * d + "%"), e.removeAttr("height").removeAttr("width") 24 } 25 }) 26 }) 27 } 28}(window.jQuery || window.Zepto);; 29!function(e) { 30 "function" == typeof define && define.amd ? define(["jquery"], e) : e(jQuery) 31}(function(e) { 32 function a(a) { 33 var t = {}, l = /^jQuery\d+$/; 34 return e.each(a.attributes, function(e, a) { 35 a.specified&&!l.test(a.name) && (t[a.name] = a.value) 36 }), t 37 } 38 function t(a, t) { 39 var l = this, o = e(l); 40 if (l.value == o.attr("placeholder") && o.hasClass("placeholder")) 41 if (o.data("placeholder-password")) { 42 if (o = o.hide().nextAll('input[type="password"]:first').show().attr("id", o.removeAttr("id").data("placeholder-id")), a===!0) 43 return o[0].value = t; 44 o.focus() 45 } else 46 l.value = "", o.removeClass("placeholder"), l == r() && l.select() 47 } 48 function l() { 49 var l, r = this, o = e(r), n = this.id; 50 if ("" === r.value) { 51 if ("password" === r.type) { 52 if (!o.data("placeholder-textinput")) { 53 try { 54 l = o.clone().attr({ 55 type: "text" 56 }) 57 } catch (d) { 58 l = e("<input>").attr(e.extend(a(this), { 59 type: "text" 60 })) 61 } 62 l.removeAttr("name").data({ 63 "placeholder-password": o, 64 "placeholder-id": n 65 }).bind("focus.placeholder", t), o.data({ 66 "placeholder-textinput": l, 67 "placeholder-id": n 68 }).before(l) 69 } 70 o = o.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id", n).show() 71 } 72 o.addClass("placeholder"), o[0].value = o.attr("placeholder") 73 } else 74 o.removeClass("placeholder") 75 } 76 function r() { 77 try { 78 return document.activeElement 79 } catch (e) {} 80 } 81 var o, n, d = "[object OperaMini]" == Object.prototype.toString.call(window.operamini), c = "placeholder"in document.createElement("input")&&!d, i = "placeholder"in document.createElement("textarea")&&!d, u = e.valHooks, p = e.propHooks; 82 c && i ? (n = e.fn.placeholder = function() { 83 return this 84 }, n.input = n.textarea=!0) : (n = e.fn.placeholder = function() { 85 var e = this; 86 return e.filter((c ? "textarea" : ":input") + "[placeholder]").not(".placeholder").bind({ 87 "focus.placeholder": t, 88 "blur.placeholder": l 89 }).data("placeholder-enabled", !0).trigger("blur.placeholder"), e 90 }, n.input = c, n.textarea = i, o = { 91 get: function(a) { 92 var t = e(a), l = t.data("placeholder-password"); 93 return l ? l[0].value : t.data("placeholder-enabled") && t.hasClass("placeholder") ? "" : a.value 94 }, 95 set: function(a, o) { 96 var n = e(a), d = n.data("placeholder-password"); 97 return d ? d[0].value = o : n.data("placeholder-enabled") ? ("" === o ? (a.value = o, a != r() && l.call(a)) : n.hasClass("placeholder") ? t.call(a, !0, o) || (a.value = o) : a.value = o, n) : a.value = o 98 } 99 }, c || (u.input = o, p.value = o), i || (u.textarea = o, p.value = o), e(function() { 100 e(document).delegate("form", "submit.placeholder", function() { 101 var a = e(".placeholder", this).each(t); 102 setTimeout(function() { 103 a.each(l) 104 }, 10) 105 }) 106 }), e(window).bind("beforeunload.placeholder", function() { 107 e(".placeholder").each(function() { 108 this.value = "" 109 }) 110 })) 111});; 112!function() { 113 "use strict"; 114 function t(e, o) { 115 function i(t, e) { 116 return function() { 117 return t.apply(e, arguments) 118 } 119 } 120 var r; 121 if (o = o || {}, this.trackingClick=!1, this.trackingClickStart = 0, this.targetElement = null, this.touchStartX = 0, this.touchStartY = 0, this.lastTouchIdentifier = 0, this.touchBoundary = o.touchBoundary || 10, this.layer = e, this.tapDelay = o.tapDelay || 200, this.tapTimeout = o.tapTimeout || 700, !t.notNeeded(e)) { 122 for (var a = ["onMouse", "onClick", "onTouchStart", "onTouchMove", "onTouchEnd", "onTouchCancel"], c = this, s = 0, u = a.length; u > s; s++) 123 c[a[s]] = i(c[a[s]], c); 124 n && (e.addEventListener("mouseover", this.onMouse, !0), e.addEventListener("mousedown", this.onMouse, !0), e.addEventListener("mouseup", this.onMouse, !0)), e.addEventListener("click", this.onClick, !0), e.addEventListener("touchstart", this.onTouchStart, !1), e.addEventListener("touchmove", this.onTouchMove, !1), e.addEventListener("touchend", this.onTouchEnd, !1), e.addEventListener("touchcancel", this.onTouchCancel,
124!1), Event.prototype.stopImmediatePropagation || (e.removeEventListener = function(t, n, o) { 125 var i = Node.prototype.removeEventListener; 126 "click" === t ? i.call(e, t, n.hijacked || n, o) : i.call(e, t, n, o) 127 }, e.addEventListener = function(t, n, o) { 128 var i = Node.prototype.addEventListener; 129 "click" === t ? i.call(e, t, n.hijacked || (n.hijacked = function(t) { 130 t.propagationStopped || n(t) 131 }), o) : i.call(e, t, n, o) 132 }), "function" == typeof e.onclick && (r = e.onclick, e.addEventListener("click", function(t) { 133 r(t) 134 }, !1), e.onclick = null) 135 } 136 } 137 var e = navigator.userAgent.indexOf("Windows Phone") >= 0, n = navigator.userAgent.indexOf("Android") > 0&&!e, o = /iP(ad|hone|od)/.test(navigator.userAgent)&&!e, i = o && /OS 4_\d(_\d)?/.test(navigator.userAgent), r = o && /OS [6-7]_\d/.test(navigator.userAgent), a = navigator.userAgent.indexOf("BB10") > 0; 138 t.prototype.needsClick = function(t) { 139 switch (t.nodeName.toLowerCase()) { 140 case"button": 141 case"select": 142 case"textarea": 143 if (t.disabled) 144 return !0; 145 break; 146 case"input": 147 if (o && "file" === t.type || t.disabled) 148 return !0; 149 break; 150 case"label": 151 case"iframe": 152 case"video": 153 return !0 154 } 155 return /\bneedsclick\b/.test(t.className) 156 }, t.prototype.needsFocus = function(t) { 157 switch (t.nodeName.toLowerCase()) { 158 case"textarea": 159 return !0; 160 case"select": 161 return !n; 162 case"input": 163 switch (t.type) { 164 case"button": 165 case"checkbox": 166 case"file": 167 case"image": 168 case"radio": 169 case"submit": 170 return !1 171 } 172 return !t.disabled&&!t.readOnly; 173 default: 174 return /\bneedsfocus\b/.test(t.className) 175 } 176 }, t.prototype.sendClick = function(t, e) { 177 var n, o; 178 document.activeElement && document.activeElement !== t && document.activeElement.blur(), o = e.changedTouches[0], n = document.createEvent("MouseEvents"), n.initMouseEvent(this.determineEventType(t), !0, !0, window, 1, o.screenX, o.screenY, o.clientX, o.clientY, !1, !1, !1, !1, 0, null), n.forwardedTouchEvent=!0, t.dispatchEvent(n) 179 }, t.prototype.determineEventType = function(t) { 180 return n && "select" === t.tagName.toLowerCase() ? "mousedown" : "click" 181 }, t.prototype.focus = function(t) { 182 var e; 183 o && t.setSelectionRange && 0 !== t.type.indexOf("date") && "time" !== t.type && "month" !== t.type ? (e = t.value.length, t.setSelectionRange(e, e)) : t.focus() 184 }, t.prototype.updateScrollParent = function(t) { 185 var e, n; 186 if (e = t.fastClickScrollParent, !e ||!e.contains(t)) { 187 n = t; 188 do { 189 if (n.scrollHeight > n.offsetHeight) { 190 e = n, t.fastClickScrollParent = n; 191 break 192 } 193 n = n.parentElement 194 } 195 while (n) 196 } 197 e && (e.fastClickLastScrollTop = e.scrollTop) 198 }, t.prototype.getTargetElementFromEventTarget = function(t) { 199 return t.nodeType === Node.TEXT_NODE ? t.parentNode : t 200 }, t.prototype.onTouchStart = function(t) { 201 var e, n, r; 202 if (t.targetTouches.length > 1) 203 return !0; 204 if (e = this.getTargetElementFromEventTarget(t.target), n = t.targetTouches[0], o) { 205 if (r = window.getSelection(), r.rangeCount&&!r.isCollapsed) 206 return !0; 207 if (!i) { 208 if (n.identifier && n.identifier === this.lastTouchIdentifier) 209 return t.preventDefault(), !1; 210 this.lastTouchIdentifier = n.identifier, this.updateScrollParent(e) 211 } 212 } 213 return this.trackingClick=!0, this.trackingClickStart = t.timeStamp, this.targetElement = e, this.touchStartX = n.pageX, this.touchStartY = n.pageY, t.timeStamp - this.lastClickTime < this.tapDelay && t.preventDefault(), !0 214 }, t.prototype.touchHasMoved = function(t) { 215 var e = t.changedTouches[0], n = this.touchBoundary; 216 return Math.abs(e.pageX - this.touchStartX) > n || Math.abs(e.pageY - this.touchStartY) > n 217 }, t.prototype.onTouchMove = function(t) { 218 return this.trackingClick ? ((this.targetElement !== this.getTargetElementFromEventTarget(t.target) || this.touchHasMoved(t)) && (this.trackingClick=!1, this.targetElement = null), !0) : !0 219 }, t.prototype.findControl = function(t) { 220 return void 0 !== t.control ? t.control : t.htmlFor ? document.getElementById(t.htmlFor) : t.querySelector("button, input
220:not([type=hidden]), keygen, meter, output, progress, select, textarea") 221 }, t.prototype.onTouchEnd = function(t) { 222 var e, a, c, s, u, l = this.targetElement; 223 if (!this.trackingClick) 224 return !0; 225 if (t.timeStamp - this.lastClickTime < this.tapDelay) 226 return this.cancelNextClick=!0, !0; 227 if (t.timeStamp - this.trackingClickStart > this.tapTimeout) 228 return !0; 229 if (this.cancelNextClick=!1, this.lastClickTime = t.timeStamp, a = this.trackingClickStart, this.trackingClick=!1, this.trackingClickStart = 0, r && (u = t.changedTouches[0], l = document.elementFromPoint(u.pageX - window.pageXOffset, u.pageY - window.pageYOffset) || l, l.fastClickScrollParent = this.targetElement.fastClickScrollParent), c = l.tagName.toLowerCase(), "label" === c) { 230 if (e = this.findControl(l)) { 231 if (this.focus(l), n) 232 return !1; 233 l = e 234 } 235 } else if (this.needsFocus(l)) 236 return t.timeStamp - a > 100 || o && window.top !== window && "input" === c ? (this.targetElement = null, !1) : (this.focus(l), this.sendClick(l, t), o && "select" === c || (this.targetElement = null, t.preventDefault()), !1); 237 return o&&!i && (s = l.fastClickScrollParent, s && s.fastClickLastScrollTop !== s.scrollTop)?!0 : (this.needsClick(l) || (t.preventDefault(), this.sendClick(l, t)), !1) 238 }, t.prototype.onTouchCancel = function() { 239 this.trackingClick=!1, this.targetElement = null 240 }, t.prototype.onMouse = function(t) { 241 return this.targetElement ? t.forwardedTouchEvent?!0 : !t.cancelable || this.needsClick(this.targetElement)&&!this.cancelNextClick?!0 : (t.stopImmediatePropagation ? t.stopImmediatePropagation() : t.propagationStopped=!0, t.stopPropagation(), t.preventDefault(), !1) : !0 242 }, t.prototype.onClick = function(t) { 243 var e; 244 return this.trackingClick ? (this.targetElement = null, this.trackingClick=!1, !0) : "submit" === t.target.type && 0 === t.detail?!0 : (e = this.onMouse(t), e || (this.targetElement = null), e) 245 }, t.prototype.destroy = function() { 246 var t = this.layer; 247 n && (t.removeEventListener("mouseover", this.onMouse, !0), t.removeEventListener("mousedown", this.onMouse, !0), t.removeEventListener("mouseup", this.onMouse, !0)), t.removeEventListener("click", this.onClick, !0), t.removeEventListener("touchstart", this.onTouchStart, !1), t.removeEventListener("touchmove", this.onTouchMove, !1), t.removeEventListener("touchend", this.onTouchEnd, !1), t.removeEventListener("touchcancel", this.onTouchCancel, !1) 248 }, t.notNeeded = function(t) { 249 var e, o, i, r; 250 if ("undefined" == typeof window.ontouchstart) 251 return !0; 252 if (o =+ (/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1]) { 253 if (!n) 254 return !0; 255 if (e = document.querySelector("meta[name=viewport]")) { 256 if ( - 1 !== e.content.indexOf("user-scalable=no")) 257 return !0; 258 if (o > 31 && document.documentElement.scrollWidth <= window.outerWidth) 259 return !0 260 } 261 } 262 if (a && (i = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/), i[1] >= 10 && i[2] >= 3 && (e = document.querySelector("meta[name=viewport]")))) { 263 if ( - 1 !== e.content.indexOf("user-scalable=no")) 264 return !0; 265 if (document.documentElement.scrollWidth <= window.outerWidth) 266 return !0 267 } 268 return "none" === t.style.msTouchAction || "manipulation" === t.style.touchAction?!0 : (r =+ (/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1], r >= 27 && (e = document.querySelector("meta[name=viewport]"), e && ( - 1 !== e.content.indexOf("user-scalable=no") || document.documentElement.scrollWidth <= window.outerWidth))?!0 : "none" === t.style.touchAction || "manipulation" === t.style.touchAction) 269 }, t.attach = function(e, n) { 270 return new t(e, n) 271 }, "function" == typeof define && "object" == typeof define.amd && define.amd ? define(function() { 272 return t 273 }) : "undefined" != typeof module && module.exports ? (module.exports = t.attach, module.exports.FastClick = t) : window.FastClick = t 274}();; 275 276/* 277 (accessible) 278 _ _ _ _ 279 ___| (_) ___| | __ (_)___ 280/ __| | |/ __| |/ / | / __| 281\__ \ | | (__| < _ | \__ \ 282|___/_|_|\___|_|\_(_)/ |___/ 283 |__/ 284 285 Version: [email protected] 286 Author: Jason Webb (Accessible360) 287 Website: https://accessible360.com 288 Docs: https://accessible360.github.io/accessible-slick 289 Repo: https://github.com/Accessible360/accessible-slick 290 Issues: https://github.com/Accessible360/accessible-slick/issues 291 292 */ 293/* global window, document, define, jQuery, setInterval, clearInterval */ 294;(function(factory) { 295 'use strict'; 296 if (typeof define === 'function' && define.amd) { 297 define(['jquery'], factory); 298 } else if (typeof exports !== 'undefined') { 299 module.exports = factory(require('jquery')); 300 } else { 301 factory(jQuery); 302 } 303 304}(function($) { 305 'use strict'; 306 var Slick = window.Slick || {}; 307 308 Slick = (function() { 309 310 var instanceUid = 0; 311 312 function Slick(element, settings) { 313 314 var _ = this, dataSettings; 315 316 _.defaults = { 317 adaptiveHeight: false, 318 appendArrows: $(element), 319 appendDots: $(element), 320 arrows: true, 321 arrowsPlacement: null, 322 asNavFor: null,
323 prevArrow: '<button class="slick-prev" type="button">' 324 + '<span class="slick-prev-icon" aria-hidden="true"></span>' 325 + '<span class="slick-sr-only">Previous</span>' 326 + '</button>', 327 nextArrow: '<button class="slick-next" type="button">' 328 + '<span class="slick-next-icon" aria-hidden="true"></span>' 329 + '<span class="slick-sr-only">Next</span>' 330 + '</button>', 331 autoplay: false, 332 autoplaySpeed: 3000, 333 centerMode: false, 334 centerPadding: '50px', 335 cssEase: 'ease', 336 customPaging: function(slider, i) { 337 return $('<button type="button">' 338 + '<span class="slick-dot-icon" aria-hidden="true"></span>' 339 + '<span class="slick-sr-only">Go to slide ' + (i+1) + '</span>' 340 + '</button>'); 341 }, 342 dots: false, 343 dotsClass: 'slick-dots', 344 draggable: true, 345 easing: 'linear', 346 edgeFriction: 0.35, 347 fade: false, 348 infinite: true, 349 initialSlide: 0, 350 instructionsText: null, 351 lazyLoad: 'ondemand', 352 mobileFirst: false, 353 playIcon: '<span class="slick-play-icon" aria-hidden="true"></span>', 354 pauseIcon: '<span class="slick-pause-icon" aria-hidden="true"></span>', 355 pauseOnHover: true, 356 pauseOnFocus: true, 357 pauseOnDotsHover: false, 358 regionLabel: 'carousel', 359 respondTo: 'window', 360 responsive: null, 361 rows: 1, 362 rtl: false, 363 slide: '', 364 slidesPerRow: 1, 365 slidesToShow: 1, 366 slidesToScroll: 1, 367 speed: 500, 368 swipe: true, 369 swipeToSlide: false, 370 touchMove: true, 371 touchThreshold: 5, 372 useAutoplayToggleButton: true, 373 useCSS: true, 374 useGroupRole: true, 375 useTransform: true, 376 variableWidth: false, 377 vertical: false, 378 verticalSwiping: false, 379 waitForAnimate: true, 380 zIndex: 1000 381 }; 382 383 _.initials = { 384 animating: false, 385 dragging: false, 386 autoPlayTimer: null, 387 currentDirection: 0, 388 currentLeft: null, 389 currentSlide: 0, 390 direction: 1, 391 $dots: null, 392 $instructionsText: null, 393 listWidth: null, 394 listHeight: null, 395 loadIndex: 0, 396 $nextArrow: null, 397 $pauseButton: null, 398 $pauseIcon: null, 399 $playIcon: null, 400 $prevArrow: null, 401 scrolling: false, 402 slideCount: null, 403 slideWidth: null, 404 $slideTrack: null, 405 $slides: null, 406 sliding: false, 407 slideOffset: 0, 408 swipeLeft: null, 409 swiping: false, 410 $list: null, 411 touchObject: {}, 412 transformsEnabled: false, 413 unslicked: false 414 }; 415 416 $.extend(_, _.initials); 417 418 _.activeBreakpoint = null; 419 _.animType = null; 420 _.animProp = null; 421 _.breakpoints = []; 422 _.breakpointSettings = []; 423 _.cssTransitions = false; 424 _.focussed = false; 425 _.interrupted = false; 426 _.hidden = 'hidden'; 427 _.paused = true; 428 _.positionProp = null; 429 _.respondTo = null; 430 _.rowCount = 1; 431 _.shouldClick = true; 432 _.$slider = $(element); 433 _.$slidesCache = null; 434 _.transformType = null; 435 _.transitionType = null; 436 _.visibilityChange = 'visibilitychange'; 437 _.windowWidth = 0; 438 _.windowTimer = null; 439 440 dataSettings = $(element).data('slick') || {}; 441
442 _.options = $.extend({}, _.defaults, settings, dataSettings); 443 444 _.currentSlide = _.options.initialSlide; 445 446 _.originalSettings = _.options; 447 448 if (typeof document.mozHidden !== 'undefined') { 449 _.hidden = 'mozHidden'; 450 _.visibilityChange = 'mozvisibilitychange'; 451 } else if (typeof document.webkitHidden !== 'undefined') { 452 _.hidden = 'webkitHidden'; 453 _.visibilityChange = 'webkitvisibilitychange'; 454 } 455 456 _.autoPlay = $.proxy(_.autoPlay, _); 457 _.autoPlayClear = $.proxy(_.autoPlayClear, _); 458 _.autoPlayIterator = $.proxy(_.autoPlayIterator, _); 459 _.autoPlayToggleHandler = $.proxy(_.autoPlayToggleHandler, _); 460 _.changeSlide = $.proxy(_.changeSlide, _); 461 _.clickHandler = $.proxy(_.clickHandler, _); 462 _.selectHandler = $.proxy(_.selectHandler, _); 463 _.setPosition = $.proxy(_.setPosition, _); 464 _.swipeHandler = $.proxy(_.swipeHandler, _); 465 _.dragHandler = $.proxy(_.dragHandler, _); 466 467 _.instanceUid = instanceUid++; 468 469 // A simple way to check for HTML strings 470 // Strict HTML recognition (must start with <) 471 // Extracted from jQuery v1.11 source 472 _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/; 473 474 475 _.registerBreakpoints(); 476 _.init(true); 477 478 } 479 480 return Slick; 481 482 }()); 483 484 Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) { 485 486 var _ = this; 487 488 if (typeof(index) === 'boolean') { 489 addBefore = index; 490 index = null; 491 } else if (index < 0 || (index >= _.slideCount)) { 492 return false; 493 } 494 495 _.unload(); 496 497 if (typeof(index) === 'number') { 498 if (index === 0 && _.$slides.length === 0) { 499 $(markup).appendTo(_.$slideTrack); 500 } else if (addBefore) { 501 $(markup).insertBefore(_.$slides.eq(index)); 502 } else { 503 $(markup).insertAfter(_.$slides.eq(index)); 504 } 505 } else { 506 if (addBefore === true) { 507 $(markup).prependTo(_.$slideTrack); 508 } else { 509 $(markup).appendTo(_.$slideTrack); 510 } 511 } 512 513 _.$slides = _.$slideTrack.children(this.options.slide); 514 515 _.$slideTrack.children(this.options.slide).detach(); 516 517 _.$slideTrack.append(_.$slides); 518 519 _.$slides.each(function(index, element) { 520 $(element).attr('data-slick-index', index); 521 $(element).attr('role', 'group'); 522 $(element).attr('aria-label', 'slide ' + index); 523 }); 524 525 _.$slidesCache = _.$slides; 526 527 _.reinit(); 528 529 }; 530 531 Slick.prototype.animateHeight = function() { 532 var _ = this; 533 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) { 534 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true); 535 _.$list.animate({ 536 height: targetHeight 537 }, _.options.speed); 538 } 539 }; 540 541 Slick.prototype.animateSlide = function(targetLeft, callback) { 542 543 var animProps = {}, 544 _ = this; 545 546 _.animateHeight(); 547 548 if (_.options.rtl === true && _.options.vertical === false) { 549 targetLeft = -targetLeft; 550 } 551 if (_.transformsEnabled === false) { 552 if (_.options.vertical === false) { 553 _.$slideTrack.animate({ 554 left: targetLeft 555 }, _.options.speed, _.options.easing, callback); 556 } else { 557 _.$slideTrack.animate({ 558 top: targetLeft 559 }, _.options.speed, _.options.easing, callback); 560 } 561 562 } else { 563 564 if (_.cssTransitions === false) { 565 if (_.options.rtl === true) { 566 _.currentLeft = -(_.currentLeft); 567 } 568 $({ 569 animStart: _.currentLeft 570 }).animate({ 571 animStart: targetLeft 572 }, { 573 duration: _.options.speed, 574 easing: _.options.easing, 575 step: function(now) { 576 now = Math.ceil(now); 577 if (_.options.vertical === false) { 578 animProps[_.animType] = 'translate(' + 579 now + 'px, 0px)'; 580 _.$slideTrack.css(animProps); 581 } else { 582 animProps[_.animType] = 'translate(0px,' + 583 now + 'px)'; 584 _.$slideTrack.css(animProps); 585 } 586 }, 587 complete: function() { 588 if (callback) { 589 callback.call(); 590 } 591 } 592 }); 593 594 } else { 595 596 _.applyTransition();
597 targetLeft = Math.ceil(targetLeft); 598 599 if (_.options.vertical === false) { 600 animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)'; 601 } else { 602 animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)'; 603 } 604 _.$slideTrack.css(animProps); 605 606 if (callback) { 607 setTimeout(function() { 608 609 _.disableTransition(); 610 611 callback.call(); 612 }, _.options.speed); 613 } 614 615 } 616 617 } 618 619 }; 620 621 Slick.prototype.getNavTarget = function() { 622 623 var _ = this, 624 asNavFor = _.options.asNavFor; 625 626 if ( asNavFor && asNavFor !== null ) { 627 asNavFor = $(asNavFor).not(_.$slider); 628 } 629 630 return asNavFor; 631 632 }; 633 634 Slick.prototype.asNavFor = function(index) { 635 636 var _ = this, 637 asNavFor = _.getNavTarget(); 638 639 if ( asNavFor !== null && typeof asNavFor === 'object' ) { 640 asNavFor.each(function() { 641 var target = $(this).slick('getSlick'); 642 if(!target.unslicked) { 643 target.slideHandler(index, true); 644 } 645 }); 646 } 647 648 }; 649 650 Slick.prototype.applyTransition = function(slide) { 651 652 var _ = this, 653 transition = {}; 654 655 if (_.options.fade === false) { 656 transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase; 657 } else { 658 transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase; 659 } 660 661 if (_.options.fade === false) { 662 _.$slideTrack.css(transition); 663 } else { 664 _.$slides.eq(slide).css(transition); 665 } 666 667 }; 668 669 Slick.prototype.autoPlay = function() { 670 671 var _ = this; 672 673 _.autoPlayClear(); 674 675 if ( _.slideCount > _.options.slidesToShow ) { 676 _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed ); 677 } 678 679 }; 680 681 Slick.prototype.autoPlayClear = function() { 682 683 var _ = this; 684 685 if (_.autoPlayTimer) { 686 clearInterval(_.autoPlayTimer); 687 } 688 689 }; 690 691 Slick.prototype.autoPlayIterator = function() { 692 693 var _ = this, 694 slideTo = _.currentSlide + _.options.slidesToScroll; 695 696 if ( !_.paused && !_.interrupted && !_.focussed ) { 697 698 if ( _.options.infinite === false ) { 699 700 if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) { 701 _.direction = 0; 702 } 703 704 else if ( _.direction === 0 ) { 705 706 slideTo = _.currentSlide - _.options.slidesToScroll; 707 708 if ( _.currentSlide - 1 === 0 ) { 709 _.direction = 1; 710 } 711 712 } 713 714 } 715 716 _.slideHandler( slideTo ); 717 718 } 719 720 }; 721 722 Slick.prototype.autoPlayToggleHandler = function() { 723 var _ = this; 724 725 if(_.paused) { 726 _.$playIcon.css('display', 'none'); 727 _.$pauseIcon.css('display', 'inline'); 728 729 _.$pauseButton.find('.slick-play-text').attr('style', 'display: none'); 730 _.$pauseButton.find('.slick-pause-text').removeAttr('style'); 731 732 _.slickPlay(); 733 } else { 734 _.$playIcon.css('display', 'inline'); 735 _.$pauseIcon.css('display', 'none'); 736 737 _.$pauseButton.find('.slick-play-text').removeAttr('style'); 738 _.$pauseButton.find('.slick-pause-text').attr('style', 'display: none'); 739 740 _.slickPause(); 741 } 742 }; 743 744 Slick.prototype.buildArrows = function() { 745 746 var _ = this; 747 748 if (_.options.arrows === true ) { 749 750 _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow'); 751 _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow'); 752 753 if( _.slideCount > _.options.slidesToShow ) { 754 755 if (_.htmlExpr.test(_.options.prevArrow)) { 756 if(_.options.arrowsPlacement != null) { 757 switch(_.options.arrowsPlacement) { 758 case 'beforeSlides': 759 case 'split': 760 console.log('test'); 761 _.$prevArrow.prependTo(_.options.appendArrows); 762 break; 763 764 case 'afterSlides': 765 _.$prevArrow.appendTo(_.options.appendArrows); 766 break; 767 } 768 769 } else { 770 _.$prevArrow.prependTo(_.options.appendArrows); 771 } 772 } 773 774 if (_.htmlExpr.test(_.options.nextArrow)) { 775 if(_.options.arrowsPlacement != null) { 776 switch(_.options.arrowsPlacement) { 777 case 'beforeSlides': 778 console.log('test2'); 779 _.$prevArrow.after(_.$nextArrow); 780 break; 781 782 case 'afterSlides': 783 case 'split': 784 _.$nextArrow.appendTo(_.options.appendArrows); 785 } 786 } else { 787 _.$nextArrow.appendTo(_.options.appendArrows); 788 } 789 } 790 791 if (_.options.infinite !== true) { 792 _.$prevArrow 793 .addClass('slick-disabled') 794 .prop('disabled', true); 795 } 796 797 } else { 798 799 _.$prevArrow.add( _.$nextArrow ) 800 801 .addClass('slick-hidden') 802 .prop('disabled', true); 803 } 804 805 } 806 807 }; 808 809 Slick.prototype.buildDots = function() { 810 811 var _ = this, 812 i, dot; 813 814 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 815 816 _.$slider.addClass('slick-dotted'); 817 818 dot = $('<ul />').addClass(_.options.dotsClass); 819 820 for (i = 0; i <= _.getDotCount(); i += 1) { 821 dot.append($('<li />').append(_.options.customPaging.call(this, _, i))); 822 } 823 824 _.$dots = dot.appendTo(_.options.appendDots); 825 826 _.$dots.find('li').first().addClass('slick-active'); 827 828 } 829 830 }; 831 832 Slick.prototype.buildOut = function() { 833 834 var _ = this; 835 836 _.$slides = 837 _.$slider 838 .children( _.options.slide + ':not(.slick-cloned)') 839 .addClass('slick-slide'); 840 841 _.slideCount = _.$slides.length; 842 843 _.$slides.each(function(index, element) { 844 $(element) 845 .attr('data-slick-index', index) 846 .data('originalStyling', $(element).attr('style') || ''); 847 848 if(_.options.useGroupRole) { 849 $(element) 850 .attr('role', 'group') 851 .attr('aria-label', 'slide ' + (index + 1)); 852 } 853 }); 854 855 _.$slider.addClass('slick-slider'); 856 857 _.$slider.attr('role', 'region'); 858 _.$slider.attr('aria-label', _.options.regionLabel); 859 860 _.$slideTrack = (_.slideCount === 0) ? 861 $('<div class="slick-track"/>').appendTo(_.$slider) : 862 _.$slides.wrapAll('<div class="slick-track"/>').parent(); 863 864 _.$list = _.$slideTrack.wrap( 865 '<div class="slick-list"/>').parent(); 866 _.$slideTrack.css('opacity', 0); 867 868 if (_.options.centerMode === true || _.options.swipeToSlide === true) {
869 _.options.slidesToScroll = 1; 870 } 871 872 $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading'); 873 874 _.setupInfinite(); 875 876 _.buildArrows(); 877 878 _.buildDots(); 879 880 _.updateDots(); 881 882 883 _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0); 884 885 if (_.options.draggable === true) { 886 _.$list.addClass('draggable'); 887 } 888 889 if ( _.options.autoplay && _.options.useAutoplayToggleButton ) { 890 _.$pauseIcon = $(_.options.pauseIcon).attr('aria-hidden', true); 891 _.$playIcon = $(_.options.playIcon).attr('aria-hidden', true); 892 893 _.$pauseButton = $('<button type="button" class="slick-autoplay-toggle-button">'); 894 _.$pauseButton.append(_.$pauseIcon); 895 _.$pauseButton.append(_.$playIcon.css('display', 'none')); 896 _.$pauseButton.append($('<span class="slick-pause-text slick-sr-only">Pause</span>')); 897 _.$pauseButton.append($('<span class="slick-play-text slick-sr-only" style="display: none">Play</span>')); 898 899 _.$pauseButton.prependTo(_.$slider); 900 } 901 902 if((_.options.instructionsText != null && _.options.instructionsText != '')) { 903 _.$instructionsText = $('<p class="slick-instructions slick-sr-only">' + _.options.instructionsText + '</p>'); 904 _.$instructionsText.prependTo(_.$slider); 905 } 906 907 }; 908 909 Slick.prototype.buildRows = function() { 910 911 var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection; 912 913 newSlides = document.createDocumentFragment(); 914 originalSlides = _.$slider.children(); 915 916 if(_.options.rows > 0) { 917 918 slidesPerSection = _.options.slidesPerRow * _.options.rows; 919 numOfSlides = Math.ceil( 920 originalSlides.length / slidesPerSection 921 ); 922 923 for(a = 0; a < numOfSlides; a++){ 924 var slide = document.createElement('div'); 925 for(b = 0; b < _.options.rows; b++) { 926 var row = document.createElement('div'); 927 for(c = 0; c < _.options.slidesPerRow; c++) { 928 var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c)); 929 if (originalSlides.get(target)) { 930 row.appendChild(originalSlides.get(target)); 931 } 932 } 933 slide.appendChild(row); 934 } 935 newSlides.appendChild(slide); 936 } 937 938 _.$slider.empty().append(newSlides); 939 _.$slider.children().children().children() 940 .css({ 941 'width':(100 / _.options.slidesPerRow) + '%', 942 'display': 'inline-block' 943 }); 944 945 } 946 947 }; 948 949 Slick.prototype.checkResponsive = function(initial, forceUpdate) { 950 951 var _ = this, 952 breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false; 953 var sliderWidth = _.$slider.width(); 954 var windowWidth = window.innerWidth || $(window).width(); 955 956 if (_.respondTo === 'window') { 957 respondToWidth = windowWidth; 958 } else if (_.respondTo === 'slider') { 959 respondToWidth = sliderWidth; 960 } else if (_.respondTo === 'min') { 961 respondToWidth = Math.min(windowWidth, sliderWidth); 962 } 963 964 if ( _.options.responsive && 965 _.options.responsive.length && 966 _.options.responsive !== null) { 967 968 targetBreakpoint = null; 969 970 for (breakpoint in _.breakpoints) { 971 if (_.breakpoints.hasOwnProperty(breakpoint)) { 972 if (_.originalSettings.mobileFirst === false) { 973 if (respondToWidth < _.breakpoints[breakpoint]) { 974 targetBreakpoint = _.breakpoints[breakpoint]; 975 } 976 } else { 977 if (respondToWidth > _.breakpoints[breakpoint]) {
978 targetBreakpoint = _.breakpoints[breakpoint]; 979 } 980 } 981 } 982 } 983 984 if (targetBreakpoint !== null) { 985 if (_.activeBreakpoint !== null) { 986 if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) { 987 _.activeBreakpoint = 988 targetBreakpoint; 989 if (_.breakpointSettings[targetBreakpoint] === 'unslick') { 990 _.unslick(targetBreakpoint); 991 } else { 992 _.options = $.extend({}, _.originalSettings, 993 _.breakpointSettings[ 994 targetBreakpoint]); 995 if (initial === true) { 996 _.currentSlide = _.options.initialSlide; 997 } 998 _.refresh(initial); 999 } 1000 triggerBreakpoint = targetBreakpoint; 1001 } 1002 } else { 1003 _.activeBreakpoint = targetBreakpoint; 1004 if (_.breakpointSettings[targetBreakpoint] === 'unslick') { 1005 _.unslick(targetBreakpoint); 1006 } else { 1007 _.options = $.extend({}, _.originalSettings, 1008 _.breakpointSettings[ 1009 targetBreakpoint]); 1010 if (initial === true) { 1011 _.currentSlide = _.options.initialSlide; 1012 } 1013 _.refresh(initial); 1014 } 1015 triggerBreakpoint = targetBreakpoint; 1016 } 1017 } else { 1018 if (_.activeBreakpoint !== null) { 1019 _.activeBreakpoint = null; 1020 _.options = _.originalSettings; 1021 if (initial === true) { 1022 _.currentSlide = _.options.initialSlide; 1023 } 1024 _.refresh(initial); 1025 triggerBreakpoint = targetBreakpoint; 1026 } 1027 } 1028 1029 // only trigger breakpoints during an actual break. not on initialize. 1030 if( !initial && triggerBreakpoint !== false ) { 1031 _.$slider.trigger('breakpoint', [_, triggerBreakpoint]); 1032 } 1033 } 1034 1035 }; 1036 1037 Slick.prototype.changeSlide = function(event, dontAnimate) { 1038 1039 var _ = this, 1040 $target = $(event.currentTarget), 1041 indexOffset, slideOffset, unevenOffset; 1042 1043 // If target is a link, prevent default action. 1044 if($target.is('a')) { 1045 event.preventDefault(); 1046 } 1047 1048 // If target is not the <li> element (ie: a child), find the <li>. 1049 if(!$target.is('li')) { 1050 $target = $target.closest('li'); 1051 } 1052 1053 unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0); 1054 indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll; 1055 1056 switch (event.data.message) { 1057 1058 case 'previous': 1059 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset; 1060 if (_.slideCount > _.options.slidesToShow) { 1061 _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate); 1062 } 1063 break; 1064 1065 case 'next': 1066 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset; 1067 if (_.slideCount > _.options.slidesToShow) { 1068 _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate); 1069 } 1070 break; 1071 1072 case 'index': 1073 var index = event.data.index === 0 ? 0 : 1074 event.data.index || $target.index() * _.options.slidesToScroll; 1075 1076 _.slideHandler(_.checkNavigable(index), false, dontAnimate); 1077 $target.children().trigger('focus'); 1078 break; 1079 1080 default: 1081 return; 1082 } 1083 1084 }; 1085 1086 Slick.prototype.checkNavigable = function(index) { 1087 1088 var _ = this, 1089 navigables, prevNavigable; 1090 1091 navigables = _.getNavigableIndexes(); 1092 prevNavigable = 0; 1093 if (index > navigables[navigables.length - 1]) { 1094 index = navigables[navigables.length - 1]; 1095 } else { 1096 for (var n in navigables) { 1097 if (index < navigables[n]) { 1098 index = prevNavigable; 1099 break; 1100 } 1101 prevNavigable = navigables[n];
1102 } 1103 } 1104 1105 return index; 1106 }; 1107 1108 Slick.prototype.cleanUpEvents = function() { 1109 1110 var _ = this; 1111 1112 if(_.options.autoplay && _.options.useAutoplayToggleButton) { 1113 _.$pauseButton.off('click.slick', _.autoPlayToggleHandler); 1114 } 1115 1116 if (_.options.dots && _.$dots !== null) { 1117 1118 $('li', _.$dots) 1119 .off('click.slick', _.changeSlide) 1120 .off('mouseenter.slick', $.proxy(_.interrupt, _, true)) 1121 .off('mouseleave.slick', $.proxy(_.interrupt, _, false)); 1122 } 1123 1124 _.$slider.off('focus.slick blur.slick'); 1125 1126 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 1127 _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide); 1128 _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide); 1129 } 1130 1131 _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler); 1132 _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler); 1133 _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
1134 _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler); 1135 1136 _.$list.off('click.slick', _.clickHandler); 1137 1138 $(document).off(_.visibilityChange, _.visibility); 1139 1140 _.cleanUpSlideEvents(); 1141 1142 $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange); 1143 1144 $(window).off('resize.slick.slick-' + _.instanceUid, _.resize); 1145 1146 $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault); 1147 1148 $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition); 1149 1150 }; 1151 1152 Slick.prototype.cleanUpSlideEvents = function() { 1153 1154 var _ = this; 1155 1156 _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true)); 1157 _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false)); 1158 1159 }; 1160 1161 Slick.prototype.cleanUpRows = function() { 1162 1163 var _ = this, originalSlides; 1164 1165 if(_.options.rows > 0) { 1166 originalSlides = _.$slides.children().children(); 1167 originalSlides.removeAttr('style'); 1168 _.$slider.empty().append(originalSlides); 1169 } 1170 1171 }; 1172 1173 Slick.prototype.clickHandler = function(event) { 1174 1175 var _ = this; 1176 1177 if (_.shouldClick === false) { 1178 event.stopImmediatePropagation(); 1179 event.stopPropagation(); 1180 event.preventDefault(); 1181 } 1182 1183 }; 1184 1185 Slick.prototype.destroy = function(refresh) { 1186 1187 var _ = this; 1188 1189 _.autoPlayClear(); 1190 1191 _.touchObject = {}; 1192 1193 _.cleanUpEvents(); 1194 1195 $('.slick-cloned', _.$slider).detach(); 1196 1197 if(_.options.autoplay && _.options.useAutoplayToggleButton) { 1198 _.$pauseButton.remove(); 1199 } 1200 1201 if (_.$dots) { 1202 _.$dots.remove(); 1203 } 1204 1205 if ( _.$prevArrow && _.$prevArrow.length ) { 1206 1207 _.$prevArrow 1208 .removeClass('slick-disabled slick-arrow slick-hidden') 1209 .prop('disabled', false) 1210 .css('display',''); 1211 1212 if ( _.htmlExpr.test( _.options.prevArrow )) { 1213 _.$prevArrow.remove(); 1214 } 1215 } 1216 1217 if ( _.$nextArrow && _.$nextArrow.length ) { 1218 1219 _.$nextArrow 1220 .removeClass('slick-disabled slick-arrow slick-hidden') 1221 .prop('disabled', false) 1222 .css('display',''); 1223 1224 if ( _.htmlExpr.test( _.options.nextArrow )) { 1225 _.$nextArrow.remove(); 1226 } 1227 } 1228 1229 1230 if (_.$slides) { 1231 1232 _.$slides 1233 .removeClass('slick-slide slick-active slick-center slick-visible slick-current') 1234 .removeAttr('aria-hidden') 1235 .removeAttr('data-slick-index') 1236 .each(function(){ 1237 $(this).attr('style', $(this).data('originalStyling')); 1238 }); 1239 1240 _.$slideTrack.children(this.options.slide).detach(); 1241 1242 _.$slideTrack.detach(); 1243 1244 _.$list.detach(); 1245 1246 _.$slider.append(_.$slides); 1247 } 1248 1249 _.cleanUpRows(); 1250 1251 _.$slider.removeClass('slick-slider'); 1252 _.$slider.removeClass('slick-initialized'); 1253 _.$slider.removeClass('slick-dotted'); 1254 1255 _.unslicked = true; 1256 1257 if(!refresh) { 1258 _.$slider.trigger('destroy', [_]); 1259 } 1260 1261 }; 1262 1263 Slick.prototype.disableTransition = function(slide) { 1264 1265 var _ = this, 1266 transition = {}; 1267 1268 transition[_.transitionType] = ''; 1269 1270 if (_.options.fade === false) { 1271 _.$slideTrack.css(transition); 1272 } else { 1273 _.$slides.eq(slide).css(transition); 1274 } 1275 1276 }; 1277 1278 Slick.prototype.fadeSlide = function(slideIndex, callback) { 1279 1280 var _ = this; 1281 1282 if (_.cssTransitions === false) { 1283 1284 _.$slides.eq(slideIndex).css({ 1285 zIndex: _.options.zIndex 1286 }); 1287 1288 _.$slides.eq(slideIndex).animate({ 1289 opacity: 1 1290 }, _.options.speed, _.options.easing, callback); 1291 1292 } else { 1293 1294 _.applyTransition(slideIndex); 1295 1296 _.$slides.eq(slideIndex).css({ 1297 opacity: 1, 1298 zIndex: _.options.zIndex 1299 }); 1300 1301 if (callback) { 1302 setTimeout(function() { 1303 1304 _.disableTransition(slideIndex); 1305 1306 callback.call(); 1307 }, _.options.speed); 1308 } 1309 1310 } 1311 1312 }; 1313 1314 Slick.prototype.fadeSlideOut = function(slideIndex) { 1315 1316 var _ = this; 1317 1318 if (_.cssTransitions === false) { 1319 1320 _.$slides.eq(slideIndex).animate({ 1321 opacity: 0, 1322 zIndex: _.options.zIndex - 2 1323 }, _.options.speed, _.options.easing); 1324 1325 } else { 1326 1327 _.applyTransition(slideIndex); 1328 1329 _.$slides.eq(slideIndex).css({ 1330 opacity: 0, 1331 zIndex: _.options.zIndex - 2 1332 }); 1333 1334 } 1335 1336 }; 1337
1338 Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) { 1339 1340 var _ = this; 1341 1342 if (filter !== null) { 1343 1344 _.$slidesCache = _.$slides; 1345 1346 _.unload(); 1347 1348 _.$slideTrack.children(this.options.slide).detach(); 1349 1350 _.$slidesCache.filter(filter).appendTo(_.$slideTrack); 1351 1352 _.reinit(); 1353 1354 } 1355 1356 }; 1357 1358 Slick.prototype.focusHandler = function() { 1359 1360 var _ = this; 1361 1362 // If any child element receives focus within the slider we need to pause the autoplay 1363 _.$slider 1364 .off('focus.slick blur.slick') 1365 .on( 1366 'focus.slick', 1367 '*', 1368 function(event) { 1369 var $sf = $(this); 1370 1371 setTimeout(function() { 1372 if( _.options.pauseOnFocus ) { 1373 if ($sf.is(':focus')) { 1374 _.focussed = true; 1375 _.autoPlay(); 1376 } 1377 } 1378 }, 0); 1379 } 1380 ).on( 1381 'blur.slick', 1382 '*', 1383 function(event) { 1384 var $sf = $(this); 1385 1386 // When a blur occurs on any elements within the slider we become unfocused 1387 if( _.options.pauseOnFocus ) { 1388 _.focussed = false; 1389 _.autoPlay(); 1390 } 1391 } 1392 ); 1393 }; 1394 1395 Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() { 1396 1397 var _ = this; 1398 return _.currentSlide; 1399 1400 }; 1401 1402 Slick.prototype.getDotCount = function() { 1403 1404 var _ = this; 1405 1406 var breakPoint = 0; 1407 var counter = 0; 1408 var pagerQty = 0; 1409 1410 if (_.options.infinite === true) { 1411 if (_.slideCount <= _.options.slidesToShow) { 1412 ++pagerQty; 1413 } else { 1414 while (breakPoint < _.slideCount) { 1415 ++pagerQty; 1416 breakPoint = counter + _.options.slidesToScroll; 1417 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 1418 } 1419 } 1420 } else if (_.options.centerMode === true) { 1421 pagerQty = _.slideCount; 1422 } else if(!_.options.asNavFor) { 1423 pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll); 1424 }else { 1425 while (breakPoint < _.slideCount) { 1426 ++pagerQty; 1427 breakPoint = counter + _.options.slidesToScroll; 1428 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 1429 } 1430 } 1431 1432 return pagerQty - 1; 1433 1434 }; 1435 1436 Slick.prototype.getLeft = function(slideIndex) { 1437 1438 var _ = this, 1439 targetLeft, 1440 verticalHeight, 1441 verticalOffset = 0, 1442 targetSlide, 1443 coef; 1444 1445 _.slideOffset = 0; 1446 verticalHeight = _.$slides.first().outerHeight(true); 1447 1448 if (_.options.infinite === true) { 1449 if (_.slideCount > _.options.slidesToShow) { 1450 _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1; 1451 coef = -1 1452 1453 if (_.options.vertical === true && _.options.centerMode === true) { 1454 if (_.options.slidesToShow === 2) { 1455 coef = -1.5; 1456 } else if (_.options.slidesToShow === 1) { 1457 coef = -2 1458 } 1459 } 1460 verticalOffset = (verticalHeight * _.options.slidesToShow) * coef; 1461 } 1462 if (_.slideCount % _.options.slidesToScroll !== 0) { 1463 if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) { 1464 if (slideIndex > _.slideCount) { 1465 _.slideOffset = ((_.options.slidesToShow - (sl
1465ideIndex - _.slideCount)) * _.slideWidth) * -1; 1466 verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1; 1467 } else { 1468 _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1; 1469 verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1; 1470 } 1471 } 1472 } 1473 } else { 1474 if (slideIndex + _.options.slidesToShow > _.slideCount) { 1475 _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth; 1476 verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight; 1477 } 1478 } 1479 1480 if (_.slideCount <= _.options.slidesToShow) { 1481 _.slideOffset = 0; 1482 verticalOffset = 0; 1483 } 1484 1485 if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) { 1486 _.slideOffset = ((_.slideWidth * Math.floor(_.options.slidesToShow)) / 2) - ((_.slideWidth * _.slideCount) / 2); 1487 } else if (_.options.centerMode === true && _.options.infinite === true) { 1488 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth; 1489 } else if (_.options.centerMode === true) { 1490 _.slideOffset = 0; 1491 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2); 1492 } 1493 1494 if (_.options.vertical === false) { 1495 targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset; 1496 } else { 1497 targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset; 1498 } 1499 1500 if (_.options.variableWidth === true) { 1501
1502 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) { 1503 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex); 1504 } else { 1505 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow); 1506 } 1507 1508 if (_.options.rtl === true) { 1509 if (targetSlide[0]) { 1510 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1; 1511 } else { 1512 targetLeft = 0; 1513 } 1514 } else { 1515 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0; 1516 } 1517 1518 if (_.options.centerMode === true) { 1519 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) { 1520 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex); 1521 } else { 1522 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1); 1523 } 1524 1525 if (_.options.rtl === true) { 1526 if (targetSlide[0]) { 1527 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1; 1528 } else { 1529 targetLeft = 0; 1530 } 1531 } else { 1532 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0; 1533 } 1534 1535 targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2; 1536 } 1537 } 1538 1539 return targetLeft; 1540 1541 }; 1542 1543 Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) { 1544 1545 var _ = this; 1546 1547 return _.options[option]; 1548 1549 }; 1550 1551 Slick.prototype.getNavigableIndexes = function() { 1552 1553 var _ = this, 1554 breakPoint = 0, 1555 counter = 0, 1556 indexes = [], 1557 max; 1558 1559 if (_.options.infinite === false) { 1560 max = _.slideCount; 1561 } else { 1562 breakPoint = _.options.slidesToScroll * -1; 1563 counter = _.options.slidesToScroll * -1; 1564 max = _.slideCount * 2; 1565 } 1566 1567 while (breakPoint < max) { 1568 indexes.push(breakPoint); 1569 breakPoint = counter + _.options.slidesToScroll; 1570 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 1571 } 1572 1573 return indexes; 1574 1575 }; 1576 1577 Slick.prototype.getSlick = function() { 1578 1579 return this; 1580 1581 }; 1582 1583 Slick.prototype.getSlideCount = function() { 1584 1585 var _ = this, 1586 slidesTraversed, swipedSlide, swipeTarget, centerOffset; 1587 1588 centerOffset = _.options.centerMode === true ? Math.floor(_.$list.width() / 2) : 0; 1589 swipeTarget = (_.swipeLeft * -1) + centerOffset; 1590 1591 if (_.options.swipeToSlide === true) { 1592 1593 _.$slideTrack.find('.slick-slide').each(function(index, slide) { 1594 1595 var slideOuterWidth, slideOffset, slideRightBoundary; 1596 slideOuterWidth = $(slide).outerWidth(); 1597 slideOffset = slide.offsetLeft; 1598 if (_.options.centerMode !== true) { 1599 slideOffset += (slideOuterWidth / 2); 1600 } 1601 1602 slideRightBoundary = slideOffset + (slideOuterWidth); 1603 1604 if (swipeTarget < slideRightBoundary) { 1605 swipedSlide = slide; 1606 return false; 1607 } 1608 }); 1609 1610 slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1; 1611 1612 return slidesTraversed; 1613 1614 } else { 1615 return _.options.slidesToScroll; 1616 } 1617 1618 }; 1619 1620 Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) { 1621 1622 var _ = this; 1623 1624 _.changeSlide({ 1625 data: { 1626 message: 'index', 1627 index: parseInt(slide) 1628 } 1629 }, dontAnimate); 1630 1631 }; 1632 1633 Slick.prototype.init = function(creation) { 1634 1635 var _ = this; 1636 1637 if (!$(_.$slider).hasClass('slick-initialized')) { 1638 1639 $(_.$slider).addClass('slick-initialized'); 1640 1641 _.buildRows(); 1642 _.buildOut(); 1643 _.setProps(); 1644 _.startLoad(); 1645 _.loadSlider(); 1646 _.initializeEvents(); 1647 _.updateArrows(); 1648 _.updateDots(); 1649 _.checkResponsive(true); 1650 _.focusHandler(); 1651 1652 } 1653 1654 if (creation) { 1655 _.$slider.trigger('init', [_]); 1656 } 1657 1658 if ( _.options.autoplay ) { 1659 1660 _.paused = false; 1661 _.autoPlay(); 1662 1663 } 1664 1665 _.updateSlideVisibility(); 1666 1667 if(_.options.accessibility != undefined) { 1668 console.warn('accessibility setting is no longer supported.') 1669 } 1670 1671 if(_.options.focusOnChange != undefined) { 1672 console.warn('focusOnChange is no longer supported.'); 1673 } 1674 1675 if(_.options.focusOnSelect != undefined) { 1676 console.warn('focusOnSelect is no longer supported.'); 1677 } 1678 1679 }; 1680 1681 Slick.prototype.initArrowEvents = function() { 1682 1683 var _ = this; 1684 1685 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 1686 _.$prevArrow 1687 .off('click.slick') 1688 .on('click.slick', { 1689 message: 'previous' 1690 }, _.changeSlide); 1691 _.$nextArrow 1692 .off('click.slick') 1693 .on('click.slick', { 1694 message: 'next' 1695 }, _.changeSlide); 1696 } 1697 1698 }; 1699 1700 Slick.prototype.initDotEvents = function() { 1701 1702 var _ = this; 1703 1704 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 1705 $('li', _.$dots).on('click.slick', { 1706 message: 'index' 1707 }, _.changeSlide); 1708 } 1709 1710 if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) { 1711 1712 $('li', _.$dots) 1713 .on('mouseenter.slick', $.proxy(_.interrupt, _, true))
1714 .on('mouseleave.slick', $.proxy(_.interrupt, _, false)); 1715 1716 } 1717 1718 }; 1719 1720 Slick.prototype.initSlideEvents = function() { 1721 1722 var _ = this; 1723 1724 if ( _.options.pauseOnHover ) { 1725 1726 _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true)); 1727 _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false)); 1728 1729 } 1730 1731 }; 1732 1733 Slick.prototype.initializeEvents = function() { 1734 1735 var _ = this; 1736 1737 _.initArrowEvents(); 1738 1739 _.initDotEvents(); 1740 _.initSlideEvents(); 1741 1742 if(_.options.autoplay && _.options.useAutoplayToggleButton) { 1743 _.$pauseButton.on('click.slick', _.autoPlayToggleHandler); 1744 } 1745 1746 _.$list.on('touchstart.slick mousedown.slick', { 1747 action: 'start' 1748 }, _.swipeHandler); 1749 _.$list.on('touchmove.slick mousemove.slick', { 1750 action: 'move' 1751 }, _.swipeHandler); 1752 _.$list.on('touchend.slick mouseup.slick', { 1753 action: 'end' 1754 }, _.swipeHandler);
1755 _.$list.on('touchcancel.slick mouseleave.slick', { 1756 action: 'end' 1757 }, _.swipeHandler); 1758 1759 _.$list.on('click.slick', _.clickHandler); 1760 1761 $(document).on(_.visibilityChange, $.proxy(_.visibility, _)); 1762 1763 $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _)); 1764 1765 $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _)); 1766 1767 $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault); 1768 1769 $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition); 1770 $(_.setPosition); 1771 1772 }; 1773 1774 Slick.prototype.initUI = function() { 1775 1776 var _ = this; 1777 1778 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 1779 1780 _.$prevArrow.show(); 1781 _.$nextArrow.show(); 1782 1783 } 1784 1785 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 1786 1787 _.$dots.show(); 1788 1789 } 1790 1791 }; 1792 1793 Slick.prototype.lazyLoad = function() { 1794 1795 var _ = this, 1796 loadRange, cloneRange, rangeStart, rangeEnd; 1797 1798 function loadImages(imagesScope) { 1799 1800 $('img[data-lazy]', imagesScope).each(function() { 1801 1802 var image = $(this), 1803 imageSource = $(this).attr('data-lazy'), 1804 imageSrcSet = $(this).attr('data-srcset'), 1805 imageSizes = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'), 1806 imageToLoad = document.createElement('img'); 1807 1808 imageToLoad.onload = function() { 1809 1810 image 1811 .animate({ opacity: 0 }, 100, function() { 1812 1813 if (imageSrcSet) { 1814 image 1815 .attr('srcset', imageSrcSet ); 1816 1817 if (imageSizes) { 1818 image 1819 .attr('sizes', imageSizes ); 1820 } 1821 } 1822 1823 image 1824 .attr('src', imageSource) 1825 .animate({ opacity: 1 }, 200, function() { 1826 image 1827 .removeAttr('data-lazy data-srcset data-sizes') 1828 .removeClass('slick-loading'); 1829 }); 1830 _.$slider.trigger('lazyLoaded', [_, image, imageSource]); 1831 }); 1832 1833 }; 1834 1835 imageToLoad.onerror = function() { 1836 1837 image 1838 .removeAttr( 'data-lazy' ) 1839 .removeClass( 'slick-loading' ) 1840 .addClass( 'slick-lazyload-error' ); 1841 1842 _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]); 1843 1844 }; 1845 1846 imageToLoad.src = imageSource; 1847 1848 }); 1849 1850 } 1851 1852 if (_.options.centerMode === true) { 1853 if (_.options.infinite === true) { 1854 rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1); 1855 rangeEnd = rangeStart + _.options.slidesToShow + 2; 1856 } else { 1857 rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1)); 1858 rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide; 1859 } 1860 } else { 1861 rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide; 1862 rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow); 1863 if (_.options.fade === true) { 1864 if (rangeStart > 0) rangeStart--; 1865 if (rangeEnd <= _.slideCount) rangeEnd++; 1866 } 1867 } 1868 1869 loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd); 1870 1871 if (_.options.lazyLoad === 'anticipated') { 1872 var prevSlide = rangeStart - 1, 1873 nextSlide = rangeEnd, 1874 $slides = _.$slider.find('.slick-slide'); 1875 1876 for (var i = 0; i < _.options.slidesToScroll; i++) { 1877 if (prevSlide < 0) prevSlide = _.slideCount - 1; 1878 loadRange = loadRange.add($slides.eq(prevSlide)); 1879 loadRange = loadRange.add($slides.eq(nextSlide)); 1880 prevSlide--; 1881 nextSlide++; 1882 } 1883 } 1884 1885 loadImages(loadRange); 1886 1887 if (_.slideCount <= _.options.slidesToShow) { 1888 cloneRange = _.$slider.find('.slick-slide'); 1889 loadImages(cloneRange); 1890 } else 1891 if (_.currentSlide >= _.slideCount - _.options.slidesToShow) { 1892 cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow); 1893 loadImages(cloneRange); 1894 } else if (_.currentSlide === 0) { 1895 cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1); 1896 loadImages(cloneRange); 1897 } 1898 1899 }; 1900 1901 Slick.prototype.loadSlider = function() { 1902 1903 var _ = this; 1904 1905 _.setPosition(); 1906 1907 _.$slideTrack.css({ 1908 opacity: 1 1909 }); 1910 1911 _.$slider.removeClass('slick-loading'); 1912 1913 _.initUI(); 1914 1915 if (_.options.lazyLoad === 'progressive') { 1916 _.progressiveLazyLoad(); 1917 } 1918 1919 }; 1920 1921 Slick.prototype.next = Slick.prototype.slickNext = function() { 1922 1923 var _ = this; 1924 1925 _.changeSlide({ 1926 data: { 1927 message: 'next' 1928 } 1929 }); 1930 1931 }; 1932 1933 Slick.prototype.orientationChange = function() { 1934 1935 var _ = this; 1936 1937 _.checkResponsive(); 1938 _.setPosition(); 1939 1940 }; 1941 1942 Slick.prototype.pause = Slick.prototype.slickPause = function() { 1943 1944 var _ = this; 1945 1946 _.autoPlayClear(); 1947 _.paused = true; 1948 1949 }; 1950 1951 Slick.prototype.play = Slick.prototype.slickPlay = function() { 1952 1953 var _ = this; 1954 1955 _.autoPlay();
1956 _.options.autoplay = true; 1957 _.paused = false; 1958 _.focussed = false; 1959 _.interrupted = false; 1960 1961 }; 1962 1963 Slick.prototype.postSlide = function(index) { 1964 1965 var _ = this; 1966 1967 if( !_.unslicked ) { 1968 1969 _.$slider.trigger('afterChange', [_, index]); 1970 1971 _.animating = false; 1972 1973 if (_.slideCount > _.options.slidesToShow) { 1974 _.setPosition(); 1975 } 1976 1977 _.swipeLeft = null; 1978 1979 if ( _.options.autoplay ) { 1980 _.autoPlay(); 1981 } 1982 1983 _.updateSlideVisibility(); 1984 1985 } 1986 1987 }; 1988 1989 Slick.prototype.prev = Slick.prototype.slickPrev = function() { 1990 1991 var _ = this; 1992 1993 _.changeSlide({ 1994 data: { 1995 message: 'previous' 1996 } 1997 }); 1998 1999 }; 2000 2001 Slick.prototype.preventDefault = function(event) { 2002 2003 event.preventDefault(); 2004 2005 }; 2006 2007 Slick.prototype.progressiveLazyLoad = function( tryCount ) { 2008 2009 tryCount = tryCount || 1; 2010 2011 var _ = this, 2012 $imgsToLoad = $( 'img[data-lazy]', _.$slider ), 2013 image, 2014 imageSource, 2015 imageSrcSet, 2016 imageSizes, 2017 imageToLoad; 2018 2019 if ( $imgsToLoad.length ) { 2020 2021 image = $imgsToLoad.first(); 2022 imageSource = image.attr('data-lazy'); 2023 imageSrcSet = image.attr('data-srcset'); 2024 imageSizes = image.attr('data-sizes') || _.$slider.attr('data-sizes'); 2025 imageToLoad = document.createElement('img'); 2026 2027 imageToLoad.onload = function() { 2028 2029 if (imageSrcSet) { 2030 image 2031 .attr('srcset', imageSrcSet ); 2032 2033 if (imageSizes) { 2034 image 2035 .attr('sizes', imageSizes ); 2036 } 2037 } 2038 2039 image 2040 .attr( 'src', imageSource ) 2041 .removeAttr('data-lazy data-srcset data-sizes') 2042 .removeClass('slick-loading'); 2043 2044 if ( _.options.adaptiveHeight === true ) { 2045 _.setPosition(); 2046 } 2047 2048 _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]); 2049 _.progressiveLazyLoad(); 2050 2051 }; 2052 2053 imageToLoad.onerror = function() { 2054 2055 if ( tryCount < 3 ) { 2056 2057 /** 2058 * try to load the image 3 times, 2059 * leave a slight delay so we don't get 2060 * servers blocking the request. 2061 */ 2062 setTimeout( function() { 2063 _.progressiveLazyLoad( tryCount + 1 ); 2064 }, 500 ); 2065 2066 } else { 2067 2068 image 2069 .removeAttr( 'data-lazy' ) 2070 .removeClass( 'slick-loading' ) 2071 .addClass( 'slick-lazyload-error' ); 2072 2073 _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]); 2074 2075 _.progressiveLazyLoad(); 2076 2077 } 2078 2079 }; 2080 2081 imageToLoad.src = imageSource; 2082 2083 } else { 2084 2085 _.$slider.trigger('allImagesLoaded', [ _ ]); 2086 2087 } 2088 2089 }; 2090 2091 Slick.prototype.refresh = function( initializing ) { 2092 2093 var _ = this, currentSlide, lastVisibleIndex; 2094 2095 lastVisibleIndex = _.slideCount - _.options.slidesToShow; 2096 2097 // in non-infinite sliders, we don't want to go past the 2098 // last visible index. 2099 if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) { 2100 _.currentSlide = lastVisibleIndex; 2101 } 2102 2103 // if less slides than to show, go to start. 2104 if ( _.slideCount <= _.options.slidesToShow ) { 2105 _.currentSlide = 0; 2106 2107 } 2108 2109 currentSlide = _.currentSlide; 2110 2111 _.destroy(true); 2112 2113 $.extend(_, _.initials, { currentSlide: currentSlide }); 2114
2115 _.init(); 2116 2117 if( !initializing ) { 2118 2119 _.changeSlide({ 2120 data: { 2121 message: 'index', 2122 index: currentSlide 2123 } 2124 }, false); 2125 2126 } 2127 2128 }; 2129 2130 Slick.prototype.registerBreakpoints = function() { 2131 2132 var _ = this, breakpoint, currentBreakpoint, l, 2133 responsiveSettings = _.options.responsive || null; 2134 2135 if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) { 2136 2137 _.respondTo = _.options.respondTo || 'window'; 2138 2139 for ( breakpoint in responsiveSettings ) { 2140 2141 l = _.breakpoints.length-1; 2142 2143 if (responsiveSettings.hasOwnProperty(breakpoint)) { 2144 currentBreakpoint = responsiveSettings[breakpoint].breakpoint; 2145 2146 // loop through the breakpoints and cut out any existing 2147 // ones with the same breakpoint number, we don't want dupes. 2148 while( l >= 0 ) { 2149 if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) { 2150 _.breakpoints.splice(l,1); 2151 } 2152 l--; 2153 } 2154 2155 _.breakpoints.push(currentBreakpoint); 2156 _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings; 2157 2158 } 2159 2160 } 2161 2162 _.breakpoints.sort(function(a, b) { 2163 return ( _.options.mobileFirst ) ? a-b : b-a; 2164 }); 2165 2166 } 2167 2168 }; 2169 2170 Slick.prototype.reinit = function() { 2171 2172 var _ = this; 2173 2174 _.$slides = 2175 _.$slideTrack 2176 .children(_.options.slide) 2177 .addClass('slick-slide'); 2178 2179 _.slideCount = _.$slides.length; 2180 2181 if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) { 2182 _.currentSlide = _.currentSlide - _.options.slidesToScroll; 2183 } 2184 2185 if (_.slideCount <= _.options.slidesToShow) { 2186 _.currentSlide = 0; 2187 } 2188 2189 _.registerBreakpoints(); 2190 2191 _.setProps(); 2192 _.setupInfinite(); 2193 _.buildArrows(); 2194 _.updateArrows(); 2195 _.initArrowEvents(); 2196 _.buildDots(); 2197 _.updateDots(); 2198 _.initDotEvents(); 2199 _.cleanUpSlideEvents(); 2200 _.initSlideEvents(); 2201 2202 _.checkResponsive(false, true); 2203 2204 _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0); 2205 2206 _.setPosition(); 2207 _.focusHandler(); 2208 2209 _.paused = !_.options.autoplay; 2210 _.autoPlay(); 2211 2212 _.$slider.trigger('reInit', [_]); 2213 2214 }; 2215 2216 Slick.prototype.resize = function() { 2217 2218 var _ = this; 2219 2220 if ($(window).width() !== _.windowWidth) { 2221 clearTimeout(_.windowDelay); 2222 _.windowDelay = window.setTimeout(function() { 2223 _.windowWidth = $(window).width(); 2224 _.checkResponsive(); 2225 if( !_.unslicked ) { _.setPosition(); } 2226 }, 50); 2227 } 2228 }; 2229 2230 Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) { 2231 2232 var _ = this; 2233 2234 if (typeof(index) === 'boolean') { 2235 removeBefore = index; 2236 index = removeBefore === true ? 0 : _.slideCount - 1; 2237 } else { 2238 index = removeBefore === true ? --index : index; 2239 } 2240 2241 if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) { 2242 return false; 2243 } 2244 2245 _.unload(); 2246 2247 if (removeAll === true) { 2248 _.$slideTrack.children().remove(); 2249 } else { 2250 _.$slideTrack.children(this.options.slide).eq(index).remove(); 2251 } 2252 2253 _.$slides = _.$slideTrack.children(this.options.slide); 2254 2255 _.$slideTrack.children(this.options.slide).detach(); 2256 2257 _.$slideTrack.append(_.$slides); 2258 2259 _.$slidesCache = _.$slides; 2260 2261 _.reinit(); 2262 2263 }; 2264 2265 Slick.prototype.setCSS = function(position) { 2266 2267 var _ = this, 2268 positionProps = {}, 2269 x, y; 2270 2271 if (_.options.rtl === true) { 2272 position = -position; 2273 } 2274 x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px'; 2275 y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px'; 2276 2277 positionProps[_.positionProp] = position; 2278 2279 if (_.transformsEnabled === false) { 2280 _.$slideTrack.css(positionProps); 2281 } else { 2282 positionProps = {}; 2283 if (_.cssTransitions === false) { 2284 positionProps[_.animType] = 'translate(' + x + ', ' + y + ')'; 2285 _.$slideTrack.css(positionProps); 2286 } else { 2287 positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)'; 2288 _.$slideTrack.css(positionProps); 2289 } 2290 } 2291 2292 }; 2293 2294 Slick.prototype.setDimensions = function() { 2295 2296 var _ = this; 2297 2298 if (_.options.vertical === false) { 2299 if (_.options.centerMode === true) { 2300 _.$list.css({ 2301 padding: ('0px ' + _.options.centerPadding) 2302 }); 2303 } 2304 } else { 2305 _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow); 2306 if (_.options.centerMode === true) { 2307 _.$list.css({ 2308 padding: (_.options.centerPadding + ' 0px') 2309 }); 2310 } 2311 } 2312 2313 _.listWidth = _.$list.width(); 2314 _.listHeight = _.$list.height(); 2315 2316 2317 if (_.options.vertical === false && _.options.variableWidth === false) { 2318 _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow); 2319 _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length))); 2320 2321 } else if (_.options.variableWidth === true) { 2322 _.$slideTrack.width(5000 * _.slideCount); 2323 } else { 2324 _.slideWidth = Math.ceil(_.listWidth);
2325 _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length))); 2326 } 2327 2328 var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width(); 2329 if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset); 2330 2331 }; 2332 2333 Slick.prototype.setFade = function() { 2334 2335 var _ = this, 2336 targetLeft; 2337 2338 _.$slides.each(function(index, element) { 2339 targetLeft = (_.slideWidth * index) * -1; 2340 if (_.options.rtl === true) { 2341 $(element).css({ 2342 position: 'relative', 2343 right: targetLeft, 2344 top: 0, 2345 zIndex: _.options.zIndex - 2, 2346 opacity: 0 2347 }); 2348 } else { 2349 $(element).css({ 2350 position: 'relative', 2351 left: targetLeft, 2352 top: 0, 2353 zIndex: _.options.zIndex - 2, 2354 opacity: 0 2355 }); 2356 } 2357 }); 2358 2359 _.$slides.eq(_.currentSlide).css({ 2360 zIndex: _.options.zIndex - 1, 2361 opacity: 1 2362 }); 2363 2364 }; 2365 2366 Slick.prototype.setHeight = function() { 2367 2368 var _ = this; 2369 2370 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) { 2371 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true); 2372 _.$list.css('height', targetHeight); 2373 } 2374 2375 }; 2376 2377 Slick.prototype.setOption = 2378 Slick.prototype.slickSetOption = function() { 2379 2380 /** 2381 * accepts arguments in format of: 2382 * 2383 * - for changing a single option's value: 2384 * .slick("setOption", option, value, refresh ) 2385 * 2386 * - for changing a set of responsive options: 2387 * .slick("setOption", 'responsive', [{}, ...], refresh ) 2388 * 2389 * - for updating multiple values at once (not responsive) 2390 * .slick("setOption", { 'option': value, ... }, refresh ) 2391 */ 2392 2393 var _ = this, l, item, option, value, refresh = false, type; 2394 2395 if( $.type( arguments[0] ) === 'object' ) { 2396 2397 option = arguments[0]; 2398 refresh = arguments[1]; 2399 type = 'multiple'; 2400 2401 } else if ( $.type( arguments[0] ) === 'string' ) { 2402 2403 option = arguments[0]; 2404 value = arguments[1]; 2405 refresh = arguments[2]; 2406 2407 if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) { 2408 2409 type = 'responsive'; 2410 2411 } else if ( typeof arguments[1] !== 'undefined' ) { 2412 2413 type = 'single'; 2414 2415 } 2416 2417 } 2418 2419 if ( type === 'single' ) { 2420 2421 _.options[option] = value; 2422 2423 2424 } else if ( type === 'multiple' ) { 2425 2426 $.each( option , function( opt, val ) { 2427 2428 _.options[opt] = val; 2429 2430 }); 2431 2432 2433 } else if ( type === 'responsive' ) { 2434 2435 for ( item in value ) { 2436 2437 if( $.type( _.options.responsive ) !== 'array' ) { 2438 2439 _.options.responsive = [ value[item] ]; 2440 2441 } else { 2442 2443 l = _.options.responsive.length-1; 2444 2445 // loop through the responsive object and splice out duplicates. 2446 while( l >= 0 ) { 2447 2448 if( _.options.responsive[l].breakpoint === value[item].breakpoint ) { 2449 2450 _.options.responsive.splice(l,1); 2451 2452 } 2453 2454 l--; 2455 2456 } 2457 2458 _.options.responsive.push( value[item] ); 2459 2460 } 2461 2462 } 2463 2464 } 2465 2466 if ( refresh ) { 2467 2468 _.unload(); 2469 _.reinit(); 2470 2471 } 2472 2473 }; 2474 2475 Slick.prototype.setPosition = function() { 2476 2477 var _ = this; 2478 2479 _.setDimensions(); 2480 2481 _.setHeight(); 2482 2483 if (_.options.fade === false) { 2484 _.setCSS(_.getLeft(_.currentSlide)); 2485 } else { 2486 _.setFade(); 2487 } 2488 2489 _.$slider.trigger('setPosition', [_]); 2490 2491 }; 2492 2493 Slick.prototype.setProps = function() { 2494 2495 var _ = this, 2496 bodyStyle = document.body.style; 2497 2498 _.positionProp = _.options.vertical === true ? 'top' : 'left'; 2499 2500 if (_.positionProp === 'top') { 2501 _.$slider.addClass('slick-vertical'); 2502 } else { 2503 _.$slider.removeClass('slick-vertical'); 2504 } 2505 2506 if (bodyStyle.WebkitTransition !== undefined || 2507 bodyStyle.MozTransition !== undefined || 2508 bodyStyle.msTransition !== undefined) { 2509 if (_.options.useCSS === true) { 2510 _.cssTransitions = true; 2511 } 2512 } 2513 2514 if ( _.options.fade ) { 2515 if ( typeof _.options.zIndex === 'number' ) { 2516 if( _.options.zIndex < 3 ) {
2517 _.options.zIndex = 3; 2518 } 2519 } else { 2520 _.options.zIndex = _.defaults.zIndex; 2521 } 2522 } 2523 2524 if (bodyStyle.OTransform !== undefined) { 2525 _.animType = 'OTransform'; 2526 _.transformType = '-o-transform'; 2527 _.transitionType = 'OTransition'; 2528 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false; 2529 } 2530 if (bodyStyle.MozTransform !== undefined) { 2531 _.animType = 'MozTransform'; 2532 _.transformType = '-moz-transform'; 2533 _.transitionType = 'MozTransition'; 2534 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false; 2535 } 2536 if (bodyStyle.webkitTransform !== undefined) { 2537 _.animType = 'webkitTransform'; 2538 _.transformType = '-webkit-transform'; 2539 _.transitionType = 'webkitTransition'; 2540 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false; 2541 } 2542 if (bodyStyle.msTransform !== undefined) { 2543 _.animType = 'msTransform'; 2544 _.transformType = '-ms-transform'; 2545 _.transitionType = 'msTransition'; 2546 if (bodyStyle.msTransform === undefined) _.animType = false; 2547 } 2548 if (bodyStyle.transform !== undefined && _.animType !== false) { 2549 _.animType = 'transform'; 2550 _.transformType = 'transform'; 2551 _.transitionType = 'transition'; 2552 } 2553 _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false); 2554 }; 2555 2556 2557 Slick.prototype.setSlideClasses = function(index) { 2558 2559 var _ = this, 2560 centerOffset, allSlides, indexOffset, remainder; 2561 2562 allSlides = _.$slider 2563 .find('.slick-slide') 2564 .removeClass('slick-active slick-center slick-current') 2565 .attr('aria-hidden', 'true') 2566 .attr('aria-label', function() { 2567 return $(this).attr('aria-label').replace(' (centered)', ''); 2568 }); 2569 2570 _.$slides 2571 .eq(index) 2572 .addClass('slick-current'); 2573 2574 if (_.options.centerMode === true) { 2575 2576 var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0; 2577 2578 centerOffset = Math.floor(_.options.slidesToShow / 2); 2579 2580 if (_.options.infinite === true) { 2581 2582 if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) { 2583 _.$slides 2584 .slice(index - centerOffset + evenCoef, index + centerOffset + 1) 2585 .addClass('slick-active') 2586 .removeAttr('aria-hidden'); 2587 2588 } else { 2589 2590 indexOffset = _.options.slidesToShow + index; 2591 allSlides 2592 .slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2) 2593 .addClass('slick-active') 2594 .removeAttr('aria-hidden'); 2595 2596 } 2597 2598 if (index === 0) { 2599 2600 allSlides 2601 .eq( _.options.slidesToShow + _.slideCount + 1 ) 2602 .addClass('slick-center') 2603 .attr('aria-label', function() { 2604 return $(this).attr('aria-label') + ' (centered)'; 2605 }); 2606 2607 } else if (index === _.slideCount - 1) { 2608 2609 allSlides 2610 .eq(_.options.slidesToShow) 2611 .addClass('slick-center') 2612 .attr('aria-label', function() { 2613 return $(this).attr('aria-label') + ' (centered)'; 2614 }); 2615 2616 } 2617 2618 } 2619 2620 _.$slides 2621 .eq(index) 2622 .addClass('slick-center') 2623 .attr('aria-label', function() { 2624 return $(this).attr('aria-label') + ' (centered)'; 2625 }); 2626 2627 } else { 2628 2629 if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) { 2630 2631 _.$slides 2632 .slice(index, index + _.options.slidesToShow) 2633 .addClass('slick-active') 2634 .removeAttr('aria-hidden'); 2635 2636 } else if (allSlides.length <= _.options.slidesToShow) { 2637 2638 allSlides 2639 .addClass('slick-active') 2640 .removeAttr('aria-hidden'); 2641 2642 } else { 2643 2644 remainder = _.slideCount % _.options.slidesToShow;
2645 indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index; 2646 2647 if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) { 2648 2649 allSlides 2650 .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder) 2651 .addClass('slick-active') 2652 .removeAttr('aria-hidden'); 2653 2654 } else { 2655 2656 allSlides 2657 .slice(indexOffset, indexOffset + _.options.slidesToShow) 2658 .addClass('slick-active') 2659 .removeAttr('aria-hidden'); 2660 2661 } 2662 2663 } 2664 2665 } 2666 2667 if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') { 2668 _.lazyLoad(); 2669 } 2670 }; 2671 2672 Slick.prototype.setupInfinite = function() { 2673 2674 var _ = this, 2675 i, slideIndex, infiniteCount; 2676 2677 if (_.options.fade === true) { 2678 _.options.centerMode = false; 2679 } 2680 2681 if (_.options.infinite === true && _.options.fade === false) { 2682 2683 slideIndex = null; 2684 2685 if (_.slideCount > _.options.slidesToShow) { 2686 2687 if (_.options.centerMode === true) { 2688 infiniteCount = _.options.slidesToShow + 1; 2689 } else { 2690 infiniteCount = _.options.slidesToShow; 2691 } 2692 2693 for (i = _.slideCount; i > (_.slideCount - 2694 infiniteCount); i -= 1) { 2695 slideIndex = i - 1; 2696 $(_.$slides[slideIndex]).clone(true).attr('id', '') 2697 .attr('data-slick-index', slideIndex - _.slideCount) 2698 .prependTo(_.$slideTrack).addClass('slick-cloned'); 2699 } 2700 for (i = 0; i < infiniteCount + _.slideCount; i += 1) { 2701 slideIndex = i; 2702 $(_.$slides[slideIndex]).clone(true).attr('id', '') 2703 .attr('data-slick-index', slideIndex + _.slideCount) 2704 .appendTo(_.$slideTrack).addClass('slick-cloned'); 2705 } 2706 _.$slideTrack.find('.slick-cloned').find('[id]').each(function() { 2707 $(this).attr('id', ''); 2708 }); 2709 2710 } 2711 2712 } 2713 2714 }; 2715 2716 Slick.prototype.interrupt = function( toggle ) { 2717 2718 var _ = this; 2719 2720 if( !toggle ) { 2721 _.autoPlay(); 2722 } 2723 _.interrupted = toggle; 2724 2725 }; 2726 2727 Slick.prototype.selectHandler = function(event) { 2728 2729 var _ = this; 2730 2731 var targetElement = 2732 $(event.target).is('.slick-slide') ? 2733 $(event.target) : 2734 $(event.target).parents('.slick-slide'); 2735 2736 var index = parseInt(targetElement.attr('data-slick-index')); 2737 2738 if (!index) index = 0; 2739 2740 if (_.slideCount <= _.options.slidesToShow) { 2741 2742 _.slideHandler(index, false, true); 2743 return; 2744 2745 } 2746 2747 _.slideHandler(index); 2748 2749 }; 2750 2751 Slick.prototype.slideHandler = function(index, sync, dontAnimate) { 2752 2753 var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null, 2754 _ = this, navTarget; 2755 2756 sync = sync || false; 2757 2758 if (_.animating === true && _.options.waitForAnimate === true) { 2759 return; 2760 } 2761 2762 if (_.options.fade === true && _.currentSlide === index) { 2763 return; 2764 } 2765 2766 if (sync === false) { 2767 _.asNavFor(index); 2768 } 2769 2770 targetSlide = index; 2771 targetLeft = _.getLeft(targetSlide); 2772 slideLeft = _.getLeft(_.currentSlide); 2773 2774 _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft; 2775 2776 if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) { 2777 if (_.options.fade === false) { 2778 targetSlide = _.currentSlide; 2779 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 2780 _.animateSlide(slideLeft, function() { 2781 _.postSlide(targetSlide); 2782 }); 2783 } else { 2784 _.postSlide(targetSlide); 2785 } 2786 } 2787 return; 2788 } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) { 2789 if (_.options.fade === false) { 2790 targetSlide = _.currentSlide; 2791 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 2792 _.animateSlide(slideLeft, function() { 2793 _.postSlide(targetSlide); 2794 }); 2795 } else { 2796 _.postSlide(targetSlide); 2797 } 2798 } 2799 return; 2800 } 2801 2802 if ( _.options.autoplay ) { 2803 clearInterval(_.autoPlayTimer); 2804 } 2805
2806 if (targetSlide < 0) { 2807 if (_.slideCount % _.options.slidesToScroll !== 0) { 2808 animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll); 2809 } else { 2810 animSlide = _.slideCount + targetSlide; 2811 } 2812 } else if (targetSlide >= _.slideCount) { 2813 if (_.slideCount % _.options.slidesToScroll !== 0) { 2814 animSlide = 0; 2815 } else { 2816 animSlide = targetSlide - _.slideCount; 2817 } 2818 } else { 2819 animSlide = targetSlide; 2820 } 2821 2822 _.animating = true; 2823 2824 _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]); 2825 2826 oldSlide = _.currentSlide; 2827 _.currentSlide = animSlide; 2828 2829 _.setSlideClasses(_.currentSlide); 2830 2831 if ( _.options.asNavFor ) { 2832 2833 navTarget = _.getNavTarget(); 2834 navTarget = navTarget.slick('getSlick'); 2835 2836 if ( navTarget.slideCount <= navTarget.options.slidesToShow ) { 2837 navTarget.setSlideClasses(_.currentSlide); 2838 } 2839 2840 } 2841 2842 _.updateDots(); 2843 _.updateArrows(); 2844 2845 if (_.options.fade === true) { 2846 if (dontAnimate !== true) { 2847 2848 _.fadeSlideOut(oldSlide); 2849 2850 _.fadeSlide(animSlide, function() { 2851 _.postSlide(animSlide); 2852 }); 2853 2854 } else { 2855 _.postSlide(animSlide); 2856 } 2857 _.animateHeight(); 2858 return; 2859 } 2860 2861 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 2862 _.animateSlide(targetLeft, function() { 2863 _.postSlide(animSlide); 2864 }); 2865 } else { 2866 _.postSlide(animSlide); 2867 } 2868 2869 }; 2870 2871 Slick.prototype.startLoad = function() { 2872 2873 var _ = this; 2874 2875 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 2876 2877 _.$prevArrow.hide(); 2878 _.$nextArrow.hide(); 2879 2880 } 2881 2882 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 2883 2884 _.$dots.hide(); 2885 2886 } 2887 2888 _.$slider.addClass('slick-loading'); 2889 2890 }; 2891 2892 Slick.prototype.swipeDirection = function() { 2893 2894 var xDist, yDist, r, swipeAngle, _ = this; 2895 2896 xDist = _.touchObject.startX - _.touchObject.curX; 2897 yDist = _.touchObject.startY - _.touchObject.curY; 2898 r = Math.atan2(yDist, xDist); 2899 2900 swipeAngle = Math.round(r * 180 / Math.PI); 2901 if (swipeAngle < 0) { 2902 swipeAngle = 360 - Math.abs(swipeAngle); 2903 } 2904 2905 if ((swipeAngle <= 45) && (swipeAngle >= 0)) { 2906 return (_.options.rtl === false ? 'left' : 'right'); 2907 } 2908 if ((swipeAngle <= 360) && (swipeAngle >= 315)) { 2909 return (_.options.rtl === false ? 'left' : 'right'); 2910 } 2911 if ((swipeAngle >= 135) && (swipeAngle <= 225)) { 2912 return (_.options.rtl === false ? 'right' : 'left'); 2913 } 2914 if (_.options.verticalSwiping === true) { 2915 if ((swipeAngle >= 35) && (swipeAngle <= 135)) { 2916 return 'down'; 2917 } else { 2918 return 'up'; 2919 } 2920 } 2921 2922 return 'vertical'; 2923 2924 }; 2925 2926 Slick.prototype.swipeEnd = function(event) { 2927 2928 var _ = this, 2929 slideCount, 2930 direction; 2931 2932 _.dragging = false; 2933 _.swiping = false; 2934 2935 if (_.scrolling) { 2936 _.scrolling = false; 2937 return false; 2938 } 2939 2940 _.interrupted = false; 2941 _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true; 2942 2943 if ( _.touchObject.curX === undefined ) { 2944 return false; 2945 } 2946 2947 if ( _.touchObject.edgeHit === true ) { 2948 _.$slider.trigger('edge', [_, _.swipeDirection() ]); 2949 } 2950 2951 if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) { 2952 2953 direction = _.swipeDirection(); 2954 2955 switch ( direction ) { 2956 2957 case 'left': 2958 case 'down': 2959 2960 slideCount =
2961 _.options.swipeToSlide ? 2962 _.checkNavigable( _.currentSlide + _.getSlideCount() ) : 2963 _.currentSlide + _.getSlideCount(); 2964 2965 _.currentDirection = 0; 2966 2967 break; 2968 2969 case 'right': 2970 case 'up': 2971 2972 slideCount = 2973 _.options.swipeToSlide ? 2974 _.checkNavigable( _.currentSlide - _.getSlideCount() ) : 2975 _.currentSlide - _.getSlideCount(); 2976 2977 _.currentDirection = 1; 2978 2979 break; 2980 2981 default: 2982 2983 2984 } 2985 2986 if( direction != 'vertical' ) { 2987 2988 _.slideHandler( slideCount ); 2989 _.touchObject = {}; 2990 _.$slider.trigger('swipe', [_, direction ]); 2991 2992 } 2993 2994 } else { 2995 2996 if ( _.touchObject.startX !== _.touchObject.curX ) { 2997 2998 _.slideHandler( _.currentSlide ); 2999 _.touchObject = {}; 3000 3001 } 3002 3003 } 3004 3005 }; 3006 3007 Slick.prototype.swipeHandler = function(event) { 3008 3009 var _ = this; 3010 3011 if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) { 3012 return; 3013 } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) { 3014 return; 3015 } 3016 3017 _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ? 3018 event.originalEvent.touches.length : 1; 3019 3020 _.touchObject.minSwipe = _.listWidth / _.options 3021 .touchThreshold; 3022 3023 if (_.options.verticalSwiping === true) { 3024 _.touchObject.minSwipe = _.listHeight / _.options 3025 .touchThreshold; 3026 } 3027 3028 switch (event.data.action) { 3029 3030 case 'start': 3031 _.swipeStart(event); 3032 break; 3033 3034 case 'move': 3035 _.swipeMove(event); 3036 break; 3037 3038 case 'end': 3039 _.swipeEnd(event); 3040 break; 3041 3042 } 3043 3044 }; 3045 3046 Slick.prototype.swipeMove = function(event) { 3047 3048 var _ = this, 3049 edgeWasHit = false, 3050 curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength; 3051 3052 touches = event.originalEvent !== undefined ? event.originalEvent.touches : null; 3053 3054 if (!_.dragging || _.scrolling || touches && touches.length !== 1) { 3055 return false; 3056 } 3057 3058 curLeft = _.getLeft(_.currentSlide); 3059 3060 _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX; 3061 _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY; 3062 3063 _.touchObject.swipeLength = Math.round(Math.sqrt( 3064 Math.pow(_.touchObject.curX - _.touchObject.startX, 2))); 3065 3066 verticalSwipeLength = Math.round(Math.sqrt( 3067 Math.pow(_.touchObject.curY - _.touchObject.startY, 2))); 3068 3069 if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) { 3070 _.scrolling = true; 3071 return false; 3072 } 3073 3074 if (_.options.verticalSwiping === true) { 3075 _.touchObject.swipeLength = verticalSwipeLength; 3076 } 3077 3078 swipeDirection = _.swipeDirection(); 3079 3080 if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) { 3081 _.swiping = true; 3082 event.preventDefault(); 3083 } 3084 3085 positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1); 3086 if (_.options.verticalSwiping === true) { 3087 positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1; 3088 } 3089 3090 3091 swipeLength = _.touchObject.swipeLength; 3092 3093 _.touchObject.edgeHit = false; 3094 3095 if (_.options.infinite === false) { 3096 if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) { 3097 swipeLength = _.touchObject.swipeLength * _.options.edgeFriction; 3098 _.touchObject.edgeHit = true; 3099 } 3100 } 3101 3102 if (_.options.vertical === false) { 3103 _.swipeLeft = curLeft + swipeLength * positionOffset; 3104 } else { 3105 _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset; 3106 } 3107 if (_.options.verticalSwiping === true) { 3108 _.swipeLeft = curLeft + swipeLength * positionOffset; 3109 } 3110 3111 if (_.options.fade === true || _.options.touchMove === false) { 3112 return false; 3113 } 3114 3115 if (_.animating === true) { 3116 _.swipeLeft = null; 3117 return false; 3118 } 3119 3120 _.setCSS(_.swipeLeft); 3121 3122 }; 3123 3124 Slick.prototype.swipeStart = function(event) { 3125 3126 var _ = this, 3127 touches; 3128 3129 _.interrupted = true; 3130 3131 if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) { 3132 _.touchObject = {}; 3133 return false; 3134 } 3135 3136 if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) { 3137 touches = event.originalEvent.touches[0]; 3138 } 3139 3140 _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX; 3141 _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY; 3142 3143 _.dragging = true; 3144 3145 }; 3146 3147 Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() { 3148 3149 var _ = this; 3150 3151 if (_.$slidesCache !== null) { 3152 3153 _.unload(); 3154 3155 _.$slideTrack.children(this.options.slide).detach(); 3156 3157 _.$slidesCache.appendTo(_.$slideTrack); 3158 3159 _.reinit(); 3160 3161 } 3162 3163 }; 3164 3165 Slick.prototype.unload = function() { 3166 3167 var _ = this; 3168 3169 $('.slick-cloned', _.$slider).remove(); 3170 3171 if (_.$dots) { 3172 _.$dots.remove(); 3173 } 3174 3175 if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) { 3176 _.$prevArrow.remove(); 3177 } 3178 3179 if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) { 3180 _.$nextArrow.remove(); 3181 } 3182 3183 _.$slides 3184 .removeClass('slick-slide slick-active slick-visible slick-current') 3185 .attr('aria-hidden', 'true') 3186 .css('width', ''); 3187 3188 }; 3189
3190 Slick.prototype.unslick = function(fromBreakpoint) { 3191 3192 var _ = this; 3193 _.$slider.trigger('unslick', [_, fromBreakpoint]); 3194 _.destroy(); 3195 3196 }; 3197 3198 Slick.prototype.updateArrows = function() { 3199 3200 var _ = this, 3201 centerOffset; 3202 3203 centerOffset = Math.floor(_.options.slidesToShow / 2); 3204 3205 if ( _.options.arrows === true && 3206 _.slideCount > _.options.slidesToShow && 3207 !_.options.infinite ) { 3208 3209 _.$prevArrow.removeClass('slick-disabled').prop('disabled', false); 3210 _.$nextArrow.removeClass('slick-disabled').prop('disabled', false); 3211 3212 if (_.currentSlide === 0) { 3213 3214 _.$prevArrow.addClass('slick-disabled').prop('disabled', true); 3215 _.$nextArrow.removeClass('slick-disabled').prop('disabled', false); 3216 3217 } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) { 3218 3219 _.$nextArrow.addClass('slick-disabled').prop('disabled', true); 3220 _.$prevArrow.removeClass('slick-disabled').prop('disabled', false); 3221 3222 } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) { 3223 3224 _.$nextArrow.addClass('slick-disabled').prop('disabled', true); 3225 _.$prevArrow.removeClass('slick-disabled').prop('disabled', false); 3226 3227 } 3228 3229 } 3230 3231 }; 3232 3233 Slick.prototype.updateDots = function() { 3234 3235 var _ = this; 3236 3237 if (_.$dots !== null) { 3238 3239 _.$dots 3240 .find('li') 3241 .removeClass('slick-active') 3242 .find('button') 3243 .removeAttr('aria-current') 3244 .end() 3245 .end(); 3246 3247 _.$dots 3248 .find('li') 3249 .eq(Math.floor(_.currentSlide / _.options.slidesToScroll)) 3250 .addClass('slick-active') 3251 .find('button') 3252 .attr('aria-current', true) 3253 .end() 3254 .end(); 3255 3256 } 3257 3258 }; 3259 3260 Slick.prototype.updateSlideVisibility = function() { 3261 var _ = this; 3262 3263 _.$slideTrack 3264 .find('.slick-slide') 3265 .attr('aria-hidden', 'true') 3266 .find('a, input, button, select') 3267 .attr('tabindex', '-1'); 3268 3269 _.$slideTrack 3270 .find('.slick-active') 3271 .removeAttr('aria-hidden') 3272 .find('a, input, button, select') 3273 .removeAttr('tabindex'); 3274 } 3275 3276 Slick.prototype.visibility = function() { 3277 3278 var _ = this; 3279 3280 if ( _.options.autoplay ) { 3281 3282 if ( document[_.hidden] ) { 3283 3284 _.interrupted = true; 3285 3286 } else { 3287 3288 _.interrupted = false; 3289 3290 } 3291 3292 } 3293 3294 }; 3295 3296 $.fn.slick = function() { 3297 var _ = this, 3298 opt = arguments[0], 3299 args = Array.prototype.slice.call(arguments, 1), 3300 l = _.length, 3301 i, 3302 ret; 3303 for (i = 0; i < l; i++) { 3304 if (typeof opt == 'object' || typeof opt == 'undefined') 3305 _[i].slick = new Slick(_[i], opt); 3306 else 3307 ret = _[i].slick[opt].apply(_[i].slick, args); 3308 if (typeof ret != 'undefined') return ret; 3309 } 3310 return _; 3311 }; 3312 3313})); 3314 3315 3316!function(t) { 3317 "use strict"; 3318 "function" == typeof define && define.amd ? define(["jquery"], t) : "undefined" != typeof module && module.exports ? module.exports = t(require("jquery")) : t(jQuery) 3319}(function(t) { 3320 var e =- 1, o =- 1, i = function(t) { 3321 return parseFloat(t) || 0 3322 }, a = function(e) { 3323 var o = 1, a = t(e), n = null, r = []; 3324 return a.each(function() { 3325 var e = t(this), a = e.offset().top - i(e.css("margin-top")), s = r.length > 0 ? r[r.length - 1]: null; 3326 null === s ? r.push(e) : Math.floor(Math.abs(n - a)) <= o ? r[r.length - 1] = s.add(e) : r.push(e), n = a 3327 }), r 3328 }, n = function(e) { 3329 var o = { 3330 byRow: !0, 3331 property: "height", 3332 target: null, 3333 remove: !1 3334 }; 3335 return "object" == typeof e ? t.extend(o, e) : ("boolean" == typeof e ? o.byRow = e : "remove" === e && (o.remove=!0), o) 3336 }, r = t.fn.matchHeight = function(e) { 3337 var o = n(e); 3338 if (o.remove) { 3339 var i = this; 3340 return this.css(o.property, ""), t.each(r._groups, function(t, e) { 3341 e.elements = e.elements.not(i) 3342 }), this 3343 } 3344 return this.length <= 1&&!o.target ? this : (r._groups.push({ 3345 elements: this, 3346 options: o 3347 }), r._apply(this, o), this) 3348 }; 3349 r.version = "0.7.0", r._groups = [], r._throttle = 80, r._maintainScroll=!1, r._beforeUpdate = null, r._afterUpdate = null, r._rows = a, r._parse = i, r._parseOptions = n, r._apply = function(e, o) { 3350 var s = n(o), h = t(e), l = [h], c = t(window).scrollTop(), p = t("html").outerHeight(!0), d = h.parents().filter(":hidden"); 3351 return d.each(function() { 3352 var e = t(this); 3353 e.data("style-cache", e.attr("style")) 3354 }), d.css("display", "block"), s.byRow&&!s.target && (h.each(function() { 3355 var e = t(this), o = e.css("display"); 3356 "inline-block" !== o && "flex" !== o && "inline-flex" !== o && (o = "block"), e.data("style-cache", e.attr("style")), e.css({ 3357 display: o, 3358 "padding-top": "0", 3359 "padding-bottom": "0", 3360 "margin-top": "0", 3361 "margin-bottom": "0", 3362 "border-top-width": "0", 3363 "border-bottom-width": "0", 3364 height: "100px", 3365 overflow: "hidden" 3366 }) 3367 }), l = a(h), h.each(function() { 3368 var e = t(this); 3369 e.attr("style", e.data("style-cache") || "") 3370 })), t.each(l, function(e, o) { 3371 var a = t(o), n = 0; 3372 if (s.target) 3373 n = s.target.outerHeight(!1); 3374 else { 3375 if (s.byRow && a.length <= 1) 3376 return void a.css(s.property, ""); 3377 a.each(function() { 3378 var e = t(this), o = e.attr("style"), i = e.css("display"); 3379 "inline-block" !== i && "flex" !== i && "inline-flex" !== i && (i = "block"); 3380 var a = { 3381 display: i 3382 }; 3383 a[s.property] = "", e.css(a), e.outerHeight(!1) > n && (n = e.outerHeight(!1)), o ? e.attr("style", o) : e.css("display", "") 3384 }) 3385 } 3386 a.each(function() { 3387 var e = t(this), o = 0; 3388 s.target && e.is(s.target) || ("border-box" !== e.css("box-sizing") && (o += i(e.css("border-top-width")) + i(e.css("border-bottom-width")), o += i(e.css("padding-top")) + i(e.css("padding-bottom"))), e.css(s.property, n - o + "px")) 3389 }) 3390 }), d.each(function() { 3391 var e = t(this); 3392 e.attr("style", e.data("style-cache") || null) 3393 }), r._maintainScroll && t(window).scrollTop(c / p * t("html").outerHeight(!0)), this 3394 }, r._applyDataApi = function() { 3395 var e = {}; 3396 t("[data-match-height], [data-mh]").each(function() { 3397 var o = t(this), i = o.attr("data-mh") || o.attr("data-match-height"); 3398 i in e ? e[i] = e[i].add(o) : e[i] = o 3399 }), t.each(e, function() { 3400 this.matchHeight(!0) 3401 }) 3402 }; 3403 var s = function(e) { 3404 r._beforeUpdate && r._beforeUpdate(e, r._groups), t.each(r._groups, function() { 3405 r._apply(this.elements, this.options) 3406 }), r._afterUpdate && r._afterUpdate(e, r._groups) 3407 }; 3408 r._update = function(i, a) { 3409 if (a && "resize" === a.type) { 3410 var n = t(window).width(); 3411 if (n === e) 3412 return; 3413 e = n 3414 } 3415 i?-1 === o && (o = setTimeout(function() { 3416 s(a), o =- 1 3417 }, r._throttle)) : s(a) 3418 }, t(r._applyDataApi), t(window).bind("load", function(t) { 3419 r._update(!1, t) 3420 }), t(window).bind("resize orientationchange", function(t) { 3421 r._update(!0, t) 3422 }) 3423});; 3424!function(e) { 3425 e.fn.flexVerticalCenter = function(t) { 3426 var n = e.extend({ 3427 cssAttribute: "margin-top", 3428 verticalOffset: 0, 3429 parentSelector: null, 3430 debounceTimeout: 25, 3431 deferTilWindowLoad: !1 3432 }, t || {}); 3433 return this.each(function() { 3434 var t, i = e(this), r = function() { 3435 var e = n.parentSelector && i.parents(n.parentSelector).length ? i.parents(n.parentSelector).first().height(): i.parent().height(); 3436 i.css(n.cssAttribute, (e - i.height()) / 2 + parseInt(n.verticalOffset)), void 0 !== n.complete && n.complete() 3437 }; 3438 e(window).resize(function() { 3439 clearTimeout(t), t = setTimeout(r, n.debounceTimeout) 3440 }), n.deferTilWindowLoad || r(), e(window).load(function() { 3441 r() 3442 }) 3443 }) 3444 } 3445}(jQuery);; 3446!function(e, n) { 3447 "use strict"; 3448 "function" == typeof define && define.amd ? define(["jquery"], function(o) { 3449 return n(o, e, e.document, e.Math) 3450 }) : "undefined" != typeof exports ? module.exports = n(require("jquery"), e, e.document, e.Math) : n(jQuery, e, e.document, e.Math) 3451}("undefined" != typeof window ? window : this, function(e, n, o, t, i) { 3452 "use strict"; 3453 var l, a = "fullpage-wrapper", r = "." + a, s = "fp-scrollable", c = "." + s, f = ".slimScrollBar", d = ".slimScrollRail", u = "fp-responsive", p = "fp-notransition", h = "fp-destroyed", v = "fp-enabled", m = "fp-viewing", g = "active", S = "." + g, w = ".section", y = "fp-section", x = "." + y, b = x + S, T = x + ":first", C = x + ":last", k = "fp-tableCell", A = "." + k, B = "fp-auto-height", M = "fp-normal-scroll", L = "fp-nav", E = "#" + L, R = "fp-tooltip", F = "." + R, H = "fp-show-active", q = ".slide", O = "fp-slide", z = "." + O, D = z + S, I = "fp-slides", P = "." + I, V = "fp-slidesContainer", W = "." + V, Y = "fp-table", U = "fp-slidesNav", X = "." + U, N = X + " a", K = "fp-controlArrow", j = "." + K, Q = "fp-prev", G = "." + Q, J = K + " " + Q, Z = j + G, $ = "fp-next", _ = "." + $, ee = K + " " + $, ne = j + _, oe = e(n), te = e(o); 3454 e.fn.fullpage = function(s) { 3455 function c() { 3456 s.css3 && (s.css3 = mn()), s.scrollBar = s.scrollBar || s.hybrid, d(), K(), Hn.setAllowScrolling(!0), Wn = oe.height(), Hn.setAutoScrolling(s.autoScrolling, "internal"); 3457 var n = e(b).find(D); 3458 n.length && (0 !== e(b).index(x) || 0 === e(b).index(x) && 0 !== n.index()) && Tn(n), je(), vn(), oe.on("load", function() { 3459 Fe() 3460 }) 3461 } 3462 function f() { 3463 oe.on("scroll", ce).on("hashchange", He).blur(Ve).resize(Ke), Vn.mousedown(De).mouseup(Ie), te.keydown(qe).keyup(ze).on("click touchstart", E + " a", We).on("click touchstart", N, Ye).on("click", F, Oe), e(x).on("click touchstart", j, Pe), s.normalScrollElements && (te.on("mouseenter", s.normalScrollElements, function() { 3464 Hn.setMouseWheelScrolling(!1) 3465 }), te.on("mouseleave", s.normalScrollElements, function() { 3466 Hn.setMouseWheelScrolling(!0) 3467 })) 3468 } 3469 function d() { 3470 s.anchors.length || (s.anchors = e(s.sectionSelector + "[data-anchor]").map(function() { 3471 return e(this).data("anchor").toString() 3472 }).get()), s.navigationTooltips.length || (s.navigationTooltips = e(s.sectionSelector + "[data-tooltip]").map(function() { 3473 return e(this).data("tooltip").toString() 3474 }).get()) 3475 } 3476 function K() { 3477 Vn.css({ 3478 height: "100%", 3479 position: "relative" 3480 }), Vn.addClass(a), e("html").addClass(v), Vn.removeClass(h), ie(), e(x).each(function(n) { 3481 var o = e(this), t = o.find(z), i = t.length; 3482 $(o, n), _(o, n), i > 0 ? G(o, t, i) : s.verticalCentered && tn(o) 3483 }), s.fixedElements && s.css3 && e(s.fixedElements).appendTo(Fn), s.navigation && ae(), s.scrollOverflow ? ("complete" === o.readyState && re(), oe.on("load", re)) : se() 3484 } 3485 function G(n, o, t) { 3486 var i = 100 * t, l = 100 / t; 3487 o.wrapAll('<div class="' + V + '" />'), o.parent().wrap('<div class="' + I + '" />'), n.find(W).css("width", i + "%"), t > 1 && (s.controlArrows && le(n), s.slidesNavigation && dn(n, t)), o.each(function(n) { 3488 e(this).css("width", l + "%"), s.verticalCentered && tn(e(this)) 3489 }); 3490 var a = n.find(D); 3491 a.length && (0 !== e(b).index(x) || 0 === e(b).index(x) && 0 !== a.index()) ? Tn(a) : o.eq(0).addClass(g) 3492 } 3493 function $(n, o) { 3494 o || 0 !== e(b).length || n.addClass(g), n.css("height", Wn + "px"), s.paddingTop && n.css("padding-top", s.paddingTop), s.paddingBottom && n.css("padding-bottom", s.paddingBottom), "undefined" != typeof s.sectionsColor[o] && n.css("background-color", s.sectionsColor[o]), "undefined" != typeof s.anchors[o] && n.attr("data-anchor", s.anchors[o]) 3495 } 3496 function _(n, o) { 3497 "undefined" != typeof s.anchors[o] && n.hasClass(g) && _e(s.anchors[o], o), s.menu && s.css3 && e(s.menu).closest(r).length && e(s.menu).appendTo(Fn) 3498 } 3499 function ie() { 3500 e(s.sectionSelector).each(function() { 3501 e(this).addClass(y) 3502 }), e(s.slideSelector).each(function() { 3503 e(this).addClass(O) 3504 }) 3505 } 3506 function le(e) { 3507 e.find(P).after('<div class="' + J + '"></div><div class="' + ee + '"></div>'), "#fff" != s.controlArrowColor && (e.find(ne).css("border-color", "transparent transparent transparent " + s.controlArrowColor), e.find(Z).css("border-color", "transparent " + s.controlArrowColor + " transparent transparent")), s.loopHorizontal || e.find(Z).hide() 3508 } 3509 function ae() { 3510 Fn.append('<div id="' + L + '"><ul></ul></div>'); 3511 var n = e(E); 3512 n.addClass(function() { 3513 return s.showActiveTooltip ? H + " " + s.navigationPosition : s.navigationPosition 3514 }); 3515 for (var o = 0; o < e(x).length; o++) { 3516 var t = ""; 3517 s.anchors.length && (t = s.anchors[o]); 3518 var i = '<li><a href="#' + t + '"><span></span></a>', l = s.navigationTooltips[o]; 3519 "undefined" != typeof l && "" !== l && (i += '<div class="' + R + " " + s.navigationPosition + '">' + l + "</div>"), i += "</li>", n.find("ul").append(i) 3520 } 3521 e(E).css("margin-top", "-" + e(E).height() / 2 + "px"), e(E).find("li").eq(e(b).index(x)).find("a").addClass(g) 3522 } 3523 function re() { 3524 e(x).each(function() { 3525 var n = e(this).find(z); 3526 n.length ? n.each(function() { 3527 on(e(this)) 3528 }) : on(e(this)) 3529 }), se() 3530 } 3531 function se() { 3532 var n = e(b); 3533 n.addClass("completely"), s.scrollOverflowHandler.afterRe
3533nder && s.scrollOverflowHandler.afterRender(n), Me(n), Le(n), e.isFunction(s.afterLoad) && s.afterLoad.call(n, n.data("anchor"), n.index(x) + 1), e.isFunction(s.afterRender) && s.afterRender.call(Vn) 3534 } 3535 function ce() { 3536 var n; 3537 if (!s.autoScrolling || s.scrollBar) { 3538 for (var t = oe.scrollTop(), i = de(t), l = 0, a = t + oe.height() / 2, r = o.querySelectorAll(x), c = 0; c < r.length; ++c) { 3539 var f = r[c]; 3540 f.offsetTop <= a && (l = c) 3541 } 3542 if (fe(i) && (e(b).hasClass("completely") || e(b).addClass("completely").siblings().removeClass("completely")), n = e(r).eq(l), !n.hasClass(g)) { 3543 eo=!0; 3544 var d = e(b), u = d.index(x) + 1, p = en(n), h = n.data("anchor"), v = n.index(x) + 1, m = n.find(D); 3545 if (m.length) 3546 var S = m.data("anchor"), w = m.index(); 3547 Xn && (n.addClass(g).siblings().removeClass(g), e.isFunction(s.onLeave) && s.onLeave.call(d, u, v, p), e.isFunction(s.afterLoad) && s.afterLoad.call(n, h, v), Me(n), _e(h, v - 1), s.anchors.length && (qn = h, un(w, S, h, v))), clearTimeout(Jn), Jn = setTimeout(function() { 3548 eo=!1 3549 }, 100) 3550 } 3551 s.fitToSection && (clearTimeout(Zn), Zn = setTimeout(function() { 3552 Xn && s.fitToSection && (e(b).is(n) && requestAnimFrame(function() { 3553 Yn=!0 3554 }), be(n), requestAnimFrame(function() { 3555 Yn=!1 3556 })) 3557 }, s.fitToSectionDelay)) 3558 } 3559 } 3560 function fe(n) { 3561 var o = e(b).position().top, t = o + oe.height(); 3562 return "up" == n ? t >= oe.scrollTop() + oe.height() : o <= oe.scrollTop() 3563 } 3564 function de(e) { 3565 var n = e > no ? "down": "up"; 3566 return no = e, n 3567 } 3568 function ue(e, n) { 3569 if (Kn.m[e]) { 3570 var o, t; 3571 if ("down" == e ? (o = "bottom", t = Hn.moveSectionDown) : (o = "top", t = Hn.moveSectionUp), n.length > 0) { 3572 if (!s.scrollOverflowHandler.isScrolled(o, n)) 3573 return !0; 3574 t() 3575 } else 3576 t() 3577 } 3578 } 3579 function pe(n) { 3580 var o = n.originalEvent; 3581 if (!he(n.target) && ve(o)) { 3582 s.autoScrolling && n.preventDefault(); 3583 var i = e(b), l = s.scrollOverflowHandler.scrollable(i); 3584 if (Xn&&!Dn) { 3585 var a = bn(o); 3586 io = a.y, lo = a.x, i.find(P).length && t.abs(to - lo) > t.abs(oo - io) ? t.abs(to - lo) > oe.outerWidth() / 100 * s.touchSensitivity && (to > lo ? Kn.m.right && Hn.moveSlideRight() : Kn.m.left && Hn.moveSlideLeft()) : s.autoScrolling && t.abs(oo - io) > oe.height() / 100 * s.touchSensitivity && (oo > io ? ue("down", l) : io > oo && ue("up", l)) 3587 } 3588 } 3589 } 3590 function he(n, o) { 3591 o = o || 0; 3592 var t = e(n).parent(); 3593 return o < s.normalScrollElementTouchThreshold && t.is(s.normalScrollElements)?!0 : o == s.normalScrollElementTouchThreshold?!1 : he(t, ++o) 3594 } 3595 function ve(e) { 3596 return "undefined" == typeof e.pointerType || "mouse" != e.pointerType 3597 } 3598 function me(e) { 3599 var n = e.originalEvent; 3600 if (s.fitToSection && Rn.stop(), ve(n)) { 3601 var o = bn(n); 3602 oo = o.y, to = o.x 3603 } 3604 } 3605 function ge(e, n) { 3606 for (var o = 0, i = e.slice(t.max(e.length - n, 1)), l = 0; l < i.length; l++) 3607 o += i[l]; 3608 return t.ceil(o / n) 3609 } 3610 function Se(o) { 3611 var i = (new Date).getTime(), l = e(".completely").hasClass(M); 3612 if (s.autoScrolling&&!zn&&!l) { 3613 o = o || n.event; 3614 var a = o.wheelDelta||-o.deltaY||-o.detail, r = t.max( - 1, t.min(1, a)), c = "undefined" != typeof o.wheelDeltaX || "undefined" != typeof o.deltaX, f = t.abs(o.wheelDeltaX) < t.abs(o.wheelDelta) || t.abs(o.deltaX) < t.abs(o.deltaY) ||!c; 3615 Nn.length > 149 && Nn.shift(), Nn.push(t.abs(a)), s.scrollBar && (o.preventDefault ? o.preventDefault() : o.returnValue=!1); 3616 var d = e(b), u = s.scrollOverflowHandler.scrollable(d), p = i - ao; 3617 if (ao = i, p > 200 && (Nn = []), Xn) { 3618 var h = ge(Nn, 10), v = ge(Nn, 70), m = h >= v; 3619 m && f && (0 > r ? ue("down", u) : ue("up", u)) 3620 } 3621 return !1 3622 } 3623 s.fitToSection && Rn.stop() 3624 } 3625 function we(n, o) { 3626 var t = "undefined" == typeof o ? e(b): o, i = t.find(P), l = i.find(z).length; 3627 if (!(!i.length || Dn || 2 > l)) { 3628 var a = i.find(D), r = null; 3629 if (r = "prev" === n ? a.prev(z) : a.next(z), !r.length) { 3630 if (!s.loopHorizontal) 3631 return; 3632 r = "prev" === n ? a.siblings(":last") : a.siblings(":first") 3633 } 3634 Dn=!0, Ne(i, r) 3635 } 3636 } 3637 function ye() { 3638 e(D).each(function() { 3639 Tn(e(this), "internal") 3640 }) 3641 } 3642 function xe(e, n) { 3643 var o = e.top; 3644 return e.top >
3644 ro && (o = o - Wn + n.outerHeight()), ro = o, o 3645 } 3646 function be(n, o, t) { 3647 requestAnimFrame(function() { 3648 var i = n.position(); 3649 if ("undefined" != typeof i) { 3650 var l = xe(i, n), a = { 3651 element: n, 3652 callback: o, 3653 isMovementUp: t, 3654 dest: i, 3655 dtop: l, 3656 yMovement: en(n), 3657 anchorLink: n.data("anchor"), 3658 sectionIndex: n.index(x), 3659 activeSlide: n.find(D), 3660 activeSection: e(b), 3661 leavingSection: e(b).index(x) + 1, 3662 localIsResizing: Yn 3663 }; 3664 if (!(a.activeSection.is(n)&&!Yn || s.scrollBar && oe.scrollTop() === a.dtop&&!n.hasClass(B))) { 3665 if (a.activeSlide.length) 3666 var r = a.activeSlide.data("anchor"), c = a.activeSlide.index(); 3667 s.autoScrolling && s.continuousVertical && "undefined" != typeof a.isMovementUp && (!a.isMovementUp && "up" == a.yMovement || a.isMovementUp && "down" == a.yMovement) && (a = ke(a)), (!e.isFunction(s.onLeave) || a.localIsResizing || s.onLeave.call(a.activeSection, a.leavingSection, a.sectionIndex + 1, a.yMovement)!==!1) && (Ee(a.activeSection), n.addClass(g).siblings().removeClass(g), Me(n), Xn=!1, un(c, r, a.anchorLink, a.sectionIndex), Te(a), qn = a.anchorLink, _e(a.anchorLink, a.sectionIndex)) 3668 } 3669 } 3670 }) 3671 } 3672 function Te(n) { 3673 if (s.css3 && s.autoScrolling&&!s.scrollBar) { 3674 var o = "translate3d(0px, -" + n.dtop + "px, 0px)"; 3675 an(o, !0), s.scrollingSpeed ? Qn = setTimeout(function() { 3676 Be(n) 3677 }, s.scrollingSpeed) : Be(n) 3678 } else { 3679 var t = Ce(n); 3680 e(t.element).animate(t.options, s.scrollingSpeed, s.easing).promise().done(function() { 3681 s.scrollBar ? setTimeout(function() { 3682 Be(n) 3683 }, 30) : Be(n) 3684 }) 3685 } 3686 } 3687 function Ce(e) { 3688 var n = {}; 3689 return s.autoScrolling&&!s.scrollBar ? (n.options = { 3690 top: - e.dtop 3691 }, n.element = r) : (n.options = { 3692 scrollTop: e.dtop 3693 }, n.element = "html, body"), n 3694 } 3695 function ke(n) { 3696 return n.isMovementUp ? e(b).before(n.activeSection.nextAll(x)) : e(b).after(n.activeSection.prevAll(x).get().reverse()), Cn(e(b).position().top), ye(), n.wrapAroundElements = n.activeSection, n.dest = n.element.position(), n.dtop = n.dest.top, n.yMovement = en(n.element), n 3697 } 3698 function Ae(n) { 3699 n.wrapAroundElements && n.wrapAroundElements.length && (n.isMovementUp ? e(T).before(n.wrapAroundElements) : e(C).after(n.wrapAroundElements), Cn(e(b).position().top), ye()) 3700 } 3701 function Be(n) { 3702 Ae(n), n.element.find(".fp-scrollable").mouseover(), e.isFunction(s.afterLoad)&&!n.localIsResizing && s.afterLoad.call(n.element, n.anchorLink, n.sectionIndex + 1), Le(n.element), n.element.addClass("completely").siblings().removeClass("completely"), Xn=!0, e.isFunction(n.callback) && n.callback.call(this) 3703 } 3704 function Me(n) { 3705 var n = Re(n); 3706 n.find("img[data-src], source[data-src], audio[data-src]").each(function() { 3707 e(this).attr("src", e(this).data("src")), e(this).removeAttr("data-src"), e(this).is("source") && e(this).closest("video").get(0).load() 3708 }) 3709 } 3710 function Le(n) { 3711 var n = Re(n); 3712 n.find("video, audio").each(function() { 3713 var n = e(this).get(0); 3714 n.hasAttribute("autoplay") && "function" == typeof n.play && n.play() 3715 }) 3716 } 3717 function Ee(n) { 3718 var n = Re(n); 3719 n.find("video, audio").each(function() { 3720 var n = e(this).get(0); 3721 n.hasAttribute("data-ignore") || "function" != typeof n.pause || n.pause() 3722 }) 3723 } 3724 function Re(n) { 3725 var o = n.find(D); 3726 return o.length && (n = e(o)), n 3727 } 3728 function Fe() { 3729 var e = n.location.hash.replace("#", "").split("/"), o = e[0], t = e[1]; 3730 o && (s.animateAnchor ? cn(o, t) : Hn.silentMoveTo(o, t)) 3731 } 3732 function He() { 3733 if (!eo&&!s.lockAnchors) { 3734 var e = n.location.hash.replace("#", "").split("/"), o = e[0], t = e[1], i = "undefined" == typeof qn, l = "undefined" == typeof qn && "undefined" == typeof t&&!Dn; 3735 o.length && (o && o !== qn&&!i || l ||!Dn && On != t) && cn(o, t) 3736 } 3737 } 3738 function qe(n) { 3739 clearTimeout($n); 3740 var o = e(":focus"); 3741 if (!o.is("textarea")&&!o.is("input")&&!o.is("select") && s.keyboardScrolling && s.autoScrolling) { 3742 var t = n.which, i = [40, 38, 32, 33, 34]; 3743 e.inArray(t, i)>-1 && n.preventDefault(), zn = n.ctrlKey, $n = setTimeout(function() { 3744 Ue(n) 3745 }, 150) 3746 } 3747 } 3748 function Oe() { 3749 e(this).prev().trigger("click") 3750 } 3751 function ze(e) { 3752 Un && (zn = e.ctrlKey) 3753 } 3754 function De(e) {
3755 2 == e.which && (so = e.pageY, Vn.on("mousemove", Xe)) 3756 } 3757 function Ie(e) { 3758 2 == e.which && Vn.off("mousemove") 3759 } 3760 function Pe() { 3761 var n = e(this).closest(x); 3762 e(this).hasClass(Q) ? Kn.m.left && Hn.moveSlideLeft(n) : Kn.m.right && Hn.moveSlideRight(n) 3763 } 3764 function Ve() { 3765 Un=!1, zn=!1 3766 } 3767 function We(n) { 3768 n.preventDefault(); 3769 var o = e(this).parent().index(); 3770 be(e(x).eq(o)) 3771 } 3772 function Ye(n) { 3773 n.preventDefault(); 3774 var o = e(this).closest(x).find(P), t = o.find(z).eq(e(this).closest("li").index()); 3775 Ne(o, t) 3776 } 3777 function Ue(n) { 3778 var o = n.shiftKey; 3779 switch (n.which) { 3780 case 38: 3781 case 33: 3782 Kn.k.up && Hn.moveSectionUp(); 3783 break; 3784 case 32: 3785 if (o && Kn.k.up) { 3786 Hn.moveSectionUp(); 3787 break 3788 } 3789 case 40: 3790 case 34: 3791 Kn.k.down && Hn.moveSectionDown(); 3792 break; 3793 case 36: 3794 Kn.k.up && Hn.moveTo(1); 3795 break; 3796 case 35: 3797 Kn.k.down && Hn.moveTo(e(x).length); 3798 break; 3799 case 37: 3800 Kn.k.left && Hn.moveSlideLeft(); 3801 break; 3802 case 39: 3803 Kn.k.right && Hn.moveSlideRight(); 3804 break; 3805 default: 3806 return 3807 } 3808 } 3809 function Xe(e) { 3810 Xn && (e.pageY < so ? Hn.moveSectionUp() : e.pageY > so && Hn.moveSectionDown()), so = e.pageY 3811 } 3812 function Ne(n, o) { 3813 var i = o.position(), l = o.index(), a = n.closest(x), r = a.index(x), c = a.data("anchor"), f = a.find(X), d = hn(o), u = a.find(D), p = Yn; 3814 if (s.onSlideLeave) { 3815 var h = u.index(), v = nn(h, l);
3816 if (!p && "none" !== v && e.isFunction(s.onSlideLeave) && s.onSlideLeave.call(u, c, r + 1, h, v, l)===!1) 3817 return void(Dn=!1) 3818 } 3819 Ee(u), o.addClass(g).siblings().removeClass(g), p || Me(o), !s.loopHorizontal && s.controlArrows && (a.find(Z).toggle(0 !== l), a.find(ne).toggle(!o.is(":last-child"))), a.hasClass(g) && un(l, d, c, r); 3820 var m = function() { 3821 p || e.isFunction(s.afterSlideLoad) && s.afterSlideLoad.call(o, c, r + 1, d, l), Le(o), Dn=!1 3822 }; 3823 if (s.css3) { 3824 var w = "translate3d(-" + t.round(i.left) + "px, 0px, 0px)"; 3825 Qe(n.find(W), s.scrollingSpeed > 0).css(kn(w)), Gn = setTimeout(function() { 3826 m() 3827 }, s.scrollingSpeed, s.easing) 3828 } else 3829 n.animate({ 3830 scrollLeft: t.round(i.left) 3831 }, s.scrollingSpeed, s.easing, function() { 3832 m() 3833 }); 3834 f.find(S).removeClass(g), f.find("li").eq(l).find("a").addClass(g) 3835 } 3836 function Ke() { 3837 if (je(), In) { 3838 var n = e(o.activeElement); 3839 if (!n.is("textarea")&&!n.is("input")&&!n.is("select")) { 3840 var i = oe.height(); 3841 t.abs(i - co) > 20 * t.max(co, i) / 100 && (Hn.reBuild(!0), co = i) 3842 } 3843 } else 3844 clearTimeout(jn), jn = setTimeout(function() { 3845 Hn.reBuild(!0) 3846 }, 350) 3847 } 3848 function je() { 3849 var e = s.responsive || s.responsiveWidth, n = s.responsiveHeight, o = e && oe.outerWidth() < e, t = n && oe.height() < n; 3850 e && n ? Hn.setResponsive(o || t) : e ? Hn.setResponsive(o) : n && Hn.setResponsive(t) 3851 } 3852 function Qe(e) { 3853 var n = "all " + s.scrollingSpeed + "ms " + s.easingcss3; 3854 return e.removeClass(p), e.css({ 3855 "-webkit-transition": n, 3856 transition: n 3857 }) 3858 } 3859 function Ge(e) { 3860 return e.addClass(p) 3861 } 3862 function Je(e, n) { 3863 var o = 825, i = 900; 3864 if (o > e || i > n) { 3865 var l = 100 * e / o, a = 100 * n / i, r = t.min(l, a), s = r.toFixed(2); 3866 Fn.css("font-size", s + "%") 3867 } else 3868 Fn.css("font-size", "100%") 3869 } 3870 function Ze(n, o) { 3871 s.navigation && (e(E).find(S).removeClass(g), n ? e(E).find('a[href="#' + n + '"]').addClass(g) : e(E).find("li").eq(o).find("a").addClass(g)) 3872 } 3873 function $e(n) { 3874 s.menu && (e(s.menu).find(S).removeClass(g), e(s.menu).find('[data-menuanchor="' + n + '"]').addClass(g)) 3875 } 3876 function _e(e, n) { 3877 $e(e), Ze(e, n) 3878 } 3879 function en(n) { 3880 var o = e(b).index(x), t = n.index(x); 3881 return o == t ? "none" : o > t ? "up" : "down" 3882 } 3883 function nn(e, n) { 3884 return e == n ? "none" : e > n ? "left" : "right" 3885 } 3886 function on(e) { 3887 e.css("overflow", "hidden"); 3888 var n, o = s.scrollOverflowHandler, t = o.wrapContent(), i = e.closest(x), l = o.scrollable(e); 3889 l.length ? n = o.scrollHeight(e) : (n = e.get(0).scrollHeight, s.verticalCentered && (n = e.find(A).get(0).scrollHeight)); 3890 var a = Wn - parseInt(i.css("padding-bottom")) - parseInt(i.css("padding-top")); 3891 n > a ? l.length ? o.update(e, a) : (s.verticalCentered ? e.find(A).wrapInner(t) : e.wrapInner(t), o.create(e, a)) : o.remove(e), e.css("overflow", "") 3892 } 3893 function tn(e) { 3894 e.addClass(Y).wrapInner('<div class="' + k + '" style="height:' + ln(e) + 'px;" />') 3895 } 3896 function ln(e) { 3897 var n = Wn; 3898 if (s.paddingTop || s.paddingBottom) { 3899 var o = e; 3900 o.hasClass(y) || (o = e.closest(x)); 3901 var t = parseInt(o.css("padding-top")) + parseInt(o.css("padding-bottom")); 3902 n = Wn - t 3903 } 3904 return n 3905 } 3906 function an(e, n) { 3907 n ? Qe(Vn) : Ge(Vn), Vn.css(kn(e)), setTimeout(function() { 3908 Vn.removeClass(p) 3909 }, 10) 3910 } 3911 function rn(n) { 3912 var o = Vn.find(x + '[data-anchor="' + n + '"]'); 3913 return o.length || (o = e(x).eq(n - 1)), o 3914 } 3915 function sn(e, n) { 3916 var o = n.find(P), t = o.find(z + '[data-anchor="' + e + '"]'); 3917 return t.length || (t = o.find(z).eq(e)), t 3918 } 3919 function cn(e, n) { 3920 var o = rn(e); 3921 "undefined" == typeof n && (n = 0), e === qn || o.hasClass(g) ? fn(o, n) : be(o, function() { 3922 fn(o, n) 3923 }) 3924 } 3925 function fn(e, n) { 3926 if ("undefined" != typeof n) { 3927 var o = e.find(P), t = sn(n, e); 3928 t.length && Ne(o, t) 3929 } 3930 } 3931 function dn(e, n) { 3932 e.append('<div class="' + U + '"><ul></ul></div>'); 3933 var o = e.find(X); 3934 o.addClass(s.slidesNavPosition); 3935 for (var t = 0; n > t; t++) 3936 o.find("ul").append('<li><a href="#"><span></span></a></li>');
3937 o.css("margin-left", "-" + o.width() / 2 + "px"), o.find("li").first().find("a").addClass(g) 3938 } 3939 function un(e, n, o, t) { 3940 var i = ""; 3941 s.anchors.length&&!s.lockAnchors && (e ? ("undefined" != typeof o && (i = o), "undefined" == typeof n && (n = e), On = n, pn(i + "/" + n)) : "undefined" != typeof e ? (On = n, pn(o)) : pn(o)), vn() 3942 } 3943 function pn(e) { 3944 if (s.recordHistory) 3945 location.hash = e; 3946 else if (In || Pn) 3947 n.history.replaceState(i, i, "#" + e); 3948 else { 3949 var o = n.location.href.split("#")[0]; 3950 n.location.replace(o + "#" + e) 3951 } 3952 } 3953 function hn(e) { 3954 var n = e.data("anchor"), o = e.index(); 3955 return "undefined" == typeof n && (n = o), n 3956 } 3957 function vn() { 3958 var n = e(b), o = n.find(D), t = hn(n), i = hn(o), l = (n.index(x), String(t)); 3959 o.length && (l = l + "-" + i), l = l.replace("/", "-").replace("#", ""); 3960 var a = new RegExp("\\b\\s?" + m + "-[^\\s]+\\b", "g"); 3961 Fn[0].className = Fn[0].className.replace(a, ""), Fn.addClass(m + "-" + l) 3962 } 3963 function mn() { 3964 var e, t = o.createElement("p"), l = { 3965 webkitTransform: "-webkit-transform", 3966 OTransform: "-o-transform", 3967 msTransform: "-ms-transform", 3968 MozTransform: "-moz-transform", 3969 transform: "transform" 3970 }; 3971 o.body.insertBefore(t, null); 3972 for (var a in l) 3973 t.style[a] !== i && (t.style[a] = "translate3d(1px,1px,1px)", e = n.getComputedStyle(t).getPropertyValue(l[a])); 3974 return o.body.removeChild(t), e !== i && e.length > 0 && "none" !== e 3975 } 3976 function gn() { 3977 o.addEventListener ? (o.removeEventListener("mousewheel", Se, !1), o.removeEventListener("wheel", Se, !1), o.removeEventListener("MozMousePixelScroll", Se, !1)) : o.detachEvent("onmousewheel", Se) 3978 } 3979 function Sn() { 3980 var e, t = ""; 3981 n.addEventListener ? e = "addEventListener" : (e = "attachEvent", t = "on"); 3982 var l = "onwheel"in o.createElement("div") ? "wheel": o.onmousewheel !== i ? "mousewheel": "DOMMouseScroll"; 3983 "DOMMouseScroll" == l ? o[e](t + "MozMousePixelScroll", Se, !1) : o[e](t + l, Se, !1) 3984 } 3985 function wn() { 3986 if (In || Pn) { 3987 var n = xn(); 3988 e(r).off("touchstart " + n.down).on("touchstart " + n.down, me), e(r).off("touchmove " + n.move).on("touchmove " + n.move, pe) 3989 } 3990 } 3991 function yn() { 3992 if (In || Pn) { 3993 var n = xn(); 3994 e(r).off("touchstart " + n.down), e(r).off("touchmove " + n.move) 3995 } 3996 } 3997 function xn() { 3998 var e; 3999 return e = n.PointerEvent ? { 4000 down: "pointerdown", 4001 move: "pointermove" 4002 } : { 4003 down: "MSPointerDown", 4004 move: "MSPointerMove" 4005 } 4006 } 4007 function bn(e) { 4008 var n = []; 4009 return n.y = "undefined" != typeof e.pageY && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY, n.x = "undefined" != typeof e.pageX && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX, Pn && ve(e) && s.scrollBar && (n.y = e.touches[0].pageY, n.x = e.touches[0].pageX), n 4010 } 4011 function Tn(e, n) { 4012 Hn.setScrollingSpeed(0, "internal"), "undefined" != typeof n && (Yn=!0), Ne(e.closest(P), e), "undefined" != typeof n && (Yn=!1), Hn.setScrollingSpeed(_n.scrollingSpeed, "internal") 4013 } 4014 function Cn(e) { 4015 if (s.scrollBar) 4016 Vn.scrollTop(e); 4017 else if (s.css3) { 4018 var n = "translate3d(0px, -" + e + "px, 0px)"; 4019 an(n, !1) 4020 } else 4021 Vn.css("top", - e) 4022 } 4023 function kn(e) { 4024 return { 4025 "-webkit-transform": e, 4026 "-moz-transform": e, 4027 "-ms-transform": e, 4028 transform: e 4029 } 4030 } 4031 function An(e, n, o) { 4032 switch (n) { 4033 case"up": 4034 Kn[o].up = e; 4035 break; 4036 case"down": 4037 Kn[o].down = e; 4038 break; 4039 case"left": 4040 Kn[o].left = e; 4041 break; 4042 case"right": 4043 Kn[o].right = e; 4044 break; 4045 case"all": 4046 "m" == o ? Hn.setAllowScrolling(e) : Hn.setKeyboardScrolling(e) 4047 } 4048 } 4049 function Bn() { 4050 Cn(0), e(E + ", " + X + ", " + j).remove(), e(x).css({ 4051 height: "", 4052 "background-color": "", 4053 padding: "" 4054 }), e(z).css({ 4055 width: "" 4056 }), Vn.css({ 4057 height: "", 4058 position: "", 4059 "-ms-touch-action": "", 4060 "touch-action": "" 4061 }), Rn.css({ 4062 overflow: "", 4063 height: "" 4064 }), e("html").removeClass(v), e.each(Fn.get(0).className.split(/\s+/), function(e, n) { 4065 0 === n.indexOf(m) && Fn.removeClass(n) 4066 }), e(x + ", " + z).each(function() { 4067 s.scrollOverflowHandler.remove(e(this)), e(this).removeClass(Y + " " + g) 4068 }), Ge(Vn), Vn.find(A + ", " + W + ", " + P).each(function() { 4069 e(this).replaceWith(this.childNodes) 4070 }), Rn.scrollTop(0); 4071 var n = [y, O, V]; 4072 e.each(n, function(n, o) { 4073 e("." + o).removeClass(o) 4074 }) 4075 } 4076 function Mn(e, n, o) { 4077 s[e] = n, "internal" !== o && (_n[e] = n) 4078 } 4079 function Ln() { 4080 s.continuousVertical && (s.loopTop || s.loopBottom) && (s.continuousVertical=!1, En("warn", "Option `loopTop/loopBottom` is mutually exclusive with `continuousVertical`; `continuousVertical` disabled")), s.scrollBar && s.scrollOverflow && En("warn", "Option `scrollBar` is mutually exclusive with `scrollOverflow`. Sections with scrollOverflow might not work well in Firefox"), s.continuousVertical && s.scrollBar && (s.continuousVertical=!1, En("warn", "Option `scrollBar` is mutually exclusive with `continuousVertical`; `continuousVertical` disabled")), e.each(s.anchors, function(n, o) { 4081 (e("#" + o).length || e('[name="' + o + '"]').length) && En("error", "data-anchor tags can not have the same value as any `id` element on the site (or `name` element for IE).") 4082 }) 4083 } 4084 function En(e, n) { 4085 console && console[e] && console[e]("fullPage: " + n) 4086 } 4087 var Rn = e("html, body"), Fn = e("body"), Hn = e.fn.fullpage; 4088 s = e.extend({ 4089 menu: !1, 4090 anchors: [], 4091 lockAnchors: !1, 4092 navigation: !1, 4093 navigationPosition: "right", 4094 navigationTooltips: [], 4095 showActiveTooltip: !1, 4096 slidesNavigation: !1, 4097 slidesNavPosition: "bottom", 4098 scrollBar: !1, 4099 hybrid: !1, 4100 css3: !0, 4101 scrollingSpeed: 700, 4102 autoScrolling: !0, 4103 fitToSection: !0, 4104 fitToSectionDelay: 1e3, 4105 easing: "easeInOutCubic", 4106 easingcss3: "ease", 4107 loopBottom: !1, 4108 loopTop: !1, 4109 loopHorizontal: !0, 4110 continuousVertical: !1, 4111 normalScrollElements: null, 4112 scrollOverflow: !1, 4113 scrollOverflowHandler: l, 4114 touchSensitivity: 5, 4115 normalScrollElementTouchThreshold: 5, 4116 keyboardScrolling: !0, 4117 animateAnchor: !0, 4118 recordHistory: !0, 4119 controlArrows: !0, 4120 controlArrowColor: "#fff", 4121 verticalCentered: !0, 4122 resize: !1, 4123 sectionsColor: [], 4124 paddingTop: 0, 4125 paddingBottom: 0, 4126 fixedElements: null, 4127 responsive: 0, 4128 responsiveWidth: 0, 4129 responsiveHeight: 0, 4130 sectionSelector: w, 4131 slideSelector: q, 4132 afterLoad: null, 4133 onLeave: null, 4134 afterRender: null, 4135 afterResize: null, 4136 afterReBuild: null, 4137 afterSlideLoad: null, 4138 onSlideLeave: null 4139 }, s), Ln(), e.extend(e.easing, { 4140 easeInOutCubic: function(e, n, o, t, i) {
4141 return (n/=i / 2) < 1 ? t / 2 * n * n * n + o : t / 2 * ((n -= 2) * n * n + 2) + o 4142 } 4143 }), e.extend(e.easing, { 4144 easeInQuart: function(e, n, o, t, i) { 4145 return t * (n/=i) * n * n * n + o 4146 } 4147 }), Hn.setAutoScrolling = function(n, o) { 4148 Mn("autoScrolling", n, o); 4149 var t = e(b); 4150 s.autoScrolling&&!s.scrollBar ? (Rn.css({ 4151 overflow: "hidden", 4152 height: "100%" 4153 }), Hn.setRecordHistory(_n.recordHistory, "internal"), Vn.css({ 4154 "-ms-touch-action": "none", 4155 "touch-action": "none" 4156 }), t.length && Cn(t.position().top)) : (Rn.css({ 4157 overflow: "visible", 4158 height: "initial" 4159 }), Hn.setRecordHistory(!1, "internal"), Vn.css({ 4160 "-ms-touch-action": "", 4161 "touch-action": "" 4162 }), Cn(0), t.length && Rn.scrollTop(t.position().top)) 4163 }, Hn.setRecordHistory = function(e, n) { 4164 Mn("recordHistory", e, n) 4165 }, Hn.setScrollingSpeed = function(e, n) { 4166 Mn("scrollingSpeed", e, n) 4167 }, Hn.setFitToSection = function(e, n) { 4168 Mn("fitToSection", e, n) 4169 }, Hn.setLockAnchors = function(e) { 4170 s.lockAnchors = e 4171 }, Hn.setMouseWheelScrolling = function(e) { 4172 e ? Sn() : gn() 4173 }, Hn.setAllowScrolling = function(n, o) { 4174 "undefined" != typeof o ? (o = o.replace(/ /g, "").split(","), e.each(o, function(e, o) { 4175 An(n, o, "m") 4176 })) : n ? (Hn.setMouseWheelScrolling(!0), wn()) : (Hn.setMouseWheelScrolling(!1), yn()) 4177 }, Hn.setKeyboardScrolling = function(n, o) { 4178 "undefined" != typeof o ? (o = o.replace(/ /g, "").split(","), e.each(o, function(e, o) { 4179 An(n, o, "k") 4180 })) : s.keyboardScrolling = n 4181 }, Hn.moveSectionUp = function() { 4182 var n = e(b).prev(x); 4183 n.length ||!s.loopTop&&!s.continuousVertical || (n = e(x).last()), n.length && be(n, null, !0) 4184 }, Hn.moveSectionDown = function() { 4185 var n = e(b).next(x); 4186 n.length ||!s.loopBottom&&!s.continuousVertical || (n = e(x).first()), n.length && be(n, null, !1) 4187 }, Hn.silentMoveTo = function(e, n) { 4188 requestAnimFrame(function() { 4189 Hn.setScrollingSpeed(0, "internal") 4190 }), Hn.moveTo(e, n), requestAnimFrame(function() { 4191 Hn.setScrollingSpeed(_n.scrollingSpeed, "internal") 4192 }) 4193 }, Hn.moveTo = function(e, n) { 4194 var o = rn(e); 4195 "undefined" != typeof n ? cn(e, n) : o.length > 0 && be(o) 4196 }, Hn.moveSlideRight = function(e) { 4197 we("next", e) 4198 }, Hn.moveSlideLeft = function(e) { 4199 we("prev", e) 4200 }, Hn.reBuild = function(n) { 4201 if (!Vn.hasClass(h)) { 4202 Yn=!0, requestAnimFrame(function() { 4203 Yn=!0 4204 }); 4205 var o = oe.outerWidth(); 4206 Wn = oe.height(), s.resize && Je(Wn, o), e(x).each(function() { 4207 var n = e(this).find(P), o = e(this).find(z); 4208 s.verticalCentered && e(this).find(A).css("height", ln(e(this)) + "px"), e(this).css("height", Wn + "px"), s.scrollOverflow && (o.length ? o.each(function() { 4209 on(e(this)) 4210 }) : on(e(this))), o.length > 1 && Ne(n, n.find(D)) 4211 }); 4212 var t = e(b), i = t.index(x); 4213 i && Hn.silentMoveTo(i + 1), Yn=!1, requestAnimFrame(function() { 4214 Yn=!1 4215 }), e.isFunction(s.afterResize) && n && s.afterResize.call(Vn), e.isFunction(s.afterReBuild)&&!n && s.afterReBuild.call(Vn) 4216 } 4217 }, Hn.setResponsive = function(n) { 4218 var o = Fn.hasClass(u); 4219 n ? o || (Hn.setAutoScrolling(!1, "internal"), Hn.setFitToSection(!1, "internal"), e(E).hide(), Fn.addClass(u)) : o && (Hn.setAutoScrolling(_n.autoScrolling, "internal"), Hn.setFitToSection(_n.autoScrolling, "internal"), e(E).show(), Fn.removeClass(u)) 4220 }; 4221 var qn, On, zn, Dn=!1, In = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/), Pn = "ontouchstart"in n || navigator.msMaxTouchPoints > 0 || navigator.maxTouchPoints, Vn = e(this), Wn = oe.height(), Yn=!1, Un=!0, Xn=!0, Nn = [], Kn = {}; 4222 Kn.m = { 4223 up: !0, 4224 down: !0, 4225 left: !0, 4226 right: !0 4227 }, Kn.k = e.extend(!0, {}, Kn.m); 4228 var jn, Qn, Gn, Jn, Zn, $n, _n = e.extend(!0, {}, s); 4229 e(this).length && (c(), f()); 4230 var eo=!1, no = 0, oo = 0, to = 0, io = 0, lo = 0, ao = (new Date).getTime(); 4231 n.requestAnimFrame = function() { 4232 return n.requestAnimationFrame || n.webkitRequestAnimationFrame || n.mozRequestAnimationFrame || n.oRequestAnimationFrame || n.msRequestAnimationFrame || function(e) { 4233 e() 4234 } 4235 }(); 4236 var ro = 0, so = 0, co = Wn; 4237 Hn.destroy = function(n) { 4238 Hn.setAutoScrolling(!1, "internal"), Hn.setAllowScrolling(!1), Hn.setKeyboardScrolling(!1), Vn.addClass(h), clearTimeout(Gn), clearTimeout(Qn), clearTimeout(jn), clearTimeout(Jn), clearTimeout(Zn), oe.off("scroll", ce).off("hashchange", He).off("resize", Ke), te.off("click", E + " a").off("mouseenter", E + " li").off("mouseleave", E + " li").off("
4238click", N).off("mouseover", s.normalScrollElements).off("mouseout", s.normalScrollElements), e(x).off("click", j), clearTimeout(Gn), clearTimeout(Qn), n && Bn() 4239 } 4240 }; 4241 var ie = { 4242 afterRender: function(e) { 4243 var n = e.find(I), o = e.find(c); 4244 n.length && (o = n.find(D)), o.mouseover() 4245 }, 4246 create: function(e, n) { 4247 e.find(c).slimScroll({ 4248 allowPageScroll: !0, 4249 height: n + "px", 4250 size: "10px", 4251 alwaysVisible: !0 4252 }) 4253 }, 4254 isScrolled: function(e, n) { 4255 return "top" === e?!n.scrollTop() : "bottom" === e ? n.scrollTop() + 1 + n.innerHeight() >= n[0].scrollHeight : void 0 4256 }, 4257 scrollable: function(e) { 4258 return e.find(P).length ? e.find(D).find(c) : e.find(c) 4259 }, 4260 scrollHeight: function(e) { 4261 return e.find(c).get(0).scrollHeight 4262 }, 4263 remove: function(e) { 4264 e.find(c).children().first().unwrap().unwrap(), e.find(f).remove(), e.find(d).remove() 4265 }, 4266 update: function(e, n) { 4267 e.find(c).css("height", n + "px").parent().css("height", n + "px") 4268 }, 4269 wrapContent: function() { 4270 return '<div class="' + s + '"></div>' 4271 } 4272 }; 4273 l = ie 4274});; 4275!function(t, e, i, n) { 4276 "use strict"; 4277 function a(t) { 4278 return ("string" == typeof t || t instanceof String) && (t = t.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, "")), t 4279 } 4280 var s = function(e) { 4281 for (var i = e.length, n = t("head"); i--;) 4282 0 === n.has("." + e[i]).length && n.append('<meta class="' + e[i] + '" />') 4283 }; 4284 s(["foundation-mq-small", "foundation-mq-small-only", "foundation-mq-medium", "foundation-mq-medium-only", "foundation-mq-large", "foundation-mq-large-only", "foundation-mq-xlarge", "foundation-mq-xlarge-only", "foundation-mq-xxlarge", "foundation-data-attribute-namespace"]), t(function() { 4285 "undefined" != typeof FastClick && "undefined" != typeof i.body && FastClick.attach(i.body) 4286 }); 4287 var r = function(e, n) { 4288 if ("string" == typeof e) { 4289 if (n) { 4290 var a; 4291 if (n.jquery) { 4292 if (a = n[0], !a) 4293 return n 4294 } else 4295 a = n; 4296 return t(a.querySelectorAll(e)) 4297 } 4298 return t(i.querySelectorAll(e)) 4299 } 4300 return t(e, n) 4301 }, o = function(t) { 4302 var e = []; 4303 return t || e.push("data"), this.namespace.length > 0 && e.push(this.namespace), e.push(this.name), e.join("-") 4304 }, u = function(t) { 4305 for (var e = t.split("-"), i = e.length, n = []; i--;) 4306 0 !== i ? n.push(e[i]) : this.namespace.length > 0 ? n.push(this.namespace, e[i]) : n.push(e[i]); 4307 return n.reverse().join("-") 4308 }, l = function(e, i) { 4309 var n = this, a = function() { 4310 var a = r(this), s=!a.data(n.attr_name(!0) + "-init"); 4311 a.data(n.attr_name(!0) + "-init", t.extend({}, n.settings, i || e, n.data_options(a))), s && n.events(this) 4312 }; 4313 return r(this.scope).is("[" + this.attr_name() + "]") ? a.call(this.scope) : r("[" + this.attr_name() + "]", this.scope).each(a), "string" == typeof e ? this[e].call(this, i) : void 0 4314 }, c = function(t, e) { 4315 function i() { 4316 e(t[0]) 4317 } 4318 function n() { 4319 if (this.one("load", i), /MSIE (\d+\.\d+);/.test(navigator.userAgent)) { 4320 var t = this.attr("src"), e = t.match(/\?/) ? "&": "?"; 4321 e += "random=" + (new Date).getTime(), this.attr("src", t + e) 4322 } 4323 } 4324 return t.attr("src") ? void(t[0].complete || 4 === t[0].readyState ? i() : n.call(t)) : void i() 4325 }; 4326 e.matchMedia || (e.matchMedia = function() { 4327 var t = e.styleMedia || e.media; 4328 if (!t) { 4329 var n = i.createElement("style"), a = i.getElementsByTagName("script")[0], s = null; 4330 n.type = "text/css", n.id = "matchmediajs-test", a.parentNode.insertBefore(n, a), s = "getComputedStyle"in e && e.getComputedStyle(n, null) || n.currentStyle, t = { 4331 matchMedium: function(t) { 4332 var e = "@media " + t + "{ #matchmediajs-test { width: 1px; } }"; 4333 return n.styleSheet ? n.styleSheet.cssText = e : n.textContent = e, "1px" === s.width 4334 } 4335 } 4336 } 4337 return function(e) { 4338 return { 4339 matches: t.matchMedium(e || "all"), 4340 media: e || "all" 4341 } 4342 } 4343 }()), function(t) { 4344 function i() { 4345 n && (r(i), u && t.fx.tick()) 4346 } 4347 for (var n, a = 0, s = ["webkit", "moz"], r = e.requestAnimationFrame, o = e.cancelAnimationFrame, u = "undefined" != typeof t.fx; a < s.length&&!r; a++) 4348 r = e[s[a] + "RequestAnimationFrame"], o = o || e[s[a] + "CancelAnimationFrame"] || e[s[a] + "CancelRequestAnimationFrame"]; 4349 r ? (e.requestAnimationFrame = r, e.cancelAnimationFrame = o, u && (t.fx.timer = function(e) { 4350 e() && t.timers.push(e)&&!n && (n=!0, i()) 4351 }, t.fx.stop = function() { 4352 n=!1 4353 })) : (e.requestAnimationFrame = function(t) { 4354 var i = (new Date).getTime(), n = Math.max(0, 16 - (i - a)), s = e.setTimeout(function() { 4355 t(i + n) 4356 }, n); 4357 return a = i + n, s 4358 }, e.cancelAnimationFrame = function(t) { 4359 clearTimeout(t) 4360 }) 4361 }(t), e.Foundation = { 4362 name: "Foundation", 4363 version: "5.5.2", 4364 media_queries: {
vendor: 21,145 bytes, lines 4365-4722
4365 small: r(".foundation-mq-small").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""), 4366 "small-only": r(".foundation-mq-small-only").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""), 4367 medium: r(".foundation-mq-medium").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""), 4368 "medium-only": r(".foundation-mq-medium-only").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""), 4369 large: r(".foundation-mq-large").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""), 4370 "large-only": r(".foundation-mq-large-only").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""), 4371 xlarge: r(".foundation-mq-xlarge").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""), 4372 "xlarge-only": r(".foundation-mq-xlarge-only").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""), 4373 xxlarge: r(".foundation-mq-xxlarge").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, "") 4374 }, 4375 stylesheet: t("<style></style>").appendTo("head")[0].sheet, 4376 global: { 4377 namespace: n 4378 }, 4379 init: function(t, i, n, a, s) { 4380 var o = [t, n, a, s], u = []; 4381 if (this.rtl = /rtl/i.test(r("html").attr("dir")), this.scope = t || this.scope, this.set_namespace(), i && "string" == typeof i&&!/reflow/i.test(i)) 4382 this.libs.hasOwnProperty(i) && u.push(this.init_lib(i, o)); 4383 else 4384 for (var l in this.libs) 4385 u.push(this.init_lib(l, i)); 4386 return r(e).on('load', function () { 4387 r(e).trigger("resize.fndtn.clearing").trigger("resize.fndtn.dropdown").trigger("resize.fndtn.equalizer").trigger("resize.fndtn.interchange").trigger("resize.fndtn.joyride").trigger("resize.fndtn.magellan").trigger("resize.fndtn.topbar").trigger("resize.fndtn.slider") 4388 }), t 4389 }, 4390 init_lib: function(e, i) { 4391 return this.libs.hasOwnProperty(e) ? (this.patch(this.libs[e]), i && i.hasOwnProperty(e) ? ("undefined" != typeof this.libs[e].settings ? t.extend(!0, this.libs[e].settings, i[e]) : "undefined" != typeof this.libs[e].defaults && t.extend(!0, this.libs[e].defaults, i[e]), this.libs[e].init.apply(this.libs[e], [this.scope, i[e]])) : (i = i instanceof Array ? i : new Array(i), this.libs[e].init.apply(this.libs[e], i))) : function() {} 4392 }, 4393 patch: function(t) { 4394 t.scope = this.scope, t.namespace = this.global.namespace, t.rtl = this.rtl, t.data_options = this.utils.data_options, t.attr_name = o, t.add_namespace = u, t.bindings = l, t.S = this.utils.S 4395 }, 4396 inherit: function(t, e) { 4397 for (var i = e.split(" "), n = i.length; n--;) 4398 this.utils.hasOwnProperty(i[n]) && (t[i[n]] = this.utils[i[n]]) 4399 }, 4400 set_namespace: function() { 4401 var e = this.global.namespace === n ? t(".foundation-data-attribute-namespace").css("font-family"): this.global.namespace; 4402 this.global.namespace = e === n || /false/i.test(e) ? "" : e 4403 }, 4404 libs: {}, 4405 utils: { 4406 S: r, 4407 throttle: function(t, e) { 4408 var i = null; 4409 return function() { 4410 var n = this, a = arguments; 4411 null == i && (i = setTimeout(function() { 4412 t.apply(n, a), i = null 4413 }, e)) 4414 } 4415 }, 4416 debounce: function(t, e, i) { 4417 var n, a; 4418 return function() { 4419 var s = this, r = arguments, o = function() { 4420 n = null, i || (a = t.apply(s, r)) 4421 }, u = i&&!n; 4422 return clearTimeout(n), n = setTimeout(o, e), u && (a = t.apply(s, r)), a 4423 } 4424 }, 4425 data_options: function(e, i) { 4426 function n(t) { 4427 return !isNaN(t - 0) && null !== t && "" !== t && t!==!1 && t!==!0 4428 } 4429 function a(e) { 4430 return "string" == typeof e ? t.trim(e) : e 4431 } 4432 i = i || "options"; 4433 var s, r, o, u = {}, l = function(t) { 4434 var e = Foundation.global.namespace; 4435 return e.length > 0 ? t.data(e + "-" + i) : t.data(i) 4436 }, c = l(e); 4437 if ("object" == typeof c) 4438 return c; 4439 for (o = (c || ":").split(";"), s = o.length; s--;) 4440 r = o[s].split(":"), r = [r[0], r.slice(1).join(":")], /true/i.test(r[1]) && (r[1]=!0), /false/i.test(r[1]) && (r[1]=!1), n(r[1]) && ( - 1 === r[1].indexOf(".") ? r[1] = parseInt(r[1], 10) : r[1] = parseFloat(r[1])), 2 === r.length && r[0].length > 0 && (u[a(r[0])] = a(r[1])); 4441 return u 4442 }, 4443 register_media: function(e, i) { 4444 Foundation.media_queries[e] === n && (t("head").append('<meta class="' + i + '"/>'), Foundation.media_queries[e] = a(t("." + i).css("font-family"))) 4445 }, 4446 add_custom_rule: function(t, e) { 4447 if (e === n && Foundation.stylesheet) 4448 Foundation.stylesheet.insertRule(t, Foundation.stylesheet.cssRules.length); 4449 else { 4450 var i = Foundation.media_queries[e]; 4451 i !== n && Foundation.stylesheet.insertRule("@media " + Foundation.media_queries[e] + "{ " + t + " }", Foundation.stylesheet.cssRules.length) 4452 } 4453 }, 4454 image_loaded: function(t, e) { 4455 function i(t) { 4456 for (var e = t.length, i = e - 1; i >= 0; i--) 4457 if (t.attr("height") === n) 4458 return !1; 4459 return !0 4460 } 4461 var a = this, s = t.length; 4462 (0 === s || i(t)) && e(t), t.each(function() { 4463 c(a.S(this), function() { 4464 s -= 1, 0 === s && e(t) 4465 }) 4466 }) 4467 }, 4468 random_str: function() { 4469 return this.fidx || (this.fidx = 0), this.prefix = this.prefix || [this.name || "F", ( + new Date).toString(36)].join("-"), this.prefix + (this.fidx++).toString(36) 4470 }, 4471 match: function(t) { 4472 return e.matchMedia(t).matches 4473 }, 4474 is_small_up: function() { 4475 return this.match(Foundation.media_queries.small) 4476 }, 4477 is_medium_up: function() { 4478 return this.match(Foundation.media_queries.medium) 4479 }, 4480 is_large_up: function() { 4481 return this.match(Foundation.media_queries.large) 4482 }, 4483 is_xlarge_up: function() { 4484 return this.match(Foundation.media_queries.xlarge) 4485 }, 4486 is_xxlarge_up: function() { 4487 return this.match(Foundation.media_queries.xxlarge) 4488 }, 4489 is_small_only: function() { 4490 return !(this.is_medium_up() || this.is_large_up() || this.is_xlarge_up() || this.is_xxlarge_up()) 4491 }, 4492 is_medium_only: function() { 4493 return this.is_medium_up()&&!this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up() 4494 }, 4495 is_large_only: function() { 4496 return this.is_medium_up() && this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up() 4497 }, 4498 is_xlarge_only: function() { 4499 return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up()&&!this.is_xxlarge_up() 4500 }, 4501 is_xxlarge_only: function() { 4502 return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up() 4503 } 4504 } 4505 }, t.fn.foundation = function() { 4506 var t = Array.prototype.slice.call(arguments, 0); 4507 return this.each(function() { 4508 return Foundation.init.apply(Foundation, [this].concat(t)), this 4509 }) 4510 } 4511}(jQuery, window, window.document);; 4512!function(t, n, i, e) { 4513 "use strict"; 4514 Foundation.libs.alert = { 4515 name: "alert", 4516 version: "5.5.2", 4517 settings: { 4518 callback: function() {} 4519 }, 4520 init: function(t, n, i) { 4521 this.bindings(n, i) 4522 }, 4523 events: function() { 4524 var n = this, i = this.S; 4525 t(this.scope).off(".alert").on("click.fndtn.alert", "[" + this.attr_name() + "] .close", function(t) { 4526 var e = i(this).closest("[" + n.attr_name() + "]"), s = e.data(n.attr_name(!0) + "-init") || n.settings; 4527 t.preventDefault(), Modernizr.csstransitions ? (e.addClass("alert-close"), e.on("transitionend webkitTransitionEnd oTransitionEnd", function(t) { 4528 i(this).trigger("close.fndtn.alert").remove(), s.callback() 4529 })) : e.fadeOut(300, function() { 4530 i(this).trigger("close.fndtn.alert").remove(), s.callback() 4531 }) 4532 }) 4533 }, 4534 reflow: function() {} 4535 } 4536}(jQuery, window, window.document);; 4537!function(e, t, a, s) { 4538 "use strict"; 4539 Foundation.libs.offcanvas = { 4540 name: "offcanvas", 4541 version: "5.5.2", 4542 settings: { 4543 open_method: "move", 4544 close_on_click: !1 4545 }, 4546 init: function(e, t, a) { 4547 this.bindings(t, a) 4548 }, 4549 events: function() { 4550 var t = this, a = t.S, s = "", n = "", o = ""; 4551 "move" === this.settings.open_method ? (s = "move-", n = "right", o = "left") : "overlap_single" === this.settings.open_method ? (s = "offcanvas-overlap-", n = "right", o = "left") : "overlap" === this.settings.open_method && (s = "offcanvas-overlap"), a(this.scope).off(".offcanvas").on("click.fndtn.offcanvas", ".left-off-canvas-toggle", function(o) { 4552 t.click_toggle_class(o, s + n), "overlap" !== t.settings.open_method && a(".left-submenu").removeClass(s + n), e(".left-off-canvas-toggle").attr("aria-expanded", "true") 4553 }).on("click.fndtn.offcanvas", ".left-off-canvas-menu a", function(o) { 4554 var i = t.get_settings(o), r = a(this).parent(); 4555 !i.close_on_click || r.hasClass("has-submenu") || r.hasClass("back") ? a(this).parent().hasClass("has-submenu") ? (o.preventDefault(), a(this).siblings(".left-submenu").toggleClass(s + n)) : r.hasClass("back") && (o.preventDefault(), r.parent().removeClass(s + n)) : (t.hide.call(t, s + n, t.get_wrapper(o)), r.parent().removeClass(s + n)), e(".left-off-canvas-toggle").attr("aria-expanded", "true") 4556 }).on("click.fndtn.offcanvas", ".right-off-canvas-toggle", function(n) { 4557 t.click_toggle_class(n, s + o), "overlap" !== t.settings.open_method && a(".right-submenu").removeClass(s + o), e(".right-off-canvas-toggle").attr("aria-expanded", "true") 4558 }).on("click.fndtn.offcanvas", ".right-off-canvas-menu a", function(n) { 4559 var i = t.get_settings(n), r = a(this).parent(); 4560 !i.close_on_click || r.hasClass("has-submenu") || r.hasClass("back") ? a(this).parent().hasClass("has-submenu") ? (n.preventDefault(), a(this).siblings(".right-submenu").toggleClass(s + o)) : r.hasClass("back") && (n.preventDefault(), r.parent().removeClass(s + o)) : (t.hide.call(t, s + o, t.get_wrapper(n)), r.parent().removeClass(s + o)), e(".right-off-canvas-toggle").attr("aria-expanded", "true") 4561 }).on("click.fndtn.offcanvas", ".exit-off-canvas", function(i) { 4562 t.click_remove_class(i, s + o), a(".right-submenu").removeClass(s + o), n && (t.click_remove_class(i, s + n), a(".left-submenu").removeClass(s + o)), e(".right-off-canvas-toggle").attr("aria-expanded", "true") 4563 }).on("click.fndtn.offcanvas", ".exit-off-canvas", function(a) { 4564 t.click_remove_class(a, s + o), e(".left-off-canvas-toggle").attr("aria-expanded", "false"), n && (t.click_remove_class(a, s + n), e(".right-off-canvas-toggle").attr("aria-expanded", "false")) 4565 }) 4566 }, 4567 toggle: function(e, t) { 4568 t = t || this.get_wrapper(), t.is("." + e) ? this.hide(e, t) : this.show(e, t) 4569 }, 4570 show: function(e, t) { 4571 t = t || this.get_wrapper(), t.trigger("open.fndtn.offcanvas"), t.addClass(e) 4572 }, 4573 hide: function(e, t) { 4574 t = t || this.get_wrapper(), t.trigger("close.fndtn.offcanvas"), t.removeClass(e) 4575 }, 4576 click_toggle_class: function(e, t) { 4577 e.preventDefault(); 4578 var a = this.get_wrapper(e); 4579 this.toggle(t, a) 4580 }, 4581 click_remove_class: function(e, t) { 4582 e.preventDefault(); 4583 var a = this.get_wrapper(e); 4584 this.hide(t, a) 4585 }, 4586 get_settings: function(e) { 4587 var t = this.S(e.target).closest("[" + this.attr_name() + "]"); 4588 return t.data(this.attr_name(!0) + "-init") || this.settings 4589 }, 4590 get_wrapper: function(e) { 4591 var t = this.S(e ? e.target : this.scope).closest(".off-canvas-wrap"); 4592 return 0 === t.length && (t = this.S(".off-canvas-wrap")), t 4593 }, 4594 reflow: function() {} 4595 } 4596}(jQuery, window, window.document);; 4597!function(e, t, n, a) { 4598 "use strict"; 4599 function s(e) { 4600 var t = /fade/i.test(e), n = /pop/i.test(e); 4601 return { 4602 animate: t || n, 4603 pop: n, 4604 fade: t 4605 } 4606 } 4607 Foundation.libs.reveal = { 4608 name: "reveal", 4609 version: "5.5.2", 4610 locked: !1, 4611 settings: { 4612 animation: "fadeAndPop", 4613 animation_speed: 250, 4614 close_on_background_click: !0, 4615 close_on_esc: !0, 4616 dismiss_modal_class: "close-reveal-modal", 4617 multiple_opened: !1, 4618 bg_class: "reveal-modal-bg", 4619 root_element: "body", 4620 open: function() {}, 4621 opened: function() {}, 4622 close: function() {}, 4623 closed: function() {}, 4624 on_ajax_error: e.noop, 4625 bg: e(".reveal-modal-bg"), 4626 css: { 4627 open: { 4628 opacity: 0, 4629 visibility: "visible", 4630 display: "block" 4631 }, 4632 close: { 4633 opacity: 1, 4634 visibility: "hidden", 4635 display: "none" 4636 } 4637 } 4638 }, 4639 init: function(t, n, a) { 4640 e.extend(!0, this.settings, n, a), this.bindings(n, a) 4641 }, 4642 events: function(e) { 4643 var t = this, a = t.S; 4644 return a(this.scope).off(".reveal").on("click.fndtn.reveal", "[" + this.add_namespace("data-reveal-id") + "]:not([disabled])", function(e) { 4645 if (e.preventDefault(), !t.locked) { 4646 var n = a(this), s = n.data(t.data_attr("reveal-ajax")), o = n.data(t.data_attr("reveal-replace-content")); 4647 if (t.locked=!0, "undefined" == typeof s) 4648 t.open.call(t, n); 4649 else { 4650 var i = s===!0 ? n.attr("href"): s; 4651 t.open.call(t, n, { 4652 url: i 4653 }, { 4654 replaceContentSel: o 4655 }) 4656 } 4657 } 4658 }), a(n).on("click.fndtn.reveal", this.close_targets(), function(e) { 4659 if (e.preventDefault(), !t.locked) { 4660 var n = a("[" + t.attr_name() + "].open").data(t.attr_name(!0) + "-init") || t.settings, s = a(e.target)[0] === a("." + n.bg_class)[0]; 4661 if (s) { 4662 if (!n.close_on_background_click) 4663 return; 4664 e.stopPropagation() 4665 } 4666 t.locked=!0, t.close.call(t, s ? a("[" + t.attr_name() + "].open:not(.toback)") : a(this).closest("[" + t.attr_name() + "]")) 4667 } 4668 }), a("[" + t.attr_name() + "]", this.scope).length > 0 ? a(this.scope).on("open.fndtn.reveal", this.settings.open).on("opened.fndtn.reveal", this.settings.opened).on("opened.fndtn.reveal", this.open_video).on("close.fndtn.reveal", this.settings.close).on("closed.fndtn.reveal", this.settings.closed).on("closed.fndtn.reveal", this.close_video) : a(this.scope).on("open.fndtn.reveal", "[" + t.attr_name() + "]", this.settings.open).on("opened.fndtn.reveal", "[" + t.attr_name() + "]", this.settings.opened).on("opened.fndtn.reveal", "[" + t.attr_name() + "]", this.open_video).on("close.fndtn.reveal", "[" + t.attr_name() + "]", this.settings.close).on("closed.fndtn.reveal", "[" + t.attr_name() + "]", this.settings.closed).on("closed.fndtn.reveal", "[" + t.attr_name() + "]", this.close_video), !0 4669 }, 4670 key_up_on: function(e) { 4671 var t = this; 4672 return t.S("body").off("keyup.fndtn.reveal").on("keyup.fndtn.reveal", function(e) { 4673 var n = t.S("[" + t.attr_name() + "].open"), a = n.data(t.attr_name(!0) + "-init") || t.settings; 4674 a && 27 === e.which && a.close_on_esc&&!t.locked && t.close.call(t, n) 4675 }), !0 4676 }, 4677 key_up_off: function(e) { 4678 return this.S("body").off("keyup.fndtn.reveal"), !0 4679 }, 4680 open: function(n, a) { 4681 var s, o = this; 4682 n ? "undefined" != typeof n.selector ? s = o.S("#" + n.data(o.data_attr("reveal-id"))).first() : (s = o.S(this.scope), a = n) : s = o.S(this.scope); 4683 var i = s.data(o.attr_name(!0) + "-init"); 4684 if (i = i || this.settings, s.hasClass("open") && n.attr("data-reveal-id") == s.attr("id")) 4685 return o.close(s); 4686 if (!s.hasClass("open")) { 4687 var r = o.S("[" + o.attr_name() + "].open"); 4688 if ("undefined" == typeof s.data("css-top") && s.data("css-top", parseInt(s.css("top"), 10)).data("offset", this.cache_offset(s)), s.attr("tabindex", "0").attr("aria-hidden", "false"), this.key_up_on(s), s.on("open.fndtn.reveal", function(e) { 4689 "fndtn.reveal" !== e.namespace 4690 }), s.on("open.fndtn.reveal").trigger("open.fndtn.reveal"), r.length < 1 && this.toggle_bg(s, !0), "string" == typeof a && (a = { 4691 url: a 4692 }), "undefined" != typeof a && a.url) { 4693 var d = "undefined" != typeof a.success ? a.success: null; 4694 e.extend(a, { 4695 success: function(t, n, a) { 4696 if (e.isFunction(d)) { 4697 var l = d(t, n, a); 4698 "string" == typeof l && (t = l) 4699 } 4700 "undefined" != typeof options && "undefined" != typeof options.replaceContentSel ? s.find(options.replaceContentSel).html(t) : s.html(t), o.S(s).foundation("section", "reflow"), o.S(s).children().foundation(), r.length > 0 && (i.multiple_opened ? o.to_back(r) : o.hide(r, i.css.close)), o.show(s, i.css.open) 4701 } 4702 }), i.on_ajax_error !== e.noop && e.extend(a, { 4703 error: i.on_ajax_error 4704 }), e.ajax(a) 4705 } else 4706 r.length > 0 && (i.multiple_opened ? o.to_back(r) : o.hide(r, i.css.close)), this.show(s, i.css.open) 4707 } 4708 o.S(t).trigger("resize") 4709 }, 4710 close: function(t) { 4711 var t = t && t.length ? t: this.S(this.scope), n = this.S("[" + this.attr_name() + "].open"), a = t.data(this.attr_name(!0) + "-init") || this.settings, s = this; 4712 n.length > 0 && (t.removeAttr("tabindex", "0").attr("aria-hidden", "true"), this.locked=!0, this.key_up_off(t), t.trigger("close.fndtn.reveal"), (a.multiple_opened && 1 === n.length ||!a.multiple_opened || t.length > 1) && (s.toggle_bg(t, !1), s.to_front(t)), a.multiple_opened ? (s.hide(t, a.css.close, a), s.to_front(e(e.makeArray(n).reverse()[1]))) : s.hide(n, a.css.close, a)) 4713 }, 4714 close_targets: function() { 4715 var e = "." + this.settings.dismiss_modal_class; 4716 return this.settings.close_on_background_click ? e + ", ." + this.settings.bg_class : e 4717 }, 4718 toggle_bg: function(t, n) { 4719 0 === this.S("." + this.settings.bg_class).length && (this.settings.bg = e("<div />", { 4720 "class": this.settings.bg_class 4721 }).appendTo("body").hide()); 4722 var s = this.settings.bg.filter(":visible").length > 0;
4723 n != s && ((n == a ? s : !n) ? this.hide(this.settings.bg) : this.show(this.settings.bg)) 4724 }, 4725 show: function(n, a) { 4726 if (a) { 4727 var o = n.data(this.attr_name(!0) + "-init") || this.settings, i = o.root_element, r = this; 4728 if (0 === n.parent(i).length) { 4729 var d = n.wrap('<div style="display: none;" />').parent(); 4730 n.on("closed.fndtn.reveal.wrapped", function() { 4731 n.detach().appendTo(d), n.unwrap().unbind("closed.fndtn.reveal.wrapped") 4732 }), n.detach().appendTo(i) 4733 } 4734 var l = s(o.animation); 4735 if (l.animate || (this.locked=!1), l.pop) { 4736 a.top = e(t).scrollTop() - n.data("offset") + "px"; 4737 var c = { 4738 top: e(t).scrollTop() + n.data("css-top") + "px", 4739 opacity: 1 4740 }; 4741 return setTimeout(function() { 4742 return n.css(a).animate(c, o.animation_speed, "linear", function() { 4743 r.locked=!1, n.trigger("opened.fndtn.reveal") 4744 }).addClass("open") 4745 }, o.animation_speed / 2) 4746 } 4747 if (l.fade) { 4748 a.top = e(t).scrollTop() + n.data("css-top") + "px"; 4749 var c = { 4750 opacity: 1 4751 }; 4752 return setTimeout(function() { 4753 return n.css(a).animate(c, o.animation_speed, "linear", function() { 4754 r.locked=!1, n.trigger("opened.fndtn.reveal") 4755 }).addClass("open") 4756 }, o.animation_speed / 2) 4757 } 4758 return n.css(a).show().css({ 4759 opacity: 1 4760 }).addClass("open").trigger("opened.fndtn.reveal") 4761 } 4762 var o = this.settings; 4763 return s(o.animation).fade ? n.fadeIn(o.animation_speed / 2) : (this.locked=!1, n.show()) 4764 }, 4765 to_back: function(e) { 4766 e.addClass("toback") 4767 }, 4768 to_front: function(e) { 4769 e.removeClass("toback") 4770 }, 4771 hide: function(n, a) { 4772 if (a) { 4773 var o = n.data(this.attr_name(!0) + "-init"), i = this; 4774 o = o || this.settings; 4775 var r = s(o.animation); 4776 if (r.animate || (this.locked=!1), r.pop) { 4777 var d = { 4778 top: - e(t).scrollTop() - n.data("offset") + "px", 4779 opacity: 0 4780 }; 4781 return setTimeout(function() { 4782 return n.animate(d, o.animation_speed, "linear", function() { 4783 i.locked=!1, n.css(a).trigger("closed.fndtn.reveal") 4784 }).removeClass("open") 4785 }, o.animation_speed / 2) 4786 } 4787 if (r.fade) { 4788 var d = { 4789 opacity: 0 4790 }; 4791 return setTimeout(function() { 4792 return n.animate(d, o.animation_speed, "linear", function() { 4793 i.locked=!1, n.css(a).trigger("closed.fndtn.reveal") 4794 }).removeClass("open") 4795 }, o.animation_speed / 2) 4796 } 4797 return n.hide().css(a).removeClass("open").trigger("closed.fndtn.reveal") 4798 } 4799 var o = this.settings; 4800 return s(o.animation).fade ? n.fadeOut(o.animation_speed / 2) : n.hide() 4801 }, 4802 close_video: function(t) { 4803 var n = e(".flex-video", t.target), a = e("iframe", n); 4804 a.length > 0 && (a.attr("data-src", a[0].src), a.attr("src", a.attr("src")), n.hide()) 4805 }, 4806 open_video: function(t) { 4807 var n = e(".flex-video", t.target), s = n.find("iframe"); 4808 if (s.length > 0) { 4809 var o = s.attr("data-src"); 4810 if ("string" == typeof o) 4811 s[0].src = s.attr("data-src"); 4812 else { 4813 var i = s[0].src; 4814 s[0].src = a, s[0].src = i 4815 } 4816 n.show() 4817 } 4818 }, 4819 data_attr: function(e) { 4820 return this.namespace.length > 0 ? this.namespace + "-" + e : e 4821 }, 4822 cache_offset: function(e) { 4823 var t = e.show().height() + parseInt(e.css("top"), 10) + e.scrollY; 4824 return e.hide(), t 4825 }, 4826 off: function() { 4827 e(this.scope).off(".fndtn.reveal") 4828 }, 4829 reflow: function() {} 4830 } 4831}(jQuery, window, window.document);; 4832!function(t, s, a) { 4833 function e(s, a) { 4834 this.element = s, this.$element = t(s), this.tabs = [], this.state = "", this.rotateInterval = 0, this.$queue = t({}), this.options = t.extend({}, o, a), this.init() 4835 } 4836 var o = { 4837 active: null, 4838 event: "click", 4839 disabled: [], 4840 collapsible: "accordion", 4841 startCollapsed: !1, 4842 rotate: !1, 4843 setHash: !1, 4844 animation: "default", 4845 animationQueue: !1, 4846 duration: 500, 4847 scrollToAccordion: !1, 4848 scrollToAccordionOnLoad: !0, 4849 scrollToAccordionOffset: 0, 4850 accordionTabElement: "<div></div>", 4851 activate: function() {}, 4852 deactivate: function() {}, 4853 load: function() {}, 4854 activateState: function() {}, 4855 classes: { 4856 stateDefault: "r-tabs-state-default", 4857 stateActive: "r-tabs-state-active", 4858 stateDisabled: "r-tabs-state-disabled", 4859 stateExcluded: "r-tabs-state-excluded", 4860 container: "r-tabs", 4861 ul: "r-tabs-nav", 4862 tab: "r-tabs-tab", 4863 anchor: "r-tabs-anchor", 4864 panel: "r-tabs-panel", 4865 accordionTitle: "r-tabs-accordion-title" 4866 } 4867 }; 4868 e.prototype.init = function() { 4869 var a = this; 4870 this.tabs = this._loadElements(), this._loadClasses(), this._loadEvents(), t(s).on("resize", function(t) { 4871 a._setState(t) 4872 }), t(s).on("hashchange", function(t) { 4873 var e = a._getTabRefBySelector(s.location.hash), o = a._getTab(e); 4874 e >= 0&&!o._ignoreHashChange&&!o.disabled && a._openTab(t, a._getTab(e), !0) 4875 }), this.options.rotate!==!1 && this.startRotation(), this.$element.bind("tabs-activate", function(t, s) { 4876 a.options.activate.call(this, t, s) 4877 }), this.$element.bind("tabs-deactivate", function(t, s) { 4878 a.options.deactivate.call(this, t, s) 4879 }), this.$element.bind("tabs-activate-state", function(t, s) { 4880 a.options.activateState.call(this, t, s) 4881 }), this.$element.bind("tabs-load", function(t) { 4882 var s; 4883 a._setState(t), a.options.startCollapsed===!0 || "accordion" === a.options.startCollapsed && "accordion" === a.state || (s = a._getStartTab(), a._openTab(t, s), a.options.load.call(this, t, s)) 4884 }), this.$element.trigger("tabs-load") 4885 }, e.prototype._loadElements = function() { 4886 var s = this, a = this.$element.children("ul"), e = [], o = 0; 4887 return this.$element.addClass(s.options.classes.container), a.addClass(s.options.classes.ul), t("li", a).each(function() { 4888 var a, i, n, l, r, c = t(this), p = c.hasClass(s.options.classes.stateExcluded); 4889 if (!p) { 4890 a = t("a", c), r = a.attr("href"), i = t(r), n = t(s.options.accordionTabElement).insertBefore(i), l = t("<a></a>").attr("href", r).html(a.html()).appendTo(n);
4891 var h = { 4892 _ignoreHashChange: !1, 4893 id: o, 4894 disabled: - 1 !== t.inArray(o, s.options.disabled), 4895 tab: t(this), 4896 anchor: t("a", c), 4897 panel: i, 4898 selector: r, 4899 accordionTab: n, 4900 accordionAnchor: l, 4901 active: !1 4902 }; 4903 o++, e.push(h) 4904 } 4905 }), e 4906 }, e.prototype._loadClasses = function() { 4907 for (var t = 0; t < this.tabs.length; t++) 4908 this.tabs[t].tab.addClass(this.options.classes.stateDefault).addClass(this.options.classes.tab), this.tabs[t].anchor.addClass(this.options.classes.anchor), this.tabs[t].panel.addClass(this.options.classes.stateDefault).addClass(this.options.classes.panel), this.tabs[t].accordionTab.addClass(this.options.classes.accordionTitle), this.tabs[t].accordionAnchor.addClass(this.options.classes.anchor), this.tabs[t].disabled && (this.tabs[t].tab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled), this.tabs[t].accordionTab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled)) 4909 }, e.prototype._loadEvents = function() { 4910 for (var t = this, a = function(a) { 4911 var e = t._getCurrentTab(), o = a.data.tab; 4912 a.preventDefault(), o.disabled || (t.options.setHash && (history.pushState ? history.pushState(null, null, o.selector) : s.location.hash = o.selector), a.data.tab._ignoreHashChange=!0, (e !== o || t._isCollapisble()) && (t._closeTab(a, e), e === o && t._isCollapisble() || t._openTab(a, o, !1, !0))) 4913 }, e = 0; e < this.tabs.length; e++) 4914 this.tabs[e].anchor.on(t.options.event, { 4915 tab: t.tabs[e] 4916 }, a), this.tabs[e].accordionAnchor.on(t.options.event, { 4917 tab: t.tabs[e] 4918 }, a) 4919 }, e.prototype._getStartTab = function() { 4920 var t, a = this._getTabRefBySelector(s.location.hash); 4921 return t = a >= 0&&!this._getTab(a).disabled ? this._getTab(a) : this.options.active > 0&&!this._getTab(this.options.active).disabled ? this._getTab(this.options.active) : this._getTab(0) 4922 }, e.prototype._setState = function(s) { 4923 var e, o = t("ul", this.$element).first(), i = this.state, n = "string" == typeof this.options.startCollapsed; 4924 o.is(":visible") ? this.state = "tabs" : this.state = "accordion", this.state !== i && (this.$element.trigger("tabs-activate-state", { 4925 oldState: i, 4926 newState: this.state 4927 }), i && n && this.options.startCollapsed !== this.state && this._getCurrentTab() === a && (e = this._getStartTab(s), this._openTab(s, e))) 4928 }, e.prototype._openTab = function(s, a, e, o) { 4929 var i, n = this; 4930 e && this._closeTab(s, this._getCurrentTab()), o && this.rotateInterval > 0 && this.stopRotation(), a.active=!0, a.tab.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive), a.accordionTab.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive), n._doTransition(a.panel, n.options.animation, "open", function() { 4931 var e = "tabs-load" !== s.type || n.options.scrollToAccordionOnLoad; 4932 a.panel.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive), "accordion" !== n.getState() ||!n.options.scrollToAccordion || n._isInView(a.accordionTab) && "default" === n.options.animation ||!e || (i = a.accordionTab.offset().top - n.options.scrollToAccordionOffset, "default" !== n.options.animation && n.options.duration > 0 ? t("html, body").animate({ 4933 scrollTop: i 4934 }, n.options.duration) : t("html, body").scrollTop(i)) 4935 }), this.$element.trigger("tabs-activate", a) 4936 }, e.prototype._closeTab = function(t, s) { 4937 var e, o = this, i = "string" == typeof o.options.animationQueue; 4938 s !== a && (e = i && o.getState() === o.options.animationQueue?!0 : i?!1 : o.options.animationQueue, s.active=!1, s.tab.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault), o._doTransition(s.panel, o.options.animation, "close", function() { 4939 s.accordionTab.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault), s.panel.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault) 4940 }, !e), this.$element.trigger("tabs-deactivate", s)) 4941 }, e.prototype._doTransition = function(t, s, a, e, o) { 4942 var i, n = this; 4943 switch (s) { 4944 case"slide": 4945 i = "open" === a ? "slideDown" : "slideUp"; 4946 break; 4947 case"fade": 4948 i = "open" === a ? "fadeIn" : "fadeOut"; 4949 break; 4950 default: 4951 i = "open" === a ? "show" : "hide", n.options.duration = 0 4952 } 4953 this.$queue.queue("responsive-tabs", function(o) { 4954 t[i]({ 4955 duration: n.options.duration, 4956 complete: function() { 4957 e.call(t, s, a), o() 4958 } 4959 }) 4960 }), ("open" === a || o) && this.$queue.dequeue("responsive-tabs") 4961 }, e.prototype._isCollapisble = function() { 4962 return "boolean" == typeof this.options.collapsible && this.options.collapsible || "string" == typeof this.options.collapsible && this.options.collapsible === this.get
4962State() 4963 }, e.prototype._getTab = function(t) { 4964 return this.tabs[t] 4965 }, e.prototype._getTabRefBySelector = function(t) { 4966 for (var s = 0; s < this.tabs.length; s++) 4967 if (this.tabs[s].selector === t) 4968 return s; 4969 return - 1 4970 }, e.prototype._getCurrentTab = function() { 4971 return this._getTab(this._getCurrentTabRef()) 4972 }, e.prototype._getNextTabRef = function(t) { 4973 var s = t || this._getCurrentTabRef(), a = s === this.tabs.length - 1 ? 0: s + 1; 4974 return this._getTab(a).disabled ? this._getNextTabRef(a) : a 4975 }, e.prototype._getPreviousTabRef = function() { 4976 return 0 === this._getCurrentTabRef() ? this.tabs.length - 1 : this._getCurrentTabRef() - 1 4977 }, e.prototype._getCurrentTabRef = function() { 4978 for (var t = 0; t < this.tabs.length; t++) 4979 if (this.tabs[t].active) 4980 return t; 4981 return - 1 4982 }, e.prototype._isInView = function(a) { 4983 var e = t(s).scrollTop(), o = e + t(s).height(), i = a.offset().top, n = i + a.height(); 4984 return o >= n && i >= e 4985 }, e.prototype.activate = function(t, s) { 4986 var a = jQuery.Event("tabs-activate"), e = this._getTab(t); 4987 e.disabled || this._openTab(a, e, !0, s ||!0) 4988 }, e.prototype.deactivate = function(t) { 4989 var s = jQuery.Event("tabs-dectivate"), a = this._getTab(t); 4990 a.disabled || this._closeTab(s, a) 4991 }, e.prototype.enable = function(t) { 4992 var s = this._getTab(t); 4993 s && (s.disabled=!1, s.tab.addClass(this.options.classes.stateDefault).removeClass(this.options.classes.stateDisabled), s.accordionTab.addClass(this.options.classes.stateDefault).removeClass(this.options.classes.stateDisabled)) 4994 }, e.prototype.disable = function(t) { 4995 var s = this._getTab(t); 4996 s && (s.disabled=!0, s.tab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled), s.accordionTab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled)) 4997 }, e.prototype.getState = function() { 4998 return this.state 4999 }, e.prototype.startRotation = function(s) { 5000 var a = this; 5001 if (!(this.tabs.length > this.options.disabled.length)) 5002 throw new Error("Rotation is not possible if all tabs are disabled"); 5003 this.rotateInterval = setInterval(function() { 5004 var t = jQuery.Event("rotate"); 5005 a._openTab(t, a._getTab(a._getNextTabRef()), !0) 5006 }, s || (t.isNumeric(a.options.rotate) ? a.options.rotate : 4e3)) 5007 }, e.prototype.stopRotation = function() { 5008 s.clearInterval(this.rotateInterval), this.rotateInterval = 0 5009 }, e.prototype.option = function(t, s) { 5010 return s && (this.options[t] = s), this.options[t] 5011 }, t.fn.responsiveTabs = function(s) { 5012 var o, i = arguments; 5013 return s === a || "object" == typeof s ? this.each(function() { 5014 t.data(this, "responsivetabs") || t.data(this, "responsivetabs", new e(this, s)) 5015 }) : "string" == typeof s && "_" !== s[0] && "init" !== s ? (o = t.data(this[0], "responsivetabs"), "destroy" === s && t.data(this, "responsivetabs", null), o instanceof e && "function" == typeof o[s] ? o[s].apply(o, Array.prototype.slice.call(i, 1)) : this) : void 0 5016 } 5017}(jQuery, window);; 5018!function(e) { 5019 "function" == typeof define && define.amd ? define(["jquery"], e) : e("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto) 5020}(function(e) { 5021 var t, n, i, o, r, a, s = "Close", l = "BeforeClose", c = "AfterClose", d = "BeforeAppend", u = "MarkupParse", p = "Open", f = "Change", m = "mfp", g = "." + m, v = "mfp-ready", h = "mfp-removing", y = "mfp-prevent-close", C = function() {}, w=!!window.jQuery, b = e(window), I = function(e, n) { 5022 t.ev.on(m + e + g, n) 5023 }, x = function(t, n, i, o) { 5024 var r = document.createElement("div"); 5025 return r.className = "mfp-" + t, i && (r.innerHTML = i), o ? n && n.appendChild(r) : (r = e(r), n && r.appendTo(n)), r 5026 }, k = function(n, i) { 5027 t.ev.triggerHandler(m + n, i), t.st.callbacks && (n = n.charAt(0).toLowerCase() + n.slice(1), t.st.callbacks[n] && t.st.callbacks[n].apply(t, e.isArray(i) ? i : [i])) 5028 }, T = function(n) { 5029 return n === a && t.currTemplate.closeBtn || (t.currTemplate.closeBtn = e(t.st.closeMarkup.replace("%title%", t.st.tClose)), a = n), t.currTemplate.closeBtn 5030 }, _ = function() { 5031 e.magnificPopup.instance || (t = new C, t.init(), e.magnificPopup.instance = t) 5032 }, P = function() { 5033 var e = document.createElement("p").style, t = ["ms", "O", "Moz", "Webkit"]; 5034 if (void 0 !== e.transition) 5035 return !0; 5036 for (; t.length;) 5037 if (t.pop() + "Transition"in e) 5038 return !0; 5039 return !1 5040 }; 5041 C.prototype = { 5042 constructor: C, 5043 init: function() { 5044 var n = navigator.appVersion; 5045 t.isLowIE = t.isIE8 = document.all&&!document.addEventListener, t.isAndroid = /android/gi.test(n), t.isIOS = /iphone|ipad|ipod/gi.test(n), t.supportsTransition = P(), t.probablyMobile = t.isAndroid || t.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), i = e(document), t.popupsCache = {} 5046 }, 5047 open: function(n) { 5048 var o; 5049 if (n.isObj===!1) { 5050 t.items = n.items.toArray(), t.index = 0; 5051 var a, s = n.items; 5052 for (o = 0; o < s.length; o++) 5053 if (a = s[o], a.parsed && (a = a.el[0]), a === n.el[0]) { 5054 t.index = o; 5055 break 5056 } 5057 } else
5058 t.items = e.isArray(n.items) ? n.items : [n.items], t.index = n.index || 0; 5059 if (t.isOpen) 5060 return void t.updateItemHTML(); 5061 t.types = [], r = "", n.mainEl && n.mainEl.length ? t.ev = n.mainEl.eq(0) : t.ev = i, n.key ? (t.popupsCache[n.key] || (t.popupsCache[n.key] = {}), t.currTemplate = t.popupsCache[n.key]) : t.currTemplate = {}, t.st = e.extend(!0, {}, e.magnificPopup.defaults, n), t.fixedContentPos = "auto" === t.st.fixedContentPos?!t.probablyMobile : t.st.fixedContentPos, t.st.modal && (t.st.closeOnContentClick=!1, t.st.closeOnBgClick=!1, t.st.showCloseBtn=!1, t.st.enableEscapeKey=!1), t.bgOverlay || (t.bgOverlay = x("bg").on("click" + g, function() { 5062 t.close() 5063 }), t.wrap = x("wrap").attr("tabindex", - 1).on("click" + g, function(e) { 5064 t._checkIfClose(e.target) && t.close() 5065 }), t.container = x("container", t.wrap)), t.contentContainer = x("content"), t.st.preloader && (t.preloader = x("preloader", t.container, t.st.tLoading)); 5066 var l = e.magnificPopup.modules; 5067 for (o = 0; o < l.length; o++) { 5068 var c = l[o]; 5069 c = c.charAt(0).toUpperCase() + c.slice(1), t["init" + c].call(t) 5070 } 5071 k("BeforeOpen"), t.st.showCloseBtn && (t.st.closeBtnInside ? (I(u, function(e, t, n, i) { 5072 n.close_replaceWith = T(i.type) 5073 }), r += " mfp-close-btn-in") : t.wrap.append(T())), t.st.alignTop && (r += " mfp-align-top"), t.fixedContentPos ? t.wrap.css({ 5074 overflow: t.st.overflowY, 5075 overflowX: "hidden", 5076 overflowY: t.st.overflowY 5077 }) : t.wrap.css({ 5078 top: b.scrollTop(), 5079 position: "absolute" 5080 }), (t.st.fixedBgPos===!1 || "auto" === t.st.fixedBgPos&&!t.fixedContentPos) && t.bgOverlay.css({ 5081 height: i.height(), 5082 position: "absolute" 5083 }), t.st.enableEscapeKey && i.on("keyup" + g, function(e) { 5084 27 === e.keyCode && t.close() 5085 }), b.on("resize" + g, function() { 5086 t.updateSize() 5087 }), t.st.closeOnContentClick || (r += " mfp-auto-cursor"), r && t.wrap.addClass(r); 5088 var d = t.wH = b.height(), f = {}; 5089 if (t.fixedContentPos && t._hasScrollBar(d)) { 5090 var m = t._getScrollbarSize(); 5091 m && (f.marginRight = m) 5092 } 5093 t.fixedContentPos && (t.isIE7 ? e("body, html").css("overflow", "hidden") : f.overflow = "hidden"); 5094 var h = t.st.mainClass; 5095 return t.isIE7 && (h += " mfp-ie7"), h && t._addClassToMFP(h), t.updateItemHTML(), k("BuildControls"), e("html").css(f), t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo || e(document.body)), t._lastFocusedEl = document.activeElement, setTimeout(function() { 5096 t.content ? (t._addClassToMFP(v), t._setFocus()) : t.bgOverlay.addClass(v), i.on("focusin" + g, t._onFocusIn) 5097 }, 16), t.isOpen=!0, t.updateSize(d), k(p), n 5098 }, 5099 close: function() { 5100 t.isOpen && (k(l), t.isOpen=!1, t.st.removalDelay&&!t.isLowIE && t.supportsTransition ? (t._addClassToMFP(h), setTimeout(function() { 5101 t._close() 5102 }, t.st.removalDelay)) : t._close()) 5103 }, 5104 _close: function() { 5105 k(s); 5106 var n = h + " " + v + " "; 5107 if (t.bgOverlay.detach(), t.wrap.detach(), t.container.empty(), t.st.mainClass && (n += t.st.mainClass + " "), t._removeClassFromMFP(n), t.fixedContentPos) { 5108 var o = { 5109 marginRight: "" 5110 }; 5111 t.isIE7 ? e("body, html").css("overflow", "") : o.overflow = "", e("html").css(o) 5112 } 5113 i.off("keyup" + g + " focusin" + g), t.ev.off(g), t.wrap.attr("class", "mfp-wrap").removeAttr("style"), t.bgOverlay.attr("class", "mfp-bg"), t.container.attr("class", "mfp-container"), !t.st.showCloseBtn || t.st.closeBtnInside && t.currTemplate[t.currItem.type]!==!0 || t.currTemplate.closeBtn && t.currTemplate.closeBtn.detach(), t.st.autoFocusLast && t._lastFocusedEl && e(t._lastFocusedEl).focus(), t.currItem = null, t.content = null, t.currTemplate = null, t.prevHeight = 0, k(c) 5114 }, 5115 updateSize: function(e) { 5116 if (t.isIOS) { 5117 var n = document.documentElement.clientWidth / window.innerWidth, i = window.innerHeight * n; 5118 t.wrap.css("height", i), t.wH = i 5119 } else 5120 t.wH = e || b.height(); 5121 t.fixedContentPos || t.wrap.css("height", t.wH), k("Resize") 5122 }, 5123 updateItemHTML: function() { 5124 var n = t.items[t.index]; 5125 t.contentContainer.detach(), t.content && t.content.detach(), n.parsed || (n = t.parseEl(t.index)); 5126 var i = n.type; 5127 if (k("BeforeChange", [t.currItem ? t.currItem.type: "", i]), t.currItem = n, !t.currTemplate[i]) { 5128 var r = t.st[i] ? t.st[i].markup: !1; 5129 k("FirstMarkupParse", r), r ? t.currTemplate[i] = e(r) : t.currTemplate[i]=!0 5130 } 5131 o && o !== n.type && t.container.removeClass("mfp-" + o + "-holder"); 5132 var a = t["get" + i.charAt(0).toUpperCase() + i.slice(1)](n, t.currTemplate[i]); 5133 t.appendContent(a, i), n.preloaded=!0, k(f, n), o = n.type, t.container.prepend(t.contentContainer), k("AfterChange") 5134 }, 5135 appendContent: function(e, n) { 5136 t.content = e, e ? t.st.showCloseBtn && t.st.closeBtnInside && t.currTemplate[n]===!0 ? t.content.find(".mfp-close").length || t.content.append(T()) : t.content = e : t.content = "", k(d), t.container.addClass("mfp-" + n + "-holder"), t.contentContainer.append(t.content) 5137 }, 5138 parseEl: function(n) { 5139 var i, o = t.items[n];
5140 if (o.tagName ? o = { 5141 el: e(o) 5142 } : (i = o.type, o = { 5143 data: o, 5144 src: o.src 5145 }), o.el) { 5146 for (var r = t.types, a = 0; a < r.length; a++) 5147 if (o.el.hasClass("mfp-" + r[a])) { 5148 i = r[a]; 5149 break 5150 } 5151 o.src = o.el.attr("data-mfp-src"), o.src || (o.src = o.el.attr("href")) 5152 } 5153 return o.type = i || t.st.type || "inline", o.index = n, o.parsed=!0, t.items[n] = o, k("ElementParse", o), t.items[n] 5154 }, 5155 addGroup: function(e, n) { 5156 var i = function(i) { 5157 i.mfpEl = this, t._openClick(i, e, n) 5158 }; 5159 n || (n = {}); 5160 var o = "click.magnificPopup"; 5161 n.mainEl = e, n.items ? (n.isObj=!0, e.off(o).on(o, i)) : (n.isObj=!1, n.delegate ? e.off(o).on(o, n.delegate, i) : (n.items = e, e.off(o).on(o, i))) 5162 }, 5163 _openClick: function(n, i, o) { 5164 var r = void 0 !== o.midClick ? o.midClick : e.magnificPopup.defaults.midClick; 5165 if (r ||!(2 === n.which || n.ctrlKey || n.metaKey || n.altKey || n.shiftKey)) { 5166 var a = void 0 !== o.disableOn ? o.disableOn : e.magnificPopup.defaults.disableOn; 5167 if (a) 5168 if (e.isFunction(a)) { 5169 if (!a.call(t)) 5170 return !0 5171 } else if (b.width() < a) 5172 return !0; 5173 n.type && (n.preventDefault(), t.isOpen && n.stopPropagation()), o.el = e(n.mfpEl), o.delegate && (o.items = i.find(o.delegate)), t.open(o) 5174 } 5175 }, 5176 updateStatus: function(e, i) { 5177 if (t.preloader) { 5178 n !== e && t.container.removeClass("mfp-s-" + n), i || "loading" !== e || (i = t.st.tLoading); 5179 var o = { 5180 status: e, 5181 text: i 5182 }; 5183 k("UpdateStatus", o), e = o.status, i = o.text, t.preloader.html(i), t.preloader.find("a").on("click", function(e) { 5184 e.stopImmediatePropagation() 5185 }), t.container.addClass("mfp-s-" + e), n = e 5186 } 5187 }, 5188 _checkIfClose: function(n) { 5189 if (!e(n).hasClass(y)) { 5190 var i = t.st.closeOnContentClick, o = t.st.closeOnBgClick; 5191 if (i && o) 5192 return !0; 5193 if (!t.content || e(n).hasClass("mfp-close") || t.preloader && n === t.preloader[0]) 5194 return !0; 5195 if (n === t.content[0] || e.contains(t.content[0], n)) { 5196 if (i) 5197 return !0 5198 } else if (o && e.contains(document, n)) 5199 return !0; 5200 return !1 5201 } 5202 }, 5203 _addClassToMFP: function(e) { 5204 t.bgOverlay.addClass(e), t.wrap.addClass(e) 5205 }, 5206 _removeClassFromMFP: function(e) { 5207 this.bgOverlay.removeClass(e), t.wrap.removeClass(e) 5208 }, 5209 _hasScrollBar: function(e) { 5210 return (t.isIE7 ? i.height() : document.body.scrollHeight) > (e || b.height()) 5211 }, 5212 _setFocus: function() { 5213 (t.st.focus ? t.content.find(t.st.focus).eq(0) : t.wrap).focus() 5214 }, 5215 _onFocusIn: function(n) { 5216 return n.target === t.wrap[0] || e.contains(t.wrap[0], n.target) ? void 0 : (t._setFocus(), !1) 5217 }, 5218 _parseMarkup: function(t, n, i) { 5219 var o; 5220 i.data && (n = e.extend(i.data, n)), k(u, [t, n, i]), e.each(n, function(n, i) { 5221 if (void 0 === i || i===!1) 5222 return !0; 5223 if (o = n.split("_"), o.length > 1) { 5224 var r = t.find(g + "-" + o[0]); 5225 if (r.length > 0) { 5226 var a = o[1]; 5227 "replaceWith" === a ? r[0] !== i[0] && r.replaceWith(i) : "img" === a ? r.is("img") ? r.attr("src", i) : r.replaceWith(e("<img>").attr("src", i).attr("class", r.attr("class"))) : r.attr(o[1], i) 5228 } 5229 } else 5230 t.find(g + "-" + n).html(i) 5231 }) 5232 }, 5233 _getScrollbarSize: function() { 5234 if (void 0 === t.scrollbarSize) { 5235 var e = document.createElement("div"); 5236 e.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(e), t.scrollbarSize = e.offsetWidth - e.clientWidth, document.body.removeChild(e) 5237 } 5238 return t.scrollbarSize 5239 } 5240 }, e.magnificPopup = { 5241 instance: null, 5242 proto: C.prototype, 5243 modules: [], 5244 open: function(t, n) { 5245 return _(), t = t ? e.extend(!0, {}, t) : {}, t.isObj=!0, t.index = n || 0, this.instance.open(t) 5246 }, 5247 close: function() { 5248 return e.magnificPopup.instance && e.magnificPopup.instance.close() 5249 }, 5250 registerModule: function(t, n) { 5251 n.options && (e.magnificPopup.defaults[t] = n.options), e.extend(this.proto, n.proto), this.modules.push(t) 5252 }, 5253 defaults: { 5254 disableOn: 0, 5255 key: null, 5256 midClick: !1, 5257 mainClass: "", 5258 preloader: !0, 5259 focus: "", 5260 closeOnContentClick: !1, 5261 closeOnBgClick: !0, 5262 closeBtnInside: !0, 5263 showCloseBtn: !0, 5264 enableEscapeKey: !0, 5265 modal: !1, 5266 alignTop: !1, 5267 removalDelay: 0, 5268 prependTo: null, 5269 fixedContentPos: "auto", 5270 fixedBgPos: "auto", 5271 overflowY: "auto", 5272 closeMarkup: '<button title="%title%" type="button" class="mfp-close">Ã</button>', 5273 tClose: "Close (Esc)", 5274 tLoading: "Loading...", 5275 autoFocusLast: !0 5276 } 5277 }, e.fn.magnificPopup = function(n) { 5278 _(); 5279 var i = e(this); 5280 if ("string" == typeof n) 5281 if ("open" === n) { 5282 var o, r = w ? i.data("magnificPopup"): i[0].magnificPopup, a = parseInt(arguments[1], 10) || 0; 5283 r.items ? o = r.items[a] : (o = i, r.delegate && (o = o.find(r.delegate)), o = o.eq(a)), t._openClick({ 5284 mfpEl: o 5285 }, i, r) 5286 } else 5287 t.isOpen && t[n].apply(t, Array.prototype.slice.call(arguments, 1)); 5288 else 5289 n = e.extend(!0, {}, n), w ? i.data("magnificPopup", n) : i[0].magnificPopup = n, t.addGroup(i, n); 5290 return i 5291 }; 5292 var S, E, z, O = "inline", M = function() { 5293 z && (E.after(z.addClass(S)).detach(), z = null) 5294 }; 5295 e.magnificPopup.registerModule(O, { 5296 options: { 5297 hiddenClass: "hide", 5298 markup: "", 5299 tNotFound: "Content not found" 5300 }, 5301 proto: { 5302 initInline: function() { 5303 t.types.push(O), I(s + "." + O, function() { 5304 M() 5305 }) 5306 }, 5307 getInline: function(n, i) { 5308 if (M(), n.src) { 5309 var o = t.st.inline, r = e(n.src); 5310 if (r.length) { 5311 var a = r[0].parentNode; 5312 a && a.tagName && (E || (S = o.hiddenClass, E = x(S), S = "mfp-" + S), z = r.after(E).detach().removeClass(S)), t.updateStatus("ready") 5313 } else 5314 t.updateStatus("error", o.tNotFound), r = e("<div>"); 5315 return n.inlineElement = r, r 5316 } 5317 return t.updateStatus("ready"), t._parseMarkup(i, {}, n), i 5318 } 5319 } 5320 });
5321 var B, L = "ajax", H = function() { 5322 B && e(document.body).removeClass(B) 5323 }, A = function() { 5324 H(), t.req && t.req.abort() 5325 }; 5326 e.magnificPopup.registerModule(L, { 5327 options: { 5328 settings: null, 5329 cursor: "mfp-ajax-cur", 5330 tError: '<a href="%url%">The content</a> could not be loaded.' 5331 }, 5332 proto: { 5333 initAjax: function() { 5334 t.types.push(L), B = t.st.ajax.cursor, I(s + "." + L, A), I("BeforeChange." + L, A) 5335 }, 5336 getAjax: function(n) { 5337 B && e(document.body).addClass(B), t.updateStatus("loading"); 5338 var i = e.extend({ 5339 url: n.src, 5340 success: function(i, o, r) { 5341 var a = { 5342 data: i, 5343 xhr: r 5344 }; 5345 k("ParseAjax", a), t.appendContent(e(a.data), L), n.finished=!0, H(), t._setFocus(), setTimeout(function() { 5346 t.wrap.addClass(v) 5347 }, 16), t.updateStatus("ready"), k("AjaxContentAdded") 5348 }, 5349 error: function() { 5350 H(), n.finished = n.loadError=!0, t.updateStatus("error", t.st.ajax.tError.replace("%url%", n.src)) 5351 } 5352 }, t.st.ajax.settings); 5353 return t.req = e.ajax(i), "" 5354 } 5355 } 5356 }); 5357 var F, j = function(n) { 5358 if (n.data && void 0 !== n.data.title) 5359 return n.data.title; 5360 var i = t.st.image.titleSrc; 5361 if (i) { 5362 if (e.isFunction(i)) 5363 return i.call(t, n); 5364 if (n.el) 5365 return n.el.attr(i) || "" 5366 } 5367 return "" 5368 }; 5369 e.magnificPopup.registerModule("image", { 5370 options: { 5371 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>', 5372 cursor: "mfp-zoom-out-cur", 5373 titleSrc: "title", 5374 verticalFit: !0, 5375 tError: '<a href="%url%">The image</a> could not be loaded.' 5376 }, 5377 proto: { 5378 initImage: function() { 5379 var n = t.st.image, i = ".image"; 5380 t.types.push("image"), I(p + i, function() { 5381 "image" === t.currItem.type && n.cursor && e(document.body).addClass(n.cursor) 5382 }), I(s + i, function() { 5383 n.cursor && e(document.body).removeClass(n.cursor), b.off("resize" + g) 5384 }), I("Resize" + i, t.resizeImage), t.isLowIE && I("AfterChange", t.resizeImage) 5385 }, 5386 resizeImage: function() { 5387 var e = t.currItem; 5388 if (e && e.img && t.st.image.verticalFit) { 5389 var n = 0; 5390 t.isLowIE && (n = parseInt(e.img.css("padding-top"), 10) + parseInt(e.img.css("padding-bottom"), 10)), e.img.css("max-height", t.wH - n) 5391 } 5392 }, 5393 _onImageHasSize: function(e) { 5394 e.img && (e.hasSize=!0, F && clearInterval(F), e.isCheckingImgSize=!1, k("ImageHasSize", e), e.imgHidden && (t.content && t.content.removeClass("mfp-loading"), e.imgHidden=!1)) 5395 }, 5396 findImageSize: function(e) { 5397 var n = 0, i = e.img[0], o = function(r) { 5398 F && clearInterval(F), F = setInterval(function() { 5399 return i.naturalWidth > 0 ? void t._onImageHasSize(e) : (n > 200 && clearInterval(F), n++, void(3 === n ? o(10) : 40 === n ? o(50) : 100 === n && o(500))) 5400 }, r) 5401 }; 5402 o(1) 5403 }, 5404 getImage: function(n, i) { 5405 var o = 0, r = function() { 5406 n && (n.img[0].complete ? (n.img.off(".mfploader"), n === t.currItem && (t._onImageHasSize(n), t.updateStatus("ready")), n.hasSize=!0, n.loaded=!0, k("ImageLoadComplete")) : (o++, 200 > o ? setTimeout(r, 100) : a())) 5407 }, a = function() { 5408 n && (n.img.off(".mfploader"), n === t.currItem && (t._onImageHasSize(n), t.updateStatus("error", s.tError.replace("%url%", n.src))), n.hasSize=!0, n.loaded=!0, n.loadError=!0) 5409 }, s = t.st.image, l = i.find(".mfp-img"); 5410 if (l.length) { 5411 var c = document.createElement("img"); 5412 c.className = "mfp-img", n.el && n.el.find("img").length && (c.alt = n.el.find("img").attr("alt")), n.img = e(c).on("load.mfploader", r).on("error.mfploader", a), c.src = n.src, l.is("img") && (n.img = n.img.clone()), c = n.img[0], c.naturalWi
5412dth > 0 ? n.hasSize=!0 : c.width || (n.hasSize=!1) 5413 } 5414 return t._parseMarkup(i, { 5415 title: j(n), 5416 img_replaceWith: n.img 5417 }, n), t.resizeImage(), n.hasSize ? (F && clearInterval(F), n.loadError ? (i.addClass("mfp-loading"), t.updateStatus("error", s.tError.replace("%url%", n.src))) : (i.removeClass("mfp-loading"), t.updateStatus("ready")), i) : (t.updateStatus("loading"), n.loading=!0, n.hasSize || (n.imgHidden=!0, i.addClass("mfp-loading"), t.findImageSize(n)), i) 5418 } 5419 } 5420 }); 5421 var N, W = function() { 5422 return void 0 === N && (N = void 0 !== document.createElement("p").style.MozTransform), N 5423 }; 5424 e.magnificPopup.registerModule("zoom", { 5425 options: { 5426 enabled: !1, 5427 easing: "ease-in-out", 5428 duration: 300, 5429 opener: function(e) { 5430 return e.is("img") ? e : e.find("img") 5431 } 5432 }, 5433 proto: { 5434 initZoom: function() { 5435 var e, n = t.st.zoom, i = ".zoom"; 5436 if (n.enabled && t.supportsTransition) { 5437 var o, r, a = n.duration, c = function(e) { 5438 var t = e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"), i = "all " + n.duration / 1e3 + "s " + n.easing, o = { 5439 position: "fixed", 5440 zIndex: 9999, 5441 left: 0, 5442 top: 0, 5443 "-webkit-backface-visibility": "hidden" 5444 }, r = "transition"; 5445 return o["-webkit-" + r] = o["-moz-" + r] = o["-o-" + r] = o[r] = i, t.css(o), t 5446 }, d = function() { 5447 t.content.css("visibility", "visible") 5448 }; 5449 I("BuildControls" + i, function() { 5450 if (t._allowZoom()) { 5451 if (clearTimeout(o), t.content.css("visibility", "hidden"), e = t._getItemToZoom(), !e) 5452 return void d(); 5453 r = c(e), r.css(t._getOffset()), t.wrap.append(r), o = setTimeout(function() { 5454 r.css(t._getOffset(!0)), o = setTimeout(function() { 5455 d(), setTimeout(function() { 5456 r.remove(), e = r = null, k("ZoomAnimationEnded") 5457 }, 16) 5458 }, a) 5459 }, 16) 5460 } 5461 }), I(l + i, function() { 5462 if (t._allowZoom()) { 5463 if (clearTimeout(o), t.st.removalDelay = a, !e) { 5464 if (e = t._getItemToZoom(), !e) 5465 return; 5466 r = c(e) 5467 } 5468 r.css(t._getOffset(!0)), t.wrap.append(r), t.content.css("visibility", "hidden"), setTimeout(function() { 5469 r.css(t._getOffset()) 5470 }, 16) 5471 } 5472 }), I(s + i, function() { 5473 t._allowZoom() && (d(), r && r.remove(), e = null) 5474 }) 5475 } 5476 }, 5477 _allowZoom: function() { 5478 return "image" === t.currItem.type 5479 }, 5480 _getItemToZoom: function() { 5481 return t.currItem.hasSize ? t.currItem.img : !1 5482 }, 5483 _getOffset: function(n) { 5484 var i; 5485 i = n ? t.currItem.img : t.st.zoom.opener(t.currItem.el || t.currItem); 5486 var o = i.offset(), r = parseInt(i.css("padding-top"), 10), a = parseInt(i.css("padding-bottom"), 10); 5487 o.top -= e(window).scrollTop() - r; 5488 var s = { 5489 width: i.width(), 5490 height: (w ? i.innerHeight() : i[0].offsetHeight) - a - r
5491 }; 5492 return W() ? s["-moz-transform"] = s.transform = "translate(" + o.left + "px," + o.top + "px)" : (s.left = o.left, s.top = o.top), s 5493 } 5494 } 5495 }); 5496 var Z = "iframe", q = "//about:blank", R = function(e) { 5497 if (t.currTemplate[Z]) { 5498 var n = t.currTemplate[Z].find("iframe"); 5499 n.length && (e || (n[0].src = q), t.isIE8 && n.css("display", e ? "block" : "none")) 5500 } 5501 }; 5502 e.magnificPopup.registerModule(Z, { 5503 options: { 5504 markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>', 5505 srcAction: "iframe_src", 5506 patterns: { 5507 youtube: { 5508 index: "youtube.com", 5509 id: "v=", 5510 src: "//www.youtube.com/embed/%id%?autoplay=1" 5511 }, 5512 vimeo: { 5513 index: "vimeo.com/", 5514 id: "/", 5515 src: "//player.vimeo.com/video/%id%?autoplay=1" 5516 }, 5517 gmaps: { 5518 index: "//maps.google.", 5519 src: "%id%&output=embed" 5520 } 5521 } 5522 }, 5523 proto: { 5524 initIframe: function() { 5525 t.types.push(Z), I("BeforeChange", function(e, t, n) { 5526 t !== n && (t === Z ? R() : n === Z && R(!0)) 5527 }), I(s + "." + Z, function() { 5528 R() 5529 }) 5530 }, 5531 getIframe: function(n, i) { 5532 var o = n.src, r = t.st.iframe; 5533 e.each(r.patterns, function() { 5534 return o.indexOf(this.index)>-1 ? (this.id && (o = "string" == typeof this.id ? o.substr(o.lastIndexOf(this.id) + this.id.length, o.length) : this.id.call(this, o)), o = this.src.replace("%id%", o), !1) : void 0 5535 }); 5536 var a = {}; 5537 return r.srcAction && (a[r.srcAction] = o), t._parseMarkup(i, a, n), t.updateStatus("ready"), i 5538 } 5539 } 5540 }); 5541 var K = function(e) { 5542 var n = t.items.length; 5543 return e > n - 1 ? e - n : 0 > e ? n + e : e 5544 }, D = function(e, t, n) { 5545 return e.replace(/%curr%/gi, t + 1).replace(/%total%/gi, n) 5546 }; 5547 e.magnificPopup.registerModule("gallery", { 5548 options: { 5549 enabled: !1, 5550 arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>', 5551 preload: [0, 2], 5552 navigateByImgClick: !0, 5553 arrows: !0, 5554 tPrev: "Previous (Left arrow key)", 5555 tNext: "Next (Right arrow key)", 5556 tCounter: "%curr% of %total%" 5557 }, 5558 proto: { 5559 initGallery: function() { 5560 var n = t.st.gallery, o = ".mfp-gallery"; 5561 return t.direction=!0, n && n.enabled ? (r += " mfp-gallery", I(p + o, function() { 5562 n.navigateByImgClick && t.wrap.on("click" + o, ".mfp-img", function() { 5563 return t.items.length > 1 ? (t.next(), !1) : void 0 5564 }), i.on("keydown" + o, function(e) { 5565 37 === e.keyCode ? t.prev() : 39 === e.keyCode && t.next() 5566 }) 5567 }), I("UpdateStatus" + o, function(e, n) { 5568 n.text && (n.text = D(n.text, t.currItem.index, t.items.length)) 5569 }), I(u + o, function(e, i, o, r) { 5570 var a = t.items.length; 5571 o.counter = a > 1 ? D(n.tCounter, r.index, a) : "" 5572 }), I("BuildControls" + o, function() { 5573 if (t.items.length > 1 && n.arrows&&!t.arrowLeft) { 5574 var i = n.arrowMarkup, o = t.arrowLeft = e(i.replace(/%title%/gi, n.tPrev).replace(/%dir%/gi, "left")).addClass(y), r = t.arrowRight = e(i.replace(/%title%/gi, n.tNext).replace(/%dir%/gi, "right")).addClass(y); 5575 o.click(function() { 5576 t.prev() 5577 }), r.click(function() { 5578 t.next() 5579 }), t.container.append(o.add(r)) 5580 } 5581 }), I(f + o, function() { 5582 t._preloadTimeout && clearTimeout(t._preloadTimeout), t._preloadTimeout = setTimeout(function() { 5583 t.preloadNearbyImages(), t._preloadTimeout = null 5584 }, 16) 5585 }), void I(s + o, function() { 5586 i.off(o), t.wrap.off("click" + o), t.arrowRight = t.arrowLeft = null 5587 })) : !1 5588 }, 5589 next: function() { 5590 t.direction=!0, t.index = K(t.index + 1), t.updateItemHTML() 5591 }, 5592 prev: function() { 5593 t.direction=!1, t.index = K(t.index - 1), t.updateItemHTML() 5594 }, 5595 goTo: function(e) { 5596 t.direction = e >= t.index, t.index = e, t.updateItemHTML() 5597 }, 5598 preloadNearbyImages: function() { 5599 var e, n = t.st.gallery.preload, i = Math.min(n[0], t.items.length), o = Math.min(n[1], t.items.length); 5600 for (e = 1; e <= (t.direction ? o : i); e++) 5601 t._preloadItem(t.index + e); 5602 for (e = 1; e <= (t.direction ? i : o); e++) 5603 t._preloadItem(t.index - e) 5604 }, 5605 _preloadItem: function(n) { 5606 if (n = K(n), !t.items[n].preloaded) { 5607 var i = t.items[n];
5608 i.parsed || (i = t.parseEl(n)), k("LazyLoad", i), "image" === i.type && (i.img = e('<img class="mfp-img" />').on("load.mfploader", function() { 5609 i.hasSize=!0 5610 }).on("error.mfploader", function() { 5611 i.hasSize=!0, i.loadError=!0, k("LazyLoadError", i) 5612 }).attr("src", i.src)), i.preloaded=!0 5613 } 5614 } 5615 } 5616 }); 5617 var U = "retina"; 5618 e.magnificPopup.registerModule(U, { 5619 options: { 5620 replaceSrc: function(e) { 5621 return e.src.replace(/\.\w+$/, function(e) { 5622 return "@2x" + e 5623 }) 5624 }, 5625 ratio: 1 5626 }, 5627 proto: { 5628 initRetina: function() { 5629 if (window.devicePixelRatio > 1) { 5630 var e = t.st.retina, n = e.ratio; 5631 n = isNaN(n) ? n() : n, n > 1 && (I("ImageHasSize." + U, function(e, t) { 5632 t.img.css({ 5633 "max-width": t.img[0].naturalWidth / n, 5634 width: "100%" 5635 }) 5636 }), I("ElementParse." + U, function(t, i) { 5637 i.src = e.replaceSrc(i, n) 5638 })) 5639 } 5640 } 5641 } 5642 }), _() 5643}); 5644 5645 5646 5647
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.