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…]</p>'+'</section>'+'<section class="responsiville-debug-control responsiville-debug-performance">'+'<p>[timings, please wait…]</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"><row></p>').append('<p class="responsiville-class-info end"></row></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"><'+classString+'></p>').append('<p class="responsiville-class-info end"></'+classString+'></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>—>'+'</td><td>'+'0.00'+'</td><td>'+'—'+'</td>'+'</tr>'+'<tr title="Time to first byte - browser received the first byte of the response">'+'<td>TtFB</td><td>—>'+'</td><td>'+responseStart+'</td><td>'+responseStartDiff+'</td>'+'</tr>'+'<tr title="Synchronous scripts run, DOM & CSSOM ready, render tree formed">'+'<td>DOMContentLoaded</td><td>—>'+'</td><td>'+domContentLoaded+'</td><td>'+domContentLoadedDiff+'</td>'+'</tr>'+'<tr title="Page is fully loaded and rendered, images are loaded">'+'<td>Load</td><td>—>'+'</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)&<.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.