Right to Carry

Gun Control Loses Even More Popularity with US Public

Reading Time: 2:30 min

As much as the mainstream media would love to dictate policy to ordinary Americans by manipulating data, the facts are relatively simple to determine. Public support for gun control initiatives…

View post

Supremacy of State Preemption Laws Upheld in Pennsylvania

Reading Time: 3:52 min

Even someone with the most cursory knowledge of how the U.S. works should understand the basic principles of federalism. Federal law supersedes state law, and state law is preeminent over…

View post

Supremacy of State Preemption Laws Upheld in Pennsylvania

Reading Time: 3:52 min

Even someone with the most cursory knowledge of how the U.S. works should understand the basic principles of federalism. Federal law supersedes state law, and state law is preeminent over…

View post

Don’t Make These Mistakes After A Self Defense Shooting From Top Self Defense Attorney

Reading Time: 1:37 min

When self-defense turns into a legal nightmare, having the right knowledge and support can mean the difference between freedom and prison.   Colion Noir sits down with America’s self-defense attorney,…

View post

Illinois Home Invasion Attempt Ended by Defensive Gunfire

Reading Time: 2:23 min

November will almost certainly mark the 64th consecutive month in which Americans purchased over one million firearms. With this in mind, who in their right mind would consider a home…

View post

Iowa Supreme Court Upholds Gun Restrictions for Those With Past Mental Health Issues

Reading Time: 2:29 min

Iowa may continue to restrict gun rights for those with past mental health issues, even if they were years in the past. That’s the judgment handed down Friday by the…

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>