text: /*
  YUI 3.7.3 (build 5687)
  Copyright 2012 Yahoo! Inc. All rights reserved.
  Licensed under the BSD License.
  http://yuilibrary.com/license/
  */
  YUI.add('dom-class', function(Y) {
  
  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;
  
  
  
  }, '3.7.3' ,{requires:['dom-core']});
  