Я согласен с Тейфмастером.Окно.Метод setTimeout принимает два аргумента:
1) Функция ИЛИ выражение 2) Время в мс
В своем коде вы предоставляете строку или выражение:
setTimeout ('crossFade () ', ....)
Обычно не рекомендуется использовать eval.Вы должны передать функцию - либо с именем:
setTimeout (crossFade, ....)
ИЛИ как предложено анонимно:
setTimeout (function () {crossFade ()}, ....
Это все, что вы можете сделать для устранения неполадок в этом коде, если вы не предоставите пример ok jsfiddle, чтобы мы могли увидеть контекст, который он называется.