Right to Carry

The Glock That Time Forgot (GLOCK 36)

Reading Time: 2:49 min

The Glock That Time Forgot — the Glock 36 — doesn’t get the spotlight like the Glock 19, 17, or the Gucci’d-out Glock 34s. Those models are the headliners at…

View post

Should Marijuana Smokers Own Guns?

Reading Time: 4:22 min

Should Marijuana Smokers Own Guns? That’s the heated question fueling conversations across America, and for good reason. For decades, cannabis users—whether recreational or medical—were forced to choose between their medicine…

View post

NSSF Recognizes Millions of New Shooters During National Shooting Sports Month

Reading Time: 1:54 min

The National Shooting Sports Foundation (NSSF) recognized National Shooting Sports Month as both its founder and chief proponent. August is set aside to honor this fine pastime and ensure that…

View post

FBI Has New Co-Deputy Director, and He’s a Breath of Fresh Air

Reading Time: 1:51 min

Second Amendment enthusiasts grew accustomed in recent years to knowing that federal agencies with oversight of their favorite pastime were aggressively antagonistic to the very same rights they were charged…

View post

Federal Judge Rules NY Restrictions on Lawful Carry Unconstitutional

Reading Time: 1:53 min

Good news from a somewhat unlikely source came this week from a U.S. District Judge in New York concerning gun rights. Mae A. D’Agostino ruled that the Empire State’s notorious…

View post

Radical Anti-Second Amendment Forces Want to Teach Gun Safety

Reading Time: 1:53 min

Irony is alive and well in 2025, and a great example of this universal humor came this week from a notorious gun control organization. Everytown for Gun Safety announced its…

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>