Right to Carry

Hochul Calls for National Semiautomatic Weapon Ban After NYC Shooting

Reading Time: 1:53 min

Anti-gunners live by the mantra that they should never allow a tragedy to go to waste. After a clearly disturbed individual opened fire at a Manhattan high-rise Monday evening, one…

View post

Supreme Court to Discuss Marijuana Users’ Gun Rights in September

Reading Time: 1:51 min

The U.S. Supreme Court has a unique opportunity later this year to have a defining moment on the issue of Second Amendment rights and marijuana users. Laws for centuries prohibited…

View post

Armed Shopper/Marine Veteran Helps Subdue Knife-Wielding Walmart Attacker

Reading Time: 3:44 min

Admirers are heaping praise on an armed Marine veteran who stepped up Saturday night in Michigan and stopped a crazed attacker who was randomly stabbing Walmart customers. Derrick Perry is…

View post

New York, California Reps Introduce Modern Firearm Safety Act

Reading Time: 1:53 min

Anti-gunners love to cloak their schemes in such terminology as “common sense” and “public safety.” The truth, however, is that their agenda is largely about government control and stripping the…

View post

NJ Court Arbitrarily Creates Registry of Every ‘Gun-Related Product’ Sold

Reading Time: 2:3 min

New Jersey residents have the misfortune of living in one of the states that is most hostile to the Second Amendment in the Union. Now comes an injunction from a…

View post

Missouri Sheriffs Form Alliance to Protect Second Amendment

Reading Time: 1:52 min

When law enforcement officials discuss what really works to fight violent crime and what is merely window dressing, we should listen. Dozens of top cops are standing up to radical…

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>