Right to Carry

Missouri House Moves to Expand Second Amendment Rights

Reading Time: 2:20 min

Missouri gun enthusiasts may rest assured that a committed group of lawmakers safeguards their Second Amendment rights. And while not everything these legislators attempt passes judicial scrutiny, they never appear…

View post

Permit to Purchase Scheme Moves Closer to Reality in Washington State

Reading Time: 2:23 min

Anti-gunners know they cannot ban all firearms outright due to the pesky Second Amendment. In lieu of this draconian action, they are forced to settle for erecting every conceivable barrier—great…

View post

Controversial ATF Deputy Director Forced to Retire

Reading Time: 2:23 min

The Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) is in a state of overhaul and flux, and this is a welcome development for Second Amendment advocates.  Now comes word…

View post

Jury Acquits Michigan Man of Murder Charge in Self-Defense Case

Reading Time: 2:42 min

A Michigan man spent nine grueling months behind bars waiting for his trial on murder charges in the July 2024 death of another man. Eric M. Wills II argued that…

View post

Colorado Sheriffs Blast New Gun Control Law as Unconstitutional

Reading Time: 2:35 min

Law enforcement officials on the front lines of Colorado’s battle with violent crime are not happy with the state’s most recent gun control measures.  Gov. Jared Polis (D) signed the…

View post

Alleged Air Conditioner Thief Captured After Warning Shot from Intended Victim

Reading Time: 2:23 min

It must have been a hot morning in Florida as one man allegedly decided to make off with another person’s window air conditioner. That turned out to be a poor…

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>