// config.get() and config.set() store config data in (near-)json in prefs.js. var config = (function(data) { function get(name, value) { return data.hasOwnProperty(name) ? data[name] : value; } function set(name, value) { if (value === undefined) delete data[name]; else data[name] = value; GM_setValue("config", uneval(data)); return value; } function keys(re) { re = re || /./; var list = []; for (var id in data) if (data.hasOwnProperty(id) && id.test(re)) list.push(id); return list; } function remove(id) { if (/function|object/.test(typeof id)) { var value = [], re = id; for (id in data) if (data.hasOwnProperty(id) && id.test(re)) { value.push(data[id]); delete data[id]; } } else { value = data[id]; delete data[id]; } return value; } return { get:get, set:set, keys:keys, remove:remove }; })(eval(GM_getValue("config", "({})")));