Right to Carry

FPC Files Lawsuit to End Prohibition on Interstate Handgun Purchases

Reading Time: 2:26 min

The unconstitutional and nonsensical prohibition on federally licensed firearm dealers selling handguns to out-of-state buyers faces a stiff new challenge from the Firearms Policy Coalition (FPC). The lawsuit is Elite…

View post

National Constitutional Carry Act Introduced in US House

Reading Time: 2:26 min

The hodgepodge of states recognizing Second Amendment rights that border those that do not could end if several lawmakers have their way.  The right to constitutional carry will be the…

View post

New Push Underway to Protect Veterans’ Gun Rights from VA Overreach

Reading Time: 2:30 min

The shameful Veteran’s Administration (VA) practice of eradicating Second Amendment rights away from those who served the country and need help with their finances may be about to end. The…

View post

Judge Allows Gun Rights Organizations Members to Apply for California Concealed Carry Licenses

Reading Time: 2:28 min

In a breakthrough ruling with far-reaching implications, a federal judge issued a preliminary injunction requiring California law enforcement officials to accept concealed carry weapon (CCW) permits from residents of other…

View post

Washington State Attempts to End Gun Ownership with Even More Frivolous Laws

Reading Time: 2:30 min

Don’t look now, but another state fell into the hands of gun rights opponents. The mad dash to enact even more draconian gun control has Washington state lawmakers in its…

View post

RIFLE Act of 2025 Introduced to Safeguard Second Amendment

Reading Time: 2:24 min

It is no secret that for the past few years, the Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) has trampled on Second Amendment rights.  Nowhere was this action more…

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>