Right to Carry

Gun Control Overreaches Exorcised From Pennsylvania State Budget

Reading Time: 1:55 min

Sweeping and oppressive gun control measures included in the proposed Pennsylvania state budget are no more, thanks to lawmakers who stood up for the Second Amendment in the face of…

View post

Chicago Drops Frivolous Lawsuit Against Glock

Reading Time: 3:24 min

State and local governments wield incredible strength as they have prosecutors on payroll and the power of the taxpayers’ purse to pursue any target they choose. When these official entities…

View post

Police: Denver Man Shoots Intruder Who Broke into His Apartment

Reading Time: 1:52 min

The thought of returning to your home in the early morning hours only to find that you are unexpectedly not alone is enough to terrify most people.  That’s the exact…

View post

NRA Files Legal Challenge to ATF’s Controversial ‘Engaged in the Business’ Final Rule

Reading Time: 1:57 min

The National Rifle Association recently flexed its considerable muscle in a lawsuit against the Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF). Earlier this year, the agency published its Final…

View post

California Busy Tracking Private Gun Purchases

Reading Time: 2:3 min

July is a traditional kickoff for many state laws across the nation, and one of them is of major significance to those who cherish the right to keep and bear…

View post

Hammer-Wielding Alleged Attacker Stopped Cold by Armed Security Guard in Colorado Springs

Reading Time: 1:57 min

Violent criminals should note that it is always a bad idea to attack an armed security guard when all you have is a hammer. Unless a crippling blow is immediately…

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>