HOME DEFENSE

NRA New’s Newest Commentator: Austin Weiss aka @TheGarageInc

Reading Time: 0:24 min

Here’s why you should hate and love Austin Weiss. This is how a basic text message conversation looks, between Austin and I, after I tell him I want him to…

View post

Sen Feinstein crying about “Assault Rifles”, again

Reading Time: 0:27 min

It humors me how she tries to bolster her argument by pointing out that the M&P on on the M&P-15 means Military and Police. Should we want substandard “civilian” versions?…

View post

The Hypothetical Land of Anti-Gunners

Reading Time: 0:11 min

I understand that there is a place for hypotheticals. Hell, we pro gunners use hypotheticals all the time, but there is a big difference between realistic hypotheticals and absurd hypotheticals…

View post

Russell Simmons gets schooled by gun enthusiast Colion Noir; Turns To Yoga For Comfort

Reading Time: 1:12 min

A lot of people are not too familiar with the twitter sparring match I had with Russell Simmons back in March 2013. I  did not realize that Twitchy did a…

View post

GunLand Trailer (A documentary about Gun Violence in the Inner City)

Reading Time: 0:60 min

Gunland is a kickstarter documentary about the Gun Violence in the inner city. Seemingly, a good number black gun control proponent love to remind me of my blackness, as if…

View post

Man Accidentally Shoots His Wife After Scuffle With Her Ex Boyfriend

Reading Time: 0:21 min

A guy gets punched in the face, so he draws his gun from his garage  sale holster, Leonidas front kicks the other guys  wife while she’s recording, same guy drops…

View post
<script>
  /*Source: https://github.com/Krzysztof-Antosik/Two-direction-Sticky-Sidebar*/
  
  // Verificar el ancho de pantalla al cargar y redimensionar
  function checkScreenWidth() {
    if (window.innerWidth <= 767) {
      // Si la pantalla es menor o igual a 676px, no ejecutar el código
      return;
    }

    const stickyElement = document.querySelector('.fb-sidebar__aside');
    const startPosition = stickyElement.getBoundingClientRect().top;

    let endScroll = window.innerHeight - stickyElement.offsetHeight - 500;
    let currPos = window.scrollY;
    let screenHeight = window.innerHeight;
    let stickyElementHeight = stickyElement.offsetHeight;
    let topGap = 40;
    let bottomGap = 40;

    setTimeout(() => {
      if (stickyElement.hasAttribute('data-top-gap')) {
        const dataTopGap = stickyElement.getAttribute('data-top-gap');
        topGap = dataTopGap === 'auto' ? startPosition : parseInt(dataTopGap);
      }

      if (stickyElement.hasAttribute('data-bottom-gap')) {
        bottomGap = parseInt(stickyElement.getAttribute('data-bottom-gap'));
      }
    }, 100);

    stickyElement.style.position = 'sticky';
    stickyElement.style.top = `${topGap}px`;
    stickyElement.style.height = 'fit-content';

    function positionStickySidebar() {
      endScroll = window.innerHeight - stickyElement.offsetHeight - bottomGap;
      const stickyElementTop = parseInt(stickyElement.style.top.replace('px', ''));

      if (stickyElementHeight + topGap + bottomGap > screenHeight) {
        if (window.scrollY < currPos) {
          if (stickyElementTop < topGap) {
            stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;
          } else if (stickyElementTop >= topGap && stickyElementTop !== topGap) {
            stickyElement.style.top = `${topGap}px`;
          }
        } else {
          if (stickyElementTop > endScroll) {
            stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;
          } else if (stickyElementTop < endScroll && stickyElementTop !== endScroll) {
            stickyElement.style.top = `${endScroll}px`;
          }
        }
      } else {
        stickyElement.style.top = `${topGap}px`;
      }
      currPos = window.scrollY;
    }

    function stickyElementToMe() {
      stickyElement.style.top = `${topGap}px`;
    }

    function updateSticky() {
      screenHeight = window.innerHeight;
      stickyElementHeight = stickyElement.offsetHeight;
      positionStickySidebar();
    }

    setTimeout(() => {
      window.addEventListener('resize', () => {
        currPos = window.scrollY;
        updateSticky();
      });

      document.addEventListener('scroll', updateSticky, {
        capture: true,
        passive: true
      });
    }, 1000);
  }

  // Verificar el ancho de pantalla al cargar y redimensionar
  window.addEventListener('load', checkScreenWidth);
  window.addEventListener('resize', checkScreenWidth);
</script>