!function($){return $?($.Unslider=function(t,n){var e=this;return e._="unslider",e.defaults={autoplay:!1,delay:3e3,speed:750,easing:"swing",keys:{prev:37,next:39},nav:!0,arrows:{prev:'',next:''},animation:"horizontal",selectors:{container:"ul:first",slides:"li"},animateHeight:!1,activeClass:e._+"-active",swipe:!0,swipeThreshold:.2},e.$context=t,e.options={}, e.$parent=null,e.$container=null,e.$slides=null,e.$nav=null,e.$arrows=[],e.total=0,e.current=0,e.prefix=e._+"-",e.eventSuffix="."+e.prefix+~~(2e3*Math.random()),e.interval=null,e.init=function(t){return e.options=$.extend({},e.defaults,t),e.$container=e.$context.find(e.options.selectors.container).addClass(e.prefix+"wrap"),e.$slides=e.$container.children(e.options.selectors.slides),e.setup(),$.each(["nav","arrows","keys","infinite"],function(t,n){e.options[n]&&e["init"+$._ucfirst(n)]()}),jQuery.event.special.swipe&&e.options.swipe&&e.initSwipe(),e.options.autoplay&&e.start(),e.calculateSlides(),e.$context.trigger(e._+".ready"),e.animate(e.options.index||e.current,"init")},e.setup=function(){e.$context.addClass(e.prefix+e.options.animation).wrap('
'),e.$parent=e.$context.parent("."+e._);var t=e.$context.css("position");"static"===t&&e.$context.css("position","relative"),e.$context.css("overflow","hidden")},e.calculateSlides=function(){if(e.total=e.$slides.length,"fade"!==e.options.animation){var t="width";"vertical"===e.options.animation&&(t="height"),e.$container.css(t,100*e.total+"%").addClass(e.prefix+"carousel"),e.$slides.css(t,100/e.total+"%")}},e.start=function(){return e.interval=setTimeout(function(){e.next()},e.options.delay),e},e.stop=function(){return clearTimeout(e.interval),e},e.initNav=function(){var t=$('');e.$slides.each(function(n){var i=this.getAttribute("data-nav")||n+1;$.isFunction(e.options.nav)&&(i=e.options.nav.call(e.$slides.eq(n),n,i)),t.children("ol").append('
  • '+i+"
  • ")}),e.$nav=t.insertAfter(e.$context),e.$nav.find("li").on("click"+e.eventSuffix,function(){var t=$(this).addClass(e.options.activeClass);t.siblings().removeClass(e.options.activeClass),e.animate(t.attr("data-slide"))})},e.initArrows=function(){e.options.arrows===!0&&(e.options.arrows=e.defaults.arrows),$.each(e.options.arrows,function(t,n){e.$arrows.push($(n).insertAfter(e.$context).on("click"+e.eventSuffix,e[t]))})},e.initKeys=function(){e.options.keys===!0&&(e.options.keys=e.defaults.keys),$(document).on("keyup"+e.eventSuffix,function(t){$.each(e.options.keys,function(n,i){t.which===i&&$.isFunction(e[n])&&e[n].call(e)})})},e.initSwipe=function(){var t=e.$slides.width();"fade"!==e.options.animation&&e.$container.on({movestart:function(t){return t.distX>t.distY&&t.distX<-t.distY||t.distX-t.distY?!!t.preventDefault():void e.$container.css("position","relative")},move:function(n){e.$container.css("left",-(100*e.current)+100*n.distX/t+"%")},moveend:function(n){Math.abs(n.distX)/t>e.options.swipeThreshold?e[n.distX<0?"next":"prev"]():e.$container.animate({left:-(100*e.current)+"%"},e.options.speed/2)}})},e.initInfinite=function(){var t=["first","last"];$.each(t,function(n,i){e.$slides.push.apply(e.$slides,e.$slides.filter(':not(".'+e._+'-clone")')[i]().clone().addClass(e._+"-clone")["insert"+(0===n?"After":"Before")](e.$slides[t[~~!n]]()))})},e.destroyArrows=function(){$.each(e.$arrows,function(t,n){n.remove()})},e.destroySwipe=function(){e.$container.off("movestart move moveend")},e.destroyKeys=function(){$(document).off("keyup"+e.eventSuffix)},e.setIndex=function(t){return 0>t&&(t=e.total-1),e.current=Math.min(Math.max(0,t),e.total-1),e.options.nav&&e.$nav.find('[data-slide="'+e.current+'"]')._active(e.options.activeClass),e.$slides.eq(e.current)._active(e.options.activeClass),e},e.animate=function(t,n){if("first"===t&&(t=0),"last"===t&&(t=e.total),isNaN(t))return e;e.options.autoplay&&e.stop().start(),e.setIndex(t),e.$context.trigger(e._+".change",[t,e.$slides.eq(t)]);var i="animate"+$._ucfirst(e.options.animation);return $.isFunction(e[i])&&e[i](e.current,n),e},e.next=function(){var t=e.current+1;return t>=e.total&&(t=0),e.animate(t,"next")},e.prev=function(){return e.animate(e.current-1,"prev")},e.animateHorizontal=function(t){var n="left";return"rtl"===e.$context.attr("dir")&&(n="right"),e.options.infinite&&e.$container.css("margin-"+n,"-100%"),e.slide(n,t)},e.animateVertical=function(t){return e.options.animateHeight=!0,e.options.infinite&&e.$container.css("margin-top",-e.$slides.outerHeight()),e.slide("top",t)},e.slide=function(t,n){if(e.options.animateHeight&&e._move(e.$context,{height:e.$slides.eq(n).outerHeight()},!1),e.options.infinite){var i;n===e.total-1&&(i=e.total-3,n=-1),n===e.total-2&&(i=0,n=e.total-2),"number"==typeof i&&(e.setIndex(i),e.$context.on(e._+".moved",function(){e.current===i&&e.$container.css(t,-(100*i)+"%").off(e._+".moved")}))}var o={};return o[t]=-(100*n)+"%",e._move(e.$container,o)},e.animateFade=function(t){var n=e.$slides.eq(t).addClass(e.options.activeClass);e._move(n.siblings().removeClass(e.options.activeClass),{opacity:0}),e._move(n,{opacity:1},!1)},e._move=function(t,n,i,o){return i!==!1&&(i=function(){e.$context.trigger(e._+".moved")}),t._move(n,o||e.options.speed,e.options.easing,i)},e.init(n)},$.fn._active=function(t){return this.addClass(t).siblings().removeClass(t)},$._ucfirst=function(t){return(t+"").toLowerCase().replace(/^./,function(t){return t.toUpperCase()})},$.fn._move=function(){return this.stop(!0,!0),$.fn[$.fn.velocity?"velocity":"animate"].apply(this,arguments)},void($.fn.unslider=function(t){return this.each(function(){var n=$(this);if("string"==typeof t&&n.data("unslider")){t=t.split(":");var e=n.data("unslider")[t[0]];if($.isFunction(e))return e.apply(n,t[1]?t[1].split(","):null)}return n.data("unslider",new $.Unslider(n,t))})})):console.warn("Unslider needs jQuery")}(window.jQuery);; (function() { if ( ! window.Symbol ) { return; } // DOM.event.move // // 2.0.0 // // Stephen Band // // Triggers 'movestart', 'move' and 'moveend' events after // mousemoves following a mousedown cross a distance threshold, // similar to the native 'dragstart', 'drag' and 'dragend' events. // Move events are throttled to animation frames. Move event objects // have the properties: // // pageX: // pageY: Page coordinates of pointer. // startX: // startY: Page coordinates of pointer at movestart. // distX: // distY: Distance the pointer has moved since movestart. // deltaX: // deltaY: Distance the finger has moved since last event. // velocityX: // velocityY: Average velocity over last few events. (function(fn) { if (typeof define === 'function' && define.amd) { define([], fn); } else if ((typeof module !== "undefined" && module !== null) && module.exports) { module.exports = fn; } else { fn(); } })(function(){ var assign = Object.assign || window.jQuery && jQuery.extend; // Number of pixels a pressed pointer travels before movestart // event is fired. var threshold = 8; // Shim for requestAnimationFrame, falling back to timer. See: // see http://paulirish.com/2011/requestanimationframe-for-smart-animating/ var requestFrame = (function(){ return ( window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(fn, element){ return window.setTimeout(function(){ fn(); }, 25); } ); })(); var ignoreTags = { textarea: true, input: true, select: true, button: true }; var mouseevents = { move: 'mousemove', cancel: 'mouseup dragstart', end: 'mouseup' }; var touchevents = { move: 'touchmove', cancel: 'touchend', end: 'touchend' }; var rspaces = /\s+/; // DOM Events var eventOptions = { bubbles: true, cancelable: true }; var eventsSymbol = Symbol('events'); function createEvent(type) { return new CustomEvent(type, eventOptions); } function getEvents(node) { return node[eventsSymbol] || (node[eventsSymbol] = {}); } function on(node, types, fn, data, selector) { types = types.split(rspaces); var events = getEvents(node); var i = types.length; var handlers, type; function handler(e) { fn(e, data); } while (i--) { type = types[i]; handlers = events[type] || (events[type] = []); handlers.push([fn, handler]); node.addEventListener(type, handler); } } function off(node, types, fn, selector) { types = types.split(rspaces); var events = getEvents(node); var i = types.length; var type, handlers, k; if (!events) { return; } while (i--) { type = types[i]; handlers = events[type]; if (!handlers) { continue; } k = handlers.length; while (k--) { if (handlers[k][0] === fn) { node.removeEventListener(type, handlers[k][1]); handlers.splice(k, 1); } } } } function trigger(node, type, properties) { // Don't cache events. It prevents you from triggering an event of a // given type from inside the handler of another event of that type. var event = createEvent(type); if (properties) { assign(event, properties); } node.dispatchEvent(event); } // Constructors function Timer(fn){ var callback = fn, active = false, running = false; function trigger(time) { if (active){ callback(); requestFrame(trigger); running = true; active = false; } else { running = false; } } this.kick = function(fn) { active = true; if (!running) { trigger(); } }; this.end = function(fn) { var cb = callback; if (!fn) { return; } // If the timer is not running, simply call the end callback. if (!running) { fn(); } // If the timer is running, and has been kicked lately, then // queue up the current callback and the end callback, otherwise // just the end callback. else { callback = active ? function(){ cb(); fn(); } : fn ; active = true; } }; } // Functions function noop() {} function preventDefault(e) { e.preventDefault(); } function isIgnoreTag(e) { return !!ignoreTags[e.target.tagName.toLowerCase()]; } function isPrimaryButton(e) { // Ignore mousedowns on any button other than the left (or primary) // mouse button, or when a modifier key is pressed. return (e.which === 1 && !e.ctrlKey && !e.altKey); } function identifiedTouch(touchList, id) { var i, l; if (touchList.identifiedTouch) { return touchList.identifiedTouch(id); } // touchList.identifiedTouch() does not exist in // webkit yet… we must do the search ourselves... i = -1; l = touchList.length; while (++i < l) { if (touchList[i].identifier === id) { return touchList[i]; } } } function changedTouch(e, data) { var touch = identifiedTouch(e.changedTouches, data.identifier); // This isn't the touch you're looking for. if (!touch) { return; } // Chrome Android (at least) includes touches that have not // changed in e.changedTouches. That's a bit annoying. Check // that this touch has changed. if (touch.pageX === data.pageX && touch.pageY === data.pageY) { return; } return touch; } // Handlers that decide when the first movestart is triggered function mousedown(e){ // Ignore non-primary buttons if (!isPrimaryButton(e)) { return; } // Ignore form and interactive elements if (isIgnoreTag(e)) { return; } on(document, mouseevents.move, mousemove, e); on(document, mouseevents.cancel, mouseend, e); } function mousemove(e, data){ checkThreshold(e, data, e, removeMouse); } function mouseend(e, data) { removeMouse(); } function removeMouse() { off(document, mouseevents.move, mousemove); off(document, mouseevents.cancel, mouseend); } function touchstart(e) { // Don't get in the way of interaction with form elements if (ignoreTags[e.target.tagName.toLowerCase()]) { return; } var touch = e.changedTouches[0]; // iOS live updates the touch objects whereas Android gives us copies. // That means we can't trust the touchstart object to stay the same, // so we must copy the data. This object acts as a template for // movestart, move and moveend event objects. var data = { target: touch.target, pageX: touch.pageX, pageY: touch.pageY, identifier: touch.identifier, // The only way to make handlers individually unbindable is by // making them unique. touchmove: function(e, data) { touchmove(e, data); }, touchend: function(e, data) { touchend(e, data); } }; on(document, touchevents.move, data.touchmove, data); on(document, touchevents.cancel, data.touchend, data); } function touchmove(e, data) { var touch = changedTouch(e, data); if (!touch) { return; } checkThreshold(e, data, touch, removeTouch); } function touchend(e, data) { var touch = identifiedTouch(e.changedTouches, data.identifier); if (!touch) { return; } removeTouch(data); } function removeTouch(data) { off(document, touchevents.move, data.touchmove); off(document, touchevents.cancel, data.touchend); } function checkThreshold(e, data, touch, fn) { var distX = touch.pageX - data.pageX; var distY = touch.pageY - data.pageY; // Do nothing if the threshold has not been crossed. if ((distX * distX) + (distY * distY) < (threshold * threshold)) { return; } triggerStart(e, data, touch, distX, distY, fn); } function triggerStart(e, data, touch, distX, distY, fn) { var touches = e.targetTouches; var time = e.timeStamp - data.timeStamp; // Create a movestart object with some special properties that // are passed only to the movestart handlers. var template = { altKey: e.altKey, ctrlKey: e.ctrlKey, shiftKey: e.shiftKey, startX: data.pageX, startY: data.pageY, distX: distX, distY: distY, deltaX: distX, deltaY: distY, pageX: touch.pageX, pageY: touch.pageY, velocityX: distX / time, velocityY: distY / time, identifier: data.identifier, targetTouches: touches, finger: touches ? touches.length : 1, enableMove: function() { this.moveEnabled = true; this.enableMove = noop; e.preventDefault(); } }; // Trigger the movestart event. trigger(data.target, 'movestart', template); // Unbind handlers that tracked the touch or mouse up till now. fn(data); } // Handlers that control what happens following a movestart function activeMousemove(e, data) { var timer = data.timer; data.touch = e; data.timeStamp = e.timeStamp; timer.kick(); } function activeMouseend(e, data) { var target = data.target; var event = data.event; var timer = data.timer; removeActiveMouse(); endEvent(target, event, timer, function() { // Unbind the click suppressor, waiting until after mouseup // has been handled. setTimeout(function(){ off(target, 'click', preventDefault); }, 0); }); } function removeActiveMouse() { off(document, mouseevents.move, activeMousemove); off(document, mouseevents.end, activeMouseend); } function activeTouchmove(e, data) { var event = data.event; var timer = data.timer; var touch = changedTouch(e, event); if (!touch) { return; } // Stop the interface from gesturing e.preventDefault(); event.targetTouches = e.targetTouches; data.touch = touch; data.timeStamp = e.timeStamp; timer.kick(); } function activeTouchend(e, data) { var target = data.target; var event = data.event; var timer = data.timer; var touch = identifiedTouch(e.changedTouches, event.identifier); // This isn't the touch you're looking for. if (!touch) { return; } removeActiveTouch(data); endEvent(target, event, timer); } function removeActiveTouch(data) { off(document, touchevents.move, data.activeTouchmove); off(document, touchevents.end, data.activeTouchend); } // Logic for triggering move and moveend events function updateEvent(event, touch, timeStamp) { var time = timeStamp - event.timeStamp; event.distX = touch.pageX - event.startX; event.distY = touch.pageY - event.startY; event.deltaX = touch.pageX - event.pageX; event.deltaY = touch.pageY - event.pageY; // Average the velocity of the last few events using a decay // curve to even out spurious jumps in values. event.velocityX = 0.3 * event.velocityX + 0.7 * event.deltaX / time; event.velocityY = 0.3 * event.velocityY + 0.7 * event.deltaY / time; event.pageX = touch.pageX; event.pageY = touch.pageY; } function endEvent(target, event, timer, fn) { timer.end(function(){ trigger(target, 'moveend', event); return fn && fn(); }); } // Set up the DOM function movestart(e) { if (e.defaultPrevented) { return; } if (!e.moveEnabled) { return; } var event = { startX: e.startX, startY: e.startY, pageX: e.pageX, pageY: e.pageY, distX: e.distX, distY: e.distY, deltaX: e.deltaX, deltaY: e.deltaY, velocityX: e.velocityX, velocityY: e.velocityY, identifier: e.identifier, targetTouches: e.targetTouches, finger: e.finger }; var data = { target: e.target, event: event, timer: new Timer(update), touch: undefined, timeStamp: e.timeStamp }; function update(time) { updateEvent(event, data.touch, data.timeStamp); trigger(data.target, 'move', event); } if (e.identifier === undefined) { // We're dealing with a mouse event. // Stop clicks from propagating during a move on(e.target, 'click', preventDefault); on(document, mouseevents.move, activeMousemove, data); on(document, mouseevents.end, activeMouseend, data); } else { // In order to unbind correct handlers they have to be unique data.activeTouchmove = function(e, data) { activeTouchmove(e, data); }; data.activeTouchend = function(e, data) { activeTouchend(e, data); }; // We're dealing with a touch. on(document, touchevents.move, data.activeTouchmove, data); on(document, touchevents.end, data.activeTouchend, data); } } on(document, 'mousedown', mousedown); on(document, 'touchstart', touchstart); on(document, 'movestart', movestart); // jQuery special events // // jQuery event objects are copies of DOM event objects. They need // a little help copying the move properties across. if (!window.jQuery) { return; } var properties = ("startX startY pageX pageY distX distY deltaX deltaY velocityX velocityY").split(' '); function enableMove1(e) { e.enableMove(); } function enableMove2(e) { e.enableMove(); } function enableMove3(e) { e.enableMove(); } function add(handleObj) { var handler = handleObj.handler; handleObj.handler = function(e) { // Copy move properties across from originalEvent var i = properties.length; var property; while(i--) { property = properties[i]; e[property] = e.originalEvent[property]; } handler.apply(this, arguments); }; } jQuery.event.special.movestart = { setup: function() { // Movestart must be enabled to allow other move events on(this, 'movestart', enableMove1); // Do listen to DOM events return false; }, teardown: function() { off(this, 'movestart', enableMove1); return false; }, add: add }; jQuery.event.special.move = { setup: function() { on(this, 'movestart', enableMove2); return false; }, teardown: function() { off(this, 'movestart', enableMove2); return false; }, add: add }; jQuery.event.special.moveend = { setup: function() { on(this, 'movestart', enableMove3); return false; }, teardown: function() { off(this, 'movestart', enableMove3); return false; }, add: add }; }); })(); (function() { if ( ! window.Symbol ) { return; } // jQuery.event.swipe // 0.5 // Stephen Band // Dependencies // jQuery.event.move 1.2 // One of swipeleft, swiperight, swipeup or swipedown is triggered on // moveend, when the move has covered a threshold ratio of the dimension // of the target node, or has gone really fast. Threshold and velocity // sensitivity changed with: // // jQuery.event.special.swipe.settings.threshold // jQuery.event.special.swipe.settings.sensitivity (function (thisModule) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define(['jquery', undefined, 'jquery.event.move'], thisModule); } else if ((typeof module !== "undefined" && module !== null) && module.exports) { module.exports = thisModule; } else { // Browser globals thisModule(jQuery); } })(function(jQuery, undefined){ var add = jQuery.event.add, remove = jQuery.event.remove, // Just sugar, so we can have arguments in the same order as // add and remove. trigger = function(node, type, data) { jQuery.event.trigger(type, data, node); }, settings = { // Ratio of distance over target finger must travel to be // considered a swipe. threshold: 0.4, // Faster fingers can travel shorter distances to be considered // swipes. 'sensitivity' controls how much. Bigger is shorter. sensitivity: 6 }; function moveend(e) { var w, h, event; w = e.currentTarget.offsetWidth; h = e.currentTarget.offsetHeight; // Copy over some useful properties from the move event event = { distX: e.distX, distY: e.distY, velocityX: e.velocityX, velocityY: e.velocityY, finger: e.finger }; // Find out which of the four directions was swiped if (e.distX > e.distY) { if (e.distX > -e.distY) { if (e.distX/w > settings.threshold || e.velocityX * e.distX/w * settings.sensitivity > 1) { event.type = 'swiperight'; trigger(e.currentTarget, event); } } else { if (-e.distY/h > settings.threshold || e.velocityY * e.distY/w * settings.sensitivity > 1) { event.type = 'swipeup'; trigger(e.currentTarget, event); } } } else { if (e.distX > -e.distY) { if (e.distY/h > settings.threshold || e.velocityY * e.distY/w * settings.sensitivity > 1) { event.type = 'swipedown'; trigger(e.currentTarget, event); } } else { if (-e.distX/w > settings.threshold || e.velocityX * e.distX/w * settings.sensitivity > 1) { event.type = 'swipeleft'; trigger(e.currentTarget, event); } } } } function getData(node) { var data = jQuery.data(node, 'event_swipe'); if (!data) { data = { count: 0 }; jQuery.data(node, 'event_swipe', data); } return data; } jQuery.event.special.swipe = jQuery.event.special.swipeleft = jQuery.event.special.swiperight = jQuery.event.special.swipeup = jQuery.event.special.swipedown = { setup: function( data, namespaces, eventHandle ) { var data = getData(this); // If another swipe event is already setup, don't setup again. if (data.count++ > 0) { return; } add(this, 'moveend', moveend); return true; }, teardown: function() { var data = getData(this); // If another swipe event is still setup, don't teardown. if (--data.count > 0) { return; } remove(this, 'moveend', moveend); return true; }, settings: settings }; }); })(); (()=>{function e(t){return 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},e(t)}!function(){if("function"!=typeof window.CustomEvent){window.CustomEvent=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:null};var o=document.createEvent("CustomEvent");return o.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),o}}function t(){var t,o=this.parentNode,a=arguments.length;if(o)for(a||o.removeChild(this);a--;)"object"!==e(t=arguments[a])?t=this.ownerDocument.createTextNode(t):t.parentNode&&t.parentNode.removeChild(t),a?o.insertBefore(t,this.nextSibling):o.replaceChild(t,this)}Element.prototype.replaceWith||(Element.prototype.replaceWith=t),CharacterData.prototype.replaceWith||(CharacterData.prototype.replaceWith=t),DocumentType.prototype.replaceWith||(DocumentType.prototype.replaceWith=t),window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=function(e,t){var o,a=this.length;for(t=t||window,o=0;o=t)return!0;o+=parseInt(this.get_cookie(e))}return this.set_cookie(e,o),!1},count_up:function(e,t){var o=1;this.cookie_exists(e)&&(o+=parseInt(this.get_cookie(e))),this.set_cookie(e,o)},set_cookie_exists:function(e){return!!get_cookie(e)||(set_cookie(e,"",0),!1)},get_cookie:function(e){var t,o,a,n=document.cookie.split(";");for(t=0;t1&&console.log("Advanced Ads: element '"+n+"' found "+t.length+" times."),o.method){case"insertBefore":a.insertBefore(t);break;case"insertAfter":a.insertAfter(t);break;case"appendTo":a.appendTo(t);break;default:a.prependTo(t)}},set_parent_relative:function(e,t){t=void 0!==t?t:{};var o=jQuery(e).parent();t.use_grandparent&&(o=o.parent()),"static"!==o.css("position")&&""!==o.css("position")||o.css("position","relative")},fix_element:function(e,t){t=void 0!==t?t:{};var o=jQuery(e);t.use_grandparent?this.set_parent_relative(o.parent()):this.set_parent_relative(o),t.is_invisible&&o.show();var a=parseInt(o.offset().top),n=parseInt(o.offset().left);if(t.is_invisible&&o.hide(),"left"===t.offset){var i=jQuery(window).width()-n-o.outerWidth();o.css("position","fixed").css("top",a+"px").css("right",i+"px").css("left","")}else o.css("position","fixed").css("top",a+"px").css("left",n+"px").css("right","")},find_wrapper:function(e,t){var o;return jQuery("body").children().each((function(a,n){if(n.id!==e.substring(1)){var i=jQuery(n);if("right"===t&&i.offset().left+jQuery(i).width()0)return"static"!==i.css("position")&&""!==i.css("position")||i.css("position","relative"),o=n,!1}})),o},center_fixed_element:function(e){var t=jQuery(e),o=jQuery(window).width()/2-parseInt(t.css("width"))/2;t.css("left",o+"px")},center_vertically:function(e){var t=jQuery(e),o=jQuery(window).height()/2-parseInt(t.css("height"))/2;"fixed"!==t.css("position")&&(o-=topoffset=parseInt(t.offset().top)),t.css("top",o+"px")},close:function(e){jQuery(e).remove()},wait_for_images:function(e,t){var o=0,a=[];e.find('img[src][src!=""]').each((function(){a.push(this.src)})),0===a.length&&t.call(e),jQuery.each(a,(function(n,i){var s=new Image;s.src=i;var r="load error";jQuery(s).one(r,(function n(i){if(jQuery(this).off(r,n),++o==a.length)return t.call(e[0]),!1}))}))},privacy:{state:"unknown",state_executed:!1,get_state:function(){if("unknown"!==window.advads_options.privacy.state)return advads.privacy.state_executed||(advads.privacy.state_executed=!0,advads.privacy.dispatch_event(window.advads_options.privacy.state,!1)),advads.privacy.state;if("custom"===window.advads_options.privacy["consent-method"]){var e=new RegExp(".*?"+window.advads_options.privacy["custom-cookie-value"]+"[^;]*?"),t=advads.get_cookie(window.advads_options.privacy["custom-cookie-name"])||"";advads.privacy.state_executed||(advads.privacy.state_executed=!0,advads.privacy.dispatch_event(t.match(e)?"accepted":"unknown",!0))}advads.privacy.state_executed=!0;var o=0,a=setInterval((function(){switch(600==++o&&clearInterval(a),window.advads_options.privacy["consent-method"]){case"custom":(advads.get_cookie(window.advads_options.privacy["custom-cookie-name"])||"").match(e)&&(clearInterval(a),"accepted"!==advads.privacy.state&&advads.privacy.dispatch_event("accepted",!0));break;case"iab_tcf_20":if(void 0===window.__tcfapi)return;clearInterval(a),window.__tcfapi("addEventListener",2,(function(e,t){if(t&&("tcloaded"===e.eventStatus||"useractioncomplete"===e.eventStatus||null===e.eventStatus&&void 0!==window.googlefc&&(void 0!==e.purpose||!e.gdprApplies))){var o="useractioncomplete"===e.eventStatus;if(!e.gdprApplies)return void("not_needed"!==advads.privacy.state&&advads.privacy.dispatch_event("not_needed",o));if(e.purpose.consents[1])return void("accepted"!==advads.privacy.state&&advads.privacy.dispatch_event("accepted",o));"rejected"!==advads.privacy.state&&advads.privacy.dispatch_event("rejected",o)}}))}}),100);return advads.privacy.state},is_adsense_npa_enabled:function(){return!window.advads_options||!window.advads_options.privacy||!(!window.advads_options.privacy["show-non-personalized-adsense"]||"custom"!==window.advads_options.privacy["consent-method"])},dispatch_event:function(e,t){var o=advads.privacy.state;advads.privacy.state=e,console.log({state:e,previousState:o,userAction:t}),window.advanced_ads_ready_queue.push((function(){document.dispatchEvent(new CustomEvent("advanced_ads_privacy",{detail:{state:e,previousState:o,userAction:t}}))}))},is_ad_decoded:function(e){return null===document.querySelector('script[data-tcf="waiting-for-consent"][data-id="'+e+'"]')},decode_ad:function(e,t){t="boolean"!=typeof t||t;var o=decodeURIComponent(Array.prototype.map.call(atob(e.textContent),(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join(""));if(!t)return o;e.replaceWith(document.createRange().createContextualFragment(o))}}},window.advanced_ads_ready_queue.push(advads.privacy.get_state),document.addEventListener("advanced_ads_privacy",(function(e){"accepted"!==e.detail.state&&"not_needed"!==e.detail.state||e.detail.userAction||"loading"===document.readyState||document.querySelectorAll('script[type="text/plain"][data-tcf="waiting-for-consent"]').forEach(advads.privacy.decode_ad)}))})();;