Right to Carry

Ontario Joins Canadian Brethren in Rejecting Trudeau’s Gun Confiscation Program

Reading Time: 3:7 min

If defenders of the Second Amendment want to see the goals of those who work tirelessly to strip away gun rights, they simply need to gaze to the north. The…

View post

Appeals Court Rules Three Georgia Young Adults Have Standing to Challenge Carry Law

Reading Time: 3:1 min

Not all Second Amendment victories blaze a burning trail across the legal universe in the manner of 2022’s U.S. Supreme Court Bruen ruling. Some simply mean that the cause may…

View post

Rampaging Florida Man Booted from Hooters Stopped by Armed Homeowner

Reading Time: 1:37 min

A Florida man’s apparently wild night ended when he allegedly tried to break into a residence only to be confronted by the armed homeowner. The surprised but prepared resident had…

View post

Constitutional Carry Efforts Continue in Louisiana and South Carolina

Reading Time: 1:33 min

The nation’s march to constitutional carry being the law across the land continues in Louisiana and South Carolina. Both states are advancing toward allowing their citizens to fully enjoy the…

View post

Kentucky Senate Advances Bill to Try Juveniles as Adults for Gun-Related Offenses

Reading Time: 1:30 min

Kentucky lawmakers are taking an approach that should be recommended for several states that target inanimate objects over violent criminals. The Bluegrass State moved a step closer to trying more…

View post

Home Alone Texas Teenager Shoots Alleged Invader

Reading Time: 1:47 min

The Houston, Texas, neighborhood was already on edge due to at least three calls of someone kicking in doors and demanding money. The situation turned deadly violent Thursday morning when…

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>