Right to Carry

Report: DC Gun Permitting Obstacles Streamlined Under White House Crackdown

Reading Time: 3:26 min

Amid controversial federal efforts to increase public safety in the nation’s capital comes a new report detailing the reestablishment of Second Amendment rights.  According to Fox News, the White House’s…

View post

Illinois Mother Hides in Closet Before Fatally Shooting Alleged Intruder

Reading Time: 1:59 min

There are few scenarios that are more frightening than being a young mother at home with a baby when an armed stranger forces his way into the residence. This heart-pounding…

View post

Why Glock 19 Used to Be The Answer & Isn’t Anymore

Reading Time: 2:35 min

Why Glock 19 Used to Be The Answer & Isn’t Anymore is a debate that defines how far the concealed carry market has come. Once considered the gold standard of…

View post

At Long Last: Louisiana Frog Hunters May Now Carry Firearms at Night

Reading Time: 1:49 min

Of all the things that Americans may be restricted from, being prohibited from carrying a gun while frogging at night in Louisiana is not one that jumps out as most…

View post

Charlie Kirk’s Tense Gun Debate On College Campus

Reading Time: 2:31 min

Charlie Kirk’s tense gun debate on a college campus has sparked discussion about the Second Amendment and its role in protecting American freedoms. The exchange, which took place between Kirk…

View post

19 AGs Urge SCOTUS to Consider Young Americans’ 2A Rights

Reading Time: 1:57 min

Full constitutional rights for young adults should not be in question, but when it comes to the Second Amendment, some leaders act as though the right to keep and bear…

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>