Right to Carry

Second Amendment Organizations Petition Supreme Court Over ‘Irreparable’ Injury Caused by Gun Control

Reading Time: 3:27 min

Two prominent Second Amendment advocacy groups petitioned the U.S. Supreme Court on Monday to settle the argument over whether withholding fundamental gun rights constitutes irreparable injury. The Seventh and Ninth…

View post

Half-Naked Intruder Shot by Missouri Homeowner

Reading Time: 1:53 min

An alleged intruder challenged a Missouri homeowner early Tuesday morning by telling his intended victim, “You’ll have to shoot me, [expletive].” The Hanley Hills homeowner promptly complied with his wishes.…

View post

Montgomery Joins Memphis in Violating State Preemption Statutes Protecting Gun Rights

Reading Time: 3:34 min

It is a time of slings and arrows being thrown back and forth between local governments and state authorities. The issue is the Second Amendment and who has the power…

View post

Good Guy With a Gun Ends Violent Robbery Attempt in North Carolina

Reading Time: 1:58 min

Mount Holly is a small and beautiful suburb of Charlotte located on the banks of the Catawba River. A haven for outdoor enthusiasts with plenty of water sports and hiking…

View post

San Antonio Man Shoots Pair of Would-Be Robbers

Reading Time: 1:60 min

An alleged attempted robbery magically transformed into a double defensive shooting in west San Antonio late last month when the 34-year-old intended victim turned the tables on his assailants. The…

View post

Alleged Burglar Calls for Help After Being Shot by Homeowner

Reading Time: 1:56 min

It will be a great day when criminals realize that the good people are arming themselves against the onslaught of violent crime and decide that targeting the innocent is too…

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>