Right to Carry

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

Camper Uses Firearm to Defend Against Allegedly Drunk Attacker

Reading Time: 2:57 min

A peaceful camping trip near Casper, Wyoming turned dangerous when a camper used a firearm to defend against an allegedly drunk attacker, resulting in a late-night shooting that left two…

View post

Appeals Court Upholds Injunction Against California Gun Advertising Prohibition

Reading Time: 3:35 min

The Appeals Court upholds injunction against California gun advertising prohibition, delivering a strong message that the First and Second Amendments are not to be trampled in the name of vague…

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>