Right to Carry

Gun Rights Groups Rush to Defense of Citizen Victimized by Massachusetts Gun Control

Reading Time: 1:58 min

Massachusetts v. Donnell is before the state’s Supreme Judicial Court, and the constitutional rights of a New Hampshire man and millions of Americans are at stake. Several Second Amendment advocacy…

View post

Young West Virginia Woman Uses Firearm to End Alleged Violent Attack by Boyfriend

Reading Time: 1:52 min

There are far too many horrifying instances of domestic violence in today’s society, and so often, it is the female who is victimized and has very few options for self-defense.…

View post

Ninth Circuit Puts Brakes on California’s Ludicrous Attempt at Gun Rationing

Reading Time: 3:26 min

The Second Amendment is brilliant in its simplicity. Like the Constitution and the rest of the Bill of Rights, it gets straight to the point in clear and concise language.…

View post

NSSF Funds Legal Challenge to Massachusetts’ Oppressive Gun Control

Reading Time: 2:1 min

Even the worthiest legal actions do not pay for themselves, and fighting government overreaches unfortunately requires deep pockets.  As more and more misguided state governments attempt to thumb their noses…

View post

Texas Political Leaders Fight Gun Ban at State Fair

Reading Time: 3:31 min

When considering states where Second Amendment rights are honored and cherished, most would put Texas at or near the top of the list. After all, the Lone Star State is…

View post

85-Year-Old Wyoming Man Uses Handgun to Fight Off ‘Irrational’ Attacker

Reading Time: 1:56 min

Much is made of Baby Boomers and their influence on U.S. society, but there’s also a sizable population born before the end of World War II — the Silent Generation.…

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>