Right to Carry

Memphis Lawmakers Flagrantly Defy State Preemption Law

Reading Time: 3:29 min

Temper tantrums are something to be expected of a rebellious three-year-old. It may be amusing when a child of such a tender age throws themselves on the floor and kicks…

View post

First Lawsuit Against New Massachusetts Attack on Gun Rights Filed

Reading Time: 1:54 min

It did not take long for the first legal challenge to Massachusetts’ controversial new gun control package to be filed.  Last week, Gov. Maura Healey (D) signed H. 4885 into…

View post

Good Guys Stop Threat from Knife-Wielding 80-Year-Old at Verizon Store

Reading Time: 1:56 min

A quick trip to the cellphone store should not be filled with drama, and no one expects to encounter a knife-waving customer threatening everyone within arm’s reach. However, that’s apparently…

View post

Unhappy Federal Judge Rules Against New Jersey’s AR-15 Ban

Reading Time: 3:36 min

There’s a lot to be said in 2024 for a federal judge who personally disagrees with the U.S. Supreme Court’s clear direction on gun rights — and still does the…

View post

Wisconsin Restores Rights of Fishing Enthusiasts to Keep and Bear Arms

Reading Time: 3:26 min

If no one knows a rule exists, is it still a rule? That’s the question raised in Wisconsin as gun rights advocates mounted a legal challenge against a 25-year-old regulation…

View post

CNN: More Americans Than Ever Own Guns for Self-Defense

Reading Time: 3:37 min

A new CNN report published on Thursday confirmed what Second Amendment advocates and those in the weapons industry know well — that more Americans than ever own firearms to protect…

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>