Right to Carry

DOJ Announces Proposal to Resume Gun Rights Restoration After Three-Decade Freeze

Reading Time: 3:28 min

The Department of Justice (DOJ) has taken a bold step toward upholding the Second Amendment with its recent announcement to propose the restoration of gun rights for certain individuals previously…

View post

NSSF Joins Forces with ATF and DOJ to Halt Illegal Firearm Purchases

Reading Time: 2:4 min

No one is more dedicated to promoting firearm safety than the gun industry, and the National Shooting Sports Foundation (NSSF) puts this mission into action. The industry trade association partnered…

View post

Minnesota Homeowner Shoots Man Who Allegedly Kicked in Front Door

Reading Time: 3:21 min

In a stark reminder of why many Americans choose to arm themselves, a violent break-in ended in tragedy after a Minnesota homeowner shot a man who allegedly kicked in the…

View post

FPC Declares Victory Over ATF’s Hated Pistol Brace Rule

Reading Time: 1:54 min

The Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) unilaterally transformed scores of upstanding Americans into lawbreakers with its hated “pistol brace” rule. According to the agency, a simple attachment…

View post

Canadian Gun Owners Soundly Reject Confiscation Scheme

Reading Time: 2:56 min

Canadian Gun Owners Soundly Reject Confiscation Scheme as the government’s attempt to implement a nationwide buyback program for “assault-style” firearms has been met with overwhelming resistance and skepticism. Despite being…

View post

Report: Gun Control Advocates Manipulate Data on Adolescent Shootings

Reading Time: 3:30 min

A recent report claims gun control advocates manipulate data on adolescent shootings to push an anti-Second Amendment agenda—raising fresh concerns about how data is weaponized in public debates. While statistics…

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>