1// usage: log('inside coolFunc', this, arguments); 2// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/ 3window.log = function(){ 4 log.history = log.history || []; // store logs to an array for reference 5 log.history.push(arguments); 6 if(this.console) { 7 arguments.callee = arguments.callee.caller; 8 var newarr = [].slice.call(arguments); 9 (typeof console.log === 'object' ? log.apply.call(console.log, console, newarr) : console.log.apply(console, newarr)); 10 } 11}; 12 13// make it safe to use console.log always 14(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,timeStamp,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();){b[a]=b[a]||c}})((function(){try 15{console.log();return window.console;}catch(err){return window.console={};}})()); 16 17 18var EA = window.EA || {}; 19EA.Methods = {}; 20EA.LoadMethod = function(context){ 21 if( context === undefined ) { 22 context = $(document); 23 } 24 25 context.find( '*[data-method]' ).each(function(){ 26 var that = $(this), 27 methods = that.attr('data-method'); 28 29 $.each(methods.split(" "), function(index, methodName){ 30 try { 31 var MethodClass = EA.Methods[methodName], 32 initializedMethod = new MethodClass(that); 33 } 34 catch(e) { 35 // blank 36 } 37 }); 38 }); 39}; 40EA.onReady = function(){ 41 EA.LoadMethod(); 42 $('html').removeClass('no-js').addClass('js'); 43}; 44 45$(document).ready(function(){ 46 EA.onReady(); 47}); 48 49!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.dropkickjs=t():e.dropkickjs=t()}(this,function(){return function(e){function t(s){if(i[s])return i[s].exports;var a=i[s]={i:s,l:!1,exports:{}};return e[s].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var i={};return t.m=e,t.c=i,t.d=function(e,i,s){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:s})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,i){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=function(){function e(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,i,s){return i&&e(t.prototype,i),s&&e(t,s),t}}(),o=i(1),d=s(o),r=i(2),c=s(r),h=i(3),u=s(h),f=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),p=window.parent!==window.self,b=void 0,m=function(){function e(t,i){a(this,e),this.sel=t;var s=void 0,n=void 0,l=window.Dropkick;for("string"==typeof this.sel&&"#"===this.sel[0]&&(this.sel=document.getElementById(t.substr(1))),s=0;s<l.uid;s++)if((n=l.cache[s])instanceof e&&n.data.select===this.sel)return d.default.extend(n.data.settings,i),n;if(!this.sel)throw"You must pass a select to DropKick";if(this.sel.length<1)throw"You must have options inside your <select>: "+t;if("SELECT"===this.sel.nodeName)return this.init(this.sel,i)}return l(e,[{key:"init",value:function(t,i){var s,a=window.Dropkick,n=e.build(t,"dk"+a.uid);if(this.data={},this.data.select=t,this.data.elem=n.elem,this.data.settings=d.default.extend({},c.default,i),this.disabled=t.disabled,this.form=t.form,this.length=t.length,this.multiple=t.multiple,this.options=n.options.slice(0),this.selectedIndex=t.selectedIndex,this.selectedOptions=n.selected.slice(0),this.value=t.value,this.data.cacheID=a.uid,a.cache[this.data.cacheID]=this,this.data.settings.initialize.call(this),a.uid+=1,this._changeListener||(t.addEventListener("change",this),this._changeListener=!0),!f||this.data.settings.mobile){if(t.parentNode.insertBefore(this.data.elem,t),t.setAttribute("data-dkCacheId",this.data.cacheID),this.data.elem.addEventListener("click",this),this.data.elem.addEventListener("keydown",this),this.data.elem.addEventListener("keypress",this),this.form&&this.form.addEventListener("reset",this),!this.multiple)for(s=0;s<this.options.length;s++)this.options[s].addEventListener("mouseover",this);b||(document.addEventListener("click",e.onDocClick),p&&parent.document.addEventListener("click",e.onDocClick),b=!0)}return this}},{key:"add",value:function(e,t){var i,s,a;"string"==typeof e&&(i=e,e=document.createElement("option"),e.text=i),"OPTION"===e.nodeName&&(s=d.default.create("li",{class:"dk-option","data-value":e.value,text:e.text,innerHTML:e.innerHTML,role:"option","aria-selected":"false",id:"dk"+this.data.cacheID+"-"+(e.id||e.value.replace(" ","-"))}),d.default.addClass(s,e.className),this.length+=1,e.disabled&&(d.default.addClass(s,"dk-option-disabled"),s.setAttribute("aria-disabled","true")),e.hidden&&(d.default.addClass(s,"dk-option-hidden"),s.setAttribute("aria-hidden","true")),this.data.select.add(e,t),"number"==typeof t&&(t=this.item(t)),a=this.options.indexOf(t),a>-1?(t.parentNode.insertBefore(s,t),this.options.splice(a,0,s)):(this.data.elem.lastChild.appendChild(s),this.options.push(s)),s.addEventListener("mouseover",this),e.selected&&this.select(a))}},{key:"item",value:function(e){return e=e<0?this.options.length+e:e,this.options[e]||null}},{key:"remove",value:function(e){var t=this.item(e);t.parentNode.removeChild(t),this.options.splice(e,1),this.data.select.remove(e),this.select(this.data.select.selectedIndex),this.length-=1}},{key:"close",value:function(){var e,t=this.data.elem;if(!this.isOpen||this.multiple)return!1;for(e=0;e<this.options.length;e++)d.default.removeClass(this.options[e],"dk-option-highlight");
49t.lastChild.setAttribute("aria-expanded","false"),d.default.removeClass(t.lastChild,"dk-select-options-highlight"),d.default.removeClass(t,"dk-select-open-(up|down)"),this.isOpen=!1,this.data.settings.close.call(this)}},{key:"open",value:function(){var e=void 0,t=void 0,i=void 0,s=void 0,a=void 0,n=void 0,l=this.data.elem,o=l.lastChild,r=void 0!==window.pageXOffset,c="CSS1Compat"===(document.compatMode||""),h=r?window.pageYOffset:c?document.documentElement.scrollTop:document.body.scrollTop;if(a=d.default.offset(l).top-h,n=window.innerHeight-(a+l.offsetHeight),this.isOpen||this.multiple)return!1;o.style.display="block",e=o.offsetHeight,o.style.display="",t=a>e,i=n>e,s=t&&!i?"-up":"-down",this.isOpen=!0,d.default.addClass(l,"dk-select-open"+s),o.setAttribute("aria-expanded","true"),this._scrollTo(this.options.length-1),this._scrollTo(this.selectedIndex),this.data.settings.open.call(this)}},{key:"disable",value:function(e,t){var i="dk-option-disabled";0!==arguments.length&&"boolean"!=typeof e||(t=void 0===e,e=this.data.elem,i="dk-select-disabled",this.disabled=t),void 0===t&&(t=!0),"number"==typeof e&&(e=this.item(e)),t?(e.setAttribute("aria-disabled",!0),d.default.addClass(e,i)):(e.setAttribute("aria-disabled",!1),d.default.removeClass(e,i))}},{key:"hide",value:function(e,t){void 0===t&&(t=!0),e=this.item(e),t?(e.setAttribute("aria-hidden",!0),d.default.addClass(e,"dk-option-hidden")):(e.setAttribute("aria-hidden",!1),d.default.removeClass(e,"dk-option-hidden"))}},{key:"select",value:function(e,t){var i,s,a,n,l=this.data.select;if("number"==typeof e&&(e=this.item(e)),"string"==typeof e)for(i=0;i<this.length;i++)this.options[i].getAttribute("data-value")===e&&(e=this.options[i]);return!(!e||"string"==typeof e||!t&&d.default.hasClass(e,"dk-option-disabled"))&&(d.default.hasClass(e,"dk-option")?(s=this.options.indexOf(e),a=l.options[s],this.multiple?(d.default.toggleClass(e,"dk-option-selected"),a.selected=!a.selected,d.default.hasClass(e,"dk-option-selected")?(e.setAttribute("aria-selected","true"),this.selectedOptions.push(e)):(e.setAttribute("aria-selected","false"),s=this.selectedOptions.indexOf(e),this.selectedOptions.splice(s,1))):(n=this.data.elem.firstChild,this.selectedOptions.length&&(d.default.removeClass(this.selectedOptions[0],"dk-option-selected"),this.selectedOptions[0].setAttribute("aria-selected","false")),d.default.addClass(e,"dk-option-selected"),e.setAttribute("aria-selected","true"),n.setAttribute("aria-activedescendant",e.id),n.className="dk-selected "+a.className,n.innerHTML=a.innerHTML,this.selectedOptions[0]=e,a.selected=!0),this.selectedIndex=l.selectedIndex,this.value=l.value,t||this.data.select.dispatchEvent(new u.default("change",{bubbles:this.data.settings.bubble})),e):void 0)}},{key:"selectOne",value:function(e,t){return this.reset(!0),this._scrollTo(e),this.select(e,t)}},{key:"search",value:function(e,t){var i,s,a,n,l,o,d,r,c=this.data.select.options,h=[];if(!e)return this.options;for(t=t?t.toLowerCase():"strict",t="fuzzy"===t?2:"partial"===t?1:0,r=new RegExp((t?"":"^")+e,"i"),i=0;i<c.length;i++)if(a=c[i].text.toLowerCase(),2==t){for(s=e.toLowerCase().split(""),n=l=o=d=0;l<a.length;)a[l]===s[n]?(o+=1+o,n++):o=0,d+=o,l++;n===s.length&&h.push({e:this.options[i],s:d,i:i})}else r.test(a)&&h.push(this.options[i]);return 2===t&&(h=h.sort(function(e,t){return t.s-e.s||e.i-t.i}).reduce(function(e,t){return e[e.length]=t.e,e},[])),h}},{key:"focus",value:function(){this.disabled||(this.multiple?this.data.elem:this.data.elem.children[0]).focus()}},{key:"reset",value:function(e){var t,i=this.data.select;for(this.selectedOptions.length=0,t=0;t<i.options.length;t++)i.options[t].selected=!1,d.default.removeClass(this.options[t],"dk-option-selected"),this.options[t].setAttribute("aria-selected","false"),!e&&i.options[t].defaultSelected&&this.select(t,!0);this.selectedOptions.length||this.multiple||this.select(0,!0)}},{key:"refresh",value:function(){Object.keys(this).length>0&&(!f||this.data.settings.mobile)&&this.dispose().init(this.data.select,this.data.settings)}},{key:"dispose",value:function(){var e=window.Dropkick;return Object.keys(this).length>0&&(!f||this.data.settings.mobile)&&(delete e.cache[this.data.cacheID],this.data.elem.parentNode.removeChild(this.data.elem),this.data.select.removeAttribute("data-dkCacheId")),this}},{key:"handleEvent",value:function(e){if(!this.disabled)switch(e.type){case"click":this._delegate(e);break;case"keydown":this._keyHandler(e);break;case"keypress":this._searchOptions(e);break;case"mouseover":this._highlight(e);break;case"reset":this.reset();break;case"change":this.data.settings.change.call(this)}}},{key:"_delegate",value:function(e){var t,i,s,a,n=e.target;if(d.default.hasClass(n,"dk-option-disabled"))return!1;if(this.multiple){if(d.default.hasClass(n,"dk-option"))if(t=window.getSelection(),"Range"===t.type&&t.collapseToStart(),e.shiftKey)if(s=this.options.indexOf(this.selectedOptions[0]),a=this.options.indexOf(this.selectedOptions[this.selectedOptions.length-1]),i=this.options.indexOf(n),i>s&&i<a&&(i=s),i>a&&a>s&&(a=s),this.reset(!0),a>i)for(;i<a+1;)this.select(i++);else for(;i>a-1;)this.select(i--);else e.ctrlKey||e.metaKey?this.select(n):(this.reset(!0),this.select(n))}
49else this[this.isOpen?"close":"open"](),d.default.hasClass(n,"dk-option")&&this.select(n)}},{key:"_highlight",value:function(e){var t,i=e.target;if(!this.multiple){for(t=0;t<this.options.length;t++)d.default.removeClass(this.options[t],"dk-option-highlight");d.default.addClass(this.data.elem.lastChild,"dk-select-options-highlight"),d.default.addClass(i,"dk-option-highlight")}}},{key:"_keyHandler",value:function(e){var t,i,s=this.selectedOptions,a=this.options,n=1,l={tab:9,enter:13,esc:27,space:32,up:38,down:40};switch(e.keyCode){case l.up:n=-1;case l.down:if(e.preventDefault(),t=s[s.length-1],d.default.hasClass(this.data.elem.lastChild,"dk-select-options-highlight"))for(d.default.removeClass(this.data.elem.lastChild,"dk-select-options-highlight"),i=0;i<a.length;i++)d.default.hasClass(a[i],"dk-option-highlight")&&(d.default.removeClass(a[i],"dk-option-highlight"),t=a[i]);n=a.indexOf(t)+n,n>a.length-1?n=a.length-1:n<0&&(n=0),this.data.select.options[n].disabled||(this.reset(!0),this.select(n),this._scrollTo(n));break;case l.space:if(!this.isOpen){e.preventDefault(),this.open();break}case l.tab:case l.enter:for(n=0;n<a.length;n++)d.default.hasClass(a[n],"dk-option-highlight")&&this.select(n);case l.esc:this.isOpen&&(e.preventDefault(),this.close())}}},{key:"_searchOptions",value:function(e){var t,i=this,s=String.fromCharCode(e.keyCode||e.which);void 0===this.data.searchString&&(this.data.searchString=""),function(){i.data.searchTimeout&&clearTimeout(i.data.searchTimeout),i.data.searchTimeout=setTimeout(function(){i.data.searchString=""},1e3)}(),this.data.searchString+=s,t=this.search(this.data.searchString,this.data.settings.search),t.length&&(d.default.hasClass(t[0],"dk-option-disabled")||this.selectOne(t[0]))}},{key:"_scrollTo",value:function(e){var t,i,s,a=this.data.elem.lastChild;if(-1===e||"number"!=typeof e&&!e||!this.isOpen&&!this.multiple)return!1;"number"==typeof e&&(e=this.item(e)),t=d.default.position(e,a).top,i=t-a.scrollTop,s=i+e.offsetHeight,s>a.offsetHeight?(t+=e.offsetHeight,a.scrollTop=t-a.offsetHeight):i<0&&(a.scrollTop=t)}}]),e}();window.Dropkick=m,window.Dropkick.cache={},window.Dropkick.uid=0,m.build=function(e,t){var i,s,a,n=[],l={elem:null,options:[],selected:[]},o=function e(i){var s,a,n,o,r=[];switch(i.nodeName){case"OPTION":s=d.default.create("li",{class:"dk-option ","data-value":i.value,text:i.text,innerHTML:i.innerHTML,role:"option","aria-selected":"false",id:t+"-"+(i.id||i.value.replace(" ","-"))}),d.default.addClass(s,i.className),i.disabled&&(d.default.addClass(s,"dk-option-disabled"),s.setAttribute("aria-disabled","true")),i.hidden&&(d.default.addClass(s,"dk-option-hidden"),s.setAttribute("aria-hidden","true")),i.selected&&(d.default.addClass(s,"dk-option-selected"),s.setAttribute("aria-selected","true"),l.selected.push(s)),l.options.push(this.appendChild(s));break;case"OPTGROUP":for(a=d.default.create("li",{class:"dk-optgroup"}),i.label&&a.appendChild(d.default.create("div",{class:"dk-optgroup-label",innerHTML:i.label})),n=d.default.create("ul",{class:"dk-optgroup-options"}),o=i.children.length;o--;r.unshift(i.children[o]));i.disabled&&(a.classList.add("dk-optgroup-disabled"),r.forEach(function(e){e.disabled=i.disabled})),r.forEach(e,n),this.appendChild(a).appendChild(n)}};for(l.elem=d.default.create("div",{class:"dk-select"+(e.multiple?"-multi":"")}),s=d.default.create("ul",{class:"dk-select-options",id:t+"-listbox",role:"listbox"}),e.disabled&&(d.default.addClass(l.elem,"dk-select-disabled"),l.elem.setAttribute("aria-disabled",!0)),l.elem.id=t+(e.id?"-"+e.id:""),d.default.addClass(l.elem,e.className),e.multiple?(l.elem.setAttribute("tabindex",e.getAttribute("tabindex")||"0"),s.setAttribute("aria-multiselectable","true")):(i=e.options[e.selectedIndex],l.elem.appendChild(d.default.create("div",{class:"dk-selected "+(i?i.className:""),tabindex:e.tabindex||0,innerHTML:i?i.text:" ",id:t+"-combobox","aria-live":"assertive","aria-owns":s.id,role:"combobox"})),s.setAttribute("aria-expanded","false")),a=e.children.length;a--;n.unshift(e.children[a]));return n.forEach(o,l.elem.appendChild(s)),l},m.onDocClick=function(e){var t,i,s=window.Dropkick;if(1!==e.target.nodeType)return!1;null!==(t=e.target.getAttribute("data-dkcacheid"))&&s.cache[t].focus();for(i in s.cache)d.default.closest(e.target,s.cache[i].data.elem)||i===t||s.cache[i].disabled||s.cache[i].close()},void 0!==window.jQuery&&(window.jQuery.fn.dropkick=function(){var e=Array.prototype.slice.call(arguments);return jQuery(this).each(function(){e[0]&&"object"!==n(e[0])?"string"==typeof e[0]&&m.prototype[e[0]].apply(new m(this),e.slice(1)):new m(this,e[0]||{})})}),t.default=m},function(e,t,i){"use strict";
49Object.defineProperty(t,"__esModule",{value:!0});var s=-1!==navigator.appVersion.indexOf("MSIE"),a={hasClass:function(e,t){var i=new RegExp("(^|\\s+)"+t+"(\\s+|$)");return e&&i.test(e.className)},addClass:function(e,t){e&&!this.hasClass(e,t)&&(e.className+=" "+t)},removeClass:function(e,t){var i=new RegExp("(^|\\s+)"+t+"(\\s+|$)");e&&(e.className=e.className.replace(i," "))},toggleClass:function(e,t){this[(this.hasClass(e,t)?"remove":"add")+"Class"](e,t)},extend:function(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){if(t)for(var i in t)e[i]=t[i]}),e},offset:function(e){var t=e.getBoundingClientRect()||{top:0,left:0},i=document.documentElement,a=s?i.scrollTop:window.pageYOffset,n=s?i.scrollLeft:window.pageXOffset;return{top:t.top+a-i.clientTop,left:t.left+n-i.clientLeft}},position:function(e,t){for(var i={top:0,left:0};e&&e!==t;)i.top+=e.offsetTop,i.left+=e.offsetLeft,e=e.parentNode;return i},closest:function(e,t){for(;e;){if(e===t)return e;e=e.parentNode}return!1},create:function(e,t){var i=void 0,s=document.createElement(e);t||(t={});for(i in t)t.hasOwnProperty(i)&&("innerHTML"===i?s.innerHTML=t[i]:s.setAttribute(i,t[i]));return s},deferred:function(e){return function(){var t=this,i=arguments;window.setTimeout(function(){e.apply(t,i)},1)}}};t.default=a},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={initialize:function(){},mobile:!0,change:function(){},open:function(){},close:function(){},search:"strict",bubble:!0};t.default=s},function(e,t,i){(function(t){var i=t.CustomEvent;e.exports=function(){try{var e=new i("cat",{detail:{foo:"bar"}});return"cat"===e.type&&"bar"===e.detail.foo}catch(e){}return!1}()?i:"undefined"!=typeof document&&"function"==typeof document.createEvent?function(e,t){var i=document.createEvent("CustomEvent");return t?i.initCustomEvent(e,t.bubbles,t.cancelable,t.detail):i.initCustomEvent(e,!1,!1,void 0),i}:function(e,t){var i=document.createEventObject();return i.type=e,t?(i.bubbles=Boolean(t.bubbles),i.cancelable=Boolean(t.cancelable),i.detail=t.detail):(i.bubbles=!1,i.cancelable=!1,i.detail=void 0),i}}).call(t,i(4))},function(e,t){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(i=window)}e.exports=i}])}); 50/*jslint browser: true, indent: 2 */ 51(function ($) { 52 'use strict'; 53 $.fn.inviewport = function (options) { 54 var settings = $.extend({ 55 'minPercentageInView' : 100, 56 'standardClassName': 'in-view' 57 }, options); 58 this.each(function () { 59 var $this = $(this), 60 $win = $(window), 61 changed = false, 62 isVisible = function () { 63 var c = settings.className || settings.standardClassName, 64 min = (settings.threshold || settings.minPercentageInView) / 100, 65 xMin = $this.width() * min, 66 yMin = $this.height() * min, 67 winPosX = $win.scrollLeft() + $win.width(), 68 winPosY = $win.scrollTop() + $win.height(), 69 elPosX = $this.offset().left + xMin, 70 elPosY = $this.offset().top + yMin; 71 if (winPosX > elPosX && winPosY > elPosY) { 72 $this.addClass(c); 73 } 74 }; 75 $win.on('ready', isVisible()) 76 .on('resize scroll', function () { 77 changed = true; 78 }) 79 setInterval(function () { 80 if (changed) { 81 changed = false; 82 isVisible(); 83 } 84 }, 250); 85 }); 86 }; 87}(jQuery)); 88 89// ================================================== 90// fancyBox v3.3.5 91// 92// Licensed GPLv3 for open source use 93// or fancyBox Commercial License for commercial use 94// 95// http://fancyapps.com/fancybox/ 96// Copyright 2018 fancyApps 97// 98// ================================================== 99!function(t,e,n,o){"use strict";function i(t,e){var o,i,a=[],s=0;t&&t.isDefaultPrevented()||(t.preventDefault(),e=t&&t.data?t.data.options:e||{},o=e.$target||n(t.currentTarget),i=o.attr("data-fancybox")||"",i?(a=e.selector?n(e.selector):t.data?t.data.items:[],a=a.length?a.filter('[data-fancybox="'+i+'"]'):n('[data-fancybox="'+i+'"]'),s=a.index(o),s<0&&(s=0)):a=[o],n.fancybox.open(a,e,s))}if(t.console=t.console||{info:function(t){}}
vendor: 3,767 bytes, line 99
99,n){if(n.fn.fancybox)return void console.info("fancyBox already initialized");var a={loop:!1,gutter:50,keyboard:!0,arrows:!0,infobar:!0,smallBtn:"auto",toolbar:"auto",buttons:["zoom","thumbs","close"],idleTime:3,protect:!1,modal:!1,image:{preload:!1},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen allowtransparency="true" src=""></iframe>',preload:!0,css:{},attr:{scrolling:"auto"}},defaultType:"image",animationEffect:"zoom",animationDuration:366,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span> / <span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"></div></div></div>',spinnerTpl:'<div class="fancybox-loading"></div>',errorTpl:'<div class="fancybox-error"><p>{{ERROR}}</p></div>',btnTpl:{download:'<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg viewBox="0 0 40 40"><path d="M13,16 L20,23 L27,16 M20,7 L20,23 M10,24 L10,28 L30,28 L30,24" /></svg></a>',zoom:'<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg viewBox="0 0 40 40"><path d="M18,17 m-8,0 a8,8 0 1,0 16,0 a8,8 0 1,0 -16,0 M24,22 L31,29" /></svg></button>',close:'<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg viewBox="0 0 40 40"><path d="M10,10 L30,30 M30,10 L10,30" /></svg></button>',smallBtn:'<button data-fancybox-close class="fancybox-close-small" title="{{CLOSE}}"><svg viewBox="0 0 32 32"><path d="M10,10 L22,22 M22,10 L10,22"></path></svg></button>',arrowLeft:'<a data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}" href="javascript:;"><svg viewBox="0 0 40 40"><path d="M18,12 L10,20 L18,28 M10,20 L30,20"></path></svg></a>',arrowRight:'<a data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}" href="javascript:;"><svg viewBox="0 0 40 40"><path d="M10,20 L30,20 M22,12 L30,20 L22,28"></path></svg></a>'},parentEl:"body",autoFocus:!1,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:4e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"},wheel:"auto",onInit:n.noop,beforeLoad:n.noop,afterLoad:n.noop,beforeShow:n.noop,afterShow:n.noop,beforeClose:n.noop,afterClose:n.noop,onActivate:n.noop,onDeactivate:n.noop,clickContent:function(t,e){return"image"===t.type&&"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{idleTime:!1,clickContent:function(t,e){return"image"===t.type&&"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&&"zoom"},dblclickSlide:function(t,e){return"image"===t.type&&"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded. <br/> Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schliessen",NEXT:"Weiter",PREV:"Zurück",ERROR:"Die angeforderten Daten konnten nicht geladen werden. <br/>
99 Bitte versuchen Sie es später nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"MaÃstab"}}},s=n(t),r=n(e),c=0,l=function(t){return t&&t.hasOwnProperty&&t instanceof n},d=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),u=function(){var t,n=e.createElement("fakeelement"),i={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in i)if(n.style[t]!==o)return i[t];return"transitionend"}(),f=function(t){return t&&t.length&&t[0].offsetHeight},p=function(t,e){var o=n.extend(!0,{},t,e);return n.each(e,function(t,e){n.isArray(e)&&(o[t]=e)}),o},h=function(t,o,i){var a=this;a.opts=p({index:i},n.fancybox.defaults),n.isPlainObject(o)&&(a.opts=p(a.opts,o)),n.fancybox.isMobile&&(a.opts=p(a.opts,a.opts.mobile)),a.id=a.opts.id||++c,a.currIndex=parseInt(a.opts.index,10)||0,a.prevIndex=null,a.prevPos=null,a.currPos=0,a.firstRun=!0,a.group=[],a.slides={},a.addContent(t),a.group.length&&(a.$lastFocus=n(e.activeElement).trigger("blur"),a.init())};n.extend(h.prototype,{init:function(){var i,a,s,r=this,c=r.group[r.currIndex],l=c.opts,d=n.fancybox.scrollbarWidth;n.fancybox.getInstance()||l.hideScrollbar===!1||(n("body").addClass("fancybox-active"),!n.fancybox.isMobile&&e.body.scrollHeight>t.innerHeight&&(d===o&&(i=n('<div style="width:100px;height:100px;overflow:scroll;" />').appendTo("body"),d=n.fancybox.scrollbarWidth=i[0].offsetWidth-i[0].clientWidth,i.remove()),n("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar { margin-right: '+d+"px; }</style>"),n("body").addClass("compensate-for-scrollbar"))),s="",n.each(l.buttons,function(t,e){s+=l.btnTpl[e]||""}),a=n(r.translate(r,l.baseTpl.replace("{{buttons}}",s).replace("{{arrows}}",l.btnTpl.arrowLeft+l.btnTpl.arrowRight))).attr("id","fancybox-container-"+r.id).addClass("fancybox-is-hidden").addClass(l.baseClass).data("FancyBox",r).appendTo(l.parentEl),r.$refs={container:a},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach(function(t){r.$refs[t]=a.find(".fancybox-"+t)}),r.trigger("onInit"),r.activate(),r.jumpTo(r.currIndex)},translate:function(t,e){var n=t.opts.i18n[t.opts.lang];return e.replace(/\{\{(\w+)\}\}/g,function(t,e){var i=n[e];return i===o?t:i})},addContent:function(t){var e,i=this,a=n.makeArray(t);n.each(a,function(t,e){var a,s,r,c,l,d={},u={};n.isPlainObject(e)?(d=e,u=e.opts||e):"object"===n.type(e)&&n(e).length?(a=n(e),u=a.data()||{},u=n.extend(!0,{},u,u.options),u.$orig=a,d.src=i.opts.src||u.src||a.attr("href"),d.type||d.src||(d.type="inline",d.src=e)):d={type:"html",src:e+""},d.opts=n.extend(!0,{},i.opts,u),n.isArray(u.buttons)&&(d.opts.buttons=u.buttons),s=d.type||d.opts.type,c=d.src||"",!s&&c&&((r=c.match(/\.(mp4|mov|ogv)((\?|#).*)?$/i))?(s="video",d.opts.videoFormat||(d.opts.videoFormat="video/"+("ogv"===r[1]?"ogg":r[1]))):c.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?s="image":c.match(/\.(pdf)((\?|#).*)?$/i)?s="iframe":"#"===c.charAt(0)&&(s="inline")),s?d.type=s:i.trigger("objectNeedsType",d),d.contentType||(d.contentType=n.inArray(d.type,["html","inline","ajax"])>-1?"html":d.type),d.index=i.group.length,"auto"==d.opts.smallBtn&&(d.opts.smallBtn=n.inArray(d.type,["html","inline","ajax"])>-1),"auto"===d.opts.toolbar&&(d.opts.toolbar=!d.opts.smallBtn),d.opts.$trigger&&d.index===i.opts.index&&(d.opts.$thumb=d.opts.$trigger.find("img:first")),d.opts.$thumb&&d.opts.$thumb.length||!d.opts.$orig||(d.opts.$thumb=d.opts.$orig.find("img:first")),"function"===n.type(d.opts.caption)&&(d.opts.caption=d.opts.caption.apply(e,[i,d])),"function"===n.type(i.opts.caption)&&(d.opts.caption=i.opts.caption.apply(e,[i,d])),d.opts.caption instanceof n||(d.opts.caption=d.opts.caption===o?"":d.opts.caption+""),"ajax"===d.type&&(l=c.split(/\s+/,2),l.length>1&&(d.src=l.shift(),d.opts.filter=l.shift())),d.opts.modal&&(d.opts=n.extend(!0,d.opts,{infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),i.group.push(d)}),Object.keys(i.slides).length&&(i.updateControls(),e=i.Thumbs,e&&e.isActive&&(e.create(),e.focus()))},addEvents:function(){var o=this;o.removeEvents(),o.$refs.container.on("click.fb-close","[data-fancybox-close]",function(t){t.stopPropagation(),t.preventDefault(),o.close(t)}).on("touchstart.fb-prev click.fb-prev","[data-fancybox-prev]",function(t){t.stopPropagation(),t.preventDefault(),o.previous()}).on("touchstart.fb-next click.fb-next","[data-fancybox-next]",function(t){t.stopPropagation(),t.preventDefault(),o.next()}).on("click.fb","[data-fancybox-zoom]",function(t){o[o.isScaledDown()?"scaleToActual":"scaleToFit"]()}),s.on("orientationchange.fb resize.fb",function(t){t&&t.originalEvent&&"resize"===t.originalEvent.type?d(function(){o.update()}):(o.$refs.stage.hide(),setTimeout(function(){o.$refs.stage.show(),o.update()},n.fancybox.isMobile?600:250))}),r.on("focusin.fb",function(t){var o=n.fancybox?n.fancybox.getInstance():null;o.isClosing||!o.current||!o.current.opts.trapFocus||n(t.target).hasClass("fancybox-container")||n(t.target).is(e)||o&&"fixed"!==n(t.target).css("position")&&!o.$refs.container.has(t.target).length&&(t.stopPropagation(),o.focus())}
99),r.on("keydown.fb",function(t){var e=o.current,i=t.keyCode||t.which;if(e&&e.opts.keyboard&&!(t.ctrlKey||t.altKey||t.shiftKey||n(t.target).is("input")||n(t.target).is("textarea")))return 8===i||27===i?(t.preventDefault(),void o.close(t)):37===i||38===i?(t.preventDefault(),void o.previous()):39===i||40===i?(t.preventDefault(),void o.next()):void o.trigger("afterKeydown",t,i)}),o.group[o.currIndex].opts.idleTime&&(o.idleSecondsCounter=0,r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",function(t){o.idleSecondsCounter=0,o.isIdle&&o.showControls(),o.isIdle=!1}),o.idleInterval=t.setInterval(function(){o.idleSecondsCounter++,o.idleSecondsCounter>=o.group[o.currIndex].opts.idleTime&&!o.isDragging&&(o.isIdle=!0,o.idleSecondsCounter=0,o.hideControls())},1e3))},removeEvents:function(){var e=this;s.off("orientationchange.fb resize.fb"),r.off("focusin.fb keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),e.idleInterval&&(t.clearInterval(e.idleInterval),e.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,e){var i,a,s,r,c,l,d,u=this,p=u.group.length;if(!(u.isDragging||u.isClosing||u.isAnimating&&u.firstRun)){if(t=parseInt(t,10),a=u.current?u.current.opts.loop:u.opts.loop,!a&&(t<0||t>=p))return!1;if(i=u.firstRun=!Object.keys(u.slides).length,!(p<2&&!i&&u.isDragging)){if(r=u.current,u.prevIndex=u.currIndex,u.prevPos=u.currPos,s=u.createSlide(t),p>1&&((a||s.index>0)&&u.createSlide(t-1),(a||s.index<p-1)&&u.createSlide(t+1)),u.current=s,u.currIndex=s.index,u.currPos=s.pos,u.trigger("beforeShow",i),u.updateControls(),l=n.fancybox.getTranslate(s.$slide),s.isMoved=(0!==l.left||0!==l.top)&&!s.$slide.hasClass("fancybox-animated"),s.forcedDuration=o,n.isNumeric(e)?s.forcedDuration=e:e=s.opts[i?"animationDuration":"transitionDuration"],e=parseInt(e,10),i)return s.opts.animationEffect&&e&&u.$refs.container.css("transition-duration",e+"ms"),u.$refs.container.removeClass("fancybox-is-hidden"),f(u.$refs.container),u.$refs.container.addClass("fancybox-is-open"),f(u.$refs.container),s.$slide.addClass("fancybox-slide--previous"),u.loadSlide(s),s.$slide.removeClass("fancybox-slide--previous").addClass("fancybox-slide--current"),void u.preload("image");n.each(u.slides,function(t,e){n.fancybox.stop(e.$slide)}),s.$slide.removeClass("fancybox-slide--next fancybox-slide--previous").addClass("fancybox-slide--current"),s.isMoved?(c=Math.round(s.$slide.width()),n.each(u.slides,function(t,o){var i=o.pos-s.pos;n.fancybox.animate(o.$slide,{top:0,left:i*c+i*o.opts.gutter},e,function(){o.$slide.removeAttr("style").removeClass("fancybox-slide--next fancybox-slide--previous"),o.pos===u.currPos&&(s.isMoved=!1,u.complete())})})):u.$refs.stage.children().removeAttr("style"),s.isLoaded?u.revealContent(s):u.loadSlide(s),u.preload("image"),r.pos!==s.pos&&(d="fancybox-slide--"+(r.pos>s.pos?"next":"previous"),r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous"),r.isComplete=!1,e&&(s.isMoved||s.opts.transitionEffect)&&(s.isMoved?r.$slide.addClass(d):(d="fancybox-animated "+d+" fancybox-fx-"+s.opts.transitionEffect,n.fancybox.animate(r.$slide,d,e,function(){r.$slide.removeClass(d).removeAttr("style")}))))}}},createSlide:function(t){var e,o,i=this;return o=t%i.group.length,o=o<0?i.group.length+o:o,!i.slides[t]&&i.group[o]&&(e=n('<div class="fancybox-slide"></div>').appendTo(i.$refs.stage),i.slides[t]=n.extend(!0,{},i.group[o],{pos:t,$slide:e,isLoaded:!1}),i.updateSlide(i.slides[t])),i.slides[t]},scaleToActual:function(t,e,i){var a,s,r,c,l,d=this,u=d.current,f=u.$content,p=n.fancybox.getTranslate(u.$slide).width,h=n.fancybox.getTranslate(u.$slide).height,g=u.width,b=u.height;!d.isAnimating&&f&&"image"==u.type&&u.isLoaded&&!u.hasError&&(n.fancybox.stop(f),d.isAnimating=!0,t=t===o?.5*p:t,e=e===o?.5*h:e,a=n.fancybox.getTranslate(f),a.top-=n.fancybox.getTranslate(u.$slide).top,a.left-=n.fancybox.getTranslate(u.$slide).left,c=g/a.width,l=b/a.height,s=.5*p-.5*g,r=.5*h-.5*b,g>p&&(s=a.left*c-(t*c-t),s>0&&(s=0),s<p-g&&(s=p-g)),b>h&&(r=a.top*l-(e*l-e),r>0&&(r=0),r<h-b&&(r=h-b)),d.updateCursor(g,b),n.fancybox.animate(f,{top:r,left:s,scaleX:c,scaleY:l},i||330,function(){d.isAnimating=!1}),d.SlideShow&&d.SlideShow.isActive&&d.SlideShow.stop())},scaleToFit:function(t){var e,o=this,i=o.current,a=i.$content;!o.isAnimating&&a&&"image"==i.type&&i.isLoaded&&!i.hasError&&(n.fancybox.stop(a),o.isAnimating=!0,e=o.getFitPos(i),o.updateCursor(e.width,e.height),n.fancybox.animate(a,{top:e.top,left
99:e.left,scaleX:e.width/a.width(),scaleY:e.height/a.height()},t||330,function(){o.isAnimating=!1}))},getFitPos:function(t){var e,n,o,i,a,s=this,r=t.$content,c=t.width||t.opts.width,l=t.height||t.opts.height,d={};return!!(t.isLoaded&&r&&r.length)&&(i={top:parseInt(t.$slide.css("paddingTop"),10),right:parseInt(t.$slide.css("paddingRight"),10),bottom:parseInt(t.$slide.css("paddingBottom"),10),left:parseInt(t.$slide.css("paddingLeft"),10)},e=parseInt(s.$refs.stage.width(),10)-(i.left+i.right),n=parseInt(s.$refs.stage.height(),10)-(i.top+i.bottom),c&&l||(c=e,l=n),o=Math.min(1,e/c,n/l),c=Math.floor(o*c),l=Math.floor(o*l),"image"===t.type?(d.top=Math.floor(.5*(n-l))+i.top,d.left=Math.floor(.5*(e-c))+i.left):"video"===t.contentType&&(a=t.opts.width&&t.opts.height?c/l:t.opts.ratio||16/9,l>c/a?l=c/a:c>l*a&&(c=l*a)),d.width=c,d.height=l,d)},update:function(){var t=this;n.each(t.slides,function(e,n){t.updateSlide(n)})},updateSlide:function(t,e){var o=this,i=t&&t.$content,a=t.width||t.opts.width,s=t.height||t.opts.height;i&&(a||s||"video"===t.contentType)&&!t.hasError&&(n.fancybox.stop(i),n.fancybox.setTranslate(i,o.getFitPos(t)),t.pos===o.currPos&&(o.isAnimating=!1,o.updateCursor())),t.$slide.trigger("refresh"),o.$refs.toolbar.toggleClass("compensate-for-scrollbar",t.$slide.get(0).scrollHeight>t.$slide.get(0).clientHeight),o.trigger("onUpdate",t)},centerSlide:function(t,e){var i,a,s=this;s.current&&(i=Math.round(t.$slide.width()),a=t.pos-s.current.pos,n.fancybox.animate(t.$slide,{top:0,left:a*i+a*t.opts.gutter,opacity:1},e===o?0:e,null,!1))},updateCursor:function(t,e){var o,i=this,a=i.current,s=i.$refs.container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut");a&&!i.isClosing&&(o=i.isZoomable(),s.toggleClass("fancybox-is-zoomable",o),n("[data-fancybox-zoom]").prop("disabled",!o),o&&("zoom"===a.opts.clickContent||n.isFunction(a.opts.clickContent)&&"zoom"===a.opts.clickContent(a))?i.isScaledDown(t,e)?s.addClass("fancybox-can-zoomIn"):a.opts.touch?s.addClass("fancybox-can-drag"):s.addClass("fancybox-can-zoomOut"):a.opts.touch&&"video"!==a.contentType&&s.addClass("fancybox-can-drag"))},isZoomable:function(){var t,e=this,n=e.current;if(n&&!e.isClosing&&"image"===n.type&&!n.hasError){if(!n.isLoaded)return!0;if(t=e.getFitPos(n),n.width>t.width||n.height>t.height)return!0}return!1},isScaledDown:function(t,e){var i=this,a=!1,s=i.current,r=s.$content;return t!==o&&e!==o?a=t<s.width&&e<s.height:r&&(a=n.fancybox.getTranslate(r),a=a.width<s.width&&a.height<s.height),a},canPan:function(){var t,e=this,n=!1,o=e.current;return"image"===o.type&&(t=o.$content)&&!o.hasError&&(n=e.getFitPos(o),n=Math.abs(t.width()-n.width)>1||Math.abs(t.height()-n.height)>1),n},loadSlide:function(t){var e,o,i,a=this;if(!t.isLoading&&!t.isLoaded){switch(t.isLoading=!0,a.trigger("beforeLoad",t),e=t.type,o=t.$slide,o.off("refresh").trigger("onReset").addClass(t.opts.slideClass),e){case"image":a.setImage(t);break;case"iframe":a.setIframe(t);break;case"html":a.setContent(t,t.src||t.content);break;case"video":a.setContent(t,'<video class="fancybox-video" controls controlsList="nodownload"><source src="'+t.src+'" type="'+t.opts.videoFormat+"\">Your browser doesn't support HTML5 video</video");break;case"inline":n(t.src).length?a.setContent(t,n(t.src)):a.setError(t);break;case"ajax":a.showLoading(t),i=n.ajax(n.extend({},t.opts.ajax.settings,{url:t.src,success:function(e,n){"success"===n&&a.setContent(t,e)},error:function(e,n){e&&"abort"!==n&&a.setError(t)}})),o.one("onReset",function(){i.abort()});break;default:a.setError(t)}return!0}},setImage:function(e){var o,i,a,s,r,c=this,l=e.opts.srcset||e.opts.image.srcset;if(e.timouts=setTimeout(function(){var t=e.$image;!e.isLoading||t&&t[0].complete||e.hasError||c.showLoading(e)},350),l){s=t.devicePixelRatio||1,r=t.innerWidth*s,a=l.split(",").map(function(t){var e={};return t.trim().split(/\s+/).forEach(function(t,n){var o=parseInt(t.substring(0,t.length-1),10);return 0===n?e.url=t:void(o&&(e.value=o,e.postfix=t[t.length-1]))}),e}),a.sort(function(t,e){return t.value-e.value});for(var d=0;d<a.length;d++){var u=a[d];if("w"===u.postfix&&u.value>=r||"x"===u.postfix&&u.value>=s){i=u;break}}!i&&a.length&&(i=a[a.length-1]),i&&(e.src=i.url,e.width&&e.height&&"w"==i.postfix&&(e.height=e.width/e.height*i.value,e.width=i.value),e.opts.srcset=l)}e.$content=n('<div class="fancybox-content"></div>').addClass("fancybox-is-hidden").appendTo(e.$slide.addClass("fancybox-slide--image")),o=e.opts.thumb||!(!e.opts.$thumb||!e.opts.$thumb.length)&&e.opts.$thumb.attr("src"),e.opts.preload!==!1&&e.opts.width&&e.opts.height&&o&&(e.width=e.opts.width,e.height=e.opts.height,e.$ghost=n("<img />").one("error",function(){n(this).remove(),e.$ghost=null}).one("load",function(){c.afterLoad(e)}).addClass("fancybox-image").appendTo(e.$content).attr("src",o)),c.setBigImage(e)},setBigImage:function(t){var e=this,o=n("<img />");t.$image=o.one("error",function(){e.setError(t)}).one("load",function(){var n;
99t.$ghost||(e.resolveImageSlideSize(t,this.naturalWidth,this.naturalHeight),e.afterLoad(t)),t.timouts&&(clearTimeout(t.timouts),t.timouts=null),e.isClosing||(t.opts.srcset&&(n=t.opts.sizes,n&&"auto"!==n||(n=(t.width/t.height>1&&s.width()/s.height()>1?"100":Math.round(t.width/t.height*100))+"vw"),o.attr("sizes",n).attr("srcset",t.opts.srcset)),t.$ghost&&setTimeout(function(){t.$ghost&&!e.isClosing&&t.$ghost.hide()},Math.min(300,Math.max(1e3,t.height/1600))),e.hideLoading(t))}).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(o[0].complete||"complete"==o[0].readyState)&&o[0].naturalWidth&&o[0].naturalHeight?o.trigger("load"):o[0].error&&o.trigger("error")},resolveImageSlideSize:function(t,e,n){var o=parseInt(t.opts.width,10),i=parseInt(t.opts.height,10);t.width=e,t.height=n,o>0&&(t.width=o,t.height=Math.floor(o*n/e)),i>0&&(t.width=Math.floor(i*e/n),t.height=i)},setIframe:function(t){var e,i=this,a=t.opts.iframe,s=t.$slide;t.$content=n('<div class="fancybox-content'+(a.preload?" fancybox-is-hidden":"")+'"></div>').css(a.css).appendTo(s),s.addClass("fancybox-slide--"+t.contentType),t.$iframe=e=n(a.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(a.attr).appendTo(t.$content),a.preload?(i.showLoading(t),e.on("load.fb error.fb",function(e){this.isReady=1,t.$slide.trigger("refresh"),i.afterLoad(t)}),s.on("refresh.fb",function(){var n,i,s=t.$content,r=a.css.width,c=a.css.height;if(1===e[0].isReady){try{n=e.contents(),i=n.find("body")}catch(t){}i&&i.length&&i.children().length&&(s.css({width:"",height:""}),r===o&&(r=Math.ceil(Math.max(i[0].clientWidth,i.outerWidth(!0)))),r&&s.width(r),c===o&&(c=Math.ceil(Math.max(i[0].clientHeight,i.outerHeight(!0)))),c&&s.height(c)),s.removeClass("fancybox-is-hidden")}})):this.afterLoad(t),e.attr("src",t.src),s.one("onReset",function(){try{n(this).find("iframe").hide().unbind().attr("src","//about:blank")}catch(t){}n(this).off("refresh.fb").empty(),t.isLoaded=!1})},setContent:function(t,e){var o=this;o.isClosing||(o.hideLoading(t),t.$content&&n.fancybox.stop(t.$content),t.$slide.empty(),l(e)&&e.parent().length?(e.parent().parent(".fancybox-slide--inline").trigger("onReset"),t.$placeholder=n("<div>").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===n.type(e)&&(e=n("<div>").append(n.trim(e)).contents(),3===e[0].nodeType&&(e=n("<div>").html(e))),t.opts.filter&&(e=n("<div>").html(e).find(t.opts.filter))),t.$slide.one("onReset",function(){n(this).find("video,audio").trigger("pause"),t.$placeholder&&(t.$placeholder.after(e.hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1)}),n(e).appendTo(t.$slide),n(e).is("video,audio")&&(n(e).addClass("fancybox-video"),n(e).wrap("<div></div>"),t.contentType="video",t.opts.width=t.opts.width||n(e).attr("width"),t.opts.height=t.opts.height||n(e).attr("height")),t.$content=t.$slide.children().filter("div,form,main,video,audio").first().addClass("fancybox-content"),t.$slide.addClass("fancybox-slide--"+t.contentType),this.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.trigger("onReset").removeClass("fancybox-slide--"+t.contentType).addClass("fancybox-slide--error"),t.contentType="html",this.setContent(t,this.translate(t,t.opts.errorTpl)),t.pos===this.currPos&&(this.isAnimating=!1)},showLoading:function(t){var e=this;t=t||e.current,t&&!t.$spinner&&(t.$spinner=n(e.translate(e,e.opts.spinnerTpl)).appendTo(t.$slide))},hideLoading:function(t){var e=this;t=t||e.current,t&&t.$spinner&&(t.$spinner.remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),t.pos===e.currPos&&e.updateCursor(),!t.opts.smallBtn||t.$smallBtn&&t.$smallBtn.length||(t.$smallBtn=n(e.translate(t,t.opts.btnTpl.smallBtn)).prependTo(t.$content)),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on("contextmenu.fb",function(t){return 2==t.button&&t.preventDefault(),!0}),"image"===t.type&&n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)),e.revealContent(t))},revealContent:function(t){var e,i,a,s,r=this,c=t.$slide,l=!1,d=!1;return e=t.opts[r.firstRun?"animationEffect":"transitionEffect"],a=t.opts[r.firstRun?"animationDuration":"transitionDuration"],a=parseInt(t.forcedDuration===o?a:t.forcedDuration,10),t.pos===r.currPos&&(t.isComplete?e=!1:r.isAnimating=!0),!t.isMoved&&t.pos===r.currPos&&a||(e=!1),"zoom"===e&&(t.pos===r.currPos&&a&&"image"===t.type&&!t.hasError&&(d=r.getThumbPos(t))?l=r.getFitPos(t):e="fade"),"zoom"===e?(l.scaleX=l.width/d.width,l.scaleY=l.height/d.height,s=t.opts.zoomOpacity,"auto"==s&&(s=Math.abs(t.width/t.height-d.width/d.height)>.1),s&&(d.opacity=.1,l.opacity=1),n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"),d),f(t.$content),void n.fancybox.animate(t.$content,l,a,function(){r.isAnimating=!1,r.complete()}
99)):(r.updateSlide(t),e?(n.fancybox.stop(c),i="fancybox-animated fancybox-slide--"+(t.pos>=r.prevPos?"next":"previous")+" fancybox-fx-"+e,c.removeAttr("style").removeClass("fancybox-slide--current fancybox-slide--next fancybox-slide--previous").addClass(i),t.$content.removeClass("fancybox-is-hidden"),f(c),void n.fancybox.animate(c,"fancybox-slide--current",a,function(e){c.removeClass(i).removeAttr("style"),t.pos===r.currPos&&r.complete()},!0)):(f(c),t.$content.removeClass("fancybox-is-hidden"),void(t.pos===r.currPos&&r.complete())))},getThumbPos:function(o){var i,a=this,s=!1,r=o.opts.$thumb,c=r&&r.length&&r[0].ownerDocument===e?r.offset():0,l=function(e){for(var o,i=e[0],a=i.getBoundingClientRect(),s=[];null!==i.parentElement;)"hidden"!==n(i.parentElement).css("overflow")&&"auto"!==n(i.parentElement).css("overflow")||s.push(i.parentElement.getBoundingClientRect()),i=i.parentElement;return o=s.every(function(t){var e=Math.min(a.right,t.right)-Math.max(a.left,t.left),n=Math.min(a.bottom,t.bottom)-Math.max(a.top,t.top);return e>0&&n>0}),o&&a.bottom>0&&a.right>0&&a.left<n(t).width()&&a.top<n(t).height()};return c&&l(r)&&(i=a.$refs.stage.offset(),s={top:c.top-i.top+parseFloat(r.css("border-top-width")||0),left:c.left-i.left+parseFloat(r.css("border-left-width")||0),width:r.width(),height:r.height(),scaleX:1,scaleY:1}),s},complete:function(){var t=this,o=t.current,i={};!o.isMoved&&o.isLoaded&&(o.isComplete||(o.isComplete=!0,o.$slide.siblings().trigger("onReset"),t.preload("inline"),f(o.$slide),o.$slide.addClass("fancybox-slide--complete"),n.each(t.slides,function(e,o){o.pos>=t.currPos-1&&o.pos<=t.currPos+1?i[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.off().remove())}),t.slides=i),t.isAnimating=!1,t.updateCursor(),t.trigger("afterShow"),o.$slide.find("video,audio").filter(":visible:first").trigger("play"),(n(e.activeElement).is("[disabled]")||o.opts.autoFocus&&"image"!=o.type&&"iframe"!==o.type)&&t.focu
99s())},preload:function(t){var e=this,n=e.slides[e.currPos+1],o=e.slides[e.currPos-1];n&&n.type===t&&e.loadSlide(n),o&&o.type===t&&e.loadSlide(o)},focus:function(){var t,e=this.current;this.isClosing||e&&e.isComplete&&e.$content&&(t=e.$content.find("input[autofocus]:enabled:visible:first"),t.length||(t=e.$content.find("button,:input,[tabindex],a").filter(":enabled:visible:first")),t=t&&t.length?t:e.$content,t.trigger("focus"))},activate:function(){var t=this;n(".fancybox-container").each(function(){var e=n(this).data("FancyBox");e&&e.id!==t.id&&!e.isClosing&&(e.trigger("onDeactivate"),e.removeEvents(),e.isVisible=!1)}),t.isVisible=!0,(t.current||t.isIdle)&&(t.update(),t.updateControls()),t.trigger("onActivate"),t.addEvents()},close:function(t,e){var o,i,a,s,r,c,l,p=this,h=p.current,g=function(){p.cleanUp(t)};return!p.isClosing&&(p.isClosing=!0,p.trigger("beforeClose",t)===!1?(p.isClosing=!1,d(function(){p.update()}),!1):(p.removeEvents(),h.timouts&&clearTimeout(h.timouts),a=h.$content,o=h.opts.animationEffect,i=n.isNumeric(e)?e:o?h.opts.animationDuration:0,h.$slide.off(u).removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),h.$slide.siblings().trigger("onReset").remove(),i&&p.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing"),p.hideLoading(h),p.hideControls(),p.updateCursor(),"zoom"!==o||t!==!0&&a&&i&&"image"===h.type&&!h.hasError&&(l=p.getThumbPos(h))||(o="fade"),"zoom"===o?(n.fancybox.stop(a),s=n.fancybox.getTranslate(a),c={top:s.top,left:s.left,scaleX:s.width/l.width,scaleY:s.height/l.height,width:l.width,height:l.height},r=h.opts.zoomOpacity,"auto"==r&&(r=Math.abs(h.width/h.height-l.width/l.height)>.1),r&&(l.opacity=0),n.fancybox.setTranslate(a,c),f(a),n.fancybox.animate(a,l,i,g),!0):(o&&i?t===!0?setTimeout(g,i):n.fancybox.animate(h.$slide.removeClass("fancybox-slide--current"),"fancybox-animated fancybox-slide--previous fancybox-fx-"+o,i,g):g(),!0)))},cleanUp:function(t){var e,o=this,i=n("body");o.current.$slide.trigger("onReset"),o.$refs.container.empty().remove(),o.trigger("afterClose",t),o.$lastFocus&&o.current.opts.backFocus&&o.$lastFocus.trigger("focus"),o.current=null,e=n.fancybox.getInstance(),e?e.activate():(i.removeClass("fancybox-active compensate-for-scrollbar"),n("#fancybox-style-noscroll").remove())},trigger:function(t,e){var o,i=Array.prototype.slice.call(arguments,1),a=this,s=e&&e.opts?e:a.current;return s?i.unshift(s):s=a,i.unshift(a),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,i)),o===!1?o:void("afterClose"!==t&&a.$refs?a.$refs.container.trigger(t+".fb",i):r.trigger(t+".fb",i))},updateControls:function(t){var e=this,n=e.current,o=n.index,i=n.opts.caption,a=e.$refs.container,s=e.$refs.caption;n.$slide.trigger("refresh"),e.$caption=i&&i.length?s.html(i):null,e.isHiddenControls||e.isIdle||e.showControls(),a.find("[data-fancybox-count]").html(e.group.length),a.find("[data-fancybox-index]").html(o+1),a.find("[data-fancybox-prev]").toggleClass("disabled",!n.opts.loop&&o<=0),a.find("[data-fancybox-next]").toggleClass("disabled",!n.opts.loop&&o>=e.group.length-1),"image"===n.type?a.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href",n.opts.image.src||n.src).show():n.opts.toolbar&&a.find("[data-fancybox-download],[data-fancybox-zoom]").hide()},hideControls:function(){this.isHiddenControls=!0,this.$refs.container.removeClass("fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav")},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.isHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&&t.group.length>1)).toggleClass("fancybox-show-nav",!!(e.arrows&&t.group.length>1)).toggleClass("fancybox-is-modal",!!e.modal),t.$caption?n.addClass("fancybox-show-caption "):n.removeClass("fancybox-show-caption")},toggleControls:function(){this.isHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:"3.3.5",defaults:a,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),o=Array.prototype.slice.call(arguments,1
99);return e instanceof h&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new h(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),t===!0&&this.close())},destroy:function(){this.close(!0),r.add("body").off("click.fb-start","**")},isMobile:e.createTouch!==o&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),use3d:function(){var n=e.createElement("div");return t.getComputedStyle&&t.getComputedStyle(n)&&t.getComputedStyle(n).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<11)}(),getTranslate:function(t){var e;return!(!t||!t.length)&&(e=t[0].getBoundingClientRect(),{top:e.top||0,left:e.left||0,width:e.width,height:e.height,opacity:parseFloat(t.css("opacity"))})},setTranslate:function(t,e){var n="",i={};if(t&&e)return e.left===o&&e.top===o||(n=(e.left===o?t.position().left:e.left)+"px, "+(e.top===o?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),e.scaleX!==o&&e.scaleY!==o&&(n=(n.length?n+" ":"")+"scale("+e.scaleX+", "+e.scaleY+")"),n.length&&(i.transform=n),e.opacity!==o&&(i.opacity=e.opacity),e.width!==o&&(i.width=e.width),e.height!==o&&(i.height=e.height),t.css(i)},animate:function(t,e,i,a,s){var r=!1;n.isFunction(i)&&(a=i,i=null),n.isPlainObject(e)||t.removeAttr("style"),n.fancybox.stop(t),t.on(u,function(o){(!o||!o.originalEvent||t.is(o.originalEvent.target)&&"z-index"!=o.originalEvent.propertyName)&&(n.fancybox.stop(t),r&&n.fancybox.setTranslate(t,r), 100n.isPlainObject(e)?s===!1&&t.removeAttr("style"):s!==!0&&t.removeClass(e),n.isFunction(a)&&a(o))}),n.isNumeric(i)&&t.css("transition-duration",i+"ms"),n.isPlainObject(e)?(e.scaleX!==o&&e.scaleY!==o&&(r=n.extend({},e,{width:t.width()*e.scaleX,height:t.height()*e.scaleY,scaleX:1,scaleY:1}),delete e.width,delete e.height,t.parent().hasClass("fancybox-slide--image")&&t.parent().addClass("fancybox-is-scaling")),n.fancybox.setTranslate(t,e)):t.addClass(e),t.data("timer",setTimeout(function(){t.trigger("transitionend")},i+16))},stop:function(t){t&&t.length&&(clearTimeout(t.data("timer")),t.off("transitionend").css("transition-duration",""),t.parent().removeClass("fancybox-is-scaling"))}},n.fn.fancybox=function(t){var e;return t=t||{},e=t.selector||!1,e?n("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},i):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},i),this},r.on("click.fb-start","[data-fancybox]",i),r.on("click.fb-start","[data-trigger]",function(t){i(t,{$target:n('[data-fancybox="'+n(t.currentTarget).attr("data-trigger")+'"]').eq(n(t.currentTarget).attr("data-index")||0),$trigger:n(this)})})}}(window,document,window.jQuery||jQuery),function(t){"use strict";var e=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace("$"+t,n||"")}),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e},n={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"//www.youtube.com/embed/$4",thumb:"//img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1,api:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12]+"").replace(/\?/,"&")+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&output=embed"}}};t(document).on("objectNeedsType.fb",function(o,i,a){var s,r,c,l,d,u,f,p=a.src||"",h=!1;s=t.extend(!0,{},n,a.opts.media),t.each(s,function(n,o){if(c=p.match(o.matcher)){if(h=o.type,f=n,u={},o.paramPlace&&c[o.paramPlace]){d=c[o.paramPlace],"?"==d[0]&&(d=d.substring(1)),d=d.split("&");for(var i=0;i<d.length;++i){var s=d[i].split("=",2);2==s.length&&(u[s[0]]=decodeURIComponent(s[1].replace(/\+/g," ")))}}return l=t.extend(!0,{},o.params,a.opts[n],u),p="function"===t.type(o.url)?o.url.call(this,c,l,a):e(o.url,c,l),r="function"===t.type(o.thumb)?o.thumb.call(this,c,l,a):e(o.thumb,c),"youtube"===n?p=p.replace(/&t=((\d+)m)?(\d+)s/,function(t,e,n,o){return"&start="+((n?60*parseInt(n,10):0)+parseInt(o,10))}):"vimeo"===n&&(p=p.replace("&%23","#")),!1}}),h?(a.opts.thumb||a.opts.$thumb&&a.opts.$thumb.length||(a.opts.thumb=r),"iframe"===h&&(a.opts=t.extend(!0,a.opts,{iframe:{preload:!1,attr:{scrolling:"no"}}})),t.extend(a,{type:h,src:p,origSrc:a.src,contentSource:f,contentType:"image"===h?"image":"gmap_place"==f||"gmap_search"==f?"map":"video"})):p&&(a.type=a.opts.defaultType)})}(window.jQuery||jQuery),function(t,e,n){"use strict";var o=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),i=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),a=function(e){var n=[];e=e.originalEvent||e||t.e,e=e.touches&&e.touches.length?e.touches:e.changedTouches&&e.changedTouches.length?e.changedTouches:[e];for(var o in e)e[o].pageX?n.push({x:e[o].pageX,y:e[o].pageY}):e[o].clientX&&n.push({x:e[o].clientX,y:e[o].clientY});return n},s=function(t,e,n){return e&&t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},r=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio')||n.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,o=t[0].attributes,i=o.length;e<i;e++)if("data-fancybox-"===o[e].nodeName.substr(0,14))return!0;return!1},c=function(e){var n=t.getComputedStyle(e)["overflow-y"],o=t.getComputedStyle(e)["overflow-x"],i=("scroll"===n||"auto"===n)&&e.scrollHeight>e.clientHeight,a=("scroll"===o||"auto"===o)&&e.scrollWidth>e.clientWidth;return i||a},l=function(t){for(var e=!1;;){if(e=c(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass("fancybox-stage")||t.is("body"))break}return e},d=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",n.proxy(e,"ontouchstart"))};d.prototype.destroy=function(){this.$container.off(".fb.touch")},d.prototype.ontouchstart=function(o){var i=this,c=n(o.target),d=i.instance,u=d.current,f=u.$content,p="touchstart"==o.type;if(p&&i.$container.off("mousedown.fb.touch"),(!o.originalEvent||2!=o.originalEvent.button)&&c.length&&!r(c)&&!r(c.parent())&&(c.is("img")||!(o.originalEvent.clientX>c[0].clientWidth+c.offset().left))){if(!u||d.isAnimating||d.isClosing)return o.stopPropagation(),void o.preventDefault();if(i.realPoints=i.startPoints=a(o),i.startPoints.length){if(o.stopPropagation(),i.startEvent=o,i.canTap=!0,i.$target=c,i.$content=f,i.opts=u.opts.touch,i.isPanning=!1,i.isSwiping=!1,i.isZooming=!1,i.isScrolling=!1,i.startTime=(new Date).getTime(),i.distanceX=i.distanceY=i.distance=0,i.canvasWidth=Math.round(u.$slide[0].clientWidth),i.canvasHeight=Math.round(u.$slide[0].clientHeight),i.contentLastPos=null,i.contentStartPos=n.fancybox.getTranslate(i.$content)||{top:0,left:0},i.sliderStartPos=i.sliderLastPos||n.fancybox.getTranslate(u.$slide),i.stagePos=n.fancybox.getTranslate(d.$refs.stage),i.sliderStartPos.top-=i.stagePos.top,i.sliderStartPos.left-=i.stagePos.left,i.contentStartPos.top-=i.stagePos.top,i.contentStartPos.left-=i.stagePos.left,n(e).off(".fb.touch").on(p?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",n.proxy(i,"ontouchend")).on(p?"touchmove.fb.touch":"mousemove.fb.touch",n.proxy(i,"ontouchmove")),n.fancybox.isMobile&&e.addEventListener("scroll",i.onscroll,!0),!i.opts&&!d.canPan()||!c.is(i.$stage)&&!i.$stage.find(c).length)return void(c.is(".fancybox-image")&&o.preventDefault());n.fancybox.isMobile&&(l(c)||l(c.parent()))||o.preventDefault(),(1===i.startPoints.length||u.hasError)&&(i.instance.canPan()?(n.fancybox.stop(i.$content),i.$content.css("transition-duration",""),i.isPanning=!0):i.isSwiping=!0,i.$container.addClass("fancybox-controls--isGrabbing")),2===i.startPoints.length&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(i.canTap=!1,i.isSwiping=!1,i.isPanning=!1,i.isZooming=!0,n.fancybox.stop(i.$content),i.$content.css("transition-duration",""),i.centerPointStartX=.5*(i.startPoints[0].x+i.startPoints[1].x)-n(t).scrollLeft(),i.centerPointStartY=.5*(i.startPoints[0].y+i.startPoints[1].y)-n(t).scrollTop(),i.percentageOfImageAtPinchPointX=(i.centerPointStartX-i.contentStartPos.left)/i.contentStartPos.width,i.percentageOfImageAtPinchPointY=(i.centerPointStartY-i.contentStartPos.top)/i.contentStartPos.height,i.startDistanceBetweenFingers=s(i.startPoints[0],i.startPoints[1]))}}},d.prototype.onscroll=function(t){var n=this;n.isScrolling=!0,e.removeEventListener("scroll",n.onscroll,!0)},d.prototype.ontouchmove=function(t){var e=this,o=n(t.target);return void 0!==t.originalEvent.buttons&&0===t.originalEvent.buttons?void e.ontouchend(t):e.isScrolling||!o.is(e.$stage)&&!e.$stage.find(o).length?void(e.canTap=!1):(e.newPoints=a(t),void((e.opts||e.instance.canPan())&&e.newPoints.length&&e.newPoints.length&&(e.isSwiping&&e.isSwiping===!0||t.preventDefault(),e.distanceX=s(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=s(e.newPoints[0],e.startPoints[0],"y"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0&&(e.isSwiping?e.onSwipe(t):e.isPanning?e.onPan():e.isZooming&&e.onZoom()))))},d.prototype.onSwipe=function(e){var a,s=this,r=s.isSwiping,c=s.sliderStartPos.left||0;if(r!==!0)"x"==r&&(s.distanceX>0&&(s.instance.group.length<2||0===s.instance.current.index&&!s.instance.current.opts.loop)?c+=Math.pow(s.distanceX,.8):s.distanceX<0&&(s.instance.group.length<2||s.instance.current.index===s.instance.group.length-1&&!s.instance.current.opts.loop)?c-=Math.pow(-s.distanceX,.8):c+=s.distanceX),s.sliderLastPos={top:"x"==r?0:s.sliderStartPos.top+s.distanceY,left:c},s.requestId&&(i(s.requestId),s.requestId=null),s.requestId=o(function(){s.sliderLastPos&&(n.each(s.instance.slides,function(t,e){var o=e.pos-s.instance.currPos;
100n.fancybox.setTranslate(e.$slide,{top:s.sliderLastPos.top,left:s.sliderLastPos.left+o*s.canvasWidth+o*e.opts.gutter})}),s.$container.addClass("fancybox-is-sliding"))});else if(Math.abs(s.distance)>10){if(s.canTap=!1,s.instance.group.length<2&&s.opts.vertical?s.isSwiping="y":s.instance.isDragging||s.opts.vertical===!1||"auto"===s.opts.vertical&&n(t).width()>800?s.isSwiping="x":(a=Math.abs(180*Math.atan2(s.distanceY,s.distanceX)/Math.PI),s.isSwiping=a>45&&a<135?"y":"x"),s.canTap=!1,"y"===s.isSwiping&&n.fancybox.isMobile&&(l(s.$target)||l(s.$target.parent())))return void(s.isScrolling=!0);s.instance.isDragging=s.isSwiping,s.startPoints=s.newPoints,n.each(s.instance.slides,function(t,e){n.fancybox.stop(e.$slide),e.$slide.css("transition-duration",""),e.inTransition=!1,e.pos===s.instance.current.pos&&(s.sliderStartPos.left=n.fancybox.getTranslate(e.$slide).left-n.fancybox.getTranslate(s.instance.$refs.stage).left)}),s.instance.SlideShow&&s.instance.SlideShow.isActive&&s.instance.SlideShow.stop()}},d.prototype.onPan=function(){var t=this;return s(t.newPoints[0],t.realPoints[0])<(n.fancybox.isMobile?10:5)?void(t.startPoints=t.newPoints):(t.canTap=!1,t.contentLastPos=t.limitMovement(),t.requestId&&(i(t.requestId),t.requestId=null),void(t.requestId=o(function(){n.fancybox.setTranslate(t.$content,t.contentLastPos)})))},d.prototype.limitMovement=function(){var t,e,n,o,i,a,s=this,r=s.canvasWidth,c=s.canvasHeight,l=s.distanceX,d=s.distanceY,u=s.contentStartPos,f=u.left,p=u.top,h=u.width,g=u.height;return i=h>r?f+l:f,a=p+d,t=Math.max(0,.5*r-.5*h),e=Math.max(0,.5*c-.5*g),n=Math.min(r-h,.5*r-.5*h),o=Math.min(c-g,.5*c-.5*g),l>0&&i>t&&(i=t-1+Math.pow(-t+f+l,.8)||0),l<0&&i<n&&(i=n+1-Math.pow(n-f-l,.8)||0),d>0&&a>e&&(a=e-1+Math.pow(-e+p+d,.8)||0),d<0&&a<o&&(a=o+1-Math.pow(o-p-d,.8)||0),{top:a,left:i}},d.prototype.limitPosition=function(t,e,n,o){var i=this,a=i.canvasWidth,s=i.canvasHeight;return n>a?(t=t>0?0:t,t=t<a-n?a-n:t):t=Math.max(0,a/2-n/2),o>s?(e=e>0?0:e,e=e<s-o?s-o:e):e=Math.max(0,s/2-o/2),{top:e,left:t}},d.prototype.onZoom=function(){var e=this,a=e.contentStartPos,r=a.width,c=a.height,l=a.left,d=a.top,u=s(e.newPoints[0],e.newPoints[1]),f=u/e.startDistanceBetweenFingers,p=Math.floor(r*f),h=Math.floor(c*f),g=(r-p)*e.percentageOfImageAtPinchPointX,b=(c-h)*e.percentageOfImageAtPinchPointY,m=(e.newPoints[0].x+e.newPoints[1].x)/2-n(t).scrollLeft(),y=(e.newPoints[0].y+e.newPoints[1].y)/2-n(t).scrollTop(),v=m-e.centerPointStartX,x=y-e.centerPointStartY,w=l+(g+v),$=d+(b+x),S={top:$,left:w,scaleX:f,scaleY:f};e.canTap=!1,e.newWidth=p,e.newHeight=h,e.contentLastPos=S,e.requestId&&(i(e.requestId),e.requestId=null),e.requestId=o(function(){n.fancybox.setTranslate(e.$content,e.contentLastPos)})},d.prototype.ontouchend=function(t){var o=this,s=Math.max((new Date).getTime()-o.startTime,1),r=o.isSwiping,c=o.isPanning,l=o.isZooming,d=o.isScrolling;return o.endPoints=a(t),o.$container.removeClass("fancybox-controls--isGrabbing"),n(e).off(".fb.touch"),e.removeEventListener("scroll",o.onscroll,!0),o.requestId&&(i(o.requestId),o.requestId=null),o.isSwiping=!1,o.isPanning=!1,o.isZooming=!1,o.isScrolling=!1,o.instance.isDragging=!1,o.canTap?o.onTap(t):(o.speed=366,o.velocityX=o.distanceX/s*.5,o.velocityY=o.distanceY/s*.5,o.speedX=Math.max(.5*o.speed,Math.min(1.5*o.speed,1/Math.abs(o.velocityX)*o.speed)),void(c?o.endPanning():l?o.endZooming():o.endSwiping(r,d)))},d.prototype.endSwiping=function(t,e){var o=this,i=!1,a=o.instance.group.length;o.sliderLastPos=null,"y"==t&&!e&&Math.abs(o.distanceY)>50?(n.fancybox.animate(o.instance.current.$slide,{top:o.sliderStartPos.top+o.distanceY+150*o.velocityY,opacity:0},200),i=o.instance.close(!0,200)):"x"==t&&o.distanceX>50&&a>1?i=o.instance.previous(o.speedX):"x"==t&&o.distanceX<-50&&a>1&&(i=o.instance.next(o.speedX)),i!==!1||"x"!=t&&"y"!=t||(e||a<2?o.instance.centerSlide(o.instance.current,150):o.instance.jumpTo(o.instance.current.index)),o.$container.removeClass("fancybox-is-sliding")},d.prototype.endPanning=function(){var t,e,o,i=this;i.contentLastPos&&(i.opts.momentum===!1?(t=i.contentLastPos.left,e=i.contentLastPos.top):(t=i.contentLastPos.left+i.velocityX*i.speed,e=i.contentLastPos.top+i.velocityY*i.speed),o=i.limitPosition(t,e,
100i.contentStartPos.width,i.contentStartPos.height),o.width=i.contentStartPos.width,o.height=i.contentStartPos.height,n.fancybox.animate(i.$content,o,330))},d.prototype.endZooming=function(){var t,e,o,i,a=this,s=a.instance.current,r=a.newWidth,c=a.newHeight;a.contentLastPos&&(t=a.contentLastPos.left,e=a.contentLastPos.top,i={top:e,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(a.$content,i),r<a.canvasWidth&&c<a.canvasHeight?a.instance.scaleToFit(150):r>s.width||c>s.height?a.instance.scaleToActual(a.centerPointStartX,a.centerPointStartY,150):(o=a.limitPosition(t,e,r,c),n.fancybox.setTranslate(a.$content,n.fancybox.getTranslate(a.$content)),n.fancybox.animate(a.$content,o,150)))},d.prototype.onTap=function(e){var o,i=this,s=n(e.target),r=i.instance,c=r.current,l=e&&a(e)||i.startPoints,d=l[0]?l[0].x-n(t).scrollLeft()-i.stagePos.left:0,u=l[0]?l[0].y-n(t).scrollTop()-i.stagePos.top:0,f=function(t){var o=c.opts[t];if(n.isFunction(o)&&(o=o.apply(r,[c,e])),o)switch(o){case"close":r.close(i.startEvent);break;case"toggleControls":r.toggleControls(!0);break;case"next":r.next();break;case"nextOrClose":r.group.length>1?r.next():r.close(i.startEvent);break;case"zoom":"image"==c.type&&(c.isLoaded||c.$ghost)&&(r.canPan()?r.scaleToFit():r.isScaledDown()?r.scaleToActual(d,u):r.group.length<2&&r.close(i.startEvent))}};if((!e.originalEvent||2!=e.originalEvent.button)&&(s.is("img")||!(d>s[0].clientWidth+s.offset().left))){if(s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))o="Outside";else if(s.is(".fancybox-slide"))o="Slide";else{if(!r.current.$content||!r.current.$content.find(s).addBack().filter(s).length)return;o="Content"}if(i.tapped){if(clearTimeout(i.tapped),i.tapped=null,Math.abs(d-i.tapX)>50||Math.abs(u-i.tapY)>50)return this;f("dblclick"+o)}else i.tapX=d,i.tapY=u,c.opts["dblclick"+o]&&c.opts["dblclick"+o]!==c.opts["click"+o]?i.tapped=setTimeout(function(){i.tapped=null,f("click"+o)},500):f("click"+o);return this}},n(e).on("onActivate.fb",function(t,e){e&&!e.Guestures&&(e.Guestures=new d(e))})}(window,document,window.jQuery||jQuery),function(t,e){"use strict";e.extend(!0,e.fancybox.defaults,{btnTpl:{slideShow:'<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg viewBox="0 0 40 40"><path d="M13,12 L27,20 L13,27 Z" /><path d="M15,10 v19 M23,10 v19" /></svg></button>'},slideShow:{autoStart:!1,speed:3e3}});var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this;t.$button=t.instance.$refs.toolbar.find("[data-fancybox-play]").on("click",function(){t.toggle()}),(t.instance.group.length<2||!t.instance.group[t.instance.currIndex].opts.slideShow)&&t.$button.hide()},set:function(t){var e=this;e.instance&&e.instance.current&&(t===!0||e.instance.current.opts.loop||e.instance.currIndex<e.instance.group.length-1)?e.timer=setTimeout(function(){e.isActive&&e.instance.jumpTo((e.instance.currIndex+1)%e.instance.group.length)},e.instance.current.opts.slideShow.speed):(e.stop(),e.instance.idleSecondsCounter=0,e.instance.showControls())},clear:function(){var t=this;clearTimeout(t.timer),t.timer=null},start:function(){var t=this,e=t.instance.current;e&&(t.isActive=!0,t.$button.attr("title",e.opts.i18n[e.opts.lang].PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"),t.set(!0))},stop:function(){var t=this,e=t.instance.current;t.clear(),t.$button.attr("title",e.opts.i18n[e.opts.lang].PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"),t.isActive=!1},toggle:function(){var t=this;t.isActive?t.stop():t.start()}}),e(t).on({"onInit.fb":function(t,e){e&&!e.SlideShow&&(e.SlideShow=new n(e))},"beforeShow.fb":function(t,e,n,o){var i=e&&e.SlideShow;o?i&&n.opts.slideShow.autoStart&&i.start():i&&i.isActive&&i.clear()},"afterShow.fb":function(t,e,n){var o=e&&e.SlideShow;o&&o.isActive&&o.set()},"afterKeydown.fb":function(n,o,i,a,s){var r=o&&o.SlideShow;!r||!i.opts.slideShow||80!==s&&32!==s||e(t.activeElement).is("button,a,input")||(a.preventDefault(),r.toggle(
100))},"beforeClose.fb onDeactivate.fb":function(t,e){var n=e&&e.SlideShow;n&&n.stop()}}),e(t).on("visibilitychange",function(){var n=e.fancybox.getInstance(),o=n&&n.SlideShow;o&&o.isActive&&(t.hidden?o.clear():o.set())})}(document,window.jQuery||jQuery),function(t,e){"use strict";var n=function(){for(var e=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n={},o=0;o<e.length;o++){var i=e[o];if(i&&i[1]in t){for(var a=0;a<i.length;a++)n[e[0][a]]=i[a];return n}}return!1}();if(!n)return void(e&&e.fancybox&&(e.fancybox.defaults.btnTpl.fullScreen=!1));var o={request:function(e){e=e||t.documentElement,e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT)},exit:function(){t[n.exitFullscreen]()},toggle:function(e){e=e||t.documentElement,this.isFullscreen()?this.exit():this.request(e)},isFullscreen:function(){return Boolean(t[n.fullscreenElement])},enabled:function(){return Boolean(t[n.fullscreenEnabled])}};e.extend(!0,e.fancybox.defaults,{btnTpl:{fullScreen:'<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fullscreen" title="{{FULL_SCREEN}}"><svg viewBox="0 0 40 40"><path d="M9,12 v16 h22 v-16 h-22 v8" /></svg></button>'},fullScreen:{autoStart:!1}}),e(t).on({"onInit.fb":function(t,e){var n;e&&e.group[e.currIndex].opts.fullScreen?(n=e.$refs.container,n.on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),o.toggle()}),e.opts.fullScreen&&e.opts.fullScreen.autoStart===!0&&o.request(),e.FullScreen=o):e&&e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()},"afterKeydown.fb":function(t,e,n,o,i){e&&e.FullScreen&&70===i&&(o.preventDefault(),e.FullScreen.toggle())},"beforeClose.fb":function(t,e){e&&e.FullScreen&&e.$refs.container.hasClass("fancybox-is-fullscreen")&&o.exit()}}),e(t).on(n.fullscreenchange,function(){var t=o.isFullscreen(),n=e.fancybox.getInstance();n&&(n.current&&"image"===n.current.type&&n.isAnimating&&(n.current.$content.css("transition","none"),n.isAnimating=!1,n.update(!0,!0,0)),n.trigger("onFullscreenChange",t),n.$refs.container.toggleClass("fancybox-is-fullscreen",t))})}(document,window.jQuery||jQuery),function(t,e){"use strict";var n="fancybox-thumbs",o=n+"-active",i=n+"-loading";e.fancybox.defaults=e.extend(!0,{btnTpl:{thumbs:'<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg viewBox="0 0 120 120"><path d="M30,30 h14 v14 h-14 Z M50,30 h14 v14 h-14 Z M70,30 h14 v14 h-14 Z M30,50 h14 v14 h-14 Z M50,50 h14 v14 h-14 Z M70,50 h14 v14 h-14 Z M30,70 h14 v14 h-14 Z M50,70 h14 v14 h-14 Z M70,70 h14 v14 h-14 Z" /></svg></button>'},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"}},e.fancybox.defaults);var a=function(t){this.init(t)};e.extend(a.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,isActive:!1,init:function(t){var e,n,o=this;o.instance=t,t.Thumbs=o,o.opts=t.group[t.currIndex].opts.thumbs,e=t.group[0],e=e.opts.thumb||!(!e.opts.$thumb||!e.opts.$thumb.length)&&e.opts.$thumb.attr("src"),t.group.length>1&&(n=t.group[1],n=n.opts.thumb||!(!n.opts.$thumb||!n.opts.$thumb.length)&&n.opts.$thumb.attr("src")),o.$button=t.$refs.toolbar.find("[data-fancybox-thumbs]"),o.opts&&e&&n&&e&&n?(o.$button.show().on("click",function(){o.toggle()}),o.isActive=!0):o.$button.hide()},create:function(){var t,o=this,a=o.instance,s=o.opts.parentEl,r=[];o.$grid||(o.$grid=e('<div class="'+n+" "+n+"-"+o.opts.axis+'"></div>').appendTo(a.$refs.container.find(s).addBack().filter(s)),o.$grid.on("click","li",function(){a.jumpTo(e(this).attr("data-index"))})),o.$list||(o.$list=e("<ul>").appendTo(o.$grid)),e.each(a.group,function(e,n){t=n.opts.thumb||(n.opts.$thumb?n.opts.$thumb.attr("src"):null),t||"image"!==n.type||(t=n.src),r.push('<li data-index="'+e+'" tabindex="0" class="'+i+'"'+(t&&t.length?' style="background-image:url('+t+')" />':"")+"></li>")}),o.$list[0].innerHTML=r.join(""),"x"===o.opts.axis&&o.$list.width(parseInt(o.$grid.css("padding-right"),10)+a.group.length*o.$list.children().eq(0).outerWidth(!0))},focus:function(t){var e,n,i=this,a=i.$list,s=i.$grid;
100i.instance.current&&(e=a.children().removeClass(o).filter('[data-index="'+i.instance.current.index+'"]').addClass(o),n=e.position(),"y"===i.opts.axis&&(n.top<0||n.top>a.height()-e.outerHeight())?a.stop().animate({scrollTop:a.scrollTop()+n.top},t):"x"===i.opts.axis&&(n.left<s.scrollLeft()||n.left>s.scrollLeft()+(s.width()-e.outerWidth()))&&a.parent().stop().animate({scrollLeft:n.left},t))},update:function(){var t=this;t.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),t.isVisible?(t.$grid||t.create(),t.instance.trigger("onThumbsShow"),t.focus(0)):t.$grid&&t.instance.trigger("onThumbsHide"),t.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({"onInit.fb":function(t,e){var n;e&&!e.Thumbs&&(n=new a(e),n.isActive&&n.opts.autoStart===!0&&n.show())},"beforeShow.fb":function(t,e,n,o){var i=e&&e.Thumbs;i&&i.isVisible&&i.focus(o?0:250)},"afterKeydown.fb":function(t,e,n,o,i){var a=e&&e.Thumbs;a&&a.isActive&&71===i&&(o.preventDefault(),a.toggle())},"beforeClose.fb":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&n.opts.hideOnClose!==!1&&n.$grid.hide()}})}(document,window.jQuery||jQuery),function(t,e){"use strict";function n(t){var e={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(t).replace(/[&<>"'`=\/]/g,function(t){return e[t]})}e.extend(!0,e.fancybox.defaults,{btnTpl:{share:'<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg viewBox="0 0 40 40"><path d="M6,30 C8,18 19,16 23,16 L23,16 L23,10 L33,20 L23,29 L23,24 C19,24 8,27 6,30 Z"></svg></button>'},share:{url:function(t,e){return!t.currentHash&&"inline"!==e.type&&"html"!==e.type&&(e.origSrc||e.src)||window.location},tpl:'<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" /></p></div>'}}),e(t).on("click","[data-fancybox-share]",function(){var t,o,i=e.fancybox.getInstance(),a=i.current||null;a&&("function"===e.type(a.opts.share.url)&&(t=a.opts.share.url.apply(a,[i,a])),o=a.opts.share.tpl.replace(/\{\{media\}\}/g,"image"===a.type?encodeURIComponent(a.src):"").replace(/\{\{url\}\}/g,encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g,n(t)).replace(/\{\{descr\}\}/g,i.$caption?encodeURIComponent(i.$caption.text()):""),e.fancybox.open({src:i.translate(i,o),type:"html",opts:{animationEffect:!1,afterLoad:function(t,e){i.$refs.container.one("beforeClose.fb",function(){t.close(null,0)}),e.$content.find(".fancybox-share__links a").click(function(){return window.open(this.href,"Share","width=550, height=450"),!1})}}}))})}(document,window.jQuery||jQuery),function(t,e,n){"use strict";function o(){var t=e.location.hash.substr(1),n=t.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,i=n.join("-");return{hash:t,index:o<1?1:o,gallery:i}}function i(t){var e;""!==t.gallery&&(e=n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1).trigger("click.fb-start"))}function a(t){var e,n;return!!t&&(e=t.current?t.current.opts:t.opts,n=e.hash||(e.$orig?e.$orig.data("fancybox"):""),""!==n&&n)}n.escapeSelector||(n.escapeSelector=function(t){var e=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,n=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t};return(t+"").replace(e,n)}),n(function(){n.fancybox.defaults.hash!==!1&&(n(t).on({"onInit.fb":function(t,e){var n,i;e.group[e.currIndex].opts.hash!==!1&&(n=o(),i=a(e),i&&n.gallery&&i==n.gallery&&(e.currIndex=n.index-1))},"beforeShow.fb":function(n,o,i,s){var r;i&&i.opts.hash!==!1&&(r=a(o),r&&(o.currentHash=r+(o.group.length>1?"-"+(i.index+1):""),e.location.hash!=="#"+o.currentHash&&(o.origHash||(o.origHash=e.location.hash),o.hashTimer&&clearTimeout(o.hashTimer),o.hashTimer=setTimeout(function(){"replaceState"in e.history?(e.history[s?"pushState":"replaceState"]({},t.title,e.location.pathname+e.location.search+"#"+o.currentHash),s&&(o.hasCreatedHistory=!0)):e.location.hash=o.currentHash,o.hashTimer=null},300))))},"beforeClose.fb":function(n,o,i){var s;i.opts.hash!==!1&&(s=a(o),o.currentHash&&o.hasCreatedHistory?e.history.back():o.currentHash&&("replaceState"in e.history?e.history.replaceState({},t.title,e.location.pathname+e.location.search+(o.origHash||"")):e.location.hash=o.origHash),o.currentHash=null,clearTimeout(o.hashTimer))}}),n(e).on("hashchange.fb",function(){var t,e=o();n.each(n(".fancybox-container").get().reverse(),function(e,o){var i=n(o).data("FancyBox");if(i.currentHash)return t=i,!1}),t?!t.currentHash||t.currentHash===e.gallery+"-"+e.index||1===e.index&&t.currentHash==e.gallery||(t.currentHash=null,t.close()):""!==e.gallery&&i(e)}),setTimeout(function(){n.fancybox.getInstance()||i(o())},50))})}(document,window,window.jQuery||jQuery),function(t,e){"use strict";var n=(new Date).getTime();e(t).on({"onInit.fb":function(t,e,o){e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",function(t){var o=e.current,i=(new Date).getTime();e.group.length<2||o.opts.wheel===!1||"auto"===o.opts.wheel&&"image"!==o.type||(t.preventDefault(),t.stopPropagation(),o.$slide.hasClass("fancybox-animated")||(t=t.originalEvent||t,i-n<250||(n=i,e[(-t.deltaY||-t.deltaX||t.wheelDelta||-t.detail)<0?"next":"previous"]())))})}})}(document,window.jQuery||jQuery); 101/** 102 * Library: Waypoints.js 103 * Author(s): Caleb Troughton 104 * Version: 4.0.1 105 * Licence: MIT 106 * GitHub: https://github.com/imakewebthings/waypoints 107 */ 108(function() { 109 'use strict' 110 111 var keyCounter = 0 112 var allWaypoints = {} 113 114 /* http://imakewebthings.com/waypoints/api/waypoint */ 115 function Waypoint(options) { 116 if (!options) { 117 throw new Error('No options passed to Waypoint constructor') 118 } 119 if (!options.element) { 120 throw new Error('No element option passed to Waypoint constructor') 121 } 122 if (!options.handler) { 123 throw new Error('No handler option passed to Waypoint constructor') 124 } 125 126 this.key = 'waypoint-' + keyCounter 127 this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options) 128 this.element = this.options.element 129 this.adapter = new Waypoint.Adapter(this.element) 130 this.callback = options.handler 131 this.axis = this.options.horizontal ? 'horizontal' : 'vertical' 132 this.enabled = this.options.enabled 133 this.triggerPoint = null 134 this.group = Waypoint.Group.findOrCreate({ 135 name: this.options.group, 136 axis: this.axis 137 }) 138 this.context = Waypoint.Context.findOrCreateByElement(this.options.context) 139 140 if (Waypoint.offsetAliases[this.options.offset]) { 141 this.options.offset = Waypoint.offsetAliases[this.options.offset] 142 } 143 this.group.add(this) 144 this.context.add(this) 145 allWaypoints[this.key] = this 146 keyCounter += 1 147 } 148 149 /* Private */ 150 Waypoint.prototype.queueTrigger = function(direction) { 151 this.group.queueTrigger(this, direction) 152 } 153 154 /* Private */ 155 Waypoint.prototype.trigger = function(args) { 156 if (!this.enabled) { 157 return 158 } 159 if (this.callback) { 160 this.callback.apply(this, args) 161 } 162 } 163 164 /* Public */ 165 /* http://imakewebthings.com/waypoints/api/destroy */ 166 Waypoint.prototype.destroy = function() { 167 this.context.remove(this) 168 this.group.remove(this) 169 delete allWaypoints[this.key] 170 } 171 172 /* Public */ 173 /* http://imakewebthings.com/waypoints/api/disable */ 174 Waypoint.prototype.disable = function() { 175 this.enabled = false 176 return this 177 } 178 179 /* Public */ 180 /* http://imakewebthings.com/waypoints/api/enable */ 181 Waypoint.prototype.enable = function() { 182 this.context.refresh() 183 this.enabled = true 184 return this 185 } 186 187 /* Public */ 188 /* http://imakewebthings.com/waypoints/api/next */ 189 Waypoint.prototype.next = function() { 190 return this.group.next(this) 191 } 192 193 /* Public */ 194 /* http://imakewebthings.com/waypoints/api/previous */ 195 Waypoint.prototype.previous = function() { 196 return this.group.previous(this) 197 } 198 199 /* Private */ 200 Waypoint.invokeAll = function(method) { 201 var allWaypointsArray = []
202 for (var waypointKey in allWaypoints) { 203 allWaypointsArray.push(allWaypoints[waypointKey]) 204 } 205 for (var i = 0, end = allWaypointsArray.length; i < end; i++) { 206 allWaypointsArray[i][method]() 207 } 208 } 209 210 /* Public */ 211 /* http://imakewebthings.com/waypoints/api/destroy-all */ 212 Waypoint.destroyAll = function() { 213 Waypoint.invokeAll('destroy') 214 } 215 216 /* Public */ 217 /* http://imakewebthings.com/waypoints/api/disable-all */ 218 Waypoint.disableAll = function() { 219 Waypoint.invokeAll('disable') 220 } 221 222 /* Public */ 223 /* http://imakewebthings.com/waypoints/api/enable-all */ 224 Waypoint.enableAll = function() { 225 Waypoint.Context.refreshAll() 226 for (var waypointKey in allWaypoints) { 227 allWaypoints[waypointKey].enabled = true 228 } 229 return this 230 } 231 232 /* Public */ 233 /* http://imakewebthings.com/waypoints/api/refresh-all */ 234 Waypoint.refreshAll = function() { 235 Waypoint.Context.refreshAll() 236 } 237 238 /* Public */ 239 /* http://imakewebthings.com/waypoints/api/viewport-height */ 240 Waypoint.viewportHeight = function() { 241 return window.innerHeight || document.documentElement.clientHeight 242 } 243 244 /* Public */ 245 /* http://imakewebthings.com/waypoints/api/viewport-width */ 246 Waypoint.viewportWidth = function() { 247 return document.documentElement.clientWidth 248 } 249 250 Waypoint.adapters = [] 251 252 Waypoint.defaults = { 253 context: window, 254 continuous: true, 255 enabled: true, 256 group: 'default', 257 horizontal: false, 258 offset: 0 259 } 260 261 Waypoint.offsetAliases = { 262 'bottom-in-view': function() { 263 return this.context.innerHeight() - this.adapter.outerHeight() 264 }, 265 'right-in-view': function() { 266 return this.context.innerWidth() - this.adapter.outerWidth() 267 } 268 } 269 270 window.Waypoint = Waypoint 271}()) 272;(function() { 273 'use strict' 274 275 function requestAnimationFrameShim(callback) { 276 window.setTimeout(callback, 1000 / 60) 277 } 278 279 var keyCounter = 0 280 var contexts = {} 281 var Waypoint = window.Waypoint 282 var oldWindowLoad = window.onload 283 284 /* http://imakewebthings.com/waypoints/api/context */ 285 function Context(element) { 286 this.element = element 287 this.Adapter = Waypoint.Adapter 288 this.adapter = new this.Adapter(element) 289 this.key = 'waypoint-context-' + keyCounter 290 this.didScroll = false 291 this.didResize = false 292 this.oldScroll = { 293 x: this.adapter.scrollLeft(), 294 y: this.adapter.scrollTop() 295 } 296 this.waypoints = { 297 vertical: {}, 298 horizontal: {} 299 } 300 301 element.waypointContextKey = this.key 302 contexts[element.waypointContextKey] = this 303 keyCounter += 1 304 if (!Waypoint.windowContext) { 305 Waypoint.windowContext = true 306 Waypoint.windowContext = new Context(window) 307 } 308 309 this.createThrottledScrollHandler() 310 this.createThrottledResizeHandler() 311 } 312 313 /* Private */ 314 Context.prototype.add = function(waypoint) { 315 var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical' 316 this.waypoints[axis][waypoint.key] = waypoint 317 this.refresh() 318 } 319 320 /* Private */ 321 Context.prototype.checkEmpty = function() { 322 var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal) 323 var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical) 324 var isWindow = this.element == this.element.window 325 if (horizontalEmpty && verticalEmpty && !isWindow) { 326 this.adapter.off('.waypoints') 327 delete contexts[this.key] 328 } 329 } 330 331 /* Private */ 332 Context.prototype.createThrottledResizeHandler = function() { 333 var self = this 334 335 function resizeHandler() { 336 self.handleResize() 337 self.didResize = false 338 } 339 340 this.adapter.on('resize.waypoints', function() { 341 if (!self.didResize) { 342 self.didResize = true 343 Waypoint.requestAnimationFrame(resizeHandler) 344 } 345 }) 346 } 347 348 /* Private */ 349 Context.prototype.createThrottledScrollHandler = function() { 350 var self = this 351 function scrollHandler() { 352 self.handleScroll() 353 self.didScroll = false 354 } 355 356 this.adapter.on('scroll.waypoints', function() { 357 if (!self.didScroll || Waypoint.isTouch) { 358 self.didScroll = true 359 Waypoint.requestAnimationFrame(scrollHandler) 360 } 361 }) 362 } 363 364 /* Private */ 365 Context.prototype.handleResize = function() { 366 Waypoint.Context.refreshAll() 367 } 368 369 /* Private */ 370 Context.prototype.handleScroll = function() { 371 var triggeredGroups = {} 372 var axes = { 373 horizontal: { 374 newScroll: this.adapter.scrollLeft(), 375 oldScroll: this.oldScroll.x, 376 forward: 'right', 377 backward: 'left' 378 }, 379 vertical: { 380 newScroll: this.adapter.scrollTop(), 381 oldScroll: this.oldScroll.y, 382 forward: 'down', 383 backward: 'up' 384 } 385 } 386 387 for (var axisKey in axes) { 388 var axis = axes[axisKey] 389 var isForward = axis.newScroll > axis.oldScroll 390 var direction = isForward ? axis.forward : axis.backward 391
392 for (var waypointKey in this.waypoints[axisKey]) { 393 var waypoint = this.waypoints[axisKey][waypointKey] 394 if (waypoint.triggerPoint === null) { 395 continue 396 } 397 var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint 398 var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint 399 var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint 400 var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint 401 if (crossedForward || crossedBackward) { 402 waypoint.queueTrigger(direction) 403 triggeredGroups[waypoint.group.id] = waypoint.group 404 } 405 } 406 } 407 408 for (var groupKey in triggeredGroups) { 409 triggeredGroups[groupKey].flushTriggers() 410 } 411 412 this.oldScroll = { 413 x: axes.horizontal.newScroll, 414 y: axes.vertical.newScroll 415 } 416 } 417 418 /* Private */ 419 Context.prototype.innerHeight = function() { 420 /*eslint-disable eqeqeq */ 421 if (this.element == this.element.window) { 422 return Waypoint.viewportHeight() 423 } 424 /*eslint-enable eqeqeq */ 425 return this.adapter.innerHeight() 426 } 427 428 /* Private */ 429 Context.prototype.remove = function(waypoint) { 430 delete this.waypoints[waypoint.axis][waypoint.key] 431 this.checkEmpty() 432 } 433 434 /* Private */ 435 Context.prototype.innerWidth = function() { 436 /*eslint-disable eqeqeq */ 437 if (this.element == this.element.window) { 438 return Waypoint.viewportWidth() 439 } 440 /*eslint-enable eqeqeq */ 441 return this.adapter.innerWidth() 442 } 443 444 /* Public */ 445 /* http://imakewebthings.com/waypoints/api/context-destroy */ 446 Context.prototype.destroy = function() { 447 var allWaypoints = [] 448 for (var axis in this.waypoints) {
449 for (var waypointKey in this.waypoints[axis]) { 450 allWaypoints.push(this.waypoints[axis][waypointKey]) 451 } 452 } 453 for (var i = 0, end = allWaypoints.length; i < end; i++) { 454 allWaypoints[i].destroy() 455 } 456 } 457 458 /* Public */ 459 /* http://imakewebthings.com/waypoints/api/context-refresh */ 460 Context.prototype.refresh = function() { 461 /*eslint-disable eqeqeq */ 462 var isWindow = this.element == this.element.window 463 /*eslint-enable eqeqeq */ 464 var contextOffset = isWindow ? undefined : this.adapter.offset() 465 var triggeredGroups = {} 466 var axes 467 468 this.handleScroll() 469 axes = { 470 horizontal: { 471 contextOffset: isWindow ? 0 : contextOffset.left, 472 contextScroll: isWindow ? 0 : this.oldScroll.x, 473 contextDimension: this.innerWidth(), 474 oldScroll: this.oldScroll.x, 475 forward: 'right', 476 backward: 'left', 477 offsetProp: 'left' 478 }, 479 vertical: { 480 contextOffset: isWindow ? 0 : contextOffset.top, 481 contextScroll: isWindow ? 0 : this.oldScroll.y, 482 contextDimension: this.innerHeight(), 483 oldScroll: this.oldScroll.y, 484 forward: 'down', 485 backward: 'up', 486 offsetProp: 'top' 487 } 488 } 489 490 for (var axisKey in axes) { 491 var axis = axes[axisKey]
492 for (var waypointKey in this.waypoints[axisKey]) { 493 var waypoint = this.waypoints[axisKey][waypointKey] 494 var adjustment = waypoint.options.offset 495 var oldTriggerPoint = waypoint.triggerPoint 496 var elementOffset = 0 497 var freshWaypoint = oldTriggerPoint == null 498 var contextModifier, wasBeforeScroll, nowAfterScroll 499 var triggeredBackward, triggeredForward 500 501 if (waypoint.element !== waypoint.element.window) { 502 elementOffset = waypoint.adapter.offset()[axis.offsetProp] 503 } 504 505 if (typeof adjustment === 'function') { 506 adjustment = adjustment.apply(waypoint) 507 } 508 else if (typeof adjustment === 'string') { 509 adjustment = parseFloat(adjustment) 510 if (waypoint.options.offset.indexOf('%') > - 1) { 511 adjustment = Math.ceil(axis.contextDimension * adjustment / 100) 512 } 513 } 514 515 contextModifier = axis.contextScroll - axis.contextOffset 516 waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment) 517 wasBeforeScroll = oldTriggerPoint < axis.oldScroll 518 nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll 519 triggeredBackward = wasBeforeScroll && nowAfterScroll 520 triggeredForward = !wasBeforeScroll && !nowAfterScroll 521 522 if (!freshWaypoint && triggeredBackward) { 523 waypoint.queueTrigger(axis.backward) 524 triggeredGroups[waypoint.group.id] = waypoint.group 525 } 526 else if (!freshWaypoint && triggeredForward) { 527 waypoint.queueTrigger(axis.forward) 528 triggeredGroups[waypoint.group.id] = waypoint.group 529 } 530 else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) { 531 waypoint.queueTrigger(axis.forward) 532 triggeredGroups[waypoint.group.id] = waypoint.group 533 } 534 } 535 } 536 537 Waypoint.requestAnimationFrame(function() { 538 for (var groupKey in triggeredGroups) { 539 triggeredGroups[groupKey].flushTriggers() 540 } 541 }) 542 543 return this 544 } 545 546 /* Private */ 547 Context.findOrCreateByElement = function(element) { 548 return Context.findByElement(element) || new Context(element) 549 } 550 551 /* Private */ 552 Context.refreshAll = function() { 553 for (var contextId in contexts) { 554 contexts[contextId].refresh() 555 } 556 } 557 558 /* Public */ 559 /* http://imakewebthings.com/waypoints/api/context-find-by-element */ 560 Context.findByElement = function(element) { 561 return contexts[element.waypointContextKey] 562 } 563 564 window.onload = function() { 565 if (oldWindowLoad) { 566 oldWindowLoad() 567 } 568 Context.refreshAll() 569 } 570 571 572 Waypoint.requestAnimationFrame = function(callback) { 573 var requestFn = window.requestAnimationFrame || 574 window.mozRequestAnimationFrame || 575 window.webkitRequestAnimationFrame || 576 requestAnimationFrameShim 577 requestFn.call(window, callback) 578 } 579 Waypoint.Context = Context 580}()) 581;(function() { 582 'use strict' 583 584 function byTriggerPoint(a, b) { 585 return a.triggerPoint - b.triggerPoint 586 } 587 588 function byReverseTriggerPoint(a, b) { 589 return b.triggerPoint - a.triggerPoint 590 } 591 592 var groups = { 593 vertical: {}, 594 horizontal: {} 595 } 596 var Waypoint = window.Waypoint 597 598 /* http://imakewebthings.com/waypoints/api/group */ 599 function Group(options) { 600 this.name = options.name 601 this.axis = options.axis 602 this.id = this.name + '-' + this.axis 603 this.waypoints = [] 604 this.clearTriggerQueues() 605 groups[this.axis][this.name] = this 606 } 607 608 /* Private */ 609 Group.prototype.add = function(waypoint) { 610 this.waypoints.push(waypoint) 611 } 612 613 /* Private */ 614 Group.prototype.clearTriggerQueues = function() { 615 this.triggerQueues = { 616 up: [], 617 down: [], 618 left: [], 619 right: [] 620 } 621 } 622 623 /* Private */ 624 Group.prototype.flushTriggers = function() { 625 for (var direction in this.triggerQueues) { 626 var waypoints = this.triggerQueues[direction] 627 var reverse = direction === 'up' || direction === 'left' 628 waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint) 629 for (var i = 0, end = waypoints.length; i < end; i += 1) { 630 var waypoint = waypoints[i] 631 if (waypoint.options.continuous || i === waypoints.length - 1) { 632 waypoint.trigger([direction]) 633 } 634 } 635 } 636 this.clearTriggerQueues() 637 } 638 639 /* Private */ 640 Group.prototype.next = function(waypoint) { 641 this.waypoints.sort(byTriggerPoint) 642 var index = Waypoint.Adapter.inArray(waypoint, this.waypoints) 643 var isLast = index === this.waypoints.length - 1 644 return isLast ? null : this.waypoints[index + 1] 645 } 646 647 /* Private */ 648 Group.prototype.previous = function(waypoint) { 649 this.waypoints.sort(byTriggerPoint) 650 var index = Waypoint.Adapter.inArray(waypoint, this.waypoints) 651 return index ? this.waypoints[index - 1] : null 652 } 653 654 /* Private */ 655 Group.prototype.queueTrigger = function(waypoint, direction) { 656 this.triggerQueues[direction].push(waypoint) 657 } 658 659 /* Private */ 660 Group.prototype.remove = function(waypoint) { 661 var index = Waypoint.Adapter.inArray(waypoint, this.waypoints) 662 if (index > -1) { 663 this.waypoints.splice(index, 1) 664 } 665 } 666 667 /* Public */ 668 /* http://imakewebthings.com/waypoints/api/first */ 669 Group.prototype.first = function() { 670 return this.waypoints[0] 671 } 672 673 /* Public */ 674 /* http://imakewebthings.com/waypoints/api/last */ 675 Group.prototype.last = function() { 676 return this.waypoints[this.waypoints.length - 1] 677 } 678 679 /* Private */ 680 Group.findOrCreate = function(options) { 681 return groups[options.axis][options.name] || new Group(options) 682 } 683 684 Waypoint.Group = Group 685}()) 686;(function() { 687 'use strict' 688 689 var $ = window.jQuery 690 var Waypoint = window.Waypoint 691 692 function JQueryAdapter(element) { 693 this.$element = $(element) 694 } 695 696 $.each([
697 'innerHeight', 698 'innerWidth', 699 'off', 700 'offset', 701 'on', 702 'outerHeight', 703 'outerWidth', 704 'scrollLeft', 705 'scrollTop' 706 ], function(i, method) { 707 JQueryAdapter.prototype[method] = function() { 708 var args = Array.prototype.slice.call(arguments) 709 return this.$element[method].apply(this.$element, args) 710 } 711 }) 712 713 $.each([ 714 'extend', 715 'inArray', 716 'isEmptyObject' 717 ], function(i, method) { 718 JQueryAdapter[method] = $[method] 719 }) 720 721 Waypoint.adapters.push({ 722 name: 'jquery', 723 Adapter: JQueryAdapter 724 }) 725 Waypoint.Adapter = JQueryAdapter 726}()) 727;(function() { 728 'use strict' 729 730 var Waypoint = window.Waypoint 731 732 function createExtension(framework) { 733 return function() { 734 var waypoints = [] 735 var overrides = arguments[0] 736 737 if (framework.isFunction(arguments[0])) { 738 overrides = framework.extend({}, arguments[1]) 739 overrides.handler = arguments[0] 740 } 741 742 this.each(function() { 743 var options = framework.extend({}, overrides, { 744 element: this 745 }) 746 if (typeof options.context === 'string') { 747 options.context = framework(this).closest(options.context)[0] 748 } 749 waypoints.push(new Waypoint(options)) 750 }) 751 752 return waypoints 753 } 754 } 755 756 if (window.jQuery) { 757 window.jQuery.fn.waypoint = createExtension(window.jQuery) 758 } 759 if (window.Zepto) { 760 window.Zepto.fn.waypoint = createExtension(window.Zepto) 761 } 762}()) 763;
vendor: 43,881 bytes, lines 764-781
764/* 765 _ _ _ _ 766 ___| (_) ___| | __ (_)___ 767/ __| | |/ __| |/ / | / __| 768\__ \ | | (__| < _ | \__ \ 769|___/_|_|\___|_|\_(_)/ |___/ 770 |__/ 771 772 Version: 1.9.0 773 Author: Ken Wheeler 774 Website: http://kenwheeler.github.io 775 Docs: http://kenwheeler.github.io/slick 776 Repo: http://github.com/kenwheeler/slick 777 Issues: http://github.com/kenwheeler/slick/issues 778 779 */ 780(function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)})(function(i){"use strict";var e=window.Slick||{};e=function(){function e(e,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(e),appendDots:i(e),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(e),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(e).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,"undefined"!=typeof document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=t++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}var t=0;return e}(),e.prototype.activateADA=function(){var i=this;i.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):o===!0?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&i.options.adaptiveHeight===!0&&i.options.vertical===!1){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),s.options.rtl===!0&&s.options.vertical===!1&&(e=-e),s.transformsEnabled===!1?s.options.vertical===!1?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):s.cssTransitions===!1?(s.options.rtl===!0&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),s.options.vertical===!1?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),s.options.vertical===!1?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this,o=t.getNavTarget();null!==o&&"object"==typeof o&&o.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};e.options.fade===!1?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,e.options.fade===!1?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(i.options.infinite===!1&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1===0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;e.options.arrows===!0&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),e.options.infinite!==!0&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(o.options.dots===!0&&o.slideCount>o.options.slidesToShow){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),e.options.centerMode!==!0&&e.options.swipeToSlide!==!0||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.options.draggable===!0&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>0){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(r.originalSettings.mobileFirst===!1?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||l===!1||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!==0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t,o=this;if(e=o.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var s in e){if(i<e[s]){i=t;break}t=e[s]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),e.options.accessibility===!0&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),e.options.arrows===!0&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),e.options.accessibility===!0&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),e.options.accessibility===!0&&e.$list.off("keydown.slick",e.keyHandler),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>0&&(i=e.$slides.children().children(),i.removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){var e=this;e.shouldClick===!1&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",e.options.fade===!1?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;t.cssTransitions===!1?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;e.cssTransitions===!1?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick","*",function(t){var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&o.is(":focus")&&(e.focussed=!0,e.autoPlay())},0)}).on("blur.slick","*",function(t){i(this);e.options.pauseOnFocus&&(e.focussed=!1,e.autoPlay())})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){var i=this;return i.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(i.options.infinite===!0)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(i.options.centerMode===!0)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),n.options.infinite===!0?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,n.options.vertical===!0&&n.options.centerMode===!0&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!==0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),n.options.centerMode===!0&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:n.options.centerMode===!0&&n.options.infinite===!0?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:n.options.centerMode===!0&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=n.options.vertical===!1?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,n.options.variableWidth===!0&&(o=n.slideCount<=n.options.slidesToShow||n.options.infinite===!1?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=n.options.rtl===!0?o[0]?(n.$slideTrack.width()-o[0].offsetLeft-o.width())*-1:0:o[0]?o[0].offsetLeft*-1:0,n.options.centerMode===!0&&(o=n.slideCount<=n.options.slidesToShow||n.options.infinite===!1?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=n.options.rtl===!0?o[0]?(n.$slideTrack.width()-o[0].offsetLeft-o.width())*-1:0:o[0]?o[0].offsetLeft*-1:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){var e=this;return e.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(e.options.infinite===!1?i=e.slideCount:(t=e.options.slidesToScroll*-1,o=e.options.slidesToScroll*-1,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o,s,n=this;return s=n.options.centerMode===!0?Math.floor(n.$list.width()/2):0,o=n.swipeLeft*-1+s,n.options.swipeToSlide===!0?(n.$slideTrack.find(".slick-slide").each(function(e,s){var r,l,d;if(r=i(s).outerWidth(),l=s.offsetLeft,n.options.centerMode!==!0&&(l+=r/2),d=l+r,o<d)return t=s,!1}),e=Math.abs(i(t).attr("data-slick-index")-n.currentSlide)||1):n.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){var t=this;t.changeSlide({data:{message:"index",index:parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),t.options.accessibility===!0&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);if(i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),s!==-1){var n="slick-slide-control"+e.instanceUid+s;i("#"+n).length&&i(this).attr({"aria-describedby":n})}}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.options.focusOnChange?e.$slides.eq(s).attr({tabindex:"0"}):e.$slides.eq(s).removeAttr("tabindex");e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),i.options.accessibility===!0&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;e.options.dots===!0&&e.slideCount>e.options.slidesToShow&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),e.options.accessibility===!0&&e.$dots.on("keydown.slick",e.keyHandler)),e.options.dots===!0&&e.options.pauseOnDotsHover===!0&&e.slideCount>e.options.slidesToShow&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"},e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),e.options.accessibility===!0&&e.$list.on("keydown.slick",e.keyHandler),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),i.options.dots===!0&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&e.options.accessibility===!0?e.changeSlide({data:{message:e.options.rtl===!0?"next":"previous"}}):39===i.keyCode&&e.options.accessibility===!0&&e.changeSlide({data:{message:e.options.rtl===!0?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||r.$slider.attr("data-sizes"),n=document.createElement("img");n.onload=function(){e.animate({opacity:0},100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),r.$slider.trigger("lazyLoaded",[r,e,t])})},n.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),r.$slider.trigger("lazyLoadError",[r,e,t])},n.src=t})}var t,o,s,n,r=this;if(r.options.centerMode===!0?r.options.infinite===!0?(s=r.currentSlide+(r.options.slidesToShow/2+1),n=s+r.options.slidesToShow+2):(s=Math.max(0,r.currentSlide-(r.options.slidesToShow/2+1)),n=2+(r.options.slidesToShow/2+1)+r.currentSlide):(s=r.options.infinite?r.options.slidesToShow+r.currentSlide:r.currentSlide,n=Math.ceil(s+r.options.slidesToShow),r.options.fade===!0&&(s>0&&s--,n<=r.slideCount&&n++)),t=r.$slider.find(".slick-slide").slice(s,n),"anticipated"===r.options.lazyLoad)for(var l=s-1,d=n,a=r.$slider.find(".slick-slide"),c=0;c<r.options.slidesToScroll;c++)l<0&&(l=r.slideCount-1),t=t.add(a.eq(l)),t=t.add(a.eq(d)),l--,d++;e(t),r.slideCount<=r.options.slidesToShow?(o=r.$slider.find(".slick-slide"),e(o)):r.currentSlide>=r.slideCount-r.options.slidesToShow?(o=r.$slider.find(".slick-cloned").slice(0,r.options.slidesToShow),e(o)):0===r.currentSlide&&(o=r.$slider.find(".slick-cloned").slice(r.options.slidesToShow*-1),e(o))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){var i=this;i.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;if(!t.unslicked&&(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),t.options.accessibility===!0&&(t.initADA(),t.options.focusOnChange))){var o=i(t.$slides.get(t.currentSlide));o.attr("tabindex",0).focus()}},e.prototype.prev=e.prototype.slickPrev=function(){var i=this;i.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),r=document.createElement("img"),r.onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),l.options.adaptiveHeight===!0&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;return"boolean"==typeof i?(e=i,i=e===!0?0:o.slideCount-1):i=e===!0?--i:i,!(o.slideCount<1||i<0||i>o.slideCount-1)&&(o.unload(),t===!0?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,void o.reinit())},e.prototype.setCSS=function(i){var e,t,o=this,s={};o.options.rtl===!0&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,o.transformsEnabled===!1?o.$slideTrack.css(s):(s={},o.cssTransitions===!1?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;i.options.vertical===!1?i.options.centerMode===!0&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),i.options.centerMode===!0&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),i.options.vertical===!1&&i.options.variableWidth===!1?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):i.options.variableWidth===!0?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();i.options.variableWidth===!1&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,t.options.rtl===!0?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&i.options.adaptiveHeight===!0&&i.options.vertical===!1){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":"undefined"!=typeof arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),i.options.fade===!1?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=i.options.vertical===!0?"top":"left", 781"top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||i.options.useCSS===!0&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&i.animType!==!1&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&i.animType!==!1},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),n.options.centerMode===!0){var r=n.options.slidesToShow%2===0?1:0;e=Math.floor(n.options.slidesToShow/2),n.options.infinite===!0&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=n.options.infinite===!0?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(s.options.fade===!0&&(s.options.centerMode=!1),s.options.infinite===!0&&s.options.fade===!1&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=s.options.centerMode===!0?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));return s||(s=0),t.slideCount<=t.options.slidesToShow?void t.slideHandler(s,!1,!0):void t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(a.animating===!0&&a.options.waitForAnimate===!0||a.options.fade===!0&&a.currentSlide===i))return e===!1&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,a.options.infinite===!1&&a.options.centerMode===!1&&(i<0||i>a.getDotCount()*a.options.slidesToScroll)?void(a.options.fade===!1&&(o=a.currentSlide,t!==!0&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o))):a.options.infinite===!1&&a.options.centerMode===!0&&(i<0||i>a.slideCount-a.options.slidesToScroll)?void(a.options.fade===!1&&(o=a.currentSlide,t!==!0&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o))):(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!==0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!==0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=a.getNavTarget(),l=l.slick("getSlick"),l.slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide)),a.updateDots(),a.updateArrows(),a.options.fade===!0?(t!==!0?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight()):void(t!==!0&&a.slideCount>a.options.slidesToShow?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)))},e.prototype.startLoad=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),i.options.dots===!0&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),o=Math.round(180*t/Math.PI),o<0&&(o=360-Math.abs(o)),o<=45&&o>=0?s.options.rtl===!1?"left":"right":o<=360&&o>=315?s.options.rtl===!1?"left":"right":o>=135&&o<=225?s.options.rtl===!1?"right":"left":s.options.verticalSwiping===!0?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(o.touchObject.edgeHit===!0&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(e.options.swipe===!1||"ontouchend"in document&&e.options.swipe===!1||e.options.draggable===!1&&i.type.indexOf("mouse")!==-1))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,e.options.verticalSwiping===!0&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(l.options.verticalSwiping===!0&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(l.options.rtl===!1?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),l.options.verticalSwiping===!0&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,l.options.infinite===!1&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),l.options.vertical===!1?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,l.options.verticalSwiping===!0&&(l.swipeLeft=e+o*s),l.options.fade!==!0&&l.options.touchMove!==!1&&(l.animating===!0?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;return t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow?(t.touchObject={},!1):(void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,void(t.dragging=!0))},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i,e=this;i=Math.floor(e.options.slidesToShow/2),e.options.arrows===!0&&e.slideCount>e.options.slidesToShow&&!e.options.infinite&&(e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===e.currentSlide?(e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):e.currentSlide>=e.slideCount-e.options.slidesToShow&&e.options.centerMode===!1?(e.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):e.currentSlide>=e.slideCount-1&&e.options.centerMode===!0&&(e.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||"undefined"==typeof s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),"undefined"!=typeof t)return t;return o}});
781 782/** 783 * Library: SmoothScroll.js 784 * Author(s): Balazs Galambosi and Michael Herf 785 * Version: 1.4.6 786 * Licence: MIT 787 * GitHub: https://github.com/galambalazs/smoothscroll-for-websites 788 */ 789(function () { 790 791// Scroll Variables (tweakable) 792var defaultOptions = { 793 794 // Scrolling Core 795 frameRate : 150, // [Hz] 796 animationTime : 600, // [ms] 797 stepSize : 100, // [px] 798 799 // Pulse (less tweakable) 800 // ratio of "tail" to "acceleration" 801 pulseAlgorithm : true, 802 pulseScale : 4, 803 pulseNormalize : 1, 804 805 // Acceleration 806 accelerationDelta : 50, // 50 807 accelerationMax : 3, // 3 808 809 // Keyboard Settings 810 keyboardSupport : true, // option 811 arrowScroll : 50, // [px] 812 813 // Other 814 fixedBackground : true, 815 excluded : '' 816}; 817 818var options = defaultOptions; 819 820 821// Other Variables 822var isExcluded = false; 823var isFrame = false; 824var direction = { x: 0, y: 0 }; 825var initDone = false; 826var root = document.documentElement; 827var activeElement; 828var observer; 829var refreshSize; 830var deltaBuffer = []; 831var isMac = /^Mac/.test(navigator.platform); 832 833var key = { left: 37, up: 38, right: 39, down: 40, spacebar: 32, 834 pageup: 33, pagedown: 34, end: 35, home: 36 }; 835var arrowKeys = { 37: 1, 38: 1, 39: 1, 40: 1 }; 836 837/*********************************************** 838 * INITIALIZE 839 ***********************************************/ 840 841/** 842 * Tests if smooth scrolling is allowed. Shuts down everything if not. 843 */ 844function initTest() { 845 if (options.keyboardSupport) { 846 addEvent('keydown', keydown); 847 } 848} 849 850/** 851 * Sets up scrolls array, determines if frames are involved. 852 */ 853function init() { 854 855 if (initDone || !document.body) return; 856 857 initDone = true; 858 859 var body = document.body; 860 var html = document.documentElement; 861 var windowHeight = window.innerHeight; 862 var scrollHeight = body.scrollHeight; 863 864 // check compat mode for root element 865 root = (document.compatMode.indexOf('CSS') >= 0) ? html : body; 866 activeElement = body; 867 868 initTest(); 869 870 // Checks if this script is running in a frame 871 if (top != self) { 872 isFrame = true; 873 } 874 875 /** 876 * Safari 10 fixed it, Chrome fixed it in v45: 877 * This fixes a bug where the areas left and right to 878 * the content does not trigger the onmousewheel event 879 * on some pages. e.g.: html, body { height: 100% } 880 */ 881 else if (isOldSafari && 882 scrollHeight > windowHeight && 883 (body.offsetHeight <= windowHeight || 884 html.offsetHeight <= windowHeight)) { 885 886 var fullPageElem = document.createElement('div'); 887 fullPageElem.style.cssText = 'position:absolute; z-index:-10000; ' + 888 'top:0; left:0; right:0; height:' + 889 root.scrollHeight + 'px'; 890 document.body.appendChild(fullPageElem); 891 892 // DOM changed (throttled) to fix height 893 var pendingRefresh; 894 refreshSize = function () { 895 if (pendingRefresh) return; // could also be: clearTimeout(pendingRefresh); 896 pendingRefresh = setTimeout(function () { 897 if (isExcluded) return; // could be running after cleanup 898 fullPageElem.style.height = '0'; 899 fullPageElem.style.height = root.scrollHeight + 'px'; 900 pendingRefresh = null; 901 }, 500); // act rarely to stay fast 902 }; 903 904 setTimeout(refreshSize, 10); 905 906 addEvent('resize', refreshSize); 907 908 // TODO: attributeFilter? 909 var config = { 910 attributes: true, 911 childList: true, 912 characterData: false 913 // subtree: true 914 }; 915 916 observer = new MutationObserver(refreshSize); 917 observer.observe(body, config); 918 919 if (root.offsetHeight <= windowHeight) { 920 var clearfix = document.createElement('div'); 921 clearfix.style.clear = 'both'; 922 body.appendChild(clearfix); 923 } 924 } 925 926 // disable fixed background 927 if (!options.fixedBackground && !isExcluded) { 928 body.style.backgroundAttachment = 'scroll'; 929 html.style.backgroundAttachment = 'scroll'; 930 } 931} 932 933/** 934 * Removes event listeners and other traces left on the page. 935 */ 936function cleanup() { 937 observer && observer.disconnect(); 938 removeEvent(wheelEvent, wheel); 939 removeEvent('mousedown', mousedown); 940 removeEvent('keydown', keydown); 941 removeEvent('resize', refreshSize); 942 removeEvent('load', init); 943} 944 945 946/************************************************ 947 * SCROLLING 948 ************************************************/ 949 950var que = []; 951var pending = false;
952var lastScroll = Date.now(); 953 954/** 955 * Pushes scroll actions to the scrolling queue. 956 */ 957function scrollArray(elem, left, top) { 958 959 directionCheck(left, top); 960 961 if (options.accelerationMax != 1) { 962 var now = Date.now(); 963 var elapsed = now - lastScroll; 964 if (elapsed < options.accelerationDelta) { 965 var factor = (1 + (50 / elapsed)) / 2; 966 if (factor > 1) { 967 factor = Math.min(factor, options.accelerationMax); 968 left *= factor; 969 top *= factor; 970 } 971 } 972 lastScroll = Date.now(); 973 } 974 975 // push a scroll command 976 que.push({ 977 x: left, 978 y: top, 979 lastX: (left < 0) ? 0.99 : -0.99, 980 lastY: (top < 0) ? 0.99 : -0.99, 981 start: Date.now() 982 }); 983 984 // don't act if there's a pending queue 985 if (pending) { 986 return; 987 } 988 989 var scrollWindow = (elem === document.body); 990 991 var step = function (time) { 992 993 var now = Date.now(); 994 var scrollX = 0; 995 var scrollY = 0; 996 997 for (var i = 0; i < que.length; i++) { 998 999 var item = que[i]; 1000 var elapsed = now - item.start; 1001 var finished = (elapsed >= options.animationTime); 1002 1003 // scroll position: [0, 1] 1004 var position = (finished) ? 1 : elapsed / options.animationTime; 1005 1006 // easing [optional] 1007 if (options.pulseAlgorithm) { 1008 position = pulse(position); 1009 } 1010 1011 // only need the difference 1012 var x = (item.x * position - item.lastX) >> 0; 1013 var y = (item.y * position - item.lastY) >> 0; 1014 1015 // add this to the total scrolling 1016 scrollX += x; 1017 scrollY += y; 1018 1019 // update last values 1020 item.lastX += x; 1021 item.lastY += y; 1022 1023 // delete and step back if it's over 1024 if (finished) { 1025 que.splice(i, 1); i--; 1026 } 1027 } 1028 1029 // scroll left and top 1030 if (scrollWindow) { 1031 window.scrollBy(scrollX, scrollY); 1032 } 1033 else { 1034 if (scrollX) elem.scrollLeft += scrollX; 1035 if (scrollY) elem.scrollTop += scrollY; 1036 } 1037 1038 // clean up if there's nothing left to do 1039 if (!left && !top) { 1040 que = []; 1041 } 1042 1043 if (que.length) { 1044 requestFrame(step, elem, (1000 / options.frameRate + 1)); 1045 } else { 1046 pending = false; 1047 } 1048 }; 1049 1050 // start a new queue of actions 1051 requestFrame(step, elem, 0); 1052 pending = true; 1053} 1054 1055 1056/*********************************************** 1057 * EVENTS 1058 ***********************************************/ 1059 1060/** 1061 * Mouse wheel handler. 1062 * @param {Object} event 1063 */ 1064function wheel(event) { 1065 1066 if (!initDone) { 1067 init(); 1068 } 1069 1070 var target = event.target; 1071 1072 // leave early if default action is prevented 1073 // or it's a zooming event with CTRL 1074 if (event.defaultPrevented || event.ctrlKey) { 1075 return true; 1076 } 1077 1078 // leave embedded content alone (flash & pdf) 1079 if (isNodeName(activeElement, 'embed') || 1080 (isNodeName(target, 'embed') && /\.pdf/i.test(target.src)) || 1081 isNodeName(activeElement, 'object') || 1082 target.shadowRoot) { 1083 return true; 1084 } 1085 1086 var deltaX = -event.wheelDeltaX || event.deltaX || 0; 1087 var deltaY = -event.wheelDeltaY || event.deltaY || 0; 1088 1089 if (isMac) { 1090 if (event.wheelDeltaX && isDivisible(event.wheelDeltaX, 120)) { 1091 deltaX = -120 * (event.wheelDeltaX / Math.abs(event.wheelDeltaX)); 1092 } 1093 if (event.wheelDeltaY && isDivisible(event.wheelDeltaY, 120)) { 1094 deltaY = -120 * (event.wheelDeltaY / Math.abs(event.wheelDeltaY)); 1095 } 1096 } 1097 1098 // use wheelDelta if deltaX/Y is not available 1099 if (!deltaX && !deltaY) { 1100 deltaY = -event.wheelDelta || 0; 1101 } 1102 1103 // line based scrolling (Firefox mostly) 1104 if (event.deltaMode === 1) { 1105 deltaX *= 40; 1106 deltaY *= 40; 1107 } 1108 1109 var overflowing = overflowingAncestor(target); 1110 1111 // nothing to do if there's no element that's scrollable 1112 if (!overflowing) { 1113 // except Chrome iframes seem to eat wheel events, which we need to 1114 // propagate up, if the iframe has nothing overflowing to scroll 1115 if (isFrame && isChrome) { 1116 // change target to iframe element itself for the parent frame 1117 Object.defineProperty(event, "target", {value: window.frameElement}); 1118 return parent.wheel(event); 1119 } 1120 return true; 1121 } 1122 1123 // check if it's a touchpad scroll that should be ignored 1124 if (isTouchpad(deltaY)) { 1125 return true; 1126 } 1127 1128 // scale by step size 1129 // delta is 120 most of the time
1130 // synaptics seems to send 1 sometimes 1131 if (Math.abs(deltaX) > 1.2) { 1132 deltaX *= options.stepSize / 120; 1133 } 1134 if (Math.abs(deltaY) > 1.2) { 1135 deltaY *= options.stepSize / 120; 1136 } 1137 1138 scrollArray(overflowing, deltaX, deltaY); 1139 event.preventDefault(); 1140 scheduleClearCache(); 1141} 1142 1143/** 1144 * Keydown event handler. 1145 * @param {Object} event 1146 */ 1147function keydown(event) { 1148 1149 var target = event.target; 1150 var modifier = event.ctrlKey || event.altKey || event.metaKey || 1151 (event.shiftKey && event.keyCode !== key.spacebar); 1152 1153 // our own tracked active element could've been removed from the DOM 1154 if (!document.body.contains(activeElement)) { 1155 activeElement = document.activeElement; 1156 } 1157 1158 // do nothing if user is editing text 1159 // or using a modifier key (except shift) 1160 // or in a dropdown 1161 // or inside interactive elements 1162 var inputNodeNames = /^(textarea|select|embed|object)$/i; 1163 var buttonTypes = /^(button|submit|radio|checkbox|file|color|image)$/i; 1164 if ( event.defaultPrevented || 1165 inputNodeNames.test(target.nodeName) || 1166 isNodeName(target, 'input') && !buttonTypes.test(target.type) || 1167 isNodeName(activeElement, 'video') || 1168 isInsideYoutubeVideo(event) || 1169 target.isContentEditable || 1170 modifier ) { 1171 return true; 1172 } 1173 1174 // [spacebar] should trigger button press, leave it alone 1175 if ((isNodeName(target, 'button') || 1176 isNodeName(target, 'input') && buttonTypes.test(target.type)) && 1177 event.keyCode === key.spacebar) { 1178 return true; 1179 } 1180 1181 // [arrwow keys] on radio buttons should be left alone 1182 if (isNodeName(target, 'input') && target.type == 'radio' && 1183 arrowKeys[event.keyCode]) { 1184 return true; 1185 } 1186 1187 var shift, x = 0, y = 0; 1188 var overflowing = overflowingAncestor(activeElement); 1189 1190 if (!overflowing) { 1191 // Chrome iframes seem to eat key events, which we need to 1192 // propagate up, if the iframe has nothing overflowing to scroll 1193 return (isFrame && isChrome) ? parent.keydown(event) : true; 1194 } 1195 1196 var clientHeight = overflowing.clientHeight; 1197 1198 if (overflowing == document.body) { 1199 clientHeight = window.innerHeight; 1200 } 1201 1202 switch (event.keyCode) { 1203 case key.up: 1204 y = -options.arrowScroll; 1205 break; 1206 case key.down: 1207 y = options.arrowScroll; 1208 break; 1209 case key.spacebar: // (+ shift) 1210 shift = event.shiftKey ? 1 : -1; 1211 y = -shift * clientHeight * 0.9; 1212 break; 1213 case key.pageup: 1214 y = -clientHeight * 0.9; 1215 break; 1216 case key.pagedown: 1217 y = clientHeight * 0.9; 1218 break; 1219 case key.home: 1220 y = -overflowing.scrollTop; 1221 break; 1222 case key.end: 1223 var scroll = overflowing.scrollHeight - overflowing.scrollTop; 1224 var scrollRemaining = scroll - clientHeight; 1225 y = (scrollRemaining > 0) ? scrollRemaining + 10 : 0; 1226 break; 1227 case key.left: 1228 x = -options.arrowScroll; 1229 break; 1230 case key.right: 1231 x = options.arrowScroll; 1232 break; 1233 default: 1234 return true; // a key we don't care about 1235 } 1236 1237 scrollArray(overflowing, x, y); 1238 event.preventDefault(); 1239 scheduleClearCache(); 1240} 1241 1242/** 1243 * Mousedown event only for updating activeElement 1244 */ 1245function mousedown(event) { 1246 activeElement = event.target; 1247} 1248 1249 1250/*********************************************** 1251 * OVERFLOW 1252 ***********************************************/ 1253 1254var uniqueID = (function () { 1255 var i = 0; 1256 return function (el) { 1257 return el.uniqueID || (el.uniqueID = i++); 1258 }; 1259})(); 1260 1261var cache = {}; // cleared out after a scrolling session 1262var clearCacheTimer; 1263 1264//setInterval(function () { cache = {}; }, 10 * 1000); 1265 1266function scheduleClearCache() { 1267 clearTimeout(clearCacheTimer); 1268 clearCacheTimer = setInterval(function () { cache = {}; }, 1*1000); 1269} 1270 1271function setCache(elems, overflowing) { 1272 for (var i = elems.length; i--;) 1273 cache[uniqueID(elems[i])] = overflowing; 1274 return overflowing; 1275} 1276 1277// (body) (root) 1278// | hidden | visible | scroll | auto | 1279// hidden | no | no | YES | YES | 1280// visible | no | YES | YES | YES | 1281// scroll | no | YES | YES | YES | 1282// auto | no | YES | YES | YES | 1283 1284function overflowingAncestor(el) { 1285 var elems = []; 1286 var body = document.body; 1287 var rootScrollHeight = root.scrollHeight; 1288 do {
1289 var cached = cache[uniqueID(el)]; 1290 if (cached) { 1291 return setCache(elems, cached); 1292 } 1293 elems.push(el); 1294 if (rootScrollHeight === el.scrollHeight) { 1295 var topOverflowsNotHidden = overflowNotHidden(root) && overflowNotHidden(body); 1296 var isOverflowCSS = topOverflowsNotHidden || overflowAutoOrScroll(root); 1297 if (isFrame && isContentOverflowing(root) || 1298 !isFrame && isOverflowCSS) { 1299 return setCache(elems, getScrollRoot()); 1300 } 1301 } else if (isContentOverflowing(el) && overflowAutoOrScroll(el)) { 1302 return setCache(elems, el); 1303 } 1304 } while (el = el.parentElement); 1305} 1306 1307function isContentOverflowing(el) { 1308 return (el.clientHeight + 10 < el.scrollHeight); 1309} 1310 1311// typically for <body> and <html> 1312function overflowNotHidden(el) { 1313 var overflow = getComputedStyle(el, '').getPropertyValue('overflow-y'); 1314 return (overflow !== 'hidden'); 1315} 1316 1317// for all other elements 1318function overflowAutoOrScroll(el) { 1319 var overflow = getComputedStyle(el, '').getPropertyValue('overflow-y'); 1320 return (overflow === 'scroll' || overflow === 'auto'); 1321} 1322 1323 1324/*********************************************** 1325 * HELPERS 1326 ***********************************************/ 1327 1328function addEvent(type, fn) { 1329 window.addEventListener(type, fn, false); 1330} 1331 1332function removeEvent(type, fn) { 1333 window.removeEventListener(type, fn, false); 1334} 1335 1336function isNodeName(el, tag) { 1337 return (el.nodeName||'').toLowerCase() === tag.toLowerCase(); 1338} 1339 1340function directionCheck(x, y) { 1341 x = (x > 0) ? 1 : -1; 1342 y = (y > 0) ? 1 : -1; 1343 if (direction.x !== x || direction.y !== y) { 1344 direction.x = x; 1345 direction.y = y; 1346 que = []; 1347 lastScroll = 0; 1348 } 1349} 1350 1351var deltaBufferTimer; 1352 1353if (window.localStorage && localStorage.SS_deltaBuffer) { 1354 try { // #46 Safari throws in private browsing for localStorage 1355 deltaBuffer = localStorage.SS_deltaBuffer.split(','); 1356 } catch (e) { } 1357} 1358 1359function isTouchpad(deltaY) { 1360 if (!deltaY) return; 1361 if (!deltaBuffer.length) { 1362 deltaBuffer = [deltaY, deltaY, deltaY]; 1363 } 1364 deltaY = Math.abs(deltaY); 1365 deltaBuffer.push(deltaY); 1366 deltaBuffer.shift(); 1367 clearTimeout(deltaBufferTimer); 1368 deltaBufferTimer = setTimeout(function () { 1369 try { // #46 Safari throws in private browsing for localStorage 1370 localStorage.SS_deltaBuffer = deltaBuffer.join(','); 1371 } catch (e) { } 1372 }, 1000); 1373 return !allDeltasDivisableBy(120) && !allDeltasDivisableBy(100); 1374} 1375 1376function isDivisible(n, divisor) { 1377 return (Math.floor(n / divisor) == n / divisor); 1378} 1379 1380function allDeltasDivisableBy(divisor) { 1381 return (isDivisible(deltaBuffer[0], divisor) && 1382 isDivisible(deltaBuffer[1], divisor) && 1383 isDivisible(deltaBuffer[2], divisor)); 1384} 1385 1386function isInsideYoutubeVideo(event) { 1387 var elem = event.target; 1388 var isControl = false; 1389 if (document.URL.indexOf ('www.youtube.com/watch') != -1) { 1390 do { 1391 isControl = (elem.classList && 1392 elem.classList.contains('html5-video-controls')); 1393 if (isControl) break; 1394 } while (elem = elem.parentNode); 1395 } 1396 return isControl; 1397} 1398 1399var requestFrame = (function () { 1400 return (window.requestAnimationFrame || 1401 window.webkitRequestAnimationFrame || 1402 window.mozRequestAnimationFrame || 1403 function (callback, element, delay) { 1404 window.setTimeout(callback, delay || (1000/60)); 1405 }); 1406})(); 1407 1408var MutationObserver = (window.MutationObserver || 1409 window.WebKitMutationObserver || 1410 window.MozMutationObserver); 1411 1412var getScrollRoot = (function() { 1413 var SCROLL_ROOT; 1414 return function() { 1415 if (!SCROLL_ROOT) { 1416 var dummy = document.createElement('div'); 1417 dummy.style.cssText = 'height:10000px;width:1px;'; 1418 document.body.appendChild(dummy); 1419 var bodyScrollTop = document.body.scrollTop; 1420 var docElScrollTop = document.documentElement.scrollTop; 1421 window.scrollBy(0, 3); 1422 if (document.body.scrollTop != bodyScrollTop) 1423 (SCROLL_ROOT = document.body); 1424 else 1425 (SCROLL_ROOT = document.documentElement); 1426 window.scrollBy(0, -3); 1427 document.body.removeChild(dummy); 1428 } 1429 return SCROLL_ROOT; 1430 }; 1431})(); 1432 1433 1434/*********************************************** 1435 * PULSE (by Michael Herf) 1436 ***********************************************/ 1437 1438/** 1439 * Viscous fluid with a pulse for part and decay for the rest. 1440 * - Applies a fixed force over an interval (a damped acceleration), and 1441 * - Lets the exponential bleed away the velocity over a longer interval 1442 * - Michael Herf, http://stereopsis.com/stopping/ 1443 */ 1444function pulse_(x) { 1445 var val, start, expx; 1446 // test 1447 x = x * options.pulseScale; 1448 if (x < 1) { // acceleartion 1449 val = x - (1 - Math.exp(-x)); 1450 } else { // tail 1451 // the previous animation ended here: 1452 start = Math.exp(-1); 1453 // simple viscous drag 1454 x -= 1; 1455 expx = 1 - Math.exp(-x); 1456 val = start + (expx * (1 - start)); 1457 }
1458 return val * options.pulseNormalize; 1459} 1460 1461function pulse(x) { 1462 if (x >= 1) return 1; 1463 if (x <= 0) return 0; 1464 1465 if (options.pulseNormalize == 1) { 1466 options.pulseNormalize /= pulse_(1); 1467 } 1468 return pulse_(x); 1469} 1470 1471 1472/*********************************************** 1473 * FIRST RUN 1474 ***********************************************/ 1475 1476var userAgent = window.navigator.userAgent; 1477var isEdge = /Edge/.test(userAgent); // thank you MS 1478var isChrome = /chrome/i.test(userAgent) && !isEdge; 1479var isSafari = /safari/i.test(userAgent) && !isEdge; 1480var isMobile = /mobile/i.test(userAgent); 1481var isIEWin7 = /Windows NT 6.1/i.test(userAgent) && /rv:11/i.test(userAgent); 1482var isOldSafari = isSafari && (/Version\/8/i.test(userAgent) || /Version\/9/i.test(userAgent)); 1483var isFF = ('MozAppearance' in document.documentElement.style) || (!!userAgent.match(/firefox/i)); 1484var isEnabledForBrowser = (isChrome || isFF || isEdge || isSafari || isIEWin7) && !isMobile; 1485 1486var wheelEvent; 1487if ('onwheel' in document.createElement('div')) 1488 wheelEvent = 'wheel'; 1489else if ('onmousewheel' in document.createElement('div')) 1490 wheelEvent = 'mousewheel'; 1491 1492if (wheelEvent && isEnabledForBrowser) { 1493 addEvent(wheelEvent, wheel); 1494 addEvent('mousedown', mousedown); 1495 addEvent('load', init); 1496} 1497 1498 1499/*********************************************** 1500 * PUBLIC INTERFACE 1501 ***********************************************/ 1502 1503function SmoothScroll(optionsToSet) { 1504 for (var key in optionsToSet) 1505 if (defaultOptions.hasOwnProperty(key)) 1506 options[key] = optionsToSet[key]; 1507} 1508SmoothScroll.destroy = cleanup; 1509 1510if (window.SmoothScrollOptions) // async API 1511 SmoothScroll(window.SmoothScrollOptions); 1512 1513if (typeof define === 'function' && define.amd) 1514 define(function() { 1515 return SmoothScroll; 1516 }); 1517else if ('object' == typeof exports) 1518 module.exports = SmoothScroll; 1519else 1520 window.SmoothScroll = SmoothScroll; 1521 1522})(); 1523/** 1524 * UAParser.js v0.7.17 1525 * Lightweight JavaScript-based User-Agent string parser 1526 * https://github.com/faisalman/ua-parser-js 1527 * 1528 * Copyright © 2012-2016 Faisal Salman <[email protected]> 1529 * Dual licensed under GPLv2 or MIT 1530 */ 1531 1532(function (window, undefined) { 1533 1534 'use strict'; 1535 1536 ////////////// 1537 // Constants 1538 ///////////// 1539 1540 1541 var LIBVERSION = '0.7.17', 1542 EMPTY = '', 1543 UNKNOWN = '?', 1544 FUNC_TYPE = 'function', 1545 UNDEF_TYPE = 'undefined', 1546 OBJ_TYPE = 'object', 1547 STR_TYPE = 'string', 1548 MAJOR = 'major', // deprecated 1549 MODEL = 'model', 1550 NAME = 'name', 1551 TYPE = 'type', 1552 VENDOR = 'vendor', 1553 VERSION = 'version', 1554 ARCHITECTURE= 'architecture', 1555 CONSOLE = 'console', 1556 MOBILE = 'mobile', 1557 TABLET = 'tablet', 1558 SMARTTV = 'smarttv', 1559 WEARABLE = 'wearable', 1560 EMBEDDED = 'embedded'; 1561 1562 1563 /////////// 1564 // Helper 1565 ////////// 1566 1567 1568 var util = { 1569 extend : function (regexes, extensions) { 1570 var margedRegexes = {}; 1571 for (var i in regexes) { 1572 if (extensions[i] && extensions[i].length % 2 === 0) { 1573 margedRegexes[i] = extensions[i].concat(regexes[i]); 1574 } else { 1575 margedRegexes[i] = regexes[i]; 1576 } 1577 } 1578 return margedRegexes; 1579 }, 1580 has : function (str1, str2) { 1581 if (typeof str1 === "string") { 1582 return str2.toLowerCase().indexOf(str1.toLowerCase()) !== -1; 1583 } else { 1584 return false; 1585 } 1586 }, 1587 lowerize : function (str) { 1588 return str.toLowerCase(); 1589 }, 1590 major : function (version) { 1591 return typeof(version) === STR_TYPE ? version.replace(/[^\d\.]/g,'').split(".")[0] : undefined; 1592 }, 1593 trim : function (str) { 1594 return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); 1595 } 1596 }; 1597 1598 1599 /////////////// 1600 // Map helper 1601 ////////////// 1602 1603 1604 var mapper = { 1605 1606 rgx : function (ua, arrays) { 1607 1608 //var result = {}, 1609 var i = 0, j, k, p, q, matches, match;//, args = arguments; 1610 1611 /*// construct object barebones 1612 for (p = 0; p < args[1].length; p++) { 1613 q = args[1][p]; 1614 result[typeof q === OBJ_TYPE ? q[0] : q] = undefined; 1615 }*/ 1616 1617 // loop through all regexes maps 1618 while (i < arrays.length && !matches) { 1619 1620 var regex = arrays[i], // even sequence (0,2,4,..) 1621 props = arrays[i + 1]; // odd sequence (1,3,5,..) 1622 j = k = 0; 1623 1624 // try matching uastring with regexes 1625 while (j < regex.length && !matches) { 1626 1627 matches = regex[j++].exec(ua); 1628 1629 if (!!matches) { 1630 for (p = 0; p < props.length; p++) { 1631 match = matches[++k]; 1632 q = props[p]; 1633 // check if given property is actually array 1634 if (typeof q === OBJ_TYPE && q.length > 0) { 1635 if (q.length == 2) { 1636 if (typeof q[1] == FUNC_TYPE) { 1637 // assign modified match 1638 this[q[0]] = q[1].call(this, match); 1639 } else { 1640 // assign given value, ignore regex match 1641 this[q[0]] = q[1]; 1642 } 1643 } else if (q.length == 3) { 1644 // check whether function or regex 1645 if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) { 1646 // call function (usually string mapper) 1647 this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined; 1648 } else { 1649 // sanitize match using given regex 1650 this[q[0]] = match ? match.replace(q[1], q[2]) : undefined; 1651 } 1652 } else if (q.length == 4) { 1653 this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined; 1654 } 1655 } else { 1656 this[q] = match ? match : undefined; 1657 } 1658 } 1659 } 1660 } 1661 i += 2; 1662 } 1663 // console.log(this); 1664 //return this; 1665 }, 1666 1667 str : function (str, map) { 1668 1669 for (var i in map) { 1670 // check if array 1671 if (typeof map[i] === OBJ_TYPE && map[i].length > 0) { 1672 for (var j = 0; j < map[i].length; j++) { 1673 if (util.has(map[i][j], str)) { 1674 return (i === UNKNOWN) ? undefined : i; 1675 } 1676 } 1677 } else if (util.has(map[i], str)) { 1678 return (i === UNKNOWN) ? undefined : i; 1679 } 1680 } 1681 return str; 1682 } 1683 }; 1684 1685
1686 /////////////// 1687 // String map 1688 ////////////// 1689 1690 1691 var maps = { 1692 1693 browser : { 1694 oldsafari : { 1695 version : { 1696 '1.0' : '/8', 1697 '1.2' : '/1', 1698 '1.3' : '/3', 1699 '2.0' : '/412', 1700 '2.0.2' : '/416', 1701 '2.0.3' : '/417', 1702 '2.0.4' : '/419', 1703 '?' : '/' 1704 } 1705 } 1706 }, 1707 1708 device : { 1709 amazon : { 1710 model : { 1711 'Fire Phone' : ['SD', 'KF'] 1712 } 1713 }, 1714 sprint : { 1715 model : { 1716 'Evo Shift 4G' : '7373KT' 1717 }, 1718 vendor : { 1719 'HTC' : 'APA', 1720 'Sprint' : 'Sprint' 1721 } 1722 } 1723 }, 1724 1725 os : { 1726 windows : { 1727 version : { 1728 'ME' : '4.90', 1729 'NT 3.11' : 'NT3.51', 1730 'NT 4.0' : 'NT4.0', 1731 '2000' : 'NT 5.0', 1732 'XP' : ['NT 5.1', 'NT 5.2'], 1733 'Vista' : 'NT 6.0', 1734 '7' : 'NT 6.1', 1735 '8' : 'NT 6.2', 1736 '8.1' : 'NT 6.3', 1737 '10' : ['NT 6.4', 'NT 10.0'], 1738 'RT' : 'ARM' 1739 } 1740 } 1741 } 1742 }; 1743 1744 1745 ////////////// 1746 // Regex map 1747 ///////////// 1748 1749 1750 var regexes = { 1751 1752 browser : [[ 1753 1754 // Presto based 1755 /(opera\smini)\/([\w\.-]+)/i, // Opera Mini 1756 /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, // Opera Mobi/Tablet 1757 /(opera).+version\/([\w\.]+)/i, // Opera > 9.80 1758 /(opera)[\/\s]+([\w\.]+)/i // Opera < 9.80 1759 ], [NAME, VERSION], [ 1760 1761 /(opios)[\/\s]+([\w\.]+)/i // Opera mini on iphone >= 8.0 1762 ], [[NAME, 'Opera Mini'], VERSION], [ 1763 1764 /\s(opr)\/([\w\.]+)/i // Opera Webkit 1765 ], [[NAME, 'Opera'], VERSION], [ 1766 1767 // Mixed 1768 /(kindle)\/([\w\.]+)/i, // Kindle 1769 /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]+)*/i, 1770 // Lunascape/Maxthon/Netfront/Jasmine/Blazer 1771 1772 // Trident based 1773 /(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?([\w\.]*)/i, 1774 // Avant/IEMobile/SlimBrowser/Baidu 1775 /(?:ms|\()(ie)\s([\w\.]+)/i, // Internet Explorer 1776 1777 // Webkit/KHTML based 1778 /(rekonq)\/([\w\.]+)*/i, // Rekonq 1779 /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark)\/([\w\.-]+)/i 1780 // Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser 1781 ], [NAME, VERSION], [ 1782 1783 /(trident).+rv[:\s]([\w\.]+).+like\sgecko/i // IE11 1784 ], [[NAME, 'IE'], VERSION], [ 1785 1786 /(edge)\/((\d+)?[\w\.]+)/i // Microsoft Edge 1787 ], [NAME, VERSION], [ 1788 1789 /(yabrowser)\/([\w\.]+)/i // Yandex 1790 ], [[NAME, 'Yandex'], VERSION], [ 1791 1792 /(puffin)\/([\w\.]+)/i // Puffin 1793 ], [[NAME, 'Puffin'], VERSION], [ 1794 1795 /((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i 1796 // UCBrowser 1797 ], [[NAME, 'UCBrowser'], VERSION], [ 1798 1799 /(comodo_dragon)\/([\w\.]+)/i // Comodo Dragon 1800 ], [[NAME, /_/g, ' '], VERSION], [ 1801 1802 /(micromessenger)\/([\w\.]+)/i // WeChat 1803 ], [[NAME, 'WeChat'], VERSION], [ 1804 1805 /(QQ)\/([\d\.]+)/i // QQ, aka ShouQ 1806 ], [NAME, VERSION], [ 1807 1808 /m?(qqbrowser)[\/\s]?([\w\.]+)/i // QQBrowser 1809 ], [NAME, VERSION], [ 1810 1811 /xiaomi\/miuibrowser\/([\w\.]+)/i // MIUI Browser 1812 ], [VERSION, [NAME, 'MIUI Browser']], [ 1813 1814 /;fbav\/([\w\.]+);/i // Facebook App for iOS & Android 1815 ], [VERSION, [NAME, 'Facebook']], [ 1816 1817 /headlesschrome(?:\/([\w\.]+)|\s)/i // Chrome Headless 1818 ], [VERSION, [NAME, 'Chrome Headless']], [ 1819 1820 /\swv\).+(chrome)\/([\w\.]+)/i // Chrome WebView 1821 ], [[NAME, /(.+)/, '$1 WebView'], VERSION], [ 1822 1823 /((?:oculus|samsung)browser)\/([\w\.]+)/i 1824 ], [[NAME, /(.+(?:g|us))(.+)/, '$1 $2'], VERSION], [ // Oculus / Samsung Browser 1825 1826 /android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i // Android Browser 1827 ], [VERSION, [NAME, 'Android Browser']], [ 1828
1829 /(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i 1830 // Chrome/OmniWeb/Arora/Tizen/Nokia 1831 ], [NAME, VERSION], [ 1832 1833 /(dolfin)\/([\w\.]+)/i // Dolphin 1834 ], [[NAME, 'Dolphin'], VERSION], [ 1835 1836 /((?:android.+)crmo|crios)\/([\w\.]+)/i // Chrome for Android/iOS 1837 ], [[NAME, 'Chrome'], VERSION], [ 1838 1839 /(coast)\/([\w\.]+)/i // Opera Coast 1840 ], [[NAME, 'Opera Coast'], VERSION], [ 1841 1842 /fxios\/([\w\.-]+)/i // Firefox for iOS 1843 ], [VERSION, [NAME, 'Firefox']], [ 1844 1845 /version\/([\w\.]+).+?mobile\/\w+\s(safari)/i // Mobile Safari 1846 ], [VERSION, [NAME, 'Mobile Safari']], [ 1847 1848 /version\/([\w\.]+).+?(mobile\s?safari|safari)/i // Safari & Safari Mobile 1849 ], [VERSION, NAME], [ 1850 1851 /webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Google Search Appliance on iOS 1852 ], [[NAME, 'GSA'], VERSION], [ 1853 1854 /webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Safari < 3.0 1855 ], [NAME, [VERSION, mapper.str, maps.browser.oldsafari.version]], [ 1856 1857 /(konqueror)\/([\w\.]+)/i, // Konqueror 1858 /(webkit|khtml)\/([\w\.]+)/i 1859 ], [NAME, VERSION], [ 1860 1861 // Gecko based 1862 /(navigator|netscape)\/([\w\.-]+)/i // Netscape 1863 ], [[NAME, 'Netscape'], VERSION], [ 1864 /(swiftfox)/i, // Swiftfox 1865 /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, 1866 // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror 1867 /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i, 1868 1869 // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
1870 /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, // Mozilla 1871 1872 // Other 1873 /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, 1874 // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir 1875 /(links)\s\(([\w\.]+)/i, // Links 1876 /(gobrowser)\/?([\w\.]+)*/i, // GoBrowser 1877 /(ice\s?browser)\/v?([\w\._]+)/i, // ICE Browser 1878 /(mosaic)[\/\s]([\w\.]+)/i // Mosaic 1879 ], [NAME, VERSION] 1880 1881 /* ///////////////////// 1882 // Media players BEGIN 1883 //////////////////////// 1884 1885 , [ 1886 1887 /(apple(?:coremedia|))\/((\d+)[\w\._]+)/i, // Generic Apple CoreMedia 1888 /(coremedia) v((\d+)[\w\._]+)/i 1889 ], [NAME, VERSION], [ 1890 1891 /(aqualung|lyssna|bsplayer)\/((\d+)?[\w\.-]+)/i // Aqualung/Lyssna/BSPlayer 1892 ], [NAME, VERSION], [ 1893 1894 /(ares|ossproxy)\s((\d+)[\w\.-]+)/i // Ares/OSSProxy 1895 ], [NAME, VERSION], [ 1896 1897 /(audacious|audimusicstream|amarok|bass|core|dalvik|gnomemplayer|music on console|nsplayer|psp-internetradioplayer|videos)\/((\d+)[\w\.-]+)/i, 1898 // Audacious/AudiMusicStream/Amarok/BASS/OpenCORE/Dalvik/GnomeMplayer/MoC 1899 // NSPlayer/PSP-InternetRadioPlayer/Videos 1900 /(clementine|music player daemon)\s((\d+)[\w\.-]+)/i, // Clementine/MPD 1901 /(lg player|nexplayer)\s((\d+)[\d\.]+)/i, 1902 /player\/(nexplayer|lg player)\s((\d+)[\w\.-]+)/i // NexPlayer/LG Player 1903 ], [NAME, VERSION], [ 1904 /(nexplayer)\s((\d+)[\w\.-]+)/i // Nexplayer 1905 ], [NAME, VERSION], [ 1906 1907 /(flrp)\/((\d+)[\w\.-]+)/i // Flip Player 1908 ], [[NAME, 'Flip Player'], VERSION], [ 1909 1910 /(fstream|nativehost|queryseekspider|ia-archiver|facebookexternalhit)/i 1911 // FStream/NativeHost/QuerySeekSpider/IA Archiver/facebookexternalhit 1912 ], [NAME], [ 1913 1914 /(gstreamer) souphttpsrc (?:\([^\)]+\)){0,1} libsoup\/((\d+)[\w\.-]+)/i 1915 // Gstreamer 1916 ], [NAME, VERSION], [ 1917 1918 /(htc streaming player)\s[\w_]+\s\/\s((\d+)[\d\.]+)/i, // HTC Streaming Player 1919 /(java|python-urllib|python-requests|wget|libcurl)\/((\d+)[\w\.-_]+)/i, 1920 // Java/urllib/requests/wget/cURL 1921 /(lavf)((\d+)[\d\.]+)/i // Lavf (FFMPEG) 1922 ], [NAME, VERSION], [ 1923 1924 /(htc_one_s)\/((\d+)[\d\.]+)/i // HTC One S 1925 ], [[NAME, /_/g, ' '], VERSION], [ 1926 1927 /(mplayer)(?:\s|\/)(?:(?:sherpya-){0,1}svn)(?:-|\s)(r\d+(?:-\d+[\w\.-]+){0,1})/i 1928 // MPlayer SVN 1929 ], [NAME, VERSION], [ 1930 1931 /(mplayer)(?:\s|\/|[unkow-]+)((\d+)[\w\.-]+)/i // MPlayer 1932 ], [NAME, VERSION], [ 1933 1934 /(mplayer)/i, // MPlayer (no other info) 1935 /(yourmuze)/i, // YourMuze 1936 /(media player classic|nero showtime)/i // Media Player Classic/Nero ShowTime 1937 ], [NAME], [ 1938 1939 /(nero (?:home|scout))\/((\d+)[\w\.-]+)/i // Nero Home/Nero Scout 1940 ], [NAME, VERSION], [ 1941 1942 /(nokia\d+)\/((\d+)[\w\.-]+)/i // Nokia 1943 ], [NAME, VERSION], [ 1944 1945 /\s(songbird)\/((\d+)[\w\.-]+)/i // Songbird/Philips-Songbird 1946 ], [NAME, VERSION], [ 1947 1948 /(winamp)3 version ((\d+)[\w\.-]+)/i, // W
1948inamp 1949 /(winamp)\s((\d+)[\w\.-]+)/i, 1950 /(winamp)mpeg\/((\d+)[\w\.-]+)/i 1951 ], [NAME, VERSION], [ 1952 1953 /(ocms-bot|tapinradio|tunein radio|unknown|winamp|inlight radio)/i // OCMS-bot/tap in radio/tunein/unknown/winamp (no other info) 1954 // inlight radio 1955 ], [NAME], [ 1956 1957 /(quicktime|rma|radioapp|radioclientapplication|soundtap|totem|stagefright|streamium)\/((\d+)[\w\.-]+)/i 1958 // QuickTime/RealMedia/RadioApp/RadioClientApplication/ 1959 // SoundTap/Totem/Stagefright/Streamium 1960 ], [NAME, VERSION], [ 1961 1962 /(smp)((\d+)[\d\.]+)/i // SMP 1963 ], [NAME, VERSION], [ 1964 1965 /(vlc) media player - version ((\d+)[\w\.]+)/i, // VLC Videolan 1966 /(vlc)\/((\d+)[\w\.-]+)/i, 1967 /(xbmc|gvfs|xine|xmms|irapp)\/((\d+)[\w\.-]+)/i, // XBMC/gvfs/Xine/XMMS/irapp 1968 /(foobar2000)\/((\d+)[\d\.]+)/i, // Foobar2000 1969 /(itunes)\/((\d+)[\d\.]+)/i // iTunes 1970 ], [NAME, VERSION], [ 1971 1972 /(wmplayer)\/((\d+)[\w\.-]+)/i, // W
1972indows Media Player 1973 /(windows-media-player)\/((\d+)[\w\.-]+)/i 1974 ], [[NAME, /-/g, ' '], VERSION], [ 1975 1976 /windows\/((\d+)[\w\.-]+) upnp\/[\d\.]+ dlnadoc\/[\d\.]+ (home media server)/i 1977 // Windows Media Server 1978 ], [VERSION, [NAME, 'Windows']], [ 1979 1980 /(com\.riseupradioalarm)\/((\d+)[\d\.]*)/i // RiseUP Radio Alarm 1981 ], [NAME, VERSION], [ 1982 1983 /(rad.io)\s((\d+)[\d\.]+)/i, // Rad.io 1984 /(radio.(?:de|at|fr))\s((\d+)[\d\.]+)/i 1985 ], [[NAME, 'rad.io'], VERSION] 1986 1987 ////////////////////// 1988 // Media players END 1989 ////////////////////*/ 1990 1991 ], 1992 1993 cpu : [[ 1994 1995 /(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i // AMD64 1996 ], [[ARCHITECTURE, 'amd64']], [ 1997 1998 /(ia32(?=;))/i // IA32 (quicktime) 1999 ], [[ARCHITECTURE, util.lowerize]], [ 2000 2001 /((?:i[346]|x)86)[;\)]/i // IA32 2002 ], [[ARCHITECTURE, 'ia32']], [ 2003 2004 // PocketPC mistakenly identified as PowerPC 2005 /windows\s(ce|mobile);\sppc;/i 2006 ], [[ARCHITECTURE, 'arm']], [ 2007 2008 /((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i // PowerPC 2009 ], [[ARCHITECTURE, /ower/, '', util.lowerize]], [ 2010 2011 /(sun4\w)[;\)]/i // SPARC 2012 ], [[ARCHITECTURE, 'sparc']], [ 2013 2014 /((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+;))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i 2015 // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC 2016 ], [[ARCHITECTURE, util.lowerize]] 2017 ], 2018 2019 device : [[ 2020 2021 /\((ipad|playbook);[\w\s\);-]+(rim|apple)/i // iPad/PlayBook 2022 ], [MODEL, VENDOR, [TYPE, TABLET]], [ 2023 2024 /applecoremedia\/[\w\.]+ \((ipad)/ // iPad 2025 ], [MODEL, [VENDOR, 'Apple'], [TYPE, TABLET]], [ 2026 2027 /(apple\s{0,1}tv)/i // Apple TV 2028 ], [[MODEL, 'Apple TV'], [VENDOR, 'Apple']], [ 2029 2030 /(archos)\s(gamepad2?)/i, // Archos 2031 /(hp).+(touchpad)/i, // HP TouchPad 2032 /(hp).+(tablet)/i, // HP Tablet 2033 /(kindle)\/([\w\.]+)/i, // Kindle 2034 /\s(nook)[\w\s]+build\/(\w+)/i, // Nook 2035 /(dell)\s(strea[kpr\s\d]*[\dko])/i // Dell Streak 2036 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 2037 2038 /(kf[A-z]+)\sbuild\/[\w\.]+.*silk\//i // Kindle Fire HD 2039 ], [MODEL, [VENDOR, 'Amazon'], [TYPE, TABLET]], [ 2040 /(sd|kf)[0349hijorstuw]+\sbuild\/[\w\.]+.*silk\//i // Fire Phone 2041 ], [[MODEL, mapper.str, maps.device.amazon.model], [VENDOR, 'Amazon'], [TYPE, MOBILE]], [ 2042 2043 /\((ip[honed|\s\w*]+);.+(apple)/i // iPod/iPhone 2044 ], [MODEL, VENDOR, [TYPE, MOBILE]], [ 2045 /\((ip[honed|\s\w*]+);/i // iPod/iPhone 2046 ], [MODEL, [VENDOR, 'Apple'], [TYPE, MOBILE]], [ 2047 2048 /(blackberry)[\s-]?(\w+)/i, // BlackBerry 2049 /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]+)*/i, 2050 // BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron 2051 /(hp)\s([\w\s]+\w)/i, // HP iPAQ 2052 /(asus)-?(\w+)/i // Asus 2053 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 2054 /\(bb10;\s(\w+)/i // BlackBerry 10 2055 ], [MODEL, [VENDOR, 'BlackBerry'], [TYPE, MOBILE]], [ 2056 // Asus Tablets 2057 /android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone)/i 2058 ], [MODEL, [VENDOR, 'Asus'], [TYPE, TABLET]], [ 2059 2060 /(sony)\s(tablet\s[ps])\sbuild\//i, // Sony 2061 /(sony)?(?:sgp.+)\sbuild\//i 2062 ], [[VENDOR, 'Sony'], [MODEL, 'Xperia Tablet'], [TYPE, TABLET]], [ 2063 /android.+\s([c-g]\d{4}|so[-l]\w+)\sbuild\//i 2064 ], [MODEL, [VENDOR, 'Sony'], [TYPE, MOBILE]], [ 2065 2066 /\s(ouya)\s/i, // Ouya 2067 /(nintendo)\s([wids3u]+)/i // Nintendo 2068 ], [VENDOR, MODEL, [TYPE, CONSOLE]], [ 2069 2070 /android.+;\s(shield)\sbuild/i // Nvidia 2071 ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [ 2072 2073 /(playstation\s[34portablevi]+)/i // Playstation 2074 ], [MODEL, [VENDOR, 'Sony'], [TYPE, CONSOLE]], [ 2075 2076 /(sprint\s(\w+))/i // Sprint Phones 2077 ], [[VENDOR, mapper.str, maps.device.sprint.vendor], [MODEL, mapper.str, maps.device.sprint.model], [TYPE, MOBILE]], [ 2078
vendor: 10,275 bytes, lines 2079-2263
2079 /(lenovo)\s?(S(?:5000|6000)+(?:[-][\w+]))/i // Lenovo tablets 2080 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 2081 2082 /(htc)[;_\s-]+([\w\s]+(?=\))|\w+)*/i, // HTC 2083 /(zte)-(\w+)*/i, // ZTE 2084 /(alcatel|geeksphone|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]+)*/i 2085 // Alcatel/GeeksPhone/Lenovo/Nexian/Panasonic/Sony 2086 ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [ 2087 2088 /(nexus\s9)/i // HTC Nexus 9 2089 ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [ 2090 2091 /d\/huawei([\w\s-]+)[;\)]/i, 2092 /(nexus\s6p)/i // Huawei 2093 ], [MODEL, [VENDOR, 'Huawei'], [TYPE, MOBILE]], [ 2094 2095 /(microsoft);\s(lumia[\s\w]+)/i // Microsoft Lumia 2096 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 2097 2098 /[\s\(;](xbox(?:\sone)?)[\s\);]/i // Microsoft Xbox 2099 ], [MODEL, [VENDOR, 'Microsoft'], [TYPE, CONSOLE]], [ 2100 /(kin\.[onetw]{3})/i // Microsoft Kin 2101 ], [[MODEL, /\./g, ' '], [VENDOR, 'Microsoft'], [TYPE, MOBILE]], [ 2102 2103 // Motorola 2104 /\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?)[\w\s]+build\//i, 2105 /mot[\s-]?(\w+)*/i, 2106 /(XT\d{3,4}) build\//i, 2107 /(nexus\s6)/i 2108 ], [MODEL, [VENDOR, 'Motorola'], [TYPE, MOBILE]], [ 2109 /android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i 2110 ], [MODEL, [VENDOR, 'Motorola'], [TYPE, TABLET]], [ 2111 2112 /hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i // HbbTV devices 2113 ], [[VENDOR, util.trim], [MODEL, util.trim], [TYPE, SMARTTV]], [ 2114 2115 /hbbtv.+maple;(\d+)/i 2116 ], [[MODEL, /^/, 'SmartTV'], [VENDOR, 'Samsung'], [TYPE, SMARTTV]], [ 2117 2118 /\(dtv[\);].+(aquos)/i // Sharp 2119 ], [MODEL, [VENDOR, 'Sharp'], [TYPE, SMARTTV]], [ 2120 2121 /android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i, 2122 /((SM-T\w+))/i 2123 ], [[VENDOR, 'Samsung'], MODEL, [TYPE, TABLET]], [ // Samsung 2124 /smart-tv.+(samsung)/i 2125 ], [VENDOR, [TYPE, SMARTTV], MODEL], [ 2126 /((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i, 2127 /(sam[sung]*)[\s-]*(\w+-?[\w-]*)*/i, 2128 /sec-((sgh\w+))/i 2129 ], [[VENDOR, 'Samsung'], MODEL, [TYPE, MOBILE]], [ 2130 2131 /sie-(\w+)*/i // Siemens 2132 ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [ 2133 2134 /(maemo|nokia).*(n900|lumia\s\d+)/i, // Nokia 2135 /(nokia)[\s_-]?([\w-]+)*/i 2136 ], [[VENDOR, 'Nokia'], MODEL, [TYPE, MOBILE]], [ 2137 2138 /android\s3\.[\s\w;-]{10}(a\d{3})/i // Acer 2139 ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [ 2140 2141 /android.+([vl]k\-?\d{3})\s+build/i // LG Tablet 2142 ], [MODEL, [VENDOR, 'LG'], [TYPE, TABLET]], [ 2143 /android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i // LG Tablet 2144 ], [[VENDOR, 'LG'], MODEL, [TYPE, TABLET]], [ 2145 /(lg) netcast\.tv/i // LG SmartTV 2146 ], [VENDOR, MODEL, [TYPE, SMARTTV]], [ 2147 /(nexus\s[45])/i, // LG 2148 /lg[e;\s\/-]+(\w+)*/i, 2149 /android.+lg(\-?[\d\w]+)\s+build/i 2150 ], [MODEL, [VENDOR, 'LG'], [TYPE, MOBILE]], [ 2151 2152 /android.+(ideatab[a-z0-9\-\s]+)/i // Lenovo 2153 ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [ 2154 2155 /linux;.+((jolla));/i // Jolla 2156 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 2157 2158 /((pebble))app\/[\d\.]+\s/i // Pebble 2159 ], [VENDOR, MODEL, [TYPE, WEARABLE]], [ 2160 2161 /android.+;\s(oppo)\s?([\w\s]+)\sbuild/i // OPPO 2162 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 2163 2164 /crkey/i // Google Chromecast 2165 ], [[MODEL, 'Chromecast'], [VENDOR, 'Google']], [ 2166 2167 /android.+;\s(glass)\s\d/i // Google Glass 2168 ], [MODEL, [VENDOR, 'Google'], [TYPE, WEARABLE]], [ 2169 2170 /android.+;\s(pixel c)\s/i // Google Pixel C 2171 ], [MODEL, [VENDOR, 'Google'], [TYPE, TABLET]], [ 2172 2173 /android.+;\s(pixel xl|pixel)\s/i // Google Pixel 2174 ], [MODEL, [VENDOR, 'Google'], [TYPE, MOBILE]], [ 2175 2176 /android.+(\w+)\s+build\/hm\1/i, // Xiaomi Hongmi 'numeric' models 2177 /android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, // Xiaomi Hongmi 2178 /android.+(mi[\s\-_]*(?:one|one[\s_]plus|note lte)?[\s_]*(?:\d\w?)?[\s_]*(?:plus)?)\s+build/i, // Xiaomi Mi 2179 /android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+)?)\s+build/i // Redmi Phones 2180 ], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [ 2181 /android.+(mi[\s\-_]*(?:pad)(?:[\s_]*[\w\s]+)?)\s+build/i // Mi Pad tablets 2182 ],[[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, TABLET]], [ 2183 /android.+;\s(m[1-5]\snote)\sbuild/i // Meizu Tablet 2184 ], [MODEL, [VENDOR, 'Meizu'], [TYPE, TABLET]], [ 2185 2186 /android.+a000(1)\s+build/i, // OnePlus 2187 /android.+oneplus\s(a\d{4})\s+build/i 2188 ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [ 2189 2190 /android.+[;\/]\s*(RCT[\d\w]+)\s+build/i // RCA Tablets 2191 ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [ 2192 2193 /android.+[;\/]\s*(Venue[\d\s]*)\s+build/i // Dell Venue Tablets 2194 ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [ 2195 2196 /android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i // Verizon Tablet 2197 ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [ 2198 2199 /android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i // Barnes & Noble Tablet 2200 ], [[VENDOR, 'Barnes & Noble'], MODEL, [TYPE, TABLET]], [ 2201 2202 /android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i // Barnes & Noble Tablet 2203 ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [ 2204 2205 /android.+[;\/]\s*(zte)?.+(k\d{2})\s+build/i // ZTE K Series Tablet 2206 ], [[VENDOR, 'ZTE'], MODEL, [TYPE, TABLET]], [ 2207 2208 /android.+[;\/]\s*(gen\d{3})\s+build.*49h/i // Swiss GEN Mobile 2209 ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [ 2210 2211 /android.+[;\/]\s*(zur\d{3})\s+build/i // Swiss ZUR Tablet 2212 ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [ 2213 2214 /android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i // Zeki Tablets 2215 ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [ 2216 2217 /(android).+[;\/]\s+([YR]\d{2}x?.*)\s+build/i, 2218 /android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(.+)\s+build/i // Dragon Touch Tablet 2219 ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [ 2220 2221 /android.+[;\/]\s*(NS-?.+)\s+build/i // Insignia Tablets 2222 ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [ 2223 2224 /android.+[;\/]\s*((NX|Next)-?.+)\s+build/i // NextBook Tablets 2225 ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [ 2226 2227 /android.+[;\/]\s*(Xtreme\_?)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i 2228 ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [ // Voice Xtreme Phones 2229 2230 /android.+[;\/]\s*(LVTEL\-?)?(V1[12])\s+build/i // LvTel Phones 2231 ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [ 2232 2233 /android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i // Envizen Tablets 2234 ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [ 2235 2236 /android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(.*\b)\s+build/i // Le Pan Tablets 2237 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 2238 2239 /android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i // MachSpeed Tablets 2240 ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [ 2241 2242 /android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i // Trinity Tablets 2243 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 2244 2245 /android.+[;\/]\s*TU_(1491)\s+build/i // Rotor Tablets 2246 ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [ 2247 2248 /android.+(KS(.+))\s+build/i // Amazon Kindle Tablets 2249 ], [MODEL, [VENDOR, 'Amazon'], [TYPE, TABLET]], [ 2250 2251 /android.+(Gigaset)[\s\-]+(Q.+)\s+build/i // Gigaset Tablets 2252 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 2253 2254 /\s(tablet|tab)[;\/]/i, // Unidentifiable Tablet 2255 /\s(mobile)(?:[;\/]|\ssafari)/i // Unidentifiable Mobile 2256 ], [[TYPE, util.lowerize], VENDOR, MODEL], [ 2257 2258 /(android.+)[;\/].+build/i // Generic Android Device 2259 ], [MODEL, [VENDOR, 'Generic']] 2260 2261 2262 /*////////////////////////// 2263 // TODO: move to string map
2264 //////////////////////////// 2265 2266 /(C6603)/i // Sony Xperia Z C6603 2267 ], [[MODEL, 'Xperia Z C6603'], [VENDOR, 'Sony'], [TYPE, MOBILE]], [ 2268 /(C6903)/i // Sony Xperia Z 1 2269 ], [[MODEL, 'Xperia Z 1'], [VENDOR, 'Sony'], [TYPE, MOBILE]], [ 2270 2271 /(SM-G900[F|H])/i // Samsung Galaxy S5 2272 ], [[MODEL, 'Galaxy S5'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [ 2273 /(SM-G7102)/i // Samsung Galaxy Grand 2 2274 ], [[MODEL, 'Galaxy Grand 2'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [ 2275 /(SM-G530H)/i // Samsung Galaxy Grand Prime 2276 ], [[MODEL, 'Galaxy Grand Prime'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [ 2277 /(SM-G313HZ)/i // Samsung Galaxy V 2278 ], [[MODEL, 'Galaxy V'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [ 2279 /(SM-T805)/i // Samsung Galaxy Tab S 10.5 2280 ], [[MODEL, 'Galaxy Tab S 10.5'], [VENDOR, 'Samsung'], [TYPE, TABLET]], [ 2281 /(SM-G800F)/i // Samsung Galaxy S5 Mini 2282 ], [[MODEL, 'Galaxy S5 Mini'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [ 2283 /(SM-T311)/i // Samsung Galaxy Tab 3 8.0 2284 ], [[MODEL, 'Galaxy Tab 3 8.0'], [VENDOR, 'Samsung'], [TYPE, TABLET]], [ 2285 2286 /(T3C)/i // Advan Vandroid T3C 2287 ], [MODEL, [VENDOR, 'Advan'], [TYPE, TABLET]], [ 2288 /(ADVAN T1J\+)/i // Advan Vandroid T1J+ 2289 ], [[MODEL, 'Vandroid T1J+'], [VENDOR, 'Advan'], [TYPE, TABLET]], [ 2290 /(ADVAN S4A)/i // Advan Vandroid S4A 2291 ], [[MODEL, 'Vandroid S4A'], [VENDOR, 'Advan'], [TYPE, MOBILE]], [ 2292 2293 /(V972M)/i // ZTE V972M 2294 ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [ 2295 2296 /(i-mobile)\s(IQ\s[\d\.]+)/i // i-mobile IQ 2297 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 2298 /(IQ6.3)/i // i-mobile IQ IQ 6.3 2299 ], [[MODEL, 'IQ 6.3'], [VENDOR, 'i-mobile'], [TYPE, MOBILE]], [ 2300 /(i-mobile)\s(i-style\s[\d\.]+)/i // i-mobile i-STYLE 2301 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 2302 /(i-STYLE2.1)/i // i-mobile i-STYLE 2.1 2303 ], [[MODEL, 'i-STYLE 2.1'], [VENDOR, 'i-mobile'], [TYPE, MOBILE]], [ 2304 2305 /(mobiistar touch LAI 512)/i // mobiistar touch LAI 512 2306 ], [[MODEL, 'Touch LAI 512'], [VENDOR, 'mobiistar'], [TYPE, MOBILE]], [ 2307
2308 ///////////// 2309 // END TODO 2310 ///////////*/ 2311 2312 ], 2313 2314 engine : [[ 2315 2316 /windows.+\sedge\/([\w\.]+)/i // EdgeHTML 2317 ], [VERSION, [NAME, 'EdgeHTML']], [ 2318 2319 /(presto)\/([\w\.]+)/i, // Presto 2320 /(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m 2321 /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, // KHTML/Tasman/Links 2322 /(icab)[\/\s]([23]\.[\d\.]+)/i // iCab 2323 ], [NAME, VERSION], [ 2324 2325 /rv\:([\w\.]+).*(gecko)/i // Gecko 2326 ], [VERSION, NAME] 2327 ], 2328 2329 os : [[ 2330 2331 // Windows based 2332 /microsoft\s(windows)\s(vista|xp)/i // Windows (iTunes) 2333 ], [NAME, VERSION], [ 2334 /(windows)\snt\s6\.2;
2334\s(arm)/i, // Windows RT 2335 /(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s]+\w)*/i, // Windows Phone 2336 /(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i 2337 ], [NAME, [VERSION, mapper.str, maps.os.windows.version]], [ 2338 /(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i 2339 ], [[NAME, 'Windows'], [VERSION, mapper.str, maps.os.windows.version]], [ 2340 2341 // Mobile/Embedded OS 2342 /\((bb)(10);/i // BlackBerry 10 2343 ], [[NAME, 'BlackBerry'], VERSION], [ 2344 /(blackberry)\w*\/?([\w\.]+)*/i, // Blackberry 2345 /(tizen)[\/\s]([\w\.]+)/i, // Tizen 2346 /(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|contiki)[\/\s-]?([\w\.]+)*/i, 2347 // Android/WebOS/Palm/QNX/Bada/RIM/MeeGo/Contiki 2348 /linux;.+(sailfish);/i // Sailfish OS 2349 ], [NAME, VERSION], [ 2350 /(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]+)*/i // Symbian 2351 ], [[NAME, 'Symbian'], VERSION], [ 2352 /\((series40);/i // Series 40 2353 ], [NAME], [ 2354 /mozilla.+\(mobile;.+gecko.+firefox/i // Firefox OS 2355 ], [[NAME, 'Firefox OS'], VERSION], [ 2356 2357 // Console 2358 /(nintendo|playstation)\s([wids34portablevu]+)/i, // Nintendo
2358/Playstation 2359 2360 // GNU/Linux based 2361 /(mint)[\/\s\(]?(\w+)*/i, // Mint 2362 /(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux 2363 /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]+)*/i, 2364 // Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware 2365 // Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus 2366 /(hurd|linux)\s?([\w\.]+)*/i, // Hurd/Linux 2367 /(gnu)\s?([\w\.]+)*/i // GNU 2368 ], [NAME, VERSION], [ 2369 2370 /(cros)\s[\w]+\s([\w\.]+\w)/i // Chromium OS 2371 ], [[NAME, 'Chromium OS'], VERSION],[ 2372 2373 // Solaris 2374 /(sunos)\s?([\w\.]+\d)*/i // Solaris 2375 ], [[NAME, 'Solaris'], VERSION], [ 2376 2377 // BSD based 2378 /\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly 2379 ], [NAME, VERSION],[ 2380 2381 /(haiku)\s(\w+)/i // Haiku 2382 ], [NAME, VERSION],[ 2383 2384 /cfnetwork\/.+darwin/i, 2385 /ip[honead]+(?:.*os\s([\w]+)\slike\smac|;\sopera)/i // iOS 2386 ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [ 2387 2388 /(mac\sos\sx)\s?([\w\s\.]+\w)*/i, 2389 /(macintosh|mac(?=_powerpc)\s)/i // Mac OS 2390 ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [ 2391 2392 // Other 2393 /((?:open)?solaris)[\/\s-]?([\w\.]+)*/i, // Solaris 2394 /(aix)\s((\d)(?=\.|\)|\s)[\w\.]*)*/i, // AIX 2395 /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms)/i, 2396 // Plan9/Minix/BeOS/OS2/AmigaOS/MorphOS/RISCOS/OpenVMS 2397 /(unix)\s?([\w\.]+)*/i // UNIX 2398 ], [NAME, VERSION] 2399 ] 2400 }; 2401 2402 2403 ///////////////// 2404 // Constructor 2405 //////////////// 2406 /* 2407 var Browser = function (name, version) { 2408 this[NAME] = name; 2409 this[VERSION] = version; 2410 }; 2411 var CPU = function (arch) { 2412 this[ARCHITECTURE] = arch; 2413 }; 2414 var Device = function (vendor, model, type) { 2415 this[VENDOR] = vendor; 2416 this[MODEL] = model; 2417 this[TYPE] = type; 2418 }; 2419 var Engine = Browser; 2420 var OS = Browser; 2421 */ 2422 var UAParser = function (uastring, extensions) { 2423 2424 if (typeof uastring === 'object') { 2425 extensions = uastring; 2426 uastring = undefined; 2427 } 2428 2429 if (!(this instanceof UAParser)) { 2430 return new UAParser(uastring, extensions).getResult(); 2431 } 2432 2433 var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY); 2434 var rgxmap = extensions ? util.extend(regexes, extensions) : regexes; 2435 //var browser = new Browser(); 2436 //var cpu = new CPU(); 2437 //var device = new Device(); 2438 //var engine = new Engine(); 2439 //var os = new OS(); 2440 2441 this.getBrowser = function () { 2442 var browser = { name: undefined, version: undefined }; 2443 mapper.rgx.call(browser, ua, rgxmap.browser); 2444 browser.major = util.major(browser.version); // deprecated 2445 return browser; 2446 }; 2447 this.getCPU = function () { 2448 var cpu = { architecture: undefined }; 2449 mapper.rgx.call(cpu, ua, rgxmap.cpu); 2450 return cpu; 2451 }; 2452 this.getDevice = function () { 2453 var device = { vendor: undefined, model: undefined, type: undefined }; 2454 mapper.rgx.call(device, ua, rgxmap.device); 2455 return device; 2456 }; 2457 this.getEngine = function () { 2458 var engine = { name: undefined, version: undefined }; 2459 mapper.rgx.call(engine, ua, rgxmap.engine); 2460 return engine; 2461 }; 2462 this.getOS = function () { 2463 var os = { name: undefined, version: undefined }; 2464 mapper.rgx.call(os, ua, rgxmap.os); 2465 return os; 2466 }; 2467 this.getResult = function () { 2468 return { 2469 ua : this.getUA(), 2470 browser : this.getBrowser(), 2471 engine : this.getEngine(), 2472 os : this.getOS(), 2473 device : this.getDevice(), 2474 cpu : this.getCPU() 2475 }; 2476 }; 2477 this.getUA = function () { 2478 return ua; 2479 }; 2480 this.setUA = function (uastring) { 2481 ua = uastring; 2482 //browser = new Browser(); 2483 //cpu = new CPU(); 2484 //device = new Device(); 2485 //engine = new Engine(); 2486 //os = new OS(); 2487 return this; 2488 }; 2489 return this; 2490 }; 2491 2492 UAParser.VERSION = LIBVERSION; 2493 UAParser.BROWSER = { 2494 NAME : NAME, 2495 MAJOR : MAJOR, // deprecated 2496 VERSION : VERSION 2497 }; 2498 UAParser.CPU = { 2499 ARCHITECTURE : ARCHITECTURE 2500 }; 2501 UAParser.DEVICE = { 2502 MODEL : MODEL, 2503 VENDOR : VENDOR, 2504 TYPE : TYPE, 2505 CONSOLE : CONSOLE, 2506 MOBILE : MOBILE, 2507 SMARTTV : SMARTTV, 2508 TABLET : TABLET, 2509 WEARABLE: WEARABLE, 2510 EMBEDDED: EMBEDDED 2511 };
2512 UAParser.ENGINE = { 2513 NAME : NAME, 2514 VERSION : VERSION 2515 }; 2516 UAParser.OS = { 2517 NAME : NAME, 2518 VERSION : VERSION 2519 }; 2520 //UAParser.Utils = util; 2521 2522 /////////// 2523 // Export 2524 ////////// 2525 2526 2527 // check js environment 2528 if (typeof(exports) !== UNDEF_TYPE) { 2529 // nodejs env 2530 if (typeof module !== UNDEF_TYPE && module.exports) { 2531 exports = module.exports = UAParser; 2532 } 2533 // TODO: test!!!!!!!! 2534 /* 2535 if (require && require.main === module && process) { 2536 // cli 2537 var jsonize = function (arr) { 2538 var res = []; 2539 for (var i in arr) { 2540 res.push(new UAParser(arr[i]).getResult()); 2541 } 2542 process.stdout.write(JSON.stringify(res, null, 2) + '\n'); 2543 }; 2544 if (process.stdin.isTTY) { 2545 // via args 2546 jsonize(process.argv.slice(2)); 2547 } else { 2548 // via pipe 2549 var str = ''; 2550 process.stdin.on('readable', function() { 2551 var read = process.stdin.read(); 2552 if (read !== null) { 2553 str += read; 2554 } 2555 }); 2556 process.stdin.on('end', function () { 2557 jsonize(str.replace(/\n$/, '').split('\n')); 2558 }); 2559 } 2560 } 2561 */ 2562 exports.UAParser = UAParser; 2563 } else { 2564 // requirejs env (optional) 2565 if (typeof(define) === FUNC_TYPE && define.amd) { 2566 define(function () { 2567 return UAParser; 2568 }); 2569 } else if (window) { 2570 // browser env 2571 window.UAParser = UAParser; 2572 } 2573 } 2574 2575 // jQuery/Zepto specific (optional) 2576 // Note: 2577 // In AMD env the global scope should be kept clean, but jQuery is an exception. 2578 // jQuery always exports to global scope, unless jQuery.noConflict(true) is used, 2579 // and we should catch that. 2580 var $ = window && (window.jQuery || window.Zepto); 2581 if (typeof $ !== UNDEF_TYPE) { 2582 var parser = new UAParser(); 2583 $.ua = parser.getResult(); 2584 $.ua.get = function () { 2585 return parser.getUA(); 2586 }; 2587 $.ua.set = function (uastring) { 2588 parser.setUA(uastring); 2589 var result = parser.getResult(); 2590 for (var prop in result) { 2591 $.ua[prop] = result[prop]; 2592 } 2593 }; 2594 } 2595 2596})(typeof window === 'object' ? window : this); 2597 2598 /** 2599 * Copyright 2012, Digital Fusion 2600 * Licensed under the MIT license. 2601 * http://teamdf.com/jquery-plugins/license/ 2602 * 2603 * @author Sam Sehnert 2604 * @desc A small plugin that checks whether elements are within 2605 * the user visible viewport of a web browser. 2606 * only accounts for vertical position, not horizontal. 2607 */ 2608 2609 $.fn.visible = function(partial) { 2610 2611 var $t = $(this), 2612 $w = $(window), 2613 viewTop = $w.scrollTop(),
2614 viewBottom = viewTop + $w.height(), 2615 _top = $t.offset().top, 2616 _bottom = _top + $t.height(), 2617 compareTop = partial === true ? _bottom : _top, 2618 compareBottom = partial === true ? _top : _bottom; 2619 2620 return ((compareBottom <= viewBottom) && (compareTop >= viewTop)); 2621 2622 }; 2623$(document).ready(function(){ 2624 2625 $('.section-title').inviewport({ 2626 threshold: 70, 2627 className: 'move-active' 2628 }) 2629 2630 // $('.section-title').inviewport({ 2631 // threshold: 70, 2632 // className: 'move-active-2' 2633 // }) 2634 2635 $('.menu-item-has-children').click(function(e){ 2636 //e.preventDefault(); 2637 2638 if(!$(this).hasClass('selected')){ 2639 $('.menu-item-has-children.selected').removeClass('selected').children('.sub-menu').slideUp('slow'); 2640 $(this).addClass('selected').children('.sub-menu').slideDown('slow'); 2641 $('.top-dropdown.ul').addClass('selected'); 2642 } else { 2643 $(this).removeClass('selected').children('.sub-menu').slideUp('slow'); 2644 $('.top-dropdown.ul').removeClass('selected'); 2645 } 2646 }); 2647 2648 $.waypointAnimation = function( selector, selectorOffset ){ 2649 2650 setTimeout(function(){ 2651 var waypoint = new Waypoint({ 2652 element: selector, 2653 handler: function() { 2654 selector.addClass('revealer-init'); 2655 //appended.destroy(); 2656 }, 2657 offset: function() { 2658 if (Waypoint.viewportWidth() <= 480) { 2659 return Waypoint.viewportHeight() - 180; 2660 } 2661 return Waypoint.viewportHeight() + selectorOffset; 2662 } 2663 }); 2664 }, 500); 2665 } 2666 2667 //fade in page on load 2668 // $(window).load(function () { 2669 // $('.body-wrapper').addClass('visible'); 2670 // }); 2671
2672 if (navigator.userAgent.search("Chrome") >= 0) 2673 { 2674 document.getElementsByTagName("body")[0].className += " chro-moz"; 2675 } 2676 2677 // if (navigator.userAgent.search("Safari") >= 0) 2678 // { 2679 // document.getElementsByTagName("body")[0].className += " safari"; 2680 // } 2681 2682 if (navigator.userAgent.search("Chrome") && navigator.userAgent.search("Mac OS") < 0) 2683 { 2684 document.getElementsByTagName("body")[0].className += " mac-chrome"; 2685 } 2686 2687 if (navigator.userAgent.search("Firefox") >= 0) 2688 { 2689 document.getElementsByTagName("body")[0].className += " chro-moz"; 2690 } 2691 2692 if (navigator.userAgent.search("Opera") >= 0) 2693 { 2694 document.getElementsByTagName("body")[0].className += " chro-moz"; 2695 } 2696 2697 if (uaDetect.browser.name == 'Chrome' && uaDetect.os.name == 'Mac OS') { 2698 document.getElementsByTagName("body")[0].className += " chro-safari"; 2699 } 2700 2701 if (uaDetect.browser.name == 'Chrome' && uaDetect.os.name == 'Android') { 2702 document.getElementsByTagName("body")[0].className += " android"; 2703 } 2704 2705 if (uaDetect.browser.name == 'Safari' && uaDetect.os.name == 'Mac OS') { 2706 document.getElementsByTagName("body")[0].className += " safari"; 2707 } 2708 2709 if (uaDetect.browser.name == 'Mobile Safari') { 2710 document.getElementsByTagName("body")[0].className += " safari"; 2711 } 2712 2713 if (uaDetect.browser.name == 'Mobile Chrome') { 2714 document.getElementsByTagName("body")[0].className += " os-chrome"; 2715 } 2716 2717 if (uaDetect.browser.name == 'Edge') { 2718 document.getElementsByTagName("body")[0].className += " edge"; 2719 } 2720 2721 if (uaDetect.browser.name == 'IE') { 2722 document.getElementsByTagName("body")[0].className += " iexplorer"; 2723 } 2724 2725 function stick_social() { 2726 var window_top = $(window).scrollTop(); 2727 if (window_top > 700) { 2728 $('.text-section .share-box').addClass('stick'); 2729 } else { 2730 $('.text-section .share-box').removeClass('stick'); 2731 } 2732 } 2733 2734 $(function () { 2735 $(window).scroll(stick_social); 2736 stick_social(); 2737 }); 2738 2739}); 2740 2741window.onload = function(){ 2742 setTimeout( function() { 2743 $('#promo .text-box').addClass('show-text') 2744 }, 300 ); 2745 2746 setTimeout( function() { 2747 $('.leader-info-wrap .img-box').addClass('show-image') 2748 }, 400 ); 2749 2750 setTimeout( function() { 2751 $('.leader-info-wrap .text-box').addClass('show-text-2') 2752 }, 350 ); 2753 2754}; 2755 2756 2757var uaDetect = new UAParser().getResult(); 2758 2759console.log(uaDetect); 2760 2761EA.Methods.blockExtend = function($this){ 2762 var item = $this.find('.toggle-item'); 2763 var block = $this.find('.article-cards-wrapper'); 2764 2765 item.on('click', function () { 2766 if (item.hasClass('active')){ 2767 block.addClass('.flex-start'); 2768 } 2769 else { 2770 block.removeClass('.flex-start'); 2771 }; 2772 }); 2773}; 2774EA.Methods.closeModal = function ($this) { 2775 $this.on('click', function () { 2776 $('body').removeClass('modal-open img-modal-open'); 2777 $('.modal-box.active').removeClass('active'); 2778 }); 2779}; 2780 2781EA.Methods.dropkick = function($this){ 2782 $this.find('.custom-select').dropkick(); 2783 $this.find('.dk-select').on('click', (e) => { 2784 e.stopPropagation(); 2785 $this.find('.dk-select-options').slideToggle() 2786 }); 2787 2788 $('body').on('click', () => { 2789 $this.find('.dk-select-options').slideUp(); 2790 }); 2791}; 2792 2793EA.Methods.dropkickContentChange = function($this){ 2794 $this.find('.custom-select').dropkick(); 2795 2796 $this.find('.dk-select').on('click', (e) => { 2797 e.stopPropagation(); 2798 let thisIndex = $('.dk-option-selected').index(); 2799 2800 $this.find('.dk-select-options').slideToggle(); 2801 $this.find('.tab-toggle-content').find($('.tab-target')).removeClass('active'); 2802 $this.find('.tab-toggle-content').find($('.tab-target')).eq(thisIndex).addClass('active').siblings().removeClass('active'); 2803 }); 2804 2805 $('body').on('click', () => { 2806 $this.find('.dk-select-options').slideUp(); 2807 }); 2808 2809 2810}; 2811 2812EA.Methods.expandContent = function($this){ 2813 const item = $this.find('.expand-content-link'); 2814 2815 item.on('click', function (e) { 2816 e.preventDefault(); 2817 $(this).siblings('.expand-content').slideToggle(); 2818 $(this).toggleClass('active') 2819 }); 2820}; 2821 2822EA.Methods.expanderToggle = function($this){ 2823 var button = $this.find('.toggle-item'); 2824 var cards = $this.find('.article-card-outer'); 2825 var mainWrap = $this; 2826 2827 button.on('click', function () { 2828 var targetIndex = $(this).closest('.article-card-outer').index() + 1; 2829 // mainWrap.toggleClass('expanded-' + targetIndex); 2830 if ($(this).closest('.article-card-outer').hasClass('active')) { 2831 var siblings = $(this).closest('.article-card-outer').siblings().not('.active'); 2832 $(this).removeClass('active'); 2833 $(this).closest('.article-card-outer').removeClass('active'); 2834 $(this).closest('.article-card-outer').find('.toggle-hidden-content').slideUp(250); 2835 setTimeout(() => { 2836 siblings.each(function() { 2837 $(this).css('height', ''); 2838 }); 2839 }, 250); 2840 2841 } else { 2842 var siblings = $(this).closest('.article-card-outer').siblings('.article-card-outer').not('.active'); 2843 siblings.each(function() { 2844 var siblingsHeight = $(this).outerHeight(); 2845 $(this).css('height', siblingsHeight); 2846 }); 2847 2848 $(this).closest('.article-card-outer').siblings().find('.toggle-hidden-content').slideUp(250); 2849 $(this).closest('.article-card-outer').siblings().removeClass('active'); 2850 $(this).closest('.article-card-outer').siblings().find('.toggle-item').removeClass('active'); 2851 $(this).addClass('active'); 2852 $(this).closest('.article-card-outer').addClass('active').css('height', ''); 2853 $(this).closest('.article-card-outer').find('.toggle-hidden-content').slideDown(); 2854 } 2855 2856 if (cards.hasClass('active')) { 2857 mainWrap.addClass('expanded-' + targetIndex); 2858 } else { 2859 mainWrap.removeClass('expanded-' + targetIndex); 2860 } 2861 2862 }); 2863}; 2864 2865EA.Methods.galleryModal1 = function ($this) { 2866 $this.slick({ 2867 rows: 0, 2868 dots: true, 2869 pauseOnHover: false, 2870 // autoplay: true, 2871 prevArrow: "<div class='slick-prev'><img src='"+ site_url +"/img/icons/arrow-right.png'></div>", 2872 nextArrow: "<div class='slick-next'><img src='"+ site_url +"/img/icons/arrow-right.png'></div>", 2873 }); 2874}; 2875 2876EA.Methods.gallerySlider = function($this) { 2877 2878 $('.gallery-slider').slick({ 2879 centerMode: true, 2880 centerPadding: '10px', 2881 slidesToShow: 1.65, 2882 responsive: [ 2883 { 2884 breakpoint: 480, 2885 settings: {
2886 arrows: false, 2887 centerMode: true, 2888 centerPadding: '40px', 2889 slidesToShow: 1 2890 } 2891 } 2892 ] 2893 }); 2894 2895} 2896EA.Methods.hamburger = function($this) { 2897 2898 $(".hamburger").on('click',function(){ 2899 $(".hamburger-bars").toggleClass('active'); 2900 }); 2901 2902 $(".hamburger").on('click',function(){ 2903 $(".side-nav-wrap").toggleClass('open'); 2904 }); 2905} 2906// EA.Methods.hiddenMenu = function($this){ 2907 2908// $this.click(function(e){ 2909// //e.preventDefault(); 2910 2911// if(!$(this).hasClass('selected')){ 2912// $('.menu-item-has-children.selected').removeClass('selected').children('.sub-menu').slideUp('slow'); 2913// $(this).addClass('selected').children('.sub-menu').slideDown('slow'); 2914// $('.top-dropdown.ul').addClass('selected'); 2915// } else { 2916// $(this).removeClass('selected').children('.sub-menu').slideUp('slow'); 2917// $('.top-dropdown.ul').removeClass('selected'); 2918// } 2919// }); 2920 2921// }; 2922EA.Methods.hiddenTab= function($this){ 2923 2924 $this.click(function(e){ 2925 2926 if(!$(this).hasClass('selected')){ 2927 // $('.tab-name.selected').removeClass('selected').next('.mobile-tab-wrap').slideUp('slow'); 2928 $(this).addClass('selected').next('.mobile-tab-wrap').slideDown('slow'); 2929 // $('.top-dropdown.ul').addClass('selected'); 2930 } else { 2931 $(this).removeClass('selected').next('.mobile-tab-wrap').slideUp('slow'); 2932 // $('.top-dropdown.ul').removeClass('selected'); 2933 } 2934 }); 2935 2936}; 2937EA.Methods.loadAnimate = function($this){ 2938 2939 //get url param 2940 $.urlParam = function(name){ 2941 var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); 2942 return results[1] || 0; 2943 } 2944 2945 var selected = $.urlParam('selected'); 2946 var selector = $this.find('[data-animate="'+selected+'"]'); 2947 2948 if( selector.length ) 2949 { 2950 //wait for transition to finish 2951 setTimeout(function(){ 2952 $("html, body").animate({ 2953 scrollTop: selector.offset().top - 100 2954 }, 1000); 2955 }, 1000); 2956 2957 } 2958} 2959EA.Methods.mapHover = function ($this) { 2960 2961 var el = $this, 2962 mapWrap = $('.map-images'); 2963 2964 $this.on('mouseover', function () { 2965 var id = $(this).data('map'); 2966 // console.log($(this).data('map')); 2967 mapWrap.find('.map-image-' + id).addClass('active'); 2968 }); 2969 2970 $this.on('mouseout', function () { 2971 // console.log('mouseout'); 2972 mapWrap.find('.map-box.active').removeClass('active'); 2973 }); 2974}; 2975 2976EA.Methods.mobileMenuDropdowns = function($this){ 2977 const item = $this.find('.mobile-menu-main-nav-link'); 2978 const burger = $(document).find('.hamburger'); 2979 item.on('click', function (e) { 2980 e.preventDefault(); 2981 $(this).toggleClass('active'); 2982 $(this).siblings('.mobile-main-nav-dropdown-wrapper').slideToggle(); 2983 $(this).parent('.mobile-menu-main-nav-item').siblings().find('.mobile-main-nav-dropdown-wrapper').slideUp(); 2984 }); 2985 2986 burger.on('click', function() { 2987 item.each(function() { 2988 $(this).siblings('.mobile-main-nav-dropdown-wrapper').slideUp(); 2989 $(this).removeClass('active'); 2990 }) 2991 }) 2992}; 2993 2994EA.Methods.openModal = function($this) { 2995 var $header = $('#page-header'), 2996 $slickRef = $('.js-gallery-modal-1'), 2997 id = $this.data('modal'); 2998 2999 $this.on('click', function (e) { 3000 e.preventDefault(); 3001 var slideNum = $(e.currentTarget).data('slide'); 3002 if (slideNum || slideNum === 0) { 3003 $slickRef.slick('slickGoTo', slideNum); 3004 } 3005 $('body').addClass('modal-open'); 3006 $('.' + id + '-modal').addClass('active'); 3007 setTimeout(function () { 3008 $header.removeClass('hidden'); 3009 }, 300); 3010 }); 3011}; 3012 3013// EA.Methods.popupOpen = function($this) { 3014 3015// var overlay = $('.popup-overlay'); 3016// var closeBtn = $('.footer-popup-cancel-btn'); 3017// var body = $('body'); 3018 3019// $this.on('click', function (e) { 3020// e.preventDefault(); 3021// var popupData = $this.data('popup'); 3022// var popupBlock = $('.' + popupData); 3023// popupBlock.addClass('active'); 3024// overlay.addClass('active'); 3025// body.addClass('no-scroll'); 3026// }); 3027 3028// $(overlay).on('click', function (e) { 3029// e.preventDefault(); 3030// var popupData = $this.data('popup'); 3031// var popupBlock = $('.' + popupData); 3032// $(overlay).removeClass('active'); 3033// $(popupBlock).removeClass('active'); 3034// body.removeClass('no-scroll'); 3035// setTimeout(function () { 3036// $('#page-header').removeClass('active'); 3037// }, 500) 3038// }); 3039 3040// $(closeBtn).on('click', function (e) { 3041// e.preventDefault(); 3042// var popupData = $this.data('popup'); 3043// var popupBlock = $('.' + popupData); 3044// $(overlay).removeClass('active'); 3045// $(popupBlock).removeClass('active'); 3046// body.removeClass('no-scroll'); 3047// setTimeout(function () { 3048// $('#page-header').removeClass('active'); 3049// }, 500) 3050// }); 3051 3052// }; 3053 3054EA.Methods.revealer = function($this) { 3055 var elemOffset = $this.data('offset') || 0, 3056 $revealer_img = $this.children('.revealer-img'); 3057 3058 $revealer_img.on('transitionend webkitTransitionEnd mozTransitionEnd oTransitionEnd', function () { 3059 $revealer_img.addClass('revealer-img-done'); 3060 }); 3061 3062 var waypoint = new Waypoint({ 3063 element: $this, 3064 handler: function() { 3065 $this.addClass('revealer-init'); 3066 this.destroy(); 3067 }, 3068 offset: function() {
3069 return Waypoint.viewportHeight() + elemOffset; 3070 } 3071 }); 3072}; 3073EA.Methods.selectContentChange = function($this){ 3074 const customSelect = $this.find('.custom-select'); 3075 const selectSelected = $this.find('.select-selected'); 3076 const selectOptions = $this.find('.select-options'); 3077 const selectOption = $this.find('.select-option'); 3078 3079 customSelect.click(function(event) { 3080 event.stopPropagation(); 3081 selectOptions.slideToggle(); 3082 $(this).toggleClass('active'); 3083 }); 3084 3085 $('.select-option').click(function() { 3086 let thisIndex = $(this).index(); 3087 3088 selectOption.removeClass('option-selected'); 3089 3090 $(this).addClass('option-selected'); 3091 3092 let text = $(this).children('.option-text').text(); 3093 3094 selectSelected.text(text); 3095 3096 var icon = $(this).find('.option-icon').prop('outerHTML'); 3097 3098 selectSelected.html(icon + text); 3099 3100 $this.find('.tab-toggle-content').find($('.tab-target')).removeClass('active'); 3101 $this.find('.tab-toggle-content').find($('.tab-target')).eq(thisIndex).addClass('active').siblings().removeClass('active'); 3102 3103 }); 3104 3105 $('body').click(function() { 3106 selectOptions.slideUp(); 3107 selectOptions.removeClass('active'); 3108 }); 3109 3110}; 3111 3112EA.Methods.tabControl = function($this){ 3113 3114 var tabName = $this.data('name'), 3115 wrap = $this.closest('.tabs-box'); 3116 3117 $this.click(function(e){ 3118 e.preventDefault(); 3119 let tab = $(this).data('tab'); 3120 $(this).parent().addClass('active').siblings().removeClass('active'); 3121 wrap.find('.tabcontent.active').hide(); 3122 wrap.find('.tabcontent.tab-num-' + tab).show().addClass('active'); 3123 console.log(tab); 3124 }); 3125}; 3126EA.Methods.tabToggle = function($this) { 3127 let item = $this.find('.tab-toggle'); 3128 3129 item.on('click', function (e) { 3130 e.preventDefault(); 3131 let thisIndex = $(this).index(); 3132 $this.find('.tab-toggle-content').find($('.tab-target')).css('display', ''); 3133 $this.find('.tab-toggle-content-2').find($('.tab-target')).css('display', ''); 3134 $(this).addClass('active').siblings().removeClass('active'); 3135 $this.find('.tab-toggle-content').find($('.tab-target')).removeClass('active'); 3136 $this.find('.tab-toggle-content-2').find($('.tab-target')).removeClass('active'); 3137 $this.find('.tab-toggle-content').find($('.tab-target')).eq(thisIndex).addClass('active').siblings().removeClass('active'); 3138 $this.find('.tab-toggle-content-2').find($('.tab-target')).eq(thisIndex).addClass('active').siblings().removeClass('active'); 3139 }); 3140}; 3141EA.Methods.videoControl = function($this){ 3142 const video = $this.find('.video'); 3143 const overlay = $this.find('.video-overlay'); 3144 3145 video.on('click', function (e) { 3146 overlay.toggleClass('hidden'); 3147 video.trigger('pause'); 3148 }); 3149 overlay.on('click', function (e) { 3150 e.stopPropagation(); 3151 overlay.toggleClass('hidden'); 3152 video.trigger('play') 3153 }); 3154}; 3155 3156EA.Methods.ytPlayer = function ($this) { 3157 3158 var $player = $this, 3159 muted = false; 3160 3161 function buildIframe(videoId) { 3162 var params = [ 3163 'autoplay=1', 3164 'modestbranding=1', 3165 'controls=0', 3166 'showinfo=0', 3167 'iv_load_policy=3', 3168 'rel=0', 3169 'fs=0', 3170 'loop=1', 3171 'playlist=' + videoId, 3172 'enablejsapi=1', 3173 'origin=' + encodeURIComponent(window.location.origin) 3174 ].join('&'); 3175 3176 return $('<iframe>', { 3177 src: 'https://www.youtube-nocookie.com/embed/' + videoId + '?' + params, 3178 frameborder: 0, 3179 allow: 'autoplay; encrypted-media', 3180 allowfullscreen: true 3181 }); 3182 } 3183 3184 function postToPlayer(func, args) { 3185 var $iframe = $player.find('iframe'); 3186 if (!$iframe.length) { 3187 return; 3188 } 3189 $iframe[0].contentWindow.postMessage(JSON.stringify({ 3190 event: 'command', 3191 func: func, 3192 args: args || [] 3193 }), '*'); 3194 } 3195 3196 var btn = $('.yt-play'); 3197 btn.on('click', function (e) { 3198 e.preventDefault(); 3199 3200 var videoId = $(this).data('video-id'); 3201 if (!videoId) { 3202 return; 3203 } 3204 3205 muted = false;
3206 $('body').removeClass('muted'); 3207 $player.empty().append(buildIframe(videoId)); 3208 $('body').addClass('video-open'); 3209 }); 3210 3211 3212 var muteBtn = $('#mute-player'); 3213 muteBtn.on('click', function () { 3214 muted = !muted; 3215 postToPlayer(muted ? 'mute' : 'unMute'); 3216 $('body').toggleClass('muted', muted); 3217 }); 3218 3219 3220 var $close = $('#modal-close'); 3221 $close.on('click', function () { 3222 $player.empty(); 3223 }); 3224};
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.