Right to Carry

NC Lawmakers Override One Anti-Gun Veto, Second Uncertain

Reading Time: 1:53 min

North Carolina legislators broke bread last week as they convened to consider overturning a laundry list of vetoes issued by Gov. Josh Stein (D). On Second Amendment-related issues, there was…

View post

Washington State Crime Data Debunks Anti-Gunners’ Claims

Reading Time: 1:58 min

Second Amendment opponents are predictably long on inflammatory rhetoric and short on facts and sound arguments. The problem is, the mainstream media tends to parrot these talking points without critical…

View post

Anaheim Jewelry Store Owner Uses Firearm to Turn Back Violent Mob

Reading Time: 2:4 min

California’s criminal element increasingly relies on the “safety in numbers” mantra to carry out what are often brazen—and successful—jewelry store heists. The idea is to rush the business with up…

View post

NYC Mayoral Hopeful Blames Guns for the Acts of Violent Criminals

Reading Time: 2:7 min

First, it was New York Gov. Kathy Hochul (D) calling for a nationwide ban on so-called “assault rifles” in the wake of this week’s deadly Manhattan shooting. Now, the horrific…

View post

California DOJ Continues to Enforce Ammo Purchase Background Checks

Reading Time: 3:22 min

California DOJ continues to enforce ammo purchase background checks—despite federal court rulings declaring the process unconstitutional. In a stunning show of defiance, California’s Newsom/Bonta regime is still operating the ammunition…

View post

Report: Gov. Newsom Rejected Handgun Because of Byzantine Gun Control He Created

Reading Time: 1:57 min

California governor and likely presidential hopeful Gavin Newsom (D) made quite the spectacle of being gifted a pistol by a Tennessee podcaster recently. The Sig P365 XMACRO semi-automatic handgun was…

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>