More work done on the options stuff.
[squirrelmail.git] / src / options.php
index a832181e6e2728cbdd11b1c118107bd9dc768d21..aa6b2c0d67e29dd04eab386cc76f1fa6b6fd54b8 100644 (file)
 <?php
-   /**
-    **  options.php
-    **
-    **  Copyright (c) 1999-2000 The SquirrelMail development team
-    **  Licensed under the GNU GPL. For full terms see the file COPYING.
-    **
-    **  Displays the options page. Pulls from proper user preference files
-    **  and config.php. Displays preferences as selected and other options.
-    **
-    **/
-
-   session_start();
-
-   if (!isset($config_php))
-      include("../config/config.php");
-   if (!isset($strings_php))
-      include("../functions/strings.php");
-   if (!isset($page_header_php))
-      include("../functions/page_header.php");
-   if (!isset($display_messages_php))
-      include("../functions/display_messages.php");
-   if (!isset($imap_php))
-      include("../functions/imap.php");
-   if (!isset($array_php))
-      include("../functions/array.php");
-   if (!isset($i18n_php))
-      include("../functions/i18n.php");
-
-   include("../src/load_prefs.php");
-
-
-   $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort);
-   $boxes = sqimap_mailbox_list($imapConnection, $boxes);
-   fputs($imapConnection, "1 logout\n");
-
-   displayPageHeader($color, "None");
-
-   /** load up some of the values from the pref file **/
-   $fullname = getPref($data_dir, $username, "full_name");
-   $replyto = getPref($data_dir, $username, "reply_to");
-   $email_address  = getPref($data_dir, $username, "email_address");
-   $chosen_language = getPref($data_dir, $username, "language");
-
-   echo "<TABLE WIDTH=100% COLS=1 ALIGN=CENTER>\n";
-   echo "   <TR><TD BGCOLOR=\"$color[0]\" ALIGN=CENTER>\n";
-   echo _("Options");
-   echo "   </TD></TR>\n";
-   echo "</TABLE>\n";
-
-   echo "<FORM action=\"options_submit.php\" METHOD=POST>\n";
-   echo "<TABLE WIDTH=100% COLS=2 ALIGN=CENTER>\n";
-   // FULL NAME
-   echo "   <TR>";
-   echo "      <TD WIDTH=20% ALIGN=RIGHT>";
-   echo           _("Full Name:");
-   echo "      </TD>";
-   echo "      <TD WIDTH=80% ALIGN=LEFT>";
-   echo "         <INPUT TYPE=TEXT NAME=full_name VALUE=\"$fullname\" SIZE=50><BR>";
-   echo "      </TD>";
-   echo "   </TR>";
-   // FROM-ADDRESS
-   echo "   <TR>";
-   echo "      <TD WIDTH=20% ALIGN=RIGHT>";
-   echo           _("E-mail address:");
-   echo "      </TD>";
-   echo "      <TD WIDTH=80% ALIGN=LEFT>";
-   echo "         <INPUT TYPE=TEXT NAME=email_address VALUE=\"$email_address\" SIZE=50><BR>";
-   echo "      </TD>";
-   echo "   </TR>";
-   // REPLY-TO
-   echo "   <TR>";
-   echo "      <TD WIDTH=20% ALIGN=RIGHT>";
-   echo           _("Reply-to:");
-   echo "      </TD>";
-   echo "      <TD WIDTH=80% ALIGN=LEFT>";
-   echo "         <INPUT TYPE=TEXT NAME=reply_to VALUE=\"$replyto\" SIZE=50><BR>";
-   echo "      </TD>";
-   echo "   </TR>";
-   // DEFAULT FOLDERS 
-       if ($show_prefix_option == true) {
-      echo "   <TR>";
-          echo "      <TD WIDTH=20% ALIGN=RIGHT>";
-          echo           _("Folder path:");
-          echo "      </TD>";
-          echo "      <TD WIDTH=80% ALIGN=LEFT>";
-          if (isset ($folder_prefix))
-             echo "         <INPUT TYPE=TEXT NAME=folderprefix VALUE=\"$folder_prefix\" SIZE=50><BR>";
-          else   
-             echo "         <INPUT TYPE=TEXT NAME=folderprefix VALUE=\"$default_folder_prefix\" SIZE=50><BR>";
-          echo "      </TD>";
-          echo "   </TR>";
-   }   
-   // THEME
-   echo "   <TR>";
-   echo "      <TD WIDTH=20% ALIGN=RIGHT>";
-   echo           _("Theme:");
-   echo "      </TD>";
-   echo "      <TD WIDTH=80% ALIGN=LEFT>";
-
-   echo "         <TT><SELECT NAME=chosentheme>\n";
-   for ($i = 0; $i < count($theme); $i++) {
-      if ($theme[$i]["PATH"] == $chosen_theme)
-         echo "         <OPTION SELECTED VALUE=\"".$theme[$i]["PATH"]."\">".$theme[$i]["NAME"]."\n";
-      else
-         echo "         <OPTION VALUE=\"".$theme[$i]["PATH"]."\">".$theme[$i]["NAME"]."\n";
-   }
-   echo "         </SELECT></TT>";
-   echo "      </TD>";
-   echo "   </TR>";
-   // LANGUAGE
-   echo "   <TR>";
-   echo "      <TD WIDTH=20% ALIGN=RIGHT>";
-   echo           _("Language:");
-   echo "      </TD>";
-   echo "      <TD WIDTH=80% ALIGN=LEFT>";
-
-   echo "         <TT><SELECT NAME=language>\n";
-   reset ($languages);
-   while (list($code, $name)=each($languages)) {
-      if ($code==$chosen_language)
-         echo "         <OPTION SELECTED VALUE=\"".$code."\">".$languages[$code]["NAME"]."\n";
-      else
-         echo "         <OPTION VALUE=\"".$code."\">".$languages[$code]["NAME"]."\n";
-
-   }
-   echo "         </SELECT></TT>";
-
-   echo "      </TD>";
-   echo "   </TR>";
-
-
-       // TRASH FOLDER
-       echo "<tr><td align=right>";
-       echo _("Trash Folder:");
-       echo "</td><td>";
-      echo "<TT><SELECT NAME=trash>\n";
-               if ($move_to_trash == true)
-                       echo "<option value=none>" . _("Don't use Trash");
-               else
-                       echo "<option value=none selected>" . _("Do not use Trash");
-
-      for ($i = 0; $i < count($boxes); $i++) {
-         $use_folder = true;
-                       if (strtolower($boxes[$i]["unformatted"]) == "inbox") {
-            $use_folder = false;
-         }
-         if ($use_folder == true) {
-            $box = $boxes[$i]["unformatted-dm"];
-            $box2 = replace_spaces($boxes[$i]["formatted"]);
-                               if (($boxes[$i]["unformatted"] == $trash_folder) && ($move_to_trash == true))
-               echo "         <OPTION SELECTED VALUE=\"$box\">$box2\n";
-                               else
-               echo "         <OPTION VALUE=\"$box\">$box2\n";
-         }
-      }
-      echo "</SELECT></TT>\n";
-       echo "</td></tr>";      
-
-       // SENT FOLDER
-       echo "<tr><td align=right>";
-       echo _("Sent Folder:");
-       echo "</td><td>";
-      echo "<TT><SELECT NAME=sent>\n";
-               if ($move_to_sent == true)
-                       echo "<option value=none>" . _("Don't use Sent");
-               else
-                       echo "<option value=none selected>" . _("Do not use Sent");
-
-      for ($i = 0; $i < count($boxes); $i++) {
-         $use_folder = true;
-                       if (strtolower($boxes[$i]["unformatted"]) == "inbox") {
-            $use_folder = false;
-         }
-         if ($use_folder == true) {
-            $box = $boxes[$i]["unformatted-dm"];
-            $box2 = replace_spaces($boxes[$i]["formatted"]);
-                               if (($boxes[$i]["unformatted"] == $sent_folder) && ($move_to_sent == true))
-               echo "         <OPTION SELECTED VALUE=\"$box\">$box2\n";
-                               else
-               echo "         <OPTION VALUE=\"$box\">$box2\n";
-         }
-      }
-      echo "</SELECT></TT>\n";
-       echo "</td></tr>";      
-
-
-   echo "</TABLE>";
-
-   echo "<table width=1% cols=2 align=center>\n";
-   echo "   <tr>\n";
-   echo "      <td nowrap align=center>\n";
-   echo "         " . _("Use javascript version of address book?") . "\n";
-   echo "      </td>\n";
-   echo "   </tr>\n";
-   echo "   <tr>\n";
-   echo "      <td align=left>\n";
-   if ($use_javascript_addr_book == true) {
-      echo "         <input type=radio name=javascript_abook value=1 checked> &nbsp;&nbsp;" . _("Yes") . "<br>";
-      echo "         <input type=radio name=javascript_abook value=0> &nbsp;&nbsp;" . _("No") . "<br>";
-   } else {
-      echo "         <input type=radio name=javascript_abook value=1> &nbsp;&nbsp;" . _("Yes") . "<br>";
-      echo "         <input type=radio name=javascript_abook value=0 checked> &nbsp;&nbsp;" . _("No") . "<br>";
-   }
-   echo "      </td>\n";
-   echo "   </tr>\n";
-   echo "</table>\n";
-   
-   echo "<TABLE WIDTH=100% COLS=2 ALIGN=CENTER>\n";
-
-   // SHOW_NUM
-   echo "   <TR>";
-   echo "      <TD WIDTH=60% ALIGN=RIGHT>";
-   echo           _("Number of Messages to Index:");
-   echo "      </TD>";
-   echo "      <TD WIDTH=40% ALIGN=LEFT>";
-   if (isset($wrap_at))
-      echo "         <TT><INPUT TYPE=TEXT SIZE=5 NAME=shownum VALUE=\"$show_num\"></TT><BR>";
-   else
-      echo "         <TT><INPUT TYPE=TEXT SIZE=5 NAME=shownum VALUE=\"25\"></TT><BR>";
-   echo "      </TD>";
-   echo "   </TR>";
-   
-   // WRAP_AT
-   echo "   <TR>";
-   echo "      <TD WIDTH=60% ALIGN=RIGHT>";
-   echo           _("Wrap incoming text at:");
-   echo "      </TD>";
-   echo "      <TD WIDTH=40% ALIGN=LEFT>";
-   if (isset($wrap_at))
-      echo "         <TT><INPUT TYPE=TEXT SIZE=5 NAME=wrapat VALUE=\"$wrap_at\"></TT><BR>";
-   else
-      echo "         <TT><INPUT TYPE=TEXT SIZE=5 NAME=wrapat VALUE=\"86\"></TT><BR>";
-   echo "      </TD>";
-   echo "   </TR>";
-
-   // EDITOR_SIZE
-   echo "   <TR>";
-   echo "      <TD WIDTH=60% ALIGN=RIGHT>";
-   echo           _("Size of editor window (in characters):");
-   echo "      </TD>";
-   echo "      <TD WIDTH=40% ALIGN=LEFT>";
-   if ($editor_size >= 5)
-      echo "         <TT><INPUT TYPE=TEXT SIZE=5 NAME=editorsize VALUE=\"$editor_size\"></TT><BR>";
-   else
-      echo "         <TT><INPUT TYPE=TEXT SIZE=5 NAME=editorsize VALUE=\"76\"></TT><BR>";
-   echo "      </TD>";
-   echo "   </TR>";
-
-   // LEFT_SIZE
-   echo "   <TR>";
-   echo "      <td width=60% align=right>";
-   echo _("Width of left folder list:");
-   echo "      </td>";
-   echo "      <td width=60% align=left>\n";
-   echo "         <select name=leftsize>\n";
-   if ($left_size == 100)
-      echo "<option value=100 selected>100 pixels\n";
-   else
-      echo "<option value=100>100 pixels\n";
-   
-   if ($left_size == 125)
-      echo "<option value=125 selected>125 pixels\n";
-   else
-      echo "<option value=125>125 pixels\n";
-   
-   if ($left_size == 150)
-      echo "<option value=150 selected>150 pixels\n";
-   else
-      echo "<option value=150>150 pixels\n";
+    /**
+     * options.php
+     *
+     * Copyright (c) 1999-2001 The SquirrelMail Development Team
+     * Licensed under the GNU GPL. For full terms see the file COPYING.
+     *
+     * Displays the options page. Pulls from proper user preference files
+     * and config.php. Displays preferences as selected and other options.
+     *
+     *  $Id$
+     */
+
+    require_once('../src/validate.php');
+    require_once('../functions/display_messages.php');
+    require_once('../functions/imap.php');
+    require_once('../functions/array.php');
    
