+$javascript_setting = getPref($data_dir, $username, 'javascript_setting', SMPREF_JS_AUTODETECT);
+if ( checkForJavascript() )
+{
+ $use_javascript_folder_list = getPref($data_dir, $username, 'use_javascript_folder_list');
+ $use_javascript_addr_book = getPref($data_dir, $username, 'use_javascript_addr_book', $default_use_javascript_addr_book);
+} else {
+ $use_javascript_folder_list = false;
+ $use_javascript_addr_book = false;
+}
+
+$search_memory = getPref($data_dir, $username, 'search_memory', SMPREF_OFF);
+
+$show_only_subscribed_folders =
+ getPref($data_dir, $username, 'show_only_subscribed_folders', SMPREF_ON);
+
+
+/* How are mailbox select lists displayed: 0. full names, 1. indented (default),
+ * 3. delimited) */
+$mailbox_select_style = getPref($data_dir, $username, 'mailbox_select_style', SMPREF_MAILBOX_SELECT_INDENTED);
+
+/* Allow user to customize, and display the full date, instead of day, or time based
+ on time distance from date of message */
+$custom_date_format = getPref($data_dir, $username, 'custom_date_format', '');
+$show_full_date = getPref($data_dir, $username, 'show_full_date', SMPREF_OFF);
+
+/* Allow user to customize length of from field */
+$truncate_sender = getPref($data_dir, $username, 'truncate_sender', 50);
+/* Allow user to customize length of subject field */
+$truncate_subject = getPref($data_dir, $username, 'truncate_subject', 50);
+/* Allow user to show recipient name if the message is from default identity */
+$show_recipient_instead = getPref($data_dir, $username, 'show_recipient_instead', SMPREF_OFF);
+
+$delete_prev_next_display = getPref($data_dir, $username, 'delete_prev_next_display', SMPREF_ON);
+
+/**
+ * Height of iframe that displays html formated emails
+ * @since 1.5.1
+ */
+$iframe_height = getPref($data_dir, $username, 'iframe_height', '300');
+
+if (! isset($default_fontset)) $default_fontset=SMPREF_NONE;
+$chosen_fontset = getPref($data_dir, $username, 'chosen_fontset', $default_fontset);
+if (! isset($default_fontsize)) $default_fontsize=SMPREF_NONE;
+$chosen_fontsize = getPref($data_dir, $username, 'chosen_fontsize', $default_fontsize);
+
+/**
+ * Controls translation of special folders
+ * @since 1.5.2
+ */
+$translate_special_folders = getPref($data_dir, $username, 'translate_special_folders', SMPREF_OFF);
+/**
+ * Controls display of message copy options
+ * @since 1.5.2
+ */
+$show_copy_buttons = getPref($data_dir, $username, 'show_copy_buttons', SMPREF_OFF);
+
+/** Put in a safety net for authentication here, in case a naughty admin didn't run conf.pl when they upgraded */
+
+// TODO Get rid of "none" strings when NULL should be used, i hate them i hate them i hate them!!!.
+if (! isset($smtp_auth_mech)) {
+ $smtp_auth_mech = 'none';
+}
+
+if (! isset($imap_auth_mech)) {
+ $imap_auth_mech = 'login';
+}
+
+if (! isset($use_imap_tls)) {
+ $use_imap_tls = false;
+}
+
+if (! isset($use_smtp_tls)) {
+ $use_smtp_tls = false;
+}
+
+
+// allow plugins to override user prefs
+//
+do_hook('loading_prefs', $null);
+
+
+// check user prefs template selection against templates actually available
+//
+$found_templateset = false;
+if (PAGE_NAME == 'squirrelmail_rpc') {
+ // RPC skins have no in-memory list
+ if (is_dir(SM_PATH . Template::calculate_template_file_directory($sTemplateID))) {
+ $found_templateset = true;
+ }
+} else {
+ for ($i = 0; $i < count($aTemplateSet); ++$i){
+ if ($aTemplateSet[$i]['ID'] == $sTemplateID) {
+ $found_templateset = true;
+ break;
+ }
+ }
+}
+
+// FIXME: do we need/want to check here for actual presence of template sets?
+// selected template not available, fall back to default template
+//
+if (!$found_templateset) $sTemplateID = $sDefaultTemplateID;