(function (d)()

in src/assets/js/inview.js [1:89]


(function (d) {
  if (typeof window !== 'undefined' && 'ontouchstart' in window) {
    console.debug('Inview disabled for touch device.');
    return;
  }

  var p = {},
    e,
    a,
    h = document,
    i = window,
    f = h.documentElement,
    j = d.expando;
  d.event.special.inview = {
    add: function (a) {
      p[a.guid + '-' + this[j]] = { data: a, $element: d(this) };
    },
    remove: function (a) {
      try {
        delete p[a.guid + '-' + this[j]];
      } catch (d) {}
    },
  };
  d(i).bind('scroll resize', function () {
    e = a = null;
  });
  !f.addEventListener &&
    f.attachEvent &&
    f.attachEvent('onfocusin', function () {
      a = null;
    });
  setInterval(function () {
    var k = d(),
      j,
      n = 0;
    d.each(p, function (a, b) {
      var c = b.data.selector,
        d = b.$element;
      k = k.add(c ? d.find(c) : d);
    });
    if ((j = k.length)) {
      var b;
      if (!(b = e)) {
        var g = { height: i.innerHeight, width: i.innerWidth };
        if (!g.height && ((b = h.compatMode) || !d.support.boxModel))
          (b = 'CSS1Compat' === b ? f : h.body),
            (g = { height: b.clientHeight, width: b.clientWidth });
        b = g;
      }
      e = b;
      for (
        a = a || {
          top: i.pageYOffset || f.scrollTop || h.body.scrollTop,
          left: i.pageXOffset || f.scrollLeft || h.body.scrollLeft,
        };
        n < j;
        n++
      )
        if (d.contains(f, k[n])) {
          b = d(k[n]);
          var l = b.height(),
            m = b.width(),
            c = b.offset(),
            g = b.data('inview');
          if (!a || !e) break;
          c.top + l > a.top &&
          c.top < a.top + e.height &&
          c.left + m > a.left &&
          c.left < a.left + e.width
            ? ((m =
                a.left > c.left
                  ? 'right'
                  : a.left + e.width < c.left + m
                    ? 'left'
                    : 'both'),
              (l =
                a.top > c.top
                  ? 'bottom'
                  : a.top + e.height < c.top + l
                    ? 'top'
                    : 'both'),
              (c = m + '-' + l),
              (!g || g !== c) &&
                b.data('inview', c).trigger('inview', [!0, m, l]))
            : g && b.data('inview', !1).trigger('inview', [!1]);
        }
    }
  }, 250);
})(jQuery);