(function(){
var supportsPassive=false;
try {
var opts=Object.defineProperty({}, 'passive', {
get:function(){
supportsPassive=true;
}});
window.addEventListener('testPassive', null, opts);
window.removeEventListener('testPassive', null, opts);
} catch(e){}
function init(){
var input_begin='';
var keydowns={};
var lastKeyup=null;
var lastKeydown=null;
var keypresses=[];
var modifierKeys=[];
var correctionKeys=[];
var lastMouseup=null;
var lastMousedown=null;
var mouseclicks=[];
var mouseclickCoordinates=[];
var mousemoveTimer=null;
var lastMousemoveX=null;
var lastMousemoveY=null;
var mousemoveStart=null;
var mousemoves=[];
var touchmoveCountTimer=null;
var touchmoveCount=0;
var lastTouchEnd=null;
var lastTouchStart=null;
var touchEvents=[];
var scrollCountTimer=null;
var scrollCount=0;
var correctionKeyCodes=[ 'Backspace', 'Delete', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'PageUp', 'PageDown' ];
var modifierKeyCodes=[ 'Shift', 'CapsLock' ];
var forms=document.querySelectorAll('form[method=post]');
for(var i=0; i < forms.length; i++){
var form=forms[i];
var formAction=form.getAttribute('action');
if(formAction){
if(formAction.indexOf('http://')==0||formAction.indexOf('https://')==0){
if(formAction.indexOf('http://' + window.location.hostname + '/')!=0&&formAction.indexOf('https://' + window.location.hostname + '/')!=0){
continue;
}}
}
form.addEventListener('submit', function (){
var ak_bkp=prepare_array_for_request(keypresses);
var ak_bmc=prepare_array_for_request(mouseclicks);
var ak_bte=prepare_array_for_request(touchEvents);
var ak_bmm=prepare_array_for_request(mousemoves);
var ak_bcc=prepare_array_for_request(mouseclickCoordinates);
var input_fields={
'bib': input_begin,
'bfs': Date.now(),
'bkpc': keypresses.length,
'bkp': ak_bkp,
'bmc': ak_bmc,
'bmcc': mouseclicks.length,
'bmk': modifierKeys.join(';'),
'bck': correctionKeys.join(';'),
'bmmc': mousemoves.length,
'btmc': touchmoveCount,
'bsc': scrollCount,
'bte': ak_bte,
'btec':touchEvents.length,
'bmm':ak_bmm,
'bcc':ak_bcc
};
var akismet_field_prefix='ak_';
if(this.getElementsByClassName){
var possible_akismet_containers=this.getElementsByClassName('akismet-fields-container');
for(var containerIndex=0; containerIndex < possible_akismet_containers.length; containerIndex++){
var container=possible_akismet_containers.item(containerIndex);
if(container.getAttribute('data-prefix') ){
akismet_field_prefix=container.getAttribute('data-prefix');
break;
}}
}
for(var field_name in input_fields){
var field=document.createElement('input');
field.setAttribute('type', 'hidden');
field.setAttribute('name', akismet_field_prefix + field_name);
field.setAttribute('value', input_fields[ field_name ]);
this.appendChild(field);
}}, supportsPassive ? { passive: true }:false);
form.addEventListener('keydown', function(e){
if(e.key in keydowns){
return;
}
var keydownTime=(new Date()).getTime();
keydowns[ e.key ]=[ keydownTime ];
if(! input_begin){
input_begin=keydownTime;
}
var lastKeyEvent=Math.max(lastKeydown, lastKeyup);
if(lastKeyEvent){
keydowns[ e.key ].push(keydownTime - lastKeyEvent);
}
lastKeydown=keydownTime;
}, supportsPassive ? { passive: true }:false);
form.addEventListener('keyup', function(e){
if(!(e.key in keydowns) ){
return;
}
var keyupTime=(new Date()).getTime();
if('TEXTAREA'===e.target.nodeName||'INPUT'===e.target.nodeName){
if(-1!==modifierKeyCodes.indexOf(e.key) ){
modifierKeys.push(keypresses.length - 1);
}else if(-1!==correctionKeyCodes.indexOf(e.key) ){
correctionKeys.push(keypresses.length - 1);
}else{
var keydownTime=keydowns[ e.key ][0];
var keypress=[];
keypress.push(keyupTime - keydownTime);
if(keydowns[ e.key ].length > 1){
keypress.push(keydowns[ e.key ][1]);
}
keypresses.push(keypress);
}}
delete keydowns[ e.key ];
lastKeyup=keyupTime;
}, supportsPassive ? { passive: true }:false);
form.addEventListener("focusin", function(e){
lastKeydown=null;
lastKeyup=null;
keydowns={};}, supportsPassive ? { passive: true }:false);
form.addEventListener("focusout", function(e){
lastKeydown=null;
lastKeyup=null;
keydowns={};}, supportsPassive ? { passive: true }:false);
}
document.addEventListener('mousedown', function(e){
lastMousedown=(new Date()).getTime();
var mouseclickCoordinate=[];
var rect=e.target.getBoundingClientRect();
var relativeX=e.clientX - rect.left;
var relativeY=e.clientY - rect.top;
mouseclickCoordinate.push(Math.round(relativeX) );
mouseclickCoordinate.push(Math.round(relativeY) );
mouseclickCoordinate.push(rect.width > 0 ? Math.round(relativeX / rect.width * 100):0);
mouseclickCoordinate.push(rect.height > 0 ? Math.round(relativeY / rect.height * 100):0);
mouseclickCoordinates.push(mouseclickCoordinate);
}, supportsPassive ? { passive: true }:false);
document.addEventListener('mouseup', function(e){
if(! lastMousedown){
return;
}
var now=(new Date()).getTime();
var mouseclick=[];
mouseclick.push(now - lastMousedown);
if(lastMouseup){
mouseclick.push(lastMousedown - lastMouseup);
}
mouseclicks.push(mouseclick);
lastMouseup=now;
lastKeydown=null;
lastKeyup=null;
keydowns={};}, supportsPassive ? { passive: true }:false);
document.addEventListener('mousemove', function(e){
if(mousemoveTimer){
clearTimeout(mousemoveTimer);
mousemoveTimer=null;
}else{
mousemoveStart=(new Date()).getTime();
lastMousemoveX=e.offsetX;
lastMousemoveY=e.offsetY;
}
mousemoveTimer=setTimeout(function(theEvent, originalMousemoveStart){
var now=(new Date()).getTime() - 500;
var mousemove=[];
mousemove.push(now - originalMousemoveStart);
mousemove.push(Math.round(Math.sqrt(Math.pow(theEvent.offsetX - lastMousemoveX, 2) +
Math.pow(theEvent.offsetY - lastMousemoveY, 2)
)
)
);
if(mousemove[1] > 0){
mousemoves.push(mousemove);
}
mousemoveStart=null;
mousemoveTimer=null;
}, 500, e, mousemoveStart);
}, supportsPassive ? { passive: true }:false);
document.addEventListener('touchmove', function(e){
if(touchmoveCountTimer){
clearTimeout(touchmoveCountTimer);
}
touchmoveCountTimer=setTimeout(function (){
touchmoveCount++;
}, 500);
}, supportsPassive ? { passive: true }:false);
document.addEventListener('touchstart', function(e){
lastTouchStart=(new Date()).getTime();
}, supportsPassive ? { passive: true }:false);
document.addEventListener('touchend', function(e){
if(! lastTouchStart){
return;
}
var now=(new Date()).getTime();
var touchEvent=[];
touchEvent.push(now - lastTouchStart);
if(lastTouchEnd){
touchEvent.push(lastTouchStart - lastTouchEnd);
}
touchEvents.push(touchEvent);
lastTouchEnd=now;
lastKeydown=null;
lastKeyup=null;
keydowns={};}, supportsPassive ? { passive: true }:false);
document.addEventListener('scroll', function(e){
if(scrollCountTimer){
clearTimeout(scrollCountTimer);
}
scrollCountTimer=setTimeout(function (){
scrollCount++;
}, 500);
}, supportsPassive ? { passive: true }:false);
}
function prepare_array_for_request(a, limit){
if(! limit){
limit=100;
}
var rv='';
if(a.length > 0){
var random_starting_point=Math.max(0, Math.floor(Math.random() * a.length - limit) );
for(var i=0; i < limit&&i < a.length; i++){
var entry=a[ random_starting_point + i ];
rv +=entry.join(',') + ';';
}}
return rv;
}
if(document.readyState!=='loading'){
init();
}else{
document.addEventListener('DOMContentLoaded', init);
}})();
!function(m){"use strict";m(window).on("elementor/frontend/init",function(){t.init(),n.init(),o()});var e=!1;function o(){return e||"undefined"!=typeof elementorFrontend&&elementorFrontend.elements&&elementorFrontend.elements.$document&&(elementorFrontend.elements.$document.on("elementor/popup/show",function(e,o,t){try{var n,i,d,r=null;if(r=!(r=t&&"function"==typeof t.getModal&&(n=t.getModal())&&"function"==typeof n.getElements&&(i=n.getElements("widgetContent"))&&i.length?i[0]:r)&&o&&(d=m("#elementor-popup-modal-"+o).find(".dialog-widget-content")).length?d[0]:r){var s=m(r);if(s&&s.length&&"undefined"!=typeof qodefAddonsCore&&qodefAddonsCore.shortcodes)for(var l in qodefAddonsCore.shortcodes)if(Object.prototype.hasOwnProperty.call(qodefAddonsCore.shortcodes,l)){var f,c=s.find(".elementor-widget-"+l);if(c.length)for(var a in qodefAddonsCore.shortcodes[l])Object.prototype.hasOwnProperty.call(qodefAddonsCore.shortcodes[l],a)&&void 0!==(f=qodefAddonsCore.shortcodes[l][a])&&c.each(function(){var e,o=m(this);"function"==typeof f.initSlider?(e=o.find(".qodef-qi-swiper-container")).length&&e.each(function(){f.initSlider(m(this))}):"function"==typeof f.initItem&&o.find(".qodef-shortcode").length?f.initItem(o.find(".qodef-shortcode")):"function"==typeof f.init&&f.init()})}}}catch(e){}}),e=!0)}!function e(){o()||setTimeout(e,250)}();var t={init:function(){if(Boolean(elementorFrontend.isEditMode()))for(var e in qodefAddonsCore.shortcodes)for(var o in qodefAddonsCore.shortcodes[e])t.reInitShortcode(e,o)},reInitShortcode:function(t,n){elementorFrontend.hooks.addAction("frontend/element_ready/"+t+".default",function(e){var o;void 0===qodefAddonsCore.shortcodes[t][n]?console.log(n):"function"==typeof qodefAddonsCore.shortcodes[t][n].initSlider?(o=e.find(".qodef-qi-swiper-container")).length&&o.each(function(){qodefAddonsCore.shortcodes[t][n].initSlider(m(this))}):"function"==typeof qodefAddonsCore.shortcodes[t][n].initItem&&e.find(".qodef-shortcode").length?qodefAddonsCore.shortcodes[t][n].initItem(e.find(".qodef-shortcode")):qodefAddonsCore.shortcodes[t][n].init()})}},n={init:function(){"undefined"!=typeof elementor&&elementor.hooks.addFilter("panel/elements/regionViews",function(e){var o=e.elements.view,t=e.categories.view,n={className:function(){var e="elementor-element-wrapper";return this.isEditable()||(e+=" elementor-element--promotion",this.isQodeWidget()&&(e+=" qodef-element--promotion")),e},isQodeWidget:function(){if(void 0!==this.model.get("name"))return 0===this.model.get("name").indexOf("qi_")},getElementObj:function(t){return elementor.config.promotionWidgets.find(function(e,o){if(e.name==t)return!0})},onMouseDown:function(){var e,o=elementor.config.elementPromotionURL.replace("%s",this.model.get("name")),t=this.model.get("title"),n=sprintf(wp.i18n.__("Use %s widget and dozens more pro features to extend your toolbox and build sites faster and better.","qi-addons-for-elementor"),t),i=elementor.config.promotion.elements;this.isQodeWidget()&&(void 0!==(e=this.getElementObj(this.model.get("name"))).helpUrl&&(o=e.helpUrl),n=sprintf(wp.i18n.__("The %s comes with advanced professional functionalities and an even smoother website-making experience. %s Upgrade Qi Addons for Elementor %s","qi-addons-for-elementor"),t,'<a class="qodef-dialog-box-link" target="_blank" href="https://qodeinteractive.com/products/plugins/">',"</a>")),elementor.promotion.showDialog({title:sprintf(wp.i18n.__("%s Widget","qi-addons-for-elementor"),t),content:n,position:{blockStart:"-7"},targetElement:this.el,actionButton:{url:o,text:i.action_button.text,classes:i.action_button.classes||["elementor-button","go-pro"]}})}};return e.elements.view=o.extend({childView:o.prototype.childView.extend(n)}),e.categories.view=t.extend({childView:t.prototype.childView.extend({childView:t.prototype.childView.prototype.childView.extend(n)})}),e})}}}(jQuery);