Right to Carry

Armed Elderly Man Rescues Woman from Alleged Domestic Abuser

Reading Time: 2:25 min

Few instincts are more human than the urge to protect a helpless victim. For one Illinois woman, it is fortunate that an older gentleman stepped up and intervened when she…

View post

Missouri AG Takes Firm Stand Against Local Gun Rights Violations

Reading Time: 3:51 min

Despite the growing number of states moving to guarantee the right to keep and bear arms for law-abiding citizens, local jurisdictions continue to flaunt the laws they are subject to.…

View post

Supreme Court May Decide Fate of Maryland’s ‘Assault Weapon’ Ban

Reading Time: 2:21 min

The legal challenge to Maryland’s contentious ban on so-called “assault weapons” is ready for the U.S. Supreme Court, and a reply brief was filed before the bench on Tuesday. The…

View post

Medical Organization Supports Use of Silencers to Protect Hearing

Reading Time: 2:23 min

A surprise endorsement for popularizing the use of silencers came from a major medical association last week. The American Academy of Otolaryngology-Head and Neck Surgery (AAO-HNS) boasts over 13,000 members.…

View post

It’s My Birthday – Here’s A FREE Gift To You!

Reading Time: 2:8 min

It’s My Birthday! Today, I’m celebrating another year of life, growth, and gratitude. I couldn’t let this day pass without acknowledging the incredible 2A community that has supported me and…

View post

Police: Uncle Wielding a Knife Shot by Nephew Defending Family

Reading Time: 2:26 min

Anyone who even casually follows the news knows that there is a mental health crisis in the U.S. Unexpected threats may arise at any time, even from family members, and…

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>