Как по мне, я бы сделал разделы и дочерние подразделы в CMS (если используется CMS), потом вывел их в виде 4 уровненных подсписков, а через JQ скрыл их и сделал раскрывающееся меню.
Сортировал так же бы через сервер и CMS, так как это один раз рассчитается и закешируется, а JQ будет в браузере все пересчитывать у каждого пользователя.
Я бы использовал средства CMS, PHP (ну или тот язык который у вас отвечает за сервер), HTML, CSS и JS в совокупности.