code: function (obj, type, func) {
      if (!obj || !type) return false;
      if (!func && (!obj.funcCache || !obj.funcCache[type])) return false;
      if (obj.removeEventListener) obj.removeEventListener(type, func || obj.funcCache[type], false);
      else obj.detachEvent("on" + type, func || obj.funcCache[type]);
    }
docs: attribute definitions