Right to Carry

Acting ATF Director Denies CNN Report on Plans to Remove 1,000 Agents

Reading Time: 2:26 min

Acting Director Kash Patel vehemently denied a news report about major changes at the Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF). CNN reported Saturday that plans are afoot to…

View post

Store Clerk Uses Gun to Fend off Alleged Attack by Customer

Reading Time: 2:22 min

Being a store clerk is a dangerous profession, so it is quite understandable that many people who are in this line of work choose to be ready to defend themselves…

View post

Gun Rights Group Blasts Push to Remove Patel as Acting ATF Head

Reading Time: 2:22 min

Changes are certainly underway at the embattled Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) after four years of controversy and overreach. While the sometimes rogue agency is getting a…

View post

Armed Good Guy Stops Vicious Knife Attack in McDonald’s Parking Lot

Reading Time: 2:23 min

Fast food parking lots at late-night hours are not the safest places to be, and it was fortunate for a New Hampshire man Tuesday night that a Good Samaritan was…

View post

Fifth Circuit Ruling Leaves Future for Firearm Suppressors Up in the Air

Reading Time: 3:51 min

According to the Fifth Circuit in United States v. Peterson, suppressors are not firearms and are thus not protected by the Second Amendment. That controversial ruling came down last week…

View post

NRA Files Brief Supporting Challenge to Illinois’ Ban on Concealed Carry on Public Transit

Reading Time: 2:25 min

Last week, the National Rifle Association (NRA) filed an amicus brief supporting the plaintiffs in the case against the Illinois prohibition on concealed carry on public transportation. Schoenthal v. Raoul…

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>