code: function(groups) {
              YAHOO.log("refreshing element location cache", "info", "DragDropMgr");
  
              // refresh everything if group array is not provided
              var g = groups || this.ids;
  
              for (var sGroup in g) {
                  if ("string" != typeof sGroup) {
                      continue;
                  }
                  for (var i in this.ids[sGroup]) {
                      var oDD = this.ids[sGroup][i];
  
                      if (this.isTypeOfDD(oDD)) {
                          var loc = this.getLocation(oDD);
                          if (loc) {
                              this.locationCache[oDD.id] = loc;
                          } else {
                              delete this.locationCache[oDD.id];
  YAHOO.log("Could not get the loc for " + oDD.id, "warn", "DragDropMgr");
                          }
                      }
                  }
              }
          }
docs: Refreshes the cache of the top-left and bottom-right points of the
  drag and drop objects in the specified group(s).  This is in the
  format that is stored in the drag and drop instance, so typical
  usage is:
  <code>
  YAHOO.util.DragDropMgr.refreshCache(ddinstance.groups);
  </code>
  Alternatively:
  <code>
  YAHOO.util.DragDropMgr.refreshCache({group1:true, group2:true});
  </code>
  @TODO this really should be an indexed array.  Alternatively this
  method could accept both.
  @method refreshCache
  @param {Object} groups an associative array of groups to refresh
  @static