Right to Carry

Alleged Jeep Thief Shot by Washington Gun Owner

Reading Time: 2:24 min

Even in states where gun rights are severely limited, good people choose to protect themselves, their loved ones, and their property with firearms. Washington state gun enthusiasts have endured many…

View post

Americans Continue to Embrace Second Amendment Rights in Record Numbers

Reading Time: 3:54 min

The naysayers may be loud and enjoy a virtual monopoly on the mainstream media, but ordinary Americans simply don’t believe their messaging. Data released by the Crime Prevention Research Center…

View post

Chicago Concealed Carry Holder Shoots Teen After Being Stabbed

Reading Time: 2:20 min

A violent South Chicago altercation late Saturday night resulted in a 17-year-old stabbing suspect being shot by a lawful gun owner. Investigators reported that the confrontation unfolded at around 11:30…

View post

Department of Justice Introduces Two New Gun Control Regulations

Reading Time: 2:25 min

The Department of Justice (DOJ) will be under new leadership next month, but that’s hardly stopping outgoing officials from piling on new gun control regulations. The DOJ recently introduced two…

View post

Carjacker Shot By Armed Citizen In A Shocking Twist Of Self Defense

Reading Time: 3:39 min

A quiet evening turned dangerous when a carjacking attempt outside the Crafty Crab restaurant in St. Petersburg, Florida, took a dramatic turn. The suspect, 18-year-old Simon White, was stopped in…

View post

Outgoing Michigan Lawmakers in Mad Scramble to Nullify Second Amendment

Reading Time: 3:57 min

One thing that may be counted on as surely as the sunrise is that an outgoing political party will do everything in its power to ram through last-minute laws and…

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>