Right to Carry

Controversial Illinois FOID Requirement for Guns in the Home Struck Down

Reading Time: 3:52 min

A striking blow for gun rights rang out Monday when Judge T. Scott Webb ruled that Illinois’ mandate that state residents possess a Firearm Owners Identification (FOID) card—even for self-defense…

View post

Report: ATF Continues to Enforce Pistol Brace Ban Despite the Rule Being Vacated

Reading Time: 2:21 min

The Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) is under extreme fire for what gun rights advocates charge are years of undermining the Second Amendment. Some prominent lawmakers even…

View post

US Taxpayer Dollars Funded Anti-Second Amendment Groups

Reading Time: 2:25 min

It is difficult to conceive of the U.S. government funding groups actively seeking to undermine the Constitution, but recent revelations exposed this troubling pattern. The treasure trove of Washington misdeeds…

View post

Missouri’s ‘Second Amendment Preservation Act’ Revived After Being Struck Down

Reading Time: 2:27 min

Gun rights advocates in Missouri are geared up for round two of the state’s valiant effort to codify gun rights protections against ATF overreaches. State Sen. Rick Brattin (R) introduced…

View post

Anti-Second Amendment Virginia Lawmakers Advance Multiple Gun Control Proposals

Reading Time: 2:31 min

Virginia’s status as a state that is evenly divided politically did nothing to slow the momentum of over 20 anti-gun proposals in the General Assembly last week. Lawmakers put forth…

View post

NSSF Acts Against New Jersey’s Attempt to Pursue Frivolous Lawsuit Against Weapons Industry

Reading Time: 3:53 min

Very few laws get under the skin of anti-gunners more than the Protection of Lawful Commerce in Arms Act (PLCAA). This two-decade-old legislation was enacted to shield the weapons industry…

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>