Right to Carry

Workplace Shooting in Louisiana Ruled Justifiable Self-Defense

Reading Time: 3:26 min

In a violent escalation of a workplace dispute, a workplace shooting in Louisiana was ruled justifiable self-defense after one employee shot a co-worker who allegedly assaulted him during an altercation.…

View post

Professor Yanked from Classroom After Incendiary Anti-2A Diatribe

Reading Time: 2:57 min

Professor Yanked from Classroom After Incendiary Anti-2A Diatribe is making headlines as one Maine educator faces backlash for berating a student over their support of the Second Amendment. Far too…

View post

No Murder Charges Against Illinois Man Involved in Auto Accident Fracas

Reading Time: 3:24 min

In a striking example of how self-defense situations can take unexpected turns, no murder charges were filed against an Illinois man involved in an auto accident fracas that ended in…

View post

Fraudulent Facebook Marketplace Car Sale Meeting Ends in Gunfire

Reading Time: 3:26 min

A seemingly routine online transaction took a dangerous turn last month when a fraudulent Facebook Marketplace car sale meeting ended in gunfire in Memphis, Tennessee. The incident serves as a…

View post

Expert Blames ‘Gun-Free’ Zones for Surge in Auto Burglaries

Reading Time: 3:13 min

Amid the uptick in U.S. crime in recent years are new numbers showing an alarming explosion in auto burglaries during which guns are stolen. The Council on Criminal Justice reported…

View post

California Husband Defends Wife from Vengeful Ex-Boyfriend

Reading Time: 3:15 min

The story of a California husband forced to defend his wife from a vengeful ex-boyfriend underscores just how important the right to self-defense remains in today’s world. While we all…

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>