Defensive Gun Use

Alleged California Burglar Killed by Armed Homeowner

Reading Time: 1:38 min

Breaking into a stranger’s home is a dangerous business, one that is better left undone. An alleged burglar in California learned that lesson in the hardest way and paid the…

View post

How These Defensive Gun Uses Could Land You In Prison

Reading Time: 1:1 min

There is a thin line when using your gun in self-defense between justified and unjustified homicide. I went to USCCA’s Proving Grounds, where they put me through realistic scenario-based training…

View post

Alabama Homeowner Shoots Alleged Intruder In Head During 911 Call

Reading Time: 1:12 min

The person in this story was literally on the phone with dispatchers when the suspect broke an exterior window and began to come into the house, and the homeowner used…

View post

Self Defense Or Murder? Homeowner Shoots Man In Garage

Reading Time: 3:3 min

I have a zero-tolerance policy for anyone invading my home or anywhere around it. So the thought of someone breaking into my home and making me feel unsafe in my…

View post

Wisconsin Supreme Court Is Set To Decide If Trafficking Defense Applies To Homicide

Reading Time: 2:43 min

The Wisconsin Supreme Court will hear arguments in a case where a former forced sex worker killed her captor in what the defense says was self defense. In June of…

View post

Charges Dropped in East Chicago Homicide Case on Grounds of Self Defense

Reading Time: 1:17 min

A Gary, Indiana man was finally released after 14 months in jail when prosecutors decided to drop the murder charge against him. Tyree K. Williams, 24 of Gary, was released…

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>