text: /**
   * @ngdoc service
   * @name $ionicBody
   * @module ionic
   * @description An angular utility service to easily and efficiently
   * add and remove CSS classes from the document's body element.
   */
  IonicModule
  .factory('$ionicBody', ['$document', function($document) {
    return {
      /**
       * @ngdoc method
       * @name $ionicBody#add
       * @description Add a class to the document's body element.
       * @param {string} class Each argument will be added to the body element.
       * @returns {$ionicBody} The $ionicBody service so methods can be chained.
       */
      addClass: function() {
        for (var x = 0; x < arguments.length; x++) {
          $document[0].body.classList.add(arguments[x]);
        }
        return this;
      },
      /**
       * @ngdoc method
       * @name $ionicBody#removeClass
       * @description Remove a class from the document's body element.
       * @param {string} class Each argument will be removed from the body element.
       * @returns {$ionicBody} The $ionicBody service so methods can be chained.
       */
      removeClass: function() {
        for (var x = 0; x < arguments.length; x++) {
          $document[0].body.classList.remove(arguments[x]);
        }
        return this;
      },
      /**
       * @ngdoc method
       * @name $ionicBody#enableClass
       * @description Similar to the `add` method, except the first parameter accepts a boolean
       * value determining if the class should be added or removed. Rather than writing user code,
       * such as "if true then add the class, else then remove the class", this method can be
       * given a true or false value which reduces redundant code.
       * @param {boolean} shouldEnableClass A true/false value if the class should be added or removed.
       * @param {string} class Each remaining argument would be added or removed depending on
       * the first argument.
       * @returns {$ionicBody} The $ionicBody service so methods can be chained.
       */
      enableClass: function(shouldEnableClass) {
        var args = Array.prototype.slice.call(arguments).slice(1);
        if (shouldEnableClass) {
          this.addClass.apply(this, args);
        } else {
          this.removeClass.apply(this, args);
        }
        return this;
      },
      /**
       * @ngdoc method
       * @name $ionicBody#append
       * @description Append a child to the document's body.
       * @param {element} element The element to be appended to the body. The passed in element
       * can be either a jqLite element, or a DOM element.
       * @returns {$ionicBody} The $ionicBody service so methods can be chained.
       */
      append: function(ele) {
        $document[0].body.appendChild(ele.length ? ele[0] : ele);
        return this;
      },
      /**
       * @ngdoc method
       * @name $ionicBody#get
       * @description Get the document's body element.
       * @returns {element} Returns the document's body element.
       */
      get: function() {
        return $document[0].body;
      }
    };
  }]);
  