function clear_module_pref($name, $module = false, $user = false)
{
    global $module_prefs, $mostrecentmodule, $session;
    if ($module === false) {
        $module = $mostrecentmodule;
    }
    if ($user === false) {
        $uid = $session['user']['acctid'];
    } else {
        $uid = $user;
    }
    load_module_prefs($module, $uid);
    //don't write to the DB if the user isn't logged in.
    if (!$session['user']['loggedin'] && !$user) {
        // We do need to trash the loaded copy here however
        unset($module_prefs[$uid][$module][$name]);
        return;
    }
    if (isset($module_prefs[$uid][$module][$name])) {
        $sql = "DELETE FROM " . db_prefix("module_userprefs") . " WHERE modulename='{$module}' AND setting='{$name}' AND userid='{$uid}'";
        db_query($sql);
    }
    unset($module_prefs[$uid][$module][$name]);
}
function get_module_pref($name, $module = false, $user = false)
{
    global $module_prefs, $mostrecentmodule, $session;
    if ($module === false) {
        $module = $mostrecentmodule;
    }
    //debug("Getting pref ".$name." from module ".$module);
    if ($user === false) {
        if (isset($session['user']['loggedin']) && $session['user']['loggedin']) {
            $user = $session['user']['acctid'];
        } else {
            $user = 0;
        }
    }
    if (isset($module_prefs[$user][$module][$name])) {
        //debug("Pref ".$name." from module ".$module." already loaded in RAM");
        return $module_prefs[$user][$module][$name];
    }
    //load here, not before
    if ($user == $session['user']['acctid']) {
        load_all_module_prefs($user);
    } else {
        load_module_prefs($module, $user);
    }
    //check if *now* it's loaded
    if (isset($module_prefs[$user][$module][$name])) {
        //debug("Pref ".$name." found to be ".$module_prefs[$user][$module][$name]);
        return $module_prefs[$user][$module][$name];
    }
    if (!is_module_active($module)) {
        debug("Module " . $module . " is not active!");
        return NULL;
    }
    //we couldn't find this elsewhere, load the default value if it exists.
    $info = get_module_info($module);
    if (isset($info['prefs'][$name])) {
        if (is_array($info['prefs'][$name])) {
            $v = $info['prefs'][$name][0];
            $x = explode("|", $v);
        } else {
            $x = explode("|", $info['prefs'][$name]);
        }
        if (isset($x[1])) {
            set_module_pref($name, $x[1], $module, $user);
            //debug("Pref ".$name." not defined in db, setting to ".$x[1]);
            return $x[1];
        }
    }
    //debug("Pref ".$name." not defined in db or module config file, returning null.");
    return NULL;
}