Right to Carry

Gun Safety Training Mandated for All Arkansas Public School Students

Reading Time: 2:32 min

Parents of Arkansas public school students have a welcome addition to the state’s curriculum to look forward to. After approval in the state Senate and House, Act 229 mandates that…

View post

California Homeowner Uses Firearm to Hold Off Four Alleged Home Invaders

Reading Time: 2:28 min

A frightening home invasion in California last week turned deadly for one suspect and left two others hospitalized. It was approximately 9:18 p.m. Tuesday when a Grand Terrace homeowner found…

View post

Georgia Lawmakers Attempt to Add Teeth to State Preemption Law

Reading Time: 2:27 min

Local governments in most states are not free to infringe on Second Amendment rights thanks to preemption laws. While this hierarchy of authority is logical and overwhelmingly constitutional, there are…

View post

NYC Residents File Lawsuit Over ‘Unconstitutional’ Delays for Concealed Carry Applications

Reading Time: 2:30 min

It is said that justice delayed is justice denied, and the same principle applies to constitutional rights. New York City residents face utterly unnecessary delays in obtaining concealed carry licenses,…

View post

Appeals Court Hears Oral Arguments Over ‘Gun-Free’ Buffer Zones

Reading Time: 2:19 min

Are 1,000-foot buffer zones around schools where guns are not allowed constitutional? That question will be determined by the Fifth Circuit Court of Appeals, which heard arguments last week from…

View post

Armed Self-Defense a Risky Proposition in Minnesota After Bill’s Failure

Reading Time: 2:27 min

The fundamental right for law-abiding citizens to exercise armed self-defense in Minnesota suffered a significant blow Thursday. The House of Representatives rejected a bill to enshrine this freedom into law.…

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>