Right to Carry

Courageous Michigan Man Uses Firearm Against Two Alleged Intruders

Reading Time: 2:34 min

Three Michigan apartment dwellers found themselves in a horrifying situation last weekend that resulted in two residents and a suspect being wounded by gunfire. The good news is that the…

View post

NRA Blasts California Officials for Supporting Mexico’s Attack on US Gun Industry

Reading Time: 4:1 min

It should be unthinkable for a U.S. state to side with a foreign government in a lawsuit challenging the constitutional rights of the American people, but California and others are…

View post

Self-Defense: Armed Phoenix Homeowner Shoots Burglary Suspect

Reading Time: 2:32 min

The right to keep and bear arms was deemed essential from the earliest days of the Republic. Even then, it was not simply the need to put food on the…

View post

Maine Homeowner Uses Firearm to Defend Against Alleged Attacker with Front-End Loader

Reading Time: 2:30 min

The standard “dog bites man” self-defense stories involve law-abiding citizens fending off violent criminals who attempt to break into their homes, mug them, steal their cars, or other shenanigans. Then…

View post

Anti-Gunners Push Forward to Ban Semi-Automatic Weapons in Colorado

Reading Time: 2:25 min

Once a bastion for sporting enthusiasts and the Second Amendment, Colorado is steadily lurching toward becoming a state that systematically suppresses gun rights. As the 2025 legislative session got underway,…

View post

Virginia Homeowner Opens Fire on Violent Break-In Suspect

Reading Time: 2:24 min

A Virginia man early last Wednesday morning encountered what would be a dreadful situation for virtually anyone—a suspect attempting to break into his home around 2:30 a.m. Gunshots rudely awakened…

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>