Right to Carry

GOA Blasts Proposed ATF/DEA Merger as a ‘Disaster’

Reading Time: 3:27 min

The plan to merge the Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) with the Drug Enforcement Administration (DEA) has been discussed for weeks, and opposition to the idea is…

View post

Ninth Circuit to Hear Challenge to California’s Contentious Open Carry Ban

Reading Time: 3:41 min

California gun enthusiasts will watch with intense interest as the Ninth Circuit Court of Appeals considers a challenge to the state’s prohibition on open carry by virtually all citizens. The…

View post

Missouri Man Brandishing Brass Knuckles Stopped by Armed Homeowner

Reading Time: 3:24 min

A Missouri man brandishing brass knuckles was stopped by an armed homeowner during a terrifying late-night break-in attempt. The suspect, 31-year-old John Fisher of East Prairie, reportedly broke a window…

View post

Fraternity Picnic Attendees Use Firearms to Halt Deadly Attack

Reading Time: 3:20 min

Fraternity picnic attendees used firearms to halt a deadly attack last Saturday at Coan Park in Atlanta, highlighting the crucial role of lawful gun ownership in moments of crisis. The…

View post

Good Guy with a Gun Defends Chicago Woman Being Pistol-Whipped

Reading Time: 3:8 min

Good Guy with a Gun Defends Chicago Woman Being Pistol-Whipped—that’s the headline making waves after a terrifying moment on a quiet Tuesday morning in Chicago turned into a powerful example…

View post

Leading NYC Mayoral Candidate Calls for Total Gun Ban

Reading Time: 3:48 min

A leading NYC mayoral candidate calls for a total gun ban, confirming the fears of gun rights advocates and constitutionalists across the city and the nation. Zohran Mamdani, the Democratic…

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>