Current File : /home/digitaw/www/wp-content/updraft/plugins-old/ad-inserter/includes/js/ai-sidebar.q.js
jQuery(document).ready(function($) {

  const AI_STICKY_WIDGET_MODE_CSS       = 0;
  const AI_STICKY_WIDGET_MODE_JS        = 1;
  const AI_STICKY_WIDGET_MODE_CSS_PUSH  = 2;

  var ai_set_sidebars = function ($) {
    var sticky_widget_mode   = AI_FUNC_GET_STICKY_WIDGET_MODE;
    var sticky_widget_margin = AI_FUNC_GET_STICKY_WIDGET_MARGIN;
    var document_width = $(document).width();

    var ai_debug = typeof ai_debugging !== 'undefined'; // 1
//    var ai_debug = false;

    $(".ai-sticky-widget").each (function () {
      var widget = $(this);
      if (sticky_widget_mode == AI_STICKY_WIDGET_MODE_CSS_PUSH) {
        widget.find ('.' + ai_block_class_def).css ("position", "sticky").css ("position", "-webkit-sticky").css ("top", sticky_widget_margin);
        widget.find ('.ai-sticky-space').css ("height", window.innerHeight + 'px');
      } else {
          var widget_width = widget.width();

          if (ai_debug) console.log ('');
          if (ai_debug) console.log ("WIDGET:", widget.width (), widget.prop ("tagName"), widget.attr ("id"));

          var already_sticky_js = false;
          var sidebar = widget.parent ();
          while (sidebar.prop ("tagName") != "BODY") {

            if (sidebar.hasClass ('theiaStickySidebar')) {
              already_sticky_js = true;
              break;
            }

            if (ai_debug) console.log ("SIDEBAR:", sidebar.width (), sidebar.prop ("tagName"), sidebar.attr ("id"));

            var parent_element = sidebar.parent ();
            var parent_element_width = parent_element.width();
            if (parent_element_width > widget_width * 1.2 || parent_element_width > document_width / 2) break;
            sidebar = parent_element;
          }
          if (already_sticky_js) {
            if (ai_debug) console.log ("JS STICKY SIDEBAR ALREADY SET");
            return;
          }

          var new_sidebar_top = sidebar.offset ().top - widget.offset ().top + sticky_widget_margin;

          if (ai_debug) console.log ("NEW SIDEBAR TOP:", new_sidebar_top);

          if (sticky_widget_mode == AI_STICKY_WIDGET_MODE_CSS) {

            // CSS
            if (sidebar.css ("position") != "sticky" || isNaN (parseInt (sidebar.css ("top"))) || sidebar.css ("top") < new_sidebar_top) {
              sidebar.css ("position", "sticky").css ("position", "-webkit-sticky").css ("top", new_sidebar_top);

              if (ai_debug) console.log ("CSS STICKY SIDEBAR, TOP:", new_sidebar_top);
            }
            else if (ai_debug) console.log ("CSS STICKY SIDEBAR ALREADY SET");
          } else
          if (sticky_widget_mode == AI_STICKY_WIDGET_MODE_JS) {
              // Javascript
              sidebar.theiaStickySidebar({
                additionalMarginTop: new_sidebar_top,
                sidebarBehavior: 'stick-to-top',
              });

              if (ai_debug) console.log ("JS STICKY SIDEBAR, TOP:", new_sidebar_top);
            }
        }
    });

  };

  if (typeof ai_sticky_sidebar_delay == 'undefined') {
    ai_sticky_sidebar_delay = 200;
  }

  setTimeout (function() {
    ai_set_sidebars ($);
  }, ai_sticky_sidebar_delay);
});