Right to Carry

DOJ to Investigate Los Angeles Sheriff’s Department Over Possible Second Amendment Abuses

Reading Time: 2:30 min

In previous years, the federal government could be counted on to bring the hammer down on Second Amendment rights. Critics charged that agencies such as the Bureau of Alcohol, Tobacco,…

View post

NSSF: March Gun Sales Lowest in Five Years

Reading Time: 2:20 min

U.S. gun sales dove again in March to levels unseen since before the 2020 pandemic, but there is also good news from the latest industry statistics. The National Shooting Sports…

View post

Idaho’s ‘Stand Your Ground’ Law Protects Man Who Killed Attacker in Self-Defense

Reading Time: 2:25 min

Using a firearm to defend against violent criminals is a regular occurrence in 2025. However, even in a clear case of self-defense, the possibility exists that an overzealous prosecutor or…

View post

Firearm Industry Trade Association Files Suit Against Maryland’s Anti-PLCAA Law

Reading Time: 2:33 min

Another day, another state moves to circumvent federal law shielding the gun industry from being hammered by frivolous lawsuits seeking to drive it into the ground. This time it is…

View post

Armed Louisiana Woman Turns Tables on Alleged Attacker

Reading Time: 2:27 min

An alarming attack on a woman in her home unfolded Monday in Louisiana, and despite efforts to deescalate the situation, it was a loaded firearm that may have saved her…

View post

Pennsylvania Supreme Court Cites PLCAA in Dismissing Lawsuit Against Gun Manufacturer

Reading Time: 3:53 min

Common sense and the rule of law carried the day with the Pennsylvania Supreme Court last week. Justices tossed out a lawsuit seeking to blame a gun maker for an…

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>