PageSourceSearch

https://include.org.gr/wp-content/litespeed/js/c343240e3a8a9f1b859af14f55c3ffe5.js?ver=c2b85

js include.org.gr collected 2026-10-04 16:56:56 UTC 338,843 bytes, 1,291 lines download raw bytes

1/*! jQuery Migrate v3.4.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
2"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){for(var r=/^(\d+)\.(\d+)\.(\d+)/,n=r.exec(e)||[],o=r.exec(t)||[],a=1;a<=3;a++){if(+o[a]<+n[a])return 1;if(+n[a]<+o[a])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.4.1";var t=Object.create(null);s.migrateDisablePatches=function(){for(var e=0;e<arguments.length;e++)t[arguments[e]]=!0},s.migrateEnablePatches=function(){for(var e=0;e<arguments.length;e++)delete t[arguments[e]]},s.migrateIsPatchEnabled=function(e){return!t[e]},n.console&&n.console.log&&(s&&e("3.0.0")&&!e("5.0.0")||n.console.log("JQMIGRATE: jQuery 3.x-4.x REQUIRED"),s.migrateWarnings&&n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),n.console.log("JQMIGRATE: Migrate is installed"+(s.migrateMute?"":" with logging active")+", version "+s.migrateVersion));var o={};function u(e,t){var r=n.console;!s.migrateIsPatchEnabled(e)||s.migrateDeduplicateWarnings&&o[t]||(o[t]=!0,s.migrateWarnings.push(t+" ["+e+"]"),r&&r.warn&&!s.migrateMute&&(r.warn("JQMIGRATE: "+t),s.migrateTrace&&r.trace&&r.trace()))}function r(e,t,r,n,o){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return u(n,o),r},set:function(e){u(n,o),r=e}})}function a(e,t,r,n,o){var a=e[t];e[t]=function(){return o&&u(n,o),(s.migrateIsPatchEnabled(n)?r:a||s.noop).apply(this,arguments)}}function c(e,t,r,n,o){if(!o)throw new Error("No warning message provided");return a(e,t,r,n,o),0}function i(e,t,r,n){return a(e,t,r,n),0}s.migrateDeduplicateWarnings=!0,s.migrateWarnings=[],void 0===s.migrateTrace&&(s.migrateTrace=!0),s.migrateReset=function(){o={},s.migrateWarnings.length=0},"BackCompat"===n.document.compatMode&&u("quirks","jQuery is not compatible with Quirks Mode");var d,l,p,f={},m=s.fn.init,y=s.find,h=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,g=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,v=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;for(d in i(s.fn,"init",function(e){var t=Array.prototype.slice.call(arguments);return s.migrateIsPatchEnabled("selector-empty-id")&&"string"==typeof e&&"#"===e&&(u("selector-empty-id","jQuery( '#' ) is not a valid selector"),t[0]=[]),m.apply(this,t)},"selector-empty-id"),s.fn.init.prototype=s.fn,i(s,"find",function(t){var r=Array.prototype.slice.call(arguments);if("string"==typeof t&&h.test(t))try{n.document.querySelector(t)}catch(e){t=t.replace(g,function(e,t,r,n){return"["+t+r+'"'+n+'"]'});try{n.document.querySelector(t),u("selector-hash","Attribute selector with '#' must be quoted: "+r[0]),r[0]=t}catch(e){u("selector-hash","Attribute selector with '#' was not fixed: "+r[0])}}return y.apply(this,r)},"selector-hash"),y)Object.prototype.hasOwnProperty.call(y,d)&&(s.find[d]=y[d]);c(s.fn,"size",function(){return this.length},"size","jQuery.fn.size() is deprecated and removed; use the .length property"),c(s,"parseJSON",function(){return JSON.parse.apply(null,arguments)},"parseJSON","jQuery.parseJSON is deprecated; use JSON.parse"),c(s,"holdReady",s.holdReady,"holdReady","jQuery.holdReady is deprecated"),c(s,"unique",s.uniqueSort,"unique","jQuery.unique is deprecated; use jQuery.uniqueSort"),r(s.expr,"filters",s.expr.pseudos,"expr-pre-pseudos","jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),r(s.expr,":",s.expr.pseudos,"expr-pre-pseudos","jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"),e("3.1.1")&&c(s,"trim",function(e){return null==e?"":(e+"").replace(v,"$1")},"trim","jQuery.trim is deprecated; use String.prototype.trim"),e("3.2.0")&&(c(s,"nodeName",function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},"nodeName","jQuery.nodeName is deprecated"),c(s,"isArray",Array.isArray,"isArray","jQuery.isArray is deprecated; use Array.isArray")),e("3.3.0")&&(c(s,"isNumeric",function(e){var t=typeof e;return("number"==t||"string"==t)&&!isNaN(e-parseFloat(e))},"isNumeric","jQuery.isNumeric() is deprecated"),s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){f["[object "+t+"]"]=t.toLowerCase()}),c(s,"type",function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?f[Object.prototype.toString.call(e)]||"object":typeof e},"type","jQuery.type is deprecated"),c(s,"isFunction",function(e){return"function"==typeof e},"isFunction","jQuery.isFunction() is deprecated"),c(s,"isWindow",function(e){return null!=e&&e===e.window}
2,"isWindow","jQuery.isWindow() is deprecated")),s.ajax&&(l=s.ajax,p=/(=)\?(?=&|$)|\?\?/,i(s,"ajax",function(){var e=l.apply(this,arguments);return e.promise&&(c(e,"success",e.done,"jqXHR-methods","jQXHR.success is deprecated and removed"),c(e,"error",e.fail,"jqXHR-methods","jQXHR.error is deprecated and removed"),c(e,"complete",e.always,"jqXHR-methods","jQXHR.complete is deprecated and removed")),e},"jqXHR-methods"),e("4.0.0")||s.ajaxPrefilter("+json",function(e){!1!==e.jsonp&&(p.test(e.url)||"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&p.test(e.data))&&u("jsonp-promotion","JSON-to-JSONP auto-promotion is deprecated")}));var j=s.fn.removeAttr,b=s.fn.toggleClass,w=/\S+/g;function x(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})}i(s.fn,"removeAttr",function(e){var r=this,n=!1;return s.each(e.match(w),function(e,t){s.expr.match.bool.test(t)&&r.each(function(){if(!1!==s(this).prop(t))return!(n=!0)}),n&&(u("removeAttr-bool","jQuery.fn.removeAttr no longer sets boolean properties: "+t),r.prop(t,!1))}),j.apply(this,arguments)},"removeAttr-bool"),i(s.fn,"toggleClass",function(t){return void 0!==t&&"boolean"!=typeof t?b.apply(this,arguments):(u("toggleClass-bool","jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var e=this.getAttribute&&this.getAttribute("class")||"";e&&s.data(this,"__className__",e),this.setAttribute&&this.setAttribute("class",!e&&!1!==t&&s.data(this,"__className__")||"")}))},"toggleClass-bool");var Q,A,R=!1,C=/^[a-z]/,N=/^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;s.swap&&s.each(["height","width","reliableMarginRight"],function(e,t){var r=s.cssHooks[t]&&s.cssHooks[t].get;r&&(s.cssHooks[t].get=function(){var e;return R=!0,e=r.apply(this,arguments),R=!1,e})}),i(s,"swap",function(e,t,r,n){var o,a,i={};for(a in R||u("swap","jQuery.swap() is undocumented and deprecated"),t)i[a]=e.style[a],e.style[a]=t[a];for(a in o=r.apply(e,n||[]),t)e.style[a]=i[a];return o},"swap"),e("3.4.0")&&"undefined"!=typeof Proxy&&(s.cssProps=new Proxy(s.cssProps||{},{set:function(){return u("cssProps","jQuery.cssProps is deprecated"),Reflect.set.apply(this,arguments)}})),e("4.0.0")?(A={animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},"undefined"!=typeof Proxy?s.cssNumber=new Proxy(A,{get:function(){return u("css-number","jQuery.cssNumber is deprecated"),Reflect.get.apply(this,arguments)},set:function(){return u("css-number","jQuery.cssNumber is deprecated"),Reflect.set.apply(this,arguments)}}):s.cssNumber=A):A=s.cssNumber,Q=s.fn.css,i(s.fn,"css",function(e,t){var r,n,o=this;return e&&"object"==typeof e&&!Array.isArray(e)?(s.each(e,function(e,t){s.fn.css.call(o,e,t)}),this):("number"==typeof t&&(r=x(e),n=r,C.test(n)&&N.test(n[0].toUpperCase()+n.slice(1))||A[r]||u("css-number",'Number-typed values are deprecated for jQuery.fn.css( "'+e+'", value )')),Q.apply(this,arguments))},"css-number");var S,P,k,H,E=s.data;i(s,"data",function(e,t,r){var n,o,a;if(t&&"object"==typeof t&&2===arguments.length){for(a in n=s.hasData(e)&&E.call(this,e),o={},t)a!==x(a)?(u("data-camelCase","jQuery.data() always sets/gets camelCased names: "+a),n[a]=t[a]):o[a]=t[a];return E.call(this,e,o),t}return t&&"string"==typeof t&&t!==x(t)&&(n=s.hasData(e)&&E.call(this,e))&&t in n?(u("data-camelCase","jQuery.data() always sets/gets camelCased names: "+t),2<arguments.length&&(n[t]=r),n[t]):E.apply(this,arguments)},"data-camelCase"),s.fx&&(k=s.Tween.prototype.run,H=function(e){return e},i(s.Tween.prototype,"run",function(){1<s.easing[this.easing].length&&(u("easing-one-arg","'jQuery.easing."+this.easing.toString()+"' should use only one argument"),s.easing[this.easing]=H),k.apply(this,arguments)},"easing-one-arg"),S=s.fx.interval,P="jQuery.fx.interval is deprecated",n.requestAnimationFrame&&Object.defineProperty(s.fx,"interval",{configurable:!0,enumerable:!0,get:function(){return n.document.hidden||u("fx-interval",P),s.migrateIsPatchEnabled("fx-interval")&&void 0===S?13:S},set:function(e){u("fx-interval",P),S=e}}));var M=s.fn.load,q=s.event.add,O=s.event.fix;s.event.props=[],s.event.fixHooks={}
2,r(s.event.props,"concat",s.event.props.concat,"event-old-patch","jQuery.event.props.concat() is deprecated and removed"),i(s.event,"fix",function(e){var t,r=e.type,n=this.fixHooks[r],o=s.event.props;if(o.length){u("event-old-patch","jQuery.event.props are deprecated and removed: "+o.join());while(o.length)s.event.addProp(o.pop())}if(n&&!n._migrated_&&(n._migrated_=!0,u("event-old-patch","jQuery.event.fixHooks are deprecated and removed: "+r),(o=n.props)&&o.length))while(o.length)s.event.addProp(o.pop());return t=O.call(this,e),n&&n.filter?n.filter(t,e):t},"event-old-patch"),i(s.event,"add",function(e,t){return e===n&&"load"===t&&"complete"===n.document.readyState&&u("load-after-event","jQuery(window).on('load'...) called after load event occurred"),q.apply(this,arguments)},"load-after-event"),s.each(["load","unload","error"],function(e,t){i(s.fn,t,function(){var e=Array.prototype.slice.call(arguments,0);return"load"===t&&"string"==typeof e[0]?M.apply(this,e):(u("shorthand-removed-v3","jQuery.fn."+t+"() is deprecated"),e.splice(0,0,t),arguments.length?this.on.apply(this,e):(this.triggerHandler.apply(this,e),this))},"shorthand-removed-v3")}),s.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,r){c(s.fn,r,function(e,t){return 0<arguments.length?this.on(r,null,e,t):this.trigger(r)},"shorthand-deprecated-v3","jQuery.fn."+r+"() event shorthand is deprecated")}),s(function(){s(n.document).triggerHandler("ready")}),s.event.special.ready={setup:function(){this===n.document&&u("ready-event","'ready' event is deprecated")}},c(s.fn,"bind",function(e,t,r){return this.on(e,null,t,r)},"pre-on-methods","jQuery.fn.bind() is deprecated"),c(s.fn,"unbind",function(e,t){return this.off(e,null,t)},"pre-on-methods","jQuery.fn.unbind() is deprecated"),c(s.fn,"delegate",function(e,t,r,n){return this.on(t,e,r,n)},"pre-on-methods","jQuery.fn.delegate() is deprecated"),c(s.fn,"undelegate",function(e,t,r){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",r)},"pre-on-methods","jQuery.fn.undelegate() is deprecated"),c(s.fn,"hover",function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)},"pre-on-methods","jQuery.fn.hover() is deprecated");function T(e){var t=n.document.implementation.createHTMLDocument("");return t.body.innerHTML=e,t.body&&t.body.innerHTML}var F=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.migrateEnablePatches("self-closed-tags")},i(s,"htmlPrefilter",function(e){var t,r;return(r=(t=e).replace(F,"<$1></$2>"))!==t&&T(t)!==T(r)&&u("self-closed-tags","HTML tags must be properly nested and closed: "+t),e.replace(F,"<$1></$2>")},"self-closed-tags"),s.migrateDisablePatches("self-closed-tags");var D,W,_,I=s.fn.offset;return i(s.fn,"offset",function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?I.apply(this,arguments):(u("offset-valid-elem","jQuery.fn.offset() requires a valid DOM element"),arguments.length?this:void 0)},"offset-valid-elem"),s.ajax&&(D=s.param,i(s,"param",function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("param-ajax-traditional","jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),D.call(this,e,t)},"param-ajax-traditional")),c(s.fn,"andSelf",s.fn.addBack,"andSelf","jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),s.Deferred&&(W=s.Deferred,_=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],i(s,"Deferred",function(e){var a=W(),i=a.promise();function t(){var o=arguments;return s.Deferred(function(n){s.each(_,function(e,t){var r="function"==typeof o[e]&&o[e];a[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),o=null}).promise()}return c(a,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),c(i,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),e&&e.call(a,a),a},"deferred-pipe"),s.Deferred.exceptionHook=W.exceptionHook),s})
3;/**
4 * @author  Nevma, [email protected]
5 * @license http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
6 */
7var RESPONSIVILLE_URL=typeof RESPONSIVILLE_URL!=="undefined"?RESPONSIVILLE_URL:window.location.host;var RESPONSIVILLE_DEBUG=typeof RESPONSIVILLE_DEBUG!=="undefined"?RESPONSIVILLE_DEBUG:!1;var RESPONSIVILLE_AUTO_INIT=typeof RESPONSIVILLE_AUTO_INIT!=="undefined"?RESPONSIVILLE_AUTO_INIT:!1;var Responsiville={};Responsiville.VERSION='2.0';Responsiville.THROTTLE_DURATION=100;Responsiville.extend=function(object,namespace){for(var key in namespace){object.prototype[key]=namespace[key]}};Responsiville.throttle=function(theFunction,threshold,scope){if(typeof threshold==='undefined'){threshold=Responsiville.THROTTLE_DURATION}
8var last=0;var counter=-1;var timeoutHandler=null;return function(){var context=scope||this;var args=arguments;var now=new Date().getTime();clearTimeout(timeoutHandler);
8if(now-last<threshold){timeoutHandler=setTimeout(function(){last=now;theFunction.apply(context,args)},threshold)}else{last=now;theFunction.apply(context,args)}}};Responsiville.debounce=function(theFunction,delay,scope){if(typeof delay==='undefined'){delay=Responsiville.THROTTLE_DURATION}
9var timeoutHandler=null;return function(){var context=scope||this;var args=arguments;clearTimeout(timeoutHandler);timeoutHandler=setTimeout(function(){theFunction.apply(context,args)},delay)}};Responsiville.onImagesLoaded=function(images,callbacks){var k,length,tempImage;function handleImage(image){if(typeof image==='string'){tempImage=new Image();tempImage.src=image;return tempImage}else if(typeof image==='Image'){return image}else if(typeof image==='object'){tempImage=new Image();tempImage.src=image.src;return tempImage}}
10var tempImages=[];if(jQuery.isArray(images)){for(k=0,length=images.length;k<length;k++){var image=images[k];image=handleImage(image);tempImages.push(image)}}else if(images instanceof jQuery){images.filter('img').each(function(){tempImages.push(this)})}else{var image=handleImage(images);tempImages.push(image)}
11if(typeof callbacks==='function'){callbacks={single:callbacks}}
12var imagesLoadedCounter=0;function imageLoaded(event){imagesLoadedCounter++;if(event.type=='load'){if(typeof callbacks.single!='undefined'){callbacks.single(event.target)}}else{if(typeof callbacks.error!='undefined'){callbacks.error(event.target)}}
13if(imagesLoadedCounter==tempImages.length){if(typeof callbacks.full!='undefined'){callbacks.full(tempImages)}}}
14for(k=0,length=tempImages.length;k<length;k++){tempImage=tempImages[k];var $tempImage=jQuery(tempImage);$tempImage.on('load',imageLoaded);$tempImage.on('error',imageLoaded)}};Responsiville.hasImageLoaded=function(image){return image.complete||image.readyState===4};Responsiville.splitAndTrim=function(input,separator){if(typeof separator==='undefined'){separator=','}
15var inputArray=jQuery.isArray(input)?input:input.split(separator);for(var k=0,length=inputArray.length;k<length;k++){inputArray[k]=inputArray[k].replace(/^\s+|\s+$/,'')}
16return inputArray};Responsiville.determineEnableDisableBreakpoints=function(breakpoints){if((breakpoints.enter===undefined||!breakpoints.enter)&&(breakpoints.leave===undefined||!breakpoints.leave)){return null}
17var allBreakpoints=Responsiville.Main.getInstance().options.breakpoints;if(breakpoints.enter==='*'){var enter='';for(var k=0,length=allBreakpoints.length;k<length;k++){enter+=allBreakpoints[k].name+(k<length-1?', ':'')}
18return{enter:enter,leave:''}}
19if(breakpoints.leave==='*'){var leave='';for(var k=0,length=allBreakpoints.length;k<length;k++){leave+=allBreakpoints[k].name+(k<length-1?', ':'')}
20return{enter:'',leave:leave}}
21if(breakpoints.enter!==undefined&&breakpoints.enter){if(breakpoints.enter.indexOf('>>')>-1){var enterSplit=breakpoints.enter.split(' ');var enterBreakpoint=enterSplit[0];var enterArray=[];var leaveArray=[];var includeBreakpointsFromHere=!1;for(var k=0,length=allBreakpoints.length;k<length;k++){includeBreakpointsFromHere=includeBreakpointsFromHere||allBreakpoints[k].name==enterBreakpoint;if(includeBreakpointsFromHere){enterArray.push(allBreakpoints[k].name)}else{leaveArray.push(allBreakpoints[k].name)}}
22return{enter:enterArray.join(', '),leave:leaveArray.join(', ')}}
23if(breakpoints.enter.indexOf('<<')>-1){var enterSplit=breakpoints.enter.split(' ');var enterBreakpoint=enterSplit[1];var enterArray=[];var leaveArray=[];var includeBreakpointsFromHere=!1;for(var k=allBreakpoints.length-1;k>=0;k--){includeBreakpointsFromHere=includeBreakpointsFromHere||allBreakpoints[k].name==enterBreakpoint;if(includeBreakpointsFromHere){enterArray.push(allBreakpoints[k].name)}else{leaveArray.push(allBreakpoints[k].name)}}
24return{enter:enterArray.reverse().join(', '),leave:leaveArray.reverse().join(', ')}}}
25if(breakpoints.leave!==undefined&&breakpoints.leave){if(breakpoints.leave.indexOf('>>')>-1){var leaveSplit=breakpoints.leave.split(' ');var leaveBreakpoint=leaveSplit[0];var enterArray=[];var leaveArray=[];var includeBreakpointsFromHere=!1;for(var k=0,length=allBreakpoints.length;k<length;k++){includeBreakpointsFromHere=includeBreakpointsFromHere||allBreakpoints[k].name==leaveBreakpoint;if(includeBreakpointsFromHere){leaveArray.push(allBreakpoints[k].name)}else{enterArray.push(allBreakpoints[k].name)}}
26return{enter:enterArray.join(', '),leave:leaveArray.join(', ')}}
27if(breakpoints.leave.indexOf('<<')>-1){var leaveSplit=breakpoints.leave.split(' ');var leaveBreakpoint=leaveSplit[1];var enterArray=[];var leaveArray=[];var includeBreakpointsFromHere=!1;for(var k=allBreakpoints.length-1;k>=0;k--){includeBreakpointsFromHere=includeBreakpointsFromHere||allBreakpoints[k].name==leaveBreakpoint;if(includeBreakpointsFromHere){leaveArray.push(allBreakpoints[k].name)}else{enterArray.push(allBreakpoints[k].name)}}
28return{enter:enterArray.reverse().join(', '),leave:leaveArray.reverse().join(', ')}}}
29var breakpointsEnter=breakpoints.enter!==undefined&&breakpoints.enter?Responsiville.splitAndTrim(breakpoints.enter):undefined;var breakpointsLeave=breakpoints.leave!==undefined&&breakpoints.leave?Responsiville.splitAndTrim(breakpoints.leave):undefined;if((breakpointsEnter===undefined||!breakpoints.enter)&&(breakpointsLeave===undefined||!breakpoints.leave)){return null}
30if(breakpointsEnter===undefined||!breakpoints.enter){breakpointsEnter=[];for(var k=0,length=allBreakpoints.length;k<length;k++){var globalBreakpoint=allBreakpoints[k];if(breakpointsLeave.indexOf(globalBreakpoint.name)<0){breakpointsEnter.push(globalBreakpoint.name)}}}
31if(breakpointsLeave===undefined||!breakpoints.leave){breakpointsLeave=[];for(var k=0,length=allBreakpoints.length;k<length;k++){var globalBreakpoint=allBreakpoints[k];if(breakpointsEnter.indexOf(globalBreakpoint.name)<0){breakpointsLeave.push(globalBreakpoint.name)}}}
32return{enter:breakpointsEnter.join(', '),leave:breakpointsLeave.join(', ')}};Responsiville.createResponsiveObject=function(responsiveObject){var responsiville=Responsiville.Main.getInstance();responsiveObject.responsiville=responsiville;var breakpoints=Responsiville.determineEnableDisableBreakpoints({enter:typeof responsiveObject.enter!=='undefined'?responsiveObject.enter:'undefined',leave:typeof responsiveObject.leave!=='undefined'?responsiveObject.leave:'undefined'});if(breakpoints===null){return responsiveObject}
33var k,length;if(typeof responsiveObject.enable!=='undefined'){var enableFunctionBound=responsiveObject.enable.bind(responsiveObject);var breakpointsEnter=Responsiville.splitAndTrim(breakpoints.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){responsiville.on('enter.'+breakpointsEnter[k],enableFunctionBound)}
34if(responsiville.is(breakpoints.enter)){enableFunctionBound()}}
35if(typeof responsiveObject.disable!=='undefined'){var disableFunctionBound=responsiveObject.disable.bind(responsiveObject);var breakpointsLeave=Responsiville.splitAndTrim(breakpoints.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){responsiville.on('enter.'+breakpointsLeave[k],disableFunctionBound)}
36if(responsiville.is(breakpoints.leave)){disableFunctionBound()}}
37return responsiveObject}
38;/**
39 * @author  Nevma, [email protected]
40 * @license http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
41 */
42Responsiville.Debug={};if(typeof console.group==='undefined'||typeof console.groupEnd==='undefined'){console.group=console.log;console.groupEnd=console.log}
43Responsiville.Debug.Extensions={};Responsiville.Debug.Extensions.printAPI=function(){var debug=this.options.debug;this.options.debug=!0;var toLog=['API'];for(var parameter in this){if(jQuery.isFunction(this[parameter])){toLog.push(parameter);toLog.push(this[parameter])}}
44this.log.apply(this,toLog);this.options.debug=debug};Responsiville.Debug.Extensions.log=function(){if(!this.options.debug){return}
45console.group('['+this.codeName+'/'+this.options.slug+']');for(var k=0,length=arguments.length;k<length;k++){console.log(arguments[k])}
46console.groupEnd()};Responsiville.Debug.Extensions.dir=function(){if(!this.options.debug){return}
47console.group('['+this.codeName+'/'+this.options.slug+']');for(var k=0,length=arguments.length;k<length;k++){var argument=arguments[k];if(jQuery.type(arguments[k])=='string'){console.log(argument)}else if(jQuery.isFunction(argument)){console.log(argument)}else{console.dir(argument)}}
48console.groupEnd()};Responsiville.Debug.setupDebug=function(){var responsiville=Responsiville.Main.getInstance();
48if(!responsiville.options.debugUI){return}
49responsiville.$body.append('<aside class="responsiville-debug-controls '+responsiville.options.debugPos+'">'+'<section class="responsiville-debug-control responsiville-debug-layout">'+'<p>'+'<label for="responsiville-debug-grid">'+'Grid debug <input type="checkbox" id="responsiville-debug-grid" name="responsiville-debug-grid" value="responsiville-debug-grid">'+'</label>'+'</p>'+'<p>'+'<label for="responsiville-debug-blocks">'+'Text debug <input type="checkbox" id="responsiville-debug-blocks" name="responsiville-debug-blocks" value="responsiville-debug-blocks">'+'</label>'+'</p>'+'<p>'+'<label for="responsiville-debug-semantic">'+'Semantic debug <input type="checkbox" id="responsiville-debug-semantic" name="responsiville-debug-semantic" value="responsiville-debug-semantic">'+'</label>'+'</p>'+'</section>'+'<section class="responsiville-debug-control responsiville-debug-dimensions">'+'<p>[please wait&hellip;]</p>'+'</section>'+'<section class="responsiville-debug-control responsiville-debug-performance">'+'<p>[timings, please wait&hellip;]</p>'+'</section>'+'<section class="responsiville-debug-control responsiville-debug-text">'+'<p>'+'<a class="button button-small" href="http://vanilla.nevma.gr/wp-content/docs/vanilla-apigen/" title="Vanilla documentation" target="_blank">Vanilla docs</a>'+'<a class="button button-small" href="http://vanilla.nevma.gr/wp-content/docs/responsiville-jsdoc/" title="Responsiville documentation" target="_blank">Responsiville docs</a>'+'<a class="button button-small" href="http://vanilladev.nevma.gr/" title="Vanilla demo" target="_blank">Vanilla demo</a>'+'<a class="button button-small" href="http://vanilla.nevma.gr/wp-content/themes/vforvanilla/inc/vanilla/responsiville/demo" title="Responsiville demo page" target="_blank">Responsiville demo</a>'+'</p>'+'</section>'+'<button class="responsiville-debug-toggle"></button>'+'</aside>');this.$debugControls=jQuery('.responsiville-debug-controls');this.$debugPerformance=jQuery('.responsiville-debug-dimensions');this.$debugToggle=jQuery('.responsiville-debug-toggle');jQuery('.responsiville-debug-layout input[type="checkbox"]').on('change',function(){if(jQuery(this).is(':checked')){jQuery('body').addClass(jQuery(this).val())}else{jQuery('body').removeClass(jQuery(this).val())}}).trigger('change');jQuery('.row').each(function(){jQuery(this).append('<p class="responsiville-class-info start">&lt;row&gt;</p>').append('<p class="responsiville-class-info end">&lt;/row&gt;</p>')});jQuery('[class*="column"]').each(function(){var classString='';var classList=jQuery(this).attr('class').split(' ');for(var k=0,length=classList.length;k<length;k++){var className=classList[k];if(className.indexOf('column')>-1){classString+=className+' '}}
50classString=jQuery.trim(classString);jQuery(this).append('<p class="responsiville-class-info start">&lt;'+classString+'&gt;</p>').append('<p class="responsiville-class-info end">&lt;/'+classString+'&gt;</p>')});jQuery('header, footer, nav, main, aside, article, section, h1, h2, h3, h4, h5, h6').each(function(){if(jQuery(this).is('.responsiville-debug-controls')||jQuery(this).parent('.responsiville-debug-controls').length>0){return}
51jQuery(this).append('<p class="responsiville-debug-semantic-info">'+this.tagName.toLowerCase()+'</p>')});this.$debugToggle.on('click',(function(){if(this.$debugToggle.is('.responsiville-debug-toggle-closed')){this.openDebugPanel()}else{this.closeDebugPanel()}}).bind(this));if(responsiville.getProperty('debug-panel-on')){this.openDebugPanel()}else{this.closeDebugPanel()}
52responsiville.$window.on('load',(function(){window.setTimeout(this.showDebugLoadPerformance,10)}).bind(this));responsiville.on('resize',this.showDebugUIDimensions.bind(this));jQuery(this.showDebugUIDimensions.bind(this))};Responsiville.Debug.showDebugUIDimensions=function(){var responsiville=Responsiville.Main.getInstance();if(!responsiville.options.debugUI){return}
53this.$debugPerformance.html('<p>'+window.innerWidth+'x'+window.innerHeight+'px '+responsiville.currentBreakpoint.name+' '+'<span class="responsiville-debug-dimensions-icon '+responsiville.currentBreakpoint.name+'">'+responsiville.currentBreakpoint.icon+'</span> '+'</p>')};Responsiville.Debug.showDebugLoadPerformance=function(){var performance=window.performance||window.mozPerformance||window.msPerformance||window.webkitPerformance;var responseStart=((performance.timing.responseStart-performance.timing.requestStart)/1000).toFixed(2);var responseEnd=((performance.timing.responseEnd-performance.timing.requestStart)/1000).toFixed(2);var domLoading=((performance.timing.domLoading-performance.timing.requestStart)/1000).toFixed(2);var domInteractive=((performance.timing.domInteractive-performance.timing.requestStart)/1000).toFixed(2);var domContentLoaded=((performance.timing.domContentLoadedEventEnd-performance.timing.requestStart)/1000).toFixed(2);var domComplete=((performance.timing.domComplete-performance.timing.requestStart)/1000).toFixed(2);var load=((performance.timing.loadEventEnd-performance.timing.requestStart)/1000).toFixed(2);var responseStartDiff=(responseStart-0).toFixed(2);var domContentLoadedDiff=(domContentLoaded-responseStart).toFixed(2);var loadDiff=(load-domContentLoaded).toFixed(2);jQuery('.responsiville-debug-performance').html('<table class="vanilla" cellspacing="0" cellpadding="0">'+'<thead>'+'<tr>'+'<th></th><th></th><th>Time</th><th>dt</th>'+'<tr>'+'</thead>'+'<tbody>'+'<tr title="Browser sends the request">'+'<td>Request Start</td><td>&mdash;&gt;'+'</td><td>'+'0.00'+'</td><td>'+'&mdash;'+'</td>'+'</tr>'+'<tr title="Time to first byte - browser received the first byte of the response">'+'<td>TtFB</td><td>&mdash;&gt;'+'</td><td>'+responseStart+'</td><td>'+responseStartDiff+'</td>'+'</tr>'+'<tr title="Synchronous scripts run, DOM &amp; CSSOM ready, render tree formed">'+'<td>DOMContentLoaded</td><td>&mdash;&gt;'+'</td><td>'+domContentLoaded+'</td><td>'+domContentLoadedDiff+'</td>'+'</tr>'+'<tr title="Page is fully loaded and rendered, images are loaded">'+'<td>Load</td><td>&mdash;&gt;'+'</td><td>'+load+'</td><td>'+loadDiff+'</td>'+'</tr>'+'</tbody>'+'</table>')};Responsiville.Debug.openDebugPanel=function(){this.$debugToggle.removeClass('responsiville-debug-toggle-closed');
53this.$debugControls.removeClass('responsiville-debug-controls-closed');Responsiville.Main.getInstance().setProperty('debug-panel-on',!0)};Responsiville.Debug.closeDebugPanel=function(){this.$debugToggle.addClass('responsiville-debug-toggle-closed');this.$debugControls.addClass('responsiville-debug-controls-closed');Responsiville.Main.getInstance().setProperty('debug-panel-on',!1)}
54;/**
55 * @author  Nevma, [email protected]
56 * @license http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
57 */
58Responsiville.Events={};Responsiville.Events.registerEvent=function(eventName){if(typeof this.events==='undefined'){this.events={}}
59if(typeof this.events[eventName]==='undefined'){this.events[eventName]=[]}};Responsiville.Events.deregisterEvent=function(eventName){if(typeof this.events!=='undefined'){delete this.events[eventName]}};Responsiville.Events.on=function(eventName,callback){this.registerEvent(eventName);this.events[eventName].push(callback)};Responsiville.Events.off=function(eventName,callback){var index=this.events[eventName].indexOf(callback);this.events[eventName].splice(index,1)};Responsiville.Events.fireEvent=function(eventName,args){if(typeof this.events==='undefined'){return}
60for(var k in this.events[eventName]){this.events[eventName][k].apply(this,args)}};Responsiville.Events.getBoundFunction=function(theFunction){if(typeof this.boundFunctions==='undefined'){this.boundFunctions=[];this.originalFunctions=[]}
61var index=jQuery.inArray(theFunction,this.originalFunctions);if(index>-1){return this.boundFunctions[index]}
62var theFunctionBound=theFunction.bind(this);this.boundFunctions.push(theFunctionBound);this.originalFunctions.push(theFunction);return theFunctionBound}
63;/**
64 * Creates and initialises the main Responsiville object. 
65 * 
66 * @class
67 * @extends   Responsiville.Debug
68 * @extends   Responsiville.Events
69 * 
70 * @author    Nevma, [email protected]
71 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
72 * 
73 * @fires     Responsiville.Main#init
74 * 
75 * @classdesc This is the main object of the Responsiville framework. The whole 
76 *            Responsiville framework depends on this object to function and so
77 *            do all the plugins that belong to the framework as well. It 
78 *            contains core functions that handle the breakpoints and the 
79 *            responsiveness of the web page in development.
80 *
81 * @param {Object} options The initialisation options of the module.
82 *
83 * @property {Object}  options             The options that define the object
84 *                                         behaviour.
85 * @property {boolean} options.url         The url of the folder where the
86 *                                         Responsiville framework is located.
87 * @property {boolean} options.debug       Whether to print debug messages in 
88 *                                         the browser console.
89 * @property {boolean} options.debugUI     Whether to show the debug panel at 
90 *                                         the edge of the screen.
91 * @property {string}  options.debugPos    Where to position the debug panel (br
92 *                                         means bottom-right, tl means top-left
93 *                                         and so on).
94 * @property {int}     options.throttle    Time delay to throttle expensive 
95 *                                         function calls as a result of 
96 *                                         repeated operations like the browser 
97 *                                         resize event.
98 * @property {boolean} options.slug        A special codename for the instance
99 *                                         of the element, to be used as a class
100 *                                         on  its container and as a key in
101 *                                         arrays where it is grouped with other
102 *                                         elements of its kind. 
103 * @property {Array}   options.breakpoints Array of extra breakpoints to include
104 *                                         to the framework. Each breakpoint is 
105 *                                         an associative array like { name: 
106 *                                         'small', width: 320, icon: 'uE800' }.
107 *                                         One might need to add breakpoints to 
108 *                                         this array but they probably should
109 *                                         not remove any beacuse this might
110 *                                         break behaviour of other code that
111 *                                         depends on them.
112 */
113Responsiville.Main=function(options){if(!Responsiville.Main.instance){Responsiville.Main.instance=this}else{throw new Error('Responsiville instantiation error: the framework has already been initialised, new Responsiville.Main is a singleton.')}
114this.options={};this.options=jQuery.extend(this.options,Responsiville.Main.defaults,options);
114this.codeName='responsiville.main';this.width=0;this.height=0;this.$html=jQuery('html');this.$body=jQuery('body');this.$window=jQuery(window);this.$document=jQuery(document);if(this.options.slug==''){Responsiville.Main.elementsCounter=Responsiville.Main.elementsCounter!==undefined?++Responsiville.Main.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Main.elementsCounter}
115this.adjustCallbacksCalled=!1;this.previousBreakpoint=null;this.currentBreakpoint=null;var toLog='\n'+'    ____                                   _       _ ____\n'+'   / __ \\___  _________  ____  ____  _____(_)   __(_) / /__\n'+'  / /_/ / _ \\/ ___/ __ \\/ __ \\/ __ \\/ ___/ / | / / / / / _ \\\n'+' / _, _/  __(__  ) /_/ / /_/ / / / (__  ) /| |/ / / / /  __/\n'+'/_/ |_|\\___/____/ .___/\\____/_/ /_/____/_/ |___/_/_/_/\\___/\n'+'               /_/\n'+'                                               version '+Responsiville.VERSION+'\n\n';toLog+='breakpoints:\n';for(var k=0,length=this.options.breakpoints.length;k<length;k++){var breakpoint=this.options.breakpoints[k];toLog+=breakpoint.name+'\t'+breakpoint.width+'px'+(k<length-1?'\n':'')}
116this.log(toLog);this.$debugControls=null;this.$debugPerformance=null;this.$debugToggle=null;this.$document.on('DOMContentLoaded',(function(){this.$html.addClass('responsiville-domcontentloaded')}).bind(this));this.$window.on('load',(function(){this.$html.addClass('responsiville-load');this.$html.removeClass('responsiville-unload')}).bind(this));this.$window.on('pageshow',(function(){this.$html.addClass('responsiville-load');this.$html.removeClass('responsiville-unload')}).bind(this));this.$window.on('pagehide',(function(){this.$html.removeClass('responsiville-unload')}).bind(this));this.calculateDimensions();this.adjust()};Responsiville.extend(Responsiville.Main,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Main,Responsiville.Events);Responsiville.Main.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Main.defaults={url:window.location.host,debug:!1,debugUI:!1,debugPos:'br',throttle:100,slug:'',breakpoints:[{name:'small',width:320,icon:'\uE800'},{name:'mobile',width:599,icon:'\uE801'},{name:'tablet',width:1023,icon:'\uE802'},{name:'laptop',width:1279,icon:'\uE803'},{name:'desktop',width:1439,icon:'\uE804'},{name:'large',width:1679,icon:'\uE804'},{name:'xlarge',width:99999,icon:'\uE804'}]};Responsiville.Main.autoRun=function(){var responsiville=new Responsiville.Main({url:RESPONSIVILLE_URL,debug:RESPONSIVILLE_DEBUG,debugUI:RESPONSIVILLE_DEBUG});jQuery((function(){this.init()}).bind(responsiville))};Responsiville.Main.getInstance=function(){return Responsiville.Main.instance};Responsiville.Main.prototype.init=function(){var bodyElementNotYetCreated=typeof this.$body==='undefined'||this.$body.length===0;if(bodyElementNotYetCreated){this.$body=jQuery('body');this.$document=jQuery(document)}
117this.on('init',function(){Responsiville.Debug.setupDebug()});this.$window.on('resize',Responsiville.debounce(this.windowResize,this.options.throttle,this));this.fireEvent('init');this.runBreakpointChangeCallbacks();this.log('framework Responsiville has initialised')};Responsiville.Main.prototype.registerBreakpoint=function(breakpointName,breakpointWidth){var index=0;for(var k=0,length=this.options.breakpoints.length;k<length;k++){var breakpoint=this.options.breakpoints[k];if(breakpointWidth<breakpoint.width){index=k;break}}
118this.options.breakpoints.splice(k,0,{name:breakpointName,width:breakpointWidth});this.dir('breakpoint registered:',{name:breakpointName,width:breakpointWidth},'breakpoints:',this.options.breakpoints)};Responsiville.Main.prototype.deregisterBreakpoint=function(breakpointName){for(var k=0,length=this.options.breakpoints.length;k<length;k++){var breakpoint=this.options.breakpoints[k];if(breakpointName==breakpoint.name){this.options.breakpoints.splice(k+1,1);break}}
119this.dir('breakpoint deregistered: '+breakpointName,'new breakpoints: ',this.options.breakpoints)};Responsiville.Main.prototype.adjust=function(){this.log('adjusting to viewport');var removeClasses='';var k;var breakpoint;for(k=this.options.breakpoints.length-1;k>=0;k--){breakpoint=this.options.breakpoints[k];removeClasses+=breakpoint.name+' '}
120var addClasses='';for(k=0,length=this.options.breakpoints.length;k<length;k++){breakpoint=this.options.breakpoints[k];if(this.width>breakpoint.width){addClasses+=breakpoint.name+' '}else{break}}
121if(this.width<=breakpoint.width){addClasses+=breakpoint.name+' '}
122if(this.width>=this.height){addClasses+='landscape ';removeClasses+='portrait '}else{addClasses+='portrait ';removeClasses+='landscape '}
123if(this.isDevice()){addClasses+='device ';removeClasses+='pc '}else{addClasses+='pc ';removeClasses+='device '}
124this.$html.removeClass(removeClasses);this.$html.addClass(addClasses);var firstRun=!1;if(!this.currentBreakpoint){firstRun=!0;this.currentBreakpoint=this.calculateCurrentBreakpoint()}
125var newBreakpoint=this.calculateCurrentBreakpoint();var oldBreakpoint=this.currentBreakpoint;var breakpointChanged=firstRun||oldBreakpoint.name!=newBreakpoint.name||!this.adjustCallbacksCalled;if(breakpointChanged){this.previousBreakpoint=this.currentBreakpoint;this.currentBreakpoint=newBreakpoint}
126if(breakpointChanged){this.runBreakpointChangeCallbacks();this.adjustCallbacksCalled=!0;this.fireEvent('change');this.fireEvent('change.breakpoint')}
127this.log('window resized','window width: '+this.width,(breakpointChanged?'breakpoint changed from: '+this.previousBreakpoint.name+'':'no breakpoint change'),'current breakpoint: '+this.currentBreakpoint.name)};Responsiville.Main.prototype.runBreakpointChangeCallbacks=function(){this.fireEvent('leave.'+this.previousBreakpoint.name);this.fireEvent('enter.'+this.currentBreakpoint.name)};Responsiville.Main.prototype.calculateDimensions=function(){this.width=window.innerWidth;this.height=window.innerHeight};Responsiville.Main.prototype.windowResize=function(){this.calculateDimensions();this.adjust();this.fireEvent('resize')};Responsiville.Main.prototype.isHiDPI=function(){if(window.devicePixelRatio>1){return!0}
128var mediaQuery='(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)';if(window.matchMedia&&window.matchMedia(mediaQuery).matches){return!0}
129return!1};Responsiville.Main.prototype.isDevice=function(){var deviceAgentQuery=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;return deviceAgentQuery.test(navigator.userAgent)};Responsiville.Main.prototype.compareTo=function(testBreakpointName){var testBreakpointIndex=0;var currentBreakpointIndex=0;for(var k=0,length=this.options.breakpoints.length;k<length;k++){var breakpoint=this.options.breakpoints[k];if(breakpoint.name==this.currentBreakpoint.name){currentBreakpointIndex=k}
130if(breakpoint.name==testBreakpointName){testBreakpointIndex=k}}
131return currentBreakpointIndex-testBreakpointIndex};Responsiville.Main.prototype.is=function(breakpointNames){var breakpointNamesArray=Responsiville.splitAndTrim(breakpointNames);for(var k=0,length=breakpointNamesArray.length;k<length;k++){var testBreakpointName=breakpointNamesArray[k];if(this.compareTo(testBreakpointName)){return!0}}
132return!1};Responsiville.Main.prototype.isSmallerThan=function(testBreakpointName){return this.compareTo(testBreakpointName)<0};Responsiville.Main.prototype.isEqualOrSmallerThan=function(testBreakpointName){return this.compareTo(testBreakpointName)<=0};Responsiville.Main.prototype.isBiggerThan=function(testBreakpointName){return this.compareTo(testBreakpointName)>0};Responsiville.Main.prototype.isEqualOrBiggerThan=function(testBreakpointName){return this.compareTo(testBreakpointName)>=0};Responsiville.Main.prototype.hasGrown=function(){if(this.currentBreakpoint.name==this.previousBreakpoint.name){return!1}
133var currentBreakpointWidth=0;var previousBreakpointWidth=0;for(var k=0,length=this.options.breakpoints.length;k<length;k++){var breakpoint=this.options.breakpoints[k];if(this.currentBreakpoint.name==breakpoint.name){currentBreakpointWidth=breakpoint.width}else if(this.previousBreakpoint.name==breakpoint.name){previousBreakpointWidth=breakpoint.width}}
134if(previousBreakpointWidth===0){return!0}
135return currentBreakpointWidth>previousBreakpointWidth};Responsiville.Main.prototype.calculateCurrentBreakpoint=function(){var tempBreakpoint;for(var k=0,length=this.options.breakpoints.length;k<length;k++){var breakpoint=this.options.breakpoints[k];if(this.width<=breakpoint.width){tempBreakpoint=breakpoint;break}}
136return tempBreakpoint};Responsiville.Main.prototype.getProperty=function(name){var localStorage=window.localStorage;var settings=localStorage.getItem(this.codeName);if(settings){settings=JSON.parse(settings);return settings[name]}};Responsiville.Main.prototype.setProperty=function(name,value){var localStorage=window.localStorage;var settings=localStorage.getItem(this.codeName);if(!settings){settings={}}else{settings=JSON.parse(settings)}
137settings[name]=value;localStorage.setItem(this.codeName,JSON.stringify(settings))};Responsiville.Main.prototype.printBreakpoints=function(){var debug=this.options.debug;this.options.debug=!0;
137var toLog=['Breakpoints'];for(var k=0,length=this.options.breakpoints.length;k<length;k++){var breakpoint=this.options.breakpoints[k];toLog.push(breakpoint.name+' - '+breakpoint.width)}
138this.log(toLog.join('\n'));this.options.debug=debug}
139;/**
140 * @author  Nevma, [email protected]
141 * @license http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
142 */
143if(Responsiville.Main.AUTO_RUN){Responsiville.Main.autoRun()}
144;jQuery(function($){})
145;!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Velocity=t()}(this,function(){"use strict";var e="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},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e};function i(e){return!0===e||!1===e}function o(e){return"[object Function]"===Object.prototype.toString.call(e)}function a(e){return!(!e||!e.nodeType)}function l(e){return"number"==typeof e}function s(t){if(!t||"object"!==(void 0===t?"undefined":e(t))||t.nodeType||"[object Object]"!==Object.prototype.toString.call(t))return!1;var n=Object.getPrototypeOf(t);return!n||n.hasOwnProperty("constructor")&&n.constructor===Object}function u(e){return"string"==typeof e}function c(e){return e&&l(e.length)&&o(e.velocity)}function f(e){return e&&e!==window&&l(e.length)&&!u(e)&&!o(e)&&!a(e)&&(0===e.length||a(e[0]))}function d(e){return Array.prototype.slice.call(e,0)}function v(e,t,n,r){e&&Object.defineProperty(e,t,{configurable:!r,writable:!r,value:n})}function p(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=!0,i=!1,o=void 0;try{for(var a,l=t[Symbol.iterator]();!(r=(a=l.next()).done);r=!0){var s=a.value;if(void 0!==s&&s==s)return s}}catch(e){i=!0,o=e}finally{try{!r&&l.return&&l.return()}finally{if(i)throw o}}}var y=Date.now?Date.now:function(){return(new Date).getTime()};function g(e,t){e instanceof Element&&(e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(\\s|$)","gi")," "))}var h={};function m(e,t){var n,r,i=e[0],a=e[1];u(i)?o(a)?h[i]&&(n=h,r=i,!Object.prototype.propertyIsEnumerable.call(n,r))?console.warn("VelocityJS: Trying to override internal 'registerAction' callback",i):!0===t?v(h,i,a):h[i]=a:console.warn("VelocityJS: Trying to set 'registerAction' callback to an invalid value:",i,a):console.warn("VelocityJS: Trying to set 'registerAction' name to an invalid value:",i)}m(["registerAction",m],!0);var w=400,b={fast:200,normal:400,slow:600},S={};function x(e){var t=e[0],n=e[1];u(t)?o(n)?S[t]?console.warn("VelocityJS: Trying to override 'registerEasing' callback",t):S[t]=n:console.warn("VelocityJS: Trying to set 'registerEasing' callback to an invalid value:",t,n):console.warn("VelocityJS: Trying to set 'registerEasing' name to an invalid value:",t)}function k(e,t,n,r){return t+e*(n-t)}function O(e){return Math.min(Math.max(e,0),1)}function E(e,t){return 1-3*t+3*e}function _(e,t){return 3*t-6*e}function T(e){return 3*e}function M(e,t,n){return((E(t,n)*e+_(t,n))*e+T(t))*e}function V(e,t,n){return 3*E(t,n)*e*e+2*_(t,n)*e+T(t)}function q(){for(var e=4,t=.001,n=1e-7,r=10,i=11,o=1/(i-1),a=("Float32Array"in window),l=arguments.length,s=Array(l),u=0;u<l;u++)s[u]=arguments[u];if(4===s.length){for(var c=0;c<4;++c)if("number"!=typeof s[c]||isNaN(s[c])||!isFinite(s[c]))return;var f=O(s[0]),d=s[1],v=O(s[2]),p=s[3],y=a?new Float32Array(i):new Array(i),g=!1,h="generateBezier("+[f,d,v,p]+")",m=function(e,t,n,r){return g||b(),0===e?t:1===e?n:f===d&&v===p?t+e*(n-t):t+M(w(e),d,p)*(n-t)};return m.getControlPoints=function(){return[{x:f,y:d},{x:v,y:p}]},m.toString=function(){return h},m}function w(a){for(var l=i-1,s=0,u=1;u!==l&&y[u]<=a;++u)s+=o;var c=s+(a-y[--u])/(y[u+1]-y[u])*o,d=V(c,f,v);return d>=t?function(t,n){for(var r=0;r<e;++r){var i=V(n,f,v);if(0===i)return n;n-=(M(n,f,v)-t)/i}return n}(a,c):0===d?c:function(e,t,i){var o=void 0,a=void 0,l=0;do{(o=M(a=t+(i-t)/2,f,v)-e)>0?i=a:t=a}while(Math.abs(o)>n&&++l<r);return a}(a,s,s+o)}function b(){g=!0,f===d&&v===p||function(){for(var e=0;e<i;++e)y[e]=M(e*o,f,v)}()}}m(["registerEasing",x],!0),x(["linear",k]),x(["swing",function(e,t,n){return t+(.5-Math.cos(e*Math.PI)/2)*(n-t)}]),x(["spring",function(e,t,n){return t+(1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e))*(n-t)}]);var N=q(.42,0,1,1),A=q(0,0,.58,1),L=q(.42,0,.58,1);function J(e){return-e.tension*e.x-e.friction*e.v}function I(e,t,n){var r={x:e.x+n.dx*t,v:e.v+n.dv*t,tension:e.tension,friction:e.friction};return{dx:r.v,dv:J(r)}}function j(e,t){var n={dx:e.v,dv:J(e)},r=I(e,.5*t,n),i=I(e,.5*t,r),o=I(e,t,i),a=1/6*(n.dx+2*(r.dx+i.dx)+o.dx),l=1/6*(n.dv+2*(r.dv+i.dv)+o.dv);return e.x=e.x+a*t,e.v=e.v+l*t,e}x(["ease",q(.25,.1,.25,1)]),x(["easeIn",N]),x(["ease-in",N]),x(["easeOut",A]),x(["ease-out",A]),x(["easeInOut",L]),x(["ease-in-out",L]),x(["easeInSine",q(.47,0,.745,.715)]),x(["easeOutSine",q(.39,.575,.565,1)]),x(["easeInOutSine",q(.445,.05,.55,.95)]),x(["easeInQuad",q(.55,.085,.68,.53)]),x(["easeOutQuad",q(.25,.46,.45,.94)]),x(["easeInOutQuad",q(.455,.03,.515,.955)]),x(["easeInCubic",q(.55,.055,.675,.19)]),x(["easeOutCubic",q(.215,.61,.355,1)]),x(["easeInOutCubic",q(.645,.045,.355,1)]),x(["easeInQuart",q(.895,.03,.685,.22)]),x(["easeOutQuart",q(.165,.84,.44,1)]),x(["easeInOutQuart",q(.77,0,.175,1
145)]),x(["easeInQuint",q(.755,.05,.855,.06)]),x(["easeOutQuint",q(.23,1,.32,1)]),x(["easeInOutQuint",q(.86,0,.07,1)]),x(["easeInExpo",q(.95,.05,.795,.035)]),x(["easeOutExpo",q(.19,1,.22,1)]),x(["easeInOutExpo",q(1,0,0,1)]),x(["easeInCirc",q(.6,.04,.98,.335)]),x(["easeOutCirc",q(.075,.82,.165,1)]),x(["easeInOutCirc",q(.785,.135,.15,.86)]);var C={};function P(e,t){return l(e)?e:u(e)?b[e.toLowerCase()]||parseFloat(e.replace("ms","").replace("s","000")):null==t?void 0:P(t)}function z(e){if(i(e))return e;null!=e&&console.warn("VelocityJS: Trying to set 'cache' to an invalid value:",e)}function F(e){if(o(e))return e;null!=e&&console.warn("VelocityJS: Trying to set 'begin' to an invalid value:",e)}function H(e,t){if(o(e))return e;null==e||t||console.warn("VelocityJS: Trying to set 'complete' to an invalid value:",e)}function R(e){var t=P(e);if(!isNaN(t))return t;null!=e&&console.error("VelocityJS: Trying to set 'delay' to an invalid value:",e)}function B(e,t){var n=P(e);if(!isNaN(n)&&n>=0)return n;null==e||t||console.error("VelocityJS: Trying to set 'duration' to an invalid value:",e)}function W(e,t,n){if(u(e))return S[e];if(o(e))return e;if(Array.isArray(e)){if(1===e.length)return r=e[0],C[r]||(C[r]=function(e,t,n){return 0===e?t:1===e?n:t+Math.round(e*r)*(1/r)*(n-t)});if(2===e.length)return function e(t,n,r){var i={x:-1,v:0,tension:parseFloat(t)||500,friction:parseFloat(n)||20},o=[0],a=null!=r,l=0,s=void 0,u=void 0;for(s=a?(l=e(i.tension,i.friction))/r*.016:.016;u=j(u||i,s),o.push(1+u.x),l+=16,Math.abs(u.x)>1e-4&&Math.abs(u.v)>1e-4;);return a?function(e,t,n){return 0===e?t:1===e?n:t+o[Math.floor(e*(o.length-1))]*(n-t)}:l}(e[0],e[1],t);if(4===e.length)return q.apply(null,e)||!1}var r;null==e||n||console.error("VelocityJS: Trying to set 'easing' to an invalid value:",e)}function $(e){if(!1===e)return 0;var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return Math.min(t,60);null!=e&&console.warn("VelocityJS: Trying to set 'fpsLimit' to an invalid value:",e)}function G(e){switch(e){case!1:return 0;case!0:return!0;default:var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return t}null!=e&&console.warn("VelocityJS: Trying to set 'loop' to an invalid value:",e)}function Q(e,t){if(!1===e||u(e))return e;null==e||t||console.warn("VelocityJS: Trying to set 'queue' to an invalid value:",e)}function D(e){switch(e){case!1:return 0;case!0:return!0;default:var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return t}null!=e&&console.warn("VelocityJS: Trying to set 'repeat' to an invalid value:",e)}function U(e){if(l(e))return e;null!=e&&console.error("VelocityJS: Trying to set 'speed' to an invalid value:",e)}function Z(e){if(i(e))return e;null!=e&&console.error("VelocityJS: Trying to set 'sync' to an invalid value:",e)}var Y=void 0,X=void 0,K=void 0,ee=void 0,te=void 0,ne=void 0,re=void 0,ie=void 0,oe=void 0,ae=void 0,le=void 0,se=void 0,ue=void 0,ce=void 0,fe=void 0,de=void 0,ve=function(){function e(){t(this,e)}return n(e,null,[{key:"reset",value:function(){Y=!0,X=void 0,K=void 0,ee=0,te=w,ne=W("swing",w),re=60,ie=0,ae=980/60,le=!0,se=!0,ue="",ce=0,fe=1,de=!0}},{key:"cache",get:function(){return Y},set:function(e){void 0!==(e=z(e))&&(Y=e)}},{key:"begin",get:function(){return X},set:function(e){void 0!==(e=F(e))&&(X=e)}},{key:"complete",get:function(){return K},set:function(e){void 0!==(e=H(e))&&(K=e)}},{key:"delay",get:function(){return ee},set:function(e){void 0!==(e=R(e))&&(ee=e)}},{key:"duration",get:function(){return te},set:function(e){void 0!==(e=B(e))&&(te=e)}},{key:"easing",get:function(){return ne},set:function(e){void 0!==(e=W(e,te))&&(ne=e)}},{key:"fpsLimit",get:function(){return re},set:function(e){void 0!==(e=$(e))&&(re=e,ae=980/e)}},{key:"loop",get:function(){return ie},set:function(e){void 0!==(e=G(e))&&(ie=e)}},{key:"mobileHA",get:function(){return oe},set:function(e){i(e)&&(oe=e)}},{key:"minFrameTime",get:function(){return ae}},{key:"promise",get:function(){return le},set:function(e){void 0!==(e=function(e){if(i(e))return e;null!=e&&console.warn("VelocityJS: Trying to set 'promise' to an invalid value:",e)}(e))&&(le=e)}},{key:"promiseRejectEmpty",get:function(){return se},set:function(e){void 0!==(e=function(e){if(i(e))return e;
145null!=e&&console.warn("VelocityJS: Trying to set 'promiseRejectEmpty' to an invalid value:",e)}(e))&&(se=e)}},{key:"queue",get:function(){return ue},set:function(e){void 0!==(e=Q(e))&&(ue=e)}},{key:"repeat",get:function(){return ce},set:function(e){void 0!==(e=D(e))&&(ce=e)}},{key:"repeatAgain",get:function(){return ce}},{key:"speed",get:function(){return fe},set:function(e){void 0!==(e=U(e))&&(fe=e)}},{key:"sync",get:function(){return de},set:function(e){void 0!==(e=Z(e))&&(de=e)}}]),e}();Object.freeze(ve),ve.reset();var pe=[],ye={},ge=new Set,he=[],me=new Map,we="velocityData";function be(e){var t=e[we];if(t)return t;for(var n=e.ownerDocument.defaultView,r=0,i=0;i<he.length;i++){var o=he[i];u(o)?e instanceof n[o]&&(r|=1<<i):e instanceof o&&(r|=1<<i)}var a={types:r,count:0,computedStyle:null,cache:{},queueList:{},lastAnimationList:{},lastFinishList:{},window:n};return Object.defineProperty(e,we,{value:a}),a}var Se=window&&window===window.window,xe=Se&&void 0!==window.pageYOffset,ke={isClient:Se,isMobile:Se&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isGingerbread:Se&&/Android 2\.3\.[3-7]/i.test(navigator.userAgent),prefixElement:Se&&document.createElement("div"),windowScrollAnchor:xe,scrollAnchor:xe?window:!Se||document.documentElement||document.body.parentNode||document.body,scrollPropertyLeft:xe?"pageXOffset":"scrollLeft",scrollPropertyTop:xe?"pageYOffset":"scrollTop",className:"velocity-animating",isTicking:!1,first:void 0,last:void 0,firstNew:void 0};function Oe(e){var t=ke.last;e._prev=t,e._next=void 0,t?t._next=e:ke.first=e,ke.last=e,ke.firstNew||(ke.firstNew=e);var n=e.element;be(n).count++||function(e,t){e instanceof Element&&(e.classList?e.classList.add(t):(g(e,t),e.className+=(e.className.length?" ":"")+t))}(n,ke.className)}function Ee(e,t,n){var r=be(e);if(!1!==n&&(r.lastAnimationList[n]=t),!1===n)Oe(t);else{u(n)||(n="");var i=r.queueList[n];if(i){for(;i._next;)i=i._next;i._next=t,t._prev=i}else null===i?r.queueList[n]=t:(r.queueList[n]=null,Oe(t))}}function _e(e){var t=e._next,n=e._prev,r=null==e.queue?e.options.queue:e.queue;(ke.firstNew===e&&(ke.firstNew=t),ke.first===e?ke.first=t:n&&(n._next=t),ke.last===e?ke.last=n:t&&(t._prev=n),r)&&(be(e.element)&&(e._next=e._prev=void 0))}var Te={};function Me(e){var t=e.options,n=p(e.queue,t.queue),r=p(e.loop,t.loop,ve.loop),i=p(e.repeat,t.repeat,ve.repeat),o=8&e._flags;if(o||!r&&!i){var a=e.element,l=be(a);if(--l.count||o||g(a,ke.className),t&&++t._completed===t._total){!o&&t.complete&&(!function(e){var t=e.complete||e.options.complete;if(t)try{var n=e.elements;t.call(n,n,e)}catch(e){setTimeout(function(){throw e},1)}}(e),t.complete=null);var s=t._resolver;s&&(s(e.elements),delete t._resolver)}!1!==n&&(o||(l.lastFinishList[n]=e.timeStart+p(e.duration,t.duration,ve.duration)),function(e,t,n){if(!1!==t){u(t)||(t="");var r=be(e),i=r.queueList[t];i?(r.queueList[t]=i._next||null,n||Oe(i)):null===i&&delete r.queueList[t]}}(a,n)),_e(e)}else i&&!0!==i?e.repeat=i-1:r&&!0!==r&&(e.loop=r-1,e.repeat=p(e.repeatAgain,t.repeatAgain,ve.repeatAgain)),r&&(e._flags^=64),!1!==n&&(be(e.element).lastFinishList[n]=e.timeStart+p(e.duration,t.duration,ve.duration)),e.timeStart=e.ellapsedTime=e.percentComplete=0,e._flags&=-5}function Ve(e){var t=e[0],n=e[1],r=e[2];if((!u(t)||window[t]instanceof Object)&&(u(t)||t instanceof Object))if(u(n))if(o(r)){var i=he.indexOf(t),a=3;if(i<0&&!u(t))if(me.has(t))i=he.indexOf(me.get(t));else for(var l in window)if(window[l]===t){(i=he.indexOf(l))<0&&(i=he.push(l)-1,pe[i]={},me.set(t,l));break}if(i<0&&(i=he.push(t)-1,pe[i]={}),pe[i][n]=r,u(e[a])){var s=e[a++],c=ye[s];c||(c=ye[s]=[]),c.push(r)}!1===e[a]&&ge.add(n)}else console.warn("VelocityJS: Trying to set 'registerNormalization' callback to an invalid value:",n,r);else console.warn("VelocityJS: Trying to set 'registerNormalization' name to an invalid value:",n);else console.warn("VelocityJS: Trying to set 'registerNormalization' constructor to an invalid value:",t)}function qe(e){var t=e[0],n=e[1],r=he.indexOf(t);if(r<0&&!u(t))if(me.has(t))r=he.indexOf(me.get(t));else for(var i in window)if(window[i]===t){r=he.indexOf(i);break}return r>=0&&pe[r].hasOwnProperty(n)}function Ne(e,t){for(var n=be(e),r=void 0,i=he.length-1,o=n.types;!r&&i>=0;i--)o&1<<i&&(r=pe[i][t]);return r}function Ae(e,t,n,r){var i=ge.has(t),o=!i&&be(e);(i||o&&o.cache[t]!==n)&&(i||(o.cache[t]=n||void 0),(r=r||Ne(e,t))&&r(e,n),Ut.debug>=2&&console.info('Set "'+t+'": "'+n+'"',e))}function Le(e){if(e.indexOf("calc(")>=0){for(var t=e.split(/([\(\)])/),n=0,r=0;r<t.length;r++){var i=t[r];switch(i){case"(":n++;break;case")":n--;break;default:n&&"0"===i[0]&&(t[r]=i.replace(/^0[a-z%]+ \+ /,""))}}
145return t.join("").replace(/(?:calc)?\(([0-9\.]+[a-z%]+)\)/g,"$1")}return e}m(["registerNormalization",Ve]),m(["hasNormalization",qe]);var Je={};function Ie(e){var t=Je[e];return t||(Je[e]=e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()}))}var je=/#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})/gi,Ce=/#([a-f\d])([a-f\d])([a-f\d])/gi,Pe=/(rgba?\(\s*)?(\b[a-z]+\b)/g,ze=/rgb(a?)\(([^\)]+)\)/gi,Fe=/\s+/g,He={};function Re(e,t,n,r){return"rgba("+parseInt(t,16)+","+parseInt(n,16)+","+parseInt(r,16)+",1)"}function Be(e){return e.replace(je,Re).replace(Ce,function(e,t,n,r){return Re(0,t+t,n+n,r+r)}).replace(Pe,function(e,t,n){return He[n]?(t||"rgba(")+He[n]+(t?"":",1)"):e}).replace(ze,function(e,t,n){return"rgba("+n.replace(Fe,"")+(t?"":",1")+")"})}function We(e,t,n){if("border-box"===Qe(e,"boxSizing").toString().toLowerCase()===n){var r="width"===t?["Left","Right"]:["Top","Bottom"],i=["padding"+r[0],"padding"+r[1],"border"+r[0]+"Width","border"+r[1]+"Width"],o=0,a=!0,l=!1,s=void 0;try{for(var u,c=i[Symbol.iterator]();!(a=(u=c.next()).done);a=!0){var f=u.value,d=parseFloat(Qe(e,f));isNaN(d)||(o+=d)}}catch(e){l=!0,s=e}finally{try{!a&&c.return&&c.return()}finally{if(l)throw s}}return n?-o:o}return 0}function $e(e,t){return e.getBoundingClientRect()[t]+We(e,t,!0)+"px"}function Ge(e,t){var n=be(e),r=n.computedStyle?n.computedStyle:n.window.getComputedStyle(e,null),i=0;if(n.computedStyle||(n.computedStyle=r),"none"===r.display)switch(t){case"width":case"height":return Ae(e,"display","auto"),i=$e(e,t),Ae(e,"display","none"),String(i)}if((i=r[t])||(i=e.style[t]),"auto"===i)switch(t){case"width":case"height":i=$e(e,t);break;case"top":case"left":case"right":case"bottom":var o=Qe(e,"position");if("fixed"===o||"absolute"===o){i=e.getBoundingClientRect[t]+"px";break}default:i="0px"}return i?String(i):""}function Qe(e,t,n,r){var i=be(e),o=void 0;return ge.has(t)&&(r=!0),!r&&i&&null!=i.cache[t]?o=i.cache[t]:(n=n||Ne(e,t))&&(o=n(e),i&&(i.cache[t]=o)),Ut.debug>=2&&console.info('Get "'+t+'": "'+o+'"',e),o}var De=/^#([A-f\d]{3}){1,2}$/i,Ue={function:function(e,t,n,r,i,o){return e.call(t,r,n.length,i)},number:function(e,t,n,r,i,o){return String(e)+function(e){for(var t in ye)if(ye[t].includes(e))return t;return""}(o.fn)},string:function(e,t,n,r,i,o){return Be(e)},undefined:function(e,t,n,r,i,o){return Be(Qe(t,i,o.fn)||"")}};function Ze(t,n){var r=t.tweens=Object.create(null),i=t.elements,a=t.element,s=i.indexOf(a),c=be(a),f=p(t.queue,t.options.queue),d=p(t.options.duration,ve.duration);for(var v in n)if(n.hasOwnProperty(v)){var y=Ie(v),g=Ne(a,y),h=n[v];if(!g&&"tween"!==y){Ut.debug&&console.log('Skipping "'+v+'" due to a lack of browser support.');continue}if(null==h){Ut.debug&&console.log('Skipping "'+v+'" due to no value supplied.');continue}var m=r[y]={},w=void 0,b=void 0;if(m.fn=g,o(h)&&(h=h.call(a,s,i.length,i)),Array.isArray(h)){var x=h[1],k=h[2];w=h[0],u(x)&&(/^[\d-]/.test(x)||De.test(x))||o(x)||l(x)?b=x:u(x)&&S[x]||Array.isArray(x)?(m.easing=W(x,d),b=k):b=x||k}else w=h;m.end=Ue[void 0===w?"undefined":e(w)](w,a,i,s,y,m),null==b&&!1!==f&&void 0!==c.queueList[f]||(m.start=Ue[void 0===b?"undefined":e(b)](b,a,i,s,y,m),et(y,m,d))}}var Ye=/((?:[+\-*/]=)?(?:[+-]?\d*\.\d+|[+-]?\d+)[a-z%]*|(?:.(?!$|[+-]?\d|[+\-*/]=[+-]?\d))+.|.)/g,Xe=/^([+\-*/]=)?([+-]?\d*\.\d+|[+-]?\d+)(.*)$/;function Ke(e,t){for(var n=e.length,r=[],i=[],o=void 0,a=0;a<n;a++){if(!u(e[a]))return;""===e[a]?r[a]=[""]:r[a]=d(e[a].match(Ye)),i[a]=0,o=o||r[a].length>1}for(var l=[],s=l.pattern=[],c=function(e){if(u(s[s.length-1]))s[s.length-1]+=e;else if(e){s.push(e);for(var t=0;t<n;t++)l[t].push(null)}},f=function(){if(!(o||s.length>1)){for(var r="display"===t,i="visibility"===t,a=0;a<n;a++){var u=e[a];l[a][0]=u,l[a].easing=W(r&&"none"===u||i&&"hidden"===u||!r&&!i?"at-end":"at-start",400)}return s[0]=!1,l}},v=!0,p=0;p<n;p++)l[p]=[];for(;v;){for(var y=[],g=[],h=void 0,m=!1,w=!1,b=0;b<n;b++){var S=i[b]++,x=r[b][S];if(!x){if(b)return;for(;b<n;b++){var k=i[b]++;if(r[b][k])return f()}v=!1;break}var O=x.match(Xe);if(O){if(h)return f();var E=parseFloat(O[2]),_=O[3],T=O[1]?O[1][0]+_:void 0,M=T||_;E&&!g.includes(M)&&g.push(M),_||(E?w=!0:m=!0),y[b]=T?[E,M,!0]:[E,M]}else{if(y.length)return f();if(h){if(h!==x)return f()}else h=x}}if(h)c(h);else if(g.length)if(2===g.length&&m&&!w&&g.splice(g[0]?1:0,1),1===g.length){var V=g[0];switch(V[0]){case"+":case"-":case"*":case"/":return void(t&&console.error('Velocity: The first property must not contain a relative function "'+t+'":',e))}s.push(!1);for(var q=0;q<n;q++)l[q].push(y[q][0]);c(V)}else{c("calc(");for(var N=s.length-1,A=0;A<g.length;A++){var L=g[A],J=L[0],I="*"===J||"/"===J,j=I||"+"===J||"-"===J;I&&(s[N]+="(",c(")")),A&&c(" "+(j?J:"+")+" "),s.push(!1);for(var C=0;C<n;C++){var P=y[C],z=P[1]===L?P[0]:3===P.length?l[C-1][l[C-1].length-1]:I?1:0;l[C].push(z)}c(j?L.substring(1):L)}c(")")}}for(var F=0,H=0;F<s.length;F++){var R=s[F];u(R)?H&&R.indexOf(",")>=0?H++:R.indexOf("rgb")>=0&&(H=1):H&&(H<4?s[F]=!0:H=0)}return l}function et(e,t,n,r){var i=t.start,o=t.end;if(u(o)&&u(i)){var a=Ke([i,o],e);if(!a&&r){var l=i.match(/\d\.?\d*/g)||["0"],s=l.length,c=0;a=Ke([o.replace(/\d+\.?\d*/g,function(){return l[c++%s]}),o],e)}if(a)switch(Ut.debug&&console.log("Velocity: Sequence found:",a),a[0].percent=0,a[1].percent=1,t.sequence=a,t.easing){case S["at-start"]:case S.during:case S["at-end"]:a[0].easing=a[1].easing=t.easing}}}function tt(e){if(ke.firstNew===e&&(ke.firstNew=e._next),!(1&e._flags)){var t=e.element,n=e.tweens;p(e.options.duration,ve.duration);for(var r in n){var i=n[r];if(null==i.start){var o=Qe(e.element,r);u(o)?(i.start=Be(o),et(r,i,0,!0)):Array.isArray(o)||console.warn("bad type",i,r,o)}Ut.debug&&console.log('tweensContainer "'+r+'": '+JSON.stringify(i),t)}e._flags|=1}}function nt(e){var t=e.begin||e.options.begin;if(t)try{var n=e.elements;t.call(n,n,e)}catch(e){setTimeout(function(){throw e},1)}}function rt(e){var t=e.progress||e.options.progress;if(t)try{var n=e.elements,r=e.percentComplete,i=e.options,o=e.tween;t.call(n,n,r,Math.max(0,e.timeStart+(null!=e.duration?e.duration:null!=i.duration?i.duration:ve.duration)-vt),void 0!==o?o:String(100*r),e)}catch(e){setTimeout(function(){throw e},1)}}function it(){var e=!0,t=!1,n=void 0;try{for(var r,i=lt[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){rt(r.value)}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}lt.clear();var o=!0,a=!1,l=void 0;try{for(var s,u=at[Symbol.iterator]();!(o=(s=u.next()).done);o=!0){Me(s.value)}}catch(e){a=!0,l=e}finally{try{!o&&u.return&&u.return()}finally{if(a)throw l}}at.clear()}var ot=1e3/60,at=new Set,lt=new Set,st=function(){var e=window.performance||{};if("function"!=typeof e.now){var t=e.timing&&e.timing.navigationStart?e.timing.navigationStart:y();e.now=function(){return y()-t}}return e}(),ut=function(e){return setTimeout(e,Math.max(0,ot-(st.now()-vt)))},ct=window.requestAnimationFrame||ut,ft=void 0,dt=void 0,vt=0;try{(dt=new Worker(URL.createObjectURL(new Blob(["("+function(){var e=this,t=void 0;this.onmessage=function(n){switch(n.data){case!0:t||(t=setInterval(function(){e.postMessage(!0)},1e3/30));break;case!1:t&&(clearInterval(t),t=0);break;default:e.postMessage(n.data)}}}
145+")()"])))).onmessage=function(e){!0===e.data?pt():it()},ke.isMobile||void 0===document.hidden||document.addEventListener("visibilitychange",function(){dt.postMessage(ke.isTicking&&document.hidden)})}catch(e){}function pt(e){if(!ft){if(ft=!0,!1!==e){var t=st.now(),n=vt?t-vt:ot,r=ve.speed,i=ve.easing,o=ve.duration,a=void 0,l=void 0;if(n>=ve.minFrameTime||!vt){for(vt=t;ke.firstNew;)tt(ke.firstNew);for(a=ke.first;a&&a!==ke.firstNew;a=a._next){var s=a.element,u=be(s);if(s.parentNode&&u){var c=a.options,f=a._flags,d=a.timeStart;if(!d){var v=null!=a.queue?a.queue:c.queue;d=t-n,!1!==v&&(d=Math.max(d,u.lastFinishList[v]||0)),a.timeStart=d}16&f?a.timeStart+=n:2&f||(a._flags|=2,c._ready++)}else _e(a)}for(a=ke.first;a&&a!==ke.firstNew;a=l){var p=a._flags;if(l=a._next,2&p&&!(16&p)){var y=a.options;if(32&p&&y._ready<y._total)a.timeStart+=n;else{var g=null!=a.speed?a.speed:null!=y.speed?y.speed:r,h=a.timeStart;if(!(4&p)){var m=null!=a.delay?a.delay:y.delay;if(m){if(h+m/g>t)continue;a.timeStart=h+=m/(m>0?g:1)}a._flags|=4,0==y._started++&&(y._first=a,y.begin&&(nt(a),y.begin=void 0))}1!==g&&(a.timeStart=h+=Math.min(n,t-h)*(1-g));var w=null!=a.easing?a.easing:null!=y.easing?y.easing:i,b=a.ellapsedTime=t-h,S=null!=a.duration?a.duration:null!=y.duration?y.duration:o,x=a.percentComplete=Ut.mock?1:Math.min(b/S,1),O=a.tweens,E=64&p;for(var _ in(a.progress||y._first===a&&y.progress)&&lt.add(a),1===x&&at.add(a),O){var T=O[_],M=T.sequence,V=M.pattern,q="",N=0;if(V){for(var A=(T.easing||w)(x,0,1,_),L=0,J=0;J<M.length-1;J++)M[J].percent<A&&(L=J);for(var I=M[L],j=M[L+1]||I,C=(x-I.percent)/(j.percent-I.percent),P=E?1-C:C,z=j.easing||w||k;N<V.length;N++){var F=I[N];if(null==F)q+=V[N];else{var H=j[N];if(F===H)q+=F;else{var R=z(P,F,H,_);q+=!0!==V[N]?R:Math.round(R)}}}"tween"!==_?(1===x&&(q=Le(q)),Ae(a.element,_,q,T.fn)):a.tween=q}else console.warn("VelocityJS: Missing pattern:",_,JSON.stringify(T[_])),delete O[_]}}}}(lt.size||at.size)&&(document.hidden?dt?dt.postMessage(""):setTimeout(it,1):it())}}ke.first?(ke.isTicking=!0,document.hidden?dt?!1===e&&dt.postMessage(!0):ut(pt):ct(pt)):(ke.isTicking=!1,vt=0,document.hidden&&dt&&dt.postMessage(!1)),ft=!1}}function yt(e,t,n){if(tt(e),void 0===t||t===p(e.queue,e.options.queue,n)){if(!(4&e._flags)){var r=e.options;0==r._started++&&(r._first=e,r.begin&&(nt(e),r.begin=void 0)),e._flags|=4}for(var i in e.tweens){var o=e.tweens[i],a=o.sequence,l=a.pattern,s="",u=0;if(l)for(var c=a[a.length-1];u<l.length;u++){var f=c[u];s+=null==f?l[u]:f}Ae(e.element,i,s,o.fn)}Me(e)}}m(["finish",function(e,t,n){var r=Q(e[0],!0),i=ve.queue,o=!0===e[void 0===r?0:1];if(c(t)&&t.velocity.animations){var a=!0,l=!1,s=void 0;try{for(var u,f=t.velocity.animations[Symbol.iterator]();!(a=(u=f.next()).done);a=!0)yt(u.value,r,i)}catch(e){l=!0,s=e}finally{try{!a&&f.return&&f.return()}finally{if(l)throw s}}}else{for(;ke.firstNew;)tt(ke.firstNew);for(var d,v=ke.first;v&&(o||v!==ke.firstNew);v=d||ke.firstNew)d=v._next,t&&!t.includes(v.element)||yt(v,r,i)}n&&(c(t)&&t.velocity.animations&&t.then?t.then(n._resolver):n._resolver(t))}],!0);var gt={isExpanded:1,isReady:2,isStarted:4,isStopped:8,isPaused:16,isSync:32,isReverse:64};function ht(e,t,n,r){void 0!==t&&t!==p(e.queue,e.options.queue,n)||(r?e._flags|=16:e._flags&=-17)}function mt(e,t,n,r){var i=0===r.indexOf("pause"),o="false"!==(r.indexOf(".")>=0?r.replace(/^.*\./,""):void 0)&&Q(e[0]),a=ve.queue;if(c(t)&&t.velocity.animations){var l=!0,s=!1,u=void 0;try{for(var f,d=t.velocity.animations[Symbol.iterator]();!(l=(f=d.next()).done);l=!0){ht(f.value,o,a,i)}}catch(e){s=!0,u=e}finally{try{!l&&d.return&&d.return()}finally{if(s)throw u}}}else for(var v=ke.first;v;)t&&!t.includes(v.element)||ht(v,o,a,i),v=v._next;n&&(c(t)&&t.velocity.animations&&t.then?t.then(n._resolver):n._resolver(t))}function wt(t,n,r,i){var o=t[0],a=t[1];if(!o)return console.warn("VelocityJS: Cannot access a non-existant property!"),null;if(void 0===a&&!s(o)){if(Array.isArray(o)){if(1===n.length){var f={},d=!0,v=!1,p=void 0;try{for(var y,g=o[Symbol.iterator]();!(d=(y=g.next()).done);d=!0){var h=y.value;f[h]=Be(Qe(n[0],h))}}catch(e){v=!0,p=e}finally{try{!d&&g.return&&g.return()}finally{if(v)throw p}
145}return f}var m=[],w=!0,b=!1,S=void 0;try{for(var x,k=n[Symbol.iterator]();!(w=(x=k.next()).done);w=!0){var O=x.value,E={},_=!0,T=!1,M=void 0;try{for(var V,q=o[Symbol.iterator]();!(_=(V=q.next()).done);_=!0){var N=V.value;E[N]=Be(Qe(O,N))}}catch(e){T=!0,M=e}finally{try{!_&&q.return&&q.return()}finally{if(T)throw M}}m.push(E)}}catch(e){b=!0,S=e}finally{try{!w&&k.return&&k.return()}finally{if(b)throw S}}return m}if(1===n.length)return Be(Qe(n[0],o));var A=[],L=!0,J=!1,I=void 0;try{for(var j,C=n[Symbol.iterator]();!(L=(j=C.next()).done);L=!0){var P=j.value;A.push(Be(Qe(P,o)))}}catch(e){J=!0,I=e}finally{try{!L&&C.return&&C.return()}finally{if(J)throw I}}return A}var z=[];if(s(o)){for(var F in o)if(o.hasOwnProperty(F)){var H=!0,R=!1,B=void 0;try{for(var W,$=n[Symbol.iterator]();!(H=(W=$.next()).done);H=!0){var G=W.value,Q=o[F];u(Q)||l(Q)?Ae(G,F,o[F]):(z.push('Cannot set a property "'+F+'" to an unknown type: '+(void 0===Q?"undefined":e(Q))),console.warn('VelocityJS: Cannot set a property "'+F+'" to an unknown type:',Q))}}catch(e){R=!0,B=e}finally{try{!H&&$.return&&$.return()}finally{if(R)throw B}}}}else if(u(a)||l(a)){var D=!0,U=!1,Z=void 0;try{for(var Y,X=n[Symbol.iterator]();!(D=(Y=X.next()).done);D=!0){Ae(Y.value,o,String(a))}}catch(e){U=!0,Z=e}finally{try{!D&&X.return&&X.return()}finally{if(U)throw Z}}}else z.push('Cannot set a property "'+o+'" to an unknown type: '+(void 0===a?"undefined":e(a))),console.warn('VelocityJS: Cannot set a property "'+o+'" to an unknown type:',a);r&&(z.length?r._rejecter(z.join(", ")):c(n)&&n.velocity.animations&&n.then?n.then(r._resolver):r._resolver(n))}function bt(e,t,n){tt(e),void 0!==t&&t!==p(e.queue,e.options.queue,n)||(e._flags|=8,Me(e))}m(["option",function(e,t,n,r){var i=e[0],o=r.indexOf(".")>=0?r.replace(/^.*\./,""):void 0,a="false"!==o&&Q(o,!0),l=void 0,s=e[1];if(!i)return console.warn("VelocityJS: Cannot access a non-existant key!"),null;if(c(t)&&t.velocity.animations)l=t.velocity.animations;else{l=[];for(var u=ke.first;u;u=u._next)t.indexOf(u.element)>=0&&p(u.queue,u.options.queue)===a&&l.push(u);if(t.length>1&&l.length>1){for(var f=1,d=l[0].options;f<l.length;)if(l[f++].options!==d){d=null;break}d&&(l=[l[0]])}}if(void 0===s){var v=[],y=gt[i],g=!0,h=!1,m=void 0;try{for(var w,b=l[Symbol.iterator]();!(g=(w=b.next()).done);g=!0){var S=w.value;void 0===y?v.push(p(S[i],S.options[i])):v.push(0==(S._flags&y))}}catch(e){h=!0,m=e}finally{try{!g&&b.return&&b.return()}finally{if(h)throw m}}return 1===t.length&&1===l.length?v[0]:v}var x=void 0;switch(i){case"cache":s=z(s);break;case"begin":s=F(s);break;case"complete":s=H(s);break;case"delay":s=R(s);break;case"duration":s=B(s);break;case"fpsLimit":s=$(s);break;case"loop":s=G(s);break;case"percentComplete":x=!0,s=parseFloat(s);break;case"repeat":case"repeatAgain":s=D(s);break;default:if("_"!==i[0]){var k=parseFloat(s);s===String(k)&&(s=k);break}case"queue":case"promise":case"promiseRejectEmpty":case"easing":case"started":return void console.warn("VelocityJS: Trying to set a read-only key:",i)}if(void 0===s||s!=s)return console.warn("VelocityJS: Trying to set an invalid value:"+i+"="+s+" ("+e[1]+")"),null;var O=!0,E=!1,_=void 0;try{for(var T,M=l[Symbol.iterator]();!(O=(T=M.next()).done);O=!0){var V=T.value;x?V.timeStart=vt-p(V.duration,V.options.duration,ve.duration)*s:V[i]=s}}catch(e){E=!0,_=e}finally{try{!O&&M.return&&M.return()}finally{if(E)throw _}}n&&(c(t)&&t.velocity.animations&&t.then?t.then(n._resolver):n._resolver(t))}],!0),m(["pause",mt],!0),m(["resume",mt],!0),m(["property",wt],!0),m(["reverse",function(e,t,n,r){throw new SyntaxError("VelocityJS: The 'reverse' action is built in and private.")}],!0),m(["stop",function(e,t,n,r){var i=Q(e[0],!0),o=ve.queue,a=!0===e[void 0===i?0:1];if(c(t)&&t.velocity.animations){var l=!0,s=!1,u=void 0;try{for(var f,d=t.velocity.animations[Symbol.iterator]();!(l=(f=d.next()).done);l=!0)bt(f.value,i,o)}catch(e){s=!0,u=e}finally{try{!l&&d.return&&d.return()}finally{if(s)throw u}}}else{for(;ke.firstNew;)tt(ke.firstNew);for(var v,p=ke.first;p&&(a||p!==ke.firstNew);p=v||ke.firstNew)v=p._next,t&&!t.includes(p.element)||bt(p,i,o)}n&&(c(t)&&t.velocity.animations&&t.then?t.then(n._resolver):n._resolver(t))}],!0),m(["style",wt],!0),m(["tween",function(e,t,n,i){var o=void 0;if(t){if(1!==t.length)throw new Error("VelocityJS: Cannot tween more than one element!")}else{if(!e.length)return console.info('Velocity(<element>, "tween", percentComplete, property, end | [end, <easing>, <start>], <easing>) => value\nVelocity(<element>, "tween", percentComplete, {property: end | [end, <easing>, <start>], ...}, <easing>) => {property: value, ...}'),null;t=[document.body],o=!0}var a=e[0],c={elements:t,element:t[0],queue:!1,options:{duration:1e3},tweens:null},f={},d=e[1],v=void 0,y=void 0,g=e[2],h=0;if(u(e[1])?Te&&Te[e[1]]?(y=Te[e[1]],d={},g=e[2]):(v=!0,d=r({},e[1],e[2]),g=e[3]):Array.isArray(e[1])&&(v=!0,d={tween:e[1]},g=e[2]),!l(a)||a<0||a>1)throw new Error("VelocityJS: Must tween a percentage from 0 to 1!");
145if(!s(d))throw new Error("VelocityJS: Cannot tween an invalid property!");if(o)for(var m in d)if(d.hasOwnProperty(m)&&(!Array.isArray(d[m])||d[m].length<2))throw new Error("VelocityJS: When not supplying an element you must force-feed values: "+m);var b=W(p(g,ve.easing),w);for(var S in y?tn(c,y):Ze(c,d),c.tweens){var x=c.tweens[S],O=x.sequence,E=O.pattern,_="",T=0;if(h++,E){for(var M=(x.easing||b)(a,0,1,S),V=0,q=0;q<O.length-1;q++)O[q].percent<M&&(V=q);for(var N=O[V],A=O[V+1]||N,L=(a-N.percent)/(A.percent-N.percent),J=A.easing||k;T<E.length;T++){var I=N[T];if(null==I)_+=E[T];else{var j=A[T];if(I===j)_+=I;else{var C=J(L,I,j,S);_+=!0===E[T]?Math.round(C):C}}}f[S]=_}}if(v&&1===h)for(var P in f)if(f.hasOwnProperty(P))return f[P];return f}],!0);var St={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgrey:11119017,darkgreen:25600,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,grey:8421504,green:32768,greenyellow:11403055,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgrey:13882323,lightgreen:9498256,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};for(var xt in St)if(St.hasOwnProperty(xt)){var kt=St[xt];He[xt]=Math.floor(kt/65536)+","+Math.floor(kt/256%256)+","+kt%256}function Ot(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}function Et(e){return 1-Ot(1-e)}!function(e,t){x([e,function(e,n,r){return 0===e?n:1===e?r:Math.pow(e,2)*((t+1)*e-t)*(r-n)}])}("easeInBack",1.7),function(e,t){x([e,function(e,n,r){return 0===e?n:1===e?r:(Math.pow(--e,2)*((t+1)*e+t)+1)*(r-n)}])}("easeOutBack",1.7),function(e,t){t*=1.525,x([e,function(e,n,r){return 0===e?n:1===e?r:.5*((e*=2)<1?Math.pow(e,2)*((t+1)*e-t):Math.pow(e-2,2)*((t+1)*(e-2)+t)+2)*(r-n)}])}("easeInOutBack",1.7),x(["easeInBounce",function(e,t,n){return 0===e?t:1===e?n:Et(e)*(n-t)}]),x(["easeOutBounce",function(e,t,n){return 0===e?t:1===e?n:Ot(e)*(n-t)}]),x(["easeInOutBounce",function(e,t,n){return 0===e?t:1===e?n:(e<.5?.5*Et(2*e):.5*Ot(2*e-1)+.5)*(n-t)}]);var _t=2*Math.PI;function Tt(e,t){return function(n,r){if(void 0===r)return We(n,e,t)+"px";Ae(n,e,parseFloat(r)-We(n,e,t)+"px")}}!function(e,t,n){x([e,function(e,r,i){return 0===e?r:1===e?i:-t*Math.pow(2,10*(e-=1))*Math.sin((e-n/_t*Math.asin(1/t))*_t/n)*(i-r)}])}("easeInElastic",1,.3),function(e,t,n){x([e,function(e,r,i){return 0===e?r:1===e?i:(t*Math.pow(2,-10*e)*Math.sin((e-n/_t*Math.asin(1/t))*_t/n)+1)*(i-r)}])}("easeOutElastic",1,.3),function(e,t,n){x([e,function(e,r,i){if(0===e)return r;if(1===e)return i;var o=n/_t*Math.asin(1/t);return((e=2*e-1)<0?t*Math.pow(2,10*e)*Math.sin((e-o)*_t/n)*-.5:t*Math.pow(2,-10*e)*Math.sin((e-o)*_t/n)*.5+1)*(i-r)}])}("easeInOutElastic",1,.3*1.5),x(["at-start",function(e,t,n){return 0===e?t:n}]),x(["during",function(e,t,n){return 0===e||1===e?t:n}]),x(["at-end",function(e,t,n){return 1===e?n:t}]),Ve(["Element","innerWidth",Tt("width",!0)]),Ve(["Element","innerHe
145ight",Tt("height",!0)]),Ve(["Element","outerWidth",Tt("width",!1)]),Ve(["Element","outerHeight",Tt("height",!1)]);var Mt=/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|let|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i,Vt=/^(li)$/i,qt=/^(tr)$/i,Nt=/^(table)$/i,At=/^(tbody)$/i;function Lt(e,t){return function(n,r){if(null==r)return Qe(n,"client"+e,null,!0),Qe(n,"scroll"+e,null,!0),n["scroll"+t]+"px";var i=parseFloat(r);switch(r.replace(String(i),"")){case"":case"px":n["scroll"+t]=i;break;case"%":var o=parseFloat(Qe(n,"client"+e)),a=parseFloat(Qe(n,"scroll"+e));n["scroll"+t]=Math.max(0,a-o)*i/100}}}Ve(["Element","display",function(e,t){var n=e.style;if(void 0===t)return Ge(e,"display");if("auto"===t){var r=e&&e.nodeName,i=be(e);t=Mt.test(r)?"inline":Vt.test(r)?"list-item":qt.test(r)?"table-row":Nt.test(r)?"table":At.test(r)?"table-row-group":"block",i.cache.display=t}n.display=t}]),Ve(["HTMLElement","scroll",Lt("Height","Top"),!1]),Ve(["HTMLElement","scrollTop",Lt("Height","Top"),!1]),Ve(["HTMLElement","scrollLeft",Lt("Width","Left"),!1]),Ve(["HTMLElement","scrollWidth",function(e,t){if(null==t)return e.scrollWidth+"px"}]),Ve(["HTMLElement","clientWidth",function(e,t){if(null==t)return e.clientWidth+"px"}]),Ve(["HTMLElement","scrollHeight",function(e,t){if(null==t)return e.scrollHeight+"px"}]),Ve(["HTMLElement","clientHeight",function(e,t){if(null==t)return e.clientHeight+"px"}]);var Jt=/^(b(lockSize|o(rder(Bottom(LeftRadius|RightRadius|Width)|Image(Outset|Width)|LeftWidth|R(adius|ightWidth)|Spacing|Top(LeftRadius|RightRadius|Width)|Width)|ttom))|column(Gap|RuleWidth|Width)|f(lexBasis|ontSize)|grid(ColumnGap|Gap|RowGap)|height|inlineSize|le(ft|tterSpacing)|m(a(rgin(Bottom|Left|Right|Top)|x(BlockSize|Height|InlineSize|Width))|in(BlockSize|Height|InlineSize|Width))|o(bjectPosition|utline(Offset|Width))|p(adding(Bottom|Left|Right|Top)|erspective)|right|s(hapeMargin|troke(Dashoffset|Width))|t(extIndent|op|ransformOrigin)|w(idth|ordSpacing))$/;function It(e,t){return function(n,r){if(void 0===r)return Ge(n,e)||Ge(n,t);n.style[e]=n.style[t]=r}}function jt(e){return function(t,n){if(void 0===n)return Ge(t,e);t.style[e]=n}}var Ct=/^(webkit|moz|ms|o)[A-Z]/,Pt=ke.prefixElement;if(Pt)for(var zt in Pt.style)if(Ct.test(zt)){var Ft=zt.replace(/^[a-z]+([A-Z])/,function(e,t){return t.toLowerCase()}),Ht=Jt.test(Ft)?"px":void 0;Ve(["Element",Ft,It(zt,Ft),Ht])}else if(!qe(["Element",zt])){var Rt=Jt.test(zt)?"px":void 0;Ve(["Element",zt,jt(zt),Rt])}function Bt(e){return function(t,n){if(void 0===n)return t.getAttribute(e);t.setAttribute(e,n)}}var Wt=document.createElement("div"),$t=/^SVG(.*)Element$/,Gt=/Element$/;function Qt(e){return function(t,n){if(void 0===n)try{return t.getBBox()[e]+"px"}catch(e){return"0px"}t.setAttribute(e,n)}}Object.getOwnPropertyNames(window).forEach(function(e){var t=$t.exec(e);if(t&&"SVG"!==t[1])try{var n=t[1]?document.createElementNS("http://www.w3.org/2000/svg",(t[1]||"svg").toLowerCase()):document.createElement("svg");for(var r in n){var i=n[r];!u(r)||"o"===r[0]&&"n"===r[1]||r===r.toUpperCase()||Gt.test(r)||r in Wt||o(i)||Ve([e,r,Bt(r)])}}catch(t){console.error("VelocityJS: Error when trying to identify SVG attributes on "+e+".",t)}}),Ve(["SVGElement","width",Qt("width")]),Ve(["SVGElement","height",Qt("height")]),Ve(["Element","tween",function(e,t){if(void 0===t)return""}]);var Dt,Ut=an;if(function(e){e.Actions=h,e.Easings=S,e.Sequences=Te,e.State=ke,e.defaults=ve,e.patch=sn,e.debug=!1,e.mock=!1,e.version="2.0.6",e.Velocity=an}(Dt||(Dt={})),function(){if(document.documentMode)return document.documentMode;for(var e=7;e>4;e--){var t=document.createElement("div");if(t.innerHTML="\x3c!--[if IE "+e+"]><span></span><![endif]--\x3e",t.getElementsByTagName("span").length)return t=null,e}}()<=8)throw new Error("VelocityJS cannot run on Internet Explorer 8 or earlier");if(window){var Zt=window.jQuery,Yt=window.Zepto;sn(window,!0),sn(Element&&Element.prototype),sn(NodeList&&NodeList.prototype),sn(HTMLCollection&&HTMLCollection.prototype),sn(Zt,!0),sn(Zt&&Zt.fn),sn(Yt,!0),sn(Yt&&Yt.fn)}var Xt=function(t){if(Dt.hasOwnProperty(t))switch(void 0===t?"undefined":e(t)){case"number":case"boolean":v(Ut,t,{get:function(){return Dt[t]},set:function(e){Dt[t]=e}},!0);break;default:v(Ut,t,Dt[t],!0)}};for(var Kt in Dt)Xt(Kt);Object.freeze(Ut);var en=/(\d*\.\d+|\d+\.?|from|to)/g;function tn(e,t){var n=e.tweens=Object.create(null),r=e.element;for(var i in t.tweens)if(t.tweens.hasOwnProperty(i)){var o=Ne(r,i);if(!o&&"tween"!==i){Ut.debug&&console.log("Skipping ["+i+"] due to a lack of browser support.");continue}n[i]={fn:o,sequence:t.tweens[i]}}}m(["registerSequence",function e(t){if(s(t[0]))for(var n in t[0])t[0].hasOwnProperty(n)&&e([n,t[0][n]]);else if(u(t[0])){var r=t[0],i=t[1];
145if(u(r))if(s(i)){Te[r]&&console.warn("VelocityJS: Replacing named sequence:",r);var o={},a=new Array(100),c=[],f=Te[r]={},d=B(i.duration);for(var v in f.tweens={},l(d)&&(f.duration=d),i)if(i.hasOwnProperty(v)){var p=String(v).match(en);if(p){var y=!0,g=!1,h=void 0;try{for(var m,b=p[Symbol.iterator]();!(y=(m=b.next()).done);y=!0){var S=m.value,x="from"===S?0:"to"===S?100:parseFloat(S);if(x<0||x>100)console.warn("VelocityJS: Trying to use an invalid value as a percentage (0 <= n <= 100):",r,x);else if(isNaN(x))console.warn("VelocityJS: Trying to use an invalid number as a percentage:",r,v,S);else for(var k in o[String(x)]||(o[String(x)]=[]),o[String(x)].push(v),i[v])c.includes(k)||c.push(k)}}catch(e){g=!0,h=e}finally{try{!y&&b.return&&b.return()}finally{if(g)throw h}}}}var O=Object.keys(o).sort(function(e,t){var n=parseFloat(e),r=parseFloat(t);return n>r?1:n<r?-1:0});O.forEach(function(e){a.push.apply(o[e])});var E=!0,_=!1,T=void 0;try{for(var M,V=c[Symbol.iterator]();!(E=(M=V.next()).done);E=!0){var q=M.value,N=[],A=Ie(q),L=!0,J=!1,I=void 0;try{for(var j,C=O[Symbol.iterator]();!(L=(j=C.next()).done);L=!0){var P=j.value,z=!0,F=!1,H=void 0;try{for(var R,$=o[P][Symbol.iterator]();!(z=(R=$.next()).done);z=!0){var G=i[R.value];G[A]&&N.push(u(G[A])?G[A]:G[A][0])}}catch(e){F=!0,H=e}finally{try{!z&&$.return&&$.return()}finally{if(F)throw H}}}}catch(e){J=!0,I=e}finally{try{!L&&C.return&&C.return()}finally{if(J)throw I}}if(N.length){var Q=Ke(N,A),D=0;if(Q){var U=!0,Z=!1,Y=void 0;try{for(var X,K=O[Symbol.iterator]();!(U=(X=K.next()).done);U=!0){var ee=X.value,te=!0,ne=!1,re=void 0;try{for(var ie,oe=o[ee][Symbol.iterator]();!(te=(ie=oe.next()).done);te=!0){var ae=i[ie.value][A];ae&&(Array.isArray(ae)&&ae.length>1&&(u(ae[1])||Array.isArray(ae[1]))&&(Q[D].easing=W(ae[1],f.duration||w)),Q[D++].percent=parseFloat(ee)/100)}}catch(e){ne=!0,re=e}finally{try{!te&&oe.return&&oe.return()}finally{if(ne)throw re}}}}catch(e){Z=!0,Y=e}finally{try{!U&&K.return&&K.return()}finally{if(Z)throw Y}}f.tweens[A]=Q}}}}catch(e){_=!0,T=e}finally{try{!E&&V.return&&V.return()}finally{if(_)throw T}}}else console.warn("VelocityJS: Trying to set 'registerSequence' sequence to an invalid value:",r,i);else console.warn("VelocityJS: Trying to set 'registerSequence' name to an invalid value:",r)}}],!0);var nn=void 0;
145try{nn=Promise}catch(e){}var rn=", if that is deliberate then pass `promiseRejectEmpty:false` as an option";function on(e,t){v(t,"promise",e),v(t,"then",e.then.bind(e)),v(t,"catch",e.catch.bind(e)),e.finally&&v(t,"finally",e.finally.bind(e))}function an(){var e,t=ve,n=arguments.length<=0?void 0:arguments[0],r=s(n)&&(n.p||s(n.properties)&&!n.properties.names||u(n.properties)),y=0,g=void 0,m=void 0,w=void 0,b=void 0,S=void 0,x=void 0,k=void 0;(a(this)?g=[this]:f(this)?(g=d(this),c(this)&&(b=this.velocity.animations)):r?(g=d(n.elements||n.e),y++):a(n)?(g=d([n]),y++):f(n)&&(g=d(n),y++),g&&(v(g,"velocity",an.bind(g)),b&&v(g.velocity,"animations",b)),r)?m=p(n.properties,n.p):(e=y++,m=arguments.length<=e?void 0:arguments[e]);var O="reverse"===m,E=!O&&u(m),_=E&&Te[m],T=r?p(n.options,n.o):arguments.length<=y?void 0:arguments[y];if(s(T)&&(w=T),nn&&p(w&&w.promise,t.promise)&&(S=new nn(function(e,t){k=t,x=function(t){c(t)&&t.promise?(delete t.then,delete t.catch,delete t.finally,e(t),on(t.promise,t)):e(t)}}),g&&on(S,g)),S){var M=w&&w.promiseRejectEmpty,V=p(M,t.promiseRejectEmpty);g||E?m||(V?k("Velocity: No properties supplied"+(i(M)?"":rn)+". Aborting."):x()):V?k("Velocity: No elements supplied"+(i(M)?"":rn)+". Aborting."):x()}if(!g&&!E||!m)return S;if(E){for(var q=[],N=S&&{_promise:S,_resolver:x,_rejecter:k};y<arguments.length;){var A;q.push((A=y++,arguments.length<=A?void 0:arguments[A]))}var L=m.replace(/\..*$/,""),J=h[L];if(J){var I=J(q,g,N,m);return void 0!==I?I:g||S}if(!_)return void console.error("VelocityJS: First argument ("+m+") was not a property map, a known action, or a registered redirect. Aborting.")}var j=void 0;if(s(m)||O||_){var C={},P=t.sync;if(S&&(v(C,"_promise",S),v(C,"_rejecter",k),v(C,"_resolver",x)),v(C,"_ready",0),v(C,"_started",0),v(C,"_completed",0),v(C,"_total",0),s(w)){var z=B(w.duration);j=void 0!==z,C.duration=p(z,t.duration),C.delay=p(R(w.delay),t.delay),C.easing=W(p(w.easing,t.easing),C.duration)||W(t.easing,C.duration),C.loop=p(G(w.loop),t.loop),C.repeat=C.repeatAgain=p(D(w.repeat),t.repeat),null!=w.speed&&(C.speed=p(U(w.speed),1)),i(w.promise)&&(C.promise=w.promise),C.queue=p(Q(w.queue),t.queue),w.mobileHA&&!ke.isGingerbread&&(C.mobileHA=!0),!0===w.drag&&(C.drag=!0),(l(w.stagger)||o(w.stagger))&&(C.stagger=w.stagger),O||(null!=w.display&&(m.display=w.display,console.error('Deprecated "options.display" used, this is now a property:',w.display)),null!=w.visibility&&(m.visibility=w.visibility,console.error('Deprecated "options.visibility" used, this is now a property:',w.visibility)));var $=F(w.begin),Y=H(w.complete),X=function(e){if(o(e))return e;null!=e&&console.warn("VelocityJS: Trying to set 'progress' to an invalid value:",e)}(w.progress),K=Z(w.sync);null!=$&&(C.begin=$),null!=Y&&(C.complete=Y),null!=X&&(C.progress=X),null!=K&&(P=K)}else if(!r){var ee=0;if(C.duration=B(arguments.length<=y?void 0:arguments[y],!0),void 0===C.duration?C.duration=t.duration:(j=!0,ee++),!o(arguments.length<=y+ee?void 0:arguments[y+ee])){var te=W(arguments.length<=y+ee?void 0:arguments[y+ee],p(C&&B(C.duration),t.duration),!0);void 0!==te&&(ee++,C.easing=te)}var ne=H(arguments.length<=y+ee?void 0:arguments[y+ee],!0);void 0!==ne&&(C.complete=ne),C.delay=t.delay,C.loop=t.loop,C.repeat=C.repeatAgain=t.repeat}if(O&&!1===C.queue)throw new Error("VelocityJS: Cannot reverse a queue:false animation.");!j&&_&&_.duration&&(C.duration=_.duration);var re={options:C,elements:g,_prev:void 0,_next:void 0,_flags:P?32:0,percentComplete:0,ellapsedTime:0,timeStart:0};b=[];for(var ie=0;ie<g.length;ie++){var oe=g[ie],ae=0;if(a(oe)){if(O){var le=be(oe).lastAnimationList[C.queue];if(!(m=le&&le.tweens)){console.error("VelocityJS: Attempting to reverse an animation on an element with no previous animation:",oe);continue}ae|=64&~(64&le._flags)}var se=Object.assign({},re,{element:oe,_flags:re._flags|ae});if(C._total++,b.push(se),C.stagger)if(o(C.stagger)){var ue=ln(C.stagger,oe,ie,g.length,g,"stagger");l(ue)&&(se.delay=C.delay+ue)}else se.delay=C.delay+C.stagger*ie;C.drag&&(se.duration=C.duration-C.duration*Math.max(1-(ie+1)/g.length,.75)),_?tn(se,_):O?se.tweens=m:(se.tweens=Object.create(null),Ze(se,m)),Ee(oe,se,C.queue)}}!1===ke.isTicking&&pt(!1),b&&v(g.velocity,"animations",b)}return g||S}function ln(e,t,n,r,i,o){try{return e.call(t,n,r,i,o)}catch(e){console.error("VelocityJS: Exception when calling '"+o+"' callback:",e)}}function sn(e,t){try{v(e,(t?"V":"v")+"elocity",an)}catch(e){console.warn("VelocityJS: Error when trying to add prototype.",e)}}var un,cn=an;if(function(e){e.Actions=h,e.Easings=S,e.Sequences=Te,e.State=ke,e.defaults=ve,e.patch=sn,e.debug=!1,e.mock=!1,e.version="2.0.6",e.Velocity=an}(un||(un={})),function(){if(document.documentMode)return document.documentMode;for(var e=7;e>4;e--){var t=document.createElement("div");if(t.innerHTML="\x3c!--[if IE "+e+"]><span></span><![endif]--\x3e",t.getElementsByTagName("span").length)return t=null,e}}()<=8)throw new Error("VelocityJS cannot run on Internet Explorer 8 or earlier");if(window){var fn=window.jQuery,dn=window.Zepto;sn(window,!0),sn(Element&&Element.prototype),sn(NodeList&&NodeList.prototype),sn(HTMLCollection&&HTMLCollection.prototype),sn(fn,!0),sn(fn&&fn.fn),sn(dn,!0),sn(dn&&dn.fn)}var vn=function(t){if(un.hasOwnProperty(t))switch(void 0===t?"undefined":e(t)){case"number":case"boolean":v(cn,t,{get:function(){return un[t]},set:function(e){un[t]=e}},!0);break;default:v(cn,t,un[t],!0)}};for(var pn in un)vn(pn);return Object.freeze(cn),cn})
146;!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("velocity-animate")):"function"==typeof define&&define.amd?define(["velocity-animate"],e):e(t.Velocity)}(this,function(t){"use strict";(t=t&&t.hasOwnProperty("default")?t.default:t)("registerSequence","bounce",{duration:1e3,"0,100%":{transformOrigin:"center bottom"}
146,"0%,20%,53%,80%,100%":{transform:["translate3d(0,0px,0)","easeOutCubic"]},"40%,43%":{transform:["translate3d(0,-30px,0)","easeInQuint"]},"70%":{transform:["translate3d(0,-15px,0)","easeInQuint"]},"90%":{transform:"translate3d(0,-4px,0)"}}),t("registerSequence","flash",{duration:1e3,"0%,50%,100%":{opacity:"1"},"25%,75%":{opacity:"0"}}),t("registerSequence","headShake",{duration:1e3,easing:"easeInOut","0%":{transform:"translateX(0) rotateY(0)"},"6.5%":{transform:"translateX(-6px) rotateY(-9deg)"},"18.5%":{transform:"translateX(5px) rotateY(7deg)"},"31.5%":{transform:"translateX(-3px) rotateY(-5deg)"},"43.5%":{transform:"translateX(2px) rotateY(3deg)"},"50%":{transform:"translateX(0) rotateY(0)"}}),t("registerSequence","jello",{duration:1e3,"0%,100%":{transformOrigin:"center"},"0%,11.1%,100%":{transform:"skewX(0) skewY(0)"},"22.2%":{transform:"skewX(-12.5deg) skewY(-12.5deg)"},"33.3%":{transform:"skewX(6.25deg) skewY(6.25deg)"},"44.4%":{transform:"skewX(-3.125deg) skewY(-3.125deg)"},"55.5%":{transform:"skewX(1.5625deg) skewY(1.5625deg)"},"66.6%":{transform:"skewX(-0.78125deg) skewY(-0.78125deg)"},"77.7%":{transform:"skewX(0.390625deg) skewY(0.390625deg)"},"88.8%":{transform:"skewX(-0.1953125deg) skewY(-0.1953125deg)"}}),t("registerSequence","pulse",{duration:1e3,"0%":{transform:"scale3d(1,1,1)"},"50%":{transform:"scale3d(1.05,1.05,1.05)"},"100%":{transform:"scale3d(1,1,1)"}}),t("registerSequence","rubberBand",{duration:1e3,"0%":{transform:"scale3d(1,1,1)"},"30%":{transform:"scale3d(1.25,0.75,1)"},"40%":{transform:"scale3d(0.75,1.25,1)"},"50%":{transform:"scale3d(1.15,0.85,1)"},"65%":{transform:"scale3d(0.95,1.05,1)"},"75%":{transform:"scale3d(1.05,0.95,1)"},"100%":{transform:"scale3d(1,1,1)"}}),t("registerSequence","shake",{duration:1e3,"0%,100%":{transform:"translate3d(0,0,0)"},"10%,30%,50%,70%,90%":{transform:"translate3d(-10px,0,0)"},"20%,40%,60%,80%":{transform:"translate3d(10px,0,0)"}}),t("registerSequence","swing",{duration:1e3,"0%,100%":{transform:"rotate3d(0,0,1,0deg)",transformOrigin:"center"},"20%":{transform:"rotate3d(0,0,1,15deg)"},"40%":{transform:"rotate3d(0,0,1,-10deg)"},"60%":{transform:"rotate3d(0,0,1,5deg)"},"80%":{transform:"rotate3d(0,0,1,-5deg)"}}),t("registerSequence","tada",{duration:1e3,"0%":{transform:"scale3d(1,1,1) rotate3d(0,0,0,0)"},"10%,20%":{transform:"scale3d(0.9,0.9,0.9) rotate3d(0,0,1,-3deg)"},"30%,50%,70%,90%":{transform:"scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)"},"40%,60%,80%":{transform:"scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)"},"100%":{transform:"scale3d(1, 1, 1) rotate3d(0,0,0,0)"}}),t("registerSequence","wobble",{duration:1e3,"0%":{transform:"translate3d(0,0,0) rotate3d(0,0,0,0)"},"15%":{transform:"translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)"},"30%":{transform:"translate3d(20%,0,0) rotate3d(0,0,1,3deg)"},"45%":{transform:"translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)"},"60%":{transform:"translate3d(10%,0,0) rotate3d(0,0,1,2deg)"},"75%":{transform:"translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)"},"100%":{transform:"translate3d(0,0,0) rotate3d(0,0,0,0)"}}),t("registerSequence","bounceIn",{duration:750,easing:"easeOutCubic","0%":{opacity:"0",transform:"scale3d(0.3,0.3,0.3)"},"20%":{transform:"scale3d(1.1,1.1,1.1)"},"40%":{transform:"scale3d(0.9,0.9,0.9)"},"60%":{opacity:"1",transform:"scale3d(1.03,1.03,1.03)"},"80%":{transform:"scale3d(0.97,0.97,0.97)"},"100%":{opacity:"1",transform:"scale3d(1,1,1)"}}),t("registerSequence","bounceInDown",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(0,-3000px,0)"},"60%":{opacity:"1",transform:["translate3d(0,25px,0)","easeOutCubic"]},"75%":{transform:["translate3d(0,-10px,0)","easeOutCubic"]},"90%":{transform:["translate3d(0,5px,0)","easeOutCubic"]},"100%":{transform:["translate3d(0,0,0)","easeOutCubic"]}}),t("registerSequence","bounceInLeft",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(-3000px,0,0)"},"60%":{opacity:"1",transform:["translate3d(25px,0,0)","easeOutCubic"]},"75%":{transform:["translate3d(-10px,0,0)","easeOutCubic"]},"90%":{transform:["translate3d(5px,0,0)","easeOutCubic"]},"100%":{transform:["translate3d(0,0,0)","easeOutCubic"]}}),t("registerSequence","bounceInRight",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(3000px,0,0)"},"60%":{opacity:"1",transform:["translate3d(-25px,0,0)","easeOutCubic"]},"75%":{transform:["translate3d(10px,0,0)","easeOutCubic"]},"90%":{transform:["translate3d(-5px,0,0)","easeOutCubic"]}
146,"100%":{transform:["translate3d(0,0,0)","easeOutCubic"]}}),t("registerSequence","bounceInUp",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(0,3000px,0)"},"60%":{opacity:"1",transform:["translate3d(0,-25px,0)","easeOutCubic"]},"75%":{transform:["translate3d(0,10px,0)","easeOutCubic"]},"90%":{transform:["translate3d(0,-5px,0)","easeOutCubic"]},"100%":{transform:["translate3d(0,0,0)","easeOutCubic"]}}),t("registerSequence","bounceOut",{duration:750,"0%":{opacity:"1",transform:"scale3d(1,1,1)"},"20%":{transform:"scale3d(0.9,0.9,0.9)"},"50%,55%":{opacity:"1",transform:"scale3d(1.1,1.1,1.1)"},to:{opacity:"0",transform:"scale3d(0.3,0.3,0.3)"}}),t("registerSequence","bounceOutDown",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"20%":{transform:"translate3d(0,10px,0)"},"40%,45%":{opacity:"1",transform:"translate3d(0,-20px,0)"},"100%":{opacity:"0",transform:"translate3d(0,2000px,0)"}}),t("registerSequence","bounceOutLeft",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"20%":{opacity:"1",transform:"translate3d(20px,0,0)"},"100%":{opacity:"0",transform:"translate3d(-2000px,0,0)"}}),t("registerSequence","bounceOutRight",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"20%":{opacity:"1",transform:"translate3d(-20px,0,0)"},"100%":{opacity:"0",transform:"translate3d(2000px,0,0)"}}),t("registerSequence","bounceOutUp",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"20%":{transform:"translate3d(0,-10px,0)"},"40%,45%":{opacity:"1",transform:"translate3d(0,20px,0)"},"100%":{opacity:"0",transform:"translate3d(0,-2000px,0)"}}),t("registerSequence","fadeIn",{duration:1e3,"0%":{opacity:"0"},"100%":{opacity:"1"}}),t("registerSequence","fadeInDown",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(0,-100%,0)"},"100%":{opacity:"1",transform:"translate3d(0,0,0)"}}),t("registerSequence","fadeInDownBig",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(0,-2000px,0)"},"100%":{opacity:"1",transform:"translate3d(0,0,0)"}}),t("registerSequence","fadeInLeft",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(-100%,0,0)"},"100%":{opacity:"1",transform:"translate3d(0,0,0)"}}),t("registerSequence","fadeInLeftBig",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(-2000px,0,0)"},"100%":{opacity:"1",transform:"translate3d(0,0,0)"}}),t("registerSequence","fadeInRight",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(100%,0,0)"},"100%":{opacity:"1",transform:"translate3d(0,0,0)"}}),t("registerSequence","fadeInRightBig",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(2000px,0,0)"},"100%":{opacity:"1",transform:"translate3d(0,0,0)"}}),t("registerSequence","fadeInUp",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(0,100%,0)"},"100%":{opacity:"1",transform:"translate3d(0,0,0)"}}),t("registerSequence","fadeInUpBig",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(0,2000px,0)"},"100%":{opacity:"1",transform:"translate3d(0,0,0)"}}),t("registerSequence","fadeOut",{duration:1e3,"0%":{opacity:"1"},"100%":{opacity:"0"}}),t("registerSequence","fadeOutDown",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"100%":{opacity:"0",transform:"translate3d(0,100%,0)"}}),t("registerSequence","fadeOutDownBig",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"100%":{opacity:"0",transform:"translate3d(0,2000px,0)"}}),t("registerSequence","fadeOutLeft",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"100%":{opacity:"0",transform:"translate3d(-100%,0,0)"}}),t("registerSequence","fadeOutLeftBig",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"100%":{opacity:"0",transform:"translate3d(-2000px,0,0)"}}),t("registerSequence","fadeOutRight",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"100%":{opacity:"0",transform:"translate3d(100%,0,0)"}}),t("registerSequence","fadeOutRightBig",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"100%":{opacity:"0",transform:"translate3d(2000px,0,0)"}}),t("registerSequence","fadeOutUp",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)"},"100%":{opacity:"0",transform:"translate3d(0,-100%,0)"}}),t("registerSequence","fadeOutUpBig",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,
1460,0)"},"100%":{opacity:"0",transform:"translate3d(0,-2000px,0)"}}),t("registerSequence","flip",{duration:1e3,"0%,100%":{backfaceVisibility:"visible"},"0%":{transform:["perspective(400px) translate3d(0,0,0) rotate3d(0,1,0,-360deg) scale3d(1,1,1)","easeOut"]},"40%":{transform:["perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg) scale3d(1,1,1)","easeOut"]},"50%":{transform:["perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg) scale3d(1,1,1)","easeIn"]},"80%":{transform:["perspective(400px) translate3d(0,0,0) rotate3d(0,1,0,0) scale3d(0.95,0.95,0.95)","easeIn"]},"100%":{transform:["perspective(400px) translate3d(0,0,0) rotate3d(0,0,0,0) scale3d(1,1,1)","ease-in"]}}),t("registerSequence","flipInX",{duration:1e3,"0%,100%":{backfaceVisibility:"visible"},"0%":{opacity:"0",transform:"perspective(400px) rotate3d(1,0,0,90deg)"},"40%":{transform:["perspective(400px) rotate3d(1,0,0,-20deg)","easeIn"]},"60%":{opacity:"1",transform:"perspective(400px) rotate3d(1,0,0,10deg)"},"80%":{transform:"perspective(400px) rotate3d(1,0,0,-5deg)"},"100%":{transform:"perspective(400px) rotate3d(1,0,0,0)"}}),t("registerSequence","flipInY",{duration:1e3,"0%,100%":{backfaceVisibility:"visible"},"0%":{opacity:"0",transform:"perspective(400px) rotate3d(0,1,0,90deg)"},"40%":{transform:["perspective(400px) rotate3d(0,1,0,-20deg)","easeIn"]},"60%":{opacity:"1",transform:"perspective(400px) rotate3d(0,1,0,10deg)"},"80%":{transform:"perspective(400px) rotate3d(0,1,0,-5deg)"},"100%":{transform:"perspective(400px) rotate3d(0,1,0,0)"}}),t("registerSequence","flipOutX",{duration:750,"0%,100%":{backfaceVisibility:"visible"},"0%":{transform:"perspective(400px) rotate3d(1,0,0,0)"},"30%":{opacity:"1",transform:"perspective(400px) rotate3d(1,0,0,-20deg)"},"100%":{opacity:"0",transform:"perspective(400px) rotate3d(1,0,0,90deg)"}}),t("registerSequence","flipOutY",{duration:750,"0%,100%":{backfaceVisibility:"visible"},"0%":{transform:"perspective(400px) rotate3d(0,1,0,0)"},"30%":{opacity:"1",transform:"perspective(400px) rotate3d(0,1,0,-20deg)"},"100%":{opacity:"0",transform:"perspective(400px) rotate3d(0,1,0,90deg)"}}),t("registerSequence","lightSpeedIn",{duration:1e3,easing:"easeOut","0%":{opacity:"0",transform:"translate3d(100%,0,0) skewX(-30deg)"},"60%":{opacity:"1",transform:"translate3d(40%,0,0) skewX(20deg)"},"80%":{opacity:"1",transform:"translate3d(20%,0,0) skewX(-5deg)"},"100%":{opacity:"1",transform:"translate3d(0,0,0) skew(0)"}}),t("registerSequence","lightSpeedOut",{duration:1e3,easing:"easeIn","0%":{opacity:"1",transform:"translate3d(0,0,0) skewX(0)"},"100%":{opacity:"0",transform:"translate3d(100%,0,0) skewX(30deg)"}}),t("registerSequence","rotateIn",{duration:1e3,"0%":{opacity:"0",transform:"rotate3d(0,0,1,-200deg)",transformOrigin:"center"},"100%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"center"}}),t("registerSequence","rotateInDownLeft",{duration:1e3,"0%":{opacity:"0",transform:"rotate3d(0,0,1,-45deg)",transformOrigin:"left bottom"},"100%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"left bottom"}}),t("registerSequence","rotateInDownRight",{duration:1e3,"0%":{opacity:"0",transform:"rotate3d(0,0,1,45deg)",transformOrigin:"right bottom"},"100%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"right bottom"}}),t("registerSequence","rotateInUpLeft",{duration:1e3,"0%":{opacity:"0",transform:"rotate3d(0,0,1,45deg)",transformOrigin:"left bottom"},"100%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"left bottom"}}),t("registerSequence","rotateInUpRight",{duration:1e3,"0%":{opacity:"0",transform:"rotate3d(0,0,1,-90deg)",transformOrigin:"right bottom"},"100%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"right bottom"}}),t("registerSequence","rotateOut",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"center"},"100%":{opacity:"0",transform:"rotate3d(0,0,1,200deg)",transformOrigin:"center"}}),t("registerSequence","rotateOutDownLeft",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"left bottom"}
146,"100%":{opacity:"0",transform:"rotate3d(0,0,1,45deg)",transformOrigin:"left bottom"}}),t("registerSequence","rotateOutDownRight",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"right bottom"},"100%":{opacity:"0",transform:"rotate3d(0,0,1,-45deg)",transformOrigin:"right bottom"}}),t("registerSequence","rotateOutUpLeft",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"left bottom"},"100%":{opacity:"0",transform:"rotate3d(0,0,1,-45deg)",transformOrigin:"left bottom"}}),t("registerSequence","rotateOutUpRight",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0)",transformOrigin:"right bottom"},"100%":{opacity:"0",transform:"rotate3d(0,0,1,90deg)",transformOrigin:"right bottom"}}),t("registerSequence","slideInDown",{duration:1e3,"0%":{transform:"translate3d(0,-100%,0)",visibility:"hidden",opacity:"0"},"100%":{transform:"translate3d(0,0,0)",visibility:"visible",opacity:"1"}}),t("registerSequence","slideInLeft",{duration:1e3,"0%":{transform:"translate3d(-100%,0,0)",visibility:"hidden",opacity:"0"},"100%":{transform:"translate3d(0,0,0)",visibility:"visible",opacity:"1"}}),t("registerSequence","slideInRight",{duration:1e3,"0%":{transform:"translate3d(100%,0,0)",visibility:"hidden",opacity:"0"},"100%":{transform:"translate3d(0,0,0)",visibility:"visible",opacity:"1"}}),t("registerSequence","slideInUp",{duration:1e3,"0%":{transform:"translate3d(0,100%,0)",visibility:"hidden",opacity:"0"},"100%":{transform:"translate3d(0,0,0)",visibility:"visible",opacity:"1"}}),t("registerSequence","slideOutDown",{duration:1e3,"0%":{transform:"translate3d(0,0,0)",visibility:"visible",opacity:"1"},"100%":{transform:"translate3d(0,-100%,0)",visibility:"hidden",opacity:"0"}}),t("registerSequence","slideOutLeft",{duration:1e3,"0%":{transform:"translate3d(0,0,0)",visibility:"visible",opacity:"1"},"100%":{transform:"translate3d(-100%,0,0)",visibility:"hidden",opacity:"0"}}),t("registerSequence","slideOutRight",{duration:1e3,"0%":{transform:"translate3d(0,0,0)",visibility:"visible",opacity:"1"},"100%":{transform:"translate3d(100%,0,0)",visibility:"hidden",opacity:"0"}}),t("registerSequence","slideOutUp",{duration:1e3,"0%":{transform:"translate3d(0,0,0)",visibility:"visible",opacity:"1"},"100%":{transform:"translate3d(0,100%,0)",visibility:"hidden",opacity:"0"}}),t("registerSequence","hinge",{duration:2e3,"0%":{opacity:"1",transform:"translate3d(0,0,0) rotate3d(0,0,1,0)",transformOrigin:"top left"},"20%,60%":{transform:["translate3d(0,0,0) rotate3d(0,0,1,80deg)","easeInOut"]},"40%,80%":{opacity:"1",transform:["translate3d(0,0,0) rotate3d(0,0,1,60deg)","easeInOut"]},"100%":{opacity:"0",transform:["translate3d(0,700px,0) rotate3d(0,0,1,80deg)","easeInOut"]}}),t("registerSequence","jackInTheBox",{duration:1e3,"0%":{opacity:"0",transform:"scale(0.1) rotate(30deg)",transformOrigin:"center bottom"},"50%":{transform:"scale(0.5) rotate(-10deg)"},"70%":{transform:"scale(0.7) rotate(3deg)"},"100%":{opacity:"1",transform:"scale(1) rotate(0)"}}),t("registerSequence","rollIn",{duration:1e3,"0%":{opacity:"0",transform:"translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)"},"100%":{opacity:"1",transform:"translate3d(0,0,0) rotate3d(0,0,1,0)"}}),t("registerSequence","rollOut",{duration:1e3,"0%":{opacity:"1",transform:"translate3d(0,0,0) rotate3d(0,0,1,0)"},"100%":{opacity:"0",transform:"translate3d(100%,0,0) rotate3d(0,0,1,120deg)"}}),t("registerSequence","zoomIn",{duration:1e3,"0%":{opacity:"0",transform:"scale3d(0.3,0.3,0.3)"},"50%":{opacity:"1"},"100%":{transform:"scale3d(1,1,1)"}}),t("registerSequence","zoomInDown",{duration:1e3,"0%":{opacity:"0",transform:"scale3d(0.1,0.1,0.1) translate3d(0,-1000px,0)"},"60%":{opacity:"1",transform:["scale3d(0.475,0.475,0.475) translate3d(0,60px,0)","easeInCubic"]},"100%":{transform:["scale3d(1,1,1) translate3d(0,0,0)",[.175,.885,.32,1]]}}),t("registerSequence","zoomInLeft",{duration:1e3,"0%":{opacity:"0",transform:"scale3d(0.1,0.1,0.1) translate3d(-1000px,0,0)"},"60%":{opacity:"1",transform:["scale3d(0.475,0.475,0.475) translate3d(10px,0,0)","easeInCubic"]}
vendor: 19,120 bytes, lines 146-152
146,"100%":{transform:["scale3d(1,1,1) translate3d(0,0,0)",[.175,.885,.32,1]]}}),t("registerSequence","zoomInRight",{duration:1e3,"0%":{opacity:"0",transform:"scale3d(0.1,0.1,0.1) translate3d(1000px,0,0)"},"60%":{opacity:"1",transform:["scale3d(0.475,0.475,0.475) translate3d(-10px,0,0)","easeInCubic"]},"100%":{transform:["scale3d(1,1,1) translate3d(0,0,0)",[.175,.885,.32,1]]}}),t("registerSequence","zoomInUp",{duration:1e3,"0%":{opacity:"0",transform:"scale3d(0.1,0.1,0.1) translate3d(0,1000px,0)"},"60%":{opacity:"1",transform:["scale3d(0.475,0.475,0.475) translate3d(0,-60px,0)","easeInCubic"]},"100%":{transform:["scale3d(1,1,1) translate3d(0,0,0)",[.175,.885,.32,1]]}}),t("registerSequence","zoomOut",{duration:1e3,"0%":{transform:"scale3d(1,1,1)"},"50%":{opacity:"1"},"100%":{opacity:"0",transform:"scale3d(0.3,0.3,0.3)"}}),t("registerSequence","zoomOutDown",{duration:1e3,"0%":{transform:"scale3d(1,1,1) translate3d(0,0,0)"},"40%":{opacity:"1",transform:["scale3d(0.475,0.475,0.475) translate3d(0,60px,0)",[.55,.055,.675,.19]]},"100%":{opacity:"0",transform:["scale3d(0.1,0.1,0.1) translate3d(0,-1000px,0)",[.175,.885,.32,1]]}}),t("registerSequence","zoomOutLeft",{duration:1e3,"0%":{opacity:"1",transform:"scale(1) translate3d(0,0,0)",transformOrigin:"left center"},"40%":{opacity:"1",transform:"scale(0.475) translate3d(42px,0,0)"},"100%":{opacity:"0",transform:"scale(0.1) translate3d(-2000px,0,0)",transformOrigin:"left center"}}),t("registerSequence","zoomOutRight",{duration:1e3,"0%":{opacity:"1",transform:"scale(1) translate3d(0,0,0)",transformOrigin:"right center"},"40%":{opacity:"1",transform:"scale(0.475) translate3d(-42px, 0, 0)"},"100%":{opacity:"0",transform:"scale(0.1) translate3d(2000px, 0, 0)",transformOrigin:"right center"}}),t("registerSequence","zoomOutUp",{duration:1e3,"0%":{transform:"scale3d(1,1,1) translate3d(0,0,0)"},"40%":{opacity:"1",transform:["scale3d(0.475,0.475,0.475) translate3d(0,-60px,0)",[.55,.055,.675,.19]]},"100%":{opacity:"0",transform:["scale3d(0.1,0.1,0.1) translate3d(0,1000px,0)",[.175,.885,.32,1]]}})})
147;/*! Hammer.JS - v2.0.8 - 2016-04-23
148 * http://hammerjs.github.io/
149 *
150 * Copyright (c) 2016 Jorik Tangelder;
151 * Licensed under the MIT license */
152!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(b,c,d){var e="DEPRECATED METHOD: "+c+"\n"+d+" AT \n";return function(){var c=new Error("get-stack-trace"),d=c&&c.stack?c.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function s(a){return Array.prototype.slice.call(a,0)}function t(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];r(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ma.length;){if(c=ma[g],e=c?c+f:b,e in a)return e;g++}return d}function v(){return ua++}function w(b){var c=b.ownerDocument||b;return c.defaultView||c.parentWindow||a}function x(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){k(a.options.enable,[a])&&c.handler(b)},this.init()}function y(a){var b,c=a.options.inputClass;return new(b=c?c:xa?M:ya?P:wa?R:L)(a,z)}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&Ea&&d-e===0,g=b&(Ga|Ha)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:pa(a.pointers[c].clientX),clientY:pa(a.pointers[c].clientY)},c++;return{timeStamp:ra(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY}}function E(a){var b=a.length;if(1===b)return{x:pa(a[0].clientX),y:pa(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),"identifier",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ga|Ha)&&delete d[g[e].identifier],e++;return h.length?[t(f.concat(h),"identifier",!0),h]:void 0}function R(){x.apply(this,arguments);var a=j(this.handler,this);this.touch=new P(this.manager,a),this.mouse=new L(this.manager,a),this.primaryTouch=null,this.lastTouches=[]}function S(a,b){a&Ea?(this.primaryTouch=b.changedPointers[0].identifier,T.call(this,b)):a&(Ga|Ha)&&T.call(this,b)}function T(a){var b=a.changedPointers[0];if(b.identifier===this.primaryTouch){var c={x:b.clientX,y:b.clientY};this.lastTouches.push(c);var d=this.lastTouches,e=function(){var a=d.indexOf(c);a>-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d<this.lastTouches.length;d++){var e=this.lastTouches[d],f=Math.abs(b-e.x),g=Math.abs(c-e.y);if(db>=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(d){b[d]=c?a.CSS.supports("touch-action",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?"cancel":a&qb?"end":a&pb?"move":a&ob?"start":""}function $(a){return a==Ma?"down":a==La?"up":a==Ja?"left":a==Ka?"right":""}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||""}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=["","webkit","Moz","MS","ms","o"],na=b.createElement("div"),oa="function",pa=Math.round,qa=Math.abs,ra=Date.now;la="function"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;c<arguments.length;c++){var e=arguments[c];if(e!==d&&null!==e)for(var f in e)e.hasOwnProperty(f)&&(b[f]=e[f])}return b}:Object.assign;var sa=h(function(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a},"extend","Use `assign`."),ta=h(function(a,b){return sa(a,b,!0)},"merge","Use `assign`."),ua=1,va=/mobile|tablet|ip(ad|hone|od)|android/i,wa="ontouchstart"in a,xa=u(a,"PointerEvent")!==d,ya=wa&&va.test(navigator.userAgent),za="touch",Aa="pen",Ba="mouse",Ca="kinect",Da=25,Ea=1,Fa=2,Ga=4,Ha=8,Ia=1,Ja=2,Ka=4,La=8,Ma=16,Na=Ja|Ka,Oa=La|Ma,Pa=Na|Oa,Qa=["x","y"],Ra=["clientX","clientY"];x.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(w(this.element),this.evWin,this.domHandler)}};var Sa={mousedown:Ea,mousemove:Fa,mouseup:Ga},Ta="mousedown",Ua="mousemove mouseup";i(L,x,{handler:function(a){var b=Sa[a.type];b&Ea&&0===a.button&&(this.pressed=!0),b&Fa&&1!==a.which&&(b=Ga),this.pressed&&(b&Ga&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:Ba,srcEvent:a}))}});var Va={pointerdown:Ea,pointermove:Fa,pointerup:Ga,pointercancel:Ha,pointerout:Ha},Wa={2:za,3:Aa,4:Ba,5:Ca},Xa="pointerdown",Ya="pointermove pointerup pointercancel";a.MSPointerEvent&&!a.PointerEvent&&(Xa="MSPointerDown",Ya="MSPointerMove MSPointerUp MSPointerCancel"),i(M,x,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Va[d],f=Wa[a.pointerType]||a.pointerType,g=f==za,h=r(b,a.pointerId,"pointerId");e&Ea&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a="touchstart",_a="touchstart touchmove touchend touchcancel";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb="touchstart touchmove touchend touchcancel";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,"touchAction"),fb=eb!==d,gb="compute",hb="auto",ib="manipulation",jb="none",kb="pan-x",lb="pan-y",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(" "))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(tb|nb)))return!1;a++}return!0},recognize:function(a){var b=la({},a);return k(this.options.enable,[this,b])?(this.state&(rb|sb|tb)&&(this.state=nb),this.state=this.process(b),void(this.state&(ob|pb|qb|sb)&&this.tryEmit(b))):(this.reset(),void(this.state=tb))},process:function(a){},getTouchAction:function(){},reset:function(){}},i(aa,Y,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(ob|pb),e=this.attrTest(a);return d&&(c&Ha||!e)?b|sb:d||e?c&Ga?b|qb:b&ob?b|pb:ob:tb}}),i(ba,aa,{defaults:{event:"pan",threshold:10,pointers:1,direction:Pa},getTouchAction:function(){var a=this.options.direction,b=[];return a&Na&&b.push(lb),a&Oa&&b.push(kb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Na?(e=0===f?Ia:0>f?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?"in":"out";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaT
152ime<b.time;if(this.reset(),a.eventType&Ea&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ga)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||H(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=rb,this.tryEmit()},b.interval,this),ob):rb}return tb},failTimeout:function(){return this._timer=e(function(){this.state=tb},this.options.interval,this),tb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==rb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ha.VERSION="2.0.8",ha.defaults={domEvents:!1,touchAction:gb,enable:!0,inputTarget:null,inputClass:null,preset:[[ea,{enable:!1}],[ca,{enable:!1},["rotate"]],[fa,{direction:Na}],[ba,{direction:Na},["swipe"]],[ga],[ga,{event:"doubletap",taps:2},["tap"]],[da]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ub=1,vb=2;ia.prototype={set:function(a){return la(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?vb:ub},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&rb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===vb||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(ob|pb|qb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Y)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;if(a=this.get(a)){var b=this.recognizers,c=r(b,a);-1!==c&&(b.splice(c,1),this.touchAction.update())}return this},on:function(a,b){if(a!==d&&b!==d){var c=this.handlers;return g(q(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this}},off:function(a,b){if(a!==d){var c=this.handlers;return g(q(a),function(a){b?c[a]&&c[a].splice(r(c[a],b),1):delete c[a]}),this}},emit:function(a,b){this.options.domEvents&&ka(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ja(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},la(ha,{INPUT_START:Ea,INPUT_MOVE:Fa,INPUT_END:Ga,INPUT_CANCEL:Ha,STATE_POSSIBLE:nb,STATE_BEGAN:ob,STATE_CHANGED:pb,STATE_ENDED:qb,STATE_RECOGNIZED:rb,STATE_CANCELLED:sb,STATE_FAILED:tb,DIRECTION_NONE:Ia,DIRECTION_LEFT:Ja,DIRECTION_RIGHT:Ka,DIRECTION_UP:La,DIRECTION_DOWN:Ma,DIRECTION_HORIZONTAL:Na,DIRECTION_VERTICAL:Oa,DIRECTION_ALL:Pa,Manager:ia,Input:x,TouchAction:V,TouchInput:P,MouseInput:L,PointerEventInput:M,TouchMouseInput:R,SingleTouchInput:N,Recognizer:Y,AttrRecognizer:aa,Tap:ga,Pan:ba,Swipe:fa,Pinch:ca,Rotate:ea,Press:da,on:m,off:n,each:g,merge:ta,extend:sa,assign:la,inherit:i,bindFn:j,prefixed:u});var wb="undefined"!=typeof a?a:"undefined"!=typeof self?self:{};wb.Hammer=ha,"function"==typeof define&&define.amd?define(function(){return ha}):"undefined"!=typeof module&&module.exports?module.exports=ha:a[c]=ha}(window,document,"Hammer")
153;(function(factory){if(typeof define==='function'&&define.amd){define(['jquery','hammerjs'],factory)}else if(typeof exports==='object'){factory(require('jquery'),require('hammerjs'))}else{factory(jQuery,Hammer)}}(function($,Hammer){function hammerify(el,options){var $el=$(el);if(!$el.data("hammer")){$el.data("hammer",new Hammer($el[0],options))}}
154$.fn.hammer=function(options){return this.each(function(){hammerify(this,options)})};Hammer.Manager.prototype.emit=(function(originalEmit){return function(type,data){originalEmit.call(this,type,data);$(this.element).trigger({type:type,gesture:data})}})(Hammer.Manager.prototype.emit)}))
155;/**
156 * @copyright
157 * Copyright (C) 2016 Nevma.gr
158 * 
159 * @license 
160 * This program is free software: you can redistribute it and/or modify it under
161 * the terms of the GNU General Public License as published by the Free 
162 * Software Foundation, either version 3 of the License, or (at your option)
163 * any later version.
164 *  
165 * This program is distributed in the hope that it will be useful, but WITHOUT
166 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
167 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
168 * details.
169 *  
170 * You should have received a copy of the GNU General Public License along with
171 * this program. If not, see <http://www.gnu.org/licenses/>.
172 */
173(function(e){e.greekUppercase=function(r,n){var i=this;i.TEXT_NODE=3;i.element=r;i.$element=e(r);i.traverseTree=function(r){if(r.get(0).nodeType==i.TEXT_NODE){i.replaceTextNode(r);return}r.contents().each(function(){i.traverseTree(e(this))})};i.replaceTextNode=function(e){var r=e.get(0);if(r.nodeType!=i.TEXT_NODE){return}var n=r.nodeValue;var t;for(t in i.options.chars){while(n.indexOf(t)>-1){n=n.replace(t,i.options.chars[t])}}if(i.options.replaceDiaeresis){for(t in i.options.charsDiaeresis){while(n.indexOf(t)>-1){n=n.replace(t,i.options.charsDiaeresis[t])}}}r.nodeValue=n};i.initialise=function(){i.options=e.extend({},e.greekUppercase.options,n);i.traverseTree(i.$element)};i.initialise()};e.greekUppercase.options={runOnDefault:!0,defaultSelector:".greek-uppercase",replaceDiaeresis:!0,chars:{"ά":"α","έ":"ε","ή":"η","ί":"ι","ό":"ο","ύ":"υ","ώ":"ω","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ό":"Ο","Ύ":"Υ","Ώ":"Ω","ς":"σ"},charsDiaeresis:{"ϊ":"ι","ΐ":"ι","'ι'":"ι","ϋ":"υ","ΰ":"υ","'υ'":"υ","Ϊ":"Ι","΅Ι":"Ι","'Ι'":"Ι","Ϋ":"Υ","΅Υ":"Υ","'Υ'":"Υ"}};e.fn.greekUppercase=function(r){return this.each(function(){new e.greekUppercase(this,r)})};e(function(){if(e.greekUppercase.options.runOnDefault){e(e.greekUppercase.options.defaultSelector).each(function(){e.greekUppercase(this)})}})})(jQuery)
174;jQuery.fn.popup=function(B,D){function t(a,c){var b=null;return function(){var e=this,d=arguments;clearTimeout(b);b=setTimeout(function(){a.apply(e,d)},c)}}function u(a,c){var b,d;b=(jQuery(window).width()-a)/2;d=(jQuery(window).height()-c)/2;return{x:b,y:d}}function m(b){var c="popup-overlay-"+a.ID;f=jQuery("#"+c);0==f.length&&(jQuery(document.body).append('<div id = "'+c+'" class = "'+a.overlayElementClass+'"></div>'),f=jQuery("#"+c),v=f.css("opacity"),f.css("display","block").css("position","fixed").css("opacity",0).css("z-index",a.startZIndex).css("top","0").css("left","0"),f.click(function(){h()}));f.css("display","block").css("width",jQuery(window).width()).css("height",jQuery(window).height());f.animate({opacity:""+v},{queue:!1,duration:a.animationDuration,easing:a.animationEasing,complete:function(){b&&b()}})}function C(b){f.animate({opacity:0}
174,{queue:!1,duration:a.animationDuration,easing:a.animationEasing,complete:function(){f.css("display","none");b&&b()}})}function n(){var b="temp-popup-contents-"+(new Date).getTime();jQuery(document.body).append('<div class = "'+a.popupContentsElementClass+'" id = "'+b+'" style = "visibility: hidden; float: left;"/>');b=jQuery("#"+b);b.append(g.clone());var c=b.outerWidth(),e=b.outerHeight();a.debug&&(console.log("Contents width: "+c),console.log("Contents height: "+e));d.find("."+a.popupContentsContainerElementClass).css("width",c).css("height",e);b.remove();-1<a.maxWidthFactor&&c>a.maxWidthFactor*jQuery(window).width()&&(c*=a.maxWidthFactor*jQuery(window).width()/c);-1<a.maxHeightFactor&&e>a.maxHeightFactor*jQuery(window).height()&&(e*=a.maxHeightFactor*jQuery(window).height()/e);-1<a.maxWidth&&c>a.maxWidth&&(c=a.maxWidth);-1<a.maxHeight&&e>a.maxHeight&&(e=a.maxHeight);-1<a.minWidth&&c<a.minWidth&&(c=a.minWidth);-1<a.minHeight&&e<a.minHeight&&(e=a.minHeight);-1<a.width&&(c=a.width);-1<a.height&&(e=a.height);a.debug&&(console.log("Final width: "+c),console.log("Final height: "+e));return{width:Math.ceil(c),height:Math.ceil(e)}}function k(b,c,e){if(p){var f=u(0,0);d.css("visibility","visible").css("z-index",a.startZIndex+1).css("top",f.y).css("left",f.x).css("width",0).css("height",0);q=d.outerWidth();r=d.outerHeight();w=d.css("overflow");p=!1}d.css("visibility","visible").css("z-index",a.startZIndex+1);d.find("."+a.popupContentsContainerElementClass).css("width",b).css("height",c);a.debug&&(console.log("Extra width: "+q),console.log("Extra height: "+r));f=u(b+q,c+r);d.animate({top:f.y,left:f.x,width:b,height:c},{duration:a.animationDuration,easing:a.animationEasing,queue:!1,complete:function(){d.css("overflow",w);var c=d.find("."+a.popupContentsContainerElementClass).width()-d.find("."+a.popupContentsElementClass).outerWidth();a.debug&&console.log("Adjustment: "+c);0<c&&(d.css("width",b+c),d.find("."+a.popupContentsContainerElementClass).css("width",b+c));e&&e()}})}function x(b,c){var e="popup-"+a.ID;d=jQuery("#"+e);0==d.length&&(jQuery(document.body).append('<div id = "'+e+'" class = "'+a.popupElementClass+'" style = "visibility: hidden; position: fixed;"></div>'),d=jQuery("#"+e));g=b instanceof jQuery?b.clone():jQuery(b);d.empty();m(function(){d.append('<a class = "'+a.closeElementClass+'" href = "#" title = "'+a.closeElementTitle+'"><span>x</span></a><div class = "'+a.popupContentsContainerElementClass+'"><div class = "'+a.popupContentsElementClass+'"></div></div>').find("."+a.popupContentsElementClass).append(g);d.find("."+a.closeElementClass).css("z-index",a.startZIndex+2).click(function(){h();return!1});var b=n();k(b.width,b.height,c)})}function y(b,c){var e=jQuery(window).width(),d=jQuery(window).height();if(z!=e||A!=d)z=e,A=d,a.beforeResizeCallback&&a.beforeResizeCallback(),m(function(){var b=n();k(b.width,b.height,function(){c&&c();a.afterResizeCallback&&a.afterResizeCallback()})})}function h(b){k(0,0,function(){jQuery(window).off("resize",l);jQuery(window).off("scroll",l);d.remove();C(function(){f.remove();a.destroyCallback&&a.destroyCallback();b&&b();p=!0})})}var a={animationDuration:300,animationEasing:"swing",overlayElementClass:"overlay",popupElementClass:"popup",popupContentsElementClass:"popup-contents",popupContentsContainerElementClass:"popup-contents-container",closeElementClass:"close",closeElementTitle:"Close this popup",maxWidthFactor:.75,maxHeightFactor:.75,width:-1,height:-1,maxWidth:-1,maxHeight:-1,minWidth:-1,minHeight:-1,aspectRatio:4/3,keepAspectRatio:!1,startZIndex:1,createCallback:null,destroyCallback:null,beforeResizeCallback:null,afterResizeCallback:null,debug:!1};jQuery.extend(a,B);a.ID=""+(new Date).getTime();var f,d,g,p=!0,v,w,q=0,r=0,z=jQuery(window).width(),A=jQuery(window).height(),l=t(y,100);x(this,a.createCallback);jQuery(document).keydown(function(a){27==(a.charCode||a.keyCode)&&h()});jQuery(window).on("resize",l);jQuery(window).on("scroll",l);return{destroy:h,position:t(y,100),getPopup:function(){return d},getContents:function(){return g},setContents:x,appendContents:function(b,c){g=g.add(b);d.find("."+a.popupContentsElementClass).append(b);m(function(){var b=n();k(b.width,b.height,function(){c&&c();a.afterResizeCallback&&a.afterResizeCallback()})})},getParameter:function(b){return a[b]},setParameter:function(b,c){a[b]=c}}}
175;jQuery.fn.anchorPopup=function(e,t){var a,r={selector:".popup-element",imageClass:"popup-image",imageTypes:["jpg","jpeg","png","gif"],imageShowNextPrevious:!0,imageShowNavigation:!0,imageNextTitle:"Next",imagePreviousTitle:"Previous",imageMaxWidthFactor:.8,imageMaxHeightFactor:.8,snippetClass:"popup-snippet",iframeClass:"popup-iframe",iframeDefaultWidth:600,iframeDefaultHeight:400,aja
175xClass:"popup-ajax",ajaxRequestMethodType:"GET",loaderHTML:'<p class = "popup-loader"><span>Please wait...</span></p>',loaderImageGalleryHTML:'<p class = "popup-loader-image-gallery"><span>Please wait...</span></p>',ajaxErrorHTML:'<p class = "popup-error"><span>There was a problem fetching the data.</span></p>',popupAttributePrefix:"popup-",popupParameters:{},debug:!1};jQuery.extend(r,e,!0);var i=null;(i=this.length>0?this:jQuery(r.selector)).click((function(){var e=jQuery(this);if(g(e))return h(e),!1;if(function(e){if(e.hasClass(r.snippetClass))return!0;var t=e.attr("href");if(0==jQuery.trim(t).indexOf("#"))return!0;return!1}(e))return function(e){r.debug&&console.log("Snippet");var t=e.attr("href"),i=jQuery(t).clone().css("visibility","visible").css("display","block");i.length>0&&(a=jQuery(i).popup(r.popupParameters))}(e),!1;if(function(e){if(e.hasClass(r.iframeClass))return!0;return!1}(e))return function(e){r.debug&&console.log("Iframe");var t=e.attr("href");r.debug&&console.log(t);var i=c(e,"width"),o=c(e,"height");i||(i=r.iframeDefaultWidth);o||(o=r.iframeDefaultHeight);r.debug&&(console.log("width: "+i),console.log("height: "+o));a=jQuery('<iframe src = "'+t+'" frameborder = "0" width = "'+i+'" height = "'+o+'" marginwidth = "0" marginheight = "0" style = "display: block; border: none; width: '+i+"px; height: "+o+'px;"></iframe>').popup(r.popupParameters)}(e),!1;if(function(e){if(e.hasClass(r.ajaxClass))return!0;return!1}(e))return function(e){r.debug&&console.log("Ajax");var t=e.attr("href");r.debug&&console.log(t);a=jQuery(r.loaderHTML).popup(jQuery.extend({},r.popupParameters,{createCallback:function(){jQuery.ajax({url:t,type:r.ajaxRequestMethodType,success:function(e){a.setContents(e)},error:function(){a.setContents(r.ajaxErrorHTML)},dataType:"html"})}}))}(e),!1;return!0}));for(var o,n,u,l=!0,s=0,p=i.length;s<p;s++)if(!g(jQuery(i.get(s)))){l=!1;break}function g(e){if(e.hasClass(r.imageClass))return!0;var t=e.attr("href"),a=t.lastIndexOf(".");if(a>0)for(var i=t.substring(a+1),o=0,n=r.imageTypes.length;o<n;o++)if(i==r.imageTypes[o])return!0;return!1}function h(e,t){r.debug&&console.log("Image");var o=e.attr("href"),n=i.index(e),u=e.attr("title");u||(u=""),r.debug&&console.log("Image: "+o);var s=function(){var e=new Image;e.src=o,e.onload=function(){!function(e,t,o){r.debug&&console.log("Image loaded");var n={width:jQuery(window).width(),height:jQuery(window).height()},u=r.imageMaxWidthFactor,s=r.imageMaxHeightFactor;n.width=n.width*u,n.height=n.height*s;var p=!1,g=1,c=1;e.width>n.width&&(p=!0,g=n.width/e.width,r.debug&&console.log("Width scale: "+g)),e.height>n.height&&(p=!0,c=n.height/e.height,r.debug&&console.log("Height scale: "+c));var f=1;p&&(f=Math.min(g,c),r.debug&&console.log("Final scale: "+f));var d=Math.floor(f*e.width),m=Math.floor(f*e.height),y='<img src = "'+e.src+'" alt = "'+t+'" title = "'+t+'" style = "display: block; width: '+d+"px; height: "+m+'px;"/>';l&&(y+='<p class = "popup-image-info">'+t+" (image "+(o+1)+" of "+i.length+")</p>",o>0&&(y+='<a class = "popup-previous" href = "#'+(o-1)+'" title = "'+r.imagePreviousTitle+" ("+o+" of "+i.length+' images)">'+r.imagePreviousTitle+"</a>"),o<i.length-1&&(y+='<a class = "popup-next"href = "#'+(o+1)+'" title = "'+r.imageNextTitle+" ("+(o+2)+" of "+i.length+' images)">'+r.imageNextTitle+"</a>")),a.setContents(y,(function(){jQuery(".popup-next, .popup-previous").click((function(){var e=jQuery(this).attr("href"),t=new Number(e.substring(1)).valueOf();return r.debug&&console.log("Index: "+t),h(jQuery(i.get(t)),!0),!1}))}))}(e,u,n)}};a&&t?(r.debug&&console.log("Use existing popup"),a.appendContents(r.loaderImageGalleryHTML,s)):(r.debug&&console.log("Create popup anew"),a=jQuery(r.loaderHTML).popup(jQuery.extend({},r.popupParameters,{maxWidthFactor:1,maxHeightFactor:1,createCallback:s})))}function c(e,t){for(var a=e.attr("class").split(" "),i=null,o=0,n=a.length;o<n;o++){var u=r.popupAttributePrefix+t+":";0==a[o].indexOf(u)&&r.debug&&(i=jQuery.trim(a[o].substring(u.length)))}return i}return i.length<2&&(l=!1),r.debug&&console.log("All images: "+l),l&&jQuery(document).keydown((o=function(e){var t=e.charCode||e.keyCode;37==t?jQuery(".popup-previous").click():39==t&&jQuery(".popup-next").click()},n=200,u=null,function(){var e=this,t=arguments;clearTimeout(u),u=setTimeout((function(){o.apply(e,t)}),n)})),{destroy:function(){a.destroy()}}}
176;/**
177 * Creates and initialises the accordion. 
178 * 
179 * @class
180 * @extends   Responsiville.Debug
181 * @extends   Responsiville.Events
182 * 
183 * @author    Nevma, [email protected]
184 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
185 * 
186 * @fires     Responsiville.Accordion#init
187 * 
188 * @classdesc A responsive accordion for the Responsiville framework. An 
189 *            accordion is a drawer-like user interface element with multiple
190 *            container which can be open one or many at a time.
191 *
192 * @param {Object} options The initialisation options of the module.
193 *
194 * @property {Object}  options              The options that define the object
195 *                                          behaviour.
196 * @property {boolean} options.exclusive    Whether multiple accordion panels 
197 *                                          accordion can be simultaneously open
198 *                                          or not. 
199 * @property {boolean}
199 options.slug         A special codename for the instance
200 *                                          of the element, to be used as a
201 *                                          class on its container and as a key
202 *                                          in arrays where it is grouped with
203 *                                          other elements of its kind. 
204 * @property {boolean} options.debug        Whether to print debug messages in
205 *                                          the browser console.
206 * @property {string}  options.container    Selector for the element that
207 *                                          contains the accordion contents. It
208 *                                          is also possible to pass a DOM
209 *                                          element or a  jQuery object here as
210 *                                          well.
211 * @property {string}  options.panel        Selector for the element that 
212 *                                          contains each independent accordion
213 *                                          part. 
214 * @property {string}  options.openClass    Class added to each accordion panel 
215 *                                          when it is opened.
216 * @property {string}  options.openingClass Class added to an open accordion
217 *                                          panel while it is being closed.
218 * @property {string}  options.closingClass Class added to a closed accordion
219 *                                          panel while it is being opened.
220 * @property {string}  options.header       Selector for the header element of
221 *                                          each accordion panel. 
222 * @property {string}  options.excerpt      Selector for the optional excerpt 
223 *                                          element of each panel.
224 * @property {string}  options.content      Selector for the content element of
225 *                                          each panel.
226 * @property {string}  options.footer       Selector for the footer element of
227 *                                          each accordion panel. 
228 * @property {string}  options.effect       The effect to use when opening and 
229 *                                          closing each accordion panel (none, 
230 *                                          slide, fade).
231 * @property {int}     options.duration     The amount of time that the opening
232 *                                          and closing of each accordion panel
233 *                                          takes.
234 * @property {int}     options.delay        The amount of time to delay before
235 *                                          beginning opening or closing each
236 *                                          accordion panel.
237 * @property {int}     options.startAt      The index of the panel to show as
238 *                                          open in the beginning (zero or
239 *                                          negative for none).
240 * @property {string}  options.enter        Comma separated list of breakpoints
241 *                                          in which the accordion enters, wihch
242 *                                          means it is enabled.
243 * @property {string}  options.leave        Comma separated list of breakpoints
244 *                                          in which the accordion leaves, which
245 *                                          means it is disabled.
246 */
247Responsiville.Accordion=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
248this.options={};this.options=jQuery.extend(this.options,Responsiville.Accordion.defaults,options);this.codeName='responsiville.accordion';this.responsiville=Responsiville.Main.getInstance();this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$container=jQuery(this.options.container);this.$panels=this.$container.find(this.options.panel);for(var key in this.options){var value=this.$container.data('responsiville-accordion-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
249if(this.options.slug==''){Responsiville.Accordion.elementsCounter=Responsiville.Accordion.elementsCounter!==undefined?++Responsiville.Accordion.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Accordion.elementsCounter}
250var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$container.data('responsiville-accordion-enter'),leave:this.$container.data('responsiville-accordion-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
251if(this.$container.length===0){this.log('Responsiville.Accordion instantiation error: no accordions foun
251d ('+this.options.container+').');return}
252this.$container.data('responsiville-api',this);this.$container.data('responsiville-accordion-api',this);this.$container.addClass(this.options.slug);this.enabled=!1;this.setupEvents();this.log('accordion initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Accordion,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Accordion,Responsiville.Events);Responsiville.Accordion.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Accordion.defaults={debug:!1,exclusive:!1,slug:'',container:'.responsiville-accordion',panel:'.responsiville-accordion-panel',openClass:'responsiville-accordion-panel-open',openingClass:'responsiville-accordion-panel-opening',closingClass:'responsiville-accordion-panel-closing',header:'.responsiville-accordion-header',excerpt:'.responsiville-accordion-excerpt',content:'.responsiville-accordion-content',footer:'.responsiville-accordion-footer',effect:'slide',duration:0,delay:0,startAt:-1,enter:'small, mobile, tablet, laptop, desktop, large, xlarge',leave:''};Responsiville.Accordion.autoRun=function(){jQuery(Responsiville.Accordion.defaults.container).each(function(){new Responsiville.Accordion({debug:Responsiville.Main.getInstance().options.debug,container:this})})};Responsiville.Accordion.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
253var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
254if(this.responsiville.is(this.options.enter)){this.enable()}
255if(this.options.startAt>0){this.openPanel(this.$panels.eq(this.options.startAt-1))}};Responsiville.Accordion.prototype.enable=function(){if(this.enabled){return}
256this.log('enable accordion');this.enabled=!0;this.$container.addClass('responsiville-accordion-enabled');this.$panels.find(this.options.header).on('click',this.getBoundFunction(this.headerClick)).end().find(this.options.content).css('display','none');this.fireEvent('enabled')};Responsiville.Accordion.prototype.disable=function(){if(!this.enabled){return}
257this.log('disable accordion');this.enabled=!1;this.$container.removeClass('responsiville-accordion-enabled');this.$panels.find(this.options.header).off('click',this.getBoundFunction(this.headerClick)).end().find(this.options.content).css('display','block');this.fireEvent('disabled')};Responsiville.Accordion.prototype.headerClick=function(event){this.log('accordion header clicked');var $header=jQuery(event.target);var $panel=$header.closest(this.options.panel);var $content=$panel.find(this.options.content);var $tempPanel=null;if($content.is(':visible')){this.closePanel($panel)}else{if(this.options.exclusive){for(var k=0,length=this.$panels.length;k<length;k++){$tempPanel=this.$panels.eq(k);if($tempPanel.get(0)===$panel.get(0)){continue}
258this.closePanel($tempPanel)}}
259this.openPanel($panel)}
260return!1};Responsiville.Accordion.prototype.openPanel=function($panel){this.log('accordion opening panel');this.fireEvent('opening');var dimensions=this.calculatePanelContentsHeight($panel);console.log(dimensions.height);$content=$panel.find(this.options.content);$panel.addClass(this.options.openingClass);if(this.options.effect=='slide'){$content.css({display:'block',height:0});$content.velocity({height:dimensions.height},{delay:this.options.delay,duration:this.options.duration,complete:(function(){$panel.removeClass(this.options.openingClass);$panel.addClass(this.options.openClass);this.fireEvent('opened')}).bind(this)})}else if(this.options.effect=='fade'){$content.css({display:'block',height:auto,opacity:0});$content.velocity({opacity:1},{delay:this.options.delay,duration:this.options.duration,complete:(function(){$panel.removeClass(this.options.openingClass);$panel.addClass(this.options.openClass);this.fireEvent('opened')}).bind(this)})}else if(this.options.effect=='none'){$content.css({display:'block',height:auto});$panel.removeClass(this.options.openingClass);$panel.addClass(this.options.openClass);this.fireEvent('opened')}};Responsiville.Accordion.prototype.closePanel=function($panel){this.log('accordion closing panel');this.fireEvent('closing');$content=$panel.find(this.options.content);$panel.addClass(this.options.closingClass);if(this.options.effect=='slide'){$content.velocity({height:0},{delay:this.options.delay,duration:this.options.duration,complete:(function(){$panel.removeClass(this.options.closingClass);$panel.removeClass(this.options.openClass);$content.css('display','none');this.fireEvent('closed')}).bind(this)})}else if(this.options.effect=='fade'){$content.velocity('fadeOut',{delay:this.options.delay,duration:this.options.duration,complete:(function(){$panel.removeClass(this.options.closingClass);$panel.removeClass(this.options.openClass);$content.css('display','none');this.fireEvent('closed')}).bind(this)})}else if(this.options.effect=='none'){$content.velocity({height:0},{delay:this.options.delay,duration:this.options.duration,complete:(function(){$panel.removeClass(this.options.closingClass);$panel.removeClass(this.options.openClass);$content.css('display','none');this.fireEvent('closed')}).bind(this)})}};Responsiville.Accordion.prototype.calculatePanelContentsHeight=function($panel){var width=$panel.width();jQuery('<div class="responsiville-accordion-calculate-dimensions '+this.options.slug+'"/>').append($panel.find('.responsiville-accordion-content').clone()).appendTo($panel);var $tempContents=jQuery('.responsiville-accordion-calculate-dimensions.'+this.options.slug);$tempContents.css('width',width);$tempContents.find('.responsiville-accordion-content').css('height','auto');var height=$tempContents.outerHeight();console.log(height);$tempContents.remove();var dimensions={width:width,height:height}
261return dimensions}
262;/**
263 * Creates and initialises the drawers. 
264 * 
265 * @class
266 * @extends   Responsiville.Debug
267 * @extends   Responsiville.Events
268 * 
269 * @author    Nevma, [email protected]
270 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
271 * 
272 * @fires     Responsiville.Drawers#init
273 * 
274 * @classdesc A drawers element is an element that opens and closes like an
275 *            an accordion, only it is self contained and has no header/title
276 *            element like the accordion. Instead it automatically creates an
277 *            open/close button.
278 *
279 * @param {Object} options The initialisation options of the module.
280 * 
281 * @property {Object}  options           The options that define the object
282 *                                       behaviour.
283 * @property {boolean} options.debug     Whether to print debug messages in the 
284 *                                       browser console.
285 * @property {boolean}
285 options.slug      A special codename for the instance of
286 *                                       the element, to be used as a class on 
287 *                                       its container and as a key in arrays 
288 *                                       where it is grouped with other elements
289 *                                       of its kind. 
290 * @property {boolean} options.exclusive Whether multiple drawers panels 
291 *                                       drawers can be simultaneously open or
292 *                                       not. 
293 * @property {boolean} options.container The container element of the drawers
294 *                                       panels.
295 * @property {boolean} options.element   The selector or element that is the 
296 *                                       actual panel which opens and closes. It
297 *                                       has to be inside the container element.
298 * @property {boolean} options.effect    The visual effect to use for opening
299 *                                       and closing the elements.
300 * @property {boolean} options.duration  The duration of the visual effect when
301 *                                       opening and closing the elements.
302 * @property {string}  options.enter     Comma separated list of breakpoints in 
303 *                                       which the drawers enters, wihch means
304 *                                       it is enabled.
305 * @property {string}  options.leave     Comma separated list of breakpoints in 
306 *                                       which the drawers leaves, which means 
307 *                                       it is disabled.
308 */
309Responsiville.Drawers=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
310this.options={};this.options=jQuery.extend(this.options,Responsiville.Drawers.defaults,options);this.codeName='responsiville.drawers';this.responsiville=Responsiville.Main.getInstance();this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$container=jQuery(this.options.container);for(var key in this.options){var value=this.$container.data('responsiville-drawers-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
311if(this.options.slug==''){Responsiville.Drawers.elementsCounter=Responsiville.Drawers.elementsCounter!==undefined?++Responsiville.Drawers.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Drawers.elementsCounter}
312var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$container.data('responsiville-drawers-enter'),leave:this.$container.data('responsiville-drawers-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
313if(this.$container.length===0){this.log('Responsiville.Drawers instantiation error: no drawers found ('+this.options.container+').');return}
314if(typeof this.$container.data('responsiville-drawers-api')!=='undefined'){this.log('Responsiville.Drawers has already run for element: ('+this.options.container+').');return}
315this.$container.data('responsiville-api',this);this.$container.data('responsiville-drawers-api',this);this.$container.addClass(this.options.slug);this.$elements=this.$container.find(this.options.element);this.enabled=!1;this.setupEvents();this.log('drawers initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Drawers,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Drawers,Responsiville.Events);Responsiville.Drawers.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Drawers.defaults={debug:!1,exclusive:!1,slug:'',container:'.responsiville-drawers',element:'ul',effect:'slide',startAt:0,duration:300,enter:'small, mobile, tablet, laptop, desktop, large, xlarge',leave:''};Responsiville.Drawers.autoRun=function(){jQuery(Responsiville.Drawers.defaults.container).each(function(){new Responsiville.Drawers({debug:Responsiville.Main.getInstance().options.debug,container:this})})};Responsiville.Drawers.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
316var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
317if(this.responsiville.is(this.options.enter)){this.enable()}
318if(this.options.startAt>0){this.openElement(this.$elements.eq(this.options.startAt-1))}};Responsiville.Drawers.prototype.enable=function(){if(this.enabled){return}
319this.log('enable drawers');this.enabled=!0;for(var k=0,length=this.$elements.length;k<length;k++){var $element=this.$elements.eq(k);if($element.parent().find('.responsiville-drawers-button').length==0){$element.parent().append('<button class="responsiville-drawers-button"></button>')}}
320for(var k=0,length=this.$elements.length;k<length;k++){var $element=this.$elements.eq(k);$element.parent().addClass('responsiville-drawers-parent');$element.addClass('responsiville-drawers-element').siblings('.responsiville-drawers-button').on('click',this.getBoundFunction(this.buttonClick))}
321this.fireEvent('enabled')};Responsiville.Drawers.prototype.disable=function(){if(!this.enabled){return}
322this.log('disable drawers');this.enabled=!1;for(var k=0,length=this.$elements.length;k<length;k++){var $element=this.$elements.eq(k);$element.parent().removeClass('responsiville-drawers-parent');$element.addClass('responsiville-drawers-element').siblings('.responsiville-drawers-button').off('click',this.getBoundFunction(this.buttonClick))}
323this.fireEvent('disabled')};Responsiville.Drawers.prototype.buttonClick=function(event){var $element=jQuery(event.target).siblings(this.options.element);if($element.is(':visible')){this.closeElement($element)}else{this.openElement($element)}};Responsiville.Drawers.prototype.openElement=function($element){this.log('opening drawers');this.fireEvent('opening');$element.addClass('responsiville-drawers-element-opening');$element.velocity('slideDown',{duration:this.options.duration,complete:(function(){$element.removeClass('responsiville-drawers-element-opening');$element.addClass('responsiville-drawers-element-open');$element.siblings('.responsiville-drawers-button').addClass('responsiville-drawers-button-open');this.fireEvent('opened')}).bind(this)})};Responsiville.Drawers.prototype.closeElement=function($element){this.log('closing drawers');this.fireEvent('closing');$element.addClass('responsiville-drawers-element-closing');$element.velocity('slideUp',{duration:this.options.duration,complete:(function(){$element.removeClass('responsiville-drawers-element-closing');$element.removeClass('responsiville-drawers-element-open');$element.siblings('.responsiville-drawers-button').removeClass('responsiville-drawers-button-open');this.fireEvent('closed')}).bind(this)})}
324;/**
325 * Creates and initialises the equal heights elements. 
326 * 
327 * @class
328 * @extends   Responsiville.Debug
329 * @extends   Responsiville.Events
330 * 
331 * @author    Nevma, [email protected]
332 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
333 * 
334 * @fires     Responsiville.Equalheights#init
335 * 
336 * @classdesc A utility class that takes a set of elements and gives them all
337 *            the same height, ie the height of the tallest of them. It is 
338 *            responsive and allows for grouping the elements in rows. It can 
339 *            run in an automatic way so that it groups elements in the same 
340 *            way that they naturally flow in rows as they are being rendered by
341 *            the browser.
342 *
343 * @param {Object} options The initialisation options of the module.
344 * 
345 * @property {boolean} options.debug       Whether to print debug messages in
346 *                                         the  browser console.
347 * @property {boolean}
347 options.slug        A special codename for the instance
348 *                                         of the element, to be used as a class
349 *                                         on its container and as a key in
350 *                                         arrays where it is grouped with other
351 *                                         elements of its kind. 
352 * @property {string}  options.container   The parent element under which the 
353 *                                         elements will be found. If null then 
354 *                                         the direct parent of the elements
355 *                                         will be taken into account.
356 * @property {string}  options.elements    The element that contains the
357 *                                         elements which will eventually take
358 *                                         up the same  height. If left null
359 *                                         then the direct elements if the
360 *                                         parent will be taken into account.
361 * @property {string}  options.children    Sometimes it's not the actual
362 *                                         elements themselves that we want to
363 *                                         make equal height but some other
364 *                                         elements inside them, so that we can
365 *                                         have consistent rows of of content.
366 *                                         This option is a selector that
367 *                                         defines which children inside the
368 *                                         specified elements should become
369 *                                         equal height.
370 * @property {string}  options.resize      Whether to also run on window resize,
371 *                                         as well as each breakpoint change. Of
372 *                                         course, throttled.
373 * @property {string}  options.checkImages Whether to check for images inside
374 *                                         the elements that are going to get
375 *                                         equal heights and run when the images
376 *                                         have all been loaded and all element
377 *                                         heights have been finalised.
378 * @property {string}  options.enter       Comma separated list of breakpoints
379 *                                         in which the module enters, wihch
380 *                                         means it is enabled.
381 * @property {string}  options.leave       Comma separated list of breakpoints
382 *                                         in which the module leaves, which
383 *                                         means it is disabled.
384 */
385Responsiville.Equalheights=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
386this.options=jQuery.extend(this.options,Responsiville.Equalheights.defaults,options);this.codeName='responsiville.equalheights';this.responsiville=Responsiville.Main.getInstance();this.imagesLoaded=0;this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$container=jQuery(this.options.container);for(var key in this.options){var value=this.$container.data('responsiville-equalheights-'+key);if(typeof value!=='undefined'){this.options[key]=value}}
387if(this.options.slug==''){Responsiville.Equalheights.elementsCounter=Responsiville.Equalheights.elementsCounter!==undefined?++Responsiville.Equalheights.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Equalheights.elementsCounter}
388var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$container.data('responsiville-equalheights-enter'),leave:this.$container.data('responsiville-equalheights-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
389if(options.elements===undefined){this.$elements=this.$container.find(this.options.elements);if(this.$elements.length===0){this.$elements=this.$container.children()}}else{this.$elements=this.$container.find(this.options.elements)}
390if(this.$elements.length===0){this.log('Responsiville.Equalheights instantiation error: no elements found ('+this.options.elements+').');return}
391this.$container.data('responsiville-api',this);this.$container.data('responsiville-equalheights-api',this);this.$container.addClass(this.options.slug);this.$images=[];this.enabled=!1;this.setupEvents();this.log('equalheights initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Equalheights,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Equalheights,Responsiville.Events);Responsiville.Equalheights.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Equalheights.defaults={debug:!1,slug:'',container:'.responsiville-equalheights',elements:'.responsiville-equalheights-element',children:null,resize:!0,checkImages:!0,enter
391:'small, mobile, tablet, laptop, desktop, large, xlarge',leave:''};Responsiville.Equalheights.autoRun=function(){jQuery(Responsiville.Equalheights.defaults.container).each(function(){new Responsiville.Equalheights({debug:Responsiville.Main.getInstance().options.debug,container:this})})};Responsiville.Equalheights.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
392var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
393if(this.responsiville.is(this.options.enter)){this.enable()}};Responsiville.Equalheights.prototype.enable=function(){this.log('enable equalheights');if(!this.enabled){this.responsiville.on('change',this.getBoundFunction(this.runElements));if(this.options.resize){this.responsiville.on('resize',this.getBoundFunction(this.runElements))}
394this.runElements();this.enabled=!0;if(this.options.checkImages){this.$images=this.$elements.find('img');var images=[];for(k=0,length=this.$images.length;k<length;k++){var image=this.$images.eq(k).attr('src');images.push(image);if(Responsiville.hasImageLoaded(image)){this.imagesLoaded++}}
395Responsiville.onImagesLoaded(images,{single:this.getBoundFunction(this.imageLoaded)})}}
396this.fireEvent('enabled')};Responsiville.Equalheights.prototype.disable=function(){this.log('disable equalheights');if(this.enabled){this.responsiville.off('change',this.getBoundFunction(this.runElements));if(this.options.resize){this.responsiville.off('resize',this.getBoundFunction(this.runElements))}
397if(this.options.children){this.$elements.find(this.options.children).css('height','auto')}else{this.$elements.css('height','auto')}
398this.enabled=!1}
399this.fireEvent('disabled')};Responsiville.Equalheights.prototype.imageLoaded=function(event){this.imagesLoaded++;if(this.imagesLoaded==this.$images.length){this.runElements()}
400this.fireEvent('image.loaded',[event])};Responsiville.Equalheights.prototype.imageError=function(event){this.imagesLoaded++;if(this.imagesLoaded==this.$images.length){this.runElements()}
401this.fireEvent('image.error',[event])};Responsiville.Equalheights.prototype.equalise=function($elements){var k=0;var m=0;var height=0;var maxHeight=0;var $element=null;if(this.options.children){var childrenSelectors=Responsiville.splitAndTrim(this.options.children);var childrenSelector=null;for(m=0,length=childrenSelectors.length;m<length;m++){childrenSelector=childrenSelectors[m];maxHeight=0;for(k=0,length=$elements.length;k<length;k++){$element=$elements.eq(k).find(childrenSelector);$element.css('height','auto');height=$element.outerHeight();maxHeight=height>maxHeight?height:maxHeight}
402$elements.find(childrenSelector).css('height',maxHeight+'px')}}else{for(k=0,length=$elements.length;k<length;k++){$element=$elements.eq(k);$element.css('height','auto');height=$element.outerHeight();maxHeight=height>maxHeight?height:maxHeight}
403$elements.css('height',maxHeight+'px')}};Responsiville.Equalheights.prototype.runElements=function(){this.log('equalising heights');this.fireEvent('running.elements');var k=0;var $elements=this.$elements;while($elements.length>0){var $row=jQuery();while($elements.length>0){var $currentElement=$elements.eq(0);if(!$currentElement.is(':visible')){$elements=$elements.slice(1);continue}
404if($row.length==0){$row=$row.add($currentElement);$elements=$elements.slice(1);continue}
405var currentElementRect=$currentElement.get(0).getBoundingClientRect();var previousElementRect=$row.eq($row.length-1).get(0).getBoundingClientRect();var isChangingRow=Math.round(currentElementRect.left)<Math.round(previousElementRect.right);if(isChangingRow){break}else{$row=$row.add($currentElement);$elements=$elements.slice(1);continue}}
406this.equalise($row)}
407this.fireEvent('run.elements')}
408;/**
409 * Lazy loading images utility.
410 * 
411 * @class
412 * @extends   Responsiville.Debug
413 * @extends   Responsiville.Events
414 * 
415 * @author    Nevma, [email protected]
416 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
417 * 
418 * @fires     Responsiville.Lazymg#init
419 * 
420 * @classdesc Causes an image to lazy load. This means that it tries to prevent 
421 *            the image from loading during normal page load time and makes it
422 *            load the moment it appears in the browser viewport.
423 *
424 * @param {Object} options The initialisation options of the module.
425 * 
426 * @property {Object}  options               The options that define the object
427 *                                           behaviour.
428 * @property {boolean} options.debug         Whether to print debug messages in
429 *                                           the browser console.
430 * @property {boolean}
430 options.slug          A special codename for the instance
431 *                                           of the element, to be used as a
432 *                                           class on its container and as a key
433 *                                           in arrays where it is grouped with
434 *                                           other elements of its kind. 
435 * @property {boolean} options.element       The image element to run on.
436 * @property {boolean} options.src           The image url to be lazy loaded.
437 * @property {boolean} options.cssBackground Signifies that the image to be lazy 
438 *                                           loaded is actually in the CSS
439 *                                           background of the given element. 
440 * @property {integer} options.offsetTop     How much to delay the parallax
441 *                                           effect in terms of space, after
442 *                                           the watched element has appeared in
443 *                                           the browser viewport.
444 * @property {integer} options.offsetBottom  How much to make completion faster
445 *                                           in terms of space for the parallax
446 *                                           effect.
447 * @property {string}  options.enter         Comma separated list of breakpoints
448 *                                           in which the module enters, which
449 *                                           means it is enabled.
450 * @property {string}  options.leave         Comma separated list of breakpoints
451 *                                           in which the module leaves, which
452 *                                           means it is disabled.
453 */
454Responsiville.Lazymg=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
455this.options={};this.options=jQuery.extend(this.options,Responsiville.Lazymg.defaults,options);this.codeName='responsiville.lazymg';this.responsiville=Responsiville.Main.getInstance();this.enabled=!1;this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$element=jQuery(this.options.element);for(var key in this.options){var value=this.$element.data('responsiville-lazymg-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
456if(this.options.slug==''){Responsiville.Lazymg.elementsCounter=Responsiville.Lazymg.elementsCounter!==undefined?++Responsiville.Lazymg.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Lazymg.elementsCounter}
457var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$element.data('responsiville-lazymg-enter'),leave:this.$element.data('responsiville-lazymg-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
458if(this.$element.length===0){this.log('Responsiville.Lazymg instantiation error: no lazymg elements found ('+this.options.element+').');return}
459this.$element.data('responsiville-api',this);this.$element.data('responsiville-lazymg-api',this);this.$element.addClass(this.options.slug);this.setupEvents();this.log('lazymg initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Lazymg,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Lazymg,Responsiville.Events);Responsiville.Lazymg.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Lazymg.defaults={debug:!1,slug:'',element:'.responsiville-lazymg',src:'',cssBackground:!1,offsetTop:-100,offsetBottom:0,enter:'small, mobile, tablet, laptop, desktop, large, xlarge',leave:''};Responsiville.Lazymg.autoRun=function(){jQuery(Responsiville.Lazymg.defaults.element).each(function(){new Responsiville.Lazymg({debug:Responsiville.Main.getInstance().options.debug,element:this})})};Responsiville.Lazymg.getElement=function(){return this.$element};Responsiville.Lazymg.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
460var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}};Responsiville.Lazymg.prototype.enable=function(){if(this.enabled){return}
461this.log('enable lazymg');if(this.$element.attr('src')){if(!Responsiville.hasImageLoaded(this.$element.get(0))){this.options.src=this.$element.attr('src');this.$element.attr('src','');new Responsiville.Parallax({watch:this.$element,runOnce:!0,offsetTop:this.options.offsetTop,offsetBottom:this.options.offsetBottom,onAppear:this.getBoundFunction(this.appearImageBySrc)})}else{this.$element.addClass('responsiville-lazymg-loaded');this.log('image already loaded: '+this.$element.attr('src'))}}
461else if(this.options.cssBackground){this.$element.css('background-image','');new Responsiville.Parallax({watch:this.$element,runOnce:!0,offsetTop:this.options.offsetTop,offsetBottom:this.options.offsetBottom,onAppear:this.getBoundFunction(this.appearImageByCSSBg)})}else{this.$element.attr('src','');new Responsiville.Parallax({watch:this.$element,runOnce:!0,offsetTop:this.options.offsetTop,offsetBottom:this.options.offsetBottom,onAppear:this.getBoundFunction(this.appearImageBySrc)})}
462this.enabled=!0;this.fireEvent('enabled')};Responsiville.Lazymg.prototype.appearImageBySrc=function(){this.log('lazymg appearing');this.$element.addClass('responsiville-lazymg-loading');Responsiville.onImagesLoaded([this.options.src],{single:(function(image){this.$element.attr('src',this.options.src);this.$element.removeClass('responsiville-lazymg-loading');this.$element.addClass('responsiville-lazymg-loaded');jQuery(this.$element).closest('.responsiville-equalheights').each(function(){jQuery(this).data('responsiville-equalheights-api').runElements()})}).bind(this)});this.fireEvent('appear')};Responsiville.Lazymg.prototype.appearImageByCSSBg=function(){this.log('lazymg appearing css bg');this.$element.addClass('responsiville-lazymg-loading');Responsiville.onImagesLoaded([this.options.src],{single:(function(image){this.$element.css('background-image','url('+this.options.src+')');this.$element.removeClass('responsiville-lazymg-loading');this.$element.addClass('responsiville-lazymg-loaded');jQuery(this.$element).closest('.responsiville-equalheights').each(function(){jQuery(this).data('responsiville-equalheights-api').runElements()})}).bind(this)});this.fireEvent('appear')};Responsiville.Lazymg.prototype.disable=function(){this.log('disable lazymg');this.disabled=!0;this.fireEvent('disabled')}
463;/**
464 * Creates and initialises the megamenu. 
465 * 
466 * @class
467 * @extends   Responsiville.Debug
468 * @extends   Responsiville.Events
469 * 
470 * @author    Nevma, [email protected]
471 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
472 *
473 * @fires     Responsiville.Megamenu#init
474 * 
475 * @classdesc The megamenu is either a real "mega" menu or simply a dropdown 
476 *            menu. It makes no difference actually. It is a menu that opens 
477 *            when an event (eg a mouseover) on an activator is triggered and 
478 *            hides when the mouse hovers away from the activator or the actual
479 *            menu itself. It is not designed to be multi level.
480 * 
481 * @param {Object} options The initialisation options of the module.
482 *
483 * @property {Object}  options              The options that define the object
484 *                                          behaviour.
485 * @property {boolean} options.debug        Whether to print debug messages in 
486 *                                          the browser console.
487 * @property {boolean} options.slug         A special codename for the instance
488 *                                          of the element, to be used as a 
489 *                                          class on its container and as a key
490 *                                          in arrays where it is grouped with
491 *                                          other elements of its kind. 
492 * @property {string}  options.activator    Selector for the element on whose 
493 *                                          mouse over the megamenu opens.
494 * @property {boolean} options.external     Whether the element that is the
495 *                                          megamenu lies externally, ie 
496 *                                          somewhere in the rest of the page or
497 *                                          or it is a sibling of the activator.
498 * @property {string}  options.element      Selector for the element that 
499 *                                          actually is the megamenu. Has to be
500 *                                          a sibling of the activator. If left
501 *                                          null then the first sibling of the
502 *                                          activator is taken into account as a
503 *                                          best guess.
504 * @property {string}  options.enter        Comma separated list of breakpoints 
505 *                                          in which the megamenu enters, wihch
506 *                                          means it is enabled.
507 * @property {string}  options.leave        Comma separated list of breakpoints 
508 *                                          in which the megamenu leaves, which
509 *                                          means it is disabled.
510 * @property {string}  options.effect       The effect to use when opening and 
511 *                                          closing the megamenu. Possible 
512 *                                          values are: none, slide, slide-ltr,
513 *                                          fade. 
514 * @property {string}  options.elementClass Class to add to the megamenu element
515 *                                          when it is enabled.
516 * @property {string}  options.parentClass  Class to add to the parent element
517 *                                          of the megamenu activator.
518 * @property {string}  options.parentActive Class to add to the parent element
519 *                                          when the megamenu is open and the
520 *                                          user is hovering over is children.
521 * @property {string}  options.openClass    The class to add to the megamenu 
522 *                                          while it is open.
523 * @property {string}  options.openingClass The class to add to the megamenu 
524 *                                          when it is being opened.
525 * @property {string}  options.closingClass The class to add to the megamenu 
526 *                                          when it is being closed.
527 * @property {int}     options.delayShow    The amount of time to wait before 
528 *                                          the action on the activator causes
529 *                                          the opening of the megamenu.
530 * @property {int}     options.delayHide    The amount of time to wait before
531 *                                          the action on the activator causes 
532 *                                          the closing of the megamenu.
533 * @property {int}     options.duration     The amount of time that the opening 
534 *                                          and closing of the megamenu lasts.
535 * @property {string}  options.detectHash   Detects whether the mobimenu treats 
536 *                                          anchor elements inside the menu
537 *                                          which start with a "#" in a special
538 *                                          way. This means that when they are
539 *                                          clicked they should do n
539othing and
540 *                                          simply return false;
541 * 
542 * @todo Activate on click (not on hover) as a parameter.
543 * @todo What strategy do we follow for cases where a device has a big enough 
544 *       screen to be classified among the desktop devices but does not support 
545 *       mouse events? Facts: there are tablets with 1024 and 1280 wide screens 
546 *       in landscape orientation.
547 */
548Responsiville.Megamenu=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
549this.options={};this.options=jQuery.extend(this.options,Responsiville.Megamenu.defaults,options);this.codeName='responsiville.megamenu';this.responsiville=Responsiville.Main.getInstance();this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.timeoutHandler=null;this.enteringMenuActivator=!1;this.leavingMenuActivator=!1;this.enteringMenuElement=!1;this.leavingMenuElement=!1;this.$menuActivator=jQuery(this.options.activator);for(var key in this.options){var value=this.$menuActivator.data('responsiville-megamenu-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
550if(this.options.slug==''){Responsiville.Megamenu.elementsCounter=Responsiville.Megamenu.elementsCounter!==undefined?++Responsiville.Megamenu.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Megamenu.elementsCounter}
551var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$menuActivator.data('responsiville-megamenu-enter'),leave:this.$menuActivator.data('responsiville-megamenu-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
552if(this.options.external){if(this.$menuActivator.closest('.responsiville-scrollmenu-wrapper').length>0){this.$menuElement=this.$menuActivator.closest('.responsiville-scrollmenu-wrapper').find(this.options.element)}else{this.$menuElement=jQuery(this.options.element).not(function(){if(jQuery(this).closest('.responsiville-mobimenu-wrapper-clone').length>0||jQuery(this).closest('.responsiville-scrollmenu-wrapper').length>0){return!0}
553return!1})}}else{this.$menuElement=this.$menuActivator.siblings(this.options.element)}
554if(this.$menuElement.length===0){this.$menuElement=this.$menuActivator.siblings().eq(0)}
555if(this.$menuElement.length===0){this.log('Responsiville.Megamenu instantiation error: no menu found ('+this.options.element+').');return}
556if(typeof this.$menuActivator.data('responsiville-megamenu-api')!=='undefined'){this.log('Responsiville.Megamenu has already run for: '+this.options.activator+'.');return}
557this.$menuActivator.data('responsiville-api',this);this.$menuActivator.data('responsiville-megamenu-api',this);this.$menuElement.addClass(this.options.slug);this.setupEvents();this.log('megamenu initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Megamenu,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Megamenu,Responsiville.Events);Responsiville.Megamenu.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Megamenu.defaults={debug:!1,slug:'',activator:'.responsiville-megamenu',external:!1,element:'.responsiville-megamenu-element',enter:'laptop, desktop, large, xlarge',leave:'small, mobile, tablet',effect:'slide',elementClass:'responsiville-megamenu-element',parentClass:'responsiville-megamenu-parent',parentActive:'responsiville-megamenu-active',openClass:'responsiville-megamenu-open',openingClass:'responsiville-megamenu-opening',closingClass:'responsiville-megamenu-closing',delayShow:200,delayHide:200,duration:300,detectHash:!0};Responsiville.Megamenu.autoRun=function(){jQuery(Responsiville.Megamenu.defaults.activator).each(function(){if(jQuery(this).closest('.responsiville-mobimenu-wrapper-clone').length>0){return}
558new Responsiville.Megamenu({debug:Responsiville.Main.getInstance().options.debug,activator:this})})};Responsiville.Megamenu.prototype.setupEvents=function(){if(this.$menuActivator.attr('href')=='#'){this.$menuActivator.on('click',function(){return!1})}
559var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
560var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
561if(this.responsiville.is(this.options.enter)){this.enable()}
562this.$menuActivator.on('mouseenter',this.getBoundFunction(this.activatorMouseEnter));this.$menuActivator.on('mouseleave',this.getBoundFunction(this.activatorMouseLeave));this.$menuElement.on('mouseenter',this.getBoundFunction(this.elementMouseEnter));this.$menuElement.on('mouseleave',this.getBoundFunction(this.elementMouseLeave));if(this.options.detectHash&&this.$menuActivator.is('a[href*="#"]')){this.$menuActivator.on('click',this.getBoundFunction(this.anchorHashClick))}};Responsiville.Megamenu.prototype.enable=function(){this.log('enable megamenu');this.close();this.$menuElement.parent().addClass(Responsiville.Megamenu.defaults.parentClass);this.$menuElement.addClass(Responsiville.Megamenu.defaults.elementClass);this.enabled=!0;this.fireEvent('enabled')};Responsiville.Megamenu.prototype.disable=function(){this.log('disable megamenu');this.close();this.$menuElement.parent().removeClass(Responsiville.Megamenu.defaults.parentClass);this.$menuElement.removeClass(Responsiville.Megamenu.defaults.elementClass);this.enabled=!1;this.fireEvent('disabled')};Responsiville.Megamenu.prototype.activatorMouseEnter=function(){if(!this.enabled){return}
563this.log('menu activator mouse enter');this.enteringMenuActivator=!0;this.leavingMenuActivator=!1;
563window.clearTimeout(this.timeoutHandler);this.timeoutHandler=window.setTimeout(this.getBoundFunction(this.open),this.options.delayShow)};Responsiville.Megamenu.prototype.activatorMouseLeave=function(){if(!this.enabled){return}
564this.log('menu activator mouse leave');this.enteringMenuActivator=!1;this.leavingMenuActivator=!0;window.clearTimeout(this.timeoutHandler);this.timeoutHandler=window.setTimeout(this.getBoundFunction(this.close),this.options.delayHide)};Responsiville.Megamenu.prototype.elementMouseEnter=function(){if(!this.enabled){return}
565this.log('menu element mouse enter');this.enteringMenuElement=!0;this.leavingMenuElement=!1;window.clearTimeout(this.timeoutHandler);this.timeoutHandler=window.setTimeout(this.getBoundFunction(this.open),this.options.delayShow)};Responsiville.Megamenu.prototype.elementMouseLeave=function(){if(!this.enabled){return}
566this.log('menu element mouse leave');this.enteringMenuElement=!1;this.leavingMenuElement=!0;window.clearTimeout(this.timeoutHandler);this.timeoutHandler=window.setTimeout(this.getBoundFunction(this.close),this.options.delayHide)};Responsiville.Megamenu.prototype.anchorHashClick=function(event){var anchorPointsToExistingElement=jQuery(jQuery(event.target).attr('href')).length>0;if(!anchorPointsToExistingElement){return!1}};Responsiville.Megamenu.prototype.open=function(){var doNotOpen=(this.leavingMenuActivator&&this.enteringMenuElement)||(this.leavingMenuElement&&this.enteringMenuActivator);this.enteringMenuActivator=!1;this.leavingMenuActivator=!1;this.enteringMenuElement=!1;this.leavingMenuElement=!1;if(doNotOpen){return}
567this.log('open megamenu');this.$menuElement.velocity('stop',!0);this.beforeOpening();if(this.options.effect=='slide'){this.$menuElement.velocity({properties:{height:this.calculateHeight()},options:{duration:this.options.duration,display:'',complete:this.getBoundFunction(this.afterOpening)}})}else if(this.options.effect=='slide-ltr'){this.$menuElement.velocity({properties:{width:this.calculateWidth()},options:{duration:this.options.duration,display:'',complete:this.getBoundFunction(this.afterOpening)}})}else if(this.options.effect=='fade'){this.$menuElement.velocity({properties:{opacity:1},options:{duration:this.options.duration,display:'',complete:this.getBoundFunction(this.afterOpening)}})}else{this.afterOpening()}};Responsiville.Megamenu.prototype.close=function(){var doNotClose=(this.leavingMenuActivator&&this.enteringMenuElement)||(this.leavingMenuElement&&this.enteringMenuActivator);this.enteringMenuActivator=!1;this.leavingMenuActivator=!1;this.enteringMenuElement=!1;this.leavingMenuElement=!1;if(doNotClose){return}
568this.log('close megamenu');this.$menuElement.velocity('stop',!0);this.beforeClosing();if(this.options.effect=='slide'){this.$menuElement.velocity({properties:{height:0},options:{duration:this.options.duration,display:'',complete:this.getBoundFunction(this.afterClosing)}})}else if(this.options.effect=='slide-ltr'){this.$menuElement.velocity({properties:{width:0},options:{duration:this.options.duration,display:'',complete:this.getBoundFunction(this.afterClosing)}})}else if(this.options.effect=='fade'){this.$menuElement.velocity({properties:{opacity:0},options:{duration:this.options.duration,display:'',complete:this.getBoundFunction(this.afterClosing)}})}else{this.afterClosing()}};Responsiville.Megamenu.prototype.beforeOpening=function(){this.fireEvent('opening');this.$menuElement.removeClass(this.options.closingClass);this.$menuElement.addClass(this.options.openingClass);this.$menuActivator.addClass(this.options.parentActive)};Responsiville.Megamenu.prototype.afterOpening=function(){this.$menuElement.removeClass(this.options.openingClass);this.$menuElement.addClass(this.options.openClass);this.fireEvent('opened')};Responsiville.Megamenu.prototype.beforeClosing=function(){this.fireEvent('closing');this.$menuElement.removeClass(this.options.openingClass);this.$menuElement.addClass(this.options.closingClass)};Responsiville.Megamenu.prototype.afterClosing=function(){this.$menuActivator.removeClass(this.options.parentActive);this.$menuElement.removeClass(this.options.openingClass);this.$menuElement.removeClass(this.options.closingClass);this.$menuElement.removeClass(this.options.openClass);this.fireEvent('closed')};Responsiville.Megamenu.prototype.calculateHeight=function(){this.$menuElement.addClass('responsiville-megamenu-calculating');var height=this.$menuElement.outerHeight();this.$menuElement.removeClass('responsiville-megamenu-calculating');return height};Responsiville.Megamenu.prototype.calculateWidth=function(){this.$menuElement.addClass('responsiville-megamenu-calculating');var width=this.$menuElement.outerWidth();this.$menuElement.removeClass('responsiville-megamenu-calculating');return width}
569;/**
570 * Creates and initialises the mobile menu.
571 * 
572 * @class
573 * @extends   Responsiville.Debug
574 * @extends   Responsiville.Events
575 * 
576 * @author    Nevma, [email protected]
577 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
578 * 
579 * @fires     Responsiville.Mobimenu#init
580 * 
581 * @classdesc A responsive mobile burger menu for the Responsiville framework, 
582 *            which has come to be known as a burger menu in responsive web 
583 *            design. But this is just a name. The mobile menu may have any 
584 *            shape and visual effect the developer decides that it should have.
585 *            It is enabled and disabled according to the given breakpoints 
586 *            configuration.
587 *
588 * @param {Object} options The initialisation options of the module.
589 * 
590 * @property {Object}  options            The options that define the object
591 *                                        behaviour.
592 * @property {boolean} options.debug      Whether to print debug messages in the 
593 *                                        browser console.
594 * @property {boolean}
594 options.slug       A special codename for the instance of
595 *                                        the element, to be used as a class on 
596 *                                        its container and as a key in arrays 
597 *                                        where it is grouped with other 
598 *                                        elements of its kind. 
599 * @property {string}  options.activator  The element that triggers the opening
600 *                                        of the mobimenu.
601 * @property {string}  options.element    The element that contains the whole of
602 *                                        the mobimenu.
603 * @property {string}  options.enter      Comma separated list of breakpoints in 
604 *                                        which the mobimenu enters, wihch means
605 *                                        it is enabled.
606 * @property {string}  options.leave      Comma separated list of breakpoints in 
607 *                                        which the mobimenu leaves, which means 
608 *                                        it is disabled.
609 * @property {string}  options.closeText  The text of the anchor element which
610 *                                        will hold the burger menu when it is
611 *                                        enabled. 
612 * @property {string}  options.closeTitle The title of the anchor element which
613 *                                        will hold the burger menu when it is
614 *                                        enabled. 
615 * @property {string}  options.effect     The visual animation effect to use
616 *                                        when opening and closing the mobimenu.
617 * @property {int}     options.transition The speed of the transitions of the 
618 *                                        mobimenu.
619 * @property {string}  options.detectHash Detects whether the module should 
620                                          treat anchor elements inside the menu
621                                          which start with a "#" in a special
622                                          way. This means that when they are
623                                          clicked the mobile menu needs to close
624                                          because these links are internal and
625                                          no new page will be loaded, but the 
626                                          element still need to close.
627 */
628Responsiville.Mobimenu=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
629this.options={};this.options=jQuery.extend(this.options,Responsiville.Mobimenu.defaults,options);this.codeName='responsiville.mobimenu';this.responsiville=Responsiville.Main.getInstance();this.enabled=!1;this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$activator=jQuery(this.options.activator);for(var key in this.options){var value=this.$activator.data('responsiville-mobimenu-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
630if(this.options.slug==''){Responsiville.Mobimenu.elementsCounter=Responsiville.Mobimenu.elementsCounter!==undefined?++Responsiville.Mobimenu.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Mobimenu.elementsCounter}
631var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$activator.data('responsiville-mobimenu-enter'),leave:this.$activator.data('responsiville-mobimenu-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
632this.$mobimenu=jQuery(this.options.element);if(this.$mobimenu.length===0){this.log('Responsiville.Mobimenu instantiation error: no element found ('+this.options.element+').');return}
633if(typeof this.$activator.data('responsiville-mobimenu-api')!='undefined'){this.log('Responsiville.Mobimenu has already run for element: ('+this.options.element+').');return}
634if(this.$mobimenu.closest('.responsiville-mobimenu-wrapper').length>0){this.log('Responsiville.Mobimenu cannot run inside a mobimenu element: ('+this.options.element+').');return}
635this.$activator.data('responsiville-api',this);this.$activator.data('responsiville-mobimenu-api',this);this.$activator.addClass('responsiville-mobimenu');this.$mobimenu.before('<div class="responsiville-mobimenu-backdrop responsiville-mobimenu-backdrop-'+Responsiville.Mobimenu.elementsCounter+'" />')
636this.$mobimenuBackdrop=this.$body.find('.responsiville-mobimenu-backdrop'+Responsiville.Mobimenu.elementsCounter);this.$mobimenu.before('<button class="responsiville-mobimenu-close responsiville-mobimenu-close-'+Responsiville.Mobimenu.elementsCounter+'" title="'+this.options.closeTitle+'">'+'<span>'+this.options.closeText+'</span>'+'</button>');this.$mobimenuClose=this.$body.find('.responsiville-mobimenu-close-'+Responsiville.Mobimenu.elementsCounter);this.$mobimenu.wrap('<div class="responsiville-mobimenu-wrapper" />')
637this.$wrapper=this.$mobimenu.parent();this.$wrapper.addClass(this.options.slug);this.$wrapper.addClass('responsiville-mobimenu-effect-'+this.options.effect);this.$wrapper.css('--transition-duration',this.options.transition/1000+'s');this.$mobimenuClose.css('--transition-duration',this.options.transition/1000+'s');this.$mobimenu.find(Responsiville.Drawers.defaults.container).each(function(){new Responsiville.Drawers({debug:Responsiville.Main.getInstance().options.debug,container:this})});this.setupEvents();this.log('mobimenu initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Mobimenu,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Mobimenu,Responsiville.Events);Responsiville.Mobimenu.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Mobimenu.defaults={debug:!1,slug:'',activator:'.responsiville-mobimenu',element:null,enter:'small, mobile, tablet',leave:'laptop, desktop, large, xlarge',closeTitle:'Close',closeText:'Close',effect:'slide-right',transition:300,detectHash:!0};Responsiville.Mobimenu.autoRun=function(){jQuery(Responsiville.Mobimenu.defaults.activator).each(function(){new Responsiville.Mobimenu({debug:Responsiville.Main.getInstance().options.debug,activator:this})})};Responsiville.Mobimenu.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
638var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
639if(this.responsiville.is(this.options.enter)){this.enable()}
640this.$activator.on('click',this.getBoundFunction(this.openButtonClick));this.$mobimenu.on('click',function(event){event.stopPropagation()});this.$wrapper.on('click',this.getBoundFunction(this.close));this.$mobimenuClose.on('click',this.getBoundFunction(this.closeButtonClick));this.$body.on('keyup',this.getBoundFunction(this.escapeKeyUp));if(this.options.detectHash){this.$wrapper.find('a[href*="#"]').on('click',this.getBoundFunction(this.anchorHashClick))}};Responsiville.Mobimenu.prototype.enable=function(){if(this.enabled){return}
641this.log('enable mobimenu');this.enabled=!0;this.$wrapper.addClass('responsiville-mobimenu-enabled')};Responsiville.Mobimenu.prototype.disable=function(){if(!this.enabled){return}
642this.log('disable mobimenu');this.enabled=!1;this.close();this.$wrapper.removeClass('responsiville-mobimenu-enabled')};Responsiville.Mobimenu.prototype.open=function(){this.log('open mobimenu');this.fireEvent('opening');this.$body.addClass('responsiville-mobimenu-open-body');this.$wrapper.addClass('responsiville-mobimenu-opening');this.$wrapper.addClass('responsiville-mobimenu-open');window.setTimeout((function(){this.$wrapper.removeClass('responsiville-mobimenu-opening');this.fireEvent('opened')}).bind(this),this.options.transition)};Responsiville.Mobimenu.prototype.close=function(event){this.log('close mobimenu');this.fireEvent('closing');this.$wrapper.addClass('responsiville-mobimenu-closing');window.setTimeout((function(){this.$wrapper.removeClass('responsiville-mobimenu-closing');this.$wrapper.removeClass('responsiville-mobimenu-open');this.$body.removeClass('responsiville-mobimenu-open-body');this.fireEvent('closed')}).bind(this),this.options.transition)};Responsiville.Mobimenu.prototype.openButtonClick=function(event){this.open();return!1};Responsiville.Mobimenu.prototype.anchorHashClick=function(event){var anchorPointsToExistingElement=jQuery(jQuery(event.target).attr('href')).length>0;if(anchorPointsToExistingElement){this.close()}};Responsiville.Mobimenu.prototype.closeButtonClick=function(){this.close();return!1};Responsiville.Mobimenu.prototype.escapeKeyUp=function(event){var ESCAPE_KEY=27;if(event&&event.keyCode==ESCAPE_KEY){this.close();return!1}
643return!0}
644;/**
645 * Creates and initialises the parallax behaviour.
646 * 
647 * @class
648 * @extends   Responsiville.Debug
649 * @extends   Responsiville.Events
650 * 
651 * @author    Nevma, [email protected]
652 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
653 * 
654 * @fires     Responsiville.Parallax#init
655 * 
656 * @classdesc A parallax behaviour is materialised when an element is 
656watched as
657 *            the browser window scrolls by it and, either some property of the
658 *            element itself or some other element is changed, in relation to
659 *            the browser scroll events. Usually this behaviour starts to take
660 *            effect when the watched element becomes visible in the browser
661 *            viewport and is completed when the element leaves the browser
662 *            viewport.
663 *
664 * @param {Object} options The initialisation options of the module.
665 * 
666 * @property {Object}  options              The options that define the object
667 *                                          behaviour.
668 * @property {boolean} options.debug        Whether to print debug messages in
669 *                                          the browser console.
670 * @property {boolean} options.slug         A special codename for the instance
671 *                                          of the element, to be used as a
672 *                                          class on its container and as a key
673 *                                          in arrays  where it is grouped with
674 *                                          other elements of its kind. 
675 * @property {string}  options.watch        The element to watch. This is the 
676 *                                          element which is watched by the
677 *                                          module as it enters, crosses and
678 *                                          eventually leaves the viewport. The
679 *                                          parallax effect starts when the
680 *                                          watched element enters the viewport
681 *                                          and finishes when the watched
682 *                                          element leaves the viewport.
683 * @property {Object}  options.properties   In the case where the parallaxed
684 *                                          element is the watched element
685 *                                          itself this associative array
686 *                                          represents the CSS properties of it
687 *                                          that will be affected by the
688 *                                          parallax effect and  their initial
689 *                                          and final values.
690 * @property {Object}  options.elements     In the case where the parallaxed
691 *                                          element(s) are different from the 
692 *                                          watched element this associative
693 *                                          array represents these elements
694 *                                          along with  their CSS properties
695 *                                          which are to be affected by the
696 *                                          parallax effect. It may be either a
697 *                                          single element or an array of
698 *                                          elements.
699 * @property {integer} options.throttle     Duration in milliseconds to 
700 *                                          throttle the scroll event, so that 
701 *                                          the modulescroll callbacks are not 
702 *                                          called on each and every browser 
703 *                                          scroll event.
704 * @property {integer} options.duration     The duration of the animation of 
705 *                                          the transition of the CSS 
706 *                                          properties that are to be 
707 *                                          parallaxed.
708 * @property {integer} options.offsetTop    How much to delay the parallax
709 *                                          effect in terms of space, after the
710 *                                          watched element has appeared in the 
711 *                                          browser viewport.
712 * @property {integer} options.offsetBottom How much to make completion faster
713 *                                          in terms of space for the parallax
714 *                                          effect.
715 * @property {mixed} options.onAppear       Function callback to trigger or 
716 *                                          class to add when the watched
717 *                                          element appears in the browser
718 *                                          viewport.
719 * @property {mixed} options.onDisappear    Function callback to trigger or
720 *                                          class to add when the watched
721 *                                          element disappears from the browser
722 *                                          viewport.
723 * @property {boolean} options.runOnce      If true, then the what the parallax
724 *                                          functionality will only run once as
725 *                                          the user scrolls up and down the
726 *                                          and will not be reversed or run
727 *                                          again after it has completed.
728 *                                          Defaults to false.
729 * @property {string}  options.enter        Comma separated list of breakpoints
730 *                                          in  which the parallax enters, 
731 *                                          which means it is enabled.
732 * @property {string}  options.leave        Comma separated list of breakpoints
733 *                                          in which the parallax leaves, which
734 *                                          means it is disabled.
735 */
736Responsiville.Parallax=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
737this.options={};this.options=jQuery.extend(this.options,Responsiville.Parallax.defaults,options);
737this.codeName='responsiville.parallax';this.responsiville=Responsiville.Main.getInstance();this.enabled=!1;this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$watched=jQuery(this.options.watch);for(var key in this.options){var value=this.$watched.data('responsiville-parallax-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
738if(this.options.slug==''){Responsiville.Parallax.elementsCounter=Responsiville.Parallax.elementsCounter!==undefined?++Responsiville.Parallax.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Parallax.elementsCounter}
739var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$watched.data('responsiville-parallax-enter'),leave:this.$watched.data('responsiville-parallax-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
740if(this.$watched.length===0){this.log('Responsiville.Parallax instantiation error: no parallax elements found ('+this.options.element+').');return}
741this.$watched.data('responsiville-api',this);this.$watched.data('responsiville-parallax-api',this);this.$watched.addClass(this.options.slug);this.$elements=[];this.elementsProperties=[];if(this.options.properties!==null){this.$elements.push(this.$watched);this.elementsProperties.push(this.options.properties)}else{if(!jQuery.isArray(this.options.elements)){this.$elements.push(jQuery(this.options.elements.element));this.elementsProperties.push(this.options.elements.properties)}else{for(var k=0,length=this.options.elements.length;k<length;k++){var $element=jQuery(this.options.elements[k].element);if($element.length>0){this.$elements.push($element);this.elementsProperties.push(this.options.elements[k].properties)}}}}
742this.setupEvents();this.log('parallax initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Parallax,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Parallax,Responsiville.Events);Responsiville.Parallax.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Parallax.defaults={debug:!1,slug:'',watch:'.responsiville-parallax',properties:null,elements:[],throttle:10,duration:10,offsetTop:0,offsetBottom:0,onAppear:null,onDisappear:null,runOnce:!1,enter:'tablet, laptop, desktop, large, xlarge',leave:'small, mobile'};Responsiville.Parallax.autoRun=function(){jQuery(Responsiville.Parallax.defaults.watch).each(function(){new Responsiville.Parallax({debug:Responsiville.Main.getInstance().options.debug,watch:this})})};Responsiville.Parallax.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
743var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
744if(this.responsiville.is(this.options.enter)){this.enable()}};Responsiville.Parallax.prototype.enable=function(){if(this.enabled){return}
745this.log('enable parallax');if(!this.throttledCalculate){this.throttledCalculate=Responsiville.throttle(this.calculate,this.options.throttle,this)}
746this.$window.on('scroll',this.throttledCalculate);this.$window.on('resize',this.throttledCalculate);if(!this.throttledScroll){this.throttledScroll=Responsiville.throttle(this.scroll,this.options.throttle,this)}
747this.$window.on('scroll',this.throttledScroll);this.$window.on('resize',this.throttledScroll);this.calculate();this.scroll();this.enabled=!0;this.fireEvent('enabled')};Responsiville.Parallax.prototype.disable=function(){if(!this.enabled){return}
748this.log('disable parallax');for(var k=0,length=this.$elements.length;k<length;k++){var $element=this.$elements[k];var elementProperties=this.elementsProperties[k];var animationProperties={};for(var propertyName in elementProperties){var propertyValues=elementProperties[propertyName];animationProperties[propertyName]=''+propertyValues.from+propertyValues.unit}
749$element.velocity(animationProperties,{duration:0})}
750if(!this.throttledCalculate){this.throttledCalculate=Responsiville.throttle(this.calculate,this.options.throttle,this)}
751this.$window.off('scroll',this.throttledCalculate);this.$window.off('resize',this.throttledCalculate);if(!this.throttledScroll){this.throttledScroll=Responsiville.throttle(this.scroll,this.options.throttle,this)}
752this.$window.off('scroll',this.throttledScroll);this.$window.off('resize',this.throttledScroll);this.enabled=!1;this.fireEvent('disabled')};Responsiville.Parallax.prototype.calculate=function(){this.viewportHe
752ight=this.$window.height();this.watchedElementOffsetTop=this.offsetTopTotal(this.$watched.get(0));this.watchedElementHeight=this.$watched.outerHeight()};Responsiville.Parallax.prototype.offsetTopTotal=function(element){var offsetTopTotal=this.$watched.get(0).offsetTop;var parent=this.$watched.get(0).offsetParent;while(parent){offsetTopTotal+=parent.offsetTop;parent=parent.offsetParent}
753return offsetTopTotal};Responsiville.Parallax.prototype.scroll=function(){this.fireEvent('scrolling');console.log('Scroll');var scrollTop=this.$window.scrollTop!==undefined?this.$window.scrollTop():this.$document.get(0).documentElement.scrollTop;var scrollTopStart=this.watchedElementOffsetTop-this.viewportHeight+this.options.offsetTop;var scrollTopEnd=this.watchedElementOffsetTop+this.watchedElementHeight-this.options.offsetBottom;var parallaxPercentage=(scrollTop-scrollTopStart)/(scrollTopEnd-scrollTopStart);var watchedElementIsOffViewport=scrollTop<this.watchedElementOffsetTop-this.viewportHeight+this.options.offsetTop||scrollTop>this.watchedElementOffsetTop+this.watchedElementHeight-this.options.offsetBottom;var watchedElementWasInViewport=!!this.$watched.data('in-viewport');var hasRunOnce=!!this.$watched.data('has-run-once');if(this.scrollTop===undefined){this.scrollTop=0}
754var scrollDifference=scrollTop-this.scrollTop;var direction=scrollDifference>=0?'down':'up';this.scrollTop=scrollTop;this.direction=direction;if(!watchedElementIsOffViewport){this.$watched.data('in-viewport',!0);if(!watchedElementWasInViewport){if(!this.options.runOnce||this.options.runOnce&&!hasRunOnce){if(typeof this.options.onAppear=='string'){if(jQuery.isFunction(window[this.options.onAppear])){window[this.options.onAppear].call(this)}}else if(jQuery.isFunction(this.options.onAppear)){this.options.onAppear.call(this)}
755if(this.options.runOnce){this.$watched.data('has-run-once',!0)}}}}else{this.$watched.data('in-viewport',!1);if(watchedElementWasInViewport){if(!this.options.runOnce||this.options.runOnce&&!hasRunOnce){if(typeof this.options.onDisappear=='string'){if(jQuery.isFunction(window[this.options.onDisappear])){window[this.options.onDisappear].call(this)}}else if(jQuery.isFunction(this.options.onDisappear)){this.options.onDisappear.call(this)}
756if(this.options.runOnce){this.$watched.data('has-run-once',!0)}}}}
757for(var k=0,length=this.$elements.length;k<length;k++){var $element=this.$elements[k];var elementProperties=this.elementsProperties[k];if(watchedElementIsOffViewport){$element.removeClass('responsiville-parallax-active');if(!this.options.runOnce||this.options.runOnce&&!hasRunOnce){if(elementProperties.addClass!==undefined){$element.removeClass(elementProperties.addClass)}}
758if(!this.options.runOnce||this.options.runOnce&&!hasRunOnce){if(elementProperties.removeClass!==undefined){$element.addClass(elementProperties.removeClass)}}
759continue}
760$element.addClass('responsiville-parallax-active');if(elementProperties.addClass!==undefined){if(!this.options.runOnce||this.options.runOnce&&!hasRunOnce){$element.addClass(elementProperties.addClass)}
761if(this.options.runOnce){this.$watched.data('has-run-once',!0)}}
762if(elementProperties.removeClass!==undefined){if(!this.options.runOnce||this.options.runOnce&&!hasRunOnce){$element.removeClass(elementProperties.removeClass)}
763if(this.options.runOnce){this.$watched.data('has-run-once',!0)}}
764if(typeof elementProperties=='function'){elementProperties.call(this,$element,parallaxPercentage)}else if(elementProperties!==null){var animationProperties={};for(var propertyName in elementProperties){if(propertyName=='appear'||propertyName=='disappear'){continue}
765var propertyValues=elementProperties[propertyName];animationProperties[propertyName]=''+(propertyValues.from+(propertyValues.to-propertyValues.from)*parallaxPercentage)+propertyValues.unit}
766$element.velocity('stop').velocity(animationProperties,{duration:this.options.duration,easing:'linear'})}}
767this.fireEvent('scrolled')}
768;/**
769 * Creates and initialises the popup.
770 * 
771 * @class
772 * @extends   Responsiville.Debug
773 * @extends   Responsiville.Events
774 * 
775 * @author    Nevma, [email protected]
776 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
777 * 
778 * @fires     Responsiville.Popup#init
779 * 
780 * @classdesc A popup utility which takes a piece of HTML and shows it in a new
781 *            layer on top of the rest of the contents of a web page.
782 *
783 * @param {Object} options The initialisation options of the module.
784 * 
785 * @property {Object}  options                The options that define the object
786 *                                            behaviour.
787 * @property {boolean} options.debug          Whether to print debug messages in
788 *                                            the browser console.
789 * @property {boolean}
789 options.slug           A special codename for the
790 *                                            instance of the element, to be
791 *                                            used as a class on its container
792 *                                            and as a key in arrays where it is
793 *                                            grouped with other elements of its
794 *                                            kind. 
795 * @property {string}  options.activator      The selector of the element which
796 *                                            acticates, that is opens, the
797 *                                            popup. 
798 * @property {string}  options.element        The element that holds the popup
799 *                                            contents. Usually stays hidden
800 *                                            somewhere inside the page.
801 * @property {string}  options.contents       The HTML with the popup contents,
802 *                                            if the element property is not
803 *                                            set.
804 * @property {string}  options.layerEffect    The effect of the background layer
805 *                                            opening.
806 * @property {int}     options.layerDelay     The delay before the background
807 *                                            layer opens and closes.
808 * @property {int}     options.layerDuration  The duration of the background
809 *                                            layer effect.
810 * @property {string}  options.popupEffect    The effect of the popup contents
811 *                                            opening.
812 * @property {int}     options.popupDelay     The delay before the popup
813 *                                            contents open and close.
814 * @property {int}     options.popupDuration  The duration of the popup contents
815 *                                            effect.
816 * @property {string}  options.popupDuration  The duration of the popup contents
817 *                                            effect.
818 * @property {int}     options.resizeDelay    The delay before the popup resize
819 *                                            action occurs.
820 * @property {int}     options.resizeDuration The duration of the popup resize
821 *                                            action.
822 * @property {int}     options.width          The desired width of the popup in
823 *                                            px, vh, vw, % or even auto.
824 * @property {int}     options.height         The desired height of the popup in
825 *                                            px, vh, vw, %.
826 * @property {int}     options.maxWidth       The desired max width of the popup
827 *                                            in px, vh, vw, %.
828 * @property {int}     options.maxHeight      The desired max height of the
829 *                                            popup in px, vh, vw, %.
830 * @property {int}     options.minWidth       The desired min width of the popup
831 *                                            in px, vh, vw, %.
832 * @property {int}     options.minHeight      The desired min height of the
833 *                                            popup in px, vh, vw, %.
834 * @property {boolean} options.overflow       If set to false, the default, the
835 *                                            popup respects the max width and
836 *                                            height properties and allows for
837 *                                            internal overflow scroll. If set
838 *                                            to true then the popup can stretch
839 *                                            its contents further from the max
840 *                                            width and height and cause the
841 *                                            page to overflow scroll instead.
842 *                                            Useful when you know that you are
843 *                                            going to have long contents. 
844 * @property {string}  options.closePosition  Whether the popup close button
845 *                                            will be positioned in the popup or
846 *                                            out of it.
847 * @property {int}     options.startZIndex    The z-index from which the popup
848 *                                            should beging its layout and be
849 *                                            safely visible on top of
850 *                                            everything else.
851 * @property {string}  options.enter          Comma separated list of
852 *                                            breakpoints in which the popup
853 *                                            enters, wihch means it is enabled.
854 * @property {string}  options.leave          Comma separated list of
855 *                                            breakpoints in which the popup
856 *                                            leaves, which means it is
857 *                                            disabled.
858 */
859Responsiville.Popup=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
860this.options={};this.options=jQuery.extend(this.options,Responsiville.Popup.defaults,options);
860this.codeName='responsiville.popup';this.responsiville=Responsiville.Main.getInstance();this.contents=null;this.enabled=!1;this.open=!1;this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$close=null;this.$contentsWrapper=null;this.$contents=null;this.$contentsInner=null;this.$activator=jQuery();if(this.options.slug==''){Responsiville.Popup.elementsCounter=Responsiville.Popup.elementsCounter!==undefined?++Responsiville.Popup.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Popup.elementsCounter}
861if(typeof options.activator!='undefined'){this.$activator=jQuery(this.options.activator);if(this.$activator.length===0){this.log('Responsiville.Popup instantiation error: no activator found ('+this.options.activator+').');return}
862for(var key in this.options){var value=this.$activator.data('responsiville-popup-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
863this.$activator.data('responsiville-api',this);this.$activator.data('responsiville-popup-api',this)}
864if(this.$activator.length>0){this.$activator.addClass(this.options.slug)}
865if(this.$activator.length>0){var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$activator.data('responsiville-popup-enter'),leave:this.$activator.data('responsiville-popup-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}}
866this.initHTML();this.initContents();this.setupEvents();this.log('popup initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Popup,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Popup,Responsiville.Events);Responsiville.Popup.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Popup.defaults={debug:!1,slug:'',activator:'.responsiville-popup-activator',element:!1,contents:!1,layerEffect:'fade',layerDelay:50,layerDuration:100,popupEffect:'fade',popupDelay:200,popupDuration:300,resizeDelay:100,resizeDuration:200,width:!1,height:!1,maxWidth:'60vw',maxHeight:'90vh',minWidth:'25vw',minHeight:!1,overflow:!1,closePosition:'out',closeTitle:'Close popup',startZIndex:9999,enter:'small, mobile, tablet, laptop, desktop, large, xlarge',leave:''};Responsiville.Popup.autoRun=function(){jQuery(Responsiville.Popup.defaults.activator).each(function(){new Responsiville.Popup({debug:Responsiville.Main.getInstance().options.debug,activator:this})})};Responsiville.Popup.prototype.initHTML=function(){this.$contentsWrapper=jQuery('<div class="responsiville-popup-contents-wrapper '+this.options.slug+'"/>').appendTo(this.$body);if(this.options.overflow){this.$contentsWrapper.addClass('responsiville-popup-overflow')}
867this.$contents=jQuery('<div class="responsiville-popup-contents"/>').appendTo(this.$contentsWrapper);this.$contentsInner=jQuery('<div class="responsiville-popup-contents-inner"/>').appendTo(this.$contents);this.$close=jQuery('<button class="responsiville-popup-close" title="'+this.options.closeTitle+'"><span>Close</span></button>');if(this.options.closePosition=='out'){this.$contentsWrapper.addClass('responsiville-popup-close-out');this.$close.appendTo(this.$contentsWrapper)}else{this.$contentsWrapper.addClass('responsiville-popup-close-in');this.$close.appendTo(this.$contents)}};Responsiville.Popup.prototype.initContents=function(){if(this.$activator.length>0){var href=this.$activator.attr('href');if(href){this.setContents(jQuery(href))}else{this.setContents(jQuery(this.options.element))}}else{if(this.options.element){this.setContents(jQuery(this.options.element))}else{this.setContents(this.options.contents)}}};Responsiville.Popup.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
868var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
869if(this.responsiville.is(this.options.enter)){this.enable()}};Responsiville.Popup.prototype.enable=function(){if(this.enabled){return}
870this.log('enable popup');if(this.$activator.length>0){this.$activator.on('click',this.getBoundFunction(this.openPopup))}
871this.$contentsWrapper.on('click',this.getBoundFunction(this.closePopup));this.$contents.on('click',this.getBoundFunction(this.contentsClick));this.$close.on('click',this.getBoundFunction(this.closePopup));this.$document.on('keydown',this.getBoundFunction(this.documentKeyDown));this.responsiville.on('resize',this.getBoundFunction(this.resize));this.enabled=!0};Responsiville.Popup.prototype.disable=function(){if(!this.enabled){return}
872this.log('disable popup');this.enabled=!1};Responsiville.Popup.prototype.contentsClick=function(event){event.stopPropagation()};Responsiville.Popup.prototype.documentKeyDown=function(event){if(!this.open){return}
873var ESCAPE_KEY_CODE=27;var keyPressed=event.charCode||event.keyCode;if(keyPressed==ESCAPE_KEY_CODE){this.closePopup()}};Responsiville.Popup.prototype.setContents=function(contents){this.contents=contents;this.$contentsInner.html(jQuery(this.contents).clone(!0));this.$contentsInner.find('.responsiville-popup-close-button').on('click',this.getBoundFunction(this.closePopup));if(this.open){this.resize()}
874Responsiville.onImagesLoaded(this.$contentsInner.find('img').toArray(),{single:(function(){if(this.open){this.resize()}}).bind(this)})};Responsiville.Popup.prototype.calculateContentsDimensions=function(){jQuery('<div class="responsiville-popup-calculate-dimensions '+this.options.slug+'"/>').append(this.$contents.contents().clone()).appendTo(this.$body);var $tempContents=jQuery('.responsiville-popup-calculate-dimensions.'+this.options.slug);var availableWidth=this.$body.outerWidth();var availableHeight=window.innerHeight;if(this.options.width){this.log('adjusting for set width');$tempContents.css('width',this.options.width)}else{var currentWidth=$tempContents.outerWidth();$tempContents.css('width',availableWidth);var maxWidth=$tempContents.outerWidth();if(currentWidth<maxWidth){this.log('adjusting for viewport width');$tempContents.css('width',availableWidth)}else{this.log('not adjusting for viewport width');$tempContents.css('width',currentWidth)}}
875if(this.options.maxWidth){var currentWidth=$tempContents.outerWidth();$tempContents.css('width',this.options.maxWidth);var maxWidth=$tempContents.outerWidth();if(currentWidth>maxWidth){this.log('adjusting for max width');$tempContents.css('width',this.options.maxWidth)}else{this.log('not adjusting for max width');$tempContents.css('width',currentWidth)}}
876if(this.options.minWidth){var currentWidth=$tempContents.outerWidth();$tempContents.css('width',this.options.minWidth);var minWidth=$tempContents.outerWidth();if(currentWidth<minWidth){this.log('adjusting for min width');$tempContents.css('width',this.options.minWidth)}else{this.log('not adjusting for min width');$tempContents.css('width',currentWidth)}}
877if(this.options.height){this.log('adjusting for set height');$tempContents.css('height',this.options.height)}
878if(!this.options.overflow){if(this.options.maxHeight){var currentHeight=$tempContents.outerHeight();$tempContents.css('height',this.options.maxHeight);var maxHeight=$tempContents.outerHeight();if(currentHeight>maxHeight){this.log('adjusting for max height');$tempContents.css('height',maxHeight)}else{this.log('not adjusting for max height');$tempContents.css('height',currentHeight)}}else{var currentHeight=$tempContents.outerHeight();$tempContents.css('height',availableHeight);var maxHeight=$tempContents.outerHeight();if(currentHeight>maxHeight){this.log('adjusting for viewport height');$tempContents.css('height',maxHeight)}else{this.log('not adjusting for viewport height');$tempContents.css('height',currentHeight)}}}
879if(this.options.minHeight){var currentHeight=$tempContents.outerHeight();$tempContents.css('height',this.options.minHeight);var minHeight=$tempContents.outerHeight();if(currentHeight<minHeight){this.log('adjusting for min height');$tempContents.css('height',minHeight)}else{this.log('not adjusting for min height');$tempContents.css('height',currentHeight)}}
880var dimensions={width:Math.ceil($tempContents.outerWidth()),height:Math.ceil($tempContents.outerHeight())}
881if(dimensions.width%2==1){dimensions.width++}
882if(dimensions.height%2==1){dimensions.height++}
883$tempContents.remove();return dimensions};Responsiville.Popup.prototype.parseInt=function(number){var result=window.parseInt(number);if(window.isNaN(result)){return 0}else{return result}}
884Responsiville.Popup.prototype.showContentsWrapper=function(callback){if(this.options.layerEffect=='fade'){this.$contents.css('opacity',0);this.$contentsWrapper.css({'opacity':0,'display':'block','z-index':this.options.startZIndex});this.$contentsWrapper.velocity({opacity:1},{delay:this.options.layerDelay,duration:this.options.layerDuration,complete:(function(){if(callback!==undefined){callback()}}).bind(this)})}else if(this.options.layerEffect=='none'){this.$contentsWrapper.css({'display':'block','z-index':this.options.startZIndex})}};Responsiville.Popup.prototype.hideContentsWrapper=function(callback){if(this.options.layerEffect=='fade'){this.$contentsWrapper.velocity({opacity:0}
884,{delay:this.options.layerDelay,duration:this.options.layerDuration,complete:(function(){this.$contentsWrapper.css({'display':'none','z-index':-1});if(callback!==undefined){callback()}}).bind(this)})}else if(this.options.layerEffect=='none'){this.$contentsWrapper.css({'display':'none','z-index':-1})}};Responsiville.Popup.prototype.resize=function(){if(!this.open){return}
885this.fireEvent('beforeResize');var dimensions=this.calculateContentsDimensions();this.$contents.addClass('responsiville-popup-resizing');this.$contents.velocity('stop').velocity({width:dimensions.width,height:dimensions.height},{delay:this.options.resizeDelay,duration:this.options.resizeDuration,complete:(function(){this.$contents.removeClass('responsiville-popup-resizing');this.fireEvent('resize')}).bind(this)})};Responsiville.Popup.prototype.showContents=function(callback){this.$contentsWrapper.css({'display':'block','z-index':this.options.startZIndex});if(this.options.popupEffect=='fade'){var dimensions=this.calculateContentsDimensions();if(this.options.overflow){this.$contents.css({'display':'block','position':'relative','top':'auto','left':'50%','width':dimensions.width,'height':dimensions.height,'transform':'translateX(-50%)','margin':'50px 0'})}else{this.$contents.css({'display':'block','position':'fixed','top':'50%','left':'50%','width':dimensions.width,'height':dimensions.height,'transform':'translateX(-50%) translateY(-50%)'})}
886this.$contents.velocity({opacity:[1,0]},{delay:this.options.popupDelay,duration:this.options.popupDuration,complete:(function(){if(callback!==undefined){callback()}}).bind(this)})}else if(this.options.popupEffect=='none'){this.$contents.css({'position':'fixed','top':'50%','left':'50%','transform':'translateX(-50%) translateY(-50%)'})}};Responsiville.Popup.prototype.hideContents=function(callback){if(this.options.popupEffect=='fade'){this.$contents.velocity({opacity:[0,1]},{delay:this.options.popupDelay,duration:this.options.popupDuration,complete:(function(){this.$contents.css({'display':'none'});if(callback!==undefined){callback()}}).bind(this)})}else if(this.options.popupEffect=='none'){this.$contents.css({'display':'none'})}};Responsiville.Popup.prototype.openPopup=function(){if(!this.enabled){return}
887this.log('open popup');this.fireEvent('opening');this.$body.addClass('responsiville-popup-body-open');this.$contentsWrapper.addClass('responsiville-popup-open');this.showContentsWrapper((function(){this.showContents((function(){this.open=!0;this.fireEvent('open')}).bind(this))}).bind(this));return!1};Responsiville.Popup.prototype.closePopup=function(){if(!this.enabled){return}
888this.log('close popup');this.fireEvent('closing');this.hideContents((function(){this.hideContentsWrapper((function(){this.open=!1;this.$body.removeClass('responsiville-popup-body-open');this.$contentsWrapper.removeClass('responsiville-popup-open');this.fireEvent('close')}).bind(this))}).bind(this));return!1}
889;/**
890 * Responsive elements utility.
891 * 
892 * @class
893 * @extends   Responsiville.Debug
894 * @extends   Responsiville.Events
895 * 
896 * @author    Nevma, [email protected]
897 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
898 * 
899 * @fires     Responsiville.Responsiveelement#init
900 * 
901 * @classdesc Takes a casual element and makes it responsive. This way one can
902 *            set different behaviour and styling to the element per breakpoint
903 *            just as they do in a responsive web page as a whole.
904 *
905 * @param {Object} options The initialisation options of the module.
906 * 
907 * @property {Object}  options             The options that define the object
908 *                                         behaviour.
909 * @property {boolean} options.debug       Whether to print debug messages in
910 *                                         the browser console.
911 * @property {boolean} options.slug        A special codename for the instance
912 *                                         of the element, to be used as a
913 *                                         class on its container and as a key
914 *                                         in arrays  where it is grouped with
915 *                                         other elements of its kind. 
916 * @property {string}  options.breakpoints List of name and width pairs that
917 *                                         define the responsive breakpoints of
918 *                                         this element.
919 * @property {string}  options.element     The element to be enhanced with
920 *                                         responsive behaviour.
921 * @property {string}  options.enter       Comma separated list of breakpoints
922 *                                         in which the module enters, which
923 *                                         means it is enabled.
924 * @property {string}  options.leave       Comma separated list of breakpoints
925 *                                         in which the module leaves, which
926 *                                         means it is disabled.
927 */
928Responsiville.Responsiveelement=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
929this.enabled=!1;this.options=jQuery.extend(this.options,Responsiville.Responsiveelement.defaults,options);
929this.codeName='responsiville.responsiveelement';this.responsiville=Responsiville.Main.getInstance();this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$element=jQuery(this.options.element);this.previousBreakpoint=null;this.currentBreakpoint=null;if(this.$element.length===0){this.log('Responsiville.Responsiveelement instantiation error: no element found ('+this.options.element+').');return}
930if(this.$element.length>1){this.log('Responsiville.Responsiveelement instantiation error: more than one elements found ('+this.options.element+').');return}
931for(var key in this.options){var value=this.$element.data('responsiville-responsiveelement-'+key);if(typeof value!=='undefined'){this.options[key]=value}}
932if(this.options.slug==''){Responsiville.Responsiveelement.elementsCounter=Responsiville.Responsiveelement.elementsCounter!==undefined?++Responsiville.Responsiveelement.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Responsiveelement.elementsCounter}
933this.options.breakpoints.sort(function(breakpointA,breakpointB){return breakpointA.width-breakpointB.width});var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$element.data('responsiville-responsiveelement-enter'),leave:this.$element.data('responsiville-responsiveelement-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
934this.$element.data('responsiville-api',this);this.$element.data('responsiville-responsiveelement-api',this);this.$element.addClass(this.options.slug);this.$images=this.$element.find('img');this.setupEvents();if(this.responsiville.is(this.options.enter)){this.enable()}
935this.log('responsivelements initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Responsiveelement,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Responsiveelement,Responsiville.Events);Responsiville.Responsiveelement.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Responsiveelement.defaults={debug:!1,slug:'',breakpoints:[{breakpoint1:1024},{breakpoint2:2048},{breakpoint3:9999}],element:'.responsiville-responsiveelement',enter:'small, mobile, tablet, laptop, desktop, large, xlarge',leave:''};Responsiville.Responsiveelement.autoRun=function(){jQuery(Responsiville.Responsiveelement.defaults.element).each(function(){new Responsiville.Responsiveelement({debug:Responsiville.Main.getInstance().options.debug,element:this})})};Responsiville.Responsiveelement.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
936var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
937for(k=0,length=this.$images.length;k<length;k++){var image=this.$images.eq(k).get(0);if(Responsiville.hasImageLoaded(image)){this.imagesLoaded++}else{image.onload=this.getBoundFunction(this.imageLoaded);image.onerror=this.getBoundFunction(this.imageError)}}};Responsiville.Responsiveelement.prototype.enable=function(){if(this.enabled){return}
938this.enabled=!0;this.log('enable responsiveelement');this.responsiville.on('resize',this.getBoundFunction(this.processElement));this.processElement();this.fireEvent('enabled')};Responsiville.Responsiveelement.prototype.disable=function(){if(!this.enabled){return}
939this.enabled=!1;this.log('disable responsiveelement');this.responsiville.off('resize',this.getBoundFunction(this.processElement));var removeClasses='';var breakpoint;for(var k=0;k<this.options.breakpoints.length;k++){breakpoint=this.options.breakpoints[k];removeClasses+=breakpoint.name+' '}
940this.$element.removeClass(removeClasses);this.fireEvent('disabled')};Responsiville.Responsiveelement.prototype.imageLoaded=function(event){this.imagesLoaded++;if(this.enabled&&this.imagesLoaded==this.$images.length){this.processElement()}
941this.fireEvent('image.loaded',[event])};Responsiville.Responsiveelement.prototype.imageError=function(event){this.imagesLoaded++;if(this.enabled&&this.imagesLoaded==this.$images.length){this.processElement()}
942this.fireEvent('image.error',[event])};Responsiville.Responsiveelement.prototype.runBreakpointChangeCallbacks=function(){this.fireEvent('leave.'+this.previousBreakpoint.name,this.$element);this.fireEvent('enter.'+this.currentBreakpoint.name,this.$element)};Responsiville.Responsiveelement.prototype.processElement=function(){this.fireEvent('processing');var k;var breakpoint;var newBreakpoint;var elementWidth;elementWidth=this.$element.outerWidth();if(elementWidth===0){this.log('non-displayed or zero-width element. Checking the element parents.');var $parents=jQuery(this.$element.parents());for(k=0;k<$parents.length;k++){elementWidth=$parents.eq(k).width();if($parents.eq(k).css('display')!=='none'&&elementWidth!==0){this.log('found displayed parent with non-zero width '+elementWidth+'px');break}}}
943this.log('processing element with width '+elementWidth+'px');var removeClasses='';for(k=0;k<this.options.breakpoints.length;k++){breakpoint=this.options.breakpoints[k];removeClasses+=breakpoint.name+' '}
944var addClasses='';for(k=0,length=this.options.breakpoints.length;k<length;k++){breakpoint=this.options.breakpoints[k];if(elementWidth>breakpoint.width){addClasses+=breakpoint.name+' ';newBreakpoint=breakpoint}else{break}}
945if(elementWidth<=breakpoint.width){addClasses+=breakpoint.name+' ';newBreakpoint=breakpoint}
946this.log('removing classes: '+addClasses);this.log('adding classes: '+addClasses);this.$element.removeClass(removeClasses);this.$element.addClass(addClasses);var firstRun=!1;if(!this.currentBreakpoint){firstRun=!0;this.currentBreakpoint=newBreakpoint}
947var oldBreakpoint=this.currentBreakpoint;var breakpointChanged=firstRun||oldBreakpoint.name!=newBreakpoint.name;if(breakpointChanged){this.log('breakpoint change detected from '+this.currentBreakpoint.name+' to '+newBreakpoint.name);this.previousBreakpoint=this.currentBreakpoint;this.currentBreakpoint=newBreakpoint;this.runBreakpointChangeCallbacks();this.fireEvent('change',this.$element)}
948this.log('processed element');this.fireEvent('processed')}
949;/**
950 * Creates and initialises the scrollmenu. 
951 * 
952 * @class
953 * @extends   Responsiville.Debug
954 * @extends   Responsiville.Events
955 * 
956 * @author    Nevma, [email protected]
957 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
958 * 
959 * @fires     Responsiville.Scrollmenu#init
960 * 
961 * @classdesc A responsive scrollmenu for the Responsiville framework. It makes 
962 *            a menu, or any HTML element for that matter, stay fixed on top of 
963 *            the screen as the user scrolls down the page. Pretty useful in 
964 *            responsive web design and in long web pages in general.
965 *
966 * @param {Object} options The initialisation options of the module.
967 * 
968 * @property {Object}  options              The options that define the object
969 *                                          behaviour.
970 * @property {boolean} options.debug        Whether to print debug messages in
971 *                                          the browser console.
972 * @property {boolean}
972 options.slug         A special codename for the instance
973 *                                          of the element, to be used as a
974 *                                          class on its container and as a key
975 *                                          in arrays where it is grouped with
976 *                                          other elements of its kind. 
977 * @property {string}  options.element      Selector for the element that
978 *                                          actually is the element to be fixed.
979 * @property {string}  options.wrapper      The class of the wrapper element
980 *                                          that will wrap around the actual
981 *                                          element. 
982 * @property {string}  options.enabled      The class added to the cloned
983 *                                          element when the scrollmenu is 
984 *                                          enabled. Note that the scrollmenu
985 *                                          might be there without being
986 *                                          enabled. Enabled does not mean
987 *                                          active and visible. Enabled means
988 *                                          having the readiness to become 
989 *                                          active  upon the desired page 
990 *                                          scroll.
991 * @property {string}  options.active       The class added to the scrollmenu 
992 *                                          whenit becomes active. 
993 * @property {string}  options.activeBody   The class added to the body element 
994 *                                          when the scrollmenu becomes active.
995 * @property {string}  options.zIndex       Specify a z-index property different
996 *                                          than the the default.
997 * @property {string}  options.offsetTop    The extra space to wait for the user
998 *                                          to scroll down to, after the
999 *                                          original element is out of sight, 
1000 *                                          before showing the scrollmenu.
1001 * @property {string}  options.offsetBottom The reverse of offsetTop, the extra
1002 *                                          space before the original element
1003 *                                          would be back in sight, as the user 
1004 *                                          scrolls up, where the scrollmenu
1005 *                                          will be hidden.
1006 * @property {string}  options.enter        Comma separated list of breakpoints
1007 *                                          in which the module enters, wihch
1008 *                                          means it is enabled (not activated).
1009 * @property {string}  options.leave        Comma separated list of breakpoints
1010 *                                          in which the module leaves, which
1011 *                                          means it is disabled.
1012 */
1013Responsiville.Scrollmenu=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
1014this.options={};this.options=jQuery.extend(this.options,Responsiville.Scrollmenu.defaults,options);this.codeName='responsiville.scrollmenu';this.responsiville=Responsiville.Main.getInstance();this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$element=jQuery(this.options.element);for(var key in this.options){var value=this.$element.data('responsiville-scrollmenu-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
1015if(this.options.slug==''){Responsiville.Scrollmenu.elementsCounter=Responsiville.Scrollmenu.elementsCounter!==undefined?++Responsiville.Scrollmenu.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Scrollmenu.elementsCounter}
1016var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$element.data('responsiville-scrollmenu-enter'),leave:this.$element.data('responsiville-scrollmenu-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
1017if(this.$element.length===0){this.log('Responsiville.Scrollmenu instantiation error: no menus found ('+this.options.menu+').');return}
1018this.$element.data('responsiville-api',this);this.$element.data('responsiville-scrollmenu-api',this);this.$elementCloned=this.$element.clone(!1).wrap('<div class="'+this.options.wrapper+'" '+(this.options.zIndex>0?'style="z-index: '+this.options.zIndex+';"':'')+'>').parent().appendTo(this.$body);this.$elementCloned.addClass(this.options.slug);this.enabled=!1;this.activated=!1;this.setupEvents();this.$element.data('offsetTop',Math.ceil(this.$element.offset().top));this.log('scrollmenu initialised');this.$elementCloned.find(Responsiville.Mobimenu.defaults.element).each(function(){new Responsiville.Mobimenu({debug:Responsiville.Main.getInstance().options.debug,element:this})});this.$elementCloned.find(Responsiville.Megamenu.defaults.activator).each(function(){new Responsiville.Megamenu({debug:Responsiville.Main.getInstance().options.debug,activator:this})});this.$elementCloned.find(Responsiville.Drawers.defaults.container).each(function(){new Responsiville.Drawers({debug:Responsiville.Main.getInstance().options.debug,container:this})});this.fireEvent('created')};Responsiville.extend(Responsiville.Scrollmenu,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Scrollmenu,Responsiville.Events);Responsiville.Scrollmenu.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Scrollmenu.defaults={debug:!1,slug:'',element:'.responsiville-scrollmenu',wrapper:'responsiville-scrollmenu-wrapper',enabled:'responsiville-scrollmenu-enabled',active:'responsiville-scrollmenu-active',activeBody:'responsiville-scrollmenu-active-body',zIndex:-1,offsetTop:0,offsetBottom:0,enter:'small, mobile, tablet, laptop, desktop, large, xlarge',leave:''};Responsiville.Scrollmenu.autoRun=function(){jQuery(Responsiville.Scrollmenu.defaults.element).each(function(){new Responsiville.Scrollmenu({debug:Responsiville.Main.getInstance().options.debug,element:this})})};Responsiville.Scrollmenu.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
1019var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
1020if(this.responsiville.is(this.options.enter)){this.enable()}
1021var scrollThrottled=this.getBoundFunction(Responsiville.throttle(this.scroll));this.$window.on('scroll',scrollThrottled);this.$window.on('resize',scrollThrottled)};Responsiville.Scrollmenu.prototype.enable=function(){this.log('enable scrollmenu');this.enabled=!0;this.$elementCloned.addClass(this.options.enabled);this.scroll();this.fireEvent('enabled')};Responsiville.Scrollmenu.prototype.disable=function(){this.log('disable scrollmenu');this.deactivate();this.enabled=!1;this.$elementCloned.removeClass(this.options.enabled);this.fireEvent('disabled')};Responsiville.Scrollmenu.prototype.activate=function(){if(!this.enabled){return}
1022if(this.activated){return}
1023this.log('activate scrollmenu');this.fireEvent('activating');this.$body.addClass(this.options.activeBody);this.$elementCloned.addClass(this.options.active);this.activated=!0;this.fireEvent('activated')};Responsiville.Scrollmenu.prototype.deactivate=function(){if(!this.enabled){return}
1024if(!this.activated){return}
1025this.log('deactivate scrollmenu');this.fireEvent('deactivating');this.$body.removeClass(this.options.activeBody);this.$elementCloned.removeClass(this.options.active);this.activated=!1;this.fireEvent('deactivated')};Responsiville.Scrollmenu.prototype.scroll=function(){if(!this.enabled){return}
1026this.log('scrollmenu scroll');var scrollY=window.pageYOffset!==undefined?window.pageYOffset:this.$window.get(0).scrollY;var threshold=this.options.offsetTop-this.options.offsetBottom;if(scrollY>threshold){this.activate()}else if(scrollY<=threshold){this.deactivate()}}
1027;/**
1028 * Creates and initialises the stickymenu. 
1029 * 
1030 * @class
1031 * @extends   Responsiville.Debug
1032 * @extends   Responsiville.Events
1033 * 
1034 * @author    Nevma, [email protected]
1035 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
1036 * 
1037 * @fires     Responsiville.Stickymenu#init
1038 * 
1039 * @classdesc A responsive stickymenu for the Responsiville framework. It makes 
1040 *            a menu, or any HTML element for that matter, stay fixed on top of 
1041 *            the screen as the user scrolls down the page. Pretty useful in 
1042 *            responsive web design and in long web pages in general.
1043 *
1044 * @param {Object} options The initialisation options of the module.
1045 * 
1046 * @property {Object}  options              The options that define the object
1047 *                                          behaviour.
1048 * @property {boolean} options.debug        Whether to print debug messages in
1049 *                                          the browser console.
1050 * @property {boolean}
1050 options.slug         A special codename for the instance
1051 *                                          of the element, to be used as a
1052 *                                          class on its container and as a key
1053 *                                          in arrays where it is grouped with
1054 *                                          other elements of its kind. 
1055 * @property {string}  options.element      Selector for the element that
1056 *                                          actually is the element to be made
1057 *                                          sticky.
1058 * @property {string}  options.enabled      The class added to the element when 
1059 *                                          the stickymenu is enabled. Note 
1060 *                                          that the stickymenu might be there
1061 *                                          without being enabled. Enabled does
1062 *                                          not mean active. Enabled means
1063 *                                          having the readiness to become 
1064 *                                          active upon the desired page 
1065 *                                          scroll.
1066 * @property {string}  options.active       The class added to the stickymenu 
1067 *                                          whenit becomes active. 
1068 * @property {string}  options.activeBody   The class added to the body element 
1069 *                                          when the stickymenu becomes active.
1070 * @property {string}  options.offsetTop    The extra space to wait for the user
1071 *                                          to scroll down to, before the sticky 
1072 *                                          menu us activated.
1073 * @property {string}  options.offsetBottom The reverse of offsetTop, the extra
1074 *                                          space before the top of the page
1075 *                                          where the stickymenu will be 
1076 *                                          deactivated.
1077 * @property {string}  options.enter        Comma separated list of breakpoints
1078 *                                          in which the module enters, wihch
1079 *                                          means it is enabled (not activated).
1080 * @property {string}  options.leave        Comma separated list of breakpoints
1081 *                                          in which the module leaves, which
1082 *                                          means it is disabled.
1083 */
1084Responsiville.Stickymenu=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
1085this.options={};this.options=jQuery.extend(this.options,Responsiville.Stickymenu.defaults,options);this.codeName='responsiville.stickymenu';this.responsiville=Responsiville.Main.getInstance();this.$body=this.responsiville.$body;this.$document=this.responsiville.$document;this.$window=this.responsiville.$window;this.$element=jQuery(this.options.element);for(var key in this.options){var value=this.$element.data('responsiville-stickymenu-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
1086if(this.options.slug==''){Responsiville.Stickymenu.elementsCounter=Responsiville.Stickymenu.elementsCounter!==undefined?++Responsiville.Stickymenu.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Stickymenu.elementsCounter}
1087var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$element.data('responsiville-stickymenu-enter'),leave:this.$element.data('responsiville-stickymenu-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
1088if(this.$element.length===0){this.log('Responsiville.Stickymenu instantiation error: no menus found ('+this.options.menu+').');return}
1089this.$element.data('responsiville-api',this);this.$element.data('responsiville-stickymenu-api',this);this.enabled=!1;this.activated=!1;this.setupEvents();this.log('stickymenu initialised');this.fireEvent('created')};Responsiville.extend(Responsiville.Stickymenu,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Stickymenu,Responsiville.Events);Responsiville.Stickymenu.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Stickymenu.defaults={debug:!1,slug:'',element:'.responsiville-stickymenu',enabled:'responsiville-stickymenu-enabled',active:'responsiville-stickymenu-active',activeBody:'responsiville-stickymenu-active-body',offsetTop:0,offsetBottom:0,enter:'laptop, desktop, large, xlarge',leave:'small, mobile, tablet'};Responsiville.Stickymenu.autoRun=function(){jQuery(Responsiville.Stickymenu.defaults.element).each(function(){new Responsiville.Stickymenu({debug:Responsiville.Main.getInstance().options.debug,element:this})})};Responsiville.Stickymenu.prototype.setupEvents=function(){var k,length;var breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}
1090var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
1091if(this.responsiville.is(this.options.enter)){this.enable()}
1092var scrollThrottled=this.getBoundFunction(Responsiville.throttle(this.scroll));this.$window.on('scroll',scrollThrottled);this.$window.on('resize',scrollThrottled)};Responsiville.Stickymenu.prototype.enable=function(){this.log('enable stickymenu');this.$element.addClass(this.options.enabled);this.enabled=!0;this.scroll();this.fireEvent('enabled')};Responsiville.Stickymenu.prototype.disable=function(){this.log('disable stickymenu');this.deactivate();this.enabled=!1;this.$element.removeClass(this.options.enabled);this.fireEvent('disabled')};Responsiville.Stickymenu.prototype.activate=function(){if(!this.enabled){return}
1093if(this.activated){return}
1094this.log('activate stickymenu');this.fireEvent('activating');this.$body.addClass(this.options.activeBody);this.$element.addClass(this.options.active);this.activated=!0;this.fireEvent('activated')};Responsiville.Stickymenu.prototype.deactivate=function(){if(!this.enabled){return}
1095if(!this.activated){return}
1096this.log('deactivate stickymenu');this.fireEvent('deactivating');this.$body.removeClass(this.options.activeBody);this.$element.removeClass(this.options.active);this.activated=!1;this.fireEvent('deactivated')};Responsiville.Stickymenu.prototype.scroll=function(){if(!this.enabled){return}
1097this.log('stickymenu scroll');var scrollY=window.pageYOffset!==undefined?window.pageYOffset:this.$window.get(0).scrollY;var threshold=this.options.offsetTop-this.options.offsetBottom;if(scrollY>threshold){this.activate()}else if(scrollY<=threshold){this.deactivate()}}
1098;/**
1099 * Creates and initialises the slideshow. 
1100 * 
1101 * @class
1102 * @extends   Responsiville.Debug
1103 * @extends   Responsiville.Events
1104 * 
1105 * @author    Nevma, [email protected]
1106 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
1107 * 
1108 * @fires     Responsiville.Slideshow#init
1109 * 
1110 * @classdesc A responsive slideshow for the Responsiville framework. A 
1111 *            slideshow consists of a container for elements that iterate, ie 
1112 *            the slides, the slies themselves and some elements for controlling
1113 *            its behaviour, moving it back and forth and to next and previous 
1114 *            slide. It works with the Responsiville framework. It hides when
1115 *            necessary, re-appears when there is enough space, according to the
1116 *            given breakpoints configuration. People have been known to use it
1117 *            even for creating other functionalities, like tabs, etc.
1118 *
1119 * @param {Object} options The initialisation options of the module.
1120 * 
1121 * @property {Object}   options              The options that define the object
1122 *                                           behaviour.
1123 * @property {boolean}  options.debug        Whether to print debug messages in 
1124 *                                           the browser console.
1125 * @property {boolean}  options.slug         A special codename for the instance
1126 *                                           of the element, to be used as a
1127 *                                           class on  its container and as a
1128 *                                           key in arrays where it is grouped
1129 *                                           with other elements of its kind. 
1130 * @property {string}   options.enter        Comma separated list of breakpoints 
1131 *                                           in which the slideshow enters, 
1132 *                                           which means it is enabled.
1133 * @property {string}   options.leave        Comma separated list of breakpoints
1134 *                                           in which the slideshow leaves,
1135 *                                           which means it is disabled.
1136 * @property {string}   options.container    The slideshow container element 
1137 *                                           selector.
1138 * @property {string}   options.slides       The slideshow slides elements 
1139 *                                           selector. If null given then the
1140 *                                           container's direct children are
1141 *                                           taken into account.
1142 * @property {string}   options.navigation   The slideshow navigation element,
1143 *                                           the one that holds the slide
1144 *                                           bullets and  the next and previous
1145 *                                           buttons. If null given then the
1146 *                                           module searches for a nav element
1147 *                                           inside the container.
1148 * @property {string}   options.bullets      The selector of the element that
1149 *                                           holds the slideshow navigation
1150 *                                           bullets.
1151 * @property {string}   options.bullet       The selector of the actual
1152 *                                           slideshow bullets.
1153 * @property {string}   options.next         The next slide button element 
1154 *                                           selector.
1155 * @property {string}   options.previous     The previous slide button element 
1156 *                                           selector.
1157 * @property {string}   options.loading      Class added to a the container
1158 *                                           before the first slide loads, while
1159 *                                           the user is under the impression
1160 *                                           that the slideshow itself is
1161 *                                           loading.
1162 * @property {string}   options.loaded       Class added to a the container
1163 *                                           after the first slide has loaded.
1164 *                                           "First" means the first selected
1165 *                                           slide, not the first in the row.
1166 * @property {string}   options.selecting    Class added to slides while 
1167 *                                           transitioning from non selectred to
1168 *                                           selected.
1169 * @property {string}   options.selected     Class added to a slide when it is
1170 *                                           selected. Only one slide can be
1171 *                                           selected.
1172 * @property {string}   options.bulletsPos   The position of the navigation 
1173 *                                           bullets, eg "bc" stands for "bottom
1174 *                                           center", etc.
1175 * @property {string}   options.bulletOn     The class of the selected bullet at 
1176 *                                           each time.
1177 * @property {string}   options.nextText     The text inside the slideshow next
1178 *                                           button.
1179 * @property {string}   options.previousText The text inside the slideshow
1180 *                                           previous button.
1181 * @property {string}   options.bulletText   The text inside the slideshow
1182 *                                           bullets.
1183 * @property {string}   options.resizeMode   How to resize the container, "none" 
1184 *                                           means do not resize it at all, 
1185 *                                           "slide" means give it the height of 
1186 *                                           the current slide, "maxSlide" means 
1187 *                                           resize it in the beginning to the 
1188 *                                           height of the biggest slide.
1189 * @property {int}      options.first        Slide to start from, counting from 
1190 *                                           zero.
1191 * @property {int}      options.direction    Whether the slide advances forwards 
1192 *                                           (a positive value) or goes
1193 *                                           backwards (a negative value).
1194 * @property {boolean}  options.start        Whether to start the automatic 
1195 *                                           slide iteration in the beginning.
1196 * @property {string}   options.effect       The visual effect to use when 
1197 *                                           transitioning from one slide to the 
1198 *                                           next, "none" means no effect simply 
1199 *                                           appear and disappear, "fade" means
1200 *                                           a fading effect, "slide" means a 
1201 *                                           sliding effect.
1202 * @property {int}      options.speed        The speed of the slideshow or how 
1203 *                                           much the each slide stays visible 
1204 *                                           before transitioning to the next.
1205 * @property {int}      options.transition   The speed of each slide transition 
1206 *                                           visual effect.
1207 * @property {boolean}  options.hover        Whether to pause the slideshow when 
1208 *                                           the user hovers their mouse over
1209 *                                           it.
1210 * @property {boolean}  options.wait         Whether to wait for the images of
1211 *                                           the first selected slide to fully
1212 *                                           load before beginning the
1213 *                                           slideshow. Useful to provide a
1214 *                                           loading indicator to the user while
1215 *                                           they wait.
1216 */
1217Responsiville.Slideshow=function(options){if(!Responsiville.Main.getInstance()){throw new Error('Responsiville instantiation error: the framework has not been initialised, call new Responsiville::Main() and then Responsiville::init().')}
1218this.options={};this.options=jQuery.extend(this.options,Responsiville.Slideshow.defaults,options);
1218this.codeName='responsiville.slideshow';this.responsiville=Responsiville.Main.getInstance();this.$container=jQuery(this.options.container);for(var key in this.options){var value=this.$container.data('responsiville-slideshow-'+key.toLowerCase());if(typeof value!=='undefined'){this.options[key]=value}}
1219if(this.options.slug==''){Responsiville.Slideshow.elementsCounter=Responsiville.Slideshow.elementsCounter!==undefined?++Responsiville.Slideshow.elementsCounter:0;this.options.slug=this.codeName.replace('.','-')+'-'+Responsiville.Slideshow.elementsCounter}
1220var htmlBreakpoints=Responsiville.determineEnableDisableBreakpoints({enter:this.$container.data('responsiville-slideshow-enter'),leave:this.$container.data('responsiville-slideshow-leave')});if(htmlBreakpoints!==null){this.options.enter=htmlBreakpoints.enter;this.options.leave=htmlBreakpoints.leave}
1221this.$slides=this.$container.find(this.options.slides);this.index=null;this.paused=null;this.enabled=null;this.timeoutHandler=null;this.firstRun=!0;if(this.$slides.length===0){this.$slides=this.$container.children()}
1222if(this.$slides.length===0){this.log('Responsiville.Slideshow instantiation error: no slides found ('+this.options.slides+').');return}
1223this.$container.data('responsiville-api',this);this.$container.data('responsiville-slideshow-api',this);this.$container.addClass(this.options.slug);this.$slides.wrapAll('<div class="responsiville-slideshow-slides-container"></div>');this.$container.append('<nav class="responsiville-slideshow-navigation">'+'<button class="responsiville-slideshow-next" title="'+this.options.nextText+'">'+'<span class="responsiville-slideshow-next-icon"></span>'+'<span class="responsiville-slideshow-next-text">'+this.options.nextText+'</span>'+'</button>'+'<button class="responsiville-slideshow-previous" title="'+this.options.previousText+'">'+'<span class="responsiville-slideshow-previous-icon"></span>'+'<span class="responsiville-slideshow-previous-text">'+this.options.previousText+'</span>'+'</button>'+'</nav>');var bulletsHTML='';for(var k=0,length=this.$slides.length;k<length;k++){bulletsHTML+='<button class="responsiville-slideshow-bullet" title="'+this.options.bulletText+" "+(k+1)+'">'+'<span class="responsiville-slideshow-bullet-icon"></span>'+'<span class="responsiville-slideshow-bullet-text">'+this.options.bulletText+'</span>'+'<span class="responsiville-slideshow-bullet-number">'+(k+1)+'</span>'+'</button>'}
1224this.$container.append('<nav class="responsiville-slideshow-bullets '+this.options.bulletsPos+'">'+bulletsHTML+'</nav>');this.$navigation=this.$container.find(this.options.navigation);this.$bullets=this.$container.find(this.options.bullet);this.$next=this.$container.find(this.options.next);this.$previous=this.$container.find(this.options.previous);this.$container.addClass('responsiville-slideshow');this.setupEvents();this.log('slideshow initialised');this.fireEvent('init')};Responsiville.extend(Responsiville.Slideshow,Responsiville.Debug.Extensions);Responsiville.extend(Responsiville.Slideshow,Responsiville.Events);Responsiville.Slideshow.AUTO_RUN=typeof RESPONSIVILLE_AUTO_INIT!=='undefined'?RESPONSIVILLE_AUTO_INIT:!0;Responsiville.Slideshow.defaults={debug:!1,slug:'',enter:'laptop, desktop, large, xlarge',leave:'tablet, mobile, small',container:'.responsiville-slideshow',slides:'.responsiville-slideshow-slide',navigation:'.responsiville-slideshow-navigation',bullets:'.responsiville-slideshow-bullets',bullet:'.responsiville-slideshow-bullet',next:'.responsiville-slideshow-next',previous:'.responsiville-slideshow-previous',loading:'responsiville-slideshow-loading',loaded:'responsiville-slideshow-loaded',selecting:'responsiville-slideshow-slide-selecting',selected:'responsiville-slideshow-slide-selected',bulletsPos:'bc',bulletOn:'responsiville-slideshow-bullet-selected',nextText:'Next',previousText:'Previous',bulletText:'Slide',resizeMode:'slide',first:0,direction:+1,start:!0,effect:'fade',speed:5000,transition:500,hover:!0,wait:!0};Responsiville.Slideshow.autoRun=function(){jQuery(Responsiville.Slideshow.defaults.container).each(function(){new Responsiville.Slideshow({debug:Responsiville.Main.getInstance().options.debug,container:this})})};Responsiville.Slideshow.prototype.setupEvents=function(){var k;var breakpointsEnter;if(this.options.wait){breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enableOnFirstSlideLoad))}}else{breakpointsEnter=Responsiville.splitAndTrim(this.options.enter);for(k=0,length=breakpointsEnter.length;k<length;k++){this.responsiville.on('enter.'+breakpointsEnter[k],this.getBoundFunction(this.enable))}}
1225var breakpointsLeave=Responsiville.splitAndTrim(this.options.leave);for(k=0,length=breakpointsLeave.length;k<length;k++){this.responsiville.on('enter.'+breakpointsLeave[k],this.getBoundFunction(this.disable))}
1226this.$container.on('mouseenter',this.getBoundFunction(this.containerMouseEnter));this.$container.on('mouseleave',this.getBoundFunction(this.containerMouseLeave));this.$bullets.on('click',this.getBoundFunction(this.bulletMouseClick));this.$next.on('click',this.getBoundFunction(this.nextMouseClick));this.$previous.on('click',this.getBoundFunction(this.previousMouseClick));this.$container.hammer().bind('swiperight',this.getBoundFunction(this.previousMouseClick));this.$container.hammer().bind('swipeleft',this.getBoundFunction(this.nextMouseClick));this.responsiville.on('resize',this.getBoundFunction(this.adjustContainer));this.$container.find('img').on('load',this.getBoundFunction(this.imageLoaded))};
1226Responsiville.Slideshow.prototype.enableOnFirstSlideLoad=function(){var imageOnFirstSlide=this.$slides.eq(this.options.first).find('img');if(imageOnFirstSlide.length>0){var imgElement=imageOnFirstSlide.get(0);var imageOnFirstSlideLoaded=Responsiville.hasImageLoaded(imgElement);if(!imageOnFirstSlideLoaded){Responsiville.onImagesLoaded(imgElement,{single:this.getBoundFunction(this.enable)});return}}
1227this.enable()};Responsiville.Slideshow.prototype.enable=function(){if(this.enabled){return}
1228this.log('enabling the slideshow');this.enabled=!0;this.$container.addClass('responsiville-slideshow-enabled');this.$container.addClass(this.options.loading);this.$slides.addClass('responsiville-slideshow-slide');this.$navigation.addClass(this.options.bulletsPos);this.$bullets.addClass('responsiville-slideshow-navigation-bullet');this.$next.addClass('responsiville-slideshow-next');this.$previous.addClass('responsiville-slideshow-previous');var k;var length;for(k=0,length=this.$slides.length;k<length;k++){this.$slides.eq(k).data('responsiville-slideshow-slide-number',k)}
1229for(k=0,length=this.$bullets.length;k<length;k++){this.$bullets.eq(k).data('responsiville-slideshow-bullet-number',k)}
1230this.hideAll(!0);if(this.options.start){this.start()}else{var index=this.calculateNext();this.select(index)}
1231this.fireEvent('enabled')};Responsiville.Slideshow.prototype.disable=function(){if(!this.enabled){return}
1232this.log('disabling the slideshow');this.enabled=!1;this.pause();this.$container.removeClass('responsiville-slideshow-enabled').css('height','auto');this.$slides.removeClass('responsiville-slideshow-slide');if(this.options.effect=='none'){this.$slides.removeClass('responsiville-slideshow-slide-hidden')}else if(this.options.effect=='fade'){this.$slides.css('opacity',1)}else if(this.options.effect=='slide'){}
1233this.$navigation.removeClass(this.options.bulletsPos);this.$bullets.removeClass('responsiville-slideshow-navigation');this.$next.removeClass('responsiville-slideshow-next');this.$previous.removeClass('responsiville-slideshow-previous');this.fireEvent('disabled')};Responsiville.Slideshow.prototype.start=function(){this.fireEvent('starting');if(this.paused===null){this.paused=!this.options.start}else{this.paused=!1}
1234var index=this.calculateNext();this.log('start from '+index);this.adjustContainer();this.select(index);this.fireEvent('started')};Responsiville.Slideshow.prototype.pause=function(){this.log('pause at '+this.index);this.paused=!0;window.clearTimeout(this.timeoutHandler);this.$container.velocity('finish',!0);this.$slides.velocity('finish',!0);this.fireEvent('paused')};Responsiville.Slideshow.prototype.adjustContainer=function(){if(!this.enabled){return}
1235this.$container.velocity('finish',!0);if(this.options.resizeMode=='none'){}else if(this.options.resizeMode=='slide'){this.$container.velocity({properties:{height:this.$slides.eq(this.index).outerHeight()},options:{duration:this.options.transition/2,complete:(function(){if(!this.enabled){this.$container.css('height','auto')}
1236this.fireEvent('containerAdjusted')}).bind(this)}})}else if(this.options.resizeMode=='maxSlide'){var maxHeight=0;for(var k=0,length=this.$slides.length;k<length;k++){var slideHeight=this.$slides.eq(k).outerHeight();maxHeight=slideHeight>maxHeight?slideHeight:maxHeight}
1237this.$container.velocity({properties:{height:maxHeight},options:{duration:this.options.transition/2}});this.fireEvent('containerAdjusted')}};Responsiville.Slideshow.prototype.imageLoaded=function(){this.adjustContainer()};Responsiville.Slideshow.prototype.show=function(index,previous){this.fireEvent('slideShowing');window.clearTimeout(this.timeoutHandler);if(index!=previous&&!this.firstRun){this.hide(previous,index)}
1238this.$bullets.eq(previous).removeClass(this.options.bulletOn);this.$bullets.eq(index).addClass(this.options.bulletOn);this.$slides.removeClass(this.options.selecting);this.$slides.eq(index).addClass(this.options.selecting);this.log('show slide '+index);if(this.options.effect=='none'){this.adjustContainer();this.$slides.eq(index).removeClass('responsiville-slideshow-slide-hidden');this.afterSlideShown(index);if(this.options.start&&!this.paused){this.timeoutHandler=window.setTimeout(this.getBoundFunction(this.selectNext),this.options.speed)}
1239this.fireEvent('slideShown')}else if(this.options.effect=='fade'){this.adjustContainer();this.$slides.eq(index).velocity({properties:{opacity:1,zIndex:1},options:{duration:this.firstRun?0:this.options.transition,easing:'easeInOutSine',complete:(function(){this.afterSlideShown(index);if(this.options.start&&!this.paused){this.timeoutHandler=window.setTimeout(this.getBoundFunction(this.selectNext),this.options.speed)}
1240this.fireEvent('slideShown')}).bind(this)}})}else if(this.options.effect=='slide'){this.adjustContainer();var slide_direction=+1;if(index==0){slide_direction=previous==this.$slides.length-1?+1:-1}else{slide_direction=index-previous}
1241if(index>=previous&&!(index==this.$slides.length-1&&previous==0)||(index==0&&previous==this.$slides.length-1)){slide_direction=+1}else{slide_direction=-1}
1242this.$slides.eq(index).css(slide_direction>0?{left:'100%',right:'auto'}:{right:'100%',left:'auto'}).velocity('finish',!0).velocity({properties:slide_direction>0?{left:'0'}:{right:'0'},options:{duration:this.firstRun?0:this.options.transition,easing:'easeInOutSine',complete:(function(){this.afterSlideShown(index);if(this.options.start&&!this.paused){this.timeoutHandler=window.setTimeout(this.getBoundFunction(this.selectNext),this.options.speed)}
1243this.fireEvent('slideShown')}).bind(this)}})}};Responsiville.Slideshow.prototype.afterSlideShown=function(index){this.firstRun=!1;this.$container.removeClass(this.options.loading);this.$container.addClass(this.options.loaded);this.$slides.removeClass(this.options.selected);this.$slides.removeClass(this.options.selecting);this.$slides.eq(this.index).addClass(this.options.selected)};Responsiville.Slideshow.prototype.hide=function(index,next,immediately){this.log('hide slide '+index);this.fireEvent('slideHiding');if(this.options.effect=='none'){this.$slides.eq(index).addClass('responsiville-slideshow-slide-hidden');this.fireEvent('slideHidden')}else if(this.options.effect=='fade'){this.$slides.eq(index).velocity({properties:{opacity:0,zIndex:0},options:{duration:immediately?0:this.options.transition,easing:'easeInOutSine',complete:(function(){this.fireEvent('slideHidden')}).bind(this)}})}else if(this.options.effect=='slide'){var slide_direction=+1;if(next==0){slide_direction=index==this.$slides.length-1?+1:-1}else{slide_direction=next-index}
1244if(next>=index&&!(next==this.$slides.length-1&&index==0)||(next==0&&index==this.$slides.length-1)){slide_direction=+1}else{slide_direction=-1}
1245this.$slides.eq(index).css(slide_direction>0?{left:'0',right:'auto'}:{right:'0',left:'auto'}).velocity('finish',!0).velocity({properties:slide_direction>0?{left:'-100%'}:{right:'-100%'},options:{duration:immediately?0:this.options.transition,easing:'easeInOutSine',complete:(function(){this.fireEvent('slideHidden')}).bind(this)}})}};Responsiville.Slideshow.prototype.hideAll=function(immediately){this.log('hide all slides');for(var k=0,length=this.$slides.length;k<length;k++){this.hide(k,-1,immediately)}};Responsiville.Slideshow.prototype.select=function(index){var previous=this.index;this.index=index;this.log('selected slide '+this.index);this.show(index,previous)};Responsiville.Slideshow.prototype.selectNext=function(){var index=this.calculateNext();this.select(index)};Responsiville.Slideshow.prototype.calculateNext=function(){if(this.index===null){this.index=this.options.direction?this.options.first-1:this.options.first+1}
1246var index=this.index;if(this.options.direction>0){index=index+1>=this.$slides.length?0:index+1}else{index=index-1<0?this.$slides.length-1:index-1}
1247this.log('next calculated index is '+index);return index};Responsiville.Slideshow.prototype.next=function(){this.log('go to slide on the right');var direction=this.options.direction;this.options.direction=+1;var index=this.calculateNext();this.options.direction=direction;this.select(index)};Responsiville.Slideshow.prototype.previous=function(){this.log('go to slide on the left');var direction=this.options.direction;this.options.direction=-1;var index=this.calculateNext();this.options.direction=direction;this.select(index)};Responsiville.Slideshow.prototype.bulletMouseClick=function(event){if(!this.enabled){return}
1248var $bullet=jQuery(event.target);if(!$bullet.is('.responsiville-slideshow-bullet')){$bullet=$bullet.closest('.responsiville-slideshow-bullet')}
1249var index=$bullet.data('responsiville-slideshow-bullet-number');this.log('bullet mouse click '+index);this.select(index);return!1};Responsiville.Slideshow.prototype.nextMouseClick=function(){if(!this.enabled){return}
1250this.log('next mouse click');this.next();return!1};Responsiville.Slideshow.prototype.previousMouseClick=function(){if(!this.enabled){return}
1251this.log('previous mouse click');this.previous();return!1};Responsiville.Slideshow.prototype.containerMouseEnter=function(){if(this.firstRun){return}
1252if(!this.enabled){return}
1253this.log('container mouse enter');if(this.options.hover&&this.options.start&&!this.options.paused){this.pause()}};Responsiville.Slideshow.prototype.containerMouseLeave=function(){if(!this.enabled){return}
1254this.log('container mouse leave');if(this.options.hover&&this.options.start&&!this.options.paused){this.timeoutHandler=window.setTimeout(this.getBoundFunction(this.start),this.options.speed)}}
1255;/**
1256 * @author  Nevma, [email protected]
1257 * @license http://www.gnu.org/licenses/gpl-3.0.en.html GPLv3
1258 */
1259if(Responsiville.Responsiveelement.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Responsiveelement.autoRun()})}
1260if(Responsiville.Scrollmenu.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Scrollmenu.autoRun()})}
1261if(Responsiville.Stickymenu.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Stickymenu.autoRun()})}
1262if(Responsiville.Mobimenu.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Mobimenu.autoRun()})}
1263if(Responsiville.Megamenu.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Megamenu.autoRun()})}
1264if(Responsiville.Drawers.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Drawers.autoRun()})}
1265if(Responsiville.Slideshow.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Slideshow.autoRun()})}
1266if(Responsiville.Accordion.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Accordion.autoRun()})}
1267if(Responsiville.Parallax.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Parallax.autoRun()})}
1268if(Responsiville.Equalheights.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Equalheights.autoRun()})}
1269if(Responsiville.Popup.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Popup.autoRun()})}
1270if(Responsiville.Lazymg.AUTO_RUN){Responsiville.Main.getInstance().on('init',function(){Responsiville.Lazymg.autoRun()})}
1271;jQuery(function($){$('.text .iframe-responsive').each(function(){$(this).parent().addClass('video-wrapper ratio-16x9')});$('iframe[src*="youtube.com"], iframe[src*="google.com/maps"]').each(function(){$(this).parent().addClass('video-wrapper ratio-16x9')});$('iframe[src*="vimeo.com"]').each(function(){$(this).wrap('<p/>').parent().addClass('video-wrapper ratio-16x9')});$('iframe[src*="speakerdeck.com"]').each(function(){$(this).parent().addClass('video-wrapper ratio-4x3')})})
1272;jQuery(function($){$(document).on('gform_post_render',function(event,form_id){var $form=$('#gform_wrapper_'+form_id);if($form.is('.gform_validation_error')){var offset=-$(window).height()/5;$form.velocity('scroll',{duration:300,offset:offset})}});$(document).on('gform_confirmation_loaded',function(event,form_id){var offset=-$(window).height()/5;$('#gform_confirmation_wrapper_'+form_id).velocity('scroll',{duration:300,offset:offset})})})
1273;jQuery(function($){$('.uppercase').greekUppercase()})
1274;jQuery(function($){var anchorPopupParameters={popupParameters:{startZIndex:999}};$('.wp-caption a').anchorPopup(anchorPopupParameters);$('.gallery').each(function(){$(this).find('.gallery-icon a').anchorPopup(anchorPopupParameters)});$('[class*=size]').each(function(){var $parent=$(this).parent();if($parent.is('a')){$parent.addClass('thumbnail-wrapper')}
1275if($parent.is('a')&&!$parent.parent().is('.wp-caption')&&!$parent.parent().is('.gallery-icon')){$parent.anchorPopup(anchorPopupParameters)}})})
1276;jQuery(function($){var responsiville=Responsiville.Main.getInstance();$('.responsive-table').each(function(){var table=this;responsiville.on('change',function(){maybe_make_table_responsive(table)});maybe_make_table_responsive(this)});function maybe_make_table_responsive(table){var $table=$(table);var $trs=$table.find('tr');var $ths=$table.find('th');if($ths.length==0){$ths=$table.find('thead tr:first td');$trs=$table.find('tbody tr')}
1277if($ths.length==0){return}
1278if(responsiville.isBiggerThan('tablet')){$table.css('display','table');if($table.data('surrogate')){$table.data('surrogate').remove()}}else{$table.css('display','none');var tableHTML='<table>';for(var k=0,length1=$trs.length;k<length1;k++){var $tr=$trs.eq(k);if($tr.find('th').length>0){continue}
1279var $tds=$tr.find('td');for(var m=0,length2=$tds.length;m<length2;m++){var $td=$tds.eq(m);if(m==0){tableHTML+='<thead>'}else if(m==1){tableHTML+='<tbody>'}
1280tableHTML+='<tr>';tableHTML+='<th style="width: 20%;">'+$ths.eq(m).html()+'</th>';tableHTML+='<td>'+$td.html()+'</td>';tableHTML+='</tr>';if(m==0){tableHTML+='</thead>'}else if(m==length2-1){tableHTML+='</tbody>'}}}
1281tableHTML+='</table>';var $surrogate=$(tableHTML).insertBefore($table);$table.data('surrogate',$surrogate)}}})
1282;jQuery(function($){var $openSearchButton=$('.open-search-button');$openSearchButton.on('click',function(){var popup=new Responsiville.Popup({contents:'<p>Please wait...</p>'});popup.openPopup();$.get(VANILLA.AJAX_URL,{action:'nvm_search_get_search_form'},function(data){popup.setContents(data)});return!1})})
1283;jQuery(document).ready(function($){$('.show-thematikes-filters').click(function(){$('.thematikes-filters').slideToggle('fast','linear');$('.thematikes-filters-button').addClass('close')});$('.hide-thematikes-filters').click(function(){$('.thematikes-filters').slideToggle('fast','linear');$('.thematikes-filters-button').removeClass('close')})})
1284;"use strict";function cmplz_create_element(e,t){e=document.createElement(e);return e.innerHtml=t,e}function cmplz_add_event(e,t,c){document.addEventListener(e,e=>{e.target.closest(t)&&c(e)})}function cmplz_is_hidden(e){return null===e.offsetParent}function cmplz_html_decode(e){return(new DOMParser).parseFromString(e,"text/html").documentElement.textContent}function cmplzLoadConsentAreaContent(e,i){document.querySelectorAll(".cmplz-consent-area.cmplz-placeholder").forEach(t=>{let c=t.getAttribute("data-category"),n=t.getAttribute("data-service");var o=t.getAttribute("data-post_id"),a=t.getAttribute("data-block_id");if(e===c||i===n){let e=new XMLHttpRequest;e.open("GET",complianz.url+"consent-area/"+o+"/"+a,!0),e.setRequestHeader("Content-type","application/json"),e.send(),t.classList.remove("cmplz-placeholder"),e.onload=function(){t.innerHTML=JSON.parse(e.response),t.querySelectorAll("script").forEach(e=>{cmplz_run_script(e.innerHTML,c,n,"inline",e)})}}})}document.querySelectorAll(".cmplz-consent-area.cmplz-placeholder").forEach(e=>{e.addEventListener("click",e=>{let t=e.target;(t=t.classList.contains("cmplz-consent-area")?t:e.target.closest(".cmplz-consent-area.cmplz-placeholder"))&&(cmplz_set_service_consent(e=t.getAttribute("data-service"),!0),cmplzLoadConsentAreaContent(!1,e),cmplz_enable_category(null,e),cmplz_set_banner_status("dismissed"))}),document.addEventListener("cmplz_enable_category",function(e){cmplzLoadConsentAreaContent(e.detail.category,e.detail.service)})}),document.addEventListener("cmplz_manage_consent_container_loaded",function(e){var t,c=window.location.href;-1!=c.indexOf("#")&&(t=-1!=c.lastIndexOf("?")?c.lastIndexOf("?"):void 0,c=c.substring(c.indexOf("#")+1,t),t=document.getElementById(c))&&(c=t.getBoundingClientRect().top+window.pageYOffset-200,window.scrollTo({top:c,behavior:"smooth"}))}),complianz.locale=complianz.locale+"&token="+Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var c=document.createEvent("CustomEvent");return c.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),c}"function"!=typeof window.CustomEvent&&(e.prototype=window.Event.prototype,window.CustomEvent=e)}();
1284var cmplz_banner,cmplz_manage_consent_button,cmplzResizeTimer,cmplz_banner_container=document.getElementById("cmplz-cookiebanner-container"),cmplz_waiting_inline_scripts=[],cmplz_waiting_scripts=[],cmplz_fired_scripts=[],cmplz_placeholder_class_index=0,cmplz_all_scripts_hook_fired=!1,cmplz_consent_stored_once=!1,cmplz_fired_category_events=["functional"],cmplz_fired_service_events=[],cmplz_categories=["functional","preferences","statistics","marketing"];window.cmplz_get_cookie=function(t){if("undefined"!=typeof document){t=complianz.prefix+t;var c=document.cookie.split(";");for(let e=0;e<c.length;e++){var n=c[e].trim();if(n.startsWith(t+"="))return n.substring(t.length+1)}}return""},window.cmplz_set_cookie=function(e,t,c){var n,o,a,i;"undefined"!=typeof document&&(c=void 0===c||c,n="https:"===window.location.protocol?";secure":"",(o=new Date).setTime(o.getTime()+24*complianz.cookie_expiry*60*60*1e3),o=";expires="+o.toGMTString(),a=0<(a=cmplz_get_cookie_domain()).length?";domain="+a:"",c=c?complianz.prefix:"",i=cmplz_get_cookie_path(),document.cookie=""+c+e+`=${t};SameSite=Lax${n}${o}${a};path=`+i)},window.cmplz_in_array=function(e,t){return t.includes(e)},window.cmplz_highest_accepted_category=function(){var t=cmplz_accepted_categories(),c=["marketing","statistics","preferences"];for(let e=0;e<c.length;e++)if(cmplz_in_array(c[e],t))return c[e];return"functional"};const cmplz_set_category_as_body_class=()=>{const c=document.body.classList;for(let e=c.length-1;0<=e;e--)c[e].startsWith("cmplz-")&&"cmplz-document"!==c[e]&&c.remove(c[e]);var e=cmplz_accepted_categories(),e=(Object.values(e).forEach(e=>{"string"==typeof e&&c.add("cmplz-"+e)}),cmplz_get_all_service_consents()),e=(Object.entries(e).forEach(([e,t])=>{t&&c.add("cmplz-"+e)}),c.add("cmplz-"+complianz.region,"cmplz-"+complianz.consenttype),new CustomEvent("cmplz_set_category_as_bodyclass"));document.dispatchEvent(e)},cmplz_append_css=e=>{var t=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.setAttribute("type","text/css"),c.appendChild(document.createTextNode(e)),t.appendChild(c)},cmplz_load_css=e=>{var t=document.head||document.getElementsByTagName("head")[0],c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.href=e,t.appendChild(c)};function cmplz_run_script(t,c,n,e,o){var a=document.createElement("script");if("inline"!==e?a.src=t:("string"!=typeof t&&(t=t.innerHTML),a.innerHTML=[t,"cmplzScriptLoaded();"].join("\n")),!cmplz_in_array(t,cmplz_fired_scripts)){cmplzCopyAttributes(o,a);try{"inline"!==e?a.onload=function(){cmplz_run_after_all_scripts(c,n),cmplz_maybe_run_waiting_scripts(t,c,n,o)}:window.cmplzScriptLoaded=function(){cmplz_run_after_all_scripts(c,n),cmplz_maybe_run_waiting_scripts(t,c,n,o)},document.head.appendChild(a)}catch(e){throw cmplz_run_after_all_scripts(c,n),"Something went wrong "+e+" while loading "+t}}}function cmplz_maybe_run_waiting_scripts(e,t,c,n){var o=cmplz_get_waiting_script(cmplz_waiting_scripts,e),o=(o&&cmplz_run_script(o,t,c,"src",n),cmplz_get_waiting_script(cmplz_waiting_inline_scripts,e));o&&cmplz_run_script(o,t,c,"inline",n)}const cmplzLazyLoader=()=>{var e=document.querySelectorAll(".cmplz-blocked-content-container");const t=new IntersectionObserver((e,n)=>{e.forEach(e=>{var t,c;e.isIntersecting&&((t=(e=e.target).getAttribute("data-placeholder-image"))&&(c=e.getAttribute("data-placeholder_class_index"),cmplz_append_css(".cmplz-placeholder-"+c+" {background-image: url("+t+") !important;}"),cmplz_set_blocked_content_container_aspect_ratio(e,t,c)),n.unobserve(e))})});e.forEach(e=>{t.observe(e)})};function cmplz_set_blocked_content_container(){document.querySelectorAll(".cmplz-image").forEach(e=>{var t,c,n,o;e.classList.contains("cmplz-processed")||(e.classList.add("cmplz-processed"),t=e.getAttribute("data-service"),c=e.getAttribute("data-category"),(n=e.parentElement).classList.add("cmplz-blocked-content-container"),o=n.getAttribute("data-placeholder_class_index"),"lazy"===e.getAttribute("loading")&&(e.removeAttribute("loading"),e.setAttribute("data-deferlazy",1)),null==o&&(cmplz_placeholder_class_index++,n.classList.add("cmplz-placeholder-"+cmplz_placeholder_class_index,"cmplz-blocked-content-container"),n.setAttribute("data-placeholder_class_index",cmplz_placeholder_class_index),cmplz_insert_placeholder_text(n,c,t)))}),document.querySelectorAll(".cmplz-placeholder-element").forEach(t=>{if(!t.classList.contains("cmplz-processed")){t.classList.add("cmplz-processed");var c=t.getAttribute("data-service"),n=t.getAttribute("data-category");let e;null===(e=t.classList.contains("cmplz-iframe")?("lazy"===t.getAttribute("loading")&&(t.removeAttribute("loading"),t.setAttribute("data-deferlazy",1)),t.parentElement):t).getAttribute("data-placeholder_class_index")&&(cmplz_placeholder_class_index++,e.classList.add("cmplz-placeholder-"+cmplz_placeholder_class_index,"cmplz-blocked-content-container"),e.setAttribute("data-placeholder_class_index",cmplz_placeholder_class_index),cmplz_insert_placeholder_text(e,n,c),n=t.getAttribute("data-placeholder-image"))&&void 0!==n&&n.length&&e.setAttribute("data-placeholder-image",n)}}),cmplzLazyLoader(),cmplz_has_consent("statistics")&&cmplz_enable_category("statistics"),cmplz_has_consent("marketing")&&cmplz_enable_category("marketing")}function cmplz_insert_placeholder_text(e,n,o){if(!e.querySelector(".cmplz-blocked-content-notice")){let t=complianz.placeholdertext;n=n||"marketing";let c;if(void 0!==t){if(1==complianz.clean_cookies){let e=o?o.replace("-"," "):"";e=e.charAt(0).toUpperCase()+e.slice(1),t=t.replace("{service}
1284",e),(c=cmplz_create_element("div",t)).innerHTML=t,c.classList.add("cmplz-blocked-content-notice");var a=c.querySelector("button"),a=(a.setAttribute("data-service",o),a.setAttribute("data-category",n),a.setAttribute("aria-label",complianz.aria_label.replace("{service}",e)),complianz.page_links[complianz.region]),i=c.querySelector(".cmplz-links a");a&&a.hasOwnProperty("cookie-statement")&&(i.setAttribute("href",a["cookie-statement"].url),"{title}"===i.innerText)&&(i.innerText=a["cookie-statement"].title)}else{i=cmplz_create_element("button",""),a=complianz.categories.hasOwnProperty(n)?complianz.categories[n]:"marketing";i.innerText=t.replace("{category}",a),i.classList.add("cmplz-blocked-content-notice","cmplz-accept-category","cmplz-accept-"+n),i.setAttribute("data-service",o),i.setAttribute("data-category",n),i.setAttribute("aria-label",complianz.aria_label.replace("{category}",n)),c=i}("VIDEO"!==e.tagName?e:e.parentElement).appendChild(c)}}}function cmplz_set_blocked_content_container_aspect_ratio(t,c,n){var e;null!=t&&((e=new Image).addEventListener("load",function(){var e=this.naturalWidth||1,e=this.naturalHeight*(t.clientWidth/e),e=-1===c.indexOf("placeholder.jpg")?"height:"+e+"px;":"";cmplz_append_css(".cmplz-placeholder-"+n+" {"+e+"}")}),e.src=c)}function cmplz_has_blocked_scripts(){return 0<document.querySelectorAll("script[data-category], script[data-service]").length}function cmplz_enable_category(o,a){1==complianz.tm_categories&&""!==o&&cmplz_run_tm_event(o);var t={},t=(t.category=o,t.categories=cmplz_accepted_categories(),t.region=complianz.region,new CustomEvent("cmplz_before_category",{detail:t}));if(document.dispatchEvent(t),a=void 0!==a?a:"do_not_match","functional"!==(o=""===o?"do_not_match":o)){"marketing"===o&&cmplz_set_integrations_cookies();let e;e="do_not_match"!==a?'.cmplz-blocked-content-notice [data-service="'+a+'"]':1!=complianz.clean_cookies?".cmplz-blocked-content-notice.cmplz-accept-"+o:'.cmplz-blocked-content-notice [data-category="'+o+'"]',document.querySelectorAll(e).forEach(e=>{var t=e.getAttribute("data-service");e.parentNode.classList.contains("cmplz-blocked-content-notice")&&(e=e.parentNode),cmplz_is_service_denied(t)||e.parentNode.removeChild(e)}),document.querySelectorAll('[data-category="'+o+'"], [data-service="'+a+'"]').forEach(t=>{var e=t.getAttribute("data-service");if(!cmplz_is_service_denied(e)&&"functional"!==t.getAttribute("data-category")&&!t.classList.contains("cmplz-activated")){var e=t.tagName;if("LINK"===e){t.classList.add("cmplz-activated");var c=t.getAttribute("data-href");cmplz_load_css(c,o)}else if("IMG"===e){t.classList.add("cmplz-activated");c=t.getAttribute("data-src-cmplz");t.setAttribute("src",c),t.getAttribute("data-deferlazy")&&t.setAttribute("loading","lazy"),cmplz_remove_placeholder(t)}else if("IFRAME"===e){t.classList.add("cmplz-activated");let e=t.getAttribute("data-src-cmplz");c=t.getAttribute("data-cmplz-target")?t.getAttribute("data-cmplz-target"):"src";"1"===cmplz_get_url_parameter(t.getAttribute(c),"autoplay")&&(e+="&autoplay=1"),t.getAttribute("data-deferlazy")&&t.setAttribute("loading","lazy"),t.addEventListener("load",()=>{cmplz_remove_placeholder(t)}),t.setAttribute(c,e)}else t.classList.contains("cmplz-placeholder-element")&&(t.classList.add("cmplz-activated"),e=t.getAttribute("data-placeholder_class_index"),t.classList.remove("cmplz-blocked-content-container","cmplz-placeholder-"+e))}});t=document.querySelectorAll('script[data-category="'+o+'"], script[data-service="'+a+'"]');t.forEach(e=>{var t=e.getAttribute("data-waitfor"),c=e.getAttribute("data-cmplz-src");t&&(c?cmplz_waiting_scripts[t]=c:0<e.innerText.length&&(cmplz_waiting_inline_scripts[t]=e)),e.parentElement&&e.parentElement.removeChild(e)}),t.forEach(e=>{var t,c,n=e.getAttribute("type");!e.classList.contains("cmplz-activated")&&n&&"text/javascript"!==n&&(e.classList.add("cmplz-activated"),(n=e.getAttribute("data-cmplz-src"))?(e.removeAttribute("type"),cmplz_is_waiting_script(cmplz_waiting_scripts,n)||(e.getAttribute("data-post_scribe_id")?(t="#"+e.getAttribute("data-post_scribe_id"),(c=document.querySelector(t))&&(c.innerHtml(""),postscribe(t,"<script src="+n+"><\/script>"))):cmplz_run_script(n,o,a,"src",e))):0<e.innerText.length&&(cmplz_is_
1284waiting_script(cmplz_waiting_inline_scripts,e.innerText)||cmplz_run_script(e.innerText,o,a,"inline",e)))}),cmplz_run_after_all_scripts(o,a)}}function cmplz_remove_placeholder(e){var t,c=e.closest(".cmplz-blocked-content-container");c&&(t=c.getAttribute("data-placeholder_class_index"),c.classList.remove("cmplz-blocked-content-container","cmplz-placeholder-"+t)),e.classList.remove("cmplz-iframe-styles","cmplz-iframe","video-wrap")}function cmplz_get_waiting_script(e,t){for(var c in e){var n;if(e.hasOwnProperty(c))if(-1!==t.indexOf(c))return n=e[c],delete e[c],n}return!1}function cmplz_array_is_empty(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function cmplz_is_waiting_script(t,c){for(var n in t)if(t.hasOwnProperty(n)){let e=t[n];if("string"!=typeof e&&(e=e.innerText),-1!==c.indexOf(e)||-1!==e.indexOf(c))return!0}return!1}function cmplz_run_after_all_scripts(e,t){var c="do_not_match"!==t&&!cmplz_in_array(t,cmplz_fired_service_events),n="do_not_match"!==e&&!cmplz_in_array(e,cmplz_fired_category_events);(n||c)&&(n&&cmplz_fired_category_events.push(e),c&&cmplz_fired_service_events.push(t),(n={}).category=e,n.service=t,n.categories=cmplz_accepted_categories(),n.services=cmplz_get_all_service_consents(),n.region=complianz.region,c=new CustomEvent("cmplz_enable_category",{detail:n}),document.dispatchEvent(c)),!cmplz_all_scripts_hook_fired&&cmplz_array_is_empty(cmplz_waiting_inline_scripts)&&cmplz_array_is_empty(cmplz_waiting_scripts)&&(n=new CustomEvent("cmplz_run_after_all_scripts",{detail:e,service:t}),document.dispatchEvent(n),cmplz_all_scripts_hook_fired=!0)}window.addEventListener("resize",function(e){clearTimeout(cmplzResizeTimer),cmplzResizeTimer=setTimeout(cmplz_set_blocked_content_container,500)},!0),1==complianz.block_ajax_content&&setInterval(function(){cmplz_set_blocked_content_container()},2e3);var cmplz_fired_events=[];function cmplz_run_tm_event(e){-1===cmplz_fired_events.indexOf(e)&&(cmplz_fired_events.push(e),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"cmplz_event_"+e}),e=new CustomEvent("cmplz_tag_manager_event",{detail:e}),document.dispatchEvent(e))}function cmplz_fire_before_categories_consent(e){var t={},e=(t.categories=e,t.region=complianz.region,new CustomEvent("cmplz_before_categories_consent",{detail:t}));document.dispatchEvent(e)}function cmplz_check_cookie_policy_id(){var e=cmplz_get_cookie("policy_id");e&&parseInt(complianz.current_policy_id)!==parseInt(e)&&(cmplz_deny_all(),cmplz_set_banner_status("show"),cmplz_clear_cookies("cmplz"))}function cmplz_do_not_track(){var e="doNotTrack"in navigator&&"1"===navigator.doNotTrack,t="globalPrivacyControl"in navigator&&navigator.globalPrivacyControl;return!(!complianz.do_not_track_enabled||!t&&!e)}function cmplz_get_services_on_page(){let c=[];return document.querySelectorAll("[data-service]").forEach(e=>{var t=e.getAttribute("data-service"),e=e.getAttribute("data-category");-1==c.indexOf(t)&&c.push({category:e,service:t})}),c}function cmplz_is_bot(){var e=new RegExp("(googlebot/|Googlebot-Mobile|Google-InspectionTool|Googlebot-Image|Google favicon|Mediapartners-Google|bingbot|slurp|java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|AddThis)","i"),t=navigator.userAgent;return e.test(t)}function cmplz_is_speedbot(){var e=navigator.userAgent;return new RegExp("(GTmetrix|pingdom|pingbot|Lighthouse)","i").test(e)}function cmplz_exists_service_consent(){var e,t=cmplz_get_cookie("consented_services");try{for(const c in e=JSON.parse(t))if(e.hasOwnProperty(c)&&1==e[c])return!0}catch(e){}return!1}function cmplz_set_service_consent(e,t){var c=cmplz_get_cookie("consented_services");let n;try{n=JSON.parse(c)}catch(e){n={}}n[e]=t,cmplz_set_cookie("consented_services",JSON.stringify(n));c={}
1284,c.service=e,c.value=t,c.region=complianz.region,cmplz_all_scripts_hook_fired=!1,e=new CustomEvent("cmplz_status_change_service",{detail:c});document.dispatchEvent(e)}function cmplz_clear_all_service_consents(){cmplz_set_cookie("consented_services","")}function cmplz_get_all_service_consents(){var e=cmplz_get_cookie("consented_services");let t;try{t=JSON.parse(e)}catch(e){t={}}return t}function cmplz_get_cookie_path(){return void 0!==complianz.cookie_path&&""!==complianz.cookie_path?complianz.cookie_path:"/"}function cmplz_get_cookie_domain(){return 1==complianz.set_cookies_on_root&&3<complianz.cookie_domain.length&&!complianz.cookie_domain.includes("localhost")?complianz.cookie_domain:""}function cmplz_reload_browser_compatible(){var e;-1<navigator.userAgent.toLowerCase().indexOf("firefox")?((e=new URL(window.location.href)).searchParams.set("cmplz-force-reload",Date.now().toString()),window.location.href=e.toString()):window.location.reload()}window.cmplz_accept_all=function(){for(var e in cmplz_clear_all_service_consents(),cmplz_fire_before_categories_consent(cmplz_categories),cmplz_categories)cmplz_categories.hasOwnProperty(e)&&cmplz_set_consent(cmplz_categories[e],"allow");cmplz_sync_category_checkboxes()},window.cmplz_deny_all=function(){for(var e in cmplz_categories)cmplz_categories.hasOwnProperty(e)&&cmplz_set_consent(cmplz_categories[e],"deny");let t=!1;"functional"===cmplz_highest_accepted_category()&&!cmplz_exists_service_consent()||(t=!0),cmplz_clear_cookies("cmplz_service")&&(t=!0),cmplz_clear_all_service_consents(),cmplz_integrations_revoke(),cmplz_fire_categories_event(),cmplz_track_status();var c=new CustomEvent("cmplz_revoke",{detail:t});document.dispatchEvent(c),!complianz.tcf_active&&t&&cmplz_reload_browser_compatible()},window.conditionally_show_banner=function(){complianz=cmplz_merge_object(complianz,cmplz_user_data),cmplz_maybe_auto_redirect(),cmplz_set_blocked_content_container(),window.wp_consent_type=complianz.consenttype;var e,t,c,n=new CustomEvent("wp_consent_type_defined"),o=(document.dispatchEvent(n),n=new CustomEvent("cmplz_before_cookiebanner"),document.dispatchEvent(n),1==complianz.forceEnableStats&&"optin"===complianz.consenttype&&cmplz_set_consent("statistics","allow"),cmplz_categories.reverse()),a=[];for(e in o)o.hasOwnProperty(e)&&(t=cmplz_categories[e],cmplz_has_consent(t))&&a.push(t);for(c in cmplz_fire_before_categories_consent(a),a)o.hasOwnProperty(c)&&cmplz_enable_category(a[c]);if(cmplz_exists_service_consent()){cmplz_enable_category("","general");var i,l,r,s=cmplz_get_services_on_page();for(i in s)s.hasOwnProperty(i)&&(l=s[i].service,r=s[i].category,cmplz_has_service_consent(l,r))&&(document.querySelectorAll('.cmplz-accept-service[data-service="'+l+'"]').forEach(e=>{e.checked=!0}),cmplz_enable_category("",l))}cmplz_sync_category_checkboxes(),cmplz_integrations_init(),cmplz_check_cookie_policy_id(),cmplz_set_up_auto_dismiss(),cmplz_load_manage_consent_container(),n=new CustomEvent("cmplz_cookie_banner_data",{detail:complianz}),document.dispatchEvent(n),""===cmplz_get_cookie("saved_categories")&&("optin"!==complianz.consenttype&&"optout"!==complianz.consenttype?cmplz_track_status("no_warning"):cmplz_do_not_track()&&cmplz_track_status("do_not_track")),cmplz_set_category_as_body_class(),cmplz_fire_categories_event(),cmplz_do_not_track()?(console.log("global privacy control or do not track detected: no banner."),cmplz_track_status("do_not_track")):("optin"===complianz.consenttype?(complianz.forceEnableStats&&cmplz_enable_category("statistics"),console.log("opt-in"),show_cookie_banner):"optout"===complianz.consenttype?(console.log("opt-out"),show_cookie_banner):(console.log("other consent type, no cookie warning"),cmplz_accept_all))()},window.show_cookie_banner=function(){let e=complianz.disable_cookiebanner||cmplz_is_speedbot(),t=!1;(document.querySelector("#cmplz-manage-consent-container")||document.querySelector(".cmplz-dropdown-cookiepolicy"))&&(t=!0);var c=document.getElementById("cmplz-cookiebanner-container"),c=(c&&document.body.prepend(c),document.createElement("link"));let n=complianz.page_links[complianz.region];(cmplz_banner=document.querySelector(".cmplz-cookiebanner.banner-"+complianz.user_banner_id+"."+complianz.consenttype))||(e=!0),cmplz_manage_consent_button=document.querySelector("#cmplz-manage-consent .cmplz-manage-consent.manage-consent-"+complianz.user_banner_id);
1284var o=complianz.css_file.replace("{type}",complianz.consenttype).replace("{banner_id}",complianz.user_banner_id),o=(-1!==complianz.css_file.indexOf("cookiebanner/css/defaults/banner")&&console.log("Fallback default css file used. Please re-save banner settings, or check file writing permissions in uploads directory"),c.href=o,c.type="text/css",c.rel="stylesheet",c.onload=function(){e||(cmplz_banner.classList.remove("cmplz-hidden"),cmplz_manage_consent_button.classList.remove("cmplz-hidden"))},document.getElementsByTagName("head")[0].appendChild(c),cmplz_banner&&!e&&(cmplz_banner.querySelectorAll(".cmplz-links a:not(.cmplz-external), .cmplz-buttons a:not(.cmplz-external)").forEach(e=>{var t,c=e;for(t in c.classList.add("cmplz-hidden"),n)n.hasOwnProperty(t)&&c.classList.contains(t)&&(c.setAttribute("href",n[t].url+c.getAttribute("data-relative_url")),"{title}"===c.innerText&&(c.innerText=cmplz_html_decode(n[t].title)),c.classList.remove("cmplz-hidden"))}),cmplz_set_banner_status(),t)&&(cmplz_banner.classList.remove("cmplz-show"),cmplz_banner.classList.add("cmplz-dismissed"),cmplz_manage_consent_button.classList.remove("cmplz-dismissed"),cmplz_manage_consent_button.classList.add("cmplz-show")),new CustomEvent("cmplz_cookie_warning_loaded",{detail:complianz.region}));document.dispatchEvent(o)},window.cmplz_get_banner_status=function(){return cmplz_get_cookie("banner-status")},window.cmplz_set_banner_status=function(e){let t=cmplz_get_cookie("banner-status");(e=void 0!==e?e:t)!==t&&cmplz_set_cookie("banner-status",e),0===e.length&&(e="show"),t="show"===e?"dismissed":"show",cmplz_banner&&0<e.length&&(cmplz_banner.classList.remove("cmplz-"+t),cmplz_banner.classList.add("cmplz-"+e),cmplz_manage_consent_button)&&(cmplz_manage_consent_button.classList.add("cmplz-"+t),cmplz_manage_consent_button.classList.remove("cmplz-"+e)),cmplz_banner_container&&complianz.soft_cookiewall&&(cmplz_banner_container.classList.remove("cmplz-"+t),cmplz_banner_container.classList.add("cmplz-"+e,"cmplz-soft-cookiewall"));e=new CustomEvent("cmplz_banner_status",{detail:e});document.dispatchEvent(e),cmplz_start_clean()},window.cmplz_has_consent=function(e){if(cmplz_is_bot())return!0;if("functional"===e)return!0;let t,c;return t=cmplz_do_not_track()?(c=cmplz_get_cookie(e),"allow"===c):(c=cmplz_get_cookie(e),("optout"===complianz.consenttype||"other"===complianz.consenttype)&&""===c||"allow"===c)},window.cmplz_is_service_denied=function(e){var t=cmplz_get_cookie("consented_services");let c;try{c=JSON.parse(t)}catch(e){c={}}return!!c.hasOwnProperty(e)&&!c[e]},window.cmplz_has_service_consent=function(e,t){var c=cmplz_get_cookie("consented_services");let n;try{n=JSON.parse(c)}catch(e){n={}}return n.hasOwnProperty(e)?n[e]:cmplz_has_consent(t)},window.cmplz_set_consent=function(e,t){cmplz_set_accepted_cookie_policy_id(),t="functional"===e?"allow":t;var c,n=cmplz_get_cookie(e);let o="allow"===t;document.querySelectorAll("input.cmplz-"+e).forEach(e=>{e.checked=o}),n!==t&&(cmplz_set_cookie(e,t),"allow"===t&&cmplz_enable_category(e),cmplz_wp_set_consent(e,t),"statistics"===e&&cmplz_wp_set_consent("statistics-anonymous","allow"),(c=new Object).category=e,c.value=t,c.region=complianz.region,c.categories=cmplz_accepted_categories(),cmplz_all_scripts_hook_fired=!1,c=new CustomEvent("cmplz_status_change",{detail:c}),document.dispatchEvent(c),"marketing"===e)&&"deny"===t&&"allow"===n&&(cmplz_integrations_revoke(),setTimeout(function(){cmplz_reload_browser_compatible()},500))};var cmplz_id_cookie,cmplz_id_session,cmplz_id,cmplz_user_data=[];if("undefined"!=typeof Storage&&sessionStorage.cmplz_user_data&&(cmplz_user_data=JSON.parse(sessionStorage.cmplz_user_data)),1!=complianz.geoip||0!=cmplz_user_data.length&&cmplz_user_data.version===complianz.version&&cmplz_user_data.banner_version===complianz.banner_version)conditionally_show_banner();else{let e=new XMLHttpRequest,t=cmplz_get_url_parameter(window.location.href,"cmplz_user_region");t=t?"&cmplz_user_region="+t:"",e.open("GET",complianz.url+"banner?"+complianz.locale+t,!0),e.setRequestHeader("Content-type","application/json"),e.send(),e.onload=function(){cmplz_user_data=JSON.parse(e.response),sessionStorage.cmplz_user_data=JSON.stringify(cmplz_user_data),conditionally_show_banner()}}function cmplz_track_status_end(){cmplz_consent_stored_once||cmplz_track_status()}
1284function cmplz_set_up_auto_dismiss(){if("optout"===complianz.consenttype){if(1==complianz.dismiss_on_scroll){let t=function(e){window.pageYOffset>Math.floor(400)&&(cmplz_set_banner_status("dismissed"),cmplz_fire_categories_event(),cmplz_track_status(),window.removeEventListener("scroll",t),this.onWindowScroll=null)};window.addEventListener("scroll",t)}var e=parseInt(complianz.dismiss_timeout);0<e&&window.setTimeout(function(){cmplz_set_banner_status("dismissed"),cmplz_fire_categories_event(),cmplz_track_status()},Math.floor(e))}}function cmplz_fire_categories_event(){var e=new Object,e=(e.category=cmplz_highest_accepted_category(),e.categories=cmplz_accepted_categories(),e.region=complianz.region,new CustomEvent("cmplz_fire_categories",{detail:e}));document.dispatchEvent(e)}function cmplz_track_status(e){let t=[];e=void 0!==e&&e;var c=new CustomEvent("cmplz_track_status",{detail:e});document.dispatchEvent(c),t=e?[e]:cmplz_accepted_categories(),cmplz_set_category_as_body_class();let n,o;try{n=JSON.parse(cmplz_get_cookie("saved_categories"))}catch(e){n={}}try{o=JSON.parse(cmplz_get_cookie("saved_services"))}catch(e){o={}}var c=cmplz_get_all_service_consents();cmplz_equals(n,t)&&cmplz_equals(o,c)||1!=complianz.store_consent||cmplz_is_bot()||cmplz_is_speedbot()||(cmplz_set_cookie("saved_categories",JSON.stringify(t)),cmplz_set_cookie("saved_services",JSON.stringify(c)),cmplz_consent_stored_once=!0,(e=new XMLHttpRequest).open("POST",complianz.url+"track",!0),c={consented_categories:t,consented_services:c,consenttype:window.wp_consent_type},e.setRequestHeader("Content-type","application/json"),e.send(JSON.stringify(c)))}function cmplz_accepted_categories(){let e=cmplz_categories,n=[];for(var t in e)e.hasOwnProperty(t)&&(t=e[t],cmplz_has_consent(t))&&n.push(t);return e=e.filter(function(e,t,c){return cmplz_in_array(e,n)})}function cmplz_sync_category_checkboxes(){for(var e in cmplz_categories)cmplz_categories.hasOwnProperty(e)&&(e=cmplz_categories[e],cmplz_has_consent(e)||"functional"===e?document.querySelectorAll("input.cmplz-"+e).forEach(e=>{e.checked=!0}):document.querySelectorAll("input.cmplz-"+e).forEach(e=>{e.checked=!1})),document.querySelectorAll(".cmplz-accept-service").forEach(e=>{var t=e.getAttribute("data-service"),c=e.getAttribute("data-category");cmplz_has_service_consent(t,c)?e.checked=!0:cmplz_is_service_denied(t)?e.checked=!1:(c=e.getAttribute("data-category"),e.checked=!!cmplz_has_consent(c))})}function cmplz_merge_object(e,t){var c,n,o={};for(c in t)t.hasOwnProperty(c)&&(o[c]=t[c]);for(n in e)t.hasOwnProperty(n)&&void 0!==t[n]||e.hasOwnProperty(n)&&(o[n]=e[n]);return o}function cmplz_clear_cookies(t){if("undefined"==typeof document)return!1;let a=!1,i="https:"===window.location.protocol?";secure":"",l="expires="+(new Date).toGMTString(),r=location.pathname.replace(/^\/|\/$/g,"").split("/");return document.cookie.split("; ").forEach(function(e){let n=e.split(";")[0].split("=")[0];if(-1!==n.indexOf(t)){a=!0;let c=window.location.hostname.split(".");var o=1<c.length;for(r.forEach(function(e){e="/"+e;document.cookie=encodeURIComponent(n)+"=;SameSite=Lax"+i+";"+l+";domain=."+c.join(".")+";path="+e,document.cookie=encodeURIComponent(n)+"=;SameSite=Lax"+i+";"+l+";domain=."+c.join(".")+";path="+e+"/"});0<c.length;){let t="."+c.join(".");c.shift(),o&&1===c.length&&c.shift(),r.forEach(function(e){e="/"+e;document.cookie=encodeURIComponent(n)+"=;SameSite=Lax"+i+";"+l+";domain="+t+";path="+e,document.cookie=encodeURIComponent(n)+"=;SameSite=Lax"+i+";"+l+";domain="+t+";path="+e+"/"})}}}),cmplz_set_accepted_cookie_policy_id(),a}function cmplz_set_accepted_cookie_policy_id(){cmplz_set_cookie("policy_id",complianz.current_policy_id)}function cmplz_integrations_init(){var e,t=complianz.set_cookies;for(e in t)t.hasOwnProperty(e)&&"1"===t[e][1]&&cmplz_set_cookie(e,t[e][1],!1)}function cmplz_integrations_revoke(){var e,t=complianz.set_cookies;for(e in t)t.hasOwnProperty(e)&&(cmplz_set_cookie(e,t[e][1],!1),0==t[e][1])&&cmplz_clear_cookies(e)}function cmplz_set_integrations_cookies(){var e,t=complianz.set_cookies;for(e in t)t.hasOwnProperty(e)&&cmplz_set_cookie(e,t[e][0],!1)}function cmplz_get_url_parameter(e,t){if(e&&void 0!==e&&-1!==e.indexOf("?")){e=e.split("?")[1];if(e){var c=e.split("&");for(let e=0;e<c.length;e++){var n=c[e].split("=");if(n[0]===t)return void 0===n[1]||decodeURIComponent(n[1])}}}return!1}function cmplz_maybe_auto_redirect(){var e=cmplz_get_url_parameter(window.location.href,"cmplz_region_redirect"),t=cmplz_get_url_parameter(window.location.href,"cmplz-region");e&&!t&&(e=window.location.href.split("#")[0]+"&cmplz-region="+complianz.region,t=window.location.hash,window.location.href=e+t)}function cmplz_wp_set_consent(e,t){"function"==typeof wp_set_consent&&wp_set_consent(e,t)}1==complianz.store_consent&&(cmplz_id_cookie=cmplz_get_cookie("id"),cmplz_id=cmplz_id_session="","undefined"!=typeof Storage&&sessionStorage.cmplz_id&&(cmplz_id_session=JSON.parse(sessionStorage.cmplz_id)),0==cmplz_id_cookie.length&&0<cmplz_id_session.length&&(cmplz_id=cmplz_id_session,cmplz_set_cookie("id",cmplz_id)),0<cmplz_id_cookie.length&&0==cmplz_id_session.length&&(cmplz_id=cmplz_id_cookie),"undefined"!=typeof Storage)&&(sessionStorage.cmplz_id=JSON.stringify(cmplz_id)),document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&cmplz_track_status_end()}),window.addEventListener("pagehide",cmplz_track_status_end,!1),window.addEventListener("beforeunload",cmplz_track_status_end,!1),document.addEventListener("cmplz_consent_action",function(e){cmplz_set_consent(e.detail.category,"allow"),cmplz_fire_categories_event(),cmplz_track_status()}),cmplz_add_event("click",".cmplz-accept",function(e){e.preventDefault(),setTimeout(()=>{cmplz_accept_all(),cmplz_set_banner_status("dismissed"),cmplz_fire_categories_event(),cmplz_track_status()},0)}),cmplz_add_event("click",".cmplz-accept-category, .cmplz-accept-marketing",function(e){e.preventDefault();var e=e.target,t=e.getAttribute("data-service"),e=e.getAttribute("data-category")||"marketing";
12841==complianz.clean_cookies&&void 0!==t&&t?(cmplz_set_service_consent(t,!0),cmplz_enable_category("","general"),cmplz_enable_category("",t)):cmplz_set_consent(e,"allow"),cmplz_set_banner_status("dismissed"),cmplz_fire_categories_event(),cmplz_track_status()}),cmplz_add_event("click",".cmplz-accept-service",function(e){var e=e.target;"INPUT"!==e.tagName&&(void 0!==(e=e.getAttribute("data-service"))&&(cmplz_set_service_consent(e,!0),cmplz_enable_category("","general"),cmplz_enable_category("",e)),cmplz_fire_categories_event(),cmplz_track_status())}),cmplz_add_event("change",".cmplz-accept-service",function(e){var t=e.target,c=t.tagName,n=t.getAttribute("data-service");void 0!==n&&("INPUT"===c?(cmplz_set_banner_status("dismissed"),t.checked?(cmplz_set_service_consent(n,!0),cmplz_enable_category("",n)):(cmplz_set_service_consent(n,!1),setTimeout(function(){cmplz_reload_browser_compatible()},500))):(e.preventDefault(),cmplz_set_service_consent(n,!0),cmplz_enable_category("","general"),cmplz_enable_category("",n),setTimeout(function(){cmplz_reload_browser_compatible()},500))),cmplz_fire_categories_event(),cmplz_track_status()}),cmplz_add_event("click",".cmplz-save-preferences",function(e){var t,c,n,o,a,e=e.target,i=(cmplz_banner=e.closest(".cmplz-cookiebanner"),[]);for(t in cmplz_categories)cmplz_categories.hasOwnProperty(t)&&(c=cmplz_categories[t],n=cmplz_banner.querySelector("input.cmplz-"+c))&&n.checked&&i.push(c);for(o in cmplz_fire_before_categories_consent(i),cmplz_categories)cmplz_categories.hasOwnProperty(o)&&(a=cmplz_categories[o],i.includes(a)?cmplz_set_consent(a,"allow"):cmplz_set_consent(a,"deny"));cmplz_set_banner_status("dismissed"),cmplz_fire_categories_event(),cmplz_track_status()}),cmplz_add_event("click",".cmplz-close",function(e){cmplz_set_banner_status("dismissed")}),cmplz_add_event("click",".cmplz-view-preferences",function(e){e=e.target;(cmplz_banner=e.closest(".cmplz-cookiebanner")).querySelector(".cmplz-categories").classList.contains("cmplz-fade-in")?(cmplz_banner.classList.remove("cmplz-categories-visible"),cmplz_banner.querySelector(".cmplz-categories").classList.remove("cmplz-fade-in"),cmplz_banner.querySelector(".cmplz-view-preferences").style.display="block",cmplz_banner.querySelector(".cmplz-save-preferences").style.display="none"):(cmplz_banner.classList.add("cmplz-categories-visible"),cmplz_banner.querySelector(".cmplz-categories").classList.add("cmplz-fade-in"),cmplz_banner.querySelector(".cmplz-view-preferences").style.display="none",cmplz_banner.querySelector(".cmplz-save-preferences").style.display="block")}),cmplz_add_event("change",".cmplz-manage-consent-container .cmplz-category",function(e){for(var t in cmplz_categories){var c;cmplz_categories.hasOwnProperty(t)&&(t=cmplz_categories[t],c=document.querySelector(".cmplz-manage-consent-container input.cmplz-"+t))&&(c.checked?cmplz_set_consent(t,"allow"):cmplz_set_consent(t,"deny"),cmplz_set_banner_status("dismissed"),cmplz_fire_categories_event(),cmplz_track_status())}}),cmplz_add_event("click",".cmplz-deny",function(e){e.preventDefault(),cmplz_set_banner_status("dismissed"),cmplz_deny_all()}),cmplz_add_event("click","button.cmplz-manage-settings",function(e){e.preventDefault();var e=document.querySelector(".cmplz-cookiebanner .cmplz-categories"),t=document.querySelector(".cmplz-save-settings"),c=document.querySelector("button.cmplz-manage-settings");cmplz_is_hidden(e)?(t.style.display="block",c.style.display="none",e.style.display="block"):(t.style.display="none",c.style.display="block",e.style.display="none")}),cmplz_add_event("click","button.cmplz-manage-consent",function(e){e.preventDefault(),cmplz_set_banner_status("show")});var cmplzCleanCookieInterval,cmplz_cookie_data=[];function cmplz_start_clean(){if(1==complianz.clean_cookies)if((cmplz_cookie_data="undefined"!=typeof Storage?JSON.parse(sessionStorage.getItem("cmplz_cookie_data")):cmplz_cookie_data)&&0!==cmplz_cookie_data.length)cmplz_setup_clean_interval();else{let e=new XMLHttpRequest;e.open("GET",complianz.url+"cookie_data",!0),e.setRequestHeader("Content-type","application/json"),e.send(),e.onload=function(){cmplz_cookie_data=JSON.parse(e.response),sessionStorage.setItem("cmplz_cookie_data",JSON.stringify(cmplz_cookie_data)),cmplz_setup_clean_interval()}}}function cmplz_do_cleanup(){for(const t of["preferences","statistics","marketing"])if(!cmplz_has_consent(t)&&cmplz_cookie_data.hasOwnProperty(t)){var e=cmplz_cookie_data[t];for(const c in e)if(!cmplz_has_service_consent(c,t))for(const n of e[c])cmplz_clear_cookies(n),cmplz_clear_storage(n)}}function cmplz_setup_clean_interval(){!cmplz_cookie_data||cmplzCleanCookieInterval||(cmplz_do_cleanup(),cmplzCleanCookieInterval=setInterval(cmplz_do_cleanup,1e3))}function cmplz_clear_storage(e){"undefined"!=typeof Storage&&(localStorage.getItem(e)&&localStorage.removeItem(e),sessionStorage.getItem(e))&&sessionStorage.removeItem(e)}function cmplz_load_manage_consent_container(){let c=document.querySelector(".cmplz-manage-consent-container");if(c){let t=new XMLHttpRequest;t.open("GET",complianz.url+"manage_consent_html?"+complianz.locale,!0),t.setRequestHeader("Content-type","application/json"),t.send(),t.onload=function(){var e=JSON.parse(t.response);c.insertAdjacentHTML("beforeend",e),cmplz_sync_category_checkboxes();document.querySelector("#cmplz-manage-consent-container-nojavascript").style.display="none",c.style.display="block";e=new CustomEvent("cmplz_manage_consent_container_loaded");document.dispatchEvent(e)}}}
1284function cmplz_equals(c,n){if(Array.isArray(c)||(c=Object.keys(c),n=Object.keys(n)),!c||!n)return!1;if(c.length!==n.length)return!1;for(let e=0,t=c.length;e<t;e++)if(c[e]instanceof Array&&n[e]instanceof Array){if(!cmplz_equals(c[e],n[e]))return!1}else if(c[e]!==n[e])return!1;return!0}function cmplzCopyAttributes(e,t){const c=["type","data-service","data-category","async"];Array.from(e.attributes).forEach(e=>{"data-script-type"===e.nodeName&&"module"===e.nodeValue?(t.setAttribute("type","module"),t.removeAttribute("data-script-type")):c.includes(e.nodeName)||t.setAttribute(e.nodeName,e.nodeValue)})}cmplz_add_event("keypress",".cmplz-banner-slider label",function(e){32==(e.keyCode||e.which)&&document.activeElement.click()}),cmplz_add_event("keypress",".cmplz-cookiebanner .cmplz-header .cmplz-close",function(e){13==(e.keyCode||e.which)&&document.activeElement.click()});var cmplz_has_wp_video=document.querySelector(".cmplz-wp-video-shortcode"),cmplz_times_checked=0;void 0!==window.jQuery&&jQuery(document).ready(function(r){if(cmplz_has_wp_video){document.addEventListener("cmplz_enable_category",function(e){t()});let e=setInterval(function(){cmplz_times_checked+=1,document.querySelector(".cmplz-wp-video-shortcode")&&cmplz_times_checked<100?t():clearInterval(e)},500)}function t(){if(document.querySelector(".cmplz-wp-video-shortcode")){var e,t,n,o=cmplz_accepted_categories(),a=cmplz_get_all_service_consents(),i=[];for(e in o)if(o.hasOwnProperty(e)){var l=o[e];if("functional"===l)break;i.push('.cmplz-wp-video-shortcode[data-category="'+l+'"]')}for(t in a)a.hasOwnProperty(t)&&i.push('.cmplz-wp-video-shortcode[data-service="'+t+'"]');n=i.join(",");let c=!1;0<n.length&&document.querySelectorAll(n).forEach(e=>{c=!0,e.setAttribute("controls","controls"),e.classList.add("wp-video-shortcode","cmplz-processed"),e.classList.remove("cmplz-wp-video-shortcode"),e.closest(".cmplz-wp-video").classList.remove("cmplz-wp-video");var t=e.closest(".wp-video").querySelector(".cmplz-blocked-content-notice");t&&t.parentElement.removeChild(t),e.classList.remove("cmplz-blocked-content-container")}),c&&(window.wp.mediaelement?window.wp.mediaelement.initialize():(n={videoWidth:"100%",videoHeight:"100%",enableAutosize:!0},r(".wp-video-shortcode").mediaelementplayer(n)))}}function c(e){e=r(e);"function"==typeof e.parent().fitVids&&e.parent().fitVids()}document.querySelectorAll(".cmplz-video.cmplz-activated").forEach(e=>{c(e)}),document.addEventListener("cmplz_enable_category",function(e){document.querySelectorAll(".cmplz-video.cmplz-activated").forEach(e=>{c(e)})})})
1285;(function($){let loadMoreButtons=$('.nvm-team-members-list .load-more-cta .load-more');if(loadMoreButtons){loadMoreButtons.each((index)=>{let termSlug=loadMoreButtons[index].attributes["data-slug"].value;let blockId=loadMoreButtons[index].attributes["data-block-id"].value;let teamMembersList=$('.nvm-team-members-list[data-block-id="'+blockId+'"] .team-member-'+termSlug);let loader=$('.nvm-team-members-list[data-block-id="'+blockId+'"] .load-more-cta .loader')[0];let currentPage=1;let membersPerPage=4;$(loadMoreButtons[index]).on('click',()=>{showMoreMembers()});function showMoreMembers(){showLoader();currentPage++;let nextMembers=currentPage*membersPerPage;for(let i=0;i<nextMembers;i++){if(teamMembersList[i]){teamMembersList[i].classList.remove('hidden')}}
1286if(nextMembers>=teamMembersList.length){setTimeout(()=>{hideButton()},1000)}
1287setTimeout(()=>{hideLoader()},1000)}
1288function showLoader(){loader.classList.add('visible');console.log('show loader')}
1289function hideLoader(){loader.classList.remove('visible');console.log('hide loader')}
1290function hideButton(){$(loadMoreButtons[index]).addClass('disabled')}})}})(jQuery)
1291;

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.