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