Right to Carry

California Homeowner Uses Weapon to Fend Off Three Alleged Intruders

Reading Time: 1:53 min

The odds do not favor a good citizen who encounters three alleged intruders. That is, unless that person is armed and prepared, and then that situation turns solidly in their…

View post

Grocery Stores in Alabama and Oklahoma Now Selling Ammunition Through Vending Machines

Reading Time: 1:54 min

In a new development that would surely send shockwaves through certain political leaders in New York and California, law-abiding Americans are now able to conveniently purchase ammunition through vending machines…

View post

California Now Requires Specific Merchant Code to Track Gun Purchases

Reading Time: 3:28 min

California’s gun enthusiasts and Second Amendment advocates may be excused if they appear to have a persecution complex. After all, the state goes out of its way seemingly daily to…

View post

Man Shot While Allegedly Threatening Estranged Wife at Tulsa Gas Station

Reading Time: 1:55 min

In a perfect world, couples upon the end of a relationship would simply go their separate ways and move on with their lives. Sadly, this often is not the case,…

View post

Arizona Homeowner Shoots Alleged Robber on Independence Day

Reading Time: 1:52 min

Independence Day should be set aside for counting blessings and celebrating the freedoms that come with being an American. What it definitely should not be is a day when an…

View post

NRA Challenges California’s Controversial Excise Tax on Weapons and Ammunition 

Reading Time: 3:26 min

Chief Justice John Marshall famously observed in the early days of the nation, “The power to tax is the power to destroy.” This is especially true when the government’s function…

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>