Right to Carry

Armed Neighbor Stops Horrific Knife Attack on Small Children

Reading Time: 2:3 min

A courageous Good Samaritan stepped up when needed the most in a frightening Virginia incident that obviously sent shock waves throughout the community. Terrel Majette of Franklin was having an…

View post

Supreme Court Ruling Severely Limits Bureaucrats’ Ability to Mandate Gun Control

Reading Time: 3:33 min

Second Amendment advocates have long charged that unelected Washington bureaucrats have been weaponized to enact unconstitutional gun control measures without Congress’ consent.  Now, the U.S. Supreme Court agrees with that…

View post

Second Amendment Supporters Sue New Jersey Over Draconian Gun Control Laws

Reading Time: 3:24 min

A powerful coalition of gun rights groups banded together last week to file a lawsuit against New Jersey’s trampling of Second Amendment rights.  Plaintiffs include Gun Owners of America (GOA),…

View post

California’s Gun Control Haven Led Nation in Active Shooter Incidents in 2023

Reading Time: 1:57 min

Anti-gun zealots are heavy on rhetoric and what-ifs but terribly light regarding concrete data. A prime example is California, which is by most accounts the most gun-controlled state in the…

View post

Surgeon General Declares ‘Gun Violence’ a Public Health Crisis

Reading Time: 3:28 min

Surgeon General Vivek Murthy climbed out on a narrow limb Tuesday when he declared “gun violence” to be a public health crisis. His reasoning was dubious at best, and he…

View post

Shooting in Walmart Parking Lot Believed to be Self-Defense

Reading Time: 1:56 min

A frightening situation emerged last week at a Nevada Walmart, and a customer is believed to have acted in self-defense after being attacked in the parking lot. Emergency services received…

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>