Условия в этом if слишком сложное, и повторяется много раз. Прямое указание на то, что следует создать под это дело функцию.