OK according to the RFC this fix should be done for all imapservers, sorry about...
[squirrelmail.git] / functions / page_header.php
1 <?php
2
3 /**
4 * page_header.php
5 *
6 * Copyright (c) 1999-2002 The SquirrelMail Project Team
7 * Licensed under the GNU GPL. For full terms see the file COPYING.
8 *
9 * Prints the page header (duh)
10 *
11 * $Id$
12 */
13
14 require_once('../functions/strings.php');
15 require_once('../functions/imap_utf7_decode_local.php');
16
17 /* Always set up the language before calling these functions */
18 function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = TRUE ) {
19
20 global $theme_css, $custom_css, $base_uri;
21
22 echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">' .
23 "\n\n<HTML>\n<HEAD>\n";
24
25 if ( !isset( $custom_css ) || $custom_css == 'none' ) {
26 if ($theme_css != '') {
27 echo "<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"$theme_css\">";
28 }
29 } else {
30 echo '<LINK REL="stylesheet" TYPE="text/css" HREF="' .
31 $base_uri . 'themes/css/'.$custom_css.'">';
32 }
33
34 echo "\n<title>$title</title>$xtra</head>\n\n";
35 }
36
37 function displayInternalLink($path, $text, $target='') {
38 global $base_uri;
39
40 if ($target != '') {
41 $target = " target=\"$target\"";
42 }
43
44 echo '<a href="'.$base_uri.$path.'"'.$target.'>'.$text.'</a>';
45 }
46
47 function displayPageHeader($color, $mailbox, $xtra='', $session=false) {
48
49 global $delimiter, $hide_sm_attributions, $base_uri, $PHP_SELF, $frame_top,
50 $compose_new_win, $username, $datadir, $compose_width, $compose_height,
51 $attachemessages, $session;
52
53 $module = substr( $PHP_SELF, ( strlen( $PHP_SELF ) - strlen( $base_uri ) ) * -1 );
54 if ($qmark = strpos($module, '?')) {
55 $module = substr($module, 0, $qmark);
56 }
57 if (!isset($frame_top)) {
58 $frame_top = '_top';
59 }
60
61 /*
62 Locate the first displayable form element
63 */
64
65 if ($session !== false) {
66 $compose_uri = 'src/compose.php?mailbox='. urlencode($mailbox).'&attachedmessages=true&session='."$session";
67 } else {
68 $compose_uri = 'src/compose.php';
69 }
70
71 switch ( $module ) {
72 case 'src/read_body.php':
73 if ($compose_new_win == '1') {
74 if (!preg_match("/^[0-9]{3,4}$/", $compose_width)) {
75 $compose_width = '640';
76 }
77 if (!preg_match("/^[0-9]{3,4}$/", $compose_height)) {
78 $compose_height = '550';
79 }
80 $js = "\n".'<script language="JavaScript" type="text/javascript">' .
81 "\n<!--\n";
82 $js .= "function comp_in_new() {\n".
83 " var newwin = window.open(\"".$base_uri.$compose_uri. '"'.
84 ", \"compose_window\",
85 \"width=".$compose_width.",height=$compose_height".
86 ",scrollbars=yes,resizable=yes\");\n".
87 "}\n";
88 $js .= "// -->\n".
89 "</script>\n";
90 displayHtmlHeader ('Squirrelmail', $js);
91 }
92 displayHtmlHeader();
93 $onload = $xtra;
94 break;
95 default:
96 $js = '<script language="JavaScript" type="text/javascript">' .
97 "\n<!--\n" .
98 "function checkForm() {\n".
99 "var f = document.forms.length;\n".
100 "var i = 0;\n".
101 "var pos = -1;\n".
102 "while( pos == -1 && i < f ) {\n".
103 "var e = document.forms[i].elements.length;\n".
104 "var j = 0;\n".
105 "while( pos == -1 && j < e ) {\n".
106 "if ( document.forms[i].elements[j].type == 'text' ) {\n".
107 "pos = j;\n".
108 "}\n".
109 "j++;\n".
110 "}\n".
111 "i++;\n".
112 "}\n".
113 "if( pos >= 0 ) {\n".
114 "document.forms[i-1].elements[pos].focus();\n".
115 "}\n".
116 "$xtra\n".
117 "}\n";
118
119 if ($compose_new_win == '1') {
120 if (!preg_match("/^[0-9]{3,4}$/", $compose_width)) {
121 $compose_width = '640';
122 }
123 if (!preg_match("/^[0-9]{3,4}$/", $compose_height)) {
124 $compose_height = '550';
125 }
126 $js .= "function comp_in_new() {\n".
127 ' var newwin = window.open("'.$base_uri.$compose_uri . '"' .
128 ', "compose_window",
129 "width='.$compose_width.",height=$compose_height".
130 ",scrollbars=yes,resizable=yes\");\n".
131 "}\n";
132 }
133 $js .= "// -->\n".
134 "</script>\n";
135 $onload = "onLoad=\"checkForm();\"";
136 displayHtmlHeader ('Squirrelmail', $js);
137 break;
138
139 }
140
141 echo "<BODY TEXT=\"$color[8]\" BGCOLOR=\"$color[4]\" LINK=\"$color[7]\" VLINK=\"$color[7]\" ALINK=\"$color[7]\" $onload>\n\n";
142 /** Here is the header and wrapping table **/
143 $shortBoxName = imap_utf7_decode_local(
144 readShortMailboxName($mailbox, $delimiter));
145 if ( $shortBoxName == 'INBOX' ) {
146 $shortBoxName = _("INBOX");
147 }
148 echo "<A NAME=pagetop></A>\n"
149 . "<TABLE BGCOLOR=\"$color[4]\" BORDER=0 WIDTH=\"100%\" CELLSPACING=0 CELLPADDING=2>\n"
150 . " <TR BGCOLOR=\"$color[9]\" >\n"
151 . " <TD ALIGN=left>\n";
152 if ( $shortBoxName <> '' && strtolower( $shortBoxName ) <> 'none' ) {
153 echo ' ' . _("Current Folder") . ": <B>$shortBoxName&nbsp;</B>\n";
154 } else {
155 echo '&nbsp;';
156 }
157 echo " </TD>\n"
158 . ' <TD ALIGN=right><b>';
159 displayInternalLink ('src/signout.php', _("Sign Out"), $frame_top);
160 echo "</b></TD>\n"
161 . " </TR>\n"
162 . " <TR BGCOLOR=\"$color[4]\">\n"
163 . " <TD ALIGN=left>\n";
164 $urlMailbox = urlencode($mailbox);
165 if ($compose_new_win == '1') {
166 echo "<a href=$base_uri". "src/compose.php?mailbox=$urlMailbox target=".
167 '"compose_window" onClick="comp_in_new()">'. _("Compose"). '</a>';
168 }
169 else {
170 displayInternalLink ("src/compose.php?mailbox=$urlMailbox", _("Compose"), 'right');
171 }
172 echo "&nbsp;&nbsp;\n";
173 displayInternalLink ("src/addressbook.php", _("Addresses"), 'right');
174 echo "&nbsp;&nbsp;\n";
175 displayInternalLink ("src/folders.php", _("Folders"), 'right');
176 echo "&nbsp;&nbsp;\n";
177 displayInternalLink ("src/options.php", _("Options"), 'right');
178 echo "&nbsp;&nbsp;\n";
179 displayInternalLink ("src/search.php?mailbox=$urlMailbox", _("Search"), 'right');
180 echo "&nbsp;&nbsp;\n";
181 displayInternalLink ("src/help.php", _("Help"), 'right');
182 echo "&nbsp;&nbsp;\n";
183
184 do_hook("menuline");
185
186 echo " </TD>\n <TD ALIGN=\"right\">";
187 echo ($hide_sm_attributions ? '&nbsp;' :
188 '<A HREF="http://www.squirrelmail.org/" TARGET="_blank">SquirrelMail</A>');
189 echo "</TD>\n".
190 " </TR>\n".
191 "</TABLE>\n\n";
192 }
193
194 /* blatently copied/truncated/modified from the above function */
195 function compose_Header($color, $mailbox) {
196
197 global $delimiter, $hide_sm_attributions, $base_uri, $PHP_SELF, $frame_top, $compose_new_win;
198
199
200 $module = substr( $PHP_SELF, ( strlen( $PHP_SELF ) - strlen( $base_uri ) ) * -1 );
201 if (!isset($frame_top)) {
202 $frame_top = '_top';
203 }
204
205 /*
206 Locate the first displayable form element
207 */
208 switch ( $module ) {
209 case 'src/search.php':
210 $pos = getPref($data_dir, $username, 'search_pos', 0 ) - 1;
211 $onload = "onLoad=\"document.forms[$pos].elements[2].focus();\"";
212 displayHtmlHeader (_("Compose"));
213 break;
214 default:
215 $js = '<script language="JavaScript" type="text/javascript">' .
216 "\n<!--\n" .
217 "function checkForm() {\n".
218 "var f = document.forms.length;\n".
219 "var i = 0;\n".
220 "var pos = -1;\n".
221 "while( pos == -1 && i < f ) {\n".
222 "var e = document.forms[i].elements.length;\n".
223 "var j = 0;\n".
224 "while( pos == -1 && j < e ) {\n".
225 "if ( document.forms[i].elements[j].type == 'text' ) {\n".
226 "pos = j;\n".
227 "}\n".
228 "j++;\n".
229 "}\n".
230 "i++;\n".
231 "}\n".
232 "if( pos >= 0 ) {\n".
233 "document.forms[i-1].elements[pos].focus();\n".
234 "}\n".
235 "}\n";
236 $js .= "// -->\n".
237 "</script>\n";
238 $onload = "onLoad=\"checkForm();\"";
239 displayHtmlHeader (_("Compose"), $js);
240 break;
241
242 }
243
244 echo "<BODY TEXT=\"$color[8]\" BGCOLOR=\"$color[4]\" LINK=\"$color[7]\" VLINK=\"$color[7]\" ALINK=\"$color[7]\" $onload>\n\n";
245 }
246 ?>