Right to Carry

Federal Ban on Illegal Immigrants Owning Firearms Ruled Unconstitutional

Reading Time: 2:17 min

The longstanding rule that those in the United States illegally may not possess weapons was struck down by a federal court last week. U.S. District Judge Sharon Johnson Coleman ruled…

View post

Armed Homeowner Chases Fleeing Suspect Straight to Law Enforcement

Reading Time: 2:12 min

North Carolina has been the setting for several recent adventures involving a good guy with a gun. These are everywhere, though many in the mainstream media choose not to publicize…

View post

Charlotte Boy Uses Firearm to Defend Pregnant Mother from Hotel Intruder

Reading Time: 2:16 min

An 11-year-old boy in Charlotte found himself in a situation last Wednesday that no child should encounter. But he handled it with a combination of bravery and skill to protect…

View post

Elderly Idaho Woman Takes Up Arms Against Alleged Home Invader

Reading Time: 2:9 min

This installment of good guys with guns features an elderly Idaho woman who found herself in the terrifying situation of facing a home invasion in the middle of the day.…

View post

Federal Appeals Court Rules Against Rhode Island Ammo Magazine Ban Challenge

Reading Time: 3:43 min

A federal appeals court ruled last week that Rhode Island’s ban on ammunition magazines that hold more than 10 rounds does not violate the Second Amendment. The unanimous Friday ruling…

View post

Congress Emphatically Acts to Protect Veterans’ Gun Rights

Reading Time: 2:11 min

A longstanding and egregious Department of Veterans Affairs (VA) policy targeting the gun rights of those who served the highest calling was stripped last week from a new federal spending…

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>