addClass/removeClass у тебя неправильные.
var classes = elem.className.split(" ");
Пробелов может быть несколько идущих подряд. Тогда делать trim().
Вот только зачем, если на регулярках быстрее?
В code style хаос - кавычки разные, пробелы то есть, то их нет. Думаю это не самое страшное в твоем коде )) Опечатки, безграмотный английский - тоже мелочи ))