Show:
                            var addClass, hasClass, removeClass;
                            
                            Y.mix(Y.DOM, {
                                /**
                                 * Determines whether a DOM element has the given className.
                                 * @method hasClass
                                 * @for DOM
                                 * @param {HTMLElement} element The DOM element.
                                 * @param {String} className the class name to search for
                                 * @return {Boolean} Whether or not the element has the given class.
                                 */
                                hasClass: function(node, className) {
                                    var re = Y.DOM._getRegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');
                                    return re.test(node.className);
                                },
                            
                                /**
                                 * Adds a class name to a given DOM element.
                                 * @method addClass
                                 * @for DOM
                                 * @param {HTMLElement} element The DOM element.
                                 * @param {String} className the class name to add to the class attribute
                                 */
                                addClass: function(node, className) {
                                    if (!Y.DOM.hasClass(node, className)) { // skip if already present
                                        node.className = Y.Lang.trim([node.className, className].join(' '));
                                    }
                                },
                            
                                /**
                                 * Removes a class name from a given element.
                                 * @method removeClass
                                 * @for DOM
                                 * @param {HTMLElement} element The DOM element.
                                 * @param {String} className the class name to remove from the class attribute
                                 */
                                removeClass: function(node, className) {
                                    if (className && hasClass(node, className)) {
                                        node.className = Y.Lang.trim(node.className.replace(Y.DOM._getRegExp('(?:^|\\s+)' +
                                                        className + '(?:\\s+|$)'), ' '));
                            
                                        if ( hasClass(node, className) ) { // in case of multiple adjacent
                                            removeClass(node, className);
                                        }
                                    }
                                },
                            
                                /**
                                 * Replace a class with another class for a given element.
                                 * If no oldClassName is present, the newClassName is simply added.
                                 * @method replaceClass
                                 * @for DOM
                                 * @param {HTMLElement} element The DOM element
                                 * @param {String} oldClassName the class name to be replaced
                                 * @param {String} newClassName the class name that will be replacing the old class name
                                 */
                                replaceClass: function(node, oldC, newC) {
                                    //Y.log('replaceClass replacing ' + oldC + ' with ' + newC, 'info', 'Node');
                                    removeClass(node, oldC); // remove first in case oldC === newC
                                    addClass(node, newC);
                                },
                            
                                /**
                                 * If the className exists on the node it is removed, if it doesn't exist it is added.
                                 * @method toggleClass
                                 * @for DOM
                                 * @param {HTMLElement} element The DOM element
                                 * @param {String} className the class name to be toggled
                                 * @param {Boolean} addClass optional boolean to indicate whether class
                                 * should be added or removed regardless of current state
                                 */
                                toggleClass: function(node, className, force) {
                                    var add = (force !== undefined) ? force :
                                            !(hasClass(node, className));
                            
                                    if (add) {
                                        addClass(node, className);
                                    } else {
                                        removeClass(node, className);
                                    }
                                }
                            });
                            
                            hasClass = Y.DOM.hasClass;
                            removeClass = Y.DOM.removeClass;
                            addClass = Y.DOM.addClass;