1/** 2 * Comment Likes - JavaScript 3 * 4 * This handles liking and unliking comments, as well as viewing who has 5 * liked a particular comment. 6 * 7 * @dependency Swipe (dynamically loaded when needed) 8 * 9 * @package Comment_Likes 10 * @subpackage JavaScript 11 */ 12(function () { 13 function init() { 14 let extWin; 15 let extWinCheck; 16 let commentLikeEvent; 17 18 // Only run once. 19 if (window.comment_likes_loaded) { 20 return; 21 } 22 window.comment_likes_loaded = true; 23 24 // Client-side cache of who liked a particular comment to avoid 25 // having to hit the server multiple times for the same data. 26 const commentLikeCache = {}; 27 28 let swipeLibPromise; 29 30 // Load the Swipe library, if it's not already loaded. 31 function swipeLibLoader() { 32 if (!swipeLibPromise) { 33 swipeLibPromise = new Promise((resolve, reject) => { 34 if (window.Swipe) { 35 resolve(window.Swipe); 36 } else { 37 const swipeScript = document.createElement('script'); 38 swipeScript.src = comment_like_text.swipeUrl; 39 swipeScript.async = true; 40 document.body.appendChild(swipeScript); 41 swipeScript.addEventListener('load', () => resolve(window.Swipe)); 42 swipeScript.addEventListener('error', error => reject(error)); 43 } 44 }); 45 } 46 return swipeLibPromise; 47 } 48 49 /** 50 * Parse the comment ID from a comment like link. 51 */ 52 function getCommentId(link) { 53 const commentId = 54 link && link.getAttribute('href') && link.getAttribute('href').split('like_comment='); 55 return commentId[1].split('&_wpnonce=')[0]; 56 } 57 58 /** 59 * Handle an ajax action on the comment like link. 60 */ 61 function handleLinkAction(link, action, commentId, callback) { 62 const nonce = 63 link && link.getAttribute('href') && link.getAttribute('href').split('_wpnonce=')[1]; 64 65 fetch('/wp-admin/admin-ajax.php', { 66 method: 'POST', 67 body: new URLSearchParams({ 68 action: action, 69 _wpnonce: nonce, 70 like_comment: commentId, 71 blog_id: Number(link.dataset.blog), 72 }), 73 headers: { 74 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 75 'X-Requested-With': 'XMLHttpRequest', 76 Accept: 'application/json', 77 'cache-control': 'no-cache', 78 pragma: 'no-cache', 79 }, 80 }) 81 .then(response => response.json()) 82 .then(callback); 83 } 84 85 function startPolling() { 86 // Append cookie polling login iframe to this window to wait for user to finish logging in (or cancel) 87 const loginIframe = document.createElement('iframe'); 88 loginIframe.id = 'wp-login-polling-iframe'; 89 loginIframe.src = 'https://wordpress.com/public.api/connect/?iframe=true'; 90 document.body.appendChild(loginIframe); 91 loginIframe.style.display = 'none'; 92 } 93 94 function stopPolling() { 95 const iframe = document.querySelector('#wp-login-polling-iframe'); 96 if (iframe) { 97 iframe.remove(); 98 } 99 } 100 101 function hide(el) { 102 if (el && el.style) { 103 el.style.display = 'none'; 104 } 105 } 106 107 function show(el) { 108 if (el && el.style) { 109 el.style.removeProperty('display'); 110 } 111 } 112 113 // Overlay used for displaying comment like info. 114 class Overlay { 115 constructor() { 116 // Overlay element. 117 this.el = document.createElement('div'); 118 this.el.classList.add('comment-likes-overlay'); 119 document.body.appendChild(this.el); 120 hide(this.el); 121 122 this.el.addEventListener('mouseenter', () => { 123 // Don't hide the overlay if the user is mousing over it. 124 overlay.cancelHide(); 125 }); 126 127 this.el.addEventListener('mouseleave', () => overlay.requestHide()); 128 129 // Inner contents of overlay. 130 this.innerEl = null; 131 132 // Instance of the Swipe library. 133 this.swipe = null; 134 135 // Timeout used for hiding the overlay. 136 this.hideTimeout = null; 137 } 138 139 // Initialise the overlay for use, removing any old content. 140 clear() { 141 // Unload any previous instance of Swipe (to avoid leaking a global 142 // event handler). This is done before clearing the contents of the 143 // overlay because Swipe expects the slides to still be present. 144 if (this.swipe) { 145 this.swipe.kill(); 146 this.swipe = null; 147 } 148 this.el.innerHTML = ''; 149 this.innerEl = document.createElement('div'); 150 this.innerEl.classList.add('inner'); 151 this.el.appendChild(this.innerEl); 152 } 153 154 /** 155 * Construct a list (<ul>) of user (gravatar, name) details. 156 * 157 * @param data liker data returned from the server 158 * @param klass CSS class to apply to the <ul> element 159 * @param start index of user to start at 160 * @param length number of users to include in the list 161 * 162 * @return A container element with the list 163 */ 164 getUserBits(data, klass, start, length) { 165 start = start || 0; 166 let last = start + (length || data.length); 167 last = last > data.length ? data.length : last; 168 const container = document.createElement('div'); 169 container.classList.add('liker-list'); 170 let html = `<ul class="${klass || ''}">`; 171 for (let i = start; i < last; ++i) { 172 const user = data[i]; 173 html += ` 174 <li> 175 <a rel="nofollow" title="${user.display_name_esc}" href="${user.profile_url_esc}"> 176 <img src="${user.avatar_url_esc}" alt="${user.display_name_esc}" /> 177 <span class="user-name">${user.display_name_esc}</span> 178 </a> 179 </li> 180 `; 181 } 182 html += '</ul>'; 183 container.innerHTML = html; 184 return container; 185 } 186 187 /** 188 * Render the display of who has liked this comment. The type of 189 * display depends on how many people have liked the comment. 190 * If more than 10 people have liked the comment, this function 191 * renders navigation controls and sets up the Swipe library for 192 * changing between pages. 193 * 194 * @param link the element over which the user is hovering 195 * @param data the results retrieved from the server 196 */ 197 showLikes(link, data) { 198 this.clear(); 199 200 link.dataset.likeCount = data.length; 201 if (data.length === 0) { 202 // No likers after all. 203 hide(this.el); 204 return; 205 } 206 207 this.innerEl.style.padding = '12px'; 208 209 if (data.length < 6) { 210 // Only one column needed. 211 this.innerEl.style.maxWidth = '200px'; 212 this.innerEl.innerHTML = ''; 213 this.innerEl.appendChild(this.getUserBits(data, 'single')); 214 this.setPosition(link); 215 } else if (data.length < 11) { 216 // Two columns, but only one page. 217 this.innerEl.innerHTML = ''; 218 this.innerEl.appendChild(this.getUserBits(data, 'double')); 219 this.setPosition(link); 220 } else { 221 // Multiple pages. 222 this.renderLikesWithPagination(data, link); 223 } 224 } 225 226 /**
227 * Render multiple pages of likes with pagination controls. 228 * This function is intended to be called by `showLikes` above. 229 * 230 * @param data the results retrieved from the server 231 */ 232 renderLikesWithPagination(data, link) { 233 swipeLibLoader().then(() => { 234 const page_count = Math.ceil(data.length / 10); 235 // Swipe requires two nested containers. 236 const swipe = document.createElement('div'); 237 swipe.classList.add('swipe'); 238 this.innerEl.appendChild(swipe); 239 240 const wrap = document.createElement('div'); 241 wrap.classList.add('swipe-wrap'); 242 swipe.appendChild(wrap); 243 244 for (let i = 0; i < page_count; ++i) { 245 wrap.appendChild(this.getUserBits(data, 'double', i * 10, 10)); 246 } 247 248 /** 249 * Navigation controls. 250 * This is based on the Newdash controls found in 251 * reader/recommendations-templates.php 252 */ 253 const nav = document.createElement('nav'); 254 nav.classList.add('slider-nav'); 255 256 let navContents = ` 257 <a href="#" class="prev"> 258 <span class="noticon noticon-previous" title="Previous" alt="<"></span> 259 </a> 260 <span class="position"> 261 `; 262 for (let i = 0; i < page_count; ++i) { 263 navContents += `<em data-page="${i}" class="${i === 0 ? 'on' : ''}">•</em>`; 264 } 265 navContents += ` 266 </span> 267 <a href="#" class="next"> 268 <span class="noticon noticon-next" title="Next" alt=">"></span> 269 </a> 270 `; 271 this.innerEl.appendChild(nav); 272 nav.innerHTML = navContents; 273 274 /** Set up Swipe. **/ 275 // Swipe cannot be set up successfully unless its container 276 // is visible, so we show it now. 277 show(this.el); 278 this.setPosition(link); 279 280 this.swipe = new Swipe(swipe, { 281 callback: function (pos) { 282 // Update the pagination indicators. 283 // 284 // If there are exactly two pages, Swipe has a weird 285 // special case where it duplicates both pages and 286 // can return index 2 and 3 even though those aren't 287 // real pages (see swipe.js, line 47). To deal with 288 // this, we use the expression `pos % page_count`. 289 pos = pos % page_count; 290 nav.querySelectorAll('em').forEach(em => { 291 const page = Number(em.dataset.page); 292 em.setAttribute('class', pos === page ? 'on' : ''); 293 }); 294 }, 295 }); 296 297 nav.querySelectorAll('em').forEach(em => { 298 em.addEventListener('click', e => { 299 // Go to the page corresponding to the indicator clicked. 300 this.swipe.slide(Number(em.dataset.page)); 301 e.preventDefault(); 302 }); 303 }); 304 // Previous and next buttons. 305 nav.querySelector('.prev').addEventListener('click', e => { 306 this.swipe.prev(); 307 e.preventDefault(); 308 }); 309 nav.querySelector('.next').addEventListener('click', e => { 310 this.swipe.next(); 311 e.preventDefault(); 312 }); 313 }); 314 } 315 316 /** 317 * Open the overlay and show a loading message. 318 */ 319 showLoadingMessage(link) { 320 this.clear(); 321 this.innerEl.textContent = comment_like_text.loading; 322 this.setPosition(link); 323 } 324 325 /** 326 * Position the overlay near the current comment. 327 * 328 * @param link element near which to position the overlay 329 */ 330 setPosition(link) { 331 // Prepare a down arrow icon for the bottom of the overlay. 332 const icon = document.createElement('span'); 333 this.el.appendChild(icon); 334 icon.classList.add('icon', 'noticon', 'noticon-downarrow'); 335 icon.style.textShadow = '0px 1px 1px rgb(223, 223, 223)'; 336 337 const rect = link.getBoundingClientRect(); 338 const win = document.defaultView; 339 const offset = { 340 top: rect.top + win.scrollY, 341 left: rect.left + win.scrollX, 342 }; 343 344 // Take measurements with the element fully visible. 345 show(this.el); 346 let left = offset.left - (this.el.offsetWidth - link.offsetWidth) / 2; 347 left = left < 5 ? 5 : left; 348 let top = offset.top - this.el.offsetHeight + 5; 349 hide(this.el); 350 351 const adminBar = document.querySelector('#wpadminbar'); 352 353 // Check if the overlay would appear off the screen. 354 if (top < win.scrollY + ((adminBar && adminBar.offsetHeight) || 0)) { 355 // We'll display the overlay beneath the link instead. 356 top = offset.top + link.offsetHeight; 357 // Instead of using the down arrow icon, use an up arrow. 358 icon.remove(); 359 this.el.prepend(icon); 360 icon.classList.remove('noticon-downarrow'); 361 icon.classList.add('noticon-uparrow'); 362 icon.style.textShadow = '0px -1px 1px rgb(223, 223, 223)'; 363 icon.style.verticalAlign = 'bottom'; 364 } 365 366 this.el.style.left = `${left}px`; 367 this.el.style.top = `${top}px`; 368 show(this.el); 369 370 // The height of the arrow icon differs slightly between browsers, 371 // so we compute the margin here to make sure it isn't disjointed 372 // from the overlay. 373 icon.style.marginTop = `${icon.scrollHeight - 26}px`; 374 icon.style.marginBottom = `${20 - icon.scrollHeight}px`; 375 376 // Position the arrow to be horizontally centred on the link. 377 icon.style.paddingLeft = `${ 378 offset.left - left + (link.offsetWidth - icon.scrollWidth) / 2 379 }px`; 380 } 381 382 /** 383 * Return whether the overlay is visible. 384 */ 385 isVisible() { 386 return this.el.style.getPropertyValue('display') !== 'none'; 387 } 388 389 /** 390 * Request that the overlay be hidden after a short delay. 391 */ 392 requestHide() { 393 if (this.hideTimeout !== null) { 394 return; 395 } 396 this.hideTimeout = setTimeout(() => { 397 hide(this.el); 398 this.clear(); 399 }, 300); 400 } 401 402 /** 403 * Cancel a request to hide the overlay. 404 */ 405 cancelHide() { 406 if (this.hideTimeout !== null) { 407 clearTimeout(this.hideTimeout); 408 this.hideTimeout = null; 409 } 410 } 411 } 412 413 // Overlay used for displaying comment like info.
414 const overlay = new Overlay(); 415 416 // The most recent comment for which the user has requested to see 417 // who liked it. 418 var relevantComment; 419 420 // Precache after this timeout. 421 var precacheTimeout = null; 422 423 /** 424 * Fetch the like data for a particular comment. 425 */ 426 function fetchLikeData(link, commentId) { 427 commentLikeCache[commentId] = null; 428 429 const container = link && link.parentElement && link.parentElement.parentElement; 430 const star = container.querySelector('a.comment-like-link'); 431 star && 432 handleLinkAction(star, 'view_comment_likes', commentId, data => { 433 // Populate the cache. 434 commentLikeCache[commentId] = data; 435 436 // Only show the overlay if the user is interested. 437 if (overlay.isVisible() && relevantComment === commentId) { 438 overlay.showLikes(link, data); 439 } 440 }); 441 } 442 443 function readCookie(c) { 444 const nameEQ = c + '='; 445 const cookieStrings = document.cookie.split(';'); 446 447 for (let i = 0; i < cookieStrings.length; i++) { 448 let cookieString = cookieStrings[i]; 449 while (cookieString.charAt(0) === ' ') { 450 cookieString = cookieString.substring(1, cookieString.length); 451 } 452 if (cookieString.indexOf(nameEQ) === 0) { 453 const chunk = cookieString.substring(nameEQ.length, cookieString.length); 454 const pairs = chunk.split('&'); 455 const cookieData = {}; 456 for (let num = pairs.length - 1; num >= 0; num--) { 457 const pair = pairs[num].split('='); 458 cookieData[pair[0]] = decodeURIComponent(pair[1]); 459 } 460 return cookieData; 461 } 462 } 463 return null; 464 } 465 466 function getServiceData() { 467 const data = readCookie('wpc_wpc'); 468 if (data === null || typeof data.access_token === 'undefined' || !data.access_token) { 469 return false; 470 } 471 return data; 472 } 473 474 function readMessage(msg) { 475 const event = msg.data; 476 477 if (typeof event.event === 'undefined') { 478 return; 479 } 480 481 if (event.event === 'login' && event.success) { 482 extWinCheck = setInterval(function () { 483 if (!extWin || extWin.closed) { 484 clearInterval(extWinCheck); 485 if (getServiceData()) { 486 // Load page in an iframe to get the current comment nonce 487 const nonceIframe = document.createElement('iframe'); 488 nonceIframe.id = 'wp-login-comment-nonce-iframe'; 489 nonceIframe.style.display = 'none'; 490 nonceIframe.src = commentLikeEvent + ''; 491 document.body.appendChild(nonceIframe); 492 493 const commentLikeId = (commentLikeEvent + '') 494 .split('like_comment=')[1] 495 .split('&_wpnonce=')[0]; 496 let c; 497 498 // Set a 5 second timeout to redirect to the comment page without doing the Like as a fallback 499 const commentLikeTimeout = setTimeout(() => { 500 window.location = commentLikeEvent; 501 }, 5000); 502 503 // Check for a new nonced redirect and use that if available before timing out 504 const commentLikeCheck = setInterval(() => { 505 const iframe = document.querySelector('#wp-login-comment-nonce-iframe'); 506 if (iframe) { 507 c = iframe.querySelector(`#comment-like-${commentLikeId} .comment-like-link`); 508 } 509 if (c && typeof c.href !== 'undefined') { 510 clearTimeout(commentLikeTimeout); 511 clearInterval(commentLikeCheck); 512 window.location = c.href; 513 } 514 }, 100); 515 } 516 } 517 }, 100); 518 519 if (extWin) { 520 if (!extWin.closed) { 521 extWin.close(); 522 } 523 extWin = false; 524 } 525 526 stopPolling(); 527 } 528 } 529 530 if (typeof window.postMessage !== 'undefined') { 531 window.addEventListener('message', e => { 532 let message = e && e.data; 533 if (typeof message === 'string') { 534 try { 535 message = JSON.parse(message); 536 } catch (err) { 537 return; 538 } 539 } 540 541 const type = message && message.type; 542 if (type === 'loginMessage') { 543 readMessage(message); 544 } 545 }); 546 } 547 548 document.body.addEventListener('click', e => { 549 let target = e.target; 550 551 // Don't do anything when clicking on the "X people" link. 552 if (target.matches('p.comment-likes a.view-likers')) { 553 e.preventDefault(); 554 return; 555 } 556 557 // Retrieve the surrounding paragraph to the star, if it hasn't been liked. 558 const notLikedPar = target.closest('p.comment-not-liked'); 559 560 // Return if not clicking on star or surrounding paragraph. 561 if (!target.matches('a.comment-like-link') && !notLikedPar) { 562 return; 563 } 564 565 // When a comment hasn't been liked, make the text clickable, too. 566 if (notLikedPar) { 567 target = notLikedPar.querySelector('a.comment-like-link'); 568 if (!target) { 569 return; 570 } 571 } 572 573 if (target.classList.contains('needs-login')) { 574 e.preventDefault(); 575 commentLikeEvent = target; 576 if (extWin) { 577 if (!extWin.closed) { 578 extWin.close(); 579 } 580 extWin = false;
581 } 582 583 stopPolling(); 584 585 const url = 'https://wordpress.com/public.api/connect/?action=request&service=wordpress'; 586 extWin = window.open( 587 url, 588 'likeconn', 589 'status=0,toolbar=0,location=1,menubar=0,directories=0,resizable=1,scrollbars=1,height=560,width=500' 590 ); 591 592 startPolling(); 593 594 return false; 595 } 596 597 // Record that the user likes or does not like this comment. 598 const commentId = getCommentId(target); 599 target.classList.add('loading'); 600 601 let commentEl = document.querySelector(`p#comment-like-${commentId}`); 602 // Determine whether to like or unlike based on whether the comment is 603 // currently liked. 604 const action = 605 commentEl && commentEl.dataset.liked === 'comment-liked' 606 ? 'unlike_comment' 607 : 'like_comment'; 608 handleLinkAction(target, action, commentId, data => { 609 // Invalidate the like cache for this comment. 610 delete commentLikeCache[commentId]; 611 612 const countEl = document.querySelector(`#comment-like-count-${data.context}`); 613 if (countEl) { 614 countEl.innerHTML = data.display; 615 } 616 617 commentEl = document.querySelector(`p#comment-like-${data.context}`); 618 if (action === 'like_comment') { 619 commentEl.classList.remove('comment-not-liked'); 620 commentEl.classList.add('comment-liked'); 621 commentEl.dataset.liked = 'comment-liked'; 622 } else { 623 commentEl.classList.remove('comment-liked'); 624 commentEl.classList.add('comment-not-liked'); 625 commentEl.dataset.liked = 'comment-not-liked'; 626 } 627 628 // Prefetch new data for this comment (if there are likers left). 629 const parent = target.closest('.comment-likes'); 630 const link = parent && parent.querySelector('a.view-likers'); 631 if (link) { 632 fetchLikeData(link, commentId); 633 } 634 635 target.classList.remove('loading'); 636 }); 637 e.preventDefault(); 638 e.stopPropagation(); 639 }); 640 641 document.body.addEventListener( 642 'mouseenter', 643 function (e) { 644 if (!e.target.matches('p.comment-likes a.view-likers')) { 645 return; 646 } 647 // Show the user a list of who has liked this comment. 648 649 const link = e.target; 650 if (Number(link.dataset.likeCount || 0) === 0) { 651 // No one has liked this comment. 652 return; 653 } 654 655 // Don't hide the overlay. 656 overlay.cancelHide(); 657 658 // Get the comment ID. 659 const container = link.parentElement && link.parentElement.parentElement; 660 const star = container && container.querySelector('a.comment-like-link'); 661 const commentId = star && getCommentId(star); 662 relevantComment = commentId; 663 664 // Check if the list of likes for this comment is already in 665 // the cache. 666 if (commentId in commentLikeCache) { 667 const entry = commentLikeCache[commentId];
668 // Only display the likes if the ajax request is 669 // actually done. 670 if (entry !== null) { 671 overlay.showLikes(link, entry); 672 } else { 673 // Make sure the overlay is visible (in case 674 // the user moved the mouse away while loading 675 // but then came back before it finished 676 // loading). 677 overlay.showLoadingMessage(link); 678 } 679 return; 680 } 681 682 // Position the "Loading..." overlay. 683 overlay.showLoadingMessage(link); 684 685 // Fetch the data. 686 fetchLikeData(link, commentId); 687 }, 688 true 689 ); 690 691 document.body.addEventListener( 692 'mouseleave', 693 e => { 694 if (!e.target.matches('p.comment-likes a.view-likers')) { 695 return; 696 } 697 // User has moved cursor away - hide the overlay. 698 overlay.requestHide(); 699 }, 700 true 701 ); 702 703 document.body.addEventListener( 704 'mouseenter', 705 e => { 706 if (!e.target.matches('.comment') || !e.target.querySelector('a.comment-like-link')) { 707 return; 708 } 709 // User is moving over a comment - precache the comment like data.
710 if (precacheTimeout !== null) { 711 clearTimeout(precacheTimeout); 712 precacheTimeout = null; 713 } 714 715 const star = e.target.querySelector('a.comment-like-link'); 716 const parent = star.closest('.comment-likes'); 717 const link = parent && parent.querySelector('a.view-likers'); 718 if (!link || Number(link.dataset.likeCount || 0) === 0) { 719 // No likes. 720 return; 721 } 722 const commentId = getCommentId(star); 723 if (commentId in commentLikeCache) { 724 // Already in cache. 725 return; 726 } 727 728 precacheTimeout = setTimeout(() => { 729 precacheTimeout = null; 730 if (commentId in commentLikeCache) { 731 // Was cached in the interim. 732 return; 733 } 734 fetchLikeData(link, commentId); 735 }, 1000); 736 }, 737 true 738 ); 739 } 740 741 if (document.readyState !== 'loading') { 742 init(); 743 } else { 744 document.addEventListener('DOMContentLoaded', init); 745 } 746})(); 747; 748/* 749 * jQuery FlexSlider v2.6.0 750 * Copyright 2012 WooThemes 751 * Contributing Author: Tyler Smith 752 */ 753; 754(function ($) { 755 756 var focused = true; 757 758 //FlexSlider: Object Instance 759 $.flexslider = function(el, options) { 760 var slider = $(el); 761 762 // making variables public 763 slider.vars = $.extend({}, $.flexslider.defaults, options); 764 765 var namespace = slider.vars.namespace, 766 msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture, 767 touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch, 768 // depricating this idea, as devices are being released with both of these events 769 eventType = "click touchend MSPointerUp keyup", 770 watchedEvent = "", 771 watchedEventClearTimer, 772 vertical = slider.vars.direction === "vertical", 773 reverse = slider.vars.reverse, 774 carousel = (slider.vars.itemWidth > 0), 775 fade = slider.vars.animation === "fade", 776 asNav = slider.vars.asNavFor !== "", 777 methods = {}; 778 779 // Store a reference to the slider object 780 $.data(el, "flexslider", slider); 781 782 // Private slider methods 783 methods = { 784 init: function() { 785 slider.animating = false; 786 // Get current slide and make sure it is a number 787 slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 ); 788 if ( isNaN( slider.currentSlide ) ) { slider.currentSlide = 0; } 789 slider.animatingTo = slider.currentSlide; 790 slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last); 791 slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' ')); 792 slider.slides = $(slider.vars.selector, slider); 793 slider.container = $(slider.containerSelector, slider); 794 slider.count = slider.slides.length; 795 // SYNC: 796 slider.syncExists = $(slider.vars.sync).length > 0; 797 // SLIDE: 798 if (slider.vars.animation === "slide") { slider.vars.animation = "swing"; } 799 slider.prop = (vertical) ? "top" : "marginLeft"; 800 slider.args = {}; 801 // SLIDESHOW: 802 slider.manualPause = false; 803 slider.stopped = false; 804 //PAUSE WHEN INVISIBLE 805 slider.started = false; 806 slider.startTimeout = null; 807 // TOUCH/USECSS: 808 slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() { 809 var obj = document.createElement('div'), 810 props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; 811 for (var i in props) { 812 if ( obj.style[ props[i] ] !== undefined ) { 813 slider.pfx = props[i].replace('Perspective','').toLowerCase(); 814 slider.prop = "-" + slider.pfx + "-transform"; 815 return true; 816 } 817 } 818 return false; 819 }()); 820 slider.ensureAnimationEnd = ''; 821 // CONTROLSCONTAINER: 822 if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer); 823 // MANUAL:
vendor: 23,129 bytes, lines 824-1361
824 if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls); 825 826 // CUSTOM DIRECTION NAV: 827 if (slider.vars.customDirectionNav !== "") slider.customDirectionNav = $(slider.vars.customDirectionNav).length === 2 && $(slider.vars.customDirectionNav); 828 829 // RANDOMIZE: 830 if (slider.vars.randomize) { 831 slider.slides.sort(function() { return (Math.round(Math.random())-0.5); }); 832 slider.container.empty().append(slider.slides); 833 } 834 835 slider.doMath(); 836 837 // INIT 838 slider.setup("init"); 839 840 // CONTROLNAV: 841 if (slider.vars.controlNav) { methods.controlNav.setup(); } 842 843 // DIRECTIONNAV: 844 if (slider.vars.directionNav) { methods.directionNav.setup(); } 845 846 // KEYBOARD: 847 if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) { 848 $(document).bind('keyup', function(event) { 849 var keycode = event.keyCode; 850 if (!slider.animating && (keycode === 39 || keycode === 37)) { 851 var target = (keycode === 39) ? slider.getTarget('next') : 852 (keycode === 37) ? slider.getTarget('prev') : false; 853 slider.flexAnimate(target, slider.vars.pauseOnAction); 854 } 855 }); 856 } 857 // MOUSEWHEEL: 858 if (slider.vars.mousewheel) { 859 slider.bind('mousewheel', function(event, delta, deltaX, deltaY) { 860 event.preventDefault(); 861 var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev'); 862 slider.flexAnimate(target, slider.vars.pauseOnAction); 863 }); 864 } 865 866 // PAUSEPLAY 867 if (slider.vars.pausePlay) { methods.pausePlay.setup(); } 868 869 //PAUSE WHEN INVISIBLE 870 if (slider.vars.slideshow && slider.vars.pauseInvisible) { methods.pauseInvisible.init(); } 871 872 // SLIDSESHOW 873 if (slider.vars.slideshow) { 874 if (slider.vars.pauseOnHover) { 875 slider.hover(function() { 876 if (!slider.manualPlay && !slider.manualPause) { slider.pause(); } 877 }, function() { 878 if (!slider.manualPause && !slider.manualPlay && !slider.stopped) { slider.play(); } 879 }); 880 } 881 // initialize animation 882 //If we're visible, or we don't use PageVisibility API 883 if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) { 884 (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play(); 885 } 886 } 887 888 // ASNAV: 889 if (asNav) { methods.asNav.setup(); } 890 891 // TOUCH 892 if (touch && slider.vars.touch) { methods.touch(); } 893 894 // FADE&&SMOOTHHEIGHT || SLIDE: 895 if (!fade || (fade && slider.vars.smoothHeight)) { $(window).bind("resize orientationchange focus", methods.resize); } 896 897 slider.find("img").attr("draggable", "false"); 898 899 // API: start() Callback 900 setTimeout(function(){ 901 slider.vars.start(slider); 902 }, 200); 903 }, 904 asNav: { 905 setup: function() { 906 slider.asNav = true; 907 slider.animatingTo = Math.floor(slider.currentSlide/slider.move); 908 slider.currentItem = slider.currentSlide; 909 slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide"); 910 if(!msGesture){ 911 slider.slides.on(eventType, function(e){ 912 e.preventDefault(); 913 var $slide = $(this), 914 target = $slide.index(); 915 var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container 916 if( posFromLeft <= 0 && $slide.hasClass( namespace + 'active-slide' ) ) { 917 slider.flexAnimate(slider.getTarget("prev"), true); 918 } else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + "active-slide")) { 919 slider.direction = (slider.currentItem < target) ? "next" : "prev"; 920 slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true); 921 } 922 }); 923 }else{ 924 el._slider = slider; 925 slider.slides.each(function (){ 926 var that = this; 927 that._gesture = new MSGesture(); 928 that._gesture.target = that; 929 that.addEventListener("MSPointerDown", function (e){ 930 e.preventDefault(); 931 if(e.currentTarget._gesture) { 932 e.currentTarget._gesture.addPointer(e.pointerId); 933 } 934 }, false); 935 that.addEventListener("MSGestureTap", function (e){ 936 e.preventDefault(); 937 var $slide = $(this), 938 target = $slide.index(); 939 if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) { 940 slider.direction = (slider.currentItem < target) ? "next" : "prev"; 941 slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true); 942 } 943 }); 944 }); 945 } 946 } 947 }, 948 controlNav: { 949 setup: function() { 950 if (!slider.manualControls) { 951 methods.controlNav.setupPaging(); 952 } else { // MANUALCONTROLS: 953 methods.controlNav.setupManual(); 954 } 955 }, 956 setupPaging: function() { 957 var type = (slider.vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging', 958 j = 1, 959 item, 960 slide; 961 962 slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>'); 963 964 if (slider.pagingCount > 1) { 965 for (var i = 0; i < slider.pagingCount; i++) { 966 slide = slider.slides.eq(i); 967 968 if ( undefined === slide.attr( 'data-thumb-alt' ) ) { 969 slide.attr( 'data-thumb-alt', '' ); 970 } 971 972 item = $( '<a></a>' ).attr( 'href', '#' ).text( j ); 973 if ( slider.vars.controlNav === "thumbnails" ) { 974 item = $( '<img/>' ).attr( 'src', slide.attr( 'data-thumb' ) ); 975 } 976 977 if ( '' !== slide.attr( 'data-thumb-alt' ) ) { 978 item.attr( 'alt', slide.attr( 'data-thumb-alt' ) ); 979 } 980 981 if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) { 982 var captn = slide.attr( 'data-thumbcaption' ); 983 if ( '' !== captn && undefined !== captn ) { 984 var caption = $('<span></span>' ).addClass( namespace + 'caption' ).text( captn ); 985 item.append( caption ); 986 } 987 } 988 989 var liElement = $( '<li>' ); 990 item.appendTo( liElement ); 991 liElement.append( '</li>' ); 992 993 slider.controlNavScaffold.append(liElement); 994 j++; 995 } 996 } 997 998 // CONTROLSCONTAINER: 999 (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold); 1000 methods.controlNav.set(); 1001 1002 methods.controlNav.active(); 1003 1004 slider.controlNavScaffold.delegate('a, img', eventType, function(event) { 1005 event.preventDefault(); 1006 1007 if (watchedEvent === "" || watchedEvent === event.type) { 1008 var $this = $(this), 1009 target = slider.controlNav.index($this); 1010 1011 if (!$this.hasClass(namespace + 'active')) { 1012 slider.direction = (target > slider.currentSlide) ? "next" : "prev"; 1013 slider.flexAnimate(target, slider.vars.pauseOnAction); 1014 } 1015 } 1016 1017 // setup flags to prevent event duplication 1018 if (watchedEvent === "") { 1019 watchedEvent = event.type; 1020 } 1021 methods.setToClearWatchedEvent(); 1022 1023 }); 1024 }, 1025 setupManual: function() { 1026 slider.controlNav = slider.manualControls; 1027 methods.controlNav.active(); 1028 1029 slider.controlNav.bind(eventType, function(event) { 1030 event.preventDefault(); 1031 1032 if (watchedEvent === "" || watchedEvent === event.type) { 1033 var $this = $(this), 1034 target = slider.controlNav.index($this); 1035 1036 if (!$this.hasClass(namespace + 'active')) { 1037 (target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev"; 1038 slider.flexAnimate(target, slider.vars.pauseOnAction); 1039 } 1040 } 1041 1042 // setup flags to prevent event duplication 1043 if (watchedEvent === "") { 1044 watchedEvent = event.type; 1045 } 1046 methods.setToClearWatchedEvent(); 1047 }); 1048 }, 1049 set: function() { 1050 var selector = (slider.vars.controlNav === "thumbnails") ? 'img' : 'a'; 1051 slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider); 1052 }, 1053 active: function() { 1054 slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active"); 1055 }, 1056 update: function(action, pos) { 1057 if (slider.pagingCount > 1 && action === "add") { 1058 slider.controlNavScaffold.append($('<li><a href="#">' + slider.count + '</a></li>')); 1059 } else if (slider.pagingCount === 1) { 1060 slider.controlNavScaffold.find('li').remove(); 1061 } else { 1062 slider.controlNav.eq(pos).closest('li').remove(); 1063 } 1064 methods.controlNav.set(); 1065 (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active(); 1066 } 1067 }, 1068 directionNav: { 1069 setup: function() { 1070 var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li class="' + namespace + 'nav-prev"><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li class="' + namespace + 'nav-next"><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>'); 1071 1072 // CUSTOM DIRECTION NAV: 1073 if (slider.customDirectionNav) { 1074 slider.directionNav = slider.customDirectionNav; 1075 // CONTROLSCONTAINER: 1076 } else if (slider.controlsContainer) { 1077 $(slider.controlsContainer).append(directionNavScaffold); 1078 slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer); 1079 } else { 1080 slider.append(directionNavScaffold); 1081 slider.directionNav = $('.' + namespace + 'direction-nav li a', slider); 1082 } 1083 1084 methods.directionNav.update(); 1085 1086 slider.directionNav.bind(eventType, function(event) { 1087 event.preventDefault(); 1088 var target; 1089 1090 if (watchedEvent === "" || watchedEvent === event.type) { 1091 target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev'); 1092 slider.flexAnimate(target, slider.vars.pauseOnAction); 1093 } 1094 1095 // setup flags to prevent event duplication 1096 if (watchedEvent === "") { 1097 watchedEvent = event.type; 1098 } 1099 methods.setToClearWatchedEvent(); 1100 }); 1101 }, 1102 update: function() { 1103 var disabledClass = namespace + 'disabled'; 1104 if (slider.pagingCount === 1) { 1105 slider.directionNav.addClass(disabledClass).attr('tabindex', '-1'); 1106 } else if (!slider.vars.animationLoop) { 1107 if (slider.animatingTo === 0) { 1108 slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass).attr('tabindex', '-1'); 1109 } else if (slider.animatingTo === slider.last) { 1110 slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass).attr('tabindex', '-1'); 1111 } else { 1112 slider.directionNav.removeClass(disabledClass).removeAttr('tabindex'); 1113 } 1114 } else { 1115 slider.directionNav.removeClass(disabledClass).removeAttr('tabindex'); 1116 } 1117 } 1118 }, 1119 pausePlay: { 1120 setup: function() { 1121 var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a href="#"></a></div>'); 1122 1123 // CONTROLSCONTAINER: 1124 if (slider.controlsContainer) { 1125 slider.controlsContainer.append(pausePlayScaffold); 1126 slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer); 1127 } else { 1128 slider.append(pausePlayScaffold); 1129 slider.pausePlay = $('.' + namespace + 'pauseplay a', slider); 1130 } 1131 1132 methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play'); 1133 1134 slider.pausePlay.bind(eventType, function(event) { 1135 event.preventDefault(); 1136 1137 if (watchedEvent === "" || watchedEvent === event.type) { 1138 if ($(this).hasClass(namespace + 'pause')) { 1139 slider.manualPause = true; 1140 slider.manualPlay = false; 1141 slider.pause(); 1142 } else { 1143 slider.manualPause = false; 1144 slider.manualPlay = true; 1145 slider.play(); 1146 } 1147 } 1148 1149 // setup flags to prevent event duplication 1150 if (watchedEvent === "") { 1151 watchedEvent = event.type; 1152 } 1153 methods.setToClearWatchedEvent(); 1154 }); 1155 }, 1156 update: function(state) { 1157 (state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText); 1158 } 1159 }, 1160 touch: function() { 1161 var startX, 1162 startY, 1163 offset, 1164 cwidth, 1165 dx, 1166 startT, 1167 onTouchStart, 1168 onTouchMove, 1169 onTouchEnd, 1170 scrolling = false, 1171 localX = 0, 1172 localY = 0, 1173 accDx = 0; 1174 1175 if(!msGesture){ 1176 onTouchStart = function(e) { 1177 if (slider.animating) { 1178 e.preventDefault(); 1179 } else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) { 1180 slider.pause(); 1181 // CAROUSEL: 1182 cwidth = (vertical) ? slider.h : slider. w; 1183 startT = Number(new Date()); 1184 // CAROUSEL: 1185 1186 // Local vars for X and Y points. 1187 localX = e.touches[0].pageX; 1188 localY = e.touches[0].pageY; 1189 1190 offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 : 1191 (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : 1192 (carousel && slider.currentSlide === slider.last) ? slider.limit : 1193 (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide : 1194 (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth; 1195 startX = (vertical) ? localY : localX; 1196 startY = (vertical) ? localX : localY; 1197 1198 el.addEventListener('touchmove', onTouchMove, false); 1199 el.addEventListener('touchend', onTouchEnd, false); 1200 } 1201 }; 1202 1203 onTouchMove = function(e) { 1204 // Local vars for X and Y points. 1205 1206 localX = e.touches[0].pageX; 1207 localY = e.touches[0].pageY; 1208 1209 dx = (vertical) ? startX - localY : startX - localX; 1210 scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY)); 1211 1212 var fxms = 500; 1213 1214 if ( ! scrolling || Number( new Date() ) - startT > fxms ) { 1215 e.preventDefault(); 1216 if (!fade && slider.transitions) { 1217 if (!slider.vars.animationLoop) { 1218 dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1); 1219 } 1220 slider.setProps(offset + dx, "setTouch"); 1221 } 1222 } 1223 }; 1224 1225 onTouchEnd = function(e) { 1226 // finish the touch by undoing the touch session 1227 el.removeEventListener('touchmove', onTouchMove, false); 1228 1229 if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) { 1230 var updateDx = (reverse) ? -dx : dx, 1231 target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev'); 1232 1233 if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) { 1234 slider.flexAnimate(target, slider.vars.pauseOnAction); 1235 } else { 1236 if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); } 1237 } 1238 } 1239 el.removeEventListener('touchend', onTouchEnd, false); 1240 1241 startX = null; 1242 startY = null; 1243 dx = null; 1244 offset = null; 1245 }; 1246 1247 el.addEventListener('touchstart', onTouchStart, false); 1248 }else{ 1249 el.style.msTouchAction = "none"; 1250 el._gesture = new MSGesture(); 1251 el._gesture.target = el; 1252 el.addEventListener("MSPointerDown", onMSPointerDown, false); 1253 el._slider = slider; 1254 el.addEventListener("MSGestureChange", onMSGestureChange, false); 1255 el.addEventListener("MSGestureEnd", onMSGestureEnd, false); 1256 1257 function onMSPointerDown(e){ 1258 e.stopPropagation(); 1259 if (slider.animating) { 1260 e.preventDefault(); 1261 }else{ 1262 slider.pause(); 1263 el._gesture.addPointer(e.pointerId); 1264 accDx = 0; 1265 cwidth = (vertical) ? slider.h : slider. w; 1266 startT = Number(new Date()); 1267 // CAROUSEL: 1268 1269 offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 : 1270 (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : 1271 (carousel && slider.currentSlide === slider.last) ? slider.limit : 1272 (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide : 1273 (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth; 1274 } 1275 } 1276 1277 function onMSGestureChange(e) { 1278 e.stopPropagation(); 1279 var slider = e.target._slider; 1280 if(!slider){ 1281 return; 1282 } 1283 var transX = -e.translationX, 1284 transY = -e.translationY; 1285 1286 //Accumulate translations. 1287 accDx = accDx + ((vertical) ? transY : transX); 1288 dx = accDx; 1289 scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY)); 1290 1291 if(e.detail === e.MSGESTURE_FLAG_INERTIA){ 1292 setImmediate(function (){ 1293 el._gesture.stop(); 1294 }); 1295 1296 return; 1297 } 1298 1299 if (!scrolling || Number(new Date()) - startT > 500) { 1300 e.preventDefault(); 1301 if (!fade && slider.transitions) { 1302 if (!slider.vars.animationLoop) { 1303 dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1); 1304 } 1305 slider.setProps(offset + dx, "setTouch"); 1306 } 1307 } 1308 } 1309 1310 function onMSGestureEnd(e) { 1311 e.stopPropagation(); 1312 var slider = e.target._slider; 1313 if(!slider){ 1314 return; 1315 } 1316 if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) { 1317 var updateDx = (reverse) ? -dx : dx, 1318 target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev'); 1319 1320 if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) { 1321 slider.flexAnimate(target, slider.vars.pauseOnAction); 1322 } else { 1323 if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); } 1324 } 1325 } 1326 1327 startX = null; 1328 startY = null; 1329 dx = null; 1330 offset = null; 1331 accDx = 0; 1332 } 1333 } 1334 }, 1335 resize: function() { 1336 if (!slider.animating && slider.is(':visible')) { 1337 if (!carousel) { slider.doMath(); } 1338 1339 if (fade) { 1340 // SMOOTH HEIGHT: 1341 methods.smoothHeight(); 1342 } else if (carousel) { //CAROUSEL: 1343 slider.slides.width(slider.computedW); 1344 slider.update(slider.pagingCount); 1345 slider.setProps(); 1346 } 1347 else if (vertical) { //VERTICAL: 1348 slider.viewport.height(slider.h); 1349 slider.setProps(slider.h, "setTotal"); 1350 } else { 1351 // SMOOTH HEIGHT: 1352 if (slider.vars.smoothHeight) { methods.smoothHeight(); } 1353 slider.newSlides.width(slider.computedW); 1354 slider.setProps(slider.computedW, "setTotal"); 1355 } 1356 } 1357 }, 1358 smoothHeight: function(dur) { 1359 if (!vertical || fade) { 1360 var $obj = (fade) ? slider : slider.viewport; 1361 (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).h
vendor: 7,569 bytes, lines 1361-1545
1361eight()); 1362 } 1363 }, 1364 sync: function(action) { 1365 var $obj = $(slider.vars.sync).data("flexslider"), 1366 target = slider.animatingTo; 1367 1368 switch (action) { 1369 case "animate": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break; 1370 case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break; 1371 case "pause": $obj.pause(); break; 1372 } 1373 }, 1374 uniqueID: function($clone) { 1375 // Append _clone to current level and children elements with id attributes 1376 $clone.filter( '[id]' ).add($clone.find( '[id]' )).each(function() { 1377 var $this = $(this); 1378 $this.attr( 'id', $this.attr( 'id' ) + '_clone' ); 1379 }); 1380 return $clone; 1381 }, 1382 pauseInvisible: { 1383 visProp: null, 1384 init: function() { 1385 var visProp = methods.pauseInvisible.getHiddenProp(); 1386 if (visProp) { 1387 var evtname = visProp.replace(/[H|h]idden/,'') + 'visibilitychange'; 1388 document.addEventListener(evtname, function() { 1389 if (methods.pauseInvisible.isHidden()) { 1390 if(slider.startTimeout) { 1391 clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible 1392 } else { 1393 slider.pause(); //Or just pause 1394 } 1395 } 1396 else { 1397 if(slider.started) { 1398 slider.play(); //Initiated before, just play 1399 } else { 1400 if (slider.vars.initDelay > 0) { 1401 setTimeout(slider.play, slider.vars.initDelay); 1402 } else { 1403 slider.play(); //Didn't init before: simply init or wait for it 1404 } 1405 } 1406 } 1407 }); 1408 } 1409 }, 1410 isHidden: function() { 1411 var prop = methods.pauseInvisible.getHiddenProp(); 1412 if (!prop) { 1413 return false; 1414 } 1415 return document[prop]; 1416 }, 1417 getHiddenProp: function() { 1418 var prefixes = ['webkit','moz','ms','o']; 1419 // if 'hidden' is natively supported just return it 1420 if ('hidden' in document) { 1421 return 'hidden'; 1422 } 1423 // otherwise loop over all the known prefixes until we find one 1424 for ( var i = 0; i < prefixes.length; i++ ) { 1425 if ((prefixes[i] + 'Hidden') in document) { 1426 return prefixes[i] + 'Hidden'; 1427 } 1428 } 1429 // otherwise it's not supported 1430 return null; 1431 } 1432 }, 1433 setToClearWatchedEvent: function() { 1434 clearTimeout(watchedEventClearTimer); 1435 watchedEventClearTimer = setTimeout(function() { 1436 watchedEvent = ""; 1437 }, 3000); 1438 } 1439 }; 1440 1441 // public methods 1442 slider.flexAnimate = function(target, pause, override, withSync, fromNav) { 1443 if (!slider.vars.animationLoop && target !== slider.currentSlide) { 1444 slider.direction = (target > slider.currentSlide) ? "next" : "prev"; 1445 } 1446 1447 if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev"; 1448 1449 if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) { 1450 if (asNav && withSync) { 1451 var master = $(slider.vars.asNavFor).data('flexslider'); 1452 slider.atEnd = target === 0 || target === slider.count - 1; 1453 master.flexAnimate(target, true, false, true, fromNav); 1454 slider.direction = (slider.currentItem < target) ? "next" : "prev"; 1455 master.direction = slider.direction; 1456 1457 if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) { 1458 slider.currentItem = target; 1459 slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide"); 1460 target = Math.floor(target/slider.visible); 1461 } else { 1462 slider.currentItem = target; 1463 slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide"); 1464 return false; 1465 } 1466 } 1467 1468 slider.animating = true; 1469 slider.animatingTo = target; 1470 1471 // SLIDESHOW: 1472 if (pause) { slider.pause(); } 1473 1474 // API: before() animation Callback 1475 slider.vars.before(slider); 1476 1477 // SYNC: 1478 if (slider.syncExists && !fromNav) { methods.sync("animate"); } 1479 1480 // CONTROLNAV 1481 if (slider.vars.controlNav) { methods.controlNav.active(); } 1482 1483 // !CAROUSEL: 1484 // CANDIDATE: slide active class (for add/remove slide) 1485 if (!carousel) { slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide'); } 1486 1487 // INFINITE LOOP: 1488 // CANDIDATE: atEnd 1489 slider.atEnd = target === 0 || target === slider.last; 1490 1491 // DIRECTIONNAV: 1492 if (slider.vars.directionNav) { methods.directionNav.update(); } 1493 1494 if (target === slider.last) { 1495 // API: end() of cycle Callback 1496 slider.vars.end(slider); 1497 // SLIDESHOW && !INFINITE LOOP: 1498 if (!slider.vars.animationLoop) { slider.pause(); } 1499 } 1500 1501 // SLIDE: 1502 if (!fade) { 1503 var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW, 1504 margin, slideString, calcNext; 1505 1506 // INFINITE LOOP / REVERSE: 1507 if (carousel) { 1508 margin = slider.vars.itemMargin; 1509 calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo; 1510 slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext; 1511 } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") { 1512 slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0; 1513 } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") { 1514 slideString = (reverse) ? 0 : (slider.count + 1) * dimension; 1515 } else { 1516 slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension; 1517 } 1518 slider.setProps(slideString, "", slider.vars.animationSpeed); 1519 if (slider.transitions) { 1520 if (!slider.vars.animationLoop || !slider.atEnd) { 1521 slider.animating = false; 1522 slider.currentSlide = slider.animatingTo; 1523 } 1524 1525 // Unbind previous transitionEnd events and re-bind new transitionEnd event 1526 slider.container.unbind("webkitTransitionEnd transitionend"); 1527 slider.container.bind("webkitTransitionEnd transitionend", function() { 1528 clearTimeout(slider.ensureAnimationEnd); 1529 slider.wrapup(dimension); 1530 }); 1531 1532 // Insurance for the ever-so-fickle transitionEnd event 1533 clearTimeout(slider.ensureAnimationEnd); 1534 slider.ensureAnimationEnd = setTimeout(function() { 1535 slider.wrapup(dimension); 1536 }, slider.vars.animationSpeed + 100); 1537 1538 } else { 1539 slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){ 1540 slider.wrapup(dimension); 1541 }); 1542 } 1543 } else { // FADE: 1544 if (!touch) { 1545
vendor: 13,743 bytes, lines 1545-1859
1545//slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing); 1546 //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup); 1547 1548 slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing); 1549 slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup); 1550 1551 } else { 1552 slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 }); 1553 slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 }); 1554 slider.wrapup(dimension); 1555 } 1556 } 1557 // SMOOTH HEIGHT: 1558 if (slider.vars.smoothHeight) { methods.smoothHeight(slider.vars.animationSpeed); } 1559 } 1560 }; 1561 slider.wrapup = function(dimension) { 1562 // SLIDE: 1563 if (!fade && !carousel) { 1564 if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) { 1565 slider.setProps(dimension, "jumpEnd"); 1566 } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) { 1567 slider.setProps(dimension, "jumpStart"); 1568 } 1569 } 1570 slider.animating = false; 1571 slider.currentSlide = slider.animatingTo; 1572 // API: after() animation Callback 1573 slider.vars.after(slider); 1574 }; 1575 1576 // SLIDESHOW: 1577 slider.animateSlides = function() { 1578 if (!slider.animating && focused ) { slider.flexAnimate(slider.getTarget("next")); } 1579 }; 1580 // SLIDESHOW: 1581 slider.pause = function() { 1582 clearInterval(slider.animatedSlides); 1583 slider.animatedSlides = null; 1584 slider.playing = false; 1585 // PAUSEPLAY: 1586 if (slider.vars.pausePlay) { methods.pausePlay.update("play"); } 1587 // SYNC: 1588 if (slider.syncExists) { methods.sync("pause"); } 1589 }; 1590 // SLIDESHOW: 1591 slider.play = function() { 1592 if (slider.playing) { clearInterval(slider.animatedSlides); } 1593 slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed); 1594 slider.started = slider.playing = true; 1595 // PAUSEPLAY: 1596 if (slider.vars.pausePlay) { methods.pausePlay.update("pause"); } 1597 // SYNC: 1598 if (slider.syncExists) { methods.sync("play"); } 1599 }; 1600 // STOP: 1601 slider.stop = function () { 1602 slider.pause(); 1603 slider.stopped = true; 1604 }; 1605 slider.canAdvance = function(target, fromNav) { 1606 // ASNAV: 1607 var last = (asNav) ? slider.pagingCount - 1 : slider.last; 1608 return (fromNav) ? true : 1609 (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true : 1610 (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false : 1611 (target === slider.currentSlide && !asNav) ? false : 1612 (slider.vars.animationLoop) ? true : 1613 (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false : 1614 (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false : 1615 true; 1616 }; 1617 slider.getTarget = function(dir) { 1618 slider.direction = dir; 1619 if (dir === "next") { 1620 return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1; 1621 } else { 1622 return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1; 1623 } 1624 }; 1625 1626 // SLIDE: 1627 slider.setProps = function(pos, special, dur) { 1628 var target = (function() { 1629 var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo, 1630 posCalc = (function() { 1631 if (carousel) { 1632 return (special === "setTouch") ? pos : 1633 (reverse && slider.animatingTo === slider.last) ? 0 : 1634 (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : 1635 (slider.animatingTo === slider.last) ? slider.limit : posCheck; 1636 } else { 1637 switch (special) { 1638 case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos; 1639 case "setTouch": return (reverse) ? pos : pos; 1640 case "jumpEnd": return (reverse) ? pos : slider.count * pos; 1641 case "jumpStart": return (reverse) ? slider.count * pos : pos; 1642 default: return pos; 1643 } 1644 } 1645 }()); 1646 1647 return (posCalc * -1) + "px"; 1648 }()); 1649 1650 if (slider.transitions) { 1651 target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)"; 1652 dur = (dur !== undefined) ? (dur/1000) + "s" : "0s"; 1653 slider.container.css("-" + slider.pfx + "-transition-duration", dur); 1654 slider.container.css("transition-duration", dur); 1655 } 1656 1657 slider.args[slider.prop] = target; 1658 if (slider.transitions || dur === undefined) { slider.container.css(slider.args); } 1659 1660 slider.container.css('transform',target); 1661 }; 1662 1663 slider.setup = function(type) { 1664 // SLIDE: 1665 if (!fade) { 1666 var sliderOffset, arr; 1667 1668 if (type === "init") { 1669 slider.viewport = $('<div class="' + namespace + 'viewport"></div>').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container); 1670 // INFINITE LOOP: 1671 slider.cloneCount = 0; 1672 slider.cloneOffset = 0; 1673 // REVERSE: 1674 if (reverse) { 1675 arr = $.makeArray(slider.slides).reverse(); 1676 slider.slides = $(arr); 1677 slider.container.empty().append(slider.slides); 1678 } 1679 } 1680 // INFINITE LOOP && !CAROUSEL: 1681 if (slider.vars.animationLoop && !carousel) { 1682 slider.cloneCount = 2; 1683 slider.cloneOffset = 1; 1684 // clear out old clones 1685 if (type !== "init") { slider.container.find('.clone').remove(); } 1686 slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass('clone')).attr('aria-hidden', 'true')) 1687 .prepend(methods.uniqueID(slider.slides.last().clone().addClass('clone')).attr('aria-hidden', 'true')); 1688 } 1689 slider.newSlides = $(slider.vars.selector, slider); 1690 1691 sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset; 1692 // VERTICAL: 1693 if (vertical && !carousel) { 1694 slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%"); 1695 setTimeout(function(){ 1696 slider.newSlides.css({"display": "block"}); 1697 slider.doMath(); 1698 slider.viewport.height(slider.h); 1699 slider.setProps(sliderOffset * slider.h, "init"); 1700 }, (type === "init") ? 100 : 0); 1701 } else { 1702 slider.container.width((slider.count + slider.cloneCount) * 200 + "%"); 1703 slider.setProps(sliderOffset * slider.computedW, "init"); 1704 setTimeout(function(){ 1705 slider.doMath(); 1706 slider.newSlides.css({"width": slider.computedW, "marginRight" : slider.computedM, "float": "left", "display": "block"}); 1707 // SMOOTH HEIGHT: 1708 if (slider.vars.smoothHeight) { methods.smoothHeight(); } 1709 }, (type === "init") ? 100 : 0); 1710 } 1711 } else { // FADE: 1712 slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"}); 1713 if (type === "init") { 1714 if (!touch) { 1715 //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing); 1716 if (slider.vars.fadeFirstSlide == false) { 1717 slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).css({"opacity": 1}); 1718 } else { 1719 slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing); 1720 } 1721 } else { 1722 slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2}); 1723 } 1724 } 1725 // SMOOTH HEIGHT: 1726 if (slider.vars.smoothHeight) { methods.smoothHeight(); } 1727 } 1728 // !CAROUSEL: 1729 // CANDIDATE: active slide 1730 if (!carousel) { slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide"); } 1731 1732 //FlexSlider: init() Callback 1733 slider.vars.init(slider); 1734 }; 1735 1736 slider.doMath = function() { 1737 var slide = slider.slides.first(), 1738 slideMargin = slider.vars.itemMargin, 1739 minItems = slider.vars.minItems, 1740 maxItems = slider.vars.maxItems; 1741 1742 slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width(); 1743 slider.h = slide.height(); 1744 slider.boxPadding = slide.outerWidth() - slide.width(); 1745 1746 // CAROUSEL: 1747 if (carousel) { 1748 slider.itemT = slider.vars.itemWidth + slideMargin; 1749 slider.itemM = slideMargin; 1750 slider.minW = (minItems) ? minItems * slider.itemT : slider.w; 1751 slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w; 1752 slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems : 1753 (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems : 1754 (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth; 1755 1756 slider.visible = Math.floor(slider.w/(slider.itemW)); 1757 slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible; 1758 slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1); 1759 slider.last = slider.pagingCount - 1; 1760 slider.limit = (slider.pagingCount === 1) ? 0 : 1761 (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin; 1762 } else { 1763 slider.itemW = slider.w; 1764 slider.itemM = slideMargin; 1765 slider.pagingCount = slider.count; 1766 slider.last = slider.count - 1; 1767 } 1768 slider.computedW = slider.itemW - slider.boxPadding; 1769 slider.computedM = slider.itemM; 1770 }; 1771 1772 slider.update = function(pos, action) { 1773 slider.doMath(); 1774 1775 // update currentSlide and slider.animatingTo if necessary 1776 if (!carousel) { 1777 if (pos < slider.currentSlide) { 1778 slider.currentSlide += 1; 1779 } else if (pos <= slider.currentSlide && pos !== 0) { 1780 slider.currentSlide -= 1; 1781 } 1782 slider.animatingTo = slider.currentSlide; 1783 } 1784 1785 // update controlNav 1786 if (slider.vars.controlNav && !slider.manualControls) { 1787 if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) { 1788 methods.controlNav.update("add"); 1789 } else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) { 1790 if (carousel && slider.currentSlide > slider.last) { 1791 slider.currentSlide -= 1; 1792 slider.animatingTo -= 1; 1793 } 1794 methods.controlNav.update("remove", slider.last); 1795 } 1796 } 1797 // update directionNav 1798 if (slider.vars.directionNav) { methods.directionNav.update(); } 1799 1800 }; 1801 1802 slider.addSlide = function(obj, pos) { 1803 var $obj = $(obj); 1804 1805 slider.count += 1; 1806 slider.last = slider.count - 1; 1807 1808 // append new slide 1809 if (vertical && reverse) { 1810 (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj); 1811 } else { 1812 (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj); 1813 } 1814 1815 // update currentSlide, animatingTo, controlNav, and directionNav 1816 slider.update(pos, "add"); 1817 1818 // update slider.slides 1819 slider.slides = $(slider.vars.selector + ':not(.clone)', slider); 1820 // re-setup the slider to accomdate new slide 1821 slider.setup(); 1822 1823 //FlexSlider: added() Callback 1824 slider.vars.added(slider); 1825 }; 1826 slider.removeSlide = function(obj) { 1827 var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj; 1828 1829 // update count 1830 slider.count -= 1; 1831 slider.last = slider.count - 1; 1832 1833 // remove slide 1834 if (isNaN(obj)) { 1835 $(obj, slider.slides).remove(); 1836 } else { 1837 (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove(); 1838 } 1839 1840 // update currentSlide, animatingTo, controlNav, and directionNav 1841 slider.doMath(); 1842 slider.update(pos, "remove"); 1843 1844 // update slider.slides 1845 slider.slides = $(slider.vars.selector + ':not(.clone)', slider); 1846 // re-setup the slider to accomdate new slide 1847 slider.setup(); 1848 1849 // FlexSlider: removed() Callback 1850 slider.vars.removed(slider); 1851 }; 1852 1853 //FlexSlider: Initialize 1854 methods.init(); 1855 }; 1856 1857 // Ensure the slider isn't focussed if the window loses focus. 1858 $( window ).blur( function ( e ) { 1859 focused = false;
1860 }).focus( function ( e ) { 1861 focused = true; 1862 }); 1863 1864 //FlexSlider: Default Settings 1865 $.flexslider.defaults = { 1866 namespace: "flex-", //{NEW} String: Prefix string attached to the class of every element generated by the plugin 1867 selector: ".slides > li", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril 1868 animation: "fade", //String: Select your animation type, "fade" or "slide" 1869 easing: "swing", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported! 1870 direction: "horizontal", //String: Select the sliding direction, "horizontal" or "vertical" 1871 reverse: false, //{NEW} Boolean: Reverse the animation direction 1872 animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end 1873 smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode 1874 startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide) 1875 slideshow: true, //Boolean: Animate slider automatically 1876 slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds 1877 animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds 1878 initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds 1879 randomize: false, //Boolean: Randomize slide order 1880 fadeFirstSlide: true, //Boolean: Fade in the first slide when animation type is "fade" 1881 thumbCaptions: false, //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav. 1882 1883 // Usability features 1884 pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended. 1885 pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering 1886 pauseInvisible: true, //{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage. 1887 useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available 1888 touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices 1889 video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches 1890 1891 // Primary Controls 1892 controlNav: true, //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage 1893 directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false) 1894 prevText: "Previous", //String: Set the text for the "previous" directionNav item 1895 nextText: "Next", //String: Set the text for the "next" directionNav item 1896 1897 // Secondary Navigation 1898 keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys 1899 multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present. 1900 mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel 1901 pausePlay: false, //Boolean: Create pause/play dynamic element 1902 pauseText: "Pause", //String: Set the text for the "pause" pausePlay item 1903 playText: "Play", //String: Set the text for the "play" pausePlay item 1904 1905 // Special properties 1906 controlsContainer: "", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found. 1907 manualControls: "", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs. 1908 customDirectionNav: "", //{NEW}
1908 jQuery Object/Selector: Custom prev / next button. Must be two jQuery elements. In order to make the events work they have to have the classes "prev" and "next" (plus namespace) 1909 sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care. 1910 asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider 1911 1912 // Carousel Options 1913 itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding. 1914 itemMargin: 0, //{NEW} Integer: Margin between carousel items. 1915 minItems: 1, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this. 1916 maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit. 1917 move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items. 1918 allowOneSlide: true, //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide 1919 1920 // Callback API 1921 start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide 1922 before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation 1923 after: function(){}, //Callback: function(slider) - Fires after each slider animation completes 1924 end: function(){}, //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous) 1925 added: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is added 1926 removed: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is removed 1927 init: function() {} //{NEW} Callback: function(slider) - Fires after the slider is initially setup 1928 }; 1929 1930 //FlexSlider: Plugin Function 1931 $.fn.flexslider = function(options) { 1932 if (options === undefined) { options = {}; } 1933 1934 if (typeof options === "object") { 1935 return this.each(function() { 1936 var $this = $(this), 1937 selector = (options.selector) ? options.selector : ".slides > li", 1938 $slides = $this.find(selector); 1939 1940 if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) { 1941 $slides.fadeIn(400); 1942 if (options.start) { options.start($this); } 1943 } else if ($this.data('flexslider') === undefined) { 1944 new $.flexslider(this, options); 1945 } 1946 }); 1947 } else { 1948 // Helper strings to quickly perform functions on the slider 1949 var $slider = $(this).data('flexslider'); 1950 switch (options) { 1951 case "play": $slider.play(); break; 1952 case "pause": $slider.pause(); break; 1953 case "stop": $slider.stop(); break; 1954 case "next": $slider.flexAnimate($slider.getTarget("next"), true); break; 1955 case "prev": 1956 case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break; 1957 default: if (typeof options === "number") { $slider.flexAnimate(options, true); } 1958 } 1959 } 1960 }; 1961})(jQuery); 1962; 1963/*! This file is auto-generated */ 1964/*! 1965 * imagesLoaded PACKAGED v5.0.0 1966 * JavaScript is all like "You images are done yet or what?" 1967 * MIT License 1968 */ 1969!function(t,e){"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,(function(){function t(){}let e=t.prototype;return e.on=function(t,e){if(!t||!e)return this;let i=this._events=this._events||{},s=i[t]=i[t]||[];return s.includes(e)||s.push(e),this},e.once=function(t,e){if(!t||!e)return this;this.on(t,e);let i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this},e.off=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;let s=i.indexOf(e);return-1!=s&&i.splice(s,1),this},e.emitEvent=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;i=i.slice(0),e=e||[];let s=this._onceEvents&&this._onceEvents[t];for(let n of i){s&&s[n]&&(this.off(t,n),delete s[n]),n.apply(this,e)}return this},e.allOff=function(){return delete this._events,delete this._onceEvents,this},t})), 1970/*! 1971 * imagesLoaded v5.0.0 1972 * JavaScript is all like "You images are done yet or what?" 1973 * MIT License 1974 */ 1975function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,(function(t,e){let i=t.jQuery,s=t.console;
1975function n(t,e,o){if(!(this instanceof n))return new n(t,e,o);let r=t;var h;("string"==typeof t&&(r=document.querySelectorAll(t)),r)?(this.elements=(h=r,Array.isArray(h)?h:"object"==typeof h&&"number"==typeof h.length?[...h]:[h]),this.options={},"function"==typeof e?o=e:Object.assign(this.options,e),o&&this.on("always",o),this.getImages(),i&&(this.jqDeferred=new i.Deferred),setTimeout(this.check.bind(this))):s.error(`Bad element for imagesLoaded ${r||t}`)}n.prototype=Object.create(e.prototype),n.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)};const o=[1,9,11];n.prototype.addElementImages=function(t){"IMG"===t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);let{nodeType:e}=t;if(!e||!o.includes(e))return;let i=t.querySelectorAll("img");for(let t of i)this.addImage(t);if("string"==typeof this.options.background){let e=t.querySelectorAll(this.options.background);for(let t of e)this.addElementBackgroundImages(t)}};const r=/url\((['"])?(.*?)\1\)/gi;function h(t){this.img=t}function d(t,e){this.url=t,this.element=e,this.img=new Image}return n.prototype.addElementBackgroundImages=function(t){let e=getComputedStyle(t);if(!e)return;let i=r.exec(e.backgroundImage);for(;null!==i;){let s=i&&i[2];s&&this.addBackground(s,t),i=r.exec(e.backgroundImage)}},n.prototype.addImage=function(t){let e=new h(t);this.images.push(e)},n.prototype.addBackground=function(t,e){let i=new d(t,e);this.images.push(i)},n.prototype.check=function(){if(this.progressedCount=0,this.hasAnyBroken=!1,!this.images.length)return void this.complete();let t=(t,e,i)=>{setTimeout((()=>{this.progress(t,e,i)}))};this.images.forEach((function(e){e.once("progress",t),e.check()}))},n.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount===this.images.length&&this.complete(),this.options.debug&&s&&s.log(`progress: ${i}`,t,e)},n.prototype.complete=function(){let t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){let t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},h.prototype=Object.create(e.prototype),h.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.img.crossOrigin&&(this.proxyImage.crossOrigin=this.img.crossOrigin),this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.currentSrc||this.img.src)},h.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},h.prototype.confirm=function(t,e){this.isLoaded=t;let{parentNode:i}=this.img,s="PICTURE"===i.nodeName?i:this.img;this.emitEvent("progress",[this,s,e])},h.prototype.handleEvent=function(t){let e="on"+t.type;this[e]&&this[e](t)},h.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},h.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},h.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype=Object.create(h.prototype),d.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},d.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},n.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&(i=e,i.fn.imagesLoaded=function(t,e){return new n(this,t,e).jqDeferred.promise(i(this))})},n.makeJQueryPlugin(),n}));; 1976/** 1977 * navigation.js 1978 * 1979 * Handles toggling the navigation menu for small screens and enables tab 1980 * support for dropdown menus. 1981 */ 1982( function() { 1983 var container, button, menu, links, subMenus; 1984 1985 container = document.getElementById( 'site-navigation' ); 1986 if ( ! container ) { 1987 return; 1988 } 1989 1990 button = container.getElementsByTagName( 'button' )[0]; 1991 if ( 'undefined' === typeof button ) { 1992 return; 1993 } 1994 1995 menu = container.getElementsByTagName( 'ul' )[0]; 1996 1997 // Hide menu toggle button if menu is empty and return early. 1998 if ( 'undefined' === typeof menu ) { 1999 button.style.display = 'none'; 2000 return; 2001 } 2002 2003 menu.setAttribute( 'aria-expanded', 'false' ); 2004 if ( -1 === menu.className.indexOf( 'nav-menu' ) ) { 2005 menu.className += ' nav-menu'; 2006 } 2007 2008 button.onclick = function() { 2009 if ( -1 !== container.className.indexOf( 'toggled' ) ) { 2010 container.className = container.className.replace( ' toggled', '' ); 2011 button.setAttribute( 'aria-expanded', 'false' ); 2012 menu.setAttribute( 'aria-expanded', 'false' ); 2013 } else {
2014 container.className += ' toggled'; 2015 button.setAttribute( 'aria-expanded', 'true' ); 2016 menu.setAttribute( 'aria-expanded', 'true' ); 2017 } 2018 }; 2019 2020 // Get all the link elements within the menu. 2021 links = menu.getElementsByTagName( 'a' ); 2022 subMenus = menu.getElementsByTagName( 'ul' ); 2023 2024 // Set menu items with submenus to aria-haspopup="true". 2025 for ( var i = 0, len = subMenus.length; i < len; i++ ) { 2026 subMenus[i].parentNode.setAttribute( 'aria-haspopup', 'true' ); 2027 } 2028 2029 // Each time a menu link is focused or blurred, toggle focus. 2030 for ( i = 0, len = links.length; i < len; i++ ) { 2031 links[i].addEventListener( 'focus', toggleFocus, true ); 2032 links[i].addEventListener( 'blur', toggleFocus, true ); 2033 } 2034 2035 /** 2036 * Sets or removes .focus class on an element. 2037 */ 2038 function toggleFocus() { 2039 var self = this; 2040 2041 // Move up through the ancestors of the current link until we hit .nav-menu. 2042 while ( -1 === self.className.indexOf( 'nav-menu' ) ) { 2043 2044 // On li elements toggle the class .focus. 2045 if ( 'li' === self.tagName.toLowerCase() ) { 2046 if ( -1 !== self.className.indexOf( 'focus' ) ) { 2047 self.className = self.className.replace( ' focus', '' ); 2048 } else { 2049 self.className += ' focus'; 2050 } 2051 } 2052 2053 self = self.parentElement; 2054 } 2055 } 2056} )(); 2057; 2058/** 2059 * skip-link-focus-fix.js 2060 * 2061 * Helps with accessibility for keyboard only users. 2062 * 2063 * Learn more: https://git.io/vWdr2 2064 */ 2065( function() { 2066 var is_webkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1, 2067 is_opera = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1, 2068 is_ie = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1; 2069 2070 if ( ( is_webkit || is_opera || is_ie ) && document.getElementById && window.addEventListener ) { 2071 window.addEventListener( 'hashchange', function() { 2072 var id = location.hash.substring( 1 ), 2073 element; 2074 2075 if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) { 2076 return; 2077 } 2078 2079 element = document.getElementById( id ); 2080 2081 if ( element ) { 2082 if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) { 2083 element.tabIndex = -1; 2084 } 2085 2086 element.focus(); 2087 } 2088 }, false ); 2089 } 2090})(); 2091; 2092/*! This file is auto-generated */
vendor: 24,103 bytes, lines 2093-2101
2093/*! 2094 * Masonry PACKAGED v4.2.2 2095 * Cascading grid layout library 2096 * https://masonry.desandro.com 2097 * MIT License 2098 * by David DeSandro 2099 */ 2100 2101!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(o&&o.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,n,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=parseFloat(n),s=parseFloat(o),a=this.layout.size;-1!=n.indexOf("%")&&(r=r/100*a.width),-1!=o.indexOf("%")&&(s=s/100*a.height),r=isNaN(r)?0:r,s=isNaN(s)?0:s,r-=e?a.paddingLeft:a.paddingRight,s-=i?a.paddingTop:a.paddingBottom,this.position.x=r,this.position.y=s},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),o&&!this.isTransitioning)return void this.layoutPosition();var r=t-i,s=e-n,a={};a.transform=this.getTranslate(r,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});
2101; 2102/** 2103 * global.js 2104 * 2105 * General JavaScript used throughout the theme. 2106 * 2107 */ 2108 2109( function( $ ) { 2110 2111 /** 2112 * 2113 * Slideshow magic! 2114 * 2115 */ 2116 2117 var $slideCount = $(".slides").find("li").length; 2118 2119 $( '#featured-slideshow .wrap .slideshow' ).flexslider( { 2120 animation: 'slide', 2121 directionNav: false, 2122 } ); 2123 2124 /* wrapping the dot nav in a div, and sticking the prev/next links in there for placement */ 2125 $( '.flex-control-nav' ).wrap( '<div class="slideshow-navigation"></div>' ); 2126 2127 // make sure there's more than one slide before appending prev/next links 2128 if ( $slideCount > 1 ) { 2129 $( '.slideshow-navigation' ).append( '<span class="next-slide"><span class="screen-reader-text">' + toujours_script_strings.next_link + '</span></span>' ); 2130 $( '.slideshow-navigation' ).prepend( '<span class="prev-slide"><span class="screen-reader-text">' + toujours_script_strings.previous_link + '</span></span>' ); 2131 2132 /* ... then add some click events to those new buttons */ 2133 $( 'body' ).on( 'click', '.prev-slide', function() { 2134 $('#featured-slideshow .wrap .slideshow').flexslider('prev'); 2135 } ); 2136 2137 $( 'body' ).on( 'click', '.next-slide', function() { 2138 $('#featured-slideshow .wrap .slideshow').flexslider('next'); 2139 } ); 2140 } 2141 2142 /* Make it possible to click the whole slide to get ot the post */ 2143 $( '.slide' ).each( function() { 2144 // make sure the page isn't loaded in an iframe, like in the Customizer 2145 if ( self == top ) { 2146 var $link = $( '.posted-on a', this ).attr( 'href' ); 2147 $( this ).css( 'cursor', 'pointer' ).click( function(){ 2148 window.location = $link; 2149 }); 2150 } 2151 } ); 2152 /** 2153 * Search 2154 * Adding some JS so the faux button has a hover state 2155 */ 2156 $( '.search-submit' ).mouseenter( function() { 2157 $( this ).parent().addClass( 'hover-button' ); 2158 } ).mouseleave( function() { 2159 $( this ).parent().removeClass( 'hover-button' ); 2160 } ); 2161 2162 /** 2163 * Masonry for footer widgets 2164 */ 2165 2166 var ltr = true; 2167 if ( $( 'html' ).attr( 'dir' ) == 'rtl') { 2168 ltr = false;
2169 } 2170 2171 function footerMasonry() { 2172 var $footerContainer = $( '#footer-widgets .grid-layout' ); 2173 $footerContainer.imagesLoaded( function() { 2174 $footerContainer.masonry( { 2175 itemSelector: '.widget', 2176 columnWidth: '#footer-widgets aside', 2177 isOriginLeft: ltr, 2178 gutter: 30, 2179 } ); 2180 } ); 2181 } 2182 2183 /** 2184 * Masonry for Guestbook template 2185 */ 2186 function guestbookMasonry() { 2187 var $guestbookContainer = $( '.page-template-guestbook #comments .comment-list'); 2188 $guestbookContainer.imagesLoaded( function() { 2189 $guestbookContainer.masonry( { 2190 itemSelector: '.comment', 2191 isOriginLeft: ltr, 2192 gutter: 30, 2193 } ); 2194 } ); 2195 } 2196 2197 /** 2198 * Add class to tables to help make them responsive 2199 */ 2200 $( 'table' ).addClass( 'table' ); 2201 $( 'table' ).wrap( '<div class="table-responsive" />' ); 2202 2203 var infiniteCount = 0; 2204 2205 $( document.body ).on( 'post-load', function() { 2206 infiniteCount = infiniteCount + 1; 2207 var infiniteItems = jQuery( '.infinite-wrap.infinite-view-' + infiniteCount ); 2208 infiniteItems.find( 'table' ).addClass( 'table' ).wrap( '<div class="table-responsive" />' ); 2209 }); 2210 2211 /* Functions to fire on pageload */ 2212 $( window ).load( function() { 2213 2214 guestbookMasonry(); 2215 footerMasonry(); 2216 2217 // re-fire widgets after a delay, for widgets loaded via JS 2218 setTimeout( footerMasonry, 2500 ); 2219 } ); 2220 2221} )( jQuery ); 2222; 2223!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JetpackScriptDataModule=t():e.JetpackScriptDataModule=t()}(globalThis,()=>(()=>{"use strict";var e={729(e,t,r){r.d(t,{$8:()=>n.$8,IT:()=>n.IT,KS:()=>n.KS,L2:()=>n.L2,Sy:()=>n.Sy,au:()=>n.au,d_:()=>n.d_,e5:()=>n.e5,hT:()=>n.hT,lI:()=>n.lI,mH:()=>n.mH,oQ:()=>n.oQ,sV:()=>n.sV});var n=r(336)},336(e,t,r){function n(){return window.JetpackScriptData}function o(){return n()?.site}function i(e=""){return`${n()?.site.admin_url}${e}`}function u(e=""){return i(`admin.php?page=jetpack${e}`)}function a(e=""){return i(`admin.php?page=my-jetpack${e}`)}function c(){return n()?.site.plan?.features?.active??[]}function s(e){return-1!==c().indexOf(e)}function p(){return"wpcom"===n()?.site?.host}function f(){return"woa"===n()?.site?.host}function d(){return n()?.site?.is_wpcom_platform}function l(){return"unknown"===n()?.site?.host}function m(){return p()?"simple":f()?"woa":"jetpack"}function S(e){return n()?.user.current_user.capabilities[e]}r.d(t,{$8:()=>d,IT:()=>s,KS:()=>m,L2:()=>l,Sy:()=>p,au:()=>n,d_:()=>S,e5:()=>a,hT:()=>i,lI:()=>f,mH:()=>c,oQ:()=>u,sV:()=>o})}};const t={};function r(n){const o=t[n];if(void 0!==o)return o.exports;const i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.hasOwn(e,t),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let n={};r.r(n),r.d(n,{currentUserCan:()=>o.d_,getActiveFeatures:()=>o.mH,getAdminUrl:()=>o.hT,getJetpackAdminPageUrl:()=>o.oQ,getMyJetpackUrl:()=>o.e5,getScriptData:()=>o.au,getSiteData:()=>o.sV,getSiteType:()=>o.KS,isJetpackSelfHostedSite:()=>o.L2,isSimpleSite:()=>o.Sy,isWoASite:()=>o.lI,isWpcomPlatformSite:()=>o.$8,siteHasFeature:()=>o.IT});var o=r(729);return n})());; 2224!function(){"use strict";var e,t={noop:function(){},texturize:function(e){return(e=(e=(e=(e+="").replace(/'/g,"’").replace(/'/g,"’")).replace(/"/g,"”").replace(/"/g,"”").replace(/"/g,"”").replace(/[\u201D]/g,"”")).replace(/([\w]+)=&#[\d]+;(.+?)&#[\d]+;/g,'$1="$2"')).trim()},applyReplacements:function(e,t){if(e)return t?e.replace(/{(\d+)}/g,function(e,r){return void 0!==t[r]?t[r]:e}):e},getBackgroundImage:function(e){var t=document.createElement("canvas"),r=t.getContext&&t.getContext("2d");if(e){r.filter="blur(20px) ",r.drawImage(e,0,0);var o=t.toDataURL("image/png");return t=null,o}}},r=function(){function e(e,t){return Element.prototype.matches?e.matches(t):Element.prototype.msMatchesSelector?e.msMatchesSelector(t):void 0}function r(e,t,r,o){if(!e)return o();e.jpCarouselCancelFade&&e.jpCarouselCancelFade(),e.classList.remove("jp-carousel-fade"),e.style.removeProperty("display"),e.style.opacity=t,e.style.pointerEvents="none",e.offsetWidth,e.classList.add("jp-carousel-fade"),e.style.opacity=r;var a=1e3*parseFloat(getComputedStyle(e).transitionDuration)||0,n=setTimeout(function(){e.jpCarouselCancelFade=null,e.style.removeProperty("pointer-events"),o()},a+50);e.jpCarouselCancelFade=function(){clearTimeout(n),e.jpCarouselCancelFade=null}}return{closest:function(t,r){if(t.closest)return t.closest(r);var o=t;do{if(e(o,r))return o;o=o.parentElement||o.parentNode}while(null!==o&&1===o.nodeType);return null},matches:e,hide:function(e){e&&(e.style.display="none")},show:function(e){e&&(e.style.display="block")},fadeIn:function(e,o){r(e,0,1,o=o||t.noop)},fadeOut:function(e,o){o=o||t.noop,r(e,1,0,function(){e&&(e.style.display="none"),o()})},scrollToElement:function(e,t,r){if(!e||!t)return r?r():void 0;var o=t.querySelector(".jp-carousel-info-extra");o&&(o.style.minHeight=window.innerHeight-64+"px");var a=!0,n=Date.now(),i=t.scrollTop,l=Math.max(0,e.offsetTop-Math.max(0,window.innerHeight-function(e){var t=e.querySelector(".jp-carousel-info-footer"),r=e.querySelector(".jp-carousel-info-extra"),o=e.querySelector(".jp-carousel-info-content-wrapper");if(t&&r&&o){var a=window.getComputedStyle(r),n=parseInt(a.paddingTop,10)+parseInt(a.paddingBottom,10);return n=isNaN(n)?0:n,o.offsetHeight+t.offsetHeight+n}return 0}(t)))-t.scrollTop;function s(){a=!1}
2224l=Math.min(l,t.scrollHeight-window.innerHeight),t.addEventListener("wheel",s),function e(){var c,u=Date.now(),d=(c=(u-n)/300)<.5?2*c*c:1-Math.pow(-2*c+2,2)/2,m=(d=d>1?1:d)*l;if(t.scrollTop=i+m,u<=n+300&&a)return requestAnimationFrame(e);r&&r(),o&&(o.style.minHeight=""),a=!1,t.removeEventListener("wheel",s)}()},getJSONAttribute:function(e,t){if(e&&e.hasAttribute(t))try{return JSON.parse(e.getAttribute(t))}catch{return}},convertToPlainText:function(e){var t=document.createElement("div");return t.textContent=e,t.innerHTML},stripHTML:function(e){var t=document.createElement("div");return t.innerHTML=e.replace(/<[^>]*>?/gm,""),t.textContent},emitEvent:function(e,t,r){var o;try{o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:r||null})}catch{(o=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,r||null)}e.dispatchEvent(o)},isTouch:function(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch},prefersReducedMotion:function(){return!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}}}();function o(){var o,a,n,i,l={},s={},c="",u=!1,d="div.gallery, div.tiled-gallery, ul.wp-block-gallery, ul.blocks-gallery-grid, figure.wp-block-gallery.has-nested-images, div.wp-block-jetpack-tiled-gallery, a.single-image-gallery",m=".gallery-item, .tiled-gallery-item, .blocks-gallery-item, .tiled-gallery__item",p=m+", .wp-block-image",g={},h="undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.stat?wpcom.carousel.stat:t.noop,f="undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.pageview?wpcom.carousel.pageview:t.noop;function v(t){if(!u)switch(t.which){case 38:t.preventDefault(),g.overlay.scrollTop-=100;break;case 40:t.preventDefault(),g.overlay.scrollTop+=100;break;case 39:t.preventDefault(),e.slideNext();break;case 37:case 8:t.preventDefault(),e.slidePrev();break;case 27:t.preventDefault(),k()}}function y(){u=!0}function w(){u=!1}function S(e){e.role="button",e.tabIndex=0,e.ariaLabel=jetpackCarouselStrings.image_label}function j(){g.overlay||(g.overlay=document.querySelector(".jp-carousel-overlay"),g.container=g.overlay.querySelector(".jp-carousel-wrap"),g.gallery=g.container.querySelector(".jp-carousel"),g.info=g.overlay.querySelector(".jp-carousel-info"),g.caption=g.info.querySelector(".jp-carousel-caption"),g.commentField=g.overlay.querySelector("#jp-carousel-comment-form-comment-field"),g.emailField=g.overlay.querySelector("#jp-carousel-comment-form-email-field"),g.authorField=g.overlay.querySelector("#jp-carousel-comment-form-author-field"),g.urlField=g.overlay.querySelector("#jp-carousel-comment-form-url-field"),window.innerWidth<=760&&Math.round(window.innerWidth/760*110)<40&&r.isTouch(),[g.commentField,g.emailField,g.authorField,g.urlField].forEach(function(e){e&&(e.addEventListener("focus",y),e.addEventListener("blur",w))}),g.overlay.addEventListener("click",function(e){var t,o,a=e.target,n=!!r.closest(a,".jp-carousel-close-hint"),i=!!window.matchMedia("(max-device-width: 760px)").matches;a===g.overlay?i||k():n?k():a.classList.contains("jp-carousel-image-download")?h("download_original_click"):a.classList.contains("jp-carousel-comment-login")?(t=g.currentSlide,o=t?t.attrs.attachmentId:"0",window.location.href=jetpackCarouselStrings.login_url+"%23jp-carousel-"+o):r.closest(a,"#jp-carousel-comment-form-container")?function(e){var t=e.target,o=r.getJSONAttribute(g.container,"data-carousel-extra")||{},a=g.currentSlide.attrs.attachmentId,n=document.querySelector("#jp-carousel-comment-form-submit-and-info-wrapper"),i=document.querySelector("#jp-carousel-comment-form-spinner"),s=document.querySelector("#jp-carousel-comment-form-button-submit"),c=document.querySelector("#jp-carousel-comment-form");if(g.commentField&&g.commentField.getAttribute("id")===t.getAttribute("id"))y(),r.show(n);else if(r.matches(t,'input[type="submit"]')){e.preventDefault(),e.stopPropagation(),r.show(i),c.classList.add("jp-carousel-is-disabled");var u={action:"post_attachment_comment",nonce:jetpackCarouselStrings.nonce,blog_id:o.blog_id,id:a,comment:g.commentField.value};if(!u.comment.length)return void b(jetpackCarouselStrings.no_comment_text,!1);if(1!==Number(jetpackCarouselStrings.is_logged_in)&&(u.email=g.emailField.value,u.author=g.authorField.value,u.url=g.urlField.value,1===Number(jetpackCarouselStrings.require_name_email))){if(!u.email.length||!u.email.match("@"))return void b(jetpackCarouselStrings.no_comment_email,!1);if(!u.author.length)return void b(jetpackCarouselStrings.no_comment_author,!1)}var d=new XMLHttpRequest;d.open("POST",jetpackCarouselStrings.ajaxurl,!0),d.setRequestHeader("X-Requested-With","XMLHttpRequest"),d.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),d.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE&&this.status>=200&&this.status<300){var e;try{e=JSON.parse(this.response)}catch{return void b(jetpackCarouselStrings.comment_post_error,!1)}if("approved"===e.comment_status){b(jetpackCarouselStrings.comment_approved,!0);var t=function(e){for(var t=0;t<g.slides.length;t++)if(g.slides[t].attrs.attachmentId===e)return g.slides[t];return null}(a);t&&(t.attrs.commentsCount=(parseInt(t.attrs.commentsCount,10)||0)+1)}else"unapproved"===e.comment_status?b(jetpackCarouselStrings.comment_unapproved,!0):b(jetpackCarouselStrings.comment_post_error,!1);W(),delete l[a],_(a,void 0,!0),s.value=jetpackCarouselStrings.post_comment,r.hide(i),c.classList.remove("jp-carousel-is-disabled")}else b(jetpackCarouselStrings.comment_post_error,!1)};var m=[];for(var p in u)if(p){var h=encodeURIComponent(p)+"="+encodeURIComponent(u[p]);m.push(h.replace(/%20/g,"+"))}var f=m.join("&");d.send(f)}}(e):(r.closest(a,".jp-carousel-photo-icons-container")||a.classList.contains("jp-carousel-photo-title"))&&function(e){e.preventDefault();var t=e.target,o=g.info.querySelector(".jp-carousel-info-extra"),a=g.info.querySelector(".jp-carousel-image-meta"),n=g.info.querySelector(".jp-carousel-comments-wrapper"),i=g.info.querySelector(".jp-carousel-icon-info"),s=g.info.querySelector(".jp-carousel-icon-comments");function c(){s&&s.classList.remove("jp-carousel-selected"),i.classList.toggle("jp-carousel-selected"),n&&n.classList.remove("jp-carousel-show"),a&&(a.classList.toggle("jp-carousel-show"),a.classList.contains("jp-carousel-show")?o.classList.add("jp-carousel-show"):o.classList.remove("jp-carousel-show"))}function u(){if(i&&i.classList.remove("jp-carousel-selected"),s.classList.toggle("jp-carousel-selected"),a&&a.classList.remove("jp-carousel-show"),n)if(n.classList.toggle("jp-carousel-show"),n.classList.contains("jp-carousel-show")){o.classList.add("jp-carousel-show");var e=g.currentSlide;if(e){var t=l[e.attrs.attachmentId];t?t.hasMore&&T(e.attrs.attachmentId,t.nextOffset):_(e.attrs.attachmentId)}}else o.classList.remove("jp-carousel-show")}(r.closest(t,".jp-carousel-icon-info")||t.classList.contains("jp-carousel-photo-title"))&&(a&&a.classList.contains("jp-carousel-show")?r.scrollToElement(g.overlay,g.overlay,c):(c(),r.scrollToElement(g.info,g.overlay))),r.closest(t,".jp-carousel-icon-comments")&&(n&&n.classList.contains("jp-carousel-show")?r.scrollToElement(g.overlay,g.overlay,u):(u(),r.scrollToElement(g.info,g.overlay)))}(e)}),window.addEventListener("keydown",v),g.overlay.addEventListener("jp_carousel.afterOpen",function(){w(),g.slides.length<=1||(g.slides.length<=5?r.show(g.info.querySelector(".jp-swiper-pagination")):r.show(g.info.querySelector(".jp-carousel-pagination")))}),g.overlay.addEventListener("jp_carousel.beforeClose",function(){y(),document.documentElement.style.removeProperty("height"),e&&e.enable(),r.hide(g.info.querySelector(".jp-swiper-pagination")),r.hide(g.info.querySelector(".jp-carousel-pagination"))}),g.overlay.addEventListener("jp_carousel.afterClose",function(){window.history.pushState?history.pushState("",document.title,window.location.pathname+window.location.search):window.location.href="",c="",g.isOpen=!1}),g.overlay.addEventListener("touchstart",function(e){e.touches.length>1&&e.preventDefault()}))}function b(e,t){var o=g.overlay.querySelector("#jp-carousel-comment-post-results"),a="jp-carousel-comment-post-"+(t?"success":"error");o.innerHTML='<span class="'+a+'">'+e+"</span>",r.hide(g.overlay.querySelector("#jp-carousel-comment-form-spinner")),g.overlay.querySelector("#jp-carousel-comment-form").classList.remove("jp-carousel-is-disabled"),r.show(o)}function L(){var e=document.querySelectorAll("a img[data-attachment-id]");Array.prototype.forEach.call(e,function(e){var t=e.parentElement,o=t.parentElement;if(!o.classList.contains("gallery-icon")&&!r.closest(o,m)&&t.hasAttribute("href")){var a=!1;t.getAttribute("href").split("?")[0]===e.getAttribute("data-orig-file").split("?")[0]&&1===Number(jetpackCarouselStrings.single_image_gallery_media_file)&&(a=!0),t.getAttribute("href")===e.getAttribute("data-permalink")&&(a=!0),a&&(S(e),t.classList.add("single-image-gallery"),t.setAttribute("data-carousel-extra",JSON.stringify({blog_id:Number(jetpackCarouselStrings.blog_id)})))}})}function x(t,r){g.isOpen?(C(r),e.slideTo(r+1)):z(t,{startIndex:r})}function C(e){(!e||e<0||e>g.slides.length)&&(e=0),g.currentSlide=g.slides[e];var a,n,i=g.currentSlide,s=i.attrs.attachmentId;M(g.slides[e]),function(e){var t=[],r=g.slides.length;if(r>1){var o=e>0?e-1:r-1;t.push(o);var a=e<r-1?e+1:0;t.push(a)}t.forEach(function(e){var t=g.slides[e];t&&(M(t),1!==Number(jetpackCarouselStrings.display_background_image)||t.backgroundImage||F(t))})}(e),1!==Number(jetpackCarouselStrings.display_background_image)||g.slides[e].backgroundImage||F(g.slides[e]),r.hide(g.caption),function(e){var t,o,a,n,i,l,s;if(n=g.overlay.querySelector(".jp-carousel-photo-caption"),i=g.overlay.querySelector(".jp-carousel-caption"),l=g.overlay.querySelector(".jp-carousel-photo-title"),s=g.overlay.querySelector(".jp-carousel-photo-description"),r.hide(n),r.hide(i),r.hide(l),r.hide(s),t=A(e.caption)||"",o=A(e.title)||"",a=A(e.desc)||"",(t||o||a)&&(t&&(n.innerHTML=t,i.innerHTML=t,r.show(n),r.show(i)),r.stripHTML(t)===r.stripHTML(o)&&(o=""),r.stripHTML(t)===r.stripHTML(a)&&(a=""),r.stripHTML(o)===r.stripHTML(a)&&(a=""),a&&(s.innerHTML=a,r.show(s),o||t||(n.textContent=r.stripHTML(a),r.show(n))),o)){var c=r.stripHTML(o);l.textContent=c,t||(n.textContent=c,i.textContent=c,r.show(n)),r.show(l)}}
2224({caption:i.attrs.caption,title:i.attrs.title,desc:i.attrs.desc}),function(e){if(!e||1!==Number(jetpackCarouselStrings.display_exif))return!1;var t=g.info.querySelector(".jp-carousel-image-meta");if(!t)return!1;var r="";for(var o in e){var a=e[o],n=jetpackCarouselStrings.meta_data||[];if(0!==parseFloat(a)&&a.length&&-1!==n.indexOf(o)){switch(o){case"focal_length":a+="mm";break;case"shutter_speed":a=E(a);break;case"aperture":a="f/"+a}r+="<li><h5>"+jetpackCarouselStrings[o]+"</h5>"+a+"</li>"}}var i=t.querySelector("ul.jp-carousel-image-exif");if(""!==r){if(!i){(i=document.createElement("ul")).className="jp-carousel-image-exif";var l=t.querySelector(".jp-carousel-title-and-caption");l&&l.nextSibling?t.insertBefore(i,l.nextSibling):t.insertBefore(i,t.firstChild)}i.innerHTML=r,i.style.removeProperty("display")}else i&&i.parentNode.removeChild(i)}(g.slides[e].attrs.imageMeta),function(e){if(!e)return!1;var r,o=[e.attrs.origWidth,e.attrs.origHeight],a=document.createElement("a");a.href=e.attrs.src.replace(/\?.+$/,""),r=null!==a.hostname.match(/^i[\d]{1}\.wp\.com$/i)?a.href:e.attrs.origFile.replace(/\?.+$/,"");var n=g.info.querySelector(".jp-carousel-download-text"),i=g.info.querySelector(".jp-carousel-image-download");n.innerHTML=t.applyReplacements(jetpackCarouselStrings.download_original,o),i.setAttribute("href",r),i.style.removeProperty("display")}(i),1===Number(jetpackCarouselStrings.display_comments)&&(a=g.slides[e].attrs.commentsOpened,n=g.info.querySelector("#jp-carousel-comment-form-container"),1===parseInt(a,10)?r.fadeIn(n):r.fadeOut(n),function(e){var t=e.attrs.attachmentId,a=g.info.querySelector(".jp-carousel-comments"),n=l[t];if(clearInterval(o),r.hide(g.info.querySelector("#jp-carousel-comments-loading")),n)return a.innerHTML=n.html,H(n.count),r.show(a),void(n.hasMore&&I()&&T(t,n.nextOffset));a.innerHTML="",r.hide(a),H(parseInt(e.attrs.commentsCount,10)||0),I()&&_(t)}(i),r.hide(g.info.querySelector("#jp-carousel-comment-post-results")));var u=g.info.querySelector(".jp-carousel-pagination");if(u&&g.slides.length>5){var d=e+1;u.innerHTML="<span>"+d+" / "+g.slides.length+"</span>"}jetpackCarouselStrings.stats&&g.isOpen&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?"+jetpackCarouselStrings.stats+"&post="+encodeURIComponent(s)+"&rand="+Math.random()),g.isOpen&&f(s),c="#jp-carousel-"+s,window.location.hash=c}function k(){document.body.style.overflow=a,document.documentElement.style.overflow=n,W(),y(),r.emitEvent(g.overlay,"jp_carousel.beforeClose"),window.scrollTo(window.scrollX||window.pageXOffset||0,i||0),g.isOpen=!1,e.destroy(),g.slides=[],l={},s={},g.currentSlide=void 0,g.gallery.innerHTML="",r.fadeOut(g.overlay,function(){r.emitEvent(g.overlay,"jp_carousel.afterClose")})}function q(e){if("object"!=typeof e&&(e={}),void 0===e.origFile)return"";if(void 0===e.origWidth||void 0===e.maxWidth)return e.origFile;if(!e.largeFile)return e.origFile;var t=document.createElement("a");t.href=e.largeFile;var r=/^i[0-2]\.wp\.com$/i.test(t.hostname),o=function(e,t,r){var o,a=r?e.replace(/.*=([\d]+%2C[\d]+).*$/,"$1"):e.replace(/.*-([\d]+x[\d]+)\..+$/,"$1");return"9999"===(o=a!==e?r?a.split("%2C"):a.split("x"):[t,0])[0]&&(o[0]="0"),"9999"===o[1]&&(o[1]="0"),o}(e.largeFile,e.origWidth,r),a=parseInt(o[0],10),n=parseInt(o[1],10);e.origMaxWidth=e.maxWidth,e.origMaxHeight=e.maxHeight,void 0!==window.devicePixelRatio&&window.devicePixelRatio>1&&(e.maxWidth=e.maxWidth*window.devicePixelRatio,e.maxHeight=e.maxHeight*window.devicePixelRatio);var i=e.zoomHeadroom||1;if(i>1&&(e.maxWidth=e.maxWidth*i,e.maxHeight=e.maxHeight*i),a>=e.maxWidth||n>=e.maxHeight)return e.largeFile;if(r){if(-1===e.largeFile.lastIndexOf("?"))return e.largeFile;var l=function(e){var t;try{t=new URL(e)}catch(t){return e}var r=["quality","ssl","filter","brightness","contrast","colorize","smooth"],o=Array.from(t.searchParams.entries());return t.search="",o.forEach(([e,o])=>{r.includes(e)&&t.searchParams.append(e,o)}),t}(e.largeFile);return(e.origWidth>e.maxWidth||e.origHeight>e.maxHeight)&&(e.origMaxWidth=e.maxWidth,e.origMaxHeight=e.maxHeight,l.searchParams.set("fit",e.origMaxWidth+","+e.origMaxHeight)),l.toString()}return e.origFile}function E(e){return e>=1?Math.round(10*e)/10+"s":"1/"+Math.round(1/e)+"s"}
2224function A(e){return!e.match(" ")&&e.match("_")?"":e}function I(){var e=g.info.querySelector(".jp-carousel-comments-wrapper");return!!e&&e.classList.contains("jp-carousel-show")}function H(e){var t=g.info.querySelector(".jp-carousel-icon-comments .jp-carousel-has-comments-indicator");t&&(e>0?(t.innerText=e,t.classList.add("jp-carousel-show")):t.classList.remove("jp-carousel-show"))}function T(e,t){clearInterval(o),o=setInterval(function(){g.container.scrollTop+150>window.innerHeight&&(clearInterval(o),_(e,t))},300)}function _(e,t,a){var n=void 0===t;if(clearInterval(o),e&&g.currentSlide&&g.currentSlide.attrs.attachmentId===e&&(!s[e]||a)){(!t||t<1)&&(t=0);var i=g.info.querySelector(".jp-carousel-comments"),c=g.info.querySelector("#jp-carousel-comments-loading");r.show(c),n&&(r.hide(i),i.innerHTML="");var u=new XMLHttpRequest;s[e]=u;var d=function(){return s[e]===u},m=jetpackCarouselStrings.ajaxurl+"?action=get_attachment_comments&nonce="+jetpackCarouselStrings.nonce+"&id="+e+"&offset="+t;u.open("GET",m),u.setRequestHeader("X-Requested-With","XMLHttpRequest");var p=function(){r.fadeIn(i),r.fadeOut(c)};u.onload=function(){if(d()&&(delete s[e],g.currentSlide&&g.currentSlide.attrs.attachmentId===e)){var o,a=u.status>=200&&u.status<300;try{o=JSON.parse(u.responseText)}catch{}if(a&&o&&Array.isArray(o)){n&&(i.innerHTML="");for(var m=0;m<o.length;m++){var h=o[m];if(!i.querySelector("#jp-carousel-comment-"+h.id)){var f=document.createElement("div");f.classList.add("jp-carousel-comment"),f.setAttribute("id","jp-carousel-comment-"+h.id),f.innerHTML='<div class="comment-gravatar">'+h.gravatar_markup+'</div><div class="comment-content"><div class="comment-author">'+h.author_markup+'</div><div class="comment-date">'+h.date_gmt+"</div>"+h.content+"</div>",i.appendChild(f)}}var v=o.length>=10,y=t+10;v&&T(e,y);var w=i.querySelectorAll(".jp-carousel-comment").length,S=Math.max(parseInt(g.currentSlide.attrs.commentsCount,10)||0,w);o.length>0&&(r.show(i),H(S)),l[e]={html:i.innerHTML,count:S,hasMore:v,nextOffset:y},r.hide(c)}else p()}},u.onerror=function(){d()&&(delete s[e],g.currentSlide&&g.currentSlide.attrs.attachmentId===e&&p())},u.send()}}function M(e){var t=e.attrs,r=e.el.querySelector("img");if(!r.hasAttribute("data-loaded"))if(r.setAttribute("itemprop","image"),r.setAttribute("data-loaded",1),t.previewImage&&t.previewImage!==t.src){r.src=t.previewImage,r.style.filter="blur(8px)";var o=new window.Image;o.addEventListener("load",function(){r.hasAttribute("data-zoom-loaded")||(r.src=t.src),r.style.filter=""},{once:!0}),o.addEventListener("error",function(){r.style.filter=""},{once:!0}),o.src=t.src}else r.src=t.src}function F(e){var t=e.attrs.originalElement;if(t)if(t.complete&&0!==t.naturalHeight)O(e,t);else{var r=function(){t.removeEventListener("error",o),O(e,t)},o=function(){t.removeEventListener("load",r)};t.addEventListener("load",r,{once:!0}),t.addEventListener("error",o,{once:!0})}}function O(e,r){var o=t.getBackgroundImage(r);o&&(e.backgroundImage=o,e.el.style.backgroundImage="url("+o+")",e.el.style.backgroundSize="cover",e.el.style.backgroundPosition="center")}function W(){g.commentField&&(g.commentField.value="")}function N(e,o){g.slides=[];var a={width:window.innerWidth,height:window.innerHeight-64};0!==o&&null!==e[o].getAttribute("data-gallery-src")&&((new Image).src=e[o].getAttribute("data-gallery-src")),Array.prototype.forEach.call(e,function(e,o){var n=r.closest(e,"a"),i=e.getAttribute("data-orig-file")||e.getAttribute("src-orig"),l=e.getAttribute("data-attachment-id")||e.getAttribute("data-id")||"0",s=document.querySelector('img[data-attachment-id="'+l+'"] + figcaption');s=s?s.innerHTML:e.getAttribute("data-image-caption");var c={originalElement:e,attachmentId:l,commentsOpened:e.getAttribute("data-comments-opened")||"0",commentsCount:e.getAttribute("data-comments-count")||"0",imageMeta:r.getJSONAttribute(e,"data-image-meta")||{},title:e.getAttribute("data-image-title")||"",desc:e.getAttribute("data-image-description")||"",largeFile:e.getAttribute("data-large-file")||"",origFile:i||"",thumbSize:{width:e.naturalWidth,height:e.naturalHeight},caption:s||"",permalink:n&&n.getAttribute("href"),src:i||e.getAttribute("src")||""},u=r.closest(e,".tiled-gallery-item"),d=u&&u.querySelector(".tiled-gallery-caption"),m=d&&d.innerHTML;m&&(c.caption=m);var p=function(e){var t=e.getAttribute("data-orig-size")||"";if(t){var r=t.split(",");return{width:parseInt(r[0],10),height:parseInt(r[1],10)}}return{width:e.getAttribute("data-original-width")||e.getAttribute("width")||void 0,height:e.getAttribute("data-original-height")||e.getAttribute("height")||void 0}}(e);if(c.origWidth=p.width||c.thumbSize.width,c.origHeight=p.height||c.thumbSize.height,"undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.generateImgSrc)c.src=wpcom.carousel.generateImgSrc(e,a);else{var h=function(e){return{origFile:c.src,origWidth:c.origWidth,origHeight:c.origHeight,maxWidth:a.width,maxHeight:a.height,largeFile:c.largeFile,zoomHeadroom:e}};c.zoomSrc=q(h(2)),c.src=q(h(1))}if(e.setAttribute("data-gallery-src",c.src),"0"!==c.attachmentId){c.title=t.texturize(c.title),c.desc=t.texturize(c.desc),c.caption=t.texturize(c.caption);var f=new Image,v=document.createElement("div");v.classList.add("swiper-slide"),v.setAttribute("itemprop","associatedMedia"),v.setAttribute("itemscope",""),v.setAttribute("itemtype","https://schema.org/ImageObject");var y=document.createElement("div");y.classList.add("swiper-zoom-container"),g.gallery.appendChild(v),v.appendChild(y),y.appendChild(f),v.setAttribute("data-attachment-id",c.attachmentId),v.setAttribute("data-permalink",c.permalink),v.setAttribute("data-orig-file",c.origFile),c.previewImage=e.currentSrc||e.getAttribute("src")||"";var w={el:v,attrs:c,index:o};g.slides.push(w)}})}function z(e,t){if(!window.JetpackSwiper){var o=document.querySelector("#jp-carousel-loading-overlay");r.show(o);var a=document.createElement("script");return a.id="jetpack-carousel-swiper-js",a.src=window.jetpackSwiperLibraryPath.url,a.async=!0,a.onload=function(){r.hide(o),R(e,t)},a.onerror=function(){r.hide(o)},void document.head.appendChild(a)}R(e,t)}function R(t,o){var c,u={imgSelector:".gallery-item [data-attachment-id], .tiled-gallery-item [data-attachment-id], img[data-attachment-id], img[data-id]",startIndex:0},d=r.getJSONAttribute(t,"data-carousel-extra");if(!d)return;const m=t.querySelectorAll(u.imgSelector);if(m.length&&(j(),!g.isOpen)){for(var p in g.isOpen=!0,a=getComputedStyle(document.body).overflow,document.body.style.overflow="hidden",n=getComputedStyle(document.documentElement).overflow,document.documentElement.style.overflow="hidden",i=window.scrollY||window.pageYOffset||0,g.container.setAttribute("data-carousel-extra",JSON.stringify(d)),h(["open","view_image"]),o||{})u[p]=o[p];-1===u.startIndex&&(u.startIndex=0),r.emitEvent(g.overlay,"jp_carousel.beforeOpen"),g.gallery.innerHTML="",l={},s={},g.overlay.style.opacity=1,g.overlay.style.display="block",N(m,u.startIndex),(e=new window.JetpackSwiper(".jp-carousel-swiper-container",{centeredSlides:!0,speed:r.prefersReducedMotion()?0:250,zoom:!0,loop:g.slides.length>1,enabled:g.slides.length>1,pagination:{el:".jp-swiper-pagination",clickable:!0},navigation:{nextEl:".jp-swiper-button-next",prevEl:".jp-swiper-button-prev"},initialSlide:u.startIndex,on:{init:function(){C(u.startIndex)}},preventClicks:!1,preventClicksPropagation:!1,preventInteractionOnTransition:!r.isTouch(),threshold:5})).on("slideChange",function(e){g.isOpen&&(C(e.realIndex),g.overlay.classList.remove("jp-carousel-hide-control
2224s"))}),e.on("zoomChange",function(e,t){t>1&&(function(e){if(e&&e.attrs.zoomSrc&&e.attrs.zoomSrc!==e.attrs.src){var t=e.el.querySelector("img");t&&!t.hasAttribute("data-zoom-loaded")&&(t.setAttribute("data-zoom-loaded",1),t.src=e.attrs.zoomSrc)}}(g.currentSlide),g.overlay.classList.add("jp-carousel-hide-controls")),1===t&&g.overlay.classList.remove("jp-carousel-hide-controls")}),e.on("doubleTap",function(e){if(clearTimeout(c),1===e.zoom.scale)var t=setTimeout(function(){g.overlay.classList.remove("jp-carousel-hide-controls"),clearTimeout(t)},150)}),e.on("tap",function(){e.zoom.scale>1&&(c=setTimeout(function(){g.overlay.classList.toggle("jp-carousel-hide-controls")},150))}),r.fadeIn(g.overlay,function(){r.emitEvent(g.overlay,"jp_carousel.afterOpen")})}}function P(e){if("click"!==e.type){if("keydown"===e.type){const t=document.activeElement.parentElement,r=t&&t.classList.contains("tiled-gallery__item");" "!==e.key&&"Enter"!==e.key||!r||$(e)}}else $(e)}function D(e){return(e||"").split("?")[0].replace(/\/$/,"")}function J(e){"A"===e.tagName&&(e=e.querySelector("img")||e);var t=e.parentElement,o=t?t.parentElement:null,a=null;if(o&&o.classList.contains("wp-block-image")?a=t.getAttribute("href"):t&&t.classList.contains("wp-block-image")&&t.querySelector(":scope > a")&&(a=t.querySelector(":scope > a").getAttribute("href")),a){var n=D(a),i=D(e.getAttribute("data-orig-file")),l=D(e.getAttribute("data-permalink"));if(n!==i&&n!==l)return!1}return!(t&&t.classList.contains("gallery-caption")||r.matches(t,"figcaption"))}function $(e){if(window.CSS&&window.CSS.supports&&window.CSS.supports("display","grid")){var t,o=e.target,a=r.closest(o,d);if(a){if(!(t=a)||!t.getAttribute("data-carousel-extra"))return;if(!J(o))return;document.documentElement.style.height="auto",e.preventDefault(),e.stopPropagation();var n=r.closest(o,p),i=Array.prototype.indexOf.call(a.querySelectorAll(p),n);z(a,{startIndex:i})}}}document.body.addEventListener("click",P),document.body.addEventListener("keydown",P),document.querySelectorAll(m+"img").forEach(function(e){J(e)&&S(e)}),1===Number(jetpackCarouselStrings.single_image_gallery)&&(L(),document.body.addEventListener("is.post-load",function(){L()})),window.addEventListener("hashchange",function(){var e=/jp-carousel-(\d+)/;if(window.location.hash&&e.test(window.location.hash)){if(window.location.hash!==c||!g.isOpen)if(window.location.hash&&g.gallery&&!g.isOpen&&history.back)history.back();else{c=window.location.hash;for(var t=window.location.hash.match(e),r=parseInt(t[1],10),o=document.querySelectorAll(d),a=0;a<o.length;a++){for(var n,i=o[a],l=i.querySelectorAll("img"),s=0;s<l.length;s++)if(parseInt(l[s].getAttribute("data-attachment-id"),10)===r||parseInt(l[s].getAttribute("data-id"),10)===r){n=s;break}if(void 0!==n){x(i,n);break}}}}else g.isOpen&&k()}),window.location.hash&&r.emitEvent(window,"hashchange")}"loading"!==document.readyState?o():document.addEventListener("DOMContentLoaded",o)}();; 2225/*! For license information please see dependencies.min.js.LICENSE.txt */ 2226(()=>{var e={8395(){!function(e,t,n,s){"use strict";var i,a,r,o=(i=t.createElement("dummy").style,a="Webkit Moz O ms Khtml".split(" "),r={},function(e){if(void 0===r[e]){var t=e.charAt(0).toUpperCase()+e.substr(1),n=(e+" "+a.join(t+" ")+t).split(" ");for(var o in r[e]=null,n)if(i[n[o]]!==s){r[e]=n[o];break}}return r[e]});function c(e){if(e){var t=1+e.substr(1).search(/[A-Z]/);return"-"+e.substr(0,t).toLowerCase()+"-"+e.substr(t).toLowerCase()}}function l(e){return e?e+",":""}function u(e){return e.length>0?e:null}var f={stepSelector:".step",containerClass:"",canvasClass:"",areaClass:"",notSupportedClass:"not-supported",fullscreen:!0,animation:{transformOrigin:"top left",transitionProperty:l(c(o("transform")))+l(c(o("perspective")))+"opacity",transitionDuration:"1s",transitionDelay:"500ms",transitionTimingFunction:"ease-in-out",transformStyle:"preserve-3d"},transitionDuration:1500},p={beforeChange:1,beforeInitStep:1,initStep:1,beforeInit:1,afterInit:1,beforeDeinit:1,afterDeinit:1,applyStep:1,unapplyStep:1,setInactive:1,beforeActive:1,setActive:1,selectInitialStep:1,selectPrev:1,selectNext:1,selectHome:1,selectEnd:1,idle:1,applyTarget:1};for(var d in p)f[d]=[];function h(i){i=e.extend(!0,{},i||{});var a={},r=null;for(r in p)a[r]=e.isFunction(i[r])?[i[r]]:i[r],i[r]=[];var o=e.extend(!0,{},f,i);for(r in p)a[r]&&Array.prototype.push.apply(o[r],a[r]);var c=e(this),l=null,d=null,h={container:"",area:""},y=null,g=null,x=!1,b=null,w=!1;function S(t,n){var s=v(t),i={oldStyle:e(t).attr("style")||""},a={data:s,stepData:i};C.call(this,"beforeInitStep",e(t),a),i.delegate=s.delegate,C.call(this,"initStep",e(t),a),e(t).data("stepData",i),e(t).attr("id")||e(t).attr("id","step-"+(n+1)),C.call(this,"applyStep",e(t),a)}function I(t){var n=e(t).data("stepData");e(t).attr("style",n.oldStyle),C.call(this,"unapplyStep",e(t),{stepData:n})}function j(){x&&C.call(this,"setInactive",x,{stepData:e(x).data("stepData"),reason:"deinit"}),g.jmpressClass&&e(c).removeClass(g.jmpressClass),C.call(this,"beforeDeinit",e(this),{}),e(o.stepSelector,c).each(function(e){I.call(c,this)}),l.attr("style",h.container),o.fullscreen&&e("html").attr("style",""),d.attr("style",h.area),e(y).children().each(function(){c.append(e(this))}
2226),o.fullscreen?y.remove():(y.remove(),d.remove()),C.call(this,"afterDeinit",e(this),{}),e(c).data("jmpressmethods",!1)}function C(t,n,s){s.settings=o,s.current=g,s.container=l,s.parents=n?e(n).parentsUntil(c).not(c).filter(o.stepSelector):null,s.current=g,s.jmpress=this;var i={};return e.each(o[t],function(e,t){i.value=t.call(c,n,s)||i.value}),i.value}function D(t,n){var i;if(e.isPlainObject(t)&&(i=t.substep,t=t.step),"string"==typeof t&&(t=c.find(t).first()),!t||!e(t).data("stepData"))return!1;T.call(this);var a=e(t).data("stepData"),r=!1;if(C.call(this,"beforeChange",t,{stepData:a,reason:n,cancel:function(){r=!0}}),r)return s;var l={},f=t;e(t).data("stepData").delegate&&((f=u(e(t).parentsUntil(c).filter(o.stepSelector).filter(a.delegate))||u(e(t).near(a.delegate))||u(e(t).near(a.delegate,!0))||u(e(a.delegate,c)))?a=f.data("stepData"):f=t),w&&C.call(this,"setInactive",w,{stepData:e(w).data("stepData"),delegatedFrom:x,reason:n,target:l,nextStep:f,nextSubstep:i,nextStepData:a});var p={stepData:a,delegatedFrom:t,reason:n,target:l,substep:i,prevStep:w,prevSubstep:b,prevStepData:w&&e(w).data("stepData")};return C.call(this,"beforeActive",f,p),C.call(this,"setActive",f,p),g.jmpressClass&&e(c).removeClass(g.jmpressClass),e(c).addClass(g.jmpressClass="step-"+e(f).attr("id")),g.jmpressDelegatedClass&&e(c).removeClass(g.jmpressDelegatedClass),e(c).addClass(g.jmpressDelegatedClass="delegating-step-"+e(t).attr("id")),C.call(this,"applyTarget",f,e.extend({canvas:y,area:d,beforeActive:w},p)),x=t,b=p.substep,w=f,g.idleTimeout&&clearTimeout(g.idleTimeout),g.idleTimeout=setTimeout(function(){C.call(this,"idle",f,p)},Math.max(1,o.transitionDuration-100)),f}function T(){!function t(){if("BODY"===e(l)[0].tagName)try{n.scrollTo(0,0)}catch(e){}function s(){0===e(l).scrollTop()&&0===e(l).scrollLeft()||t()}e(l).scrollTop(0),e(l).scrollLeft(0),setTimeout(s,1),setTimeout(s,10),setTimeout(s,100),setTimeout(s,200),setTimeout(s,400)}()}if(c.data("jmpressmethods",{select:D,reselect:function(e){return D({step:x,substep:b},e)},scrollFix:T,goTo:function(e){return D.call(this,e,"jump")},next:function(){return D.call(this,C.call(this,"selectNext",x,{stepData:e(x).data("stepData"),substep:b}),"next")},prev:function(){return D.call(this,C.call(this,"selectPrev",x,{stepData:e(x).data("stepData"),substep:b}),"prev")},home:function(){return D.call(this,C.call(this,"selectHome",x,{stepData:e(x).data("stepData")}),"home")},end:function(){return D.call(this,C.call(this,"selectEnd",x,{stepData:e(x).data("stepData")}),"end")},canvas:function(t){return m(y,t||{}),e(y)},container:function(){return l},settings:function(){return o},active:function(){return w&&e(w)},current:function(){return g},fire:function(t,n,s){if(p[t])return C.call(this,t,n,s);e.error("callback "+t+" is not registered.")},init:function(t){S.call(this,e(t),g.nextIdNumber++)},deinit:function(t){t?I.call(this,e(t)):j.call(this)},reapply:function(t){C.call(this,"unapplyStep",e(t),{stepData:t.data("stepData")}),C.call(this,"applyStep",e(t),{stepData:t.data("stepData")})}}),!1!=(-1===(B=navigator.userAgent.toLowerCase()).search(/(iphone)|(ipod)|(android)/)||-1!==B.search(/(chrome)/))){var B;o.notSupportedClass&&c.removeClass(o.notSupportedClass);var O=e(o.stepSelector,c);l=c,d=e("<div />"),y=e("<div />"),e(c).children().filter(O).each(function(){y.append(e(this))}),o.fullscreen&&(l=e("body"),e("html").css({overflow:"hidden"}),d=c),h.area=d.attr("style")||"",h.container=l.attr("style")||"",o.fullscreen?(l.css({height:"100%"}),c.append(y)):(l.css({position:"relative"}),d.append(y),c.append(d)),e(l).addClass(o.containerClass),e(d).addClass(o.areaClass),e(y).addClass(o.canvasClass),t.documentElement.style.height="100%",l.css({overflow:"hidden"});var P={position:"absolute",transitionDuration:"0s"};P=e.extend({},o.animation,P),m(d,P),m(d,{top:"50%",left:"50%",perspective:"1000px"}),m(y,P),g={},C.call(this,"beforeInit",null,{}),O.each(function(e){S.call(c,this,e)}),g.nextIdNumber=O.length,C.call(this,"afterInit",null,{}),D.call(this,C.call(this,"selectInitialStep","init",{})),o.initClass&&e(O).removeClass(o.initClass)}else o.notSupportedClass&&c.addClass(o.notSupportedClass)}function m(t,n){var s,i,a={};for(s in n)n.hasOwnProperty(s)&&null!==(i=o(s))&&(a[i]=n[s]);return e(t).css(a),t}function v(t){if(e(t)[0].dataset)return e.extend({},e(t)[0].dataset);var n={},s=e(t)[0].attributes;return e.each(s,function(e,t){"data-"===t.nodeName.substr(0,5)&&(n[function(e){e=e.split("-");for(var t=1;t<e.length;t++)e[t]=e[t].substr(0,1).toUpperCase()+e[t].substr(1);return e.join("")}(t.nodeName.substr(5))]=t.nodeValue)}),n}var y={init:h,initialized:function(){return!!e(this).data("jmpressmethods")},deinit:function(){},css:m,pfx:o,defaults:function(){return f}
2226,register:function(t,n){e.isFunction(n)?y[t]?e.error("function "+t+" is already registered."):y[t]=n:p[t]?e.error("callback "+t+" is already registered."):(p[t]=1,f[t]=[])},dataset:v};e.fn.jmpress=function(t){function n(){var n=e(this).data("jmpressmethods");if(n&&n[t])return n[t].apply(this,Array.prototype.slice.call(arguments,1));if(y[t])return y[t].apply(this,Array.prototype.slice.call(arguments,1));if(p[t]&&n){var s=n.settings(),i=Array.prototype.slice.call(arguments,1)[0];e.isFunction(i)&&(s[t]=s[t]||[],s[t].push(i))}else{if("object"==typeof t||!t)return h.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.jmpress")}return this}var s,i=arguments;return e(this).each(function(e,t){s=n.apply(t,i)}),s},e.extend({jmpress:function(t){if(y[t])return y[t].apply(this,Array.prototype.slice.call(arguments,1));if(p[t]){var n=Array.prototype.slice.call(arguments,1)[0];e.isFunction(n)?f[t].push(n):e.error("Second parameter should be a function: $.jmpress( callbackName, callbackFunction )")}else e.error("Method "+t+" does not exist on jQuery.jmpress")}})}(jQuery,document,window),function(e){"use strict";function t(t,n,s,i){var a;return t.each(function(t,r){return(!i||!(a=n(r,s,i)))&&(e(r).is(s)?(a=r,!1):!(!i&&(a=n(r,s,i)))&&void 0)}),a}function n(s,i,a){var r=e(s).children();return a&&(r=e(r.get().reverse())),t(r,n,i,a)}function s(s,i,a){return t(e(s)[a?"prevAll":"nextAll"](),n,i,a)}e.fn.near=function(t,i){var a=[];return e(this).each(function(r,o){var c=!i&&n(o,t,i)||s(o,t,i)||function(t,n,i){var a,r=e(t).parents();return r=e(r.get()),e.each(r.get(),function(t,r){return i&&e(r).is(n)?(a=r,!1):!(a=s(r,n,i))&&void 0}),a}(o,t,i);c&&a.push(c)}),e(a)}}(jQuery,document,window),function(e){"use strict";function t(e){return Math.round(1e4*e)/1e4+""}var n={3:{transform:function(n,s){var i="translate(-50%,-50%)";e.each(s,function(e,n){var s,a=["X","Y","Z"];if("translate"===n[0])i+=" translate3d("+t(n[1]||0)+"px,"+t(n[2]||0)+"px,"+t(n[3]||0)+"px)";else if("rotate"===n[0]){var r=n[4]?[1,2,3]:[3,2,1];for(s=0;s<3;s++)i+=" rotate"+a[r[s]-1]+"("+t(n[r[s]]||0)+"deg)"}else if("scale"===n[0])for(s=0;s<3;s++)i+=" scale"+a[s]+"("+t(n[s+1]||1)+")"}),e.jmpress("css",n,e.extend({},{transform:i}))}},2:{transform:function(n,s){var i="translate(-50%,-50%)";e.each(s,function(e,n){var s=["X","Y"];if("translate"===n[0])i+=" translate("+t(n[1]||0)+"px,"+t(n[2]||0)+"px)";else if("rotate"===n[0])i+=" rotate("+t(n[3]||0)+"deg)";else if("scale"===n[0])for(var a=0;a<2;a++)i+=" scale"+s[a]+"("+t(n[a+1]||1)+")"}),e.jmpress("css",n,e.extend({},{transform:i}))}},1:{transform:function(t,n){var s={top:0,left:0};e.each(n,function(e,t){"translate"===t[0]&&(s.left=Math.round(t[1]||0)+"px",s.top=Math.round(t[2]||0)+"px")}),t.animate(s,1e3)}}},s=e.jmpress("pfx","perspective")?n[3]:e.jmpress("pfx","transform")?n[2]:n[1];e.jmpress("defaults").reasonableAnimation={},e.jmpress("initStep",function(t,n){var s=n.data,i=n.stepData,a=parseFloat;e.extend(i,{x:a(s.x)||0,y:a(s.y)||0,z:a(s.z)||0,r:a(s.r)||0,phi:a(s.phi)||0,rotate:a(s.rotate)||0,rotateX:a(s.rotateX)||0,rotateY:a(s.rotateY)||0,rotateZ:a(s.rotateZ)||0,revertRotate:!1,scale:a(s.scale)||1,scaleX:a(s.scaleX)||!1,scaleY:a(s.scaleY)||!1,scaleZ:a(s.scaleZ)||1})}),e.jmpress("afterInit",function(t,n){var s=n.settings.stepSelector,i=n.current;i.perspectiveScale=1,i.maxNestedDepth=0;for(var a=e(n.jmpress).find(s).children(s);a.length;)i.maxNestedDepth++,a=a.children(s)}),e.jmpress("applyStep",function(t,n){e.jmpress("css",e(t),{position:"absolute",transformStyle:"preserve-3d"}),n.parents.length>0&&e.jmpress("css",e(t),{top:"50%",left:"50%"});var i=n.stepData,a=[["translate",i.x||i.r*Math.sin(i.phi*Math.PI/180),i.y||-i.r*Math.cos(i.phi*Math.PI/180),i.z],["rotate",i.rotateX,i.rotateY,i.rotateZ||i.rotate,!0],["scale",i.scaleX||i.scale,i.scaleY||i.scale,i.scaleZ||i.scale]];s.transform(t,a)}),e.jmpress("setActive",function(t,n){var s=n.target,i=n.stepData,a=s.transform=[];s.perspectiveScale=1;for(var r=n.current.maxNestedDepth;r>(n.parents.length||0);r--)a.push(["scale"],["rotate"],["translate"]);a.push(["scale",1/(i.scaleX||i.scale),1/(i.scaleY||i.scale),1/i.scaleZ]),a.push(["rotate",-i.rotateX,-i.rotateY,-(i.rotateZ||i.rotate)]),a.push(["translate",-(i.x||i.r*Math.sin(i.phi*Math.PI/180)
2226),-(i.y||-i.r*Math.cos(i.phi*Math.PI/180)),-i.z]),s.perspectiveScale*=i.scaleX||i.scale,e.each(n.parents,function(t,n){var i=e(n).data("stepData");a.push(["scale",1/(i.scaleX||i.scale),1/(i.scaleY||i.scale),1/i.scaleZ]),a.push(["rotate",-i.rotateX,-i.rotateY,-(i.rotateZ||i.rotate)]),a.push(["translate",-(i.x||i.r*Math.sin(i.phi*Math.PI/180)),-(i.y||-i.r*Math.cos(i.phi*Math.PI/180)),-i.z]),s.perspectiveScale*=i.scaleX||i.scale}),e.each(a,function(e,t){function s(s){void 0===n.current["rotate"+s+"-"+e]&&(n.current["rotate"+s+"-"+e]=t[s]||0);var i=n.current["rotate"+s+"-"+e],a=i%360,r=(t[s]||0)%360;a<0&&(a+=360),r<0&&(r+=360);var o=r-a;o<-180?o+=360:o>180&&(o-=360),n.current["rotate"+s+"-"+e]=t[s]=i+o}"rotate"===t[0]&&(s(1),s(2),s(3))})}),e.jmpress("applyTarget",function(t,n){var i,a=n.target,r=(n.stepData,n.settings),o=1.3*a.perspectiveScale<n.current.perspectiveScale,c=a.perspectiveScale>1.3*n.current.perspectiveScale,l=-1;e.each(a.transform,function(e,t){if(!(t.length<=1||"rotate"===t[0]&&t[1]%360==0&&t[2]%360==0&&t[3]%360==0))return"scale"===t[0]&&void(l=e)}),l!==n.current.oldLastScale&&(o=c=!1,n.current.oldLastScale=l);var u=[];if(-1!==l)for(;l>=0;)"scale"===a.transform[l][0]&&(u.push(a.transform[l]),a.transform[l]=["scale"]),l--;var f=r.animation;r.reasonableAnimation[n.reason]&&(f=e.extend({},f,r.reasonableAnimation[n.reason])),i={perspective:Math.round(1e3*a.perspectiveScale)+"px"},i=e.extend({},f,i),o||(i.transitionDelay="0s"),n.beforeActive||(i.transitionDuration="0s",i.transitionDelay="0s"),e.jmpress("css",n.area,i),s.transform(n.area,u),i=e.extend({},f),c||(i.transitionDelay="0s"),n.beforeActive||(i.transitionDuration="0s",i.transitionDelay="0s"),n.current.perspectiveScale=a.perspectiveScale,e.jmpress("css",n.canvas,i),s.transform(n.canvas,a.transform)})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress,n="activeClass",s="nestedActiveClass",i=t("defaults");i[s]="nested-active",i[n]="active",t("setInactive",function(t,i){var a=i.settings,r=a[n],o=a[s];r&&e(t).removeClass(r),o&&e.each(i.parents,function(t,n){e(n).removeClass(o)})}),t("setActive",function(t,i){var a=i.settings,r=a[n],o=a[s];r&&e(t).addClass(r),o&&e.each(i.parents,function(t,n){e(n).addClass(o)})})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress;function n(t,n){return e(this).find(n.settings.stepSelector).first()}function s(t,n,s,i){if(!n)return!1;var a=s.settings.stepSelector;n=e(n);do{var r=n.near(a,i);if(0!==r.length&&0!==r.closest(t).length||(r=e(t).find(a)[i?"last":"first"]()),!r.length)return!1;n=r}while(n.data("stepData").exclude);return n}t("initStep",function(e,t){t.stepData.exclude=t.data.exclude&&-1===["false","no"].indexOf(t.data.exclude)}),t("selectInitialStep",n),t("selectHome",n),t("selectEnd",function(t,n){return e(this).find(n.settings.stepSelector).last()}),t("selectPrev",function(e,t){return s(this,e,t,!0)}),t("selectNext",function(e,t){return s(this,e,t)})}(jQuery,document,window),function(e){"use strict";e.jmpress("selectInitialStep",function(e,t){return t.settings.start})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress;function n(t,n,s){for(var i=0;i<n.length-1;i++){var a=n[i],r=n[i+1];e(t).jmpress("initialized")?e(a,t).data("stepData")[s]=r:e(a,t).attr("data-"+s,r)}}function s(t,n,s,i){var a=n.stepData;if(a[s]){var r=e(t).near(a[s],i);if(r&&r.length)return r;if((r=e(a[s],this)[i?"last":"first"]())&&r.length)return r}}t("register","route",function(e,t,s){"string"==typeof e&&(e=[e,e]),n(this,e,s?"prev":"next"),t||n(this,e.reverse(),s?"next":"prev")}),t("initStep",function(e,t){for(var n in{next:1,prev:1})t.stepData[n]=t.data[n]}),t("selectNext",function(e,t){return s.call(this,e,t,"next")}),t("selectPrev",function(e,t){return s.call(this,e,t,"prev",!0)})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress,n="ajax:afterStepLoaded",s="ajax:loadStep";t("register",s),t("register",n),t("defaults").ajaxLoadedClass="loaded",t("initStep",function(t,n){n.stepData.src=e(t).attr("href")||n.data.src||!1,n.stepData.srcLoaded=!1}),t(s,function(t,s){var i=s.stepData,a=i&&i.src,r=s.settings;a&&(e(t).addClass(r.ajaxLoadedClass),i.srcLoaded=!0,e(t).load(a,function(i,a,r){e(s.jmpress).jmpress("fire",n,t,e.extend({},s,{response:i,status:a,xhr:r}))}))}),t("idle",function(t,n){if(t){var i=n.settings,a=e(this);n.stepData;e(t).add(e(t).near(i.stepSelector)).add(e(t).near(i.stepSelector,!0)).add(a.jmpress("fire","selectPrev",t,{stepData:e(t).data("stepData")})).add(a.jmpress("fire","selectNext",t,{stepData:e(t).data("stepData")})).each(function(){var t=this,n=e(t).data("stepData");n.src&&!n.srcLoaded&&a.jmpress("fire",s,t,{stepData:e(t).data("stepData")})})}}),t("setActive",function(t,n){var i=e(t).data("stepData");i.src&&!i.srcLoaded&&e(this).jmpress("fire",s,t,{stepData:e(t).data("stepData")})})}(jQuery,document,window),function(e,t,n){"use strict";var s=e.jmpress,i="a[href^=#]";function a(t){try{var s=e("#"+n.location.hash.replace(/^#\/?/,""));return s.length>0&&s.is(t.stepSelector)?s:void 0}catch(e){}}
2226function r(e){var t="#/"+e;n.history&&n.history.pushState?n.location.hash!==t&&n.history.pushState({},"",t):n.location.hash!==t&&(n.location.hash=t)}s("defaults").hash={use:!0,update:!0,bindChange:!0},s("selectInitialStep",function(t,s){var o=s.settings,c=o.hash,l=s.current,u=e(this);if(s.current.hashNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),c.use)return c.bindChange&&(e(n).bind("hashchange"+l.hashNamespace,function(e){var t=a(o);u.jmpress("initialized")&&u.jmpress("scrollFix"),t&&t.length&&(t.attr("id")!==u.jmpress("active").attr("id")&&u.jmpress("select",t),r(t.attr("id"))),e.preventDefault()}),e(i).on("click"+l.hashNamespace,function(t){var n=e(this).attr("href");try{e(n).is(o.stepSelector)&&(u.jmpress("select",n),t.preventDefault(),t.stopPropagation())}catch(e){}})),a(o)}),s("afterDeinit",function(t,s){e(i).off(s.current.hashNamespace),e(n).unbind(s.current.hashNamespace)}),s("setActive",function(t,n){var s=n.settings,i=n.current;s.hash.use&&s.hash.update&&(clearTimeout(i.hashtimeout),i.hashtimeout=setTimeout(function(){r(e(n.delegatedFrom).attr("id"))},s.transitionDuration+200))})}(jQuery,document,window),function(e,t){"use strict";var n=e.jmpress,s="next",i="prev";function a(e){e.preventDefault(),e.stopPropagation()}n("defaults").keyboard={use:!0,keys:{33:i,37:i,38:i,9:s+":"+i,32:s,34:s,39:s,40:s,36:"home",35:"end"},ignore:{INPUT:[32,37,38,39,40],TEXTAREA:[32,37,38,39,40],SELECT:[38,40]},tabSelector:"a[href]:visible, :input:visible"},n("afterInit",function(n,s){var i=s.settings,r=i.keyboard,o=r.ignore,c=s.current,l=e(this);i.fullscreen||l.attr("tabindex",0),c.keyboardNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),e(i.fullscreen?t:l).bind("keypress"+c.keyboardNamespace,function(e){for(var t in o)if(e.target.nodeName===t&&-1!==o[t].indexOf(e.which))return;(e.which>=37&&e.which<=40||32===e.which)&&a(e)}),e(i.fullscreen?t:l).bind("keydown"+c.keyboardNamespace,function(t){var n=e(t.target);if((i.fullscreen||n.closest(l).length)&&r.use){for(var s in o)if(n[0].nodeName===s&&-1!==o[s].indexOf(t.which))return;var c,u=!1;if(9===t.which){if(n.closest(l.jmpress("active")).length?(c=n.near(r.tabSelector,t.shiftKey),e(c).closest(i.stepSelector).is(l.jmpress("active"))||(c=void 0)):t.shiftKey?u=!0:c=l.jmpress("active").find("a[href], :input").filter(":visible").first(),c&&c.length>0)return c.focus(),l.jmpress("scrollFix"),void a(t);t.shiftKey&&(u=!0)}var f=r.keys[t.which];"string"==typeof f?(-1!==f.indexOf(":")&&(f=f.split(":"),f=t.shiftKey?f[1]:f[0]),l.jmpress(f),a(t)):e.isFunction(f)?f.call(l,t):f&&(l.jmpress.apply(l,f),a(t)),u&&((c=l.jmpress("active").find("a[href], :input").filter(":visible").last()).focus(),l.jmpress("scrollFix"))}})}),n("afterDeinit",function(n,s){e(t).unbind(s.current.keyboardNamespace)})}(jQuery,document,window),function(e,t,n){"use strict";var s,i=(s=navigator.userAgent.toLowerCase(),(/(chrome)[ \/]([\w.]+)/.exec(s)||/(webkit)[ \/]([\w.]+)/.exec(s)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(s)||/(msie) ([\w.]+)/.exec(s)||s.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(s)||[])[1]||""),a=e.jmpress("defaults");a.viewPort={width:!1,height:!1,maxScale:0,minScale:0,zoomable:0,zoomBindMove:!0,zoomBindWheel:!0};var r=a.keyboard.keys;function o(e,t){return Math.max(Math.min(e,t),-t)}function c(t,n,s){var i=e(this).jmpress("current"),a=e(this).jmpress("settings"),r=e(this).jmpress("active").data("stepData"),c=e(this).jmpress("container");if(!(0===i.userZoom&&s<0)){var l=r.viewPortZoomable||a.viewPort.zoomable;if(!(i.userZoom===l&&s>0)){i.userZoom+=s;var u=e(c).innerWidth()/2,f=e(c).innerHeight()/2;t=t?t-u:t,n=n?n-f:n,i.userTranslateX=o(i.userTranslateX-s*t/i.zoomOriginWindowScale/l,u*i.userZoom*i.userZoom/l),i.userTranslateY=o(i.userTranslateY-s*n/i.zoomOriginWindowScale/l,f*i.userZoom*i.userZoom/l),e(this).jmpress("reselect","zoom")}}}r["mozilla"===i?107:187]="zoomIn",r["mozilla"===i?109:189]="zoomOut",a.reasonableAnimation.resize={transitionDuration:"0s",transitionDelay:"0ms"},a.reasonableAnimation.zoom={transitionDuration:"0s",transitionDelay:"0ms"},e.jmpress("initStep",function(e,t){for(var n in{viewPortHeight:1,viewPortWidth:1,viewPortMinScale:1,viewPortMaxScale:1,viewPortZoomable:1})t.stepData[n]=t.data[n]&&parseFloat(t.data[n])}),e.jmpress("afterInit",function(s,i){var a=this;i.current.viewPortNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),e(n).bind("resize"+i.current.viewPortNamespace,function(t){e(a).jmpress("reselect","resize")}),i.current.userZoom=0,i.current.userTranslateX=0,i.current.userTranslateY=0,i.settings.viewPort.zoomBindWheel&&e(i.settings.fullscreen?t:this).bind("mousewheel"+i.current.viewPortNamespace+" DOMMouseScroll"+i.current.viewPortNamespace,function(t,n){var s=(n=n||t.originalEvent.wheelDelta||-t.originalEvent.detail)/Math.abs(n);return s<0?e(i.jmpress).jmpress("zoomOut",t.originalEvent.x,t.originalEvent.y):s>0&&e(i.jmpress).jmpress("zoomIn",t.originalEvent.x,t.originalEvent.y),!1}),i.settings.viewPort.zoomBindMove&&e(i.settings.fullscreen?t:this).bind("mousedown"+i.current.viewPortNamespace,function(e){i.current.userZoom&&(i.current.userTranslating={x:e.clientX,y:e.clientY},e.preventDefault(),e.stopImmediatePropagation())}).bind("mousemove"+i.current.viewPortNamespace,function(t){var n=i.current.userTranslating;n&&(e(a).jmpress("zoomTranslate",t.clientX-n.x,t.clientY-n.y),n.x=t.clientX,n.y=t.clientY,t.preventDefault(),t.stopImmediatePropagation())}).bind("mouseup"+i.current.viewPortNamespace,function(e){i.current.userTranslating&&(i.current.userTranslating=void 0,e.preventDefault(),e.stopImmediatePropagation())})}),e.jmpress("register","zoomIn",function(e,t){c.call(this,e||0,t||0,1)}),e.jmpress("register","zoomOut",function(e,t){c.call(this,e||0,t||0,-1)}),e.jmpress("register","zoomTranslate",function(t,n){var s=e(this).jmpress("current"),i=e(this).jmpress("settings"),a=e(this).jmpress("active").data("stepData"),r=e(this).jmpress("container"),c=a.viewPortZoomable||i.viewPort.zoomable,l=e(r).innerWidth(),u=e(r).innerHeight();s.userTranslateX=o(s.userTranslateX+t/s.zoomOriginWindowScale,l*s.userZoom*s.userZoom/c),s.userTranslateY=o(s.userTranslateY+n/s.zoomOriginWindowScale,u*s.userZoom*s.userZoom/c),e(this).jmpress("reselect","zoom")}),e.jmpress("afterDeinit",function(s,i){e(i.settings.fullscreen?t:this).unbind(i.current.viewPortNamespace),e(n).unbind(i.current.viewPortNamespace)}),e.jmpress("setActive",function(t,n){var s=n.settings.viewPort,i=n.stepData.viewPortHeight||s.height,a=n.stepData.viewPortWidth||s.width,r=n.stepData.viewPortMaxScale||s.maxScale,o=n.stepData.viewPortMinScale||s.minScale,c=i&&e(n.container).innerHeight()/i,l=a&&e(n.container).innerWidth()/a,u=(l||c)&&Math.min(l||c,c||l);if(u){u=u||1,r&&(u=Math.min(u,r)),o&&(u=Math.max(u,o));var f=n.stepData.viewPortZoomable||n.settings.viewPort.zoomable;if(f){var p=1/u-1/r;u=1/(1/u-(p/=f)*n.current.userZoom)}n.target.transform.reverse(),n.current.userTranslateX&&n.current.userTranslateY?n.target.transform.push(["translate",n.current.userTranslateX,n.current.userTranslateY,0]):n.target.transform.push(["translate"]),n.target.transform.push(["scale",u,u,1]),n.target.transform.reverse(),n.target.perspectiveScale/=u}n.current.zoomOriginWindowScale=u}),e.jmpress("setInactive",function(t,n){n.nextStep&&t&&e(n.nextStep).attr("id")===e(t).attr("id")||(n.current.userZoom=0,n.current.userTranslateX=0,n.current.userTranslateY=0)})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress;t("defaults").mouse={clickSelects:!0},t("afterInit",function(t,n){var s=n.settings,i=s.stepSelector,a=n.current,r=e(this);a.clickableStepsNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),r.bind("click"+a.clickableStepsNamespace,function(t){if(s.mouse.clickSelects&&
2226!a.userZoom){var n=e(t.target).closest(i);n.is(r.jmpress("active"))||n.length&&(r.jmpress("select",n[0],"click"),t.preventDefault(),t.stopPropagation())}})}),t("afterDeinit",function(t,n){e(this).unbind(n.current.clickableStepsNamespace)})}(jQuery,document,window),function(e,t){"use strict";var n=e.jmpress;n("afterInit",function(n,s){var i=s.settings,a=s.current,r=s.jmpress;a.mobileNamespace=".jmpress-"+Math.round(1e5*Math.random(),0);var o,c=[0,0];e(i.fullscreen?t:r).bind("touchstart"+a.mobileNamespace,function(e){o=e.originalEvent.touches[0],c=[o.pageX,o.pageY]}).bind("touchmove"+a.mobileNamespace,function(e){return o=e.originalEvent.touches[0],e.preventDefault(),!1}).bind("touchend"+a.mobileNamespace,function(t){var n=[o.pageX,o.pageY],s=[n[0]-c[0],n[1]-c[1]];if(Math.max(Math.abs(s[0]),Math.abs(s[1]))>50)return s=Math.abs(s[0])>Math.abs(s[1])?s[0]:s[1],e(r).jmpress(s>0?"prev":"next"),t.preventDefault(),!1})}),n("afterDeinit",function(n,s){var i=s.settings,a=s.current,r=s.jmpress;e(i.fullscreen?t:r).unbind(a.mobileNamespace)})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress,n="_template_",s="_applied_template_",i={};function a(t,n,s){for(var i in n){var r=i;s&&(r=s+r.substr(0,1).toUpperCase()+r.substr(1)),e.isPlainObject(n[i])?a(t,n[i],r):void 0===t[r]&&(t[r]=n[i])}}function r(t,s){e.isArray(s)?s.length<t.length?e.error("more nested steps than children in template"):t.each(function(t,i){var r=(i=e(i)).data(n)||{};a(r,s[t]),i.data(n,r)}):e.isFunction(s)&&t.each(function(i,r){var o=(r=e(r)).data(n)||{};a(o,s(i,r,t)),r.data(n,o)})}function o(e,t,n,s){n.children&&r(t.children(s.settings.stepSelector),n.children);!function(e,t){a(e,t)}(e,n)}t("beforeInitStep",function(t,a){t=e(t);var r=a.data,c=r.template,l=t.data(s),u=t.data(n);c&&e.each(c.split(" "),function(e,n){var s=i[n];o(r,t,s,a)}),l&&o(r,t,l,a),u&&(o(r,t,u,a),t.data(n,null),u.template&&e.each(u.template.split(" "),function(e,n){var s=i[n];o(r,t,s,a)}))}),t("beforeInit",function(n,s){var a=t("dataset",this).template,o=s.settings.stepSelector;if(a){var c=i[a];r(e(this).find(o).filter(function(){return!e(this).parent().is(o)}),c.children)}}),t("register","template",function(t,n){i[t]?i[t]=e.extend(!0,{},i[t],n):i[t]=e.extend(!0,{},n)}),t("register","apply",function(t,n){if(n)if(e.isArray(n))r(e(t),n);else{var o;o="string"==typeof n?i[n]:e.extend(!0,{},n),e(t).each(function(t,n){var i=(n=e(n)).data(s)||{};a(i,o),n.data(s,i)})}else{var c=e(this).jmpress("settings").stepSelector;r(e(this).find(c).filter(function(){return!e(this).parent().is(c)}),t)}})}(jQuery,document,window),function(e){"use strict";e.jmpress("setActive",function(t,n){n.prevStep!==t&&e(t).triggerHandler("enterStep")}),e.jmpress("setInactive",function(t,n){n.nextStep!==t&&e(t).triggerHandler("leaveStep")})}(jQuery,document,window),function(e,t,n,s){"use strict";function i(t,n,s,i){i=i||t.length-1;for(var a=s=s||0;a<i+1;a++)if(e(t[a].element).is(n))return a}function a(t,n,s){e.each(n._on,function(e,n){t.push({substep:n.substep,delay:n.delay+s}),a(t,n.substep,n.delay+s)})}e.jmpress("defaults").customAnimationDataAttribute="jmpress",e.jmpress("afterInit",function(e,t){t.current.animationTimeouts=[],t.current.animationCleanupWaiting=[]}),e.jmpress("applyStep",function(t,n){var r={},o=[];if(e(t).find("[data-"+n.settings.customAnimationDataAttribute+"]").each(function(s,i){e(i).closest(n.settings.stepSelector).is(t)&&o.push({element:i})}),0!==o.length){e.each(o,function(t,s){s.info=function(t){for(var n=t.split(" "),s=n[0],i={willClass:"will-"+s,doClass:"do-"+s,hasClass:"has-"+s},a="",r=1;r<n.length;r++){var o=n[r];switch(a){case"":"after"===o?a="after":e.warn("unknown keyword in '"+t+"'. '"+o+"' unknown.");break;case"after":if(o.match(/^[1-9][0-9]*m?s?/)){var c=parseFloat(o);-1!==o.indexOf("ms")?c*=1:-1!==o.indexOf("s")?c*=1e3:-1!==o.indexOf("m")&&(c*=6e4),i.delay=c}else i.after=Array.prototype.slice.call(n,r).join(" "),r=n.length}}return i}(e(s.element).data(n.settings.customAnimationDataAttribute)),e(s.element).addClass(s.info.willClass),s._on=[],s._after=null});var c={_after:s,_on:[],info:{}};if(e.each(o,function(e,t){var n=t.info.after;if(n)if("step"===n)n=c;else if("prev"===n)n=o[e-1];else{var a=i(o,n,0,e-1);a===s&&(a=i(o,n)),n=a===s||a===e?o[e-1]:o[a]}else n=o[e-1];if(n){if(!t.info.delay){if(!n._after)return void(n._after=t);n=n._after}n._on.push({substep:t,delay:t.info.delay||0})}}),c._after===s&&0===c._on.length){var l=i(o,n.stepData.startSubstep)||0;c._after=o[l]}var u=[];do{var f=[{substep:c,delay:0}];a(f,c,0),u.push(f),c=null,e.each(f,p)}while(c);r.list=u,e(t).data("substepsData",r)}function p(e,t){if(t.substep._after)return c=t.substep._after,!1}}),e.jmpress("unapplyStep",function(t,n){var s=e(t).data("substepsData");s&&e.each(s.list,function(t,n){e.each(n,function(t,n){n.substep.info.willClass&&e(n.substep.element).removeClass(n.substep.info.willClass),n.substep.info.hasClass&&e(n.substep.element).removeClass(n.substep.info.hasClass),n.substep.info.doClass&&e(n.substep.element).removeClass(n.substep.info.doClass)})})}),e.jmpress("setActive",function(t,n){var i=e(t).data("substepsData");if(i){n.substep===s&&(n.substep="prev"===n.reason?i.list.length-1:0);var a=n.substep;e.each(n.current.animationTimeouts,function(e,t){clearTimeout(t)}),n.current.animationTimeouts=[],e.each(i.list,function(t,s){var i=t<a,r=t<=a;e.each(s,function(t,s){s.substep.info.hasClass&&e(s.substep.element)[(i?"add":"remove")+"Class"](s.substep.info.hasClass),r&&!i&&s.delay&&"prev"!==n.reason?s.substep.info.doClass&&(e(s.substep.element).removeClass(s.substep.info.doClass),n.current.animationTimeouts.push(setTimeout(function(){e(s.substep.element).addClass(s.substep.info.doClass)},s.delay))):s.substep.info.doClass&&e(s.substep.element)[(r?"add":"remove")+"Class"](s.substep.info.doClass)})})}}),e.jmpress("setInactive",function(t,n){if(n.nextStep!==t){e.each(n.current.animationCleanupWaiting,function(t,n){!function(t){e.each(t.list,function(t,n){e.each(n,function(t,n){n.substep.info.hasClass&&e(n.substep.element).removeClass(n.substep.info.hasClass),n.substep.info.doClass&&e(n.substep.element).removeClass(n.substep.info.doClass)})})}(n)}),n.current.animationCleanupWaiting=[];var s=e(t).data("substepsData");s&&n.current.animationCleanupWaiting.push(s)}}),e.jmpress("selectNext",function(t,n){if(n.substep!==s){var i=e(t).data("substepsData");
2226if(i)return n.substep<i.list.length-1?{step:t,substep:n.substep+1}:void 0}}),e.jmpress("selectPrev",function(t,n){if(n.substep!==s&&e(t).data("substepsData"))return n.substep>0?{step:t,substep:n.substep-1}:void 0})}(jQuery,document,window)},5896(e,t,n){var s,i,a;i=[n(428)],s=function(e,t){"use strict";var n="3.0.3";function s(t){e.fn.cycle.debug&&i(t)}function i(){window.console&&console.log&&console.log("[cycle] "+Array.prototype.join.call(arguments," "))}function a(t,n,s){var i=e(t).data("cycle.opts");if(i){var a=!!t.cyclePause;a&&i.paused?i.paused(t,i,n,s):!a&&i.resumed&&i.resumed(t,i,n,s)}}function r(n,s,r){if(n.cycleStop===t&&(n.cycleStop=0),s!==t&&null!==s||(s={}),s.constructor==String){switch(s){case"destroy":case"stop":var o=e(n).data("cycle.opts");return!!o&&(n.cycleStop++,n.cycleTimeout&&clearTimeout(n.cycleTimeout),n.cycleTimeout=0,o.elements&&e(o.elements).stop(),e(n).removeData("cycle.opts"),"destroy"==s&&c(n,o),!1);case"toggle":return n.cyclePause=1===n.cyclePause?0:1,u(n.cyclePause,r,n),a(n),!1;case"pause":return n.cyclePause=1,a(n),!1;case"resume":return n.cyclePause=0,u(!1,r,n),a(n),!1;case"prev":case"next":return(o=e(n).data("cycle.opts"))?("string"==typeof r&&(o.oneTimeFx=r),e.fn.cycle[s](o),!1):(i('options not found, "prev/next" ignored'),!1);default:s={fx:s}}return s}if(s.constructor==Number){var l=s;return(s=e(n).data("cycle.opts"))?l<0||l>=s.elements.length?(i("invalid slide index: "+l),!1):(s.nextSlide=l,n.cycleTimeout&&(clearTimeout(n.cycleTimeout),n.cycleTimeout=0),"string"==typeof r&&(s.oneTimeFx=r),d(s.elements,s,1,l>=s.currSlide),!1):(i("options not found, can not advance slide"),!1)}return s;function u(t,n,s){if(!t&&!0===n){var a=e(s).data("cycle.opts");if(!a)return i("options not found, can not resume"),!1;s.cycleTimeout&&(clearTimeout(s.cycleTimeout),s.cycleTimeout=0),d(a.elements,a,1,!a.backwards)}}}function o(t,n){if(!e.support.opacity&&n.cleartype&&t.style.filter)try{t.style.removeAttribute("filter")}catch(e){}}function c(t,n){n.next&&e(n.next).unbind(n.prevNextEvent),n.prev&&e(n.prev).unbind(n.prevNextEvent),(n.pager||n.pagerAnchorBuilder)&&e.each(n.pagerAnchors||[],function(){this.unbind().remove()}),n.pagerAnchors=null,e(t).unbind("mouseenter.cycle mouseleave.cycle"),n.destroy&&n.destroy(n)}function l(n,s,r,c,l){var h,g=e.extend({},e.fn.cycle.defaults,c||{},e.metadata?n.metadata():e.meta?n.data():{}),x=e.isFunction(n.data)?n.data(g.metaAttr):null;x&&(g=e.extend(g,x)),g.autostop&&(g.countdown=g.autostopCount||r.length);var b=n[0];if(n.data("cycle.opts",g),g.$cont=n,g.stopCount=b.cycleStop,g.elements=r,g.before=g.before?[g.before]:[],g.after=g.after?[g.after]:[],!e.support.opacity&&g.cleartype&&g.after.push(function(){o(this,g)}),g.continuous&&g.after.push(function(){d(r,g,0,!g.backwards)}),u(g),e.support.opacity||!g.cleartype||g.cleartypeNoBg||y(s),"static"==n.css("position")&&n.css("position","relative"),g.width&&n.width(g.width),g.height&&"auto"!=g.height&&n.height(g.height),g.startingSlide!==t?(g.startingSlide=parseInt(g.startingSlide,10),g.startingSlide>=r.length||g.startSlide<0?g.startingSlide=0:h=!0):g.backwards?g.startingSlide=r.length-1:g.startingSlide=0,g.random){g.randomMap=[];for(var w=0;w<r.length;w++)g.randomMap.push(w);if(g.randomMap.sort(function(e,t){return Math.random()-.5}),h)for(var S=0;S<r.length;S++)g.startingSlide==g.randomMap[S]&&(g.randomIndex=S);else g.randomIndex=1,g.startingSlide=g.randomMap[1]}else g.startingSlide>=r.length&&(g.startingSlide=0);g.currSlide=g.startingSlide||0;var I=g.startingSlide;if(s.css({position:"absolute",top:0,left:0}).hide().each(function(t){var n;n=g.backwards?I?t<=I?r.length+(t-I):I-t:r.length-t:I?t>=I?r.length-(t-I):I-t:r.length-t,e(this).css("z-index",n)}),e(r[I]).css("opacity",1).show(),o(r[I],g),g.fit&&(g.aspect?s.each(function(){var t=e(this),n=!0===g.aspect?t.width()/t.height():g.aspect;g.width&&t.width()!=g.width&&(t.width(g.width),t.height(g.width/n)),g.height&&t.height()<g.height&&(t.height(g.height),t.width(g.height*n))}):(g.width&&s.width(g.width),g.height&&"auto"!=g.height&&s.height(g.height))),!g.center||g.fit&&!g.aspect||s.each(function(){var t=e(this);t.css({"margin-left":g.width?(g.width-t.width())/2+"px":0,"margin-top":g.height?(g.height-t.height())/2+"px":0})}),!g.center||g.fit||g.slideResize||s.each(function(){var t=e(this);t.css({"margin-left":g.width?(g.width-t.width())/2+"px":0,"margin-top":g.height?(g.height-t.height())/2+"px":0})}),(g.containerResize||g.containerResizeHeight)&&n.innerHeight()<1){for(var j=0,C=0,D=0;D<r.length;D++){var T=e(r[D]),B=T[0],O=T.outerWidth(),P=T.outerHeight();O||(O=B.offsetWidth||B.width||T.attr("width")),P||(P=B.offsetHeight||B.height||T.attr("height")),j=O>j?O:j,C=P>C?P:C}g.containerResize&&j>0&&C>0&&n.css({width:j+"px",height:C+"px"}),g.containerResizeHeight&&C>0&&n.css({height:C+"px"})}var A=!1;if(g.pause&&n.bind("mouseenter.cycle",function(){A=!0,this.cyclePause++,a(b,!0)}).bind("mouseleave.cycle",function(){A&&this.cyclePause--,a(b,!0)}),!1===f(g))return!1;var k=!1;if(c.requeueAttempts=c.requeueAttempts||0,s.each(function(){var t=e(this);if(this.cycleH=g.fit&&g.height?g.height:t.height()||this.offsetHeight||this.height||t.attr("height")||0,this.cycleW=g.fit&&g.width?g.width:t.width()||this.offsetWidth||this.width||t.attr("width")||0,t.is("img")&&0===this.cycleH&&0===this.cycleW&&!this.complete){if(l.s&&g.requeueOnImageNotLoaded&&++c.requeueAttempts<100)return i(c.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH),setTimeout(function(){e(l.s,l.c).cycle(c)},g.requeueTimeout),k=!0,!1;i("could not determine size of image: "+this.src,this.cycleW,this.cycleH)}return!0}),k)return!1;if(g.cssBefore=g.cssBefore||{},g.cssAfter=g.cssAfter||{},g.cssFirst=g.cssFirst||{},g.animIn=g.animIn||{},g.animOut=g.animOut||{},s.not(":eq("+I+")").css(g.cssBefore),e(s[I]).css(g.cssFirst),g.timeout){g.timeout=parseInt(g.timeout,10),g.speed.constructor==String&&(g.speed=e.fx.speeds[g.speed]||parseInt(g.speed,10)),g.sync||(g.speed=g.speed/2);for(var M="none"==g.fx?0:"shuffle"==g.fx?500:250;g.timeout-g.speed<M;)g.timeout+=g.speed}if(g.easing&&(g.easeIn=g.easeOut=g.easing),g.speedIn||(g.speedIn=g.speed),g.speedOut||(g.speedOut=g.speed),g.slideCount=r.length,g.currSlide=g.lastSlide=I,g.random?(++g.randomIndex==r.length&&(g.randomIndex=0),g.nextSlide=g.randomMap[g.randomIndex]):g.backwards?g.nextSlide=0===g.startingSlide?r.length-1:g.startingSlide-1:g.nextSlide=g.startingSlide>=r.length-1?0:g.startingSlide+1,!g.multiFx){var F=e.fn.cycle.transitions[g.fx];if(e.isFunction(F))F(n,s,g);else if("custom"!=g.fx&&!g.multiFx)return i("unknown transition: "+g.fx,"; slideshow terminating"),!1}var z=s[I];
vendor: 4,353 bytes, line 2226
2226return g.skipInitializationCallbacks||(g.before.length&&g.before[0].apply(z,[z,z,g,!0]),g.after.length&&g.after[0].apply(z,[z,z,g,!0])),g.next&&e(g.next).bind(g.prevNextEvent,function(){return m(g,1)}),g.prev&&e(g.prev).bind(g.prevNextEvent,function(){return m(g,0)}),(g.pager||g.pagerAnchorBuilder)&&v(r,g),p(g,r),g}function u(t){t.original={before:[],after:[]},t.original.cssBefore=e.extend({},t.cssBefore),t.original.cssAfter=e.extend({},t.cssAfter),t.original.animIn=e.extend({},t.animIn),t.original.animOut=e.extend({},t.animOut),e.each(t.before,function(){t.original.before.push(this)}),e.each(t.after,function(){t.original.after.push(this)})}function f(t){var n,a,r=e.fn.cycle.transitions;if(t.fx.indexOf(",")>0){for(t.multiFx=!0,t.fxs=t.fx.replace(/\s*/g,"").split(","),n=0;n<t.fxs.length;n++){var o=t.fxs[n];(a=r[o])&&r.hasOwnProperty(o)&&e.isFunction(a)||(i("discarding unknown transition: ",o),t.fxs.splice(n,1),n--)}if(!t.fxs.length)return i("No valid transitions named; slideshow terminating."),!1}else if("all"==t.fx)for(var c in t.multiFx=!0,t.fxs=[],r)r.hasOwnProperty(c)&&(a=r[c],r.hasOwnProperty(c)&&e.isFunction(a)&&t.fxs.push(c));if(t.multiFx&&t.randomizeEffects){var l=Math.floor(20*Math.random())+30;for(n=0;n<l;n++){var u=Math.floor(Math.random()*t.fxs.length);t.fxs.push(t.fxs.splice(u,1)[0])}s("randomized fx sequence: ",t.fxs)}return!0}function p(t,n){t.addSlide=function(s,i){var a=e(s),r=a[0];t.autostopCount||t.countdown++,n[i?"unshift":"push"](r),t.els&&t.els[i?"unshift":"push"](r),t.slideCount=n.length,t.random&&(t.randomMap.push(t.slideCount-1),t.randomMap.sort(function(e,t){return Math.random()-.5})),a.css("position","absolute"),a[i?"prependTo":"appendTo"](t.$cont),i&&(t.currSlide++,t.nextSlide++),e.support.opacity||!t.cleartype||t.cleartypeNoBg||y(a),t.fit&&t.width&&a.width(t.width),t.fit&&t.height&&"auto"!=t.height&&a.height(t.height),r.cycleH=t.fit&&t.height?t.height:a.height(),r.cycleW=t.fit&&t.width?t.width:a.width(),a.css(t.cssBefore),(t.pager||t.pagerAnchorBuilder)&&e.fn.cycle.createPagerAnchor(n.length-1,r,e(t.pager),n,t),e.isFunction(t.onAddSlide)?t.onAddSlide(a):a.hide()}}function d(n,i,a,r){var o=i.$cont[0],c=n[i.currSlide],l=n[i.nextSlide];if(a&&i.busy&&i.manualTrump&&(s("manualTrump in go(), stopping active transition"),e(n).stop(!0,!0),i.busy=0,clearTimeout(o.cycleTimeout)),i.busy)s("transition active, ignoring new tx request");else if(o.cycleStop==i.stopCount&&(0!==o.cycleTimeout||a))if(a||o.cyclePause||i.bounce||!(i.autostop&&--i.countdown<=0||i.nowrap&&!i.random&&i.nextSlide<i.currSlide)){var u,f=!1;if(!a&&o.cyclePause||i.nextSlide==i.currSlide)v();else{f=!0;var p=i.fx;c.cycleH=c.cycleH||e(c).height(),c.cycleW=c.cycleW||e(c).width(),l.cycleH=l.cycleH||e(l).height(),l.cycleW=l.cycleW||e(l).width(),i.multiFx&&(r&&(i.lastFx===t||++i.lastFx>=i.fxs.length)?i.lastFx=0:!r&&(i.lastFx===t||--i.lastFx<0)&&(i.lastFx=i.fxs.length-1),p=i.fxs[i.lastFx]),i.oneTimeFx&&(p=i.oneTimeFx,i.oneTimeFx=null),e.fn.cycle.resetState(i,p),i.before.length&&e.each(i.before,function(e,t){o.cycleStop==i.stopCount&&t.apply(l,[c,l,i,r])});var m=function(){i.busy=0,e.each(i.after,function(e,t){o.cycleStop==i.stopCount&&t.apply(l,[c,l,i,r])}),o.cycleStop||v()};s("tx firing("+p+"); currSlide: "+i.currSlide+"; nextSlide: "+i.nextSlide),i.busy=1,i.fxFn?i.fxFn(c,l,i,m,r,a&&i.fastOnEvent):e.isFunction(e.fn.cycle[i.fx])?e.fn.cycle[i.fx](c,l,i,m,r,a&&i.fastOnEvent):e.fn.cycle.custom(c,l,i,m,r,a&&i.fastOnEvent)}(f||i.nextSlide==i.currSlide)&&(i.lastSlide=i.currSlide,i.random?(i.currSlide=i.nextSlide,++i.randomIndex==n.length&&(i.randomIndex=0,i.randomMap.sort(function(e,t){return Math.random()-.5})),i.nextSlide=i.randomMap[i.randomIndex],i.nextSlide==i.currSlide&&(i.nextSlide=i.currSlide==i.slideCount-1?0:i.currSlide+1)):i.backwards?(u=i.nextSlide-1<0)&&i.bounce?(i.backwards=!i.backwards,i.nextSlide=1,i.currSlide=0):(i.nextSlide=u?n.length-1:i.nextSlide-1,i.currSlide=u?0:i.nextSlide+1):(u=i.nextSlide+1==n.length)&&i.bounce?(i.backwards=!i.backwards,i.nextSlide=n.length-2,i.currSlide=n.length-1):(i.nextSlide=u?0:i.nextSlide+1,i.currSlide=u?n.length-1:i.nextSlide-1)),f&&i.pager&&i.updateActivePagerLink(i.pager,i.currSlide,i.activePagerClass)}else i.end&&i.end(i);function v(){var e=0;i.timeout,i.timeout&&!i.continuous?(e=h(n[i.currSlide],n[i.nextSlide],i,r),"shuffle"==i.fx&&(e-=i.speedOut)):i.
vendor: 5,170 bytes, line 2226
2226continuous&&o.cyclePause&&(e=10),e>0&&(o.cycleTimeout=setTimeout(function(){d(n,i,0,!i.backwards)},e))}}function h(e,t,n,i){if(n.timeoutFn){for(var a=n.timeoutFn.call(e,e,t,n,i);"none"!=n.fx&&a-n.speed<250;)a+=n.speed;if(s("calculated timeout: "+a+"; speed: "+n.speed),!1!==a)return a}return n.timeout}function m(t,n){var s=n?1:-1,i=t.elements,a=t.$cont[0],r=a.cycleTimeout;if(r&&(clearTimeout(r),a.cycleTimeout=0),t.random&&s<0)t.randomIndex--,-2==--t.randomIndex?t.randomIndex=i.length-2:-1==t.randomIndex&&(t.randomIndex=i.length-1),t.nextSlide=t.randomMap[t.randomIndex];else if(t.random)t.nextSlide=t.randomMap[t.randomIndex];else if(t.nextSlide=t.currSlide+s,t.nextSlide<0){if(t.nowrap)return!1;t.nextSlide=i.length-1}else if(t.nextSlide>=i.length){if(t.nowrap)return!1;t.nextSlide=0}var o=t.onPrevNextEvent||t.prevNextClick;return e.isFunction(o)&&o(s>0,t.nextSlide,i[t.nextSlide]),d(i,t,1,n),!1}function v(t,n){var s=e(n.pager);e.each(t,function(i,a){e.fn.cycle.createPagerAnchor(i,a,s,t,n)}),n.updateActivePagerLink(n.pager,n.startingSlide,n.activePagerClass)}function y(t){function n(e){return(e=parseInt(e,10).toString(16)).length<2?"0"+e:e}function i(t){for(;t&&"html"!=t.nodeName.toLowerCase();t=t.parentNode){var s=e.css(t,"background-color");if(s&&s.indexOf("rgb")>=0){var i=s.match(/\d+/g);return"#"+n(i[0])+n(i[1])+n(i[2])}if(s&&"transparent"!=s)return s}return"#ffffff"}s("applying clearType background-color hack"),t.each(function(){e(this).css("background-color",i(this))})}e.expr[":"].paused=function(e){return e.cyclePause},e.fn.cycle=function(t,n){var a={s:this.selector,c:this.context};return 0===this.length&&"stop"!=t?!e.isReady&&a.s?(i("DOM not ready, queuing slideshow"),e(function(){e(a.s,a.c).cycle(t,n)}),this):(i("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this):this.each(function(){var o=r(this,t,n);if(!1!==o){o.updateActivePagerLink=o.updateActivePagerLink||e.fn.cycle.updateActivePagerLink,this.cycleTimeout&&clearTimeout(this.cycleTimeout),this.cycleTimeout=this.cyclePause=0,this.cycleStop=0;var c=e(this),u=o.slideExpr?e(o.slideExpr,this):c.children(),f=u.get();if(f.length<2)i("terminating; too few slides: "+f.length);else{var p=l(c,u,f,o,a);if(!1!==p){var m=p.continuous?10:h(f[p.currSlide],f[p.nextSlide],p,!p.backwards);m&&((m+=p.delay||0)<10&&(m=10),s("first timeout: "+m),this.cycleTimeout=setTimeout(function(){d(f,p,0,!o.backwards)},m))}}}})},e.fn.cycle.resetState=function(t,n){n=n||t.fx,t.before=[],t.after=[],t.cssBefore=e.extend({},t.original.cssBefore),t.cssAfter=e.extend({},t.original.cssAfter),t.animIn=e.extend({},t.original.animIn),t.animOut=e.extend({},t.original.animOut),t.fxFn=null,e.each(t.original.before,function(){t.before.push(this)}),e.each(t.original.after,function(){t.after.push(this)});var s=e.fn.cycle.transitions[n];e.isFunction(s)&&s(t.$cont,e(t.elements),t)},e.fn.cycle.updateActivePagerLink=function(t,n,s){e(t).each(function(){e(this).children().removeClass(s).eq(n).addClass(s)})},e.fn.cycle.next=function(e){m(e,1)},e.fn.cycle.prev=function(e){m(e,0)},e.fn.cycle.createPagerAnchor=function(t,n,i,r,o){var c;if(e.isFunction(o.pagerAnchorBuilder)?(c=o.pagerAnchorBuilder(t,n),s("pagerAnchorBuilder("+t+", el) returned: "+c)):c='<a href="#">'+(t+1)+"</a>",c){var l=e(c);if(0===l.parents("body").length){var u=[];i.length>1?(i.each(function(){var t=l.clone(!0);e(this).append(t),u.push(t[0])}),l=e(u)):l.appendTo(i)}o.pagerAnchors=o.pagerAnchors||[],o.pagerAnchors.push(l);var f=function(n){n.preventDefault(),o.nextSlide=t;var s=o.$cont[0],i=s.cycleTimeout;i&&(clearTimeout(i),s.cycleTimeout=0);var a=o.onPagerEvent||o.pagerClick;e.isFunction(a)&&a(o.nextSlide,r[o.nextSlide]),d(r,o,1,o.currSlide<t)};/mouseenter|mouseover/i.test(o.pagerEvent)?l.hover(f,function(){}):l.bind(o.pagerEvent,f),/^click/.test(o.pagerEvent)||o.allowPagerClickBubble||l.bind("click.cycle",function(){return!1});var p=o.$cont[0],h=!1;o.pauseOnPagerHover&&l.hover(function(){h=!0,p.cyclePause++,a(p,!0,!0)},function(){h&&p.cyclePause--,a(p,!0,!0)})}},e.fn.cycle.hopsFromLast=function(e,t){var n=e.lastSlide,s=e.currSlide;return t?s>n?s-n:e.slideCount-n:s<n?n-s:n+e.slideCount-s},e.fn.cycle.commonReset=function(t,n,s,i,a,r){e(s.elements).not(t).hide(),void 0===s.cssBefore.opacity&&(s.cssBefore.opacity=1),s.cssBefore.display="block",s.slideResize&&!1!==i&&n.cycleW>0&&(s.cssBefore.width=n.cycleW),s.slideResize&&!1!==a&&n.cycleH>0&&(s.cssBefore.height=n.cycleH),s.cssAfter=s.cssAfter||{},s.cssAfter.display="none",e(t).css("zIndex",s.slideCount+(!0===r?1:0)),e(n).css("zIndex",s.slideCount+(!0===r?0:1))},e.fn.cycle.custom=function(t,n,s,i,a,r){var o=e(t),c=e(n),l=s.speedIn,u=s.speedOut,f=s.easeIn,p=s.easeOut,d=s.animInDelay,h=s.animOutDelay;c.css(s.cssBefore),r&&(l=u="number"==typeof r?r:1,f=p=null);var m=function(){c.delay(d).animate(s.animIn,l,f,function(){i()})};o.delay(h).animate(s.animOut,u,p,function(){o.css(s.cssAfter),s.sync||m()}),s.sync&&m()},e.fn.cycle.transitions={fade:function(t,n,s){n.not(":eq("+s.currSlide+")").css("opacity",0),s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.cssBefore.opacity=0}),s.animIn={opacity:1},s.animOut={opacity:0}
2226,s.cssBefore={top:0,left:0}}},e.fn.cycle.ver=function(){return n},e.fn.cycle.defaults={activePagerClass:"activeSlide",after:null,allowPagerClickBubble:!1,animIn:null,animInDelay:0,animOut:null,animOutDelay:0,aspect:!1,autostop:0,autostopCount:0,backwards:!1,before:null,center:null,cleartype:!e.support.opacity,cleartypeNoBg:!1,containerResize:1,containerResizeHeight:0,continuous:0,cssAfter:null,cssBefore:null,delay:0,easeIn:null,easeOut:null,easing:null,end:null,fastOnEvent:0,fit:0,fx:"fade",fxFn:null,height:"auto",manualTrump:!0,metaAttr:"cycle",next:null,nowrap:0,onPagerEvent:null,onPrevNextEvent:null,pager:null,pagerAnchorBuilder:null,pagerEvent:"click.cycle",pause:0,pauseOnPagerHover:0,prev:null,prevNextEvent:"click.cycle",random:0,randomizeEffects:1,requeueOnImageNotLoaded:!0,requeueTimeout:250,rev:0,shuffle:null,skipInitializationCallbacks:!1,slideExpr:null,slideResize:1,speed:1e3,speedIn:null,speedOut:null,startingSlide:t,sync:1,timeout:4e3,timeoutFn:null,updateActivePagerLink:null,width:null},e.fn.cycle.transitions.none=function(t,n,s){s.fxFn=function(t,n,s,i){e(n).show(),e(t).hide(),i()}},e.fn.cycle.transitions.fadeout=function(t,n,s){n.not(":eq("+s.currSlide+")").css({display:"block",opacity:1}),s.before.push(function(t,n,s,i,a,r){e(t).css("zIndex",s.slideCount+(!0!==r?1:0)),e(n).css("zIndex",s.slideCount+(!0!==r?0:1))}),s.animIn.opacity=1,s.animOut.opacity=0,s.cssBefore.opacity=1,s.cssBefore.display="block",s.cssAfter.zIndex=0},e.fn.cycle.transitions.scrollUp=function(t,n,s){t.css("overflow","hidden"),s.before.push(e.fn.cycle.commonReset);var i=t.height();s.cssBefore.top=i,s.cssBefore.left=0,s.cssFirst.top=0,s.animIn.top=0,s.animOut.top=-i},e.fn.cycle.transitions.scrollDown=function(t,n,s){t.css("overflow","hidden"),s.before.push(e.fn.cycle.commonReset);var i=t.height();s.cssFirst.top=0,s.cssBefore.top=-i,s.cssBefore.left=0,s.animIn.top=0,s.animOut.top=i},e.fn.cycle.transitions.scrollLeft=function(t,n,s){t.css("overflow","hidden"),s.before.push(e.fn.cycle.commonReset);var i=t.width();s.cssFirst.left=0,s.cssBefore.left=i,s.cssBefore.top=0,s.animIn.left=0,s.animOut.left=0-i},e.fn.cycle.transitions.scrollRight=function(t,n,s){t.css("overflow","hidden"),s.before.push(e.fn.cycle.commonReset);var i=t.width();s.cssFirst.left=0,s.cssBefore.left=-i,s.cssBefore.top=0,s.animIn.left=0,s.animOut.left=i},e.fn.cycle.transitions.scrollHorz=function(t,n,s){t.css("overflow","hidden").width(),s.before.push(function(t,n,s,i){s.rev&&(i=!i),e.fn.cycle.commonReset(t,n,s),s.cssBefore.left=i?n.cycleW-1:1-n.cycleW,s.animOut.left=i?-t.cycleW:t.cycleW}),s.cssFirst.left=0,s.cssBefore.top=0,s.animIn.left=0,s.animOut.top=0},e.fn.cycle.transitions.scrollVert=function(t,n,s){t.css("overflow","hidden"),s.before.push(function(t,n,s,i){s.rev&&(i=!i),e.fn.cycle.commonReset(t,n,s),s.cssBefore.top=i?1-n.cycleH:n.cycleH-1,s.animOut.top=i?t.cycleH:-t.cycleH}),s.cssFirst.top=0,s.cssBefore.left=0,s.animIn.top=0,s.animOut.left=0},e.fn.cycle.transitions.slideX=function(t,n,s){s.before.push(function(t,n,s){e(s.elements).not(t).hide(),e.fn.cycle.commonReset(t,n,s,!1,!0),s.animIn.width=n.cycleW}),s.cssBefore.left=0,s.cssBefore.top=0,s.cssBefore.width=0,s.animIn.width="show",s.animOut.width=0},e.fn.cycle.transitions.slideY=function(t,n,s){s.before.push(function(t,n,s){e(s.elements).not(t).hide(),e.fn.cycle.commonReset(t,n,s,!0,!1),s.animIn.height=n.cycleH}),s.cssBefore.left=0,s.cssBefore.top=0,s.cssBefore.height=0,s.animIn.height="show",s.animOut.height=0},e.fn.cycle.transitions.shuffle=function(t,n,s){var i,a=t.css("overflow","visible").width();for(n.css({left:0,top:0}),s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!0,!0)}),s.speedAdjusted||(s.speed=s.speed/2,s.speedAdjusted=!0),s.random=0,s.shuffle=s.shuffle||{left:-a,top:15},s.els=[],i=0;i<n.length;i++)s.els.push(n[i]);for(i=0;i<s.currSlide;i++)s.els.push(s.els.shift());s.fxFn=function(t,n,s,i,a){s.rev&&(a=!a);var r=e(a?t:n);e(n).css(s.cssBefore);var o=s.slideCount;r.animate(s.shuffle,s.speedIn,s.easeIn,function(){for(var n=e.fn.cycle.hopsFromLast(s,a),c=0;c<n;c++)a?s.els.push(s.els.shift()):s.els.unshift(s.els.pop());if(a)for(var l=0,u=s.els.length;l<u;l++)e(s.els[l]).css("z-index",u-l+o);else{var f=e(t).css("z-index");r.css("z-index",parseInt(f,10)+1+o)}r.animate({left:0,top:0},s.speedOut,s.easeOut,function(){e(a?this:t).hide(),i&&i()})})},e.extend(s.cssBefore,{display:"block",opacity:1,top:0,left:0})},e.fn.cycle.transitions.turnUp=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!1),s.cssBefore.top=n.cycleH,s.animIn.height=n.cycleH,s.animOut.width=n.cycleW}),s.cssFirst.top=0,s.cssBefore.left=0,s.cssBefore.height=0,s.animIn.top=0,s.animOut.height=0},e.fn.cycle.transitions.turnDown=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!1),s.animIn.height=n.cycleH,s.animOut.top=t.cycleH}),s.cssFirst.top=0,s.cssBefore.left=0,s.cssBefore.top=0,s.cssBefore.height=0,s.animOut.height=0},e.fn.cycle.transitions.turnLeft=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!0),s.cssBefore.left=n.cycleW,s.animIn.width=n.cycleW}),s.cssBefore.top=0,s.cssBefore.width=0,s.animIn.left=0,s.animOut.width=0},e.fn.cycle.transitions.turnRight=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!0),s.animIn.width=n.cycleW,s.animOut.left=t.cycleW}),e.extend(s.cssBefore,{top:0,left:0,width:0}),s.animIn.left=0,s.animOut.width=0},e.fn.cycle.transitions.zoom=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!1,
2226!0),s.cssBefore.top=n.cycleH/2,s.cssBefore.left=n.cycleW/2,e.extend(s.animIn,{top:0,left:0,width:n.cycleW,height:n.cycleH}),e.extend(s.animOut,{width:0,height:0,top:t.cycleH/2,left:t.cycleW/2})}),s.cssFirst.top=0,s.cssFirst.left=0,s.cssBefore.width=0,s.cssBefore.height=0},e.fn.cycle.transitions.fadeZoom=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!1),s.cssBefore.left=n.cycleW/2,s.cssBefore.top=n.cycleH/2,e.extend(s.animIn,{top:0,left:0,width:n.cycleW,height:n.cycleH})}),s.cssBefore.width=0,s.cssBefore.height=0,s.animOut.opacity=0},e.fn.cycle.transitions.blindX=function(t,n,s){var i=t.css("overflow","hidden").width();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.animIn.width=n.cycleW,s.animOut.left=t.cycleW}),s.cssBefore.left=i,s.cssBefore.top=0,s.animIn.left=0,s.animOut.left=i},e.fn.cycle.transitions.blindY=function(t,n,s){var i=t.css("overflow","hidden").height();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.animIn.height=n.cycleH,s.animOut.top=t.cycleH}),s.cssBefore.top=i,s.cssBefore.left=0,s.animIn.top=0,s.animOut.top=i},e.fn.cycle.transitions.blindZ=function(t,n,s){var i=t.css("overflow","hidden").height(),a=t.width();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.animIn.height=n.cycleH,s.animOut.top=t.cycleH}),s.cssBefore.top=i,s.cssBefore.left=a,s.animIn.top=0,s.animIn.left=0,s.animOut.top=i,s.animOut.left=a},e.fn.cycle.transitions.growX=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!0),s.cssBefore.left=this.cycleW/2,s.animIn.left=0,s.animIn.width=this.cycleW,s.animOut.left=0}),s.cssBefore.top=0,s.cssBefore.width=0},e.fn.cycle.transitions.growY=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!1),s.cssBefore.top=this.cycleH/2,s.animIn.top=0,s.animIn.height=this.cycleH,s.animOut.top=0}),s.cssBefore.height=0,s.cssBefore.left=0},e.fn.cycle.transitions.curtainX=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!0,!0),s.cssBefore.left=n.cycleW/2,s.animIn.left=0,s.animIn.width=this.cycleW,s.animOut.left=t.cycleW/2,s.animOut.width=0}),s.cssBefore.top=0,s.cssBefore.width=0},e.fn.cycle.transitions.curtainY=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!1,!0),s.cssBefore.top=n.cycleH/2,s.animIn.top=0,s.animIn.height=n.cycleH,s.animOut.top=t.cycleH/2,s.animOut.height=0}),s.cssBefore.height=0,s.cssBefore.left=0},e.fn.cycle.transitions.cover=function(t,n,s){var i=s.direction||"left",a=t.css("overflow","hidden").width(),r=t.height();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.cssAfter.display="","right"==i?s.cssBefore.left=-a:"up"==i?s.cssBefore.top=r:"down"==i?s.cssBefore.top=-r:s.cssBefore.left=a}),s.animIn.left=0,s.animIn.top=0,s.cssBefore.top=0,s.cssBefore.left=0},e.fn.cycle.transitions.uncover=function(t,n,s){var i=s.direction||"left",a=t.css("overflow","hidden").width(),r=t.height();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!0,!0),"right"==i?s.animOut.left=a:"up"==i?s.animOut.top=-r:"down"==i?s.animOut.top=r:s.animOut.left=-a}),s.animIn.left=0,s.animIn.top=0,s.cssBefore.top=0,s.cssBefore.left=0},e.fn.cycle.transitions.toss=function(t,n,s){var i=t.css("overflow","visible").width(),a=t.height();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!0,!0),s.animOut.left||s.animOut.top?s.animOut.opacity=0:e.extend(s.animOut,{left:2*i,top:-a/2,opacity:0})}),s.cssBefore.left=0,s.cssBefore.top=0,s.animIn.left=0},e.fn.cycle.transitions.wipe=function(t,n,s){var i,a=t.css("overflow","hidden").width(),r=t.height();if(s.cssBefore=s.cssBefore||{},s.clip)if(/l2r/.test(s.clip))i="rect(0px 0px "+r+"px 0px)";else if(/r2l/.test(s.clip))i="rect(0px "+a+"px "+r+"px "+a+"px)";else if(/t2b/.test(s.clip))i="rect(0px "+a+"px 0px 0px)";else if(/b2t/.test(s.clip))i="rect("+r+"px "+a+"px "+r+"px 0px)";else if(/zoom/.test(s.clip)){var o=parseInt(r/2,10),c=parseInt(a/2,10);i="rect("+o+"px "+c+"px "+o+"px "+c+"px)"}s.cssBefore.clip=s.cssBefore.clip||i||"rect(0px 0px 0px 0px)";var l=s.cssBefore.clip.match(/(\d+)/g),u=parseInt(l[0],10),f=parseInt(l[1],10),p=parseInt(l[2],10),d=parseInt(l[3],10);s.before.push(function(t,n,s){if(t!=n){var i=e(t),o=e(n);e.fn.cycle.commonReset(t,n,s,!0,!0,!1),s.cssAfter.display="block";var c=1,l=parseInt(s.speedIn/13,10)-1;!function e(){var t=u?u-parseInt(c*(u/l),10):0,n=d?d-parseInt(c*(d/l),10):0,s=p<r?p+parseInt(c*((r-p)/l||1),10):r,h=f<a?f+parseInt(c*((a-f)/l||1),10):a;o.css({clip:"rect("+t+"px "+h+"px "+s+"px "+n+"px)"}),c++<=l?setTimeout(e,13):i.css("display","none")}()}}),e.extend(s.cssBefore,{display:"block",opacity:1,top:0,left:0}),s.animIn={left:0},s.animOut={left:0}}},void 0===(a="function"==typeof s?s.apply(t,i):s)||(e.exports=a)},8240(){!function(e){function t(e,t){t&&e.append(t.jquery?t.clone():t)}function n(t,n,s){var i,a,r,o=n.clone(s.formValues);s.formValues&&(i=o,a="select, textarea",r=n.find(a),i.find(a).each(function(t,n){e(n).val(r.eq(t).val())})),s.removeScripts&&o.find("script").remove(),s.printContainer?o.appendTo(t):o.each(function(){e(this).children().appendTo(t)})}var s;e.fn.printThis=function(i){s=e.extend({},e.fn.printThis.defaults,i);var a=this instanceof jQuery?this:e(this),r="printThis-"+(new Date).getTime();if(window.location.hostname!==document.domain&&navigator.userAgent.match(/msie/i)){var o='javascript:document.write("<head><script>document.domain=\\"'+document.domain+'\\";<\/script></head><body></body>")',c=document.createElement("iframe");c.name="printIframe",c.id=r,c.className="MSIE",document.body.appendChild(c),c.src=o}else{e("<iframe id='"+r+"' name='printIframe' />").appendTo("body")}var l=e("#"+r);s.debug||l.css({position:"absolute",width:"0px",height:"0px",left:"-600px",top:"-600px"}),"function"==typeof s.beforePrint&&s.beforePrint(),setTimeout(function(){s.doctype
2226String&&function(e,t){var n,s;(s=(n=(n=e.get(0)).contentWindow||n.contentDocument||n).document||n.contentDocument||n).open(),s.write(t),s.close()}(l,s.doctypeString);var i,r=l.contents(),o=r.find("head"),c=r.find("body"),u=e("base");i=!0===s.base&&u.length>0?u.attr("href"):"string"==typeof s.base?s.base:document.location.protocol+"//"+document.location.host,o.append('<base href="'+i+'">'),s.importCSS&&e("link[rel=stylesheet]").each(function(){var t=e(this).attr("href");if(t){var n=e(this).attr("media")||"all";o.append("<link type='text/css' rel='stylesheet' href='"+t+"' media='"+n+"'>")}}),s.importStyle&&e("style").each(function(){o.append(this.outerHTML)}),s.pageTitle&&o.append("<title>"+s.pageTitle+"</title>"),s.loadCSS&&(e.isArray(s.loadCSS)?jQuery.each(s.loadCSS,function(e,t){o.append("<link type='text/css' rel='stylesheet' href='"+this+"'>")}):o.append("<link type='text/css' rel='stylesheet' href='"+s.loadCSS+"'>"));var f=e("html")[0];r.find("html").prop("style",f.style.cssText);var p=s.copyTagClasses;if(p&&(-1!==(p=!0===p?"bh":p).indexOf("b")&&c.addClass(e("body")[0].className),-1!==p.indexOf("h")&&r.find("html").addClass(f.className)),(p=s.copyTagStyles)&&(-1!==(p=!0===p?"bh":p).indexOf("b")&&c.attr("style",e("body")[0].style.cssText),-1!==p.indexOf("h")&&r.find("html").attr("style",f.style.cssText)),t(c,s.header),s.canvas){var d=0;a.find("canvas").addBack("canvas").each(function(){e(this).attr("data-printthis",d++)})}if(n(c,a,s),s.canvas&&c.find("canvas").each(function(){var t=e(this).data("printthis"),n=e('[data-printthis="'+t+'"]');this.getContext("2d").drawImage(n[0],0,0),e.isFunction(e.fn.removeAttr)?n.removeAttr("data-printthis"):e.each(n,function(e,t){t.removeAttribute("data-printthis")})}),s.removeInline){var h=s.removeInlineSelector||"*";e.isFunction(e.removeAttr)?c.find(h).removeAttr("style"):c.find(h).attr("style","")}t(c,s.footer),function(e,t){var n=e.get(0);n=n.contentWindow||n.contentDocument||n,"function"==typeof t&&("matchMedia"in n?n.matchMedia("print").addListener(function(e){e.matches&&t()}):n.onbeforeprint=t)}(l,s.beforePrintEvent),setTimeout(function(){l.hasClass("MSIE")?(window.frames.printIframe.focus(),o.append("<script> window.print(); <\/script>")):document.queryCommandSupported("print")?l[0].contentWindow.document.execCommand("print",!1,null):(l[0].contentWindow.focus(),l[0].contentWindow.print()),s.debug||setTimeout(function(){l.remove()},1e3),"function"==typeof s.afterPrint&&s.afterPrint()},s.printDelay)},333)},e.fn.printThis.defaults={debug:!1,importCSS:!0,importStyle:!0,printContainer:!0,loadCSS:"",pageTitle:"",removeInline:!1,removeInlineSelector:"*",printDelay:1e3,header:null,footer:null,base:!1,formValues:!0,canvas:!0,doctypeString:"<!DOCTYPE html>",removeScripts:!1,copyTagClasses:!0,copyTagStyles:!0,beforePrintEvent:null,beforePrint:null,afterPrint:null}}(jQuery)},428(e){"use strict";e.exports=window.jQuery}};const t={};function n(s){const i=t[s];if(void 0!==i)return i.exports;const a=t[s]={exports:{}};return e[s](a,a.exports,n),a.exports}n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.hasOwn(e,t),(()=>{"use strict";n(5896),n(8240),n(8395)})()})();; 2227(()=>{function e(e,t,i){this.element=e,this.images=[],this.controls={},this.transition=t||"fade",this.autostart=i}e.prototype.showLoadingImage=function(e){if(e){this.loadingImage_=document.createElement("div"),this.loadingImage_.className="jetpack-slideshow-loading";var t=document.createElement("img");t.src=jetpackSlideshowSettings.spinner,this.loadingImage_.appendChild(t),this.loadingImage_.appendChild(this.makeZeroWidthSpan()),this.element.append(this.loadingImage_)}else this.loadingImage_&&(this.loadingImage_.parentNode.removeChild(this.loadingImage_),this.loadingImage_=null)},e.prototype.init=function(){this.showLoadingImage(!0);for(var e=this,t=0;t<this.images.length;t++){var i=this.images[t],s=document.createElement("img");s.src=i.src,s.title=void 0!==i.title?i.title:"",s.alt=void 0!==i.alt?i.alt:"",s.setAttribute("itemprop","image"),s.nopin="nopin";var n=document.createElement("div");
2227n.className="jetpack-slideshow-slide-caption",n.setAttribute("itemprop","caption description"),n.innerHTML=i.caption;var o=document.createElement("div");o.className="jetpack-slideshow-slide",o.setAttribute("itemprop","associatedMedia"),o.setAttribute("itemscope",""),o.setAttribute("itemtype","https://schema.org/ImageObject"),0===t&&(s.complete?setTimeout(function(){e.finishInit_()},1):s.addEventListener("load",function(){e.finishInit_()})),o.appendChild(s),s.removeAttribute("width"),s.removeAttribute("height"),o.appendChild(this.makeZeroWidthSpan()),o.appendChild(n),this.element.append(o)}},e.prototype.makeZeroWidthSpan=function(){var e=document.createElement("span");return e.className="jetpack-slideshow-line-height-hack",-1!==window.navigator.userAgent.indexOf("MSIE ")?e.appendChild(document.createTextNode(" ")):e.innerHTML=" ",e},e.prototype.finishInit_=function(){this.showLoadingImage(!1);var e=this;if(this.images.length>1){this.renderControls_(),jQuery(this.element).cycle({fx:this.transition,prev:this.controls.prev,next:this.controls.next,timeout:jetpackSlideshowSettings.speed,slideExpr:".jetpack-slideshow-slide",onPrevNextEvent:function(){return e.onCyclePrevNextClick_.apply(e,arguments)}});var t=this.element;this.autostart||(jQuery(t).cycle("pause"),this.controls.stop.classList.remove("running"),this.controls.stop.classList.add("paused")),this.controls.stop.addEventListener("click",function(e){var i=e.currentTarget;i===e.target&&(e.preventDefault(),i.classList.contains("paused")?(i.classList.add("running"),i.classList.remove("paused"),jQuery(t).cycle("resume",!0)):(jQuery(t).cycle("pause"),i.classList.remove("running"),i.classList.add("paused")))})}else this.element.children.length&&(this.element.children[0].style.display="block",this.element.style.position="relative");this.initialized_=!0},e.prototype.renderControls_=function(){if(!this.controlsDiv_){var e=document.createElement("div");e.className="jetpack-slideshow-controls";for(var t=["prev","stop","next"],i=0;i<t.length;i++){var s=t[i],n="label_"+s,o=document.createElement("a");o.href="#",o.className="button-"+s,o.setAttribute("aria-label",jetpackSlideshowSettings[n]),o.setAttribute("role","button"),e.appendChild(o),this.controls[s]=o}this.element.append(e),this.controlsDiv_=e}},e.prototype.onCyclePrevNextClick_=function(e,t){if(jetpackSlideshowSettings.blog_id){var i=this.images[t].id;(new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?host="+encodeURIComponent(document.location.host)+"&rand="+Math.random()+"&blog="+jetpackSlideshowSettings.blog_id+"&subd="+jetpackSlideshowSettings.blog_subdomain+"&user_id="+jetpackSlideshowSettings.user_id+"&post="+i+"&ref="+encodeURIComponent(document.location)}},function(){function t(){document.querySelectorAll(".jetpack-slideshow-noscript").forEach(function(e){e.remove()}),document.querySelectorAll(".jetpack-slideshow").forEach(function(t){if("true"!==t.dataset.processed){var i=t.dataset.trans,s="true"===t.dataset.autostart,n=JSON.parse(t.dataset.gallery||"[]"),o=new e(t,i,s);o.images=n,o.init(),t.dataset.processed="true"}})}document.addEventListener("DOMContentLoaded",t),document.body.addEventListener("post-load",t)}()})();; 2228/** 2229 * Observe how the user enters content into the comment form in order to determine whether it's a bot or not. 2230 * 2231 * Note that no actual input is being saved here, only counts and timings between events. 2232 */ 2233 2234( function() { 2235 // Passive event listeners are guaranteed to never call e.preventDefault(), 2236 // but they're not supported in all browsers. Use this feature detection 2237 // to determine whether they're available for use. 2238 var supportsPassive = false; 2239 2240 try { 2241 var opts = Object.defineProperty( {}, 'passive', { 2242 get : function() { 2243 supportsPassive = true; 2244 } 2245 } ); 2246 2247 window.addEventListener( 'testPassive', null, opts ); 2248 window.removeEventListener( 'testPassive', null, opts ); 2249 } catch ( e ) {} 2250 2251 function init() { 2252 var input_begin = ''; 2253 2254 var keydowns = {}; 2255 var lastKeyup = null; 2256 var lastKeydown = null; 2257 var keypresses = []; 2258 2259 var modifierKeys = []; 2260 var correctionKeys = []; 2261 2262 var lastMouseup = null; 2263 var lastMousedown = null; 2264 var mouseclicks = []; 2265 var mouseclickCoordinates = []; 2266 2267 var mousemoveTimer = null; 2268 var lastMousemoveX = null; 2269 var lastMousemoveY = null; 2270 var lastMousemoveTime = null; 2271 var mousemoveStart = null; 2272 var mousemoves = []; 2273 var intervalsBetweenMousemovesAndClicks = []; 2274 2275 var touchmoveCountTimer = null; 2276 var touchmoveCount = 0; 2277 2278 var lastTouchEnd = null; 2279 var lastTouchStart = null; 2280 var touchEvents = []; 2281 2282 var scrollCountTimer = null; 2283 var scrollCount = 0; 2284 2285 var correctionKeyCodes = [ 'Backspace', 'Delete', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'PageUp', 'PageDown' ]; 2286 var modifierKeyCodes = [ 'Shift', 'CapsLock' ]; 2287 2288 var forms = document.querySelectorAll( 'form[method=post]' ); 2289 2290 for ( var i = 0; i < forms.length; i++ ) { 2291 var form = forms[i]; 2292 2293 var formAction = form.getAttribute( 'action' ); 2294 2295 // Ignore forms that POST directly to other domains; these could be things like payment forms. 2296 if ( formAction ) { 2297 // Check that the form is posting to an external URL, not a path. 2298 if ( formAction.indexOf( 'http://' ) == 0 || formAction.indexOf( 'https://' ) == 0 ) { 2299 if ( formAction.indexOf( 'http://' + window.location.hostname + '/' ) != 0 && formAction.indexOf( 'https://' + window.location.hostname + '/' ) != 0 ) { 2300 continue; 2301 } 2302 } 2303 } 2304 2305 form.addEventListener( 'submit', function () { 2306 var ak_bkp = prepare_array_for_request( keypresses ); 2307 var ak_bmc = prepare_array_for_request( mouseclicks ); 2308 var ak_bte = prepare_array_for_request( touchEvents ); 2309 var ak_bmm = prepare_array_for_request( mousemoves ); 2310 var ak_bcc = prepare_array_for_request( mouseclickCoordinates ); 2311 var ak_bibmac = intervalsBetweenMousemovesAndClicks.slice( 0, 100 ).join( ';' ); 2312 2313 var input_fields = { 2314 // When did the user begin entering any input? 2315 'bib': input_begin, 2316 2317 // When was the form submitted? 2318 'bfs': Date.now(), 2319 2320 // How many keypresses did they make? 2321 'bkpc': keypresses.length, 2322
2323 // How quickly did they press a sample of keys, and how long between them? 2324 'bkp': ak_bkp, 2325 2326 // How quickly did they click the mouse, and how long between clicks? 2327 'bmc': ak_bmc, 2328 2329 // How many mouseclicks did they make? 2330 'bmcc': mouseclicks.length, 2331 2332 // When did they press modifier keys (like Shift or Capslock)? 2333 'bmk': modifierKeys.join( ';' ), 2334 2335 // When did they correct themselves? e.g., press Backspace, or use the arrow keys to move the cursor back 2336 'bck': correctionKeys.join( ';' ), 2337 2338 // How many times did they move the mouse? 2339 'bmmc': mousemoves.length, 2340 2341 // How many times did they move around using a touchscreen? 2342 'btmc': touchmoveCount, 2343 2344 // How many times did they scroll? 2345 'bsc': scrollCount, 2346 2347 // How quickly did they perform touch events, and how long between them? 2348 'bte': ak_bte, 2349 2350 // How many touch events were there? 2351 'btec' : touchEvents.length, 2352 2353 // How quickly did they move the mouse, and how long between moves? 2354 'bmm' : ak_bmm, 2355 2356 // Click coordinates 2357 'bcc' : ak_bcc, 2358 2359 // Milliseconds between last mouse movement and each click 2360 'bibmac' : ak_bibmac 2361 }; 2362 2363 var akismet_field_prefix = 'ak_'; 2364 2365 if ( this.getElementsByClassName ) { 2366 // Check to see if we've used an alternate field name prefix. We store this as an attribute of the container around some of the Akismet fields. 2367 var possible_akismet_containers = this.getElementsByClassName( 'akismet-fields-container' ); 2368 2369 for ( var containerIndex = 0; containerIndex < possible_akismet_containers.length; containerIndex++ ) { 2370 var container = possible_akismet_containers.item( containerIndex ); 2371 2372 if ( container.getAttribute( 'data-prefix' ) ) { 2373 akismet_field_prefix = container.getAttribute( 'data-prefix' ); 2374 break; 2375 } 2376 } 2377 } 2378 2379 for ( var field_name in input_fields ) { 2380 var field = document.createElement( 'input' ); 2381 field.setAttribute( 'type', 'hidden' ); 2382 field.setAttribute( 'name', akismet_field_prefix + field_name ); 2383 field.setAttribute( 'value', input_fields[ field_name ] ); 2384 this.appendChild( field ); 2385 } 2386 }, supportsPassive ? { passive: true } : false ); 2387 2388 form.addEventListener( 'keydown', function ( e ) { 2389 // If you hold a key down, some browsers send multiple keydown events in a row. 2390 // Ignore any keydown events for a key that hasn't come back up yet. 2391 if ( e.key in keydowns ) { 2392 return; 2393 } 2394 2395 var keydownTime = ( new Date() ).getTime(); 2396 keydowns[ e.key ] = [ keydownTime ]; 2397 2398 if ( ! input_begin ) { 2399 input_begin = keydownTime; 2400 } 2401 2402 // In some situations, we don't want to record an interval since the last keypress -- for example, 2403 // on the first keypress, or on a keypress after focus has changed to another element. Normally, 2404 // we want to record the time between the last keyup and this keydown. But if they press a 2405 // key while already pressing a key, we want to record the time between the two keydowns. 2406 2407 var lastKeyEvent = Math.max( lastKeydown, lastKeyup ); 2408 2409 if ( lastKeyEvent ) { 2410 keydowns[ e.key ].push( keydownTime - lastKeyEvent ); 2411 } 2412 2413 lastKeydown = keydownTime; 2414 }, supportsPassive ? { passive: true } : false ); 2415 2416 form.addEventListener( 'keyup', function ( e ) { 2417 if ( ! ( e.key in keydowns ) ) { 2418 // This key was pressed before this script was loaded, or a mouseclick happened during the keypress, or... 2419 return; 2420 } 2421 2422 var keyupTime = ( new Date() ).getTime(); 2423 2424 if ( 'TEXTAREA' === e.target.nodeName || 'INPUT' === e.target.nodeName ) { 2425 if ( -1 !== modifierKeyCodes.indexOf( e.key ) ) { 2426 modifierKeys.push( keypresses.length - 1 ); 2427 } else if ( -1 !== correctionKeyCodes.indexOf( e.key ) ) { 2428 correctionKeys.push( keypresses.length - 1 ); 2429 } else { 2430 // ^ Don't record timings for keys like Shift or backspace, since they 2431 // typically get held down for longer than regular typing. 2432 2433 var keydownTime = keydowns[ e.key ][0]; 2434 2435 var keypress = []; 2436 2437 // Keypress duration. 2438 keypress.push( keyupTime - keydownTime ); 2439 2440 // Amount of time between this keypress and the previous keypress. 2441 if ( keydowns[ e.key ].length > 1 ) { 2442 keypress.push( keydowns[ e.key ][1] ); 2443 } 2444 2445 keypresses.push( keypress ); 2446 } 2447 } 2448
2449 delete keydowns[ e.key ]; 2450 2451 lastKeyup = keyupTime; 2452 }, supportsPassive ? { passive: true } : false ); 2453 2454 form.addEventListener( "focusin", function ( e ) { 2455 lastKeydown = null; 2456 lastKeyup = null; 2457 keydowns = {}; 2458 }, supportsPassive ? { passive: true } : false ); 2459 2460 form.addEventListener( "focusout", function ( e ) { 2461 lastKeydown = null; 2462 lastKeyup = null; 2463 keydowns = {}; 2464 }, supportsPassive ? { passive: true } : false ); 2465 } 2466 2467 document.addEventListener( 'mousedown', function ( e ) { 2468 lastMousedown = ( new Date() ).getTime(); 2469 2470 if ( lastMousemoveTime ) { 2471 intervalsBetweenMousemovesAndClicks.push( lastMousedown - lastMousemoveTime ); 2472 } 2473 2474 var mouseclickCoordinate = []; 2475 2476 var rect = e.target.getBoundingClientRect(); 2477 var relativeX = e.clientX - rect.left; 2478 var relativeY = e.clientY - rect.top; 2479 2480 // Pixel offset of the click within the target element. 2481 mouseclickCoordinate.push( Math.round( relativeX ) ); 2482 mouseclickCoordinate.push( Math.round( relativeY ) ); 2483 2484 // Percentage offset of the click within the target element. 2485 mouseclickCoordinate.push( rect.width > 0 ? Math.round( relativeX / rect.width * 100 ) : 0 ); 2486 mouseclickCoordinate.push( rect.height > 0 ? Math.round( relativeY / rect.height * 100 ) : 0 ); 2487 2488 mouseclickCoordinates.push( mouseclickCoordinate ); 2489 }, supportsPassive ? { passive: true } : false ); 2490 2491 document.addEventListener( 'mouseup', function ( e ) { 2492 if ( ! lastMousedown ) { 2493 // If the mousedown happened before this script was loaded, but the mouseup happened after... 2494 return; 2495 } 2496 2497 var now = ( new Date() ).getTime(); 2498 2499 var mouseclick = []; 2500 mouseclick.push( now - lastMousedown ); 2501 2502 if ( lastMouseup ) { 2503 mouseclick.push( lastMousedown - lastMouseup ); 2504 } 2505 2506 mouseclicks.push( mouseclick ); 2507 2508 lastMouseup = now; 2509 2510 // If the mouse has been clicked, don't record this time as an interval between keypresses. 2511 lastKeydown = null; 2512 lastKeyup = null; 2513 keydowns = {}; 2514 }, supportsPassive ? { passive: true } : false ); 2515 2516 document.addEventListener( 'mousemove', function ( e ) { 2517 lastMousemoveTime = ( new Date() ).getTime(); 2518 2519 if ( mousemoveTimer ) { 2520 clearTimeout( mousemoveTimer ); 2521 mousemoveTimer = null; 2522 } 2523 else { 2524 mousemoveStart = lastMousemoveTime; 2525 lastMousemoveX = e.offsetX; 2526 lastMousemoveY = e.offsetY; 2527 } 2528 2529 mousemoveTimer = setTimeout( function ( theEvent, originalMousemoveStart ) { 2530 var now = ( new Date() ).getTime() - 500; // To account for the timer delay. 2531 2532 var mousemove = []; 2533 mousemove.push( now - originalMousemoveStart ); 2534 mousemove.push( 2535 Math.round( 2536 Math.sqrt( 2537 Math.pow( theEvent.offsetX - lastMousemoveX, 2 ) + 2538 Math.pow( theEvent.offsetY - lastMousemoveY, 2 ) 2539 ) 2540 ) 2541 ); 2542 2543 if ( mousemove[1] > 0 ) { 2544 // If there was no measurable distance, then it wasn't really a move. 2545 mousemoves.push( mousemove ); 2546 } 2547 2548 mousemoveStart = null; 2549 mousemoveTimer = null; 2550 }, 500, e, mousemoveStart ); 2551 }, supportsPassive ? { passive: true } : false ); 2552 2553 document.addEventListener( 'touchmove', function ( e ) { 2554 if ( touchmoveCountTimer ) { 2555 clearTimeout( touchmoveCountTimer ); 2556 } 2557 2558 touchmoveCountTimer = setTimeout( function () { 2559 touchmoveCount++; 2560 }, 500 ); 2561 }, supportsPassive ? { passive: true } : false ); 2562 2563 document.addEventListener( 'touchstart', function ( e ) { 2564 lastTouchStart = ( new Date() ).getTime(); 2565 }, supportsPassive ? { passive: true } : false ); 2566 2567 document.addEventListener( 'touchend', function ( e ) { 2568 if ( ! lastTouchStart ) { 2569 // If the touchstart happened before this script was loaded, but the touchend happened after... 2570 return; 2571 } 2572 2573 var now = ( new Date() ).getTime(); 2574 2575 var touchEvent = []; 2576 touchEvent.push( now - lastTouchStart ); 2577 2578 if ( lastTouchEnd ) { 2579 touchEvent.push( lastTouchStart - lastTouchEnd ); 2580 } 2581 2582 touchEvents.push( touchEvent ); 2583 2584 lastTouchEnd = now; 2585 2586 // Don't record this time as an interval between keypresses. 2587 lastKeydown = null; 2588 lastKeyup = null; 2589 keydowns = {}; 2590 }, supportsPassive ? { passive: true } : false ); 2591 2592 document.addEventListener( 'scroll', function ( e ) {
2593 if ( scrollCountTimer ) { 2594 clearTimeout( scrollCountTimer ); 2595 } 2596 2597 scrollCountTimer = setTimeout( function () { 2598 scrollCount++; 2599 }, 500 ); 2600 }, supportsPassive ? { passive: true } : false ); 2601 } 2602 2603 /** 2604 * For the timing/coordinate data that is collected, don't send more than `limit` data points in the request. 2605 * Choose a random slice and send those, with each batch separated by semicolons and the items in each batch 2606 * separated by commas. 2607 */ 2608 function prepare_array_for_request( a, limit ) { 2609 if ( ! limit ) { 2610 limit = 100; 2611 } 2612 2613 var rv = ''; 2614 2615 if ( a.length > 0 ) { 2616 var random_starting_point = Math.max( 0, Math.floor( Math.random() * a.length - limit ) ); 2617 2618 for ( var i = 0; i < limit && i < a.length; i++ ) { 2619 var entry = a[ random_starting_point + i ]; 2620 rv += entry.join( ',' ) + ';'; 2621 } 2622 } 2623 2624 return rv; 2625 } 2626 2627 if ( document.readyState !== 'loading' ) { 2628 init(); 2629 } else { 2630 document.addEventListener( 'DOMContentLoaded', init ); 2631 } 2632})();; 2633(()=>{var e={8885(e,t,o){(e=o.nmd(e))&&(e.exports=function(){var e,t="en",o=/[?&#]lang=([a-zA-Z\-_]+)/;"object"==typeof _wp_google_translate_widget&&"string"==typeof _wp_google_translate_widget.lang&&(t=_wp_google_translate_widget.lang),(e=window.location.href.match(o))&&(window.location.href=window.location.href.replace(o,"").replace(/#googtrans\([a-zA-Z\-_|]+\)/,"")+"#googtrans("+t+"|"+e[1]+")"),new google.translate.TranslateElement({pageLanguage:t,layout:_wp_google_translate_widget.layout,autoDisplay:!1},"google_translate_element")})}};const t={};function o(a){const n=t[a];if(void 0!==n)return n.exports;const l=t[a]={id:a,loaded:!1,exports:{}};return e[a](l,l.exports,o),l.loaded=!0,l.exports}o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);let a=o(8885);googleTranslateElementInit=a})();;
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.