]> scripts.mit.edu Git - autoinstalls/phpBB.git/blob - templates/subSilver/posting_body.tpl
phpBB 2.0.19
[autoinstalls/phpBB.git] / templates / subSilver / posting_body.tpl
1 <script language="JavaScript" type="text/javascript">
2 <!--
3 // bbCode control by
4 // subBlue design
5 // www.subBlue.com
6
7 // Startup variables
8 var imageTag = false;
9 var theSelection = false;
10
11 // Check for Browser & Platform for PC & IE specific bits
12 // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
13 var clientPC = navigator.userAgent.toLowerCase(); // Get client info
14 var clientVer = parseInt(navigator.appVersion); // Get browser version
15
16 var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
17 var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
18                 && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
19                 && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
20 var is_moz = 0;
21
22 var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
23 var is_mac = (clientPC.indexOf("mac")!=-1);
24
25 // Helpline messages
26 b_help = "{L_BBCODE_B_HELP}";
27 i_help = "{L_BBCODE_I_HELP}";
28 u_help = "{L_BBCODE_U_HELP}";
29 q_help = "{L_BBCODE_Q_HELP}";
30 c_help = "{L_BBCODE_C_HELP}";
31 l_help = "{L_BBCODE_L_HELP}";
32 o_help = "{L_BBCODE_O_HELP}";
33 p_help = "{L_BBCODE_P_HELP}";
34 w_help = "{L_BBCODE_W_HELP}";
35 a_help = "{L_BBCODE_A_HELP}";
36 s_help = "{L_BBCODE_S_HELP}";
37 f_help = "{L_BBCODE_F_HELP}";
38
39 // Define the bbCode tags
40 bbcode = new Array();
41 bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]');
42 imageTag = false;
43
44 // Shows the help messages in the helpline window
45 function helpline(help) {
46         document.post.helpbox.value = eval(help + "_help");
47 }
48
49
50 // Replacement for arrayname.length property
51 function getarraysize(thearray) {
52         for (i = 0; i < thearray.length; i++) {
53                 if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
54                         return i;
55                 }
56         return thearray.length;
57 }
58
59 // Replacement for arrayname.push(value) not implemented in IE until version 5.5
60 // Appends element to the array
61 function arraypush(thearray,value) {
62         thearray[ getarraysize(thearray) ] = value;
63 }
64
65 // Replacement for arrayname.pop() not implemented in IE until version 5.5
66 // Removes and returns the last element of an array
67 function arraypop(thearray) {
68         thearraysize = getarraysize(thearray);
69         retval = thearray[thearraysize - 1];
70         delete thearray[thearraysize - 1];
71         return retval;
72 }
73
74
75 function checkForm() {
76
77         formErrors = false;    
78
79         if (document.post.message.value.length < 2) {
80                 formErrors = "{L_EMPTY_MESSAGE}";
81         }
82
83         if (formErrors) {
84                 alert(formErrors);
85                 return false;
86         } else {
87                 bbstyle(-1);
88                 //formObj.preview.disabled = true;
89                 //formObj.submit.disabled = true;
90                 return true;
91         }
92 }
93
94 function emoticon(text) {
95         var txtarea = document.post.message;
96         text = ' ' + text + ' ';
97         if (txtarea.createTextRange && txtarea.caretPos) {
98                 var caretPos = txtarea.caretPos;
99                 caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
100                 txtarea.focus();
101         } else {
102                 txtarea.value  += text;
103                 txtarea.focus();
104         }
105 }
106
107 function bbfontstyle(bbopen, bbclose) {
108         var txtarea = document.post.message;
109
110         if ((clientVer >= 4) && is_ie && is_win) {
111                 theSelection = document.selection.createRange().text;
112                 if (!theSelection) {
113                         txtarea.value += bbopen + bbclose;
114                         txtarea.focus();
115                         return;
116                 }
117                 document.selection.createRange().text = bbopen + theSelection + bbclose;
118                 txtarea.focus();
119                 return;
120         }
121         else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
122         {
123                 mozWrap(txtarea, bbopen, bbclose);
124                 return;
125         }
126         else
127         {
128                 txtarea.value += bbopen + bbclose;
129                 txtarea.focus();
130         }
131         storeCaret(txtarea);
132 }
133
134
135 function bbstyle(bbnumber) {
136         var txtarea = document.post.message;
137
138         txtarea.focus();
139         donotinsert = false;
140         theSelection = false;
141         bblast = 0;
142
143         if (bbnumber == -1) { // Close all open tags & default button names
144                 while (bbcode[0]) {
145                         butnumber = arraypop(bbcode) - 1;
146                         txtarea.value += bbtags[butnumber + 1];
147                         buttext = eval('document.post.addbbcode' + butnumber + '.value');
148                         eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
149                 }
150                 imageTag = false; // All tags are closed including image tags :D
151                 txtarea.focus();
152                 return;
153         }
154
155         if ((clientVer >= 4) && is_ie && is_win)
156         {
157                 theSelection = document.selection.createRange().text; // Get text selection
158                 if (theSelection) {
159                         // Add tags around selection
160                         document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
161                         txtarea.focus();
162                         theSelection = '';
163                         return;
164                 }
165         }
166         else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
167         {
168                 mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
169                 return;
170         }
171         
172         // Find last occurance of an open tag the same as the one just clicked
173         for (i = 0; i < bbcode.length; i++) {
174                 if (bbcode[i] == bbnumber+1) {
175                         bblast = i;
176                         donotinsert = true;
177                 }
178         }
179
180         if (donotinsert) {              // Close all open tags up to the one just clicked & default button names
181                 while (bbcode[bblast]) {
182                                 butnumber = arraypop(bbcode) - 1;
183                                 txtarea.value += bbtags[butnumber + 1];
184                                 buttext = eval('document.post.addbbcode' + butnumber + '.value');
185                                 eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
186                                 imageTag = false;
187                         }
188                         txtarea.focus();
189                         return;
190         } else { // Open tags
191         
192                 if (imageTag && (bbnumber != 14)) {             // Close image tag before adding another
193                         txtarea.value += bbtags[15];
194                         lastValue = arraypop(bbcode) - 1;       // Remove the close image tag from the list
195                         document.post.addbbcode14.value = "Img";        // Return button back to normal state
196                         imageTag = false;
197                 }
198                 
199                 // Open tag
200                 txtarea.value += bbtags[bbnumber];
201                 if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
202                 arraypush(bbcode,bbnumber+1);
203                 eval('document.post.addbbcode'+bbnumber+'.value += "*"');
204                 txtarea.focus();
205                 return;
206         }
207         storeCaret(txtarea);
208 }
209
210 // From http://www.massless.org/mozedit/
211 function mozWrap(txtarea, open, close)
212 {
213         var selLength = txtarea.textLength;
214         var selStart = txtarea.selectionStart;
215         var selEnd = txtarea.selectionEnd;
216         if (selEnd == 1 || selEnd == 2) 
217                 selEnd = selLength;
218
219         var s1 = (txtarea.value).substring(0,selStart);
220         var s2 = (txtarea.value).substring(selStart, selEnd)
221         var s3 = (txtarea.value).substring(selEnd, selLength);
222         txtarea.value = s1 + open + s2 + close + s3;
223         return;
224 }
225
226 // Insert at Claret position. Code from
227 // http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
228 function storeCaret(textEl) {
229         if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
230 }
231
232 //-->
233 </script>
234
235 <!-- BEGIN privmsg_extensions -->
236 <table border="0" cellspacing="0" cellpadding="0" align="center" width="100%">
237   <tr> 
238         <td valign="top" align="center" width="100%"> 
239           <table height="40" cellspacing="2" cellpadding="2" border="0">
240                 <tr valign="middle"> 
241                   <td>{INBOX_IMG}</td>
242                   <td><span class="cattitle">{INBOX_LINK}&nbsp;&nbsp;</span></td>
243                   <td>{SENTBOX_IMG}</td>
244                   <td><span class="cattitle">{SENTBOX_LINK}&nbsp;&nbsp;</span></td>
245                   <td>{OUTBOX_IMG}</td>
246                   <td><span class="cattitle">{OUTBOX_LINK}&nbsp;&nbsp;</span></td>
247                   <td>{SAVEBOX_IMG}</td>
248                   <td><span class="cattitle">{SAVEBOX_LINK}&nbsp;&nbsp;</span></td>
249                 </tr>
250           </table>
251         </td>
252   </tr>
253 </table>
254
255 <br clear="all" />
256 <!-- END privmsg_extensions -->
257
258 <form action="{S_POST_ACTION}" method="post" name="post" onsubmit="return checkForm(this)">
259
260 {POST_PREVIEW_BOX}
261 {ERROR_BOX}
262
263 <table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
264         <tr> 
265                 <td align="left"><span  class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a>
266                 <!-- BEGIN switch_not_privmsg --> 
267                 -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td>
268                 <!-- END switch_not_privmsg -->
269         </tr>
270 </table>
271
272 <table border="0" cellpadding="3" cellspacing="1" width="100%" class="forumline">
273         <tr> 
274                 <th class="thHead" colspan="2" height="25"><b>{L_POST_A}</b></th>
275         </tr>
276         <!-- BEGIN switch_username_select -->
277         <tr> 
278                 <td class="row1"><span class="gen"><b>{L_USERNAME}</b></span></td>
279                 <td class="row2"><span class="genmed"><input type="text" class="post" tabindex="1" name="username" size="25" maxlength="25" value="{USERNAME}" /></span></td>
280         </tr>
281         <!-- END switch_username_select -->
282         <!-- BEGIN switch_privmsg -->
283         <tr> 
284                 <td class="row1"><span class="gen"><b>{L_USERNAME}</b></span></td>
285                 <td class="row2"><span class="genmed"><input type="text"  class="post" name="username" maxlength="25" size="25" tabindex="1" value="{USERNAME}" />&nbsp;<input type="submit" name="usersubmit" value="{L_FIND_USERNAME}" class="liteoption" onClick="window.open('{U_SEARCH_USER}', '_phpbbsearch', 'HEIGHT=250,resizable=yes,WIDTH=400');return false;" /></span></td>
286         </tr>
287         <!-- END switch_privmsg -->
288         <tr> 
289           <td class="row1" width="22%"><span class="gen"><b>{L_SUBJECT}</b></span></td>
290           <td class="row2" width="78%"> <span class="gen"> 
291                 <input type="text" name="subject" size="45" maxlength="60" style="width:450px" tabindex="2" class="post" value="{SUBJECT}" />
292                 </span> </td>
293         </tr>
294         <tr> 
295           <td class="row1" valign="top"> 
296                 <table width="100%" border="0" cellspacing="0" cellpadding="1">
297                   <tr> 
298                         <td><span class="gen"><b>{L_MESSAGE_BODY}</b></span> </td>
299                   </tr>
300                   <tr> 
301                         <td valign="middle" align="center"> <br />
302                           <table width="100" border="0" cellspacing="0" cellpadding="5">
303                                 <tr align="center"> 
304                                   <td colspan="{S_SMILIES_COLSPAN}" class="gensmall"><b>{L_EMOTICONS}</b></td>
305                                 </tr>
306                                 <!-- BEGIN smilies_row -->
307                                 <tr align="center" valign="middle"> 
308                                   <!-- BEGIN smilies_col -->
309                                   <td><a href="javascript:emoticon('{smilies_row.smilies_col.SMILEY_CODE}')"><img src="{smilies_row.smilies_col.SMILEY_IMG}" border="0" alt="{smilies_row.smilies_col.SMILEY_DESC}" title="{smilies_row.smilies_col.SMILEY_DESC}" /></a></td>
310                                   <!-- END smilies_col -->
311                                 </tr>
312                                 <!-- END smilies_row -->
313                                 <!-- BEGIN switch_smilies_extra -->
314                                 <tr align="center"> 
315                                   <td colspan="{S_SMILIES_COLSPAN}"><span  class="nav"><a href="{U_MORE_SMILIES}" onclick="window.open('{U_MORE_SMILIES}', '_phpbbsmilies', 'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=250');return false;" target="_phpbbsmilies" class="nav">{L_MORE_SMILIES}</a></span></td>
316                                 </tr>
317                                 <!-- END switch_smilies_extra -->
318                           </table>
319                         </td>
320                   </tr>
321                 </table>
322           </td>
323           <td class="row2" valign="top"><span class="gen"> <span class="genmed"> </span> 
324                 <table width="450" border="0" cellspacing="0" cellpadding="2">
325                   <tr align="center" valign="middle"> 
326                         <td><span class="genmed"> 
327                           <input type="button" class="button" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onClick="bbstyle(0)" onMouseOver="helpline('b')" />
328                           </span></td>
329                         <td><span class="genmed"> 
330                           <input type="button" class="button" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onClick="bbstyle(2)" onMouseOver="helpline('i')" />
331                           </span></td>
332                         <td><span class="genmed"> 
333                           <input type="button" class="button" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onClick="bbstyle(4)" onMouseOver="helpline('u')" />
334                           </span></td>
335                         <td><span class="genmed"> 
336                           <input type="button" class="button" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onClick="bbstyle(6)" onMouseOver="helpline('q')" />
337                           </span></td>
338                         <td><span class="genmed"> 
339                           <input type="button" class="button" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onClick="bbstyle(8)" onMouseOver="helpline('c')" />
340                           </span></td>
341                         <td><span class="genmed"> 
342                           <input type="button" class="button" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onClick="bbstyle(10)" onMouseOver="helpline('l')" />
343                           </span></td>
344                         <td><span class="genmed"> 
345                           <input type="button" class="button" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onClick="bbstyle(12)" onMouseOver="helpline('o')" />
346                           </span></td>
347                         <td><span class="genmed"> 
348                           <input type="button" class="button" accesskey="p" name="addbbcode14" value="Img" style="width: 40px"  onClick="bbstyle(14)" onMouseOver="helpline('p')" />
349                           </span></td>
350                         <td><span class="genmed"> 
351                           <input type="button" class="button" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onClick="bbstyle(16)" onMouseOver="helpline('w')" />
352                           </span></td>
353                   </tr>
354                   <tr> 
355                         <td colspan="9"> 
356                           <table width="100%" border="0" cellspacing="0" cellpadding="0">
357                                 <tr> 
358                                   <td><span class="genmed"> &nbsp;{L_FONT_COLOR}: 
359                                         <select name="addbbcode18" onChange="bbfontstyle('[color=' + this.form.addbbcode18.options[this.form.addbbcode18.selectedIndex].value + ']', '[/color]');this.selectedIndex=0;" onMouseOver="helpline('s')">
360                                           <option style="color:black; background-color: {T_TD_COLOR1}" value="{T_FONTCOLOR1}" class="genmed">{L_COLOR_DEFAULT}</option>
361                                           <option style="color:darkred; background-color: {T_TD_COLOR1}" value="darkred" class="genmed">{L_COLOR_DARK_RED}</option>
362                                           <option style="color:red; background-color: {T_TD_COLOR1}" value="red" class="genmed">{L_COLOR_RED}</option>
363                                           <option style="color:orange; background-color: {T_TD_COLOR1}" value="orange" class="genmed">{L_COLOR_ORANGE}</option>
364                                           <option style="color:brown; background-color: {T_TD_COLOR1}" value="brown" class="genmed">{L_COLOR_BROWN}</option>
365                                           <option style="color:yellow; background-color: {T_TD_COLOR1}" value="yellow" class="genmed">{L_COLOR_YELLOW}</option>
366                                           <option style="color:green; background-color: {T_TD_COLOR1}" value="green" class="genmed">{L_COLOR_GREEN}</option>
367                                           <option style="color:olive; background-color: {T_TD_COLOR1}" value="olive" class="genmed">{L_COLOR_OLIVE}</option>
368                                           <option style="color:cyan; background-color: {T_TD_COLOR1}" value="cyan" class="genmed">{L_COLOR_CYAN}</option>
369                                           <option style="color:blue; background-color: {T_TD_COLOR1}" value="blue" class="genmed">{L_COLOR_BLUE}</option>
370                                           <option style="color:darkblue; background-color: {T_TD_COLOR1}" value="darkblue" class="genmed">{L_COLOR_DARK_BLUE}</option>
371                                           <option style="color:indigo; background-color: {T_TD_COLOR1}" value="indigo" class="genmed">{L_COLOR_INDIGO}</option>
372                                           <option style="color:violet; background-color: {T_TD_COLOR1}" value="violet" class="genmed">{L_COLOR_VIOLET}</option>
373                                           <option style="color:white; background-color: {T_TD_COLOR1}" value="white" class="genmed">{L_COLOR_WHITE}</option>
374                                           <option style="color:black; background-color: {T_TD_COLOR1}" value="black" class="genmed">{L_COLOR_BLACK}</option>
375                                         </select> &nbsp;{L_FONT_SIZE}:<select name="addbbcode20" onChange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]')" onMouseOver="helpline('f')">
376                                           <option value="7" class="genmed">{L_FONT_TINY}</option>
377                                           <option value="9" class="genmed">{L_FONT_SMALL}</option>
378                                           <option value="12" selected class="genmed">{L_FONT_NORMAL}</option>
379                                           <option value="18" class="genmed">{L_FONT_LARGE}</option>
380                                           <option  value="24" class="genmed">{L_FONT_HUGE}</option>
381                                         </select>
382                                         </span></td>
383                                   <td nowrap="nowrap" align="right"><span class="gensmall"><a href="javascript:bbstyle(-1)" class="genmed" onMouseOver="helpline('a')">{L_BBCODE_CLOSE_TAGS}</a></span></td>
384                                 </tr>
385                           </table>
386                         </td>
387                   </tr>
388                   <tr> 
389                         <td colspan="9"> <span class="gensmall"> 
390                           <input type="text" name="helpbox" size="45" maxlength="100" style="width:450px; font-size:10px" class="helpline" value="{L_STYLES_TIP}" />
391                           </span></td>
392                   </tr>
393                   <tr> 
394                         <td colspan="9"><span class="gen"> 
395                           <textarea name="message" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">{MESSAGE}</textarea>
396                           </span></td>
397                   </tr>
398                 </table>
399                 </span></td>
400         </tr>
401         <tr> 
402           <td class="row1" valign="top"><span class="gen"><b>{L_OPTIONS}</b></span><br /><span class="gensmall">{HTML_STATUS}<br />{BBCODE_STATUS}<br />{SMILIES_STATUS}</span></td>
403           <td class="row2"><span class="gen"> </span> 
404                 <table cellspacing="0" cellpadding="1" border="0">
405                   <!-- BEGIN switch_html_checkbox -->
406                   <tr> 
407                         <td> 
408                           <input type="checkbox" name="disable_html" {S_HTML_CHECKED} />
409                         </td>
410                         <td><span class="gen">{L_DISABLE_HTML}</span></td>
411                   </tr>
412                   <!-- END switch_html_checkbox -->
413                   <!-- BEGIN switch_bbcode_checkbox -->
414                   <tr> 
415                         <td> 
416                           <input type="checkbox" name="disable_bbcode" {S_BBCODE_CHECKED} />
417                         </td>
418                         <td><span class="gen">{L_DISABLE_BBCODE}</span></td>
419                   </tr>
420                   <!-- END switch_bbcode_checkbox -->
421                   <!-- BEGIN switch_smilies_checkbox -->
422                   <tr> 
423                         <td> 
424                           <input type="checkbox" name="disable_smilies" {S_SMILIES_CHECKED} />
425                         </td>
426                         <td><span class="gen">{L_DISABLE_SMILIES}</span></td>
427                   </tr>
428                   <!-- END switch_smilies_checkbox -->
429                   <!-- BEGIN switch_signature_checkbox -->
430                   <tr> 
431                         <td> 
432                           <input type="checkbox" name="attach_sig" {S_SIGNATURE_CHECKED} />
433                         </td>
434                         <td><span class="gen">{L_ATTACH_SIGNATURE}</span></td>
435                   </tr>
436                   <!-- END switch_signature_checkbox -->
437                   <!-- BEGIN switch_notify_checkbox -->
438                   <tr> 
439                         <td> 
440                           <input type="checkbox" name="notify" {S_NOTIFY_CHECKED} />
441                         </td>
442                         <td><span class="gen">{L_NOTIFY_ON_REPLY}</span></td>
443                   </tr>
444                   <!-- END switch_notify_checkbox -->
445                   <!-- BEGIN switch_delete_checkbox -->
446                   <tr> 
447                         <td> 
448                           <input type="checkbox" name="delete" />
449                         </td>
450                         <td><span class="gen">{L_DELETE_POST}</span></td>
451                   </tr>
452                   <!-- END switch_delete_checkbox -->
453                   <!-- BEGIN switch_type_toggle -->
454                   <tr> 
455                         <td></td>
456                         <td><span class="gen">{S_TYPE_TOGGLE}</span></td>
457                   </tr>
458                   <!-- END switch_type_toggle -->
459                 </table>
460           </td>
461         </tr>
462         {POLLBOX} 
463         <tr> 
464           <td class="catBottom" colspan="2" align="center" height="28"> {S_HIDDEN_FORM_FIELDS}<input type="submit" tabindex="5" name="preview" class="mainoption" value="{L_PREVIEW}" />&nbsp;<input type="submit" accesskey="s" tabindex="6" name="post" class="mainoption" value="{L_SUBMIT}" /></td>
465         </tr>
466   </table>
467
468   <table width="100%" cellspacing="2" border="0" align="center" cellpadding="2">
469         <tr> 
470           <td align="right" valign="top"><span class="gensmall">{S_TIMEZONE}</span></td>
471         </tr>
472   </table>
473 </form>
474
475 <table width="100%" cellspacing="2" border="0" align="center">
476   <tr> 
477         <td valign="top" align="right">{JUMPBOX}</td>
478   </tr>
479 </table>
480
481 {TOPIC_REVIEW_BOX}