-   if ($left_size == 175)
-      echo "<option value=175 selected>175 pixels\n";
-   else
-      echo "<option value=175>175 pixels\n";
+    ereg ("(^.*/)[^/]+/[^/]+$", $PHP_SELF, $regs);
+    $base_uri = $regs[1];   
+
+    if (isset($language)) {
+        setcookie('squirrelmail_language', $language, time()+2592000, $base_uri);
+        $squirrelmail_language = $language;
+    }   
+
+    displayPageHeader($color, _("None"));
+
+?>
+
+<br>
+<table bgcolor="<?php echo $color[0] ?>" width="95%" align="center" cellpadding="2" cellspacing="0" border="0">
+<tr><td align="center">
+    <b><?php echo _("Options") ?></b><br>
+
+    <table width="100%" border="0" cellpadding="5" cellspacing="0">
+    <tr><td bgcolor="<?php echo $color[4] ?>" align="center">
+
+<?php
+    if (isset($submit_personal)) {
+        /* Save personal information. */
+        if (isset($full_name)) {
+           setPref($data_dir, $username, 'full_name', $full_name);
+        }
+        if (isset($email_address)) {
+           setPref($data_dir, $username, 'email_address', $email_address);
+        }
+        if (isset($reply_to)) {
+           setPref($data_dir, $username, 'reply_to', $reply_to);
+        }
+        setPref($data_dir, $username, 'reply_citation_style', $new_reply_citation_style);
+        setPref($data_dir, $username, 'reply_citation_start', $new_reply_citation_start);
+        setPref($data_dir, $username, 'reply_citation_end', $new_reply_citation_end);
+        if (! isset($usesignature))
+            $usesignature = 0;
+        setPref($data_dir, $username, 'use_signature', $usesignature);  
+        if (! isset($prefixsig)) {
+            $prefixsig = 0;
+        }
+        setPref($data_dir, $username, 'prefix_sig', $prefixsig);
+        if (isset($signature_edit)) {
+            setSig($data_dir, $username, $signature_edit);
+        }
       
-   if (($left_size == 200) || ($left_size == ""))
-      echo "<option value=200 selected>200 pixels\n";
-   else
-      echo "<option value=200>200 pixels\n";
-   
-   if (($left_size == 225))
-      echo "<option value=225 selected>225 pixels\n";
-   else
-      echo "<option value=225>225 pixels\n";
-   
-   if (($left_size == 250))
-      echo "<option value=250 selected>250 pixels\n";
-   else
-      echo "<option value=250>250 pixels\n";
-   
-   if ($left_size == 275)
-      echo "<option value=275 selected>275 pixels\n";
-   else
-      echo "<option value=275>275 pixels\n";
+        do_hook('options_personal_save');
       
-   if (($left_size == 300))
-      echo "<option value=300 selected>300 pixels\n";
-   else
-      echo "<option value=300>300 pixels\n";
-
-   echo "         </select>";
-   echo "      </td>";
-   echo "   </TR>";
-   
-   
-   // LEFT_REFRESH
-   echo "   <TR>";
-   echo "      <TD WIDTH=60% ALIGN=RIGHT>";
-   echo           _("Time between auto refresh of folder list:");
-   echo "      </TD>";
-   echo "      <TD WIDTH=40% ALIGN=LEFT>";
-   echo "               <SELECT name=leftrefresh>";
-   if (($left_refresh == "None") || ($left_refresh == "")) 
-      echo "                  <OPTION VALUE=None SELECTED>None";
-   else   
-      echo "                  <OPTION VALUE=None>None";
-   
-   if (($left_refresh == "10")) 
-      echo "                  <OPTION VALUE=10 SELECTED>10 Seconds";
-   else   
-      echo "                  <OPTION VALUE=10>10 Seconds";
-   
-   if (($left_refresh == "20")) 
-      echo "                  <OPTION VALUE=20 SELECTED>20 Seconds";
-   else   
-      echo "                  <OPTION VALUE=20>20 Seconds";
-   
-   if (($left_refresh == "30")) 
-      echo "                  <OPTION VALUE=30 SELECTED>30 Seconds";
-   else   
-      echo "                  <OPTION VALUE=30>30 Seconds";
-   
-   if (($left_refresh == "60")) 
-      echo "                  <OPTION VALUE=60 SELECTED>1 Minute";
-   else   
-      echo "                  <OPTION VALUE=60>1 Minute";
-   
-   if (($left_refresh == "120")) 
-      echo "                  <OPTION VALUE=120 SELECTED>2 Minutes";
-   else   
-      echo "                  <OPTION VALUE=120>2 Minutes";
-   
-   if (($left_refresh == "180")) 
-      echo "                  <OPTION VALUE=180 SELECTED>3 Minutes";
-   else   
-      echo "                  <OPTION VALUE=180>3 Minutes";
-   
-   if (($left_refresh == "240")) 
-      echo "                  <OPTION VALUE=240 SELECTED>4 Minutes";
-   else   
-      echo "                  <OPTION VALUE=240>4 Minutes";
-   
-   if (($left_refresh == "300")) 
-      echo "                  <OPTION VALUE=300 SELECTED>5 Minutes";
-   else   
-      echo "                  <OPTION VALUE=300>5 Minutes";
-   
-   if (($left_refresh == "420")) 
-      echo "                  <OPTION VALUE=420 SELECTED>7 Minutes";
-   else   
-      echo "                  <OPTION VALUE=420>7 Minutes";
-   
-   if (($left_refresh == "600")) 
-      echo "                  <OPTION VALUE=600 SELECTED>10 Minutes";
-   else   
-      echo "                  <OPTION VALUE=600>10 Minutes";
-   
-   if (($left_refresh == "720")) 
-      echo "                  <OPTION VALUE=720 SELECTED>12 Minutes";
-   else   
-      echo "                  <OPTION VALUE=720>12 Minutes";
-   
-   if (($left_refresh == "900")) 
-      echo "                  <OPTION VALUE=900 SELECTED>15 Minutes";
-   else   
-      echo "                  <OPTION VALUE=900>15 Minutes";
-   
-   if (($left_refresh == "1200")) 
-      echo "                  <OPTION VALUE=1200 SELECTED>20 Minutes";
-   else   
-      echo "                  <OPTION VALUE=1200>20 Minutes";
+        echo '<br><b>'._("Successfully saved personal information!").'</b><br>';
+    } else if (isset($submit_display)) {
+        /* Do checking to make sure $new_theme is in the array. */
+        $theme_in_array = false;
+        for ($i=0; $i < count($theme); $i++) {
+            if ($theme[$i]['PATH'] == $new_chosen_theme) {
+                $theme_in_array = true;
+                break;
+            }
+        }
+        if (!$theme_in_array) {
+            $new_chosen_theme = '';
+        }
    
-   if (($left_refresh == "1500")) 
-      echo "                  <OPTION VALUE=1500 SELECTED>25 Minutes";
-   else   
-      echo "                  <OPTION VALUE=1500>25 Minutes";
-   
-   if (($left_refresh == "1800")) 
-      echo "                  <OPTION VALUE=1800 SELECTED>30 Minutes";
-   else   
-      echo "                  <OPTION VALUE=1800>30 Minutes";
-   
-      echo "               </SELECT>";
-      echo "      </TD>";
-      echo "   </TR>";
-      echo "</TABLE>";
-
-   // SIGNATURE
-   echo "<CENTER>";
-   if ($use_signature == true)
-      echo "<INPUT TYPE=CHECKBOX VALUE=\"1\" NAME=usesignature CHECKED>&nbsp;&nbsp;Use a signature?<BR>";
-   else {
-      echo "<INPUT TYPE=CHECKBOX VALUE=\"1\" NAME=usesignature>&nbsp;&nbsp;";
-      echo _("Use a signature?");
-      echo "<BR>";
-   }
-
-   if ($editor_size < 5)
-      $sig_size = 76;
-   else
-      $sig_size = $editor_size;
-
-   echo "<BR>Signature:<BR><TEXTAREA NAME=signature_edit ROWS=5 COLS=\"$sig_size\">$signature</TEXTAREA><BR>";
-   echo "</CENTER>";
-
-   // MESSAGE HIGHLIGHTING
-   echo "<br>\n";
-   echo "<center><b>" . _("Message Highlighting") . "</b> - [<a href=\"msg_highlight.php\">" . _("Edit") . "</a>]</center><br>\n";
-   if (count($message_highlight_list) >= 1) {
-      echo "<table border=0 cellpadding=2 cellspacing=0 align=center width=75%>\n";
-      for ($i=0; $i < count($message_highlight_list); $i++) {
-         echo "<tr>\n";
-         echo "   <td bgcolor=" . $message_highlight_list[$i]["color"] . ">\n";
-         echo "      " . $message_highlight_list[$i]["name"];
-         echo "   </td>\n";
-         echo "   <td bgcolor=" . $message_highlight_list[$i]["color"] . ">\n";
-         echo "      ".$message_highlight_list[$i]["match_type"]." = " . $message_highlight_list[$i]["value"];
-         echo "   </td>\n";
-         echo "</tr>\n";
-      }
-      echo "</table>\n";
-   } else {
-      echo "<center>" . _("No highlighting is defined") . "</center><br>\n";
-   }
-   echo "<br>\n";
-
-   // SUBMIT BUTTON
-   echo "<BR><CENTER><INPUT TYPE=SUBMIT VALUE=\"";
-   echo _("Submit");
-   echo "\"></CENTER>\n";
-   echo "</FORM>";
-
-   echo "</BODY></HTML>";
+        /* Save display preferences. */
+        setPref($data_dir, $username, 'chosen_theme', $new_chosen_theme);
+        setPref($data_dir, $username, 'language', $new_language);
+        setPref($data_dir, $username, 'use_javascript_addr_book', $new_use_javascript_addr_book);
+        setPref($data_dir, $username, 'javascript_setting', $new_javascript_setting);
+        setPref($data_dir, $username, 'show_num', $new_show_num);
+        setPref($data_dir, $username, 'wrap_at', $new_wrap_at);
+        setPref($data_dir, $username, 'editor_size', $new_editor_size);
+        setPref($data_dir, $username, 'location_of_buttons', $new_location_of_buttons);
+        setPref($data_dir, $username, 'location_of_bar', $new_location_of_bar);
+        setPref($data_dir, $username, 'left_size', $new_left_size);
+        setPref($data_dir, $username, 'left_refresh', $new_left_refresh);
+
+        if (isset($altIndexColors) && $altIndexColors == 1) {
+            setPref($data_dir, $username, 'alt_index_colors', 1);
+        } else {
+            setPref($data_dir, $username, 'alt_index_colors', 0);
+        }
+
+        setPref($data_dir, $username, 'show_html_default', ($showhtmldefault?1:0) );
+
+        if (isset($includeselfreplyall)) {
+            setPref($data_dir, $username, 'include_self_reply_all', 1);
+        } else {
+            removePref($data_dir, $username, 'include_self_reply_all');
+        }
+
+        if (isset($pageselectormax)) {
+            setPref($data_dir, $username, 'page_selector_max', $pageselectormax);
+        } else {
+            removePref($data_dir, $username, 'page_selector_max', 0 );
+        }
+
+        if (isset($pageselector)) {
+            removePref($data_dir, $username, 'page_selector');
+        } else {
+            setPref($data_dir, $username, 'page_selector', 1);
+        }
+
+        $js_autodetect_results = (isset($new_js_autodetect_results) ? $new_js_autodetect_results : SMPREF_JS_OFF);
+        if ($new_javascript_setting == SMPREF_JS_AUTODETECT) {
+            if ($js_autodetect_results == SMPREF_JS_ON) {
+                setPref($data_dir, $username, 'javascript_on', SMPREF_JS_ON);
+            } else {
+                setPref($data_dir, $username, 'javascript_on', SMPREF_JS_OFF);
+            }
+        } else {
+            setPref($data_dir, $username, 'javascript_on', $new_javascript_setting);
+        }  
+
+        do_hook('options_display_save');
+
+        echo '<br><b>'._("Successfully saved display preferences!").'</b><br>';
+        echo '<a href="../src/webmail.php?right_frame=options.php" target=_top>' . _("Refresh Page") . '</a><br>';
+    } else if (isset($submit_folder)) { 
+        /* Save folder preferences. */
+        if ($trash != 'none') {
+            setPref($data_dir, $username, 'move_to_trash', true);
+           setPref($data_dir, $username, 'trash_folder', $trash);
+        } else {
+            setPref($data_dir, $username, 'move_to_trash', '0');
+            setPref($data_dir, $username, 'trash_folder', 'none');
+        }
+        if ($sent != 'none') {
+            setPref($data_dir, $username, 'move_to_sent', true);
+            setPref($data_dir, $username, 'sent_folder', $sent);
+        } else {
+            setPref($data_dir, $username, 'move_to_sent', '0');
+            setPref($data_dir, $username, 'sent_folder', 'none');
+        }
+        if ($draft != 'none') {
+            setPref($data_dir, $username, 'save_as_draft', true);
+            setPref($data_dir, $username, 'draft_folder', $draft);
+        } else {
+            setPref($data_dir, $username, 'save_as_draft', '0');
+            setPref($data_dir, $username, 'draft_folder', 'none');
+        }
+        if (isset($folderprefix)) {
+            setPref($data_dir, $username, 'folder_prefix', $folderprefix);
+        } else {
+            setPref($data_dir, $username, 'folder_prefix', '');
+        }
+        setPref($data_dir, $username, 'unseen_notify', $unseennotify);
+        setPref($data_dir, $username, 'unseen_type', $unseentype);
+        if (isset($collapsefolders))
+             setPref($data_dir, $username, 'collapse_folders', $collapsefolders);
+        else
+             removePref($data_dir, $username, 'collapse_folders');
+        setPref($data_dir, $username, 'date_format', $dateformat);
+        setPref($data_dir, $username, 'hour_format', $hourformat);
+        do_hook('options_folders_save');
+        echo '<br><b>'._("Successfully saved folder preferences!").'</b><br>';
+        echo '<a href="../src/left_main.php" target=left>' . _("Refresh Folder List") . '</a><br>';
+    } else {
+        do_hook('options_save');
+    }
+
+    /****************************************/
+    /* Now build our array of option pages. */
+    /****************************************/
+
+    /* Build a section for Personal Options. */
+    $optionpages[] = array(
+        'name' => _("Personal Information"),
+        'url'  => 'options_personal.php',
+        'desc' => _("This contains personal information about yourself such as your name, your email address, etc."),
+        'js'   => false
+    );
+
+    /* Build a section for Display Options. */
+    $optionpages[] = array(
+        'name' => _("Display Preferences"),
+        'url'  => 'options_display.php',
+        'desc' => _("You can change the way that SquirrelMail looks and displays information to you, such as the colors, the language, and other settings."),
+        'js'   => false
+    );
+
+    /* Build a section for Message Highlighting Options. */
+    $optionpages[] = array(
+        'name' =>_("Message Highlighting"),
+        'url'  => 'options_highlight.php',
+        'desc' =>_("Based upon given criteria, incoming messages can have different background colors in the message list.  This helps to easily distinguish who the messages are from, especially for mailing lists."),
+        'js'   => false
+    );
+
+    /* Build a section for Folder Options. */
+    $optionpages[] = array(
+        'name' => _("Folder Preferences"),
+        'url'  => 'options_folder.php',
+        'desc' => _("These settings change the way your folders are displayed and manipulated."),
+        'js'   => false
+    );
+
+    /* Build a section for Index Order Options. */
+    $optionpages[] = array(
+        'name' => _("Index Order"),
+        'url'  => 'options_order.php',
+        'desc' => _("The order of the message index can be rearanged and changed to contain the headers in any order you want."),
+        'js'   => false
+    );
+    /* Build a section for plugins wanting to register an optionpage. */
+    do_hook('options_register');
+
+    /*****************************************************/
+    /* Let's sort Javascript Option Pages to the bottom. */
+    /*****************************************************/
+    foreach ($optionpages as $optpage) {
+        if (!$optpage['js']) {
+            $reg_optionpages[] = $optpage;
+        } else if ($javascript_on == SMPREF_JS_ON) {
+            $js_optionpages[] = $optpage;
+        }
+    }
+    $optionpages = array_merge($reg_optionpages, $js_optionpages);
+
+    /********************************************/
+    /* Now, print out each option page section. */
+    /********************************************/
+    $first_optpage = false;
+    foreach ($optionpages as $next_optpage) {
+        if ($first_optpage == false) {
+            $first_optpage = $next_optpage;
+        } else {
+            print_optionpages_row($first_optpage, $next_optpage);
+            $first_optpage = false;
+        }
+    }
+
+    if ($first_optpage != false) {
+        print_optionpages_row($first_optpage);
+    }
+
+    do_hook('options_link_and_description');
+
+?>
+    </td></tr>
+    </table>
+
+</td></tr>
+</table>
+
+</body></html>
+
+<?php
+
+    /*******************************************************************/
+    /* Please be warned. The code below this point sucks. This is just */
+    /* my first implementation to make the option rows work for both   */
+    /* Javascript and non-Javascript option chunks.                    */
+    /*                                                                 */
+    /* Please, someone make these better for me. All three functions   */
+    /* below REALLY do close to the same thing.                        */
+    /*                                                                 */
+    /* This code would be GREATLY improved by a templating system.     */
+    /* Don't try to implement that now, however. That will come later. */
+    /*******************************************************************/
+
+    /*******************************************************************/
+    /* Actually, now that I think about it, don't do anything with     */
+    /* this code yet. There is ACTUALLY supposed to be a difference    */
+    /* between the three functions that write the option rows. I just  */
+    /* have not yet gotten to integrating that yet.                    */
+    /*******************************************************************/
+
+    /**
+     * This function prints out an option page row.
+     */
+    function print_optionpages_row($leftopt, $rightopt = false) {
+        global $color;
+        
+        echo "<table bgcolor=\"$color[4]\" width=\"100%\" cellpadding=0 cellspacing=5 border=0>" .
+                '<tr><td valign="top">' .
+                   '<table width="100%" cellpadding="3" cellspacing="0" border="0">' .
+                      '<tr>' .
+                         "<td valign=top bgcolor=\"$color[9]\" width=\"50%\">" .
+                            '<a href="' . $leftopt['url'] . '">' . $leftopt['name'] . '</a>'.
+                         '</td>'.
+                         "<td valign=top bgcolor=\"$color[4]\">&nbsp;</td>";
+        if( $rightopt ) {
+            echo         "<td valign=top bgcolor=\"$color[9]\" width=\"50%\">" .
+                            '<a href="' . $rightopt['url'] . '">' . $rightopt['name'] . '</a>' .
+                         '</td>';
+        } else {
+            echo         "<td valign=top bgcolor=\"$color[4]\" width=\"50%\">&nbsp;</td>";
+        }
+        
+        echo          '</tr>' .
+                      '<tr>' .
+                         "<td valign=top bgcolor=\"$color[0]\">" .
+                            $leftopt['desc'] .
+                         '</td>' .
+                         "<td valign=top bgcolor=\"$color[4]\">&nbsp;</td>";
+        if( $rightopt ) {
+            echo         "<td valign=top bgcolor=\"$color[0]\">" .
+                            $rightopt['desc'] .
+                         '</td>';
+        }else {
+            echo "<td valign=top bgcolor=\"$color[4]\">&nbsp;</td>";
+        }
+        
+        echo          '</tr>' .
+                   '</table>' .
+                '</td></tr>' .
+             "</table>\n";
+    }
+
 ?>