Right to Carry

New York City Carry Applications Double in One Year

Reading Time: 3:41 min

Despite how New York City’s political leaders spin statistics to convince the populace that the metropolis is safe, the people on the street are not buying it. New numbers issued…

View post

Administration Makes ‘Temporary’ Firearm Export Ban Permanent

Reading Time: 3:39 min

The “temporary” firearms export ban is now permanent. Late last week, the Commerce Department’s Bureau of Industry and Security (BIS) declared that the current 90-day pause will remain in effect…

View post

Maine Governor Signs Bevy of Gun Control Bills

Reading Time: 2:11 min

Maine Gov. Janet Mills (D) reacted to the Oct. 25 Lewiston massacre by signing a package of gun control bills on Friday. The tragic mass shooting killed 18 victims and…

View post

Police: East Texas Man Killed in Self-Defense Shooting

Reading Time: 2:8 min

The right to armed self-defense is a precursor to the numerous other liberties granted to law-abiding U.S. citizens by the Constitution. It is not exercised nearly as much as those…

View post

Judge Rules Young Pennsylvania Adults May Apply for Concealed Carry Permits

Reading Time: 2:13 min

Second Amendment advocates have another victory to celebrate — this time in Pennsylvania. On Wednesday, a district court ruled in Lara v. Evanchick that young adults aged 18-20 are now…

View post

Arizona Homeowner Shoots and Wounds Burglary Suspect

Reading Time: 2:27 min

It must have been quite a shock in Surprise, Arizona, just after 4:00 a.m. Monday morning when a homeowner discovered two alleged burglary suspects in their home. But thanks to…

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>