Ty O'banner

Constitutional Carry in NC: So Close Yet So Far

Reading Time: 3:10 min

Constitutional Carry in NC: So Close Yet So Far became the story of the week as North Carolina lawmakers advanced a major pro-Second Amendment bill—only to see it face a…

View post

Good Guy with a Gun Stops Attempted Carjacking in Georgia

Reading Time: 3:42 min

Good Guy with a Gun Stops Attempted Carjacking in Georgia in a courageous act that may have saved multiple lives. What began as a terrifying assault at a Marietta gas…

View post

Citigroup Drops Discriminatory Policy Against Firearm and Ammunition Industry

Reading Time: 1:53 min

A major hurdle before the firearm and ammunition industry is now cleared with a powerful Wall Street financial firm announcing an end to discriminatory policies. Citigroup declared that it will…

View post

New York Seeks to Prohibit Sharing Blueprints of 3D Guns Online

Reading Time: 3:34 min

New York Seeks to Prohibit Sharing Blueprints of 3D Guns Online in a sweeping move that civil liberties groups argue poses a serious threat to both the Second Amendment and…

View post

SCOTUS Declines to Hear Arguments in Critical Second Amendment Cases

Reading Time: 3:31 min

The U.S. Supreme Court continued its recent confounding history of punting important Second Amendment-related cases back to lower court rulings. Rulings that are often contradictory. On Monday, justices declined to…

View post

Hero Mom Shoots Daughter’s Alleged Attacker Multiple Times

Reading Time: 2:27 min

A horrifying act of violence against a minor in an Indiana hotel room was stopped by an armed mother, according to court documents and law enforcement officials. The disturbing scenario…

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>