Right to Carry

Kentucky Juvenile Grabs Handgun and Shoots Two Alleged Home Invaders

Reading Time: 2:23 min

Just imagine being a young person at home at 4:30 a.m. and you hear the unmistakable sound of a break-in. What do you do? In the case of a Clay…

View post

Colorado ‘Assault Weapon’ Ban Advances—With a Major Change

Reading Time: 2:31 min

Colorado’s steady drumbeat of anti-Second Amendment legislation continued this week, though the latest was significantly altered after hours of heated debate. The Colorado Senate approved SB 25-3 late Friday night.…

View post

Armed Texas Woman Defends Herself Against Alleged Road Rager

Reading Time: 2:24 min

Road rage incidents are inherently foolish, though most people have been involved in at least one at some point. There are usually a lot of horn honking and hand gestures,…

View post

Gun Rights Groups File Suit Against Massachusetts for Young Adult Weapons Ban

Reading Time: 2:22 min

Second Amendment advocates have long held that young adults are part of “the people” as designated in the Bill of Rights. However, the freedom to keep and bear arms is…

View post

Illinois Mother Uses Firearm to Protect Five-Month-Old Baby from Three Intruders

Reading Time: 2:32 min

A mother is the wrong person to confront with a threat involving her children. This is true up and down nature’s food chain, and the warning certainly applies to one…

View post

South Dakota Considers Becoming Latest State to Allow Campus Carry

Reading Time: 2:20 min

It should be clear that responsible adult college students have the fundamental right to protect themselves. Recent moves have been made to preserve this freedom, and South Dakota voted last…

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>