Рекомендую почитать про области видимости и всплытие переменных в js.
Блоки if-else не ограничивают область видимости, соотвественно, второе определение фукнции внутри else всегда перекрывает первое. То есть какой бы ни был результат сравнения внутри if всегда будет выполняться второй вариант функции.
Определите функцию один раз и перенесите условие внутрь функции. Все должно заработать.