: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
function sgAddEvent(element, eventName, fn)
if (element.addEventListener)
element.addEventListener(eventName, fn, false);
else if (element.attachEvent)
element.attachEvent('on' + eventName, fn);
this.additionalPopupData = {};
this.initialsListeners();
this.countPopupOpen = true;
this.closeButtonDefaultPositions = {};
this.closeButtonDefaultPositions[1] = {
this.closeButtonDefaultPositions[2] = {
'bottom': parseInt('-20')
this.closeButtonDefaultPositions[3] = {
this.closeButtonDefaultPositions[4] = {
this.closeButtonDefaultPositions[5] = {
this.closeButtonDefaultPositions[6] = {
'left': parseInt('-18.5'),
'right': parseInt('-18.5'),
'bottom': parseInt('-18.5'),
SGPBPopup.htmlCustomButton = function()
var buttons = jQuery('.sgpb-html-custom-button');
var buttonActionBehaviors = function(button, settings)
button.bind('click', function() {
var behavior = settings['sgpb-custom-button'];
if (behavior === 'redirectToURL') {
if (settings['sgpb-custom-button-redirect-new-tab']) {
window.open(settings['sgpb-custom-button-redirect-URL']);
window.location.href = settings['sgpb-custom-button-redirect-URL'];
if (behavior === 'hidePopup') {
if (behavior === 'copyToClipBoard') {
var value = settings['sgpb-custom-button-copy-to-clipboard-text'];
var tempInput = document.createElement("input");
tempInput.id = tempInputId;
tempInput.style = 'position: absolute; right: -10000px';
if (!document.getElementById(tempInputId)) {
document.body.appendChild(tempInput);
document.execCommand("copy");
if (settings['sgpb-copy-to-clipboard-close-popup']) {
if (settings['sgpb-custom-button-copy-to-clipboard-alert']) {
alert(settings['sgpb-custom-button-copy-to-clipboard-message']);
buttons.each(function() {
var settings = jQuery.parseJSON(decodeURIComponent(jQuery(this).attr('data-options')));
buttonActionBehaviors(jQuery(this), settings);
SGPBPopup.listeners = function () {
sgAddEvent(window, 'sgpbPopupBuilderAdditionalDimensionSettings', function(e) {
SGPBPopup.mobileSafariAdditionalSettings(e);
sgAddEvent(window, 'sgpbDidOpen', function(e) {
/*for mobile landscape issue*/
if (typeof (Event) === 'function') {
var event = new CustomEvent('resize', {
var event = document.createEvent('Event');
event.initEvent('resize', true, true);
var event = new CustomEvent('resize', {
window.dispatchEvent(event);
SGPBPopup.mobileSafariAdditionalSettings(e);
var popupOptions = args.popupData;
var obj = e.detail.currentObj.sgpbPopupObj;
/* if no analytics extension */
if (typeof SGPB_ANALYTICS_PARAMS === 'undefined') {
if (obj.getCountPopupOpen()) {
obj.addToCounter(popupOptions);
if (popupOptions['sgpb-show-popup-same-user']) {
obj.setPopupLimitationCookie(popupOptions);
SGPBPopup.htmlCustomButton();
var openedPopups = window.sgpbOpenedPopup || {};
if (!Object.keys(openedPopups).length) {
params.popupsIdCollection = window.sgpbOpenedPopup;
action: 'sgpb_send_to_open_counter',
nonce: SGPB_JS_PARAMS.nonce,
window.sgpbOpenedPopup = {};
jQuery.post(SGPB_JS_PARAMS.ajaxUrl, data, function(res) {
SGPBPopup.mobileSafariAdditionalSettings = function(e)
if (typeof e === 'undefined') {
var args = SGPBPopup.prototype.getAdditionalPopupData();
if (typeof args === 'undefined') {
var popupOptions = args.popupData;
var popupId = parseInt(args.popupId);
var alreadySavedArgs = SGPBPopup.prototype.getAdditionalPopupData();
if (jQuery.isEmptyObject(alreadySavedArgs)) {
SGPBPopup.prototype.setAdditionalPopupData(args);
var popupOptions = args.popupData;
var popupId = parseInt(args.popupId);
var userAgent = window.navigator.userAgent;
if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) {
if (typeof popupOptions['sgpb-popup-dimension-mode'] !== 'undefined' && popupOptions['sgpb-popup-dimension-mode'] === 'responsiveMode') {
var openedPopupWidth = parseInt(window.innerHeight-100);
if (e.detail.popupData['sgpb-type'] === 'iframe' || e.detail.popupData['sgpb-type'] === 'video') {
if (jQuery('.sgpb-popup-builder-content-'+popupId +' iframe').length) {
jQuery('.sgpb-popup-builder-content-'+popupId).attr('style', 'height:'+openedPopupWidth+'px !important;');
SGPBPopup.prototype.setAdditionalPopupData = function(additionalPopupData)
this.additionalPopupData = additionalPopupData;
SGPBPopup.prototype.getAdditionalPopupData = function()
return this.additionalPopupData;
SGPBPopup.prototype.setCountPopupOpen = function(countPopupOpen)
this.countPopupOpen = countPopupOpen;
SGPBPopup.prototype.getCountPopupOpen = function()
return this.countPopupOpen;
SGPBPopup.playMusic = function(e) {
var popupId = parseInt(args.popupId);
var options = SGPBPopup.getPopupOptionsById(popupId);
var soundUrl = options['sgpb-sound-url'];
var soundStatus = options['sgpb-open-sound'];
if (soundStatus && soundUrl && !window.SGPB_SOUND[popupId]) {
var audio = new Audio(soundUrl);
window.SGPB_SOUND[popupId] = audio;
SGPBPopup.floatingButton = function (e) {
SGPBPopup.showFloatingButton(e);
jQuery(window).on('sgpbFormSuccess', function (e){
SGPBPopup.hideFloatingButton();
SGPBPopup.showFloatingButton = function (e) {
var shouldShowFloatingButton = true;
/* if argument e is event reference the popup object is wrapped inside e.detail.currentObj.sgpbPopupObj */
if (e.hasOwnProperty('sgpbPopupObj')) {
popupObj = e.detail.currentObj.sgpbPopupObj;
if (popupObj instanceof SGPBPopup) {
popupId = parseInt(popupObj.id);
shouldShowFloatingButton = popupObj.forceCheckCurrentPopupType(popupObj);
/* If there is no cookie which will prevent popup opening we will show floating button */
if (shouldShowFloatingButton) {
/* if we have popup id we detect exact button */
jQuery('.sgpb-floating-button.sg-popup-id-' + popupId).show();
jQuery('.sgpb-floating-button').show();
SGPBPopup.hideFloatingButton = function (popupId) {
/* if we have popup id we detect exact button */
jQuery('.sgpb-floating-button.sg-popup-id-' + popupId).fadeOut();
jQuery('.sgpb-floating-button').fadeOut();
SGPBPopup.prototype.initialsListeners = function()
/* one time calling events (sgpbDidOpen, sgpbDidClose ...) */
sgAddEvent(window, 'sgpbDidOpen', function(e) {
jQuery('.sg-popup-close').unbind('click').bind('click',function(){
var currentPopupId = jQuery(this).parents('.sg-popup-builder-content').attr('data-id');
SGPBPopup.closePopupById(currentPopupId);
sgAddEvent(window, 'sgpbDidClose', function(e) {
var popupId = parseInt(args.popupId);
that.htmlIframeFilterForOpen(popupId, 'close');
SGPBPopup.prototype.onceListener = function()
sgAddEvent(window, 'sgpbDidOpen', function(e) {
document.onkeydown = function(e) {
if (e.keyCode === 27) { /*esc pressed*/
var currentPopup = that.getPopupIdForNextEsc();
var lastPopupId = parseInt(currentPopup['popupId']);
SGPBPopup.closePopupById(lastPopupId);
sgAddEvent(window, 'sgpbDidClose', function(e) {
if (window.sgPopupBuilder.length !== 0) {
var popups = [].concat(window.sgPopupBuilder).reverse();
var nextObj = popups[nextIndex];
if (typeof nextObj === 'undefined') {
jQuery('html').removeClass('sgpb-overflow-hidden');
jQuery('body').removeClass('sgpb-overflow-hidden-body');
if (nextObj.isOpen === false) {
var options = SGPBPopup.getPopupOptionsById(nextObj.popupId);
if (typeof options['sgpb-disable-page-scrolling'] === 'undefined') {
jQuery('html').removeClass('sgpb-overflow-hidden');
jQuery('body').removeClass('sgpb-overflow-hidden-body');
jQuery('html').addClass('sgpb-overflow-hidden');
jQuery('body').addClass('sgpb-overflow-hidden-body');
jQuery('html').addClass('sgpb-overflow-hidden');
jQuery('body').addClass('sgpb-overflow-hidden-body');
SGPBPopup.prototype.getPopupIdForNextEsc = function()
var popups = window.sgPopupBuilder;
var searchPopups = [].concat(popups).reverse();
for (var i in searchPopups) {
var popupData = searchPopups[i];
var popupId = parseInt(popupData['popupId']);
var popupOptions = SGPBPopup.getPopupOptionsById(popupId);
if (!popupOptions['sgpb-disable-popup-closing'] && popupOptions['sgpb-esc-key']) {
SGPBPopup.prototype.setPopupId = function(popupId)
this.id = parseInt(popupId);
SGPBPopup.prototype.getPopupId = function()
SGPBPopup.prototype.setPopupObj = function(popupObj)
this.popupObj = popupObj;
SGPBPopup.prototype.getPopupObj = function()
SGPBPopup.prototype.setPopupData = function(popupData)
if (typeof popupData == 'string') {
var popupData = SGPBPopup.JSONParse(popupData);
this.popupData = popupData;
SGPBPopup.prototype.getPopupData = function()
SGPBPopup.prototype.setPopupConfig = function(config)
this.popupConfig = config;
SGPBPopup.prototype.getPopupConfig = function()
SGPBPopup.prototype.setUpPopupConfig = function()
var popupConfig = new PopupConfig();
this.setPopupConfig(popupConfig);
SGPBPopup.createPopupObjById = function(popupId)
var options = SGPBPopup.getPopupOptionsById(popupId);
var popupObj = new SGPBPopup();
popupObj.setPopupId(popupId);
popupObj.setPopupData(options);
SGPBPopup.getPopupOptionsById = function(popupId)
var popupDataDiv = jQuery('#sg-popup-content-wrapper-'+popupId);
if (!popupDataDiv.length) {
var options = popupDataDiv.attr('data-options');
return SGPBPopup.JSONParse(options);
SGPBPopup.prototype.getCompatibleZiIndex = function(popupZIndex)
/*2147483647 it's maximal z index value*/
if (popupZIndex > 2147483647) {
SGPBPopup.prototype.prepareOpen = function()
var popupId = this.getPopupId();
var popupData = this.getPopupData();
var popupZIndex = this.getCompatibleZiIndex(popupData['sgpb-popup-z-index']);
var popupType = this.popupData['sgpb-type'];
var popupConfig = this.getPopupConfig();
function decodeEntities(encodedString)
if (typeof encodedString == 'undefined') {
var suspiciousStrings = ['document.createElement', 'createElement', 'String.fromCharCode', 'fromCharCode'];
for (var i in suspiciousStrings) {
if (encodedString.indexOf(suspiciousStrings[i]) > 0) {
var textArea = document.createElement('textarea');
textArea.innerHTML = encodedString;
popupConfig.customShouldOpen = function()