Right to Carry

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

Barbershop Bandit Pays the Ultimate Price for Picking the Wrong Target

Reading Time: 2:21 min

Barbershops are traditional gathering places for men to swap fishing stories and commensurate about the good old days. They are generally not targets for violent criminals, but no establishment is…

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>