1var mod_pagespeed_9pQfWBjdH1 = "/*! pojo-accessibility - v2.1.0 - 18-12-2022 */\n!function(){var t=-1<navigator.userAgent.toLowerCase().indexOf(\"webkit\"),e=-1<navigator.userAgent.toLowerCase().indexOf(\"opera\"),o=-1<navigator.userAgent.toLowerCase().indexOf(\"msie\");(t||e||o)&&document.getElementById&&window.addEventListener&&window.addEventListener(\"hashchange\",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1)}(),function(n,t,o,e){\"use strict\";var i={cache:{$document:n(o),$window:n(t)},cacheElements:function(){this.cache.$toolbar=n(\"#pojo-a11y-toolbar\"),this.cache.$toolbarLinks=this.cache.$toolbar.find(\"a.pojo-a11y-toolbar-link\"),this.cache.$toolbarToolsLinks=this.cache.$toolbar.find(\".pojo-a11y-tools a.pojo-a11y-toolbar-link\"),this.cache.$btnToolbarToggle=this.cache.$toolbar.find(\"div.pojo-a11y-toolbar-toggle > a\"),this.cache.$skipToContent=n(\"#pojo-a11y-skip-content\"),this.cache.$body=n(\"body\")},settings:{minFontSize:120,maxFontSize:200,buttonsClassPrefix:\"pojo-a11y-btn-\",bodyClassPrefix:\"pojo-a11y-\",bodyFontClassPrefix:\"pojo-a11y-resize-font-\",storageKey:\"pojo-a11y\",expires:PojoA11yOptions.save_expiration?36e5*PojoA11yOptions.save_expiration:432e5},variables:{currentFontSize:120,currentSchema:null},activeActions:{},buildElements:function(){this.cache.$body.prepend(this.cache.$toolbar),this.cache.$body.prepend(this.cache.$skipToContent)},bindEvents:function(){var e=this;e.cache.$btnToolbarToggle.on(\"click\",function(t){t.preventDefault(),e.cache.$toolbar.toggleClass(\"pojo-a11y-toolbar-open\"),e.cache.$toolbar.hasClass(\"pojo-a11y-toolbar-open\")?e.cache.$toolbarLinks.attr(\"tabindex\",\"0\"):e.cache.$toolbarLinks.attr(\"tabindex\",\"-1\")}),n(o).on(\"keyup\",function(t){9===t.which&&e.cache.$btnToolbarToggle.is(\":focus\")&&(e.cache.$toolbar.addClass(\"pojo-a11y-toolbar-open\"),e.cache.$toolbarLinks.attr(\"tabindex\",\"0\"))}),e.bindToolbarButtons()},bindToolbarButtons:function(){var s=this;s.cache.$toolbarToolsLinks.on(\"click\",function(t){t.preventDefault();var e=n(this),o=e.data(\"action\"),i=e.data(\"action-group\"),a=!1;\"reset\"!==o?(-1!==[\"toggle\",\"schema\"].indexOf(i)&&(a=e.hasClass(\"active\")),s.activateButton(o,a)):s.reset()})},activateButton:function(t,e){var o=this.getButtonByAction(t).data(\"action-group\");this.activeActions[t]=!e,this.actions[o].call(this,t,e),this.saveToLocalStorage()},getActiveButtons:function(){return this.cache.$toolbarToolsLinks.filter(\".active\")},getButtonByAction:function(t){return this.cache.$toolbarToolsLinks.filter(\".\"+this.settings.buttonsClassPrefix+t)},actions:{toggle:function(t,e){var o=this.getButtonByAction(t),i=e?\"removeClass\":\"addClass\";e?o.removeClass(\"active\"):o.addClass(\"active\"),this.cache.$body[i](this.settings.bodyClassPrefix+t)},resize:function(t,e){var o=this.variables.currentFontSize;\"resize-plus\"===t&&this.settings.maxFontSize>o&&(this.variables.currentFontSize+=10),\"resize-minus\"===t&&this.settings.minFontSize<o&&(this.variables.currentFontSize-=10),e&&(this.variables.currentFontSize=this.settings.minFontSize),this.cache.$body.removeClass(this.settings.bodyFontClassPrefix+o);var i=120<this.variables.currentFontSize,a=i?\"addClass\":\"removeClass\";this.getButtonByAction(\"resize-plus\")[a](\"active\"),i&&this.cache.$body.addClass(this.settings.bodyFontClassPrefix+this.variables.currentFontSize),this.activeActions[\"resize-minus\"]=!1,this.activeActions[\"resize-plus\"]=i,this.cache.$window.trigger(\"resize\")},schema:function(t,e){var o=this.variables.currentSchema;o&&(this.cache.$body.removeClass(this.settings.bodyClassPrefix+o),this.getButtonByAction(o).removeClass(\"active\"),this.activeActions[o]=!1,this.saveToLocalStorage()),e?this.variables.currentSchema=null:(o=this.variables.currentSchema=t,this.cache.$body.addClass(this.settings.bodyClassPrefix+o),this.getButtonByAction(o).addClass(\"active\"))}},reset:function(){for(var t in this.activeActions)this.activeActions.hasOwnProperty(t)&&this.activeActions[t]&&this.activateButton(t,!0);localStorage.removeItem(this.settings.storageKey)},saveToLocalStorage:function(){if(\"1\"===PojoA11yOptions.enable_save){this.variables.expires||(this.variables.expires=(new Date).getTime()+this.settings.expires);var t={actions:this.activeActions,variables:{currentFontSize:this.variables.currentFontSize,expires:this.variables.expires}};localStorage.setItem(this.settings.storageKey,JSON.stringify(t))}},setFromLocalStorage:function(){if(\"1\"===PojoA11yOptions.enable_save){var t=JSON.parse(localStorage.getItem(this.settings.storageKey));if(t){var e=new Date;if(t.variables.expires<e)localStorage.removeItem(this.settings.storageKey);else{var o=t.actions;for(var i in 120<t.variables.currentFontSize&&(t.variables.currentFontSize-=10),n.extend(this.variables,t.variables),o)o.hasOwnProperty(i)&&o[i]&&this.activateButton(i,!1)}}}},handleGlobalOptions:function(){\"1\"===PojoA11yOptions.focusable&&this.cache.$body.addClass(\"pojo-a11y-focusable\"),\"1\"===PojoA11yOptions.remove_link_target&&n('a[target=\"_blank\"]').attr(\"target\",\"\"),\"1\"===PojoA11yOptions.add_role_links&&n(\"a\").attr(\"role\",\"link\")},init:function(){this.cacheElements(),this.buildElements(),this.bindEvents(),this.handleGlobalOptions()}};n(o).ready(function(t){i.init(),i.setFromLocalStorage()})}(jQuery,window,document);"; 2var mod_pagespeed_nfhkf_6bCF = "/*! This file is auto-generated */\n!function(e){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"jquery\")):jQuery&&!jQuery.fn.hoverIntent&&e(jQuery)}(function(f){\"use strict\";function u(e){return\"function\"==typeof e}var i,r,v={interval:100,sensitivity:6,timeout:0},s=0,a=function(e){i=e.pageX,r=e.pageY},p=function(e,t,n,o){if(Math.sqrt((n.pX-i)*(n.pX-i)+(n.pY-r)*(n.pY-r))<o.sensitivity)return t.off(n.event,a),delete n.timeoutId,n.isActive=!0,e.pageX=i,e.pageY=r,delete n.pX,delete n.pY,o.over.apply(t[0],[e]);n.pX=i,n.pY=r,n.timeoutId=setTimeout(function(){p(e,t,n,o)},o.interval)};f.fn.hoverIntent=function(e,t,n){function o(e){var u=f.extend({},e),r=f(this),v=((t=r.data(\"hoverIntent\"))||r.data(\"hoverIntent\",t={}),t[i]),t=(v||(t[i]=v={id:i}
2),v.timeoutId&&(v.timeoutId=clearTimeout(v.timeoutId)),v.event=\"mousemove.hoverIntent.hoverIntent\"+i);\"mouseenter\"===e.type?v.isActive||(v.pX=u.pageX,v.pY=u.pageY,r.off(t,a).on(t,a),v.timeoutId=setTimeout(function(){p(u,r,v,d)},d.interval)):v.isActive&&(r.off(t,a),v.timeoutId=setTimeout(function(){var e,t,n,o,i;e=u,t=r,n=v,o=d.out,(i=t.data(\"hoverIntent\"))&&delete i[n.id],o.apply(t[0],[e])},d.timeout))}var i=s++,d=f.extend({},v);f.isPlainObject(e)?(d=f.extend(d,e),u(d.out)||(d.out=d.over)):d=u(t)?f.extend(d,{over:e,out:t,selector:n}):f.extend(d,{over:e,out:e,selector:t});return this.on({\"mouseenter.hoverIntent\":o,\"mouseleave.hoverIntent\":o},d.selector)}});"; 3var mod_pagespeed_oScy17UEL3 = "/*\n * jQuery Superfish Menu Plugin - v1.7.9\n * Copyright (c) 2016 Joel Birch\n * {WPHOOT modified}\n *\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n */\n\n;(function ($, w) {\n \"use strict\";\n\n var methods = (function () {\n // private properties and methods go here\n var c = {\n bcClass: 'sf-breadcrumb',\n menuClass: 'sf-js-enabled',\n anchorClass: 'sf-with-ul',\n menuArrowClass: 'sf-arrows'\n },\n ios = (function () {\n var ios = /^(?![\\w\\W]*Windows Phone)[\\w\\W]*(iPhone|iPad|iPod)/i.test(navigator.userAgent);\n if (ios) {\n // tap anywhere on iOS to unfocus a submenu\n $('html').css('cursor', 'pointer').on('click', $.noop);\n }\n return ios;\n })(),\n wp7 = (function () {\n var style = document.documentElement.style;\n return ('behavior' in style && 'fill' in style && /iemobile/i.test(navigator.userAgent));\n })(),\n unprefixedPointerEvents = (function () {\n return (!!w.PointerEvent);\n })(),\n toggleMenuClasses = function ($menu, o, add) {\n var classes = c.menuClass,\n method;\n if (o.cssArrows) {\n classes += ' ' + c.menuArrowClass;\n }\n method = (add) ? 'addClass' : 'removeClass';\n $menu[method](classes);\n },\n setPathToCurrent = function ($menu, o) {\n return $menu.find('li.' + o.pathClass).slice(0, o.pathLevels)\n .addClass(o.hoverClass + ' ' + c.bcClass)\n .filter(function () {\n return ($(this).children(o.popUpSelector).hide().show().length);\n }).removeClass(o.pathClass);\n },\n toggleAnchorClass = function ($li, add) {\n var method = (add) ? 'addClass' : 'removeClass';
3\n $li.children('a')[method](c.anchorClass);\n },\n toggleTouchAction = function ($menu) {\n var msTouchAction = $menu.css('ms-touch-action');\n var touchAction = $menu.css('touch-action');\n touchAction = touchAction || msTouchAction;\n touchAction = (touchAction === 'pan-y') ? 'auto' : 'pan-y';\n $menu.css({\n 'ms-touch-action': touchAction,\n 'touch-action': touchAction\n });\n },\n getMenu = function ($el) {\n return $el.closest('.' + c.menuClass);\n },\n getOptions = function ($el) {\n return getMenu($el).data('sfOptions');\n },\n over = function () {\n var $this = $(this),\n o = getOptions($this);\n clearTimeout(o.sfTimer);\n $this.siblings().superfish('hide').end().superfish('show');\n },\n close = function (o) {\n o.retainPath = ($.inArray(this[0], o.$path) > -1);\n this.superfish('hide');\n\n if (!this.parents('.' + o.hoverClass).length) {\n o.onIdle.call(getMenu(this));\n if (o.$path.length) {\n $.proxy(over, o.$path)();\n }\n }\n },\n out = function () {\n var $this = $(this),\n o = getOptions($this);\n clearTimeout(o.sfTimer);\n o.sfTimer = setTimeout($.proxy(close, $this, o), o.delay);\n },\n touchHandler = function (e) {\n var $this = $(this),\n o = getOptions($this),\n $ul = $this.siblings(e.data.popUpSelector);\n\n if (o.onHandleTouch.call($ul) === false) {\n return this;\n }\n\n if ($ul.length > 0 && $ul.is(':hidden')) {\n $this.one('click.superfish', false);\n if (e.type === 'MSPointerDown' || e.type === 'pointerdown') {\n $this.trigger('focus');\n } else {\n $.proxy(over, $this.parent('li'))();\n }\n }\n },\n applyHandlers = function ($menu, o) {\n var targets = 'li:has(' + o.popUpSelector + ')';\n if ($.fn.hoverIntent && !o.disableHI) {\n $menu.hoverIntent(over, out, targets);\n }\n else {\n $menu\n .on('mouseenter.superfish', targets, over)\n .on('mouseleave.superfish', targets, out);\n }\n var touchevent = 'MSPointerDown.superfish';\n if (unprefixedPointerEvents) {\n touchevent = 'pointerdown.superfish';\n }\n if (!ios) {\n touchevent += ' touchend.superfish';\n }\n if (wp7) {\n touchevent += ' mousedown.superfish';\n }\n $menu\n .on('focusin.superfish', 'li', over)\n .on('focusout.superfish', 'li', out)\n .on(touchevent, 'a', o, touchHandler);\n };\n\n return {\n // public methods\n hide: function (instant) {\n if (this.length) {\n var $this = this,\n o = getOptions($this);\n if (!o) {\n return this;\n }\n var not = (o.retainPath === true) ? o.$path : '',\n $ul = $this.find('li.' + o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector),\n speed = o.speedOut;\n\n if (instant) {\n $ul.show();\n speed = 0;\n }\n o.retainPath = false;\n\n if (o.onBeforeHide.call($ul) === false) {\n return this;\n }\n\n $ul.stop(true, true).animate(o.animationOut, speed, function () {\n var $this = $(this);\n o.onHide.call($this);\n });\n }\n return this;\n },\n show: function () {\n var o = getOptions(this);\n if (!o) {\n return this;\n }\n var $this = this.addClass(o.hoverClass),\n $ul = $this.children(o.popUpSelector);\n\n if (o.onBeforeShow.call($ul) === false) {\n return this;\n }\n\n $ul.stop(true, true).animate(o.animation, o.speed, function () {\n o.onShow.call($ul);\n });\n return this;\n },\n destroy: function () {\n return this.each(function () {\n var $this = $(this),\n o = $this.data('sfOptions'),\n $hasPopUp;\n if (!o) {\n return false;\n }\n $hasPopUp = $this.find(o.popUpSelector).parent('li');\n clearTimeout(o.sfTimer);\n toggleMenuClasses($this, o);\n toggleAnchorClass($hasPopUp);\n toggleTouchAction($this);\n // remove event handlers\n $this.off('.superfish').off('.hoverIntent');\n // clear animation's inline display style\n $hasPopUp.children(o.popUpSelector).attr('style', function (i, style) {\n return style.replace(/display[^;]+;?/g, '');\n });\n // reset 'current' path classes\n o.$path.removeClass(o.hoverClass + ' ' + c.bcClass).addClass(o.pathClass);\n $this.find('.' + o.hoverClass).removeClass(o.hoverClass);\n o.onDestroy.call($this);\n $this.removeData('sfOptions');\n });\n },\n init: function (op) {\n return this.each(function () {\n var $this = $(this);\n if ($this.data('sfOptions')) {\n return false;\n }\n var o = $.extend({}, $.fn.superfish.defaults, op),\n $hasPopUp = $this.find(o.popUpSelector).parent('li');\n o.$path = setPathToCurrent($this, o);\n\n $this.data('sfOptions', o);\n\n toggleMenuClasses($this, o, true);\n toggleAnchorClass($hasPopUp, true);\n toggleTouchAction($this);\n applyHandlers($this, o);\n\n $hasPopUp.not('.' + c.bcClass).superfish('hide', true);\n\n o.onInit.call(this);\n });\n }\n };\n })();\n\n $.fn.superfish = function (method, args) {\n if (methods[method]) {\n return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));\n }\n else if (typeof method === 'object' || ! method) {\n return methods.init.apply(this, arguments);\n }\n else {\n return $.error('Method ' + method + ' does not exist on jQuery.fn.superfish');\n }\n };\n\n $.fn.superfish.defaults = {\n popUpSelector: 'ul,.sf-mega', // within menu context\n hoverClass: 'sfHover',\n pathClass: 'overrideThisToUse',\n pathLevels: 1,\n delay: 800,\n animation: {opacity: 'show'},\n animationOut: {opacity: 'hide'},\n speed: 'normal',\n speedOut: 'fast',\n cssArrows: true,\n disableHI: false,\n onInit: $.noop,\n onBeforeShow: $.noop,\n onShow: $.noop,\n onBeforeHide: $.noop,\n onHide: $.noop,\n onIdle: $.noop,\n onDestroy: $.noop,\n onHandleTouch: $.noop\n };\n\n})(jQuery, window);\n"; 4var mod_pagespeed_6wyiTS2X$T = "/*! lightslider - v1.1.2 - 2015-04-14\n* {WPHOOT modified}\n* https://github.com/sachinchoolur/lightslider\n* Copyright (c) 2015 Sachin N; Licensed MIT */\n(function ($, undefined) {\n 'use strict';\n var defaults = {\n item: 3,\n autoWidth: false,\n slideMove: 1,\n slideMargin: 10,\n addClass: '',\n mode: '
4slide',\n useCSS: true,\n cssEasing: 'ease', //'cubic-bezier(0.25, 0, 0.25, 1)',\n easing: 'linear', //'for jquery animation',//\n speed: 400, //ms'\n auto: false,\n loop: false,\n slideEndAnimation: true,\n pause: 2000,\n keyPress: false,\n controls: true,\n prevHtml: '',\n nextHtml: '',\n rtl: false,\n adaptiveHeight: false,\n vertical: false,\n verticalHeight: 500,\n vThumbWidth: 100,\n thumbItem: 10,\n pager: true,\n gallery: false,\n galleryMargin: 5,\n thumbMargin: 5,\n currentPagerPosition: 'middle',\n enableTouch: true,\n enableDrag: true,\n freeMove: true,\n swipeThreshold: 40,\n responsive: [],\n /* jshint ignore:start */\n onBeforeStart: function ($el) {},\n onSliderLoad: function ($el) {},\n onBeforeSlide: function ($el, scene) {},\n onAfterSlide: function ($el, scene) {},\n onBeforeNextSlide: function ($el, scene) {},\n onBeforePrevSlide: function ($el, scene) {}\n /* jshint ignore:end */\n };\n $.fn.lightSlider = function (options) {\n if (this.length === 0) {\n return this;\n }\n\n if (this.length > 1) {\n this.each(function () {\n $(this).lightSlider(options);\n });\n return this;\n }\n\n var plugin = {},\n settings = $.extend(true, {}, defaults, options),\n settingsTemp = {},\n $el = this;\n plugin.$el = this;\n\n if (settings.mode === 'fade') {\n settings.vertical = false;\n }\n var $children = $el.children(),\n windowW = $(window).width(),\n breakpoint = null,\n resposiveObj = null,\n length = 0,\n w = 0,\n on = false,\n elSize = 0,\n $slide = '',\n scene = 0,\n property = (settings.vertical === true) ? 'height' : 'width',\n gutter = (settings.vertical === true) ? 'margin-bottom' : 'margin-right',\n slideValue = 0,\n pagerWidth = 0,\n slideWidth = 0,\n thumbWidth = 0,\n interval = null,\n isTouch = ('ontouchstart' in document.documentElement);\n var refresh = {};\n\n refresh.chbreakpoint = function () {\n windowW = $(window).width();\n if (settings.responsive.length) {\n var item;\n if (settings.autoWidth === false) {\n item = settings.item;\n }\n if (windowW < settings.responsive[0].breakpoint) {\n for (var i = 0; i < settings.responsive.length; i++) {\n if (windowW < settings.responsive[i].breakpoint) {\n breakpoint = settings.responsive[i].breakpoint;\n resposiveObj = settings.responsive[i];\n }\n }\n }\n if (typeof resposiveObj !== 'undefined' && resposiveObj !== null) {\n for (var j in resposiveObj.settings) {\n if (resposiveObj.settings.hasOwnProperty(j)) {\n if (typeof settingsTemp[j] === 'undefined' || settingsTemp[j] === null) {\n settingsTemp[j] = settings[j];\n }\n settings[j] = resposiveObj.settings[j];\n }\n }\n }\n if (!$.isEmptyObject(settingsTemp) && windowW > settings.responsive[0].breakpoint) {\n for (var k in settingsTemp) {\n if (settingsTemp.hasOwnProperty(k)) {\n settings[k] = settingsTemp[k];\n }\n }\n }\n if (settings.autoWidth === false) {\n if (slideValue > 0 && slideWidth > 0) {\n if (item !== settings.item) {\n scene = Math.round(sli
4deValue / ((slideWidth + settings.slideMargin) * settings.slideMove));\n }\n }\n }\n }\n };\n\n refresh.calSW = function () {\n if (settings.autoWidth === false) {\n slideWidth = (elSize - ((settings.item * (settings.slideMargin)) - settings.slideMargin)) / settings.item;\n }\n };\n\n refresh.calWidth = function (cln) {\n var ln = cln === true ? $slide.find('.lslide').length : $children.length;\n if (settings.autoWidth === false) {\n w = ln * (slideWidth + settings.slideMargin);\n } else {\n w = 0;\n for (var i = 0; i < ln; i++) {\n w += (parseInt($children.eq(i).width()) + settings.slideMargin);\n }\n }\n return w;\n };\n plugin = {\n doCss: function () {\n var support = function () {\n var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];\n var root = document.documentElement;\n for (var i = 0; i < transition.length; i++) {\n if (transition[i] in root.style) {\n return true;\n }\n }\n };\n if (settings.useCSS && support()) {\n return true;\n }\n return false;\n },\n keyPress: function () {\n if (settings.keyPress) {\n $(document).on('keyup.lightslider', function (e) {\n if (!$(':focus').is('input, textarea')) {\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n if (e.keyCode === 37) {\n $el.goToPrevSlide();\n clearInterval(interval);\n } else if (e.keyCode === 39) {\n $el.goToNextSlide();\n clearInterval(interval);\n }\n }\n });\n }\n },\n controls: function () {\n if (settings.controls) {\n $el.after('<div class=\"lSAction\"><a class=\"lSPrev\">' + settings.prevHtml + '</a><a class=\"lSNext\">' + settings.nextHtml + '</a></div>');\n if (!settings.autoWidth) {\n if (length <= settings.item) {\n $slide.find('.lSAction').hide();\n }\n } else {\n if (refresh.calWidth(false) < elSize) {\n $slide.find('.lSAction').hide();\n }\n }\n $slide.find('.lSAction a').on('click', function (e) {\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n if ($(this).attr('class') === 'lSPrev') {\n $el.goToPrevSlide();\n } else {\n $el.goToNextSlide();\n }\n clearInterval(interval);\n return false;\n });\n }\n },\n initialStyle: function () {\n var $this = this;\n if (settings.mode === 'fade') {\n settings.autoWidth = false;\n settings.slideEndAnimation = false;\n }\n if (settings.auto) {\n settings.slideEndAnimation = false;\n }\n if (settings.autoWidth) {\n settings.slideMove = 1;\n settings.item = 1;\n }\n if (settings.loop) {\n settings.slideMove = 1;\n settings.freeMove = false;\n }\n settings.onBeforeStart.call(this, $el);\n refresh.chbreakpoint();\n $el.addClass('lightSlider').wrap('<div class=\"lSSlideOuter ' + settings.addClass + '\"><div class=\"lSSlideWrapper\"></div></div>');\n $slide = $el.parent('.lSSlideWrapper');\n if (settings.rtl === true) {\n $slide.parent().addClass('lSrtl');\n }\n if (settings.vertical) {\n $slide.parent().addClass('vertical');\n elSize = settings.verticalHeight;\n $slide.css('height', elSize + 'px');\n } else {\n elSize = $el.outerWidth();\n }\n $children.addClass('lslide');\n if (settings.loop === true && settings.mode === 'slide') {\n refresh.calSW();\n refresh.clone = function () {\n if (refresh.calWidth(true) > elSize) {\n /**/\n var tWr = 0,\n tI = 0;\n for (var k = 0; k < $children.length; k++) {\n tWr += (parseInt($el.find('.lslide').eq(k).width()) + settings.slideMargin);\n tI++;\n if (tWr >= (elSize + settings.slideMargin)) {\n break;\n }\n }\n var tItem = settings.autoWidth === true ? tI : settings.item;\n\n /**/\n if (tItem < $el.find('.clone.left').length) {\n for (var i = 0; i < $el.find('.clone.left').length - tItem;
4 i++) {\n $children.eq(i).remove();\n }\n }\n if (tItem < $el.find('.clone.right').length) {\n for (var j = $children.length - 1; j > ($children.length - 1 - $el.find('.clone.right').length); j--) {\n scene--;\n $children.eq(j).remove();\n }\n }\n /**/\n for (var n = $el.find('.clone.right').length; n < tItem; n++) {\n $el.find('.lslide').eq(n).clone().removeClass('lslide').addClass('clone right').appendTo($el);\n scene++;\n }\n for (var m = $el.find('.lslide').length - $el.find('.clone.left').length; m > ($el.find('.lslide').length - tItem); m--) {\n $el.find('.lslide').eq(m - 1).clone().removeClass('lslide').addClass('clone left').prependTo($el);\n }\n $children = $el.children();\n } else {\n if ($children.hasClass('clone')) {\n $el.find('.clone').remove();\n $this.move($el, 0);\n }\n }\n };\n refresh.clone();\n }\n refresh.sSW = function () {\n length = $children.length;\n if (settings.rtl === true && settings.vertical === false) {\n gutter = 'margin-left';\n }\n if (settings.autoWidth === false) {\n $children.css(property, slideWidth + 'px');\n }\n $children.css(gutter, settings.slideMargin + 'px');\n w = refresh.calWidth(false);\n $el.css(property, w + 'px');\n if (settings.loop === true && settings.mode === 'slide') {\n if (on === false) {\n scene = $el.find('.clone.left').length;\n }\n }\n };\n refresh.calL = function () {\n $children = $el.children();\n length = $children.length;\n };\n if (this.doCss()) {\n $slide.addClass('usingCss');\n }\n refresh.calL();\n if (settings.mode === 'slide') {\n refresh.calSW();\n refresh.sSW();\n if (settings.loop === true) {\n slideValue = $this.slideValue();\n this.move($el, slideValue);\n }\n if (settings.vertical === false) {\n this.setHeight($el, false);\n }\n\n } else {\n this.setHeight($el, true);\n $el.addClass('lSFade');\n if (!this.doCss()) {\n $children.not('.active').css('display', 'none');\n }\n }\n if (settings.loop === true && settings.mode === 'slide') {\n $children.eq(scene).addClass('active');\n } else {\n $children.first().addClass('active');\n }\n },\n pager: function () {\n var $this = this;\n refresh.createPager = function () {\n thumbWidth = (elSize - ((settings.thumbItem * (settings.thumbMargin)) - settings.thumbMargin)) / settings.thumbItem;\n var $children = $slide.find('.lslide');\n var length = $slide.find('.lslide').length;\n var i = 0,\n pagers = '',\n v = 0;\n for (i = 0; i < length;
4 i++) {\n if (settings.mode === 'slide') {\n // calculate scene * slide value\n if (!settings.autoWidth) {\n v = i * ((slideWidth + settings.slideMargin) * settings.slideMove);\n } else {\n v += ((parseInt($children.eq(i).width()) + settings.slideMargin) * settings.slideMove);\n }\n }\n var thumb = $children.eq(i * settings.slideMove).attr('data-thumb');\n if (settings.gallery === true) {\n pagers += '<li style=\"width:100%;' + property + ':' + thumbWidth + 'px;' + gutter + ':' + settings.thumbMargin + 'px\"><a href=\"#\"><img src=\"' + thumb + '\" /></a></li>';\n } else {\n /* WPHOOT MOD : https://wphoot.com/support/topic/slider-and-google-search-results-page/ */\n pagers += '<li><a href=\"#\"></a></li>';\n // pagers += '<li><a href=\"#\">' + (i + 1) + '</a></li>';\n /* WPHOOT MOD END */\n }\n if (settings.mode === 'slide') {\n if ((v) >= w - elSize - settings.slideMargin) {\n i = i + 1;\n var minPgr = 2;\n if (settings.autoWidth) {\n pagers += '<li><a href=\"#\">' + (i + 1) + '</a></li>';\n minPgr = 1;\n }\n if (i < minPgr) {\n pagers = null;\n $slide.parent().addClass('noPager');\n } else {\n $slide.parent().removeClass('noPager');\n }\n break;\n }\n }\n }\n var $cSouter = $slide.parent();\n $cSouter.find('.lSPager').html(pagers); \n if (settings.gallery === true) {\n if (settings.vertical === true) {\n // set Gallery thumbnail width\n $cSouter.find('.lSPager').css('width', settings.vThumbWidth + 'px');\n }\n pagerWidth = (i * (settings.thumbMargin + thumbWidth)) + 0.5;\n $cSouter.find('.lSPager').css({\n property: pagerWidth + 'px',\n 'transition-duration': settings.speed + 'ms'\n });\n if (settings.vertical === true) {\n $slide.parent().css('padding-right', (settings.vThumbWidth + settings.galleryMargin) + 'px');\n }\n $cSouter.find('.lSPager').css(property, pagerWidth + 'px');\n }\n var $pager = $cSouter.find('.lSPager').find('li');\n $pager.first().addClass('active');\n $pager.on('click', function () {\n if (settings.loop === true && settings.mode === 'slide') {\n scene = scene + ($pager.index(this) - $cSouter.find('.lSPager').find('li.active').index());\n } else {\n scene = $pager.index(this);\n }\n $el.mode(false);\n if (settings.gallery === true) {\n $this.slideThumb();\n }\n clearInterval(interval);\n return false;\n });\n };\n if (settings.pager) {\n var cl = 'lSpg';\n if (settings.gallery) {\n cl = 'lSGallery';\n }\n $slide.after('<ul class=\"lSPager ' + cl + '\"></ul>');\n var gMargin = (settings.vertical) ? 'margin-left' : 'margin-top';\n $slide.parent().find('.lSPager').css(gMargin, settings.galleryMargin + 'px');\n refresh.createPager();\n }\n\n setTimeout(function () {\n refresh.init();\n }, 0);\n },\n setHeight: function (ob, fade) {\n var obj = null,\n $this = this;\n if (settings.loop) {\n obj = ob.children('.lslide ').first();\n } else {\n obj = ob.children().first();\n }\n var setCss = function () {\n var tH = obj.outerHeight(),\
4n tP = 0,\n tHT = tH;\n if (fade) {\n tH = 0;\n tP = ((tHT) * 100) / elSize;\n }\n ob.css({\n 'height': tH + 'px',\n 'padding-bottom': tP + '%'\n });\n };\n setCss();\n /* WPHOOT MOD : Unreliable load https://api.jquery.com/load-event/ */\n /* @credit http://stackoverflow.com/questions/3877027 */\n if (obj.find('img').length > 0) {\n obj.find('img').one(\"load\",function () {\n // if (obj.has('img')) {\n // obj.find('img').load(function () {\n setTimeout(function () {\n setCss();\n if (!interval) {\n $this.auto();\n }\n }, 100);\n }).each(function() { if(this.complete) $(this).trigger('load'); });\n // });\n /* WPHOOT MOD END */\n }
4else{\n if (!interval) {\n $this.auto();\n }\n }\n },\n active: function (ob, t) {\n if (this.doCss() && settings.mode === 'fade') {\n $slide.addClass('on');\n }\n var sc = 0;\n if (scene * settings.slideMove < length) {\n ob.removeClass('active');\n if (!this.doCss() && settings.mode === 'fade' && t === false) {\n ob.fadeOut(settings.speed);\n }\n if (t === true) {\n sc = scene;\n } else {\n sc = scene * settings.slideMove;\n }\n //t === true ? sc = scene : sc = scene * settings.slideMove;\n var l, nl;\n if (t === true) {\n l = ob.length;\n nl = l - 1;\n if (sc + 1 >= l) {\n sc = nl;\n }\n }\n if (settings.loop === true && settings.mode === 'slide') {\n //t === true ? sc = scene - $el.find('.clone.left').length : sc = scene * settings.slideMove;\n if (t === true) {\n sc = scene - $el.find('.clone.left').length;\n } else {\n sc = scene * settings.slideMove;\n }\n if (t === true) {\n l = ob.length;\n nl = l - 1;\n if (sc + 1 === l) {\n sc = nl;\n } else if (sc + 1 > l) {\n sc = 0;\n }\n }\n }\n\n if (!this.doCss() && settings.mode === 'fade' && t === false) {\n ob.eq(sc).fadeIn(settings.speed);\n }\n ob.eq(sc).addClass('active');\n } else {\n ob.removeClass('active');\n ob.eq(ob.length - 1).addClass('active');\n if (!this.doCss() && settings.mode === 'fade' && t === false) {\n ob.fadeOut(settings.speed);\n ob.eq(sc).fadeIn(settings.speed);\n }\n }\n },\n move: function (ob, v) {\n if (settings.rtl === true) {\n v = -v;\n }\n if (this.doCss()) {\n if (settings.vertical === true) {\n ob.css({\n 'transform': 'translate3d(0px, ' + (-v) + 'px, 0px)',\n '-webkit-transform': 'translate3d(0px, ' + (-v) + 'px, 0px)'\n });\n } else {\n ob.css({\n 'transform': 'translate3d(' + (-v) + 'px, 0px, 0px)',\n '-webkit-transform': 'translate3d(' + (-v) + 'px, 0px, 0px)',\n });\n }\n } else {\n if (settings.vertical === true) {\n ob.css('position', 'relative').animate({\n top: -v + 'px'\n }, settings.speed, settings.easing);\n } else {\n ob.css('position', 'relative').animate({\n left: -v + 'px'\n }, settings.speed, settings.easing);\n }\n }\n var $thumb = $slide.parent().find('.lSPager').find('li');\n this.active($thumb, true);\n /* WPHOOT MOD */\n // We use setInterval instead of setTimeout(function(){$(window).trigger('hootSliderAnimated');},400);\n var triggerCount = 1, triggerEvent = setInterval(function(){\n $(window).trigger('hootSliderAnimated');\n triggerCount++;\n if ( triggerCount == 5 ) clearInterval(triggerEvent);\n }, 100); // total 400ms i.e. defaults.speed set above (options)\n /* WPHOOT MOD END */\n },\n fade: function () {\n this.active($children, false);\n var $thumb = $slide.parent().find('.lSPager').find('li');\n this.active($thumb, true);\n },\n slide: function () {\n var $this = this;\n refresh.calSlide = function () {\n if (w > elSize) {\n slideValue = $this.slideValue();\n $this.active($children, false);\n if ((slideValue) > w - elSize - settings.slideMargin) {\n slideValue = w - elSize - settings.slideMargin;\n } else if (slideValue < 0) {\n slideValue = 0;\n }\n $this.move($el, slideValue);\n if (settings.loop === true && settings.mode === 'slide') {\n if (scene >
4= (length - ($el.find('.clone.left').length / settings.slideMove))) {\n $this.resetSlide($el.find('.clone.left').length);\n }\n if (scene === 0) {\n $this.resetSlide($slide.find('.lslide').length);\n }\n }\n }\n };\n refresh.calSlide();\n },\n resetSlide: function (s) {\n var $this = this;\n $slide.find('.lSAction a').addClass('disabled');\n setTimeout(function () {\n scene = s;\n $slide.css('transition-duration', '0ms');\n slideValue = $this.slideValue();\n $this.active($children, false);\n plugin.move($el, slideValue);\n setTimeout(function () {\n $slide.css('transition-duration', settings.speed + 'ms');\n $slide.find('.lSAction a').removeClass('disabled');\n }, 50);\n }, settings.speed + 100);\n },\n slideValue: function () {\n var _sV = 0;\n if (settings.autoWidth === false) {\n _sV = scene * ((slideWidth + settings.slideMargin) * settings.slideMove);\n } else {\n _sV = 0;\n for (var i = 0; i < scene; i++) {\n _sV += (parseInt($children.eq(i).width()) + settings.slideMargin);\n }\n }\n return _sV;\n },\n slideThumb: function () {\n var position;\n switch (settings.currentPagerPosition) {\n case 'left':\n position = 0;\n break;\n case 'middle':\n position = (elSize / 2) - (thumbWidth / 2);\n break;\n case 'right':\n position = elSize - thumbWidth;\n }\n var sc = scene - $el.find('.clone.left').length;\n var $pager = $slide.parent().find('.lSPager');\n if (settings.mode === 'slide' && settings.loop === true) {\n if (sc >= $pager.children().length) {\n sc = 0;\n } else if (sc < 0) {\n sc = $pager.children().length;\n }\n }\n var thumbSlide = sc * ((thumbWidth + settings.thumbMargin)) - (position);\n if ((thumbSlide + elSize) > pagerWidth) {\n thumbSlide = pagerWidth - elSize - settings.thumbMargin;\n }\n if (thumbSlide < 0) {\n thumbSlide = 0;\n }\n this.move($pager, thumbSlide);\n },\n auto: function () {\n if (settings.auto) {\n interval = setInterval(function () {\n $el.goToNextSlide();\n }, settings.pause);\n }\n },\n\n touchMove: function (endCoords, startCoords) {\n $slide.css('transition-duration', '0ms');\n if (settings.mode === 'slide') {\n var distance = endCoords - startCoords;\n var swipeVal = slideValue - distance;\n if ((swipeVal) >= w - elSize - settings.slideMargin) {\n if (settings.freeMove === false) {\n swipeVal = w - elSize - settings.slideMargin;\n } else {\n var swipeValT = w - elSize - settings.slideMargin;\n swipeVal = swipeValT + ((swipeVal - swipeValT) / 5);\n\n }\n } else if (swipeVal < 0) {\n if (settings.freeMove === false) {\n swipeVal = 0;\n } else {\n swipeVal = swipeVal / 5;\n }\n }\n this.move($el, swipeVal);\n }\n },\n\n touchEnd: function (distance) {\n $slide.css('transition-duration', settings.speed + 'ms');\n clearInterval(interval);\n if (settings.mode === 'slide') {\n var mxVal = false;\n var _next = true;\n slideValue = slideValue - distance;\n if ((slideValue) > w - elSize - settings.slideMargin) {\n slideValue = w - elSize - settings.slideMargin;\n if (settings.autoWidth === false) {\n mxVal = true;\n }\n } else if (slideValue < 0) {\n slideValue = 0;\n }\n var gC = function (next) {\n var ad = 0;\n if (!mxVal) {\n if (next) {\n ad = 1;\n }\n }\n if (!settings.autoWidth) {\n var num = slideValue / ((slideWidth + settings.slideMargin) *
4settings.slideMove);\n scene = parseInt(num) + ad;\n if (slideValue >= (w - elSize - settings.slideMargin)) {\n if (num % 1 !== 0) {\n scene++;\n }\n }\n } else {\n var tW = 0;\n for (var i = 0; i < $children.length; i++) {\n tW += (parseInt($children.eq(i).width()) + settings.slideMargin);\n scene = i + ad;\n if (tW >= slideValue) {\n break;\n }\n }\n }\n };\n if (distance >= settings.swipeThreshold) {\n gC(false);\n _next = false;\n } else if (distance <= -settings.swipeThreshold) {\n gC(true);\n _next = false;\n }\n $el.mode(_next);\n this.slideThumb();\n } else {\n if (distance >= settings.swipeThreshold) {\n $el.goToPrevSlide();\n } else if (distance <= -settings.swipeThreshold) {\n $el.goToNextSlide();\n }\n }\n },\n\n\n\n enableDrag: function () {\n var $this = this;\n if (!isTouch) {\n var startCoords = 0,\n endCoords = 0,\n isDraging = false;\n $slide.find('.lightSlider').addClass('lsGrab');\n $slide.on('mousedown', function (e) {\n if (w < elSize) {\n if (w !== 0) {\n return false;\n }\n }\n if ($(e.target).attr('class') !== ('lSPrev') && $(e.target).attr('class') !== ('lSNext')) {\n startCoords = (settings.vertical === true) ? e.pageY : e.pageX;\n isDraging = true;\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n $slide.scrollLeft += 1;\n $slide.scrollLeft -= 1;\n // *\n $slide.find('.lightSlider').removeClass('lsGrab').addClass('lsGrabbing');\n clearInterval(interval);\n }\n });\n $(window).on('mousemove', function (e) {\n if (isDraging) {\n endCoords = (settings.vertical === true) ? e.pageY : e.pageX;\n $this.touchMove(endCoords, startCoords);\n }\n });\n $(window).on('mouseup', function (e) {\n if (isDraging) {\n $slide.find('.lightSlider').removeClass('lsGrabbing').addClass('lsGrab');\n isDraging = false;\n endCoords = (settings.vertical === true) ? e.pageY : e.pageX;\n var distance = endCoords - startCoords;\n if (Math.abs(distance) >= settings.swipeThreshold) {\n $(window).on('click.ls', function (e) {\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n e.stopImmediatePropagation();\n e.stopPropagation();\n $(window).off('click.ls');\n });\n }\n\n $this.touchEnd(distance);\n\n }\n });\n }\n },\n\n\n\n\n enableTouch: function () {\n var $this = this;\n if (isTouch) {\n var startCoords = {},\n endCoords = {};\n $slide.on('touchstart', function (e) {\n endCoords = e.originalEvent.targetTouches[0];\n startCoords.pageX = e.originalEvent.targetTouches[0].pageX;\n startCoords.pageY = e.originalEvent.targetTouches[0].pageY;\n clearInterval(interval);\n });\n $slide.on('touchmove', function (e) {\n if (w < elSize) {\n if (w !== 0) {\n return false;\n }\n }\n var orig = e.originalEvent;\n endCoords = orig.targetTouches[0];\n var xMovement = Math.abs(endCoords.pageX
4- startCoords.pageX);\n var yMovement = Math.abs(endCoords.pageY - startCoords.pageY);\n if (settings.vertical === true) {\n if ((yMovement * 3) > xMovement) {\n e.preventDefault();\n }\n $this.touchMove(endCoords.pageY, startCoords.pageY);\n } else {\n if ((xMovement * 3) > yMovement) {\n e.preventDefault();\n }\n $this.touchMove(endCoords.pageX, startCoords.pageX);\n }\n\n });\n $slide.on('touchend', function () {\n if (w < elSize) {\n if (w !== 0) {\n return false;\n }\n }\n var distance;\n if (settings.vertical === true) {\n distance = endCoords.pageY - startCoords.pageY;\n } else {\n distance = endCoords.pageX
4- startCoords.pageX;\n }\n $this.touchEnd(distance);\n });\n }\n },\n build: function () {\n var $this = this;\n $this.initialStyle();\n if (this.doCss()) {\n\n if (settings.enableTouch === true) {\n $this.enableTouch();\n }\n if (settings.enableDrag === true) {\n $this.enableDrag();\n }\n }\n $this.pager();\n $this.controls();\n $this.keyPress();\n }\n };\n plugin.build();\n refresh.init = function () {\n refresh.chbreakpoint();\n if (settings.vertical === true) {\n if (settings.item > 1) {\n elSize = settings.verticalHeight;\n } else {\n elSize = $children.outerHeight();\n }\n $slide.css('height', elSize + 'px');\n } else {\n elSize = $slide.outerWidth();\n }\n if (settings.loop === true && settings.mode === 'slide') {\n if(length>1)/* WPHOOT MOD */\n refresh.clone();\n }\n refresh.calL();\n if (settings.mode === 'slide') {\n $el.removeClass('lSSlide');\n }\n if (settings.mode === 'slide') {\n refresh.calSW();\n refresh.sSW();\n }\n setTimeout(function () {\n if (settings.mode === 'slide') {\n $el.addClass('lSSlide');\n }\n }, 1000);\n if (settings.pager) {\n refresh.createPager();\n }\n if (settings.adaptiveHeight === true && settings.vertical === false) {\n /* WPHOOT MOD: https://github.com/sachinchoolur/lightslider/issues/119 */\n // $el.css('height', $children.eq(scene).outerHeight(true));\n var adHeight = 0;\n for (var i = 0; i < settings.item; i++) {\n // check tallest slide in the viewport \n if ($children.eq(scene+i).outerHeight(true) > adHeight) {\n adHeight = $children.eq(scene+i).outerHeight(true)\n };\n };\n $el.css('height', adHeight);\n /* WPHOOT MOD END */\n }\n if (settings.adaptiveHeight === false) {\n if (settings.mode === 'slide') {\n if (settings.vertical === false) {\n plugin.setHeight($el, false);\n }\n } else {\n plugin.setHeight($el, true);\n }\n }\n if (settings.gallery === true) {\n plugin.slideThumb();\n }\n if (settings.mode === 'slide') {\n plugin.slide();\n }\n if (settings.autoWidth === false) {\n if ($children.length <= settings.item) {\n $slide.find('.lSAction').hide();\n } else {\n $slide.find('.lSAction').show();\n }\n } else {\n if ((refresh.calWidth(false) < elSize) && (w !== 0)) {\n $slide.find('.lSAction').hide();\n } else {\n $slide.find('.lSAction').show();\n }\n }\n };\n $el.goToPrevSlide = function () {\n if (scene > 0) {\n settings.onBeforePrevSlide.call(this, $el, scene);\n scene--;\n $el.mode(false);\n if (settings.gallery === true) {\n plugin.slideThumb();\n }\n } else {\n if (settings.loop === true) {\n settings.onBeforePrevSlide.call(this, $el, scene);\n if (settings.mode === 'fade') {\n var l = (length - 1);\n scene = parseInt(l / settings.slideMove);\n }\n $el.mode(false);\n if (settings.gallery === true) {\n plugin.slideThumb();\n }\n } else if (settings.slideEndAnimation === true) {\n $el.addClass('leftEnd');\n setTimeout(function () {\n $el.removeClass('leftEnd');\n }, 400);\n }\n }\n };\n $el.goToNextSlide = function () {\n var nextI = true;\n if (settings.mode === 'slide') {\n var _slideValue = plugin.slideValue();\n nextI = _slideValue < w - elSize - settings.slideMargin;\n }\n if (((scene * settings.slideMove) < length - settings.slideMove) && nextI) {\n settings.onBeforeNextSlide.call(this, $el, scene);\n scene++;\n $el.mode(false);\n if (settings.gallery === true) {\n plugin.slideThumb();\n }\n } else {\n if (settings.loop === true) {\n settings.onBeforeNextSlide.call(this, $el, scene);\n scene = 0;\n $el.mode(false);\n if (settings.gallery === true) {\n plugin.slideThumb();\n }\n } else if (settings.slideEndAnimation === true) {\n $el.addClass('rightEnd');\n setTimeout(function () {\n $el.removeClass('rightEnd');\n }, 400);\n }\n }\n };\n $el.mode = function (_touch) {\n if (settings.adaptiveHeight === true && settings.vertical === false) {\n /* WPHOOT MOD: https://github.com/sachinchoolur/lightslider/issues/119 */\n // $el.css('height', $children.eq(scene).outerHeight(true));\n var adHeight = 0;\n for (var i = 0; i < settings.item;
4 i++) {\n // check tallest slide in the viewport \n if ($children.eq(scene+i).outerHeight(true) > adHeight) {\n adHeight = $children.eq(scene+i).outerHeight(true)\n };\n };\n $el.css('height', adHeight);\n /* WPHOOT MOD END */\n }\n if (on === false) {\n if (settings.mode === 'slide') {\n if (plugin.doCss()) {\n $el.addClass('lSSlide');\n if (settings.speed !== '') {\n $slide.css('transition-duration', settings.speed + 'ms');\n }\n if (settings.cssEasing !== '') {\n $slide.css('transition-timing-function', settings.cssEasing);\n }\n }\n } else {\n if (plugin.doCss()) {\n if (settings.speed !== '') {\n $el.css('transition-duration', settings.speed + 'ms');\n }\n if (settings.cssEasing !== '') {\n $el.css('transition-timing-function', settings.cssEasing);\n }\n }\n }\n }\n if (!_touch) {\n settings.onBeforeSlide.call(this, $el, scene);\n }\n if (settings.mode === 'slide') {\n plugin.slide();\n } else {\n plugin.fade();\n }\n setTimeout(function () {\n if (!_touch) {\n settings.onAfterSlide.call(this, $el, scene);\n }\n }, settings.speed);\n on = true;\n };\n $el.play = function () {\n clearInterval(interval);\n $el.goToNextSlide();\n interval = setInterval(function () {\n $el.goToNextSlide();\n }, settings.pause);\n };\n $el.pause = function () {\n clearInterval(interval);\n };\n $el.refresh = function () {\n refresh.init();\n };\n $el.getCurrentSlideCount = function () {\n var sc = scene;\n if (settings.loop) {\n var ln = $slide.find('.lslide').length,\n cl = $el.find('.clone.left').length;\n if (scene <= cl - 1) {\n sc = ln + (scene - cl);\n } else if (scene >= (ln + cl)) {\n sc = scene - ln - cl;\n } else {\n sc = scene - cl;\n }\n }\n return sc + 1;\n };\n $el.getTotalSlideCount = function () {\n return $slide.find('.lslide').length;\n };\n $el.goToSlide = function (s) {\n if (settings.loop) {\n scene = (s + $el.find('.clone.left').length - 1);\n } else {\n scene = s;\n }\n $el.mode(false);\n if (settings.gallery === true) {\n plugin.slideThumb();\n }\n };\n setTimeout(function () {\n settings.onSliderLoad.call(this, $el);\n }, 10);\n $(window).on('resize orientationchange', function (e) {\n setTimeout(function () {\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n refresh.init();\n $(window).trigger('hootSliderAnimated'); // WPHOOT MOD\n }, 200);\n });\n return this;\n };\n}(jQuery));"; 5var mod_pagespeed_0eI3xIpqCg = "/*global jQuery */\n/*jshint browser:true */\n/*!\n* FitVids 1.1\n*\n* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the WTFPL license - http://sam.zoy.org/wtfpl/\n*\n*/\n\n;(function( $ ){\n\n 'use strict';\n\n $.fn.fitVids = function( options ) {\n var settings = {\n customSelector: null,\n ignore: null\n };\n\n if(!document.getElementById('fit-vids-style')) {\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n var head = document.head || document.getElementsByTagName('head')[0];\n var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';\n var div = document.createElement(\"div\");\n div.innerHTML = '<p>
5x</p><style id=\"fit-vids-style\">' + css + '</style>';\n head.appendChild(div.childNodes[1]);\n }\n\n if ( options ) {\n $.extend( settings, options );\n }\n\n return this.each(function(){\n var selectors = [\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n 'object',\n 'embed'\n ];\n\n if (settings.customSelector) {\n selectors.push(settings.customSelector);\n }\n\n var ignoreList = '.fitvidsignore';\n\n if(settings.ignore) {\n ignoreList = ignoreList + ', ' + settings.ignore;\n }\n\n var $allVideos = $(this).find(selectors.join(','));\n $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n $allVideos.each(function(){\n var $this = $(this);\n if($this.parents(ignoreList).length > 0) {\n return; // Disable FitVids on this video.\n }\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n {\n $this.attr('height', 9);\n $this.attr('width', 16);\n }\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n aspectRatio = height / width;\n if(!$this.attr('id')){\n var videoID = 'fitvid' + Math.floor(Math.random()*999999);\n $this.attr('id', videoID);\n }\n $this.wrap('<div class=\"fluid-width-video-wrapper\"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n $this.removeAttr('height').removeAttr('width');\n });\n });\n };\n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n"; 6var mod_pagespeed_lNkou75i6z = "/*!\n * parallax.js v1.4.2 (http://pixelcog.github.io/parallax.js/)\n * {WPHOOT modified}\n * @copyright 2016 PixelCog, Inc.\n * @license MIT (https://github.com/pixelcog/parallax.js/blob/master/LICENSE)\n */\n\n;(function ( $, window, document, undefined ) {\n\n // Polyfill for requestAnimationFrame\n // via: https://gist.github.com/paulirish/1579671\n\n (function() {\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']\n || window[vendors[x]+'CancelRequestAnimationFrame'];\n }\n\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function() { callback(currTime + timeToCall); },\n timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function(id) {\n clearTimeout(id);\n };\n }());\n\n\n // Parallax Constructor\n\n function Parallax(element, options) {\n var self = this;\n\n if (typeof options == 'object') {\n delete options.refresh;\n delete options.render;\n $.extend(this, options);\n }\n\n this.$element = $(element);\n\n if (!this.imageSrc && this.$element.is('img')) {\n this.imageSrc = this.$element.attr('src');\n }\n\n var positions = (this.position + '').toLowerCase().match(/\\S+/g) || [];\n\n if (positions.length < 1) {\n positions.push('center');\n }\n if (positions.length == 1) {\n positions.push(positions[0]);\n }\n\n if (positions[0] == 'top' || positions[0] == 'bottom' || positions[1] == 'left' || positions[1] == 'right') {\n positions = [positions[1], positions[0]];\n }\n\n if (this.positionX != undefined) positions[0] = this.positionX.toLowerCase();\n if (this.positionY != undefined) positions[1] = this.positionY.toLowerCase();\n\n self.positionX = positions[0];\n self.positionY = positions[1];\n\n if (this.positionX != 'left' && this.positionX != 'right') {\n if (isNaN(parseInt(this.positionX))) {\n this.positionX = 'center';\n } else {\n this.positionX = parseInt(this.positionX);\n }\n }\n\n if (this.positionY != 'top' && this.positionY != 'bottom') {\n if (isNaN(parseInt(this.positionY))) {\n this.positionY = 'center';\n } else {\n this.positionY = parseInt(this.positionY);\n }\n }\n\n this.position =\n this.positionX + (isNaN(this.positionX)? '' : 'px') + ' ' +\n this.positionY + (isNaN(this.positionY)? '' : 'px');\n\n if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {\n if (this.imageSrc && this.iosFix && !this.$element.is('img')) {\n this.$element.css({\n backgroundImage: 'url(' + this.imageSrc + ')',\n backgroundSize: 'cover',\n backgroundPosition: this.position\n });\n }\n return this;\n }\n\n if (navigator.userAgent.match(/(Android)/)) {\n if (this.imageSrc && this.androidFix && !this.$element.is('img')) {\n this.$element.css({\n backgroundImage: 'url(' + this.imageSrc + ')',\n backgroundSize: 'cover',\n backgroundPosition: this.position\n });\n }\n return this;\n }\n\n /* WPHOOT MOD */\n // this.$mirror = $('<div />').prependTo('body');\n // this.$mirror = $('<div />').prependTo('#main');\n if ( $('#page-wrapper').is('.site-boxed') )\n this.$mirror = $('<div />').prependTo('#page-wrapper');\n else\n this.$mirror = $('<div />').prependTo('body');\n $(window).on('hootSliderAnimated',function(){ \n // self.refresh(); // seems redundant. uncomment if a bug is spotted\n $(this).trigger('resize.px.parallax'); // use resize instead of load.px.parallax (conflicts with waypoint's 'bottom-in-view' offset)\n });\n /* WPHOOT MOD END */\n\n var slider = this.$element.find('>.parallax-slider');\n var sliderExisted = false;\n\n if (slider.length == 0)\n this.$slider = $('<img />').prependTo(this.$mirror);\n else {\n this.$slider = slider.prependTo(this.$mirror)\n sliderExisted = true;\n }\n\n this.$mirror.addClass('parallax-mirror').css({\n visibility: 'hidden',\n zIndex: this.zIndex,\n position: 'fixed',\n top: 0,\n left: 0,\n overflow: 'hidden'\n });\n\n this.$slider.addClass('parallax-slider').one('load', function() {\
6n if (!self.naturalHeight || !self.naturalWidth) {\n self.naturalHeight = this.naturalHeight || this.height || 1;\n self.naturalWidth = this.naturalWidth || this.width || 1;\n }\n self.aspectRatio = self.naturalWidth / self.naturalHeight;\n\n Parallax.isSetup || Parallax.setup();\n Parallax.sliders.push(self);\n Parallax.isFresh = false;\n Parallax.requestRender();\n });\n\n if (!sliderExisted)\n this.$slider[0].src = this.imageSrc;\n\n if (this.naturalHeight && this.naturalWidth || this.$slider[0].complete || slider.length > 0) {\n this.$slider.trigger('load');\n }\n\n };\n\n\n // Parallax Instance Methods\n\n $.extend(Parallax.prototype, {\n speed: 0.2,\n bleed: 0,\n zIndex: -100,\n iosFix: true,\n androidFix: true,\n position: 'center',\n overScrollFix: false,\n\n refresh: function() {\n this.boxWidth = this.$element.outerWidth();\n this.boxHeight = this.$element.outerHeight() + this.bleed * 2;\n this.boxOffsetTop = this.$element.offset().top - this.bleed;\n this.boxOffsetLeft = this.$element.offset().left;\n this.boxOffsetBottom = this.boxOffsetTop + this.boxHeight;\n\n var winHeight = Parallax.winHeight;\n var docHeight = Parallax.docHeight;\n var maxOffset = Math.min(this.boxOffsetTop, docHeight - winHeight);\n var minOffset = Math.max(this.boxOffsetTop + this.boxHeight - winHeight, 0);\n var imageHeightMin = this.boxHeight + (maxOffset - minOffset) * (1 - this.speed) | 0;\n var imageOffsetMin = (this.boxOffsetTop - maxOffset) * (1 - this.speed) | 0;\n\n if (imageHeightMin * this.aspectRatio >= this.boxWidth) {\n this.imageWidth = imageHeightMin * this.aspectRatio | 0;\n this.imageHeight = imageHeightMin;\n this.offsetBaseTop = imageOffsetMin;\n\n var margin = this.imageWidth - this.boxWidth;\n\n if (this.positionX == 'left') {\n this.offsetLeft = 0;\n } else if (this.positionX == 'right') {\n this.offsetLeft = - margin;\n } else if (!isNaN(this.positionX)) {\n this.offsetLeft = Math.max(this.positionX, - margin);\n } else {\n this.offsetLeft = - margin / 2 | 0;\n }\n } else {\n this.imageWidth = this.boxWidth;\n this.imageHeight = this.boxWidth / this.aspectRatio | 0;\n this.offsetLeft = 0;\n\n var margin = this.imageHeight - imageHeightMin;\n\n if (this.positionY == 'top') {\n this.offsetBaseTop = imageOffsetMin;\n } else if (this.positionY == 'bottom') {\n this.offsetBaseTop = imageOffsetMin - margin;\n } else if (!isNaN(this.positionY)) {\n this.offsetBaseTop = imageOffsetMin + Math.max(this.positionY, - margin);\n } else {\n this.offsetBaseTop = imageOffsetMin - margin / 2 | 0;\n }\n }\n },\n\n render: function() {\n var scrollTop = Parallax.scrollTop;\n var scrollLeft = Parallax.scrollLeft;\n var overScroll = this.overScrollFix ? Parallax.overScroll : 0;\n var scrollBottom = scrollTop + Parallax.winHeight;\n\n if (this.boxOffsetBottom > scrollTop && this.boxOffsetTop <= scrollBottom) {\n this.visibility = 'visible';\n this.mirrorTop = this.boxOffsetTop - scrollTop;\n this.mirrorLeft = this.boxOffsetLeft - scrollLeft;\n this.offsetTop = this.offsetBaseTop - this.mirrorTop * (1 - this.speed);\n } else {\n this.visibility = 'hidden';\n }\n\n this.$mirror.css({\n transform: 'translate3d(0px, 0px, 0px)',\n visibility: this.visibility,\n top: this.mirrorTop - overScroll,\n left: this.mirrorLeft,\n height: this.boxHeight,\n width: this.boxWidth\n });\n\n this.$slider.css({\n transform: 'translate3d(0px, 0px, 0px)',\n position: 'absolute',\n top: this.offsetTop,\n left: this.offsetLeft,\n height: this.imageHeight,\n width: this.imageWidth,\n maxWidth: 'none'\n });\n }\n });\n\n\n // Parallax Static Methods\n\n $.extend(Parallax, {\n scrollTop: 0,\n scrollLeft: 0,\n winHeight: 0,\n winWidth: 0,\n docHeight: 1 << 30,\n docWidth: 1 << 30,\n sliders: [],\n isReady: false,\n isFresh: false,\n isBusy: false,\n\n setup: function() {\
6n if (this.isReady) return;\n\n var $doc = $(document), $win = $(window);\n\n var loadDimensions = function() {\n Parallax.winHeight = $win.height();\n Parallax.winWidth = $win.width();\n Parallax.docHeight = $doc.height();\n Parallax.docWidth = $doc.width();\n };\n\n var loadScrollPosition = function() {\n var winScrollTop = $win.scrollTop();\n var scrollTopMax = Parallax.docHeight - Parallax.winHeight;\n var scrollLeftMax = Parallax.docWidth - Parallax.winWidth;\n Parallax.scrollTop = Math.max(0, Math.min(scrollTopMax, winScrollTop));\n Parallax.scrollLeft = Math.max(0, Math.min(scrollLeftMax, $win.scrollLeft()));\n Parallax.overScroll = Math.max(winScrollTop - scrollTopMax, Math.min(winScrollTop, 0));\n };\n\n $win.on('resize.px.parallax load.px.parallax', function() {\n loadDimensions();\n Parallax.isFresh = false;\n Parallax.requestRender();\n })\n .on('scroll.px.parallax load.px.parallax', function() {\n loadScrollPosition();\n Parallax.requestRender();\n });\n\n loadDimensions();\n loadScrollPosition();\n\n this.isReady = true;\n },\n\n configure: function(options) {\n if (typeof options == 'object') {\n delete options.refresh;\n delete options.render;\n $.extend(this.prototype, options);\n }\n },\n\n refresh: function() {\n $.each(this.sliders, function(){ this.refresh() });\n this.isFresh = true;\n },\n\n render: function() {\n this.isFresh || this.refresh();\n $.each(this.sliders, function(){ this.render() });\n },\n\n requestRender: function() {\n var self = this;\n\n if (!this.isBusy) {\n this.isBusy = true;\n window.requestAnimationFrame(function() {\n self.render();\n self.isBusy = false;\n });\n }\n },\n destroy: function(el){\n var i,\n parallaxElement = $(el).data('px.parallax');\n parallaxElement.$mirror.remove();\n for(i=0; i < this.sliders.length; i+=1){\n if(this.sliders[i] == parallaxElement){\n this.sliders.splice(i, 1);\n }\n }\n $(el).data('px.parallax', false);\n if(this.sliders.length === 0){\n $(window).off('scroll.px.parallax resize.px.parallax load.px.parallax');\n this.isReady = false;\n Parallax.isSetup = false;\n }\n }\n });\n\n\n // Parallax Plugin Definition\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var options = typeof option == 'object' && option;\n\n if (this == window || this == document || $this.is('body')) {\n Parallax.configure(options);\n }\n else if (!$this.data('px.parallax')) {\n options = $.extend({}, $this.data(), options);\n $this.data('px.parallax', new Parallax(this, options));\n }\n else if (typeof option == 'object')\n {\n $.extend($this.data('px.parallax'), options);\n }\n if (typeof option == 'string') {\n if(option == 'destroy'){\n Parallax['destroy'](this);\n }
6else{\n Parallax[option]();\n }\n }\n })\n };\n\n var old = $.fn.parallax;\n\n $.fn.parallax = Plugin;\n $.fn.parallax.Constructor = Parallax;\n\n\n // Parallax No Conflict\n\n $.fn.parallax.noConflict = function () {\n $.fn.parallax = old;\n return this;\n };\n\n\n // Parallax Data-API\n\n$( function () {\n /* WPHOOT MOD */\n // $('[data-parallax=\"scroll\"]').parallax();\n if( $('.lightSlider').length > 0 ) setTimeout(function(){ $('[data-parallax=\"scroll\"]').parallax(); }, 3000);\n else $('[data-parallax=\"scroll\"]').parallax();\n /* WPHOOT MOD END */\n });\n\n}(jQuery, window, document));";
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.