Right to Carry

Louisiana Ready to Become 28th Constitutional Carry State

Reading Time: 2:9 min

Louisiana is primed to become the 28th U.S. state to enshrine its respect for the Second Amendment and allow permitless carry by law-abiding citizens. The stage was set when the…

View post

Armed Mother Defends Daughter from Ex-Boyfriend’s Alleged Attack

Reading Time: 1:49 min

It’s a shame that former romantic partners cannot simply go their own ways when the relationship falls apart. But too many times, there is an obsession that lingers and foments…

View post

Measure to Lower Minimum Age to Purchase Firearm in Florida Clears House

Reading Time: 1:29 min

Florida lawmakers on Friday took a major step toward ensuring Second Amendment rights are exercised by young adults. The House passed legislation lowering the legal age to purchase a firearm…

View post

Utah Bill to Support Arming Teachers Goes to Governor’s Desk

Reading Time: 1:39 min

There’s the world how we wish it to be and there’s the real world. In the first instance, schools would be seen by all as sacred institutions of learning and…

View post

US Supreme Court Hears Challenge to Bump Stock Ban

Reading Time: 3:42 min

The U.S. Supreme Court on Wednesday heard a challenge to the federal ban on bump stocks brought by a gun shop owner. Central Texas Gun Works proprietor Michael Cargill said…

View post

Bill Introduced to Protect Firearm Dealers from ATF’s ‘Zero Tolerance’ Policy

Reading Time: 3:46 min

It is hardly a secret that the Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) is on a quest to stamp out firearms dealers.  After all, Federal Firearms License holders…

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>