Согласен ужасный подход, беда в скриптах и в стилях, достаточно было определить open у родителей, left и right, а остальное наследовать, а вы добавляете еще внутренным блокам open, close и просто уже сами запутались. Тут все гораздо проще, нажимаете left открывается левый блок, а правый скрывается, нажимаете right, открывается правый, а левый скрывается, думаю суть донес.
P.S. переверстайте, как я описал выше, чтобы класс был 1 open - открыто, если ничего нет, закрыто, не надо велосипедов городить. Если уже совсем не получится, пишите, помогу.