Right to Carry

Virginia Sheriff Rejects Collecting $35 Concealed Carry Permit Application Fees

Reading Time: 1:54 min

Residents of one Virginia county are getting a financial break when they apply for a concealed carry permit in the future. That’s the word this week from Wythe County Sheriff…

View post

Michigan Lawmaker Proposes Permitting Concealed Carry in State Capitol Building

Reading Time: 1:54 min

After a loud ruckus in June over the issue of concealed carry in the Michigan State Capitol Building, a lawmaker made an interesting proposal to her colleagues.  State Rep. Gina…

View post

NRA Opposes DOJ Gun Rights Restoration Plan as Currently Constructed

Reading Time: 3:21 min

The Department of Justice (DOJ) recently announced a bold plan to reconstruct the gun rights restoration process. While this was met with cautious optimism in the Second Amendment lobby, a…

View post

Sig Sauer Doubles Down on P320 Safety Amid Avalanche of Reports

Reading Time: 3:26 min

Sig Sauer doubles down on P320 safety amid avalanche of reports that accuse the popular firearm of firing without the trigger being pulled—a claim the company adamantly denies. The growing…

View post

Sig Sauer Doubles Down on P320 Safety Amid Avalanche of Reports

Reading Time: 2:4 min

The public relations nightmare surrounding renowned firearm manufacturer Sig Sauer continues to intensify, even as the gun maker defends its products against a barrage of negative publicity. Reports of accidental…

View post

Arizona Lawmaker Issues Dire Warning Against Expanding Gun Control

Reading Time: 1:54 min

Anti-gunners work tirelessly to strip away the right to keep and bear arms, and this week, an Arizona legislator warned the people that there will be dire consequences if these…

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>