Guns

Appeals Court Rules in Favor of Gun Rights for Florida’s Medical Marijuana Patients

Reading Time: 1:54 min

The once-bright line between marijuana users and exercising Second Amendment rights grew even more blurry last week.  That’s when the Atlanta-based 11th Circuit Court of Appeals determined that Florida’s medical…

View post

Armed Georgia Man Defends Himself in Online Sale Meetup That Was a Setup

Reading Time: 1:56 min

Online transactions are widespread, and many are consummated face-to-face, especially when the product cannot be easily mailed or shipped. This creates an encounter with the unexpected where preparedness and situational…

View post

Alert Houston Homeowner Shoots Two Suspects Allegedly Impersonating Police Officers

Reading Time: 2:6 min

Imagine being at home late at night, only to have two people dressed as police officers come and attempt to break through your front door. How you respond may be…

View post

Explosive ATF Tweet Smears Millions of Law-Abiding Gun Owners

Reading Time: 1:54 min

The revamped Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) has come far from its recent weaponization by anti-gun forces, but it still has a way to go. That was…

View post

NRA Leads Lawsuit Against Massachusetts Ban of Popular Sporting Rifles

Reading Time: 1:52 min

Massachusetts gun owners have long dealt with the oppressive regime of prohibitions and regulations handed down by their state lawmakers. Now, thanks to a powerful legal push by the National…

View post

The Glock That Time Forgot (GLOCK 36)

Reading Time: 2:49 min

The Glock That Time Forgot — the Glock 36 — doesn’t get the spotlight like the Glock 19, 17, or the Gucci’d-out Glock 34s. Those models are the headliners at…

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>