Right to Carry

Alleged Armed Robber in Chicago Killed by Own Firearm

Reading Time: 2:20 min

Chicago police believe an attempted robbery went sideways in the city’s West Garfield neighborhood Saturday, and the suspect ended up being shot by his own weapon. Authorities responded to an…

View post

Child Custody Exchange Leads to Fatal Self-Defense Shooting

Reading Time: 2:24 min

Custodial disputes involving minor children can be tricky, and a recent confrontation in Colorado which should have been simple instead exploded into a case of armed self-defense. And the results…

View post

Texas Lawmaker Proposes Ban on ‘Red Flag’ Orders

Reading Time: 2:29 min

Anti-gunners increasingly use so-called “red flag” orders to strip Second Amendment rights away from law-abiding citizens with merely an unverified accusation. Understand that these protection orders are undoubtedly necessary in…

View post

Ohio Apartment Resident Shoots Man Who Allegedly Broke in Through His Balcony

Reading Time: 2:23 min

The Second Amendment protects all law-abiding U.S. citizens from facing a violent threat unprepared, but it is their personal choice whether they exercise this freedom. Individuals are not forced to…

View post

Disappointing Setback in Fight Against Illinois Gun Control Law

Reading Time: 2:25 min

The battle to protect Second Amendment rights in Illinois is far from over, but supporters suffered a setback Thursday before the Seventh Circuit Court of Appeals. The body stayed a…

View post

Memphis Man Grabs Gun from Alleged Attackers and Shoots Both

Reading Time: 2:29 min

To be clear, this is far from the standard self-defense encounter we are accustomed to. And some details are a bit sketchy. Still, a Tennessee man who was apparently an…

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>