Right to Carry

DOJ Declines to Appeal Ruling Against Federal Young Adult Handgun Ban

Reading Time: 3:39 min

In a major development for Second Amendment supporters, the Department of Justice (DOJ) declined to appeal a pivotal ruling in DOJ Declines to Appeal Ruling Against Federal Young Adult Handgun…

View post

Missouri AG Warns Big Tech Over Censoring Second Amendment-Related Content

Reading Time: 3:33 min

Missouri AG Warns Big Tech Over Censoring Second Amendment-Related Content is making headlines across the nation as Missouri Attorney General Andrew Bailey takes a strong stand in defense of constitutional…

View post

Armed Kentucky Homeowner Defends Residence from Alleged Intruder

Reading Time: 3:18 min

Armed Kentucky Homeowner Defends Residence from Alleged Intruder became a shocking but powerful example of self-defense in action late Monday night in Elkhorn City. According to Kentucky State Police (KSP),…

View post

Early Morning Alleged Intruder Shot by Florida Homeowner

Reading Time: 2:53 min

Early Morning Alleged Intruder Shot by Florida Homeowner became a chilling reality for one Jefferson County family when an attempted home invasion unfolded just before dawn on Monday morning. For…

View post

NFA Tax Eliminated but Battle Over Restrictions Carries On

Reading Time: 3:42 min

The NFA tax eliminated in the recently passed One Big Beautiful Bill may look like a win for gun owners, but the battle over federal restrictions on firearms is far…

View post

Texas Lawmakers Protect Due Process from ‘Red Flag’ Laws

Reading Time: 3:24 min

Texas lawmakers protect due process from ‘red flag’ laws by passing groundbreaking legislation that ensures constitutional protections remain intact for gun owners across the state. With the passage of Senate…

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>