an alternative way to write would be:
document.getElements('.toggler').addEvent('click', function(e){
e && e.stop();
// the i and the div won't change. only get them from DOM once.
var i = this.retrieve('i', this.getElement('i')),
next = this.retrieve('next', this.getNext('div')),
// keep state in storage also, no need to query dom all the time.
isCollapsed = this.retrieve('state', i.hasClass('icon-plus'));
// based upon current state (which we don't need in DOM after the first time)
// calls either hide or show dynamically.
next[['hide', 'show'][+isCollapsed]]();
// all we want is to swap the classes, use toggleClass.
i.toggleClass('icon-plus').toggleClass('icon-minus');
// save new state
this.store('state', !isCollapsed);
});
http://jsfiddle.net/dimitar/3ZY9Q/
this minimizes your dom lookups and works from memory (element storage) - and it also removes if/then/else code complexity.