Right to Carry

Controversial ATF Deputy Director Forced to Retire

Reading Time: 2:23 min

The Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) is in a state of overhaul and flux, and this is a welcome development for Second Amendment advocates.  Now comes word…

View post

Jury Acquits Michigan Man of Murder Charge in Self-Defense Case

Reading Time: 2:42 min

A Michigan man spent nine grueling months behind bars waiting for his trial on murder charges in the July 2024 death of another man. Eric M. Wills II argued that…

View post

Colorado Sheriffs Blast New Gun Control Law as Unconstitutional

Reading Time: 2:35 min

Law enforcement officials on the front lines of Colorado’s battle with violent crime are not happy with the state’s most recent gun control measures.  Gov. Jared Polis (D) signed the…

View post

Alleged Air Conditioner Thief Captured After Warning Shot from Intended Victim

Reading Time: 2:23 min

It must have been a hot morning in Florida as one man allegedly decided to make off with another person’s window air conditioner. That turned out to be a poor…

View post

Lawmakers Demand End to Federal Policy Declaring Gun Violence a ‘Public Health Crisis’

Reading Time: 2:21 min

A group of pro-Second Amendment legislators penned a sharp letter demanding the end of the federal government policy declaring gun violence equates to a “public health crisis.” Fox News Digital…

View post

South Carolina Closer to Becoming 21st State to Protect Gun Owners’ Privacy

Reading Time: 2:25 min

South Carolina lawmakers heeded the call of gun rights advocates last week as the House passed the Second Amendment Financial Privacy bill. House Bill 3930, which is strongly endorsed by…

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>