Right to Carry

Michigan Homeowner Fires Crossbow to Fend Off Two Alleged Intruders

Reading Time: 1:52 min

While the standard definition of “arms” as described by the Second Amendment involves firearms, courts have made it clear that a wide variety of self-defense weapons are covered by the…

View post

Hero Arkansas Dad Free on Bond After Shooting Alleged Predator

Reading Time: 3:41 min

If the Second Amendment does not protect the legal right to defend one’s family, it has no meaning. The Founding Fathers unequivocally established the right to keep and bear arms…

View post

Justice Alito Embarrasses The ATF In Supreme Court Gun Case

Reading Time: 1:20 min

Let’s dig into Garland v. VanDerstok, a case that has the Supreme Court discussing ghost guns—using omelets as an analogy. Yes, really. Here’s the deal: the ATF decided to classify…

View post

Arkansas Man Faces Murder Charge in Shooting of Alleged Kidnapper

Reading Time: 3:22 min

While there are certainly facts that have not been released and more to the apparent story, the case of an Arkansas man now charged in the shooting death of an…

View post

Armed Senior Citizen Defends Resident Complex from Machete-Wielding Attacker

Reading Time: 1:52 min

A senior living complex is hardly the place one would imagine a violent attacker targeting, but there is apparently no refuge from criminals or the mentally disturbed in these times.…

View post

Michigan Funds ‘Tipline’ for Children to Report Improperly Stored Firearms

Reading Time: 1:54 min

Michigan Gov. Gretchen Whitmer (D), certainly no stranger to Second Amendment advocates, stirred the pot again last week. This time, it was her signature on a controversial package that included…

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>