Right to Carry

Mississippi Homeowner Scares Away Three Alleged Home Invaders with Gunshot

Reading Time: 1:57 min

There is something particularly disturbing about a home invasion, perhaps more than ordinary street crime. To have one or more strangers force their way into your home, usually at gunpoint,…

View post

Yet Another Demand for ‘Assault Weapon’ Ban After Assassination Attempt

Reading Time: 3:20 min

It has been said that a politician must never let a good crisis go to waste, and that is certainly the case in last weekend’s assassination attempt that rattled the…

View post

Good Guy With a Gun Nabs Escaped Convict

Reading Time: 2:9 min

A Georgia prison inmate was on the lam for three days last week after walking away from a work detail. The story has a happy ending as a good guy…

View post

New Orleans Officials Quietly Discard Illegal French Quarter ‘Gun-Free’ Zone

Reading Time: 1:53 min

The Second Amendment Foundation reported a major victory for gun rights in New Orleans and a setback for those who would use trickery to violate the Second Amendment and state…

View post

Good Guy with Gun Steps Up When ‘Red Flag’ Law Fails

Reading Time: 2:20 min

Proponents of controversial “red flag” laws are quick to make wild claims about the effectiveness of these measures, believing that they protect the innocent from abusers and criminals. The reality…

View post

Minnesota Appeals Court Strikes Down Carry Ban for Young Adults

Reading Time: 3:32 min

Minnesota law bans young adults 18-20 from applying for gun carry permits, but that is about to change. On Tuesday, the Eighth Circuit Court of Appeals unanimously ruled that the…

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>