"use strict";
;
(function ($){
var $w=$(window);
$.fn.visible=function (partial, hidden, direction, container){
if(this.length < 1) return;
direction=direction||'both';
var $t=this.length > 1 ? this.eq(0):this,
isContained=typeof container!=='undefined'&&container!==null,
$c=isContained ? $(container):$w,
wPosition=isContained ? $c.position():0,
t=$t.get(0),
vpWidth=$c.outerWidth(),
vpHeight=$c.outerHeight(),
clientSize=hidden===true ? t.offsetWidth * t.offsetHeight:true;
if(typeof t.getBoundingClientRect==='function'){
var rec=t.getBoundingClientRect(),
tViz=isContained ? rec.top - wPosition.top >=0&&rec.top < vpHeight + wPosition.top:rec.top >=0&&rec.top < vpHeight,
bViz=isContained ? rec.bottom - wPosition.top > 0&&rec.bottom <=vpHeight + wPosition.top:rec.bottom > 0&&rec.bottom <=vpHeight,
lViz=isContained ? rec.left - wPosition.left >=0&&rec.left < vpWidth + wPosition.left:rec.left >=0&&rec.left < vpWidth,
rViz=isContained ? rec.right - wPosition.left > 0&&rec.right < vpWidth + wPosition.left:rec.right > 0&&rec.right <=vpWidth,
vVisible=partial ? tViz||bViz:tViz&&bViz,
hVisible=partial ? lViz||rViz:lViz&&rViz,
vVisible=rec.top < 0&&rec.bottom > vpHeight ? true:vVisible,
hVisible=rec.left < 0&&rec.right > vpWidth ? true:hVisible;
if(direction==='both') return clientSize&&vVisible&&hVisible;else if(direction==='vertical') return clientSize&&vVisible;else if(direction==='horizontal') return clientSize&&hVisible;
}else{
var viewTop=isContained ? 0:wPosition,
viewBottom=viewTop + vpHeight,
viewLeft=$c.scrollLeft(),
viewRight=viewLeft + vpWidth,
position=$t.position(),
_top=position.top,
_bottom=_top + $t.height(),
_left=position.left,
_right=_left + $t.width(),
compareTop=partial===true ? _bottom:_top,
compareBottom=partial===true ? _top:_bottom,
compareLeft=partial===true ? _right:_left,
compareRight=partial===true ? _left:_right;
if(direction==='both') return !!clientSize&&compareBottom <=viewBottom&&compareTop >=viewTop&&compareRight <=viewRight&&compareLeft >=viewLeft;else if(direction==='vertical') return !!clientSize&&compareBottom <=viewBottom&&compareTop >=viewTop;else if(direction==='horizontal') return !!clientSize&&compareRight <=viewRight&&compareLeft >=viewLeft;
}};})(jQuery);
(function ($){
'use strict';
var WPPopupsPro={
popups: {},
init: function init(){
$(document).ready(WPPopupsPro.ready);
$(window).on('load', WPPopupsPro.load);
$(document).on('wppopupsReady', WPPopupsPro.start);
$(document).on('wppopupsBeforeReady', WPPopupsPro.beforeReady);
WPPopupsPro.bindEvents();
},
ready: function ready(){},
load: function load(){},
start: function start(){
WPPopupsPro.loopPopups();
$(document).trigger('wppopupsProStarted');
},
loopPopups: function loopPopups(){
$(".spu-box").each(function (){
var $popup=$(this),
$id=$popup.data('id');
WPPopupsPro.triggerAutoClose($popup);
WPPopupsPro.afterContentPopups($popup);
WPPopupsPro.advancedClosePopups($popup);
});
},
bindEvents: function bindEvents(){
if(wppopups_pro_vars.enable_stats&&'1'==wppopups_pro_vars.enable_stats){
$(document).on('wppopups.popup_converted', WPPopupsPro.trackConversion);
$(document).on('wppopups.popup_opened', WPPopupsPro.trackOpening);
}
window.wp.hooks.addAction('wppopups_show_popup', 'wppopups', WPPopupsPro.triggerShowAnimations);
window.wp.hooks.addAction('wppopups_show_popup', 'wppopups', WPPopupsPro.stickyPopup);
window.wp.hooks.addFilter('wppopups_cancel_hide', 'wppopups', function (default_value, popup){
var settings=window.wppopups.settings(popup, 'position');
if(settings.position=='sticky-left'||settings.position=='sticky-right'){
return true;
}
return default_value;
});
$(document).on('click', '.spu-box .spu-sticky-title, .spu-position-sticky-right .spu-close-popup, .spu-position-sticky-left .spu-close-popup', function (e){
$(this).closest('.spu-box').toggleClass('spu-sticky-open');
});
window.wp.hooks.addAction('wppopups_trigger_popup', 'wppopups', WPPopupsPro.bindTriggers);
},
bindTriggers: function bindTriggers(func_name, trigger_value, $popup){
if(typeof WPPopupsPro[func_name]=='function'){
WPPopupsPro[func_name](trigger_value, $popup);
}},
triggerByExit: function triggerByExit(value, $popup){
$(document.body).on('mouseleave', {
value: value,
popup: $popup
}, WPPopupsPro.exitIntent);
},
triggerByVisible: function triggerByVisible(value, $popup){
if(value===''){
return;
}
$(window).bind('scroll', {
value: value,
popup: $popup
}, WPPopupsPro.triggerVisible);
},
triggerVisible: function triggerVisible(e){
var triggerClass=WPPopupsPro.cleanClass(e.data.value);
if($(triggerClass).visible(true)&&window.wppopups.checkConvertion(e.data.popup)){
$(window).unbind('scroll', WPPopupsPro.triggerVisible);
window.wppopups.showPopup(e.data.popup);
}},
cleanClass: function cleanClass(classname){
if(classname.indexOf('.')!==0){
return '.' + classname;
}
return classname;
},
exitIntent: function exitIntent(e){
if(e.clientY > 20||!window.wppopups.checkConvertion(e.data.popup)){
return;
}
window.wppopups.showPopup(e.data.popup);
$(document.body).unbind('mouseleave', WPPopupsPro.exitIntent);
},
setUserIndentifier: function setUserIndentifier(){
if(wppopups_settings.uuid_cookie&&!WPPopupsPro.getCookie('_wpfuuid')){
var s=new Array(36),
hexDigits='0123456789abcdef',
uuid;
for (var i=0; i < 36; i++){
s[i]=hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14]="4";
s[19]=hexDigits.substr(s[19] & 0x3 | 0x8, 1);
s[8]=s[13]=s[18]=s[23]='-';
uuid=s.join("");
WPPopupsPro.createCookie('_wpfuuid', uuid, 3999);
}},
trackOpening: function trackOpening(event, id){
var $popup=window.wppopups.getPopup(id),
settings=window.wppopups.settings($popup, 'settings'),
sampling_active=wppopups_vars.dsampling||false,
sampling_rate=wppopups_vars.dsamplingrate;
var do_request=true;
if(wppopups_vars.is_admin&&settings.test_mode=='1'){
return;
}
if(sampling_active&&sampling_rate > 0){
var num=Math.floor(Math.random() * sampling_rate) + 1;
do_request=1===num;
}
if(do_request){
WPPopupsPro.trackGoogleAnalytics(id, false);
var data={
action: 'track_wppopups',
popup_id: id,
conversion: false,
nonce: wppopups_pro_vars.nonce,
post_id: wppopups_pro_vars.post_id
};
var ajax={
url: wppopups_vars.ajax_url,
data: data,
cache: false,
type: 'POST',
dataType: 'json',
timeout: 30000
};
$.ajax(ajax);
}},
trackGoogleAnalytics: function trackGoogleAnalytics(popup_id, conversion){
var $popup=window.wppopups.getPopup(popup_id),
settings=window.wppopups.settings($popup, 'settings'),
eventCategory=settings.ga_event_category||'Popup Event',
ga_id=wppopups_pro_vars.ua_code,
eventLabel=settings.ga_event_label||'wppopups-' + popup_id,
eventIAction=settings.ga_event_action_impression||'impression',
eventCAction=settings.ga_event_action_conversion||'conversion',
eventAction=conversion ? eventCAction:eventIAction;
if(!ga_id){
return;
}
if(!WPPopupsPro.ga_init){
if(typeof ga=='function'){
ga('create', ga_id, 'auto', {
'name': 'WPPopupsTracker'
});
}
if(typeof __gaTracker=='function'){
__gaTracker('create', ga_id, 'auto', {
'name': 'WPPopupsTracker'
});
}
WPPopupsPro.ga_init=true;
}
if(typeof ga=='function'){
ga('WPPopupsTracker.send', 'event', eventCategory, eventAction, eventLabel);
}
if(typeof __gaTracker=='function'){
__gaTracker('WPPopupsTracker.send', 'event', eventCategory, eventAction, eventLabel);
}},
trackConversion: function trackConversion(event, id){
var $popup=window.wppopups.getPopup(id),
settings=window.wppopups.settings($popup, 'settings');
var do_request=true;
if(wppopups_vars.is_admin&&settings.test_mode=='1'){
return;
}
WPPopupsPro.trackGoogleAnalytics(id, true);
var data={
action: 'track_wppopups',
popup_id: id,
conversion: true,
nonce: wppopups_pro_vars.nonce,
post_id: wppopups_pro_vars.post_id
};
var ajax={
url: wppopups_vars.ajax_url,
data: data,
cache: false,
type: 'POST',
dataType: 'json',
timeout: 30000
};
$.ajax(ajax);
},
beforeReady: function beforeReady(){
window.wp.hooks.addFilter('wppopups_pre_ready_data', 'wppopups', function (data){
data.visited_n_pages=WPPopupsPro.sessionCounter();
return data;
});
$(".spu-box").each(function (){
var $popup=$(this),
$rules=window.wppopups.settings($popup, 'rules');
if(Object.keys($rules).length){
for (var group in $rules){
for (var rule in $rules[group]){
if($rules[group][rule].rule=='converted'){
$popup.addClass($rules[group][rule].operator=='==' ? 'yes-convert':'no-convert');
$popup.data('convert-id', $rules[group][rule].value);
}}
}}
});
},
triggerAutoClose: function triggerAutoClose($popup){
var settings=window.wppopups.settings($popup, 'settings');
if(settings.autoclose > 0&&typeof $popup.counter==='undefined'){
$popup.autoclose=settings.autoclose;
$popup.counter=setInterval(function (){
WPPopupsPro.autoClose($popup);
}, 1000);
}},
autoClose: function autoClose($popup){
var settings=window.wppopups.settings($popup, 'settings');
$popup.autoclose=$popup.autoclose - 1;
if($popup.autoclose <=0){
clearInterval($popup.counter);
$popup.counter='undefined';
$popup.autoclose=settings.autoclose;
window.wppopups.hidePopup($popup, false);
return;
}
$("#spu-" + $popup.data('id')).find('.spu-timer').html(wppopups_pro_vars.l18n.wait + " " + $popup.autoclose + " " + wppopups_pro_vars.l18n.seconds);
},
afterContentPopups: function afterContentPopups($popup){
var settings=window.wppopups.settings($popup, 'position');
if(settings.position=='after-post'){
$('#spu-bg-' + $popup.data('id')).remove();
if($('.spu-placeholder').length){
$('.spu-placeholder').replaceWith($popup);
}else{
$popup.remove();
}
WPPopupsPro.advancedClosePopups($popup, true);
}},
advancedClosePopups: function advancedClosePopups($popup, force){
var settings=window.wppopups.settings($popup, 'settings');
if(settings.advanced_close=='1'||force){
window.wp.hooks.addFilter('wppopups_allow_togglePopups', 'wppopups', function (default_value, popup){
if(popup.data('id')==$popup.data('id')){
return false;
}
return default_value;
});
}},
triggerShowAnimations: function triggerShowAnimations($popup){
var animation=window.wppopups.settings($popup, 'animation');
var $class_name='';
switch (animation.animation){
case 'fade':
break;
case 'slide':
break;
case 'disable':
break;
default:
$class_name='spu-animation-' + animation.animation;
break;
}
if($class_name!==''){
$popup.addClass($class_name).addClass('spu-animation-animated');
}},
stickyPopup: function stickyPopup($popup){
var settings=window.wppopups.settings($popup, 'position');
if(settings.position!='sticky-left'&&settings.position!='sticky-right') return;
var sticky_title=$popup.find('.spu-sticky-title');
$('#spu-bg-' + $popup.data('id')).remove();
sticky_title.show();
var popupHeight=$popup.outerHeight(),
titleHeight=$popup.find('.spu-sticky-title').outerHeight();
$popup.css({
"bottom": "-" + (popupHeight - titleHeight) + "px"
});
},
sessionCounter: function sessionCounter(){
var counter=sessionStorage.getItem('wppopups_visited_page')||0;
var new_value=parseInt(counter) + 1;
sessionStorage.setItem('wppopups_visited_page', new_value);
return new_value;
}};
WPPopupsPro.init();
window.wppopups_pro=WPPopupsPro;
})(jQuery);