Right to Carry

Wyoming Poised to Expand Concealed Carry to Schools, Government Meetings

Reading Time: 2:14 min

Wyoming’s push to greatly enhance Second Amendment rights enjoyed by law-abiding citizens received a tremendous boost last week. The bill to repeal gun-free zones, including schools and government functions, cleared…

View post

Armed Indiana Man Shoots Alleged Burglar — Then Confronts Second Burglar

Reading Time: 2:24 min

An Indiana man had a dramatic night Tuesday when he encountered not one but two separate burglary suspects. As he was armed and felt threatened, the first encounter led to…

View post

Delaware House Approves Bill to Add Roadblocks to Handgun Ownership

Reading Time: 2:13 min

A week almost never passes without anti-gun forces in a U.S. state unveiling a new proposal to circumvent the Second Amendment and further restrict the right to keep and bear…

View post

Concealed Carry Permit Holder Stops Alleged Attempted Robbery in Chicago

Reading Time: 2:18 min

Using a Chicago ATM in the dark hours of the early morning calls for situational awareness, and a 60-year-old resident certainly became aware of the inherent danger on Friday. These…

View post

It’s Official: South Carolina Now the 29th Constitutional Carry State

Reading Time: 1:32 min

South Carolina joined the constitutional carry club on Thursday when Gov. Henry McMaster (R) put his signature on the long-awaited landmark legislation. Backed by the National Rifle Association (NRA), the…

View post

Authorities Identify Armed Good Samaritan Who Intervened After Officer’s Fatal Attack

Reading Time: 3:40 min

A shocking tragedy last month in Las Cruces, New Mexico, may have resulted in even more pain if it were not for the courageous actions of an armed citizen. Authorities…

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>