Right to Carry

NC Moves Toward Becoming 30th Constitutional Carry State

Reading Time: 2:27 min

The wave of states recognizing constitutional carry as a fundamental right renewed its momentum Thursday in North Carolina. The state Senate approved a measure on a party-line vote to remove…

View post

Surgeon General’s ‘Public Health Crisis’ Warning on Guns Removed

Reading Time: 2:34 min

The much-ridiculed Department of Health and Human Services (HHS) warning that guns somehow are a “public health crisis” is no more. Former Surgeon General Vivek Murthy issued a 40-page advisory…

View post

Maine Lawmakers Consider Voiding ‘Duty to Retreat’

Reading Time: 2:23 min

Maine is one of only 12 states that mandates law-abiding citizens retreat when faced with a violent threat outside of the home. That may change if a group of lawmakers…

View post

Gun Rights for Non-Violent Felons Inch Closer to Reality

Reading Time: 2:24 min

The current administration is moving to streamline the process for returning Second Amendment rights to former convicts.  On Wednesday, the Department of Justice (DOJ) posted an interim final rule that…

View post

New York Times Publishes Surprisingly Level-Headed Pieces on US Guns

Reading Time: 2:44 min

Second Amendment advocates have to look long and hard to find even-handed and objective journalism concerning American gun rights. Most articles in the mainstream media on this issue are little…

View post

Colorado Sheriff Rails Against Gun Control Scheme

Reading Time: 2:24 min

Colorado’s mad scramble to nullify the Second Amendment received powerful pushback last week from one of the state’s most outspoken law enforcement leaders. Senate Bill 25-003 seeks to ban semi-automatic…

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>