Right to Carry

State AGs Advocate for Bill Establishing National Reciprocity

Reading Time: 4:1 min

State AGs Advocate for Bill Establishing National Reciprocity. When 24 state attorneys general agree to anything, it’s news. It’s even better news when the issue is protecting gun rights nationwide…

View post

SC Shooting During Attempted Robbery Ruled Justifiable Self-Defense

Reading Time: 2:24 min

SC Shooting During Attempted Robbery Ruled Justifiable Self-Defense. According to South Carolina authorities, an attempted criminal act went tragically wrong Monday evening when two teenagers allegedly tried to rob an…

View post

Armed Bystanders Stop Florida Man Allegedly Using Car to Ram Crowd

Reading Time: 2:24 min

Armed Bystanders Stop Florida Man Allegedly Using Car to Ram Crowd. The right to keep and bear arms is a constitutional guarantee for law-abiding U.S. adults that should never be…

View post

Illinois Lawmakers Scheme to Reach into Pockets of Gun Owners

Reading Time: 2:28 min

No right-thinking person would suggest that the state levy a tax on freedom of speech or set up a collection box outside their house of worship.  But for many anti-gunners,…

View post

Vermont Government Promises Veto of Guns in Bars Bill if it Reaches His Desk

Reading Time: 2:24 min

While some political leaders like to play both sides of any issue, one this week planted his flag firmly in support of the Second Amendment. Vermont Gov. Phil Scott (R)…

View post

Silencer Deregulation Added to House Budget Bill

Reading Time: 2:35 min

Gun rights advocates have long argued that silencers should not be subject to special taxes and federal regulations. On Thursday morning, this wish took a significant step toward becoming reality…

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>