Right to Carry

Appeals Court Rules Domestic Abusers Forfeit Second Amendment Rights

Reading Time: 3:58 min

The New Orleans-based 5th Circuit Court of Appeals ended 2024 with a gun control ruling on the year’s final day. The federal appeals court determined that the law prohibiting gun…

View post

South Carolina Store Clerk Will Not Face Charges in Defensive Shooting

Reading Time: 2:23 min

Good news has arrived for a South Carolina convenience store clerk who faced a terrifying situation three days after Christmas. The man had a pistol put up to his head…

View post

December Shooting at Indiana Amazon Warehouse Believed to be Self-Defense

Reading Time: 2:31 min

Anyone involved in a self-defense shooting must be concerned about legal blowback, especially in some parts of the country. An Indiana man found himself allegedly threatened by a coworker at…

View post

California’s Nanny State Now Forces Gun Retailers to Warn Customers of ‘Dangers’

Reading Time: 2:22 min

California lawmakers harbor a profound hatred for the Second Amendment, and they lead the nation in the unimpressive category of suppressing gun rights. The latest assault on freedom may seem…

View post

Second Amendment Rights for Marijuana Users Scores Major Courthouse Victory

Reading Time: 3:54 min

The long-simmering squabble between the Second Amendment rights of marijuana users and the federal government took another turn Monday, and again, it favors individual freedom. U.S. District Judge David Briones…

View post

Report: ATF Director to Step Down Ahead of New Administration

Reading Time: 3:50 min

The Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) came under tremendous fire from Second Amendment advocates for the past four years. Director Steve Dettelbach’s agency was accused of targeting…

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>