keep the input field and 'go' button on the same line.
[privoxy.git] / templates / edit-actions-for-url
1 ##############################################################################
2 #
3 # File        :  $Source: /cvsroot/ijbswa/current/templates/edit-actions-for-url,v $
4 #
5 # Purpose     :  Template used to edit the actions associated with a
6 #                particular section in an actions file.
7
8 #
9 # Copyright   :  Written by and Copyright (C) 2001-2008 the SourceForge
10 #                Privoxy team. http://www.privoxy.org/
11 #
12 #                Original Author: Copyright (C) 2001 Jonathan Foster
13 #                http://www.jon-foster.co.uk/
14 #
15 #                This program is free software; you can redistribute it 
16 #                and/or modify it under the terms of the GNU General
17 #                Public License as published by the Free Software
18 #                Foundation; either version 2 of the License, or (at
19 #                your option) any later version.
20 #
21 #                This program is distributed in the hope that it will
22 #                be useful, but WITHOUT ANY WARRANTY; without even the
23 #                implied warranty of MERCHANTABILITY or FITNESS FOR A
24 #                PARTICULAR PURPOSE.  See the GNU General Public
25 #                License for more details.
26 #
27 #                The GNU General Public License should be included with
28 #                this file.  If not, you can view it at
29 #                http://www.gnu.org/copyleft/gpl.html
30 #                or write to the Free Software Foundation, Inc., 59
31 #                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32 #
33 # Revisions   :
34 #    $Log: edit-actions-for-url,v $
35 #    Revision 1.55  2008/09/19 15:26:29  fabiankeil
36 #    Add change-x-forwarded-for{} action to block or add
37 #    X-Forwarded-For headers. Mostly based on code removed
38 #    before 3.0.7.
39 #
40 #    Revision 1.54  2008/03/29 12:14:27  fabiankeil
41 #    Remove send-wafer and send-vanilla-wafer actions.
42 #
43 #    Revision 1.53  2008/03/28 15:13:45  fabiankeil
44 #    Remove inspect-jpegs action.
45 #
46 #    Revision 1.52  2008/03/15 14:52:36  fabiankeil
47 #    Add CGI editor support for the "disable all filters of this type"
48 #    directives "-client-header-filter", "-server-header-filter",
49 #    "-client-header-tagger" and "-server-header-tagger".
50 #
51 #    Revision 1.51  2008/03/07 16:46:49  fabiankeil
52 #    Reword limit-connect{} entry.
53 #
54 #    Revision 1.50  2008/03/04 18:30:44  fabiankeil
55 #    Remove the treat-forbidden-connects-like-blocks action. We now
56 #    use the "blocked" page for forbidden CONNECT requests by default.
57 #
58 #    Revision 1.49  2008/03/01 14:00:47  fabiankeil
59 #    Let the block action take the reason for the block
60 #    as argument and show it on the "blocked" page.
61 #
62 #    Revision 1.48  2007/12/11 21:18:55  fabiankeil
63 #    Make forward-override accessible through the CGI editor.
64 #
65 #    Revision 1.47  2007/12/06 18:21:55  fabiankeil
66 #    Update hide-forwarded-for-headers description.
67 #
68 #    Revision 1.46  2007/11/10 15:06:10  fabiankeil
69 #    - Add support for +hide-referrer{conditional-forge}.
70 #    - Minor rewordings.
71 #
72 #    Revision 1.45  2007/05/24 13:38:45  fabiankeil
73 #    Two minor fixes.
74 #
75 #    Revision 1.44  2007/04/15 16:39:21  fabiankeil
76 #    Introduce tags as alternative way to specify which
77 #    actions apply to a request. At the moment tags can be
78 #    created based on client and server headers.
79 #
80 #    Revision 1.43  2007/03/29 11:40:34  fabiankeil
81 #    Divide @filter-params@ into @client-header-filter-params@
82 #    @content-filter-params@ and @server-header-filter-params@.
83 #
84 #    Revision 1.42  2007/03/20 15:40:00  fabiankeil
85 #    Adjust to new world order with dedicated header-filter actions.
86 #
87 #    Revision 1.41  2007/01/23 16:03:16  fabiankeil
88 #    - Add favicon links.
89 #    - Remove useless W3C validator links.
90 #
91 #    Revision 1.40  2006/12/21 13:01:03  fabiankeil
92 #    Prepare for "split-large-forms".
93 #
94 #    Mention that redirect{} now also understands
95 #    a single pcrs job as argument.
96 #
97 #    Add some table summaries and remove useless validator link.
98 #
99 #    Revision 1.39  2006/10/04 17:37:54  fabiankeil
100 #    JavaScript fix for bug report #1570678.
101 #
102 #    Revision 1.38  2006/09/08 12:06:35  fabiankeil
103 #    Have hide-if-modified-since interpret the random
104 #    range value as minutes instead of hours. Allows
105 #    more fine-grained configuration.
106 #
107 #    Revision 1.37  2006/09/05 18:20:14  fabiankeil
108 #    Sorted alphabetically, fixed spelling mistakes
109 #    and shortened some descriptions.
110 #
111 #    Revision 1.36  2006/08/14 08:29:17  fabiankeil
112 #    Split filter-headers{} into filter-client-headers{}
113 #    and filter-server-headers{}.
114 #
115 #    Revision 1.35  2006/08/03 02:46:42  david__schmidt
116 #    Incorporate Fabian Keil's patch work:\rhttp://www.fabiankeil.de/sourcecode/privoxy/
117 #
118 #    Revision 1.34  2006/07/18 14:49:13  david__schmidt
119 #    Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
120 #    with what was really the latest development (the v_3_0_branch branch)
121 #
122 #    Revision 1.29.2.5  2004/10/05 03:17:26  david__schmidt
123 #    Typo: inspect_jpegs, not inspect-jpegs in form
124 #
125 #    Revision 1.29.2.4  2004/10/03 12:53:46  david__schmidt
126 #    Add the ability to check jpeg images for invalid
127 #    lengths of comment blocks.  Defensive strategy
128 #    against the exploit:
129 #       Microsoft Security Bulletin MS04-028
130 #       Buffer Overrun in JPEG Processing (GDI+) Could
131 #       Allow Code Execution (833987)
132 #    Enabled with +inspect-jpegs in actions files.
133 #
134 #    Revision 1.29.2.3  2002/08/23 02:22:53  hal9
135 #    Fix a perl brain fart with <li> in comments.
136 #
137 #    Revision 1.29.2.1  2002/08/02 12:51:42  oes
138 #    Added top submit button; Consistency with docs: Change default name for action from hide-referer to hide-referrer
139 #
140 #    Revision 1.29  2002/05/21 19:10:57  oes
141 #    Fixed JavaScript error
142 #
143 #    Revision 1.28  2002/05/14 21:36:38  oes
144 #     - Renamed prevent-(setting/reading)-cookies to
145 #       crunch-(incoming/outgoing)-cookies
146 #     - Renamed helplink export to actions-help-prefix
147 #     - Restored alphabetical order of actions
148 #
149 #    Revision 1.27  2002/04/26 22:55:26  jongfoster
150 #    Removing the alternating colors because they've been wrong
151 #    since the actions renames, they're high maintenance, they
152 #    don't look particularly good, and now there are gaps between
153 #    the table cells we don't need them.
154 #
155 #    Revision 1.26  2002/04/26 21:55:17  jongfoster
156 #    Cosmetic change: Making the +filter UI look the same as
157 #    the other actions.
158 #
159 #    Revision 1.25  2002/04/26 21:37:50  jongfoster
160 #    Fixing all(?) the substitutions that were broken in the
161 #    recent actions rename.
162 #
163 #    Revision 1.24  2002/04/26 18:24:28  jongfoster
164 #    Fixing typos in help hyperlinks
165 #
166 #    Revision 1.23  2002/04/26 12:57:02  oes
167 #    Actions renamed, alphabetically sorted, comments fixed, and names linked to help
168 #
169 #    Revision 1.22  2002/04/10 13:32:53  oes
170 #    Made templates modular
171 #
172 #    Revision 1.21  2002/04/08 17:05:18  oes
173 #    Inline a style exception
174 #
175 #    Revision 1.20  2002/04/05 16:01:30  oes
176 #    Correct HTML, external Stylesheets, eye candy, some fixes
177 #
178 #    Revision 1.19  2002/03/26 22:29:56  swa
179 #    we have a new homepage!
180 #
181 #    Revision 1.18  2002/03/24 16:32:08  jongfoster
182 #    Removing logo option
183 #
184 #    Revision 1.17  2002/03/24 15:23:33  jongfoster
185 #    Name changes
186 #
187 #    Revision 1.16  2002/03/24 11:01:06  swa
188 #    name change
189 #
190 #    Revision 1.15  2002/03/23 16:18:15  swa
191 #    renamed every reference to the old name with foobar.
192 #    fixed "application foobar application" tag, fixed
193 #    "the foobar" with "foobar". left junkbuster in cvs
194 #    comments and remarks to history untouched. should
195 #    make final rename easier.
196 #
197 #    Revision 1.14  2002/03/16 15:22:19  jongfoster
198 #    Moving 'alpha' warning to the end of the page
199 #
200 #    Revision 1.13  2002/03/16 14:28:38  jongfoster
201 #    First version of modular filters support
202 #
203 #    Revision 1.12  2002/03/12 01:42:50  oes
204 #    Introduced modular filters
205 #
206 #    Revision 1.11  2002/03/08 18:19:14  jongfoster
207 #    Adding +image-blocker{pattern} option to edit interface
208 #
209 #    Revision 1.10  2002/03/03 10:29:12  swa
210 #    point users to the right feedback forms,
211 #    not necessarily the developer list.
212 #
213 #    Revision 1.9  2002/01/23 00:26:45  jongfoster
214 #    Reducing length of URLs
215 #    Where encoded and unencoded versions of a string existed, removing
216 #    the unencoded one.
217 #
218 #    Revision 1.8  2002/01/17 21:33:00  jongfoster
219 #    Replacing all references to the URL of the config interface
220 #    with @default-cgi@
221 #
222 #    Revision 1.7  2002/01/17 21:21:03  jongfoster
223 #    DOS->Unix line endings
224 #
225 #    Revision 1.6  2001/11/22 21:58:41  jongfoster
226 #    Adding action +no-cookies-keep
227 #
228 #    Revision 1.5  2001/11/13 21:12:17  jongfoster
229 #    Added support for the following actions:
230 #    +downgrade, +limit-connect, +no-compression
231 #
232 #    Revision 1.4  2001/11/13 00:58:18  jongfoster
233 #    New version of actions file editor templates
234 #
235 #
236 ##############################################################################
237 #
238 # Browser support for the JavaScript on this page:
239 #   MS Internet Explorer 5.5 - Tested,   Yes
240 #   Netscape 6.0             - Tested,   Yes
241 #   Netscape 4.75            - Tested,   NO
242 #   Opera 5.12               - Tested,   NO
243 #   MS Internet Explorer 4+  - Untested, Yes
244 #   MS IE 3.x, NS3.x         - Untested, NO
245 #   Mozilla >=0.6            - Untested, Yes
246 #
247 # All browsers should work, you just might not get the pretty DHTML effects.
248 #
249 # The effects that only work under the browsers marked "Yes" above are:
250 #  - Text edit boxes that won't have any effect are disabled.
251 #  - Table rows containing additional settings are hidden if the feature in
252 #    question is disabled.
253 #
254 # There are major kludges to get around these problems with NS4, but they
255 # screw up the HTML too much for other browsers.  If anyone wants to try,
256 # here's some descriptions of the kludges:
257 #    http://www.webreference.com/js/tips/991114.html
258 #    http://www.webreference.com/dhtml/column12/outDisplay.html
259 #
260 # If you're favorite browser isn't listed, please test and add it.
261 #
262 #
263 #############################################################################
264 #
265 # Standard support:
266 #
267 # This file currently produces valid HTML 4.01 Strict.
268 #
269 # If you change it, please save the generated page from your web browser
270 # and then upload it to http://validator.w3.org/ for checking.
271 #
272 #############################################################################
273 #
274 # Available variables include:
275 #
276 # action-name-y
277 # action-name-n
278 # action-name-x
279 #
280 # deanimate-gifs-param-first
281 # deanimate-gifs-param-last
282 # hide-from-param-block
283 # hide-from-param-custom
284 # hide-from-param
285 # hide-referrer-param-forge
286 # hide-referrer-param-block
287 # hide-referrer-param-custom
288 # hide-referrer-param
289 # hide-user-agent-param
290 # image-blocker-param-pattern
291 # image-blocker-param-blank
292 # image-blocker-param-custom
293 #
294 #
295 #############################################################################
296 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
297 <html>
298
299 <head>
300   <meta http-equiv="Content-Style-Type" content="text/css">
301   <meta http-equiv="Content-Script-Type" content="text/javascript">
302   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
303   <meta name="robots" content="noindex,nofollow">
304   <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
305   <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
306
307   <title>Privoxy@@my-hostname@: Edit actions</title>
308
309 <style type="text/css">
310 td.action    { font-weight: bold;
311                font-style: italic;
312                white-space: nowrap       }
313 td.subaction { font-style: italic        }
314 th           { font-weight: bold;        }
315 # This is the key to the color names below:
316 # bg=background, en="Enable", dis="Disable", noc="No Change", hdr=header
317 # 1=odd rows, 2=even rows, h=Table header
318 tr.hdr       { background-color: #999999 }
319 tr.bg1       { background-color: #eeeeee }
320 td.en1       { background-color: #ddffdd }
321 td.dis1      { background-color: #ffdddd }
322 td.noc1      { background-color: #ddddff }
323 th.enh       { background-color: #99ff99 }
324 th.dish      { background-color: #ff9999 }
325 th.noch      { background-color: #9999ff }
326 table.wide   { padding: 5px; }
327 td.green     { border: solid black 1px; background-color: #ddffdd; }
328 </style>
329
330 <!--
331 border-color: white;
332                border-style: solid;
333                border-left-width: 10px;
334                border-right-width: 10px;
335                border-top-width: 0px;
336                border-bottom-width: 0px  }
337 -->
338
339 <script type="text/javascript">
340 <!--
341
342 function hide_from_header_param_disable(tf)
343 {
344     if (document.getElementById) {
345         // NS6 or IE5
346         document.getElementById("hide_from_header_param").disabled = tf;
347     } else if (document.all) {
348         // IE4
349         document.myform.hide_from_header_param.disabled = tf;
350     }
351 }
352
353 function hide_referrer_param_disable(tf)
354 {
355     if (document.getElementById) {
356         document.getElementById("hide_referrer_param").disabled = tf;
357     } else if (document.all) {
358         document.myform.hide_referrer_param.disabled = tf;
359     }
360 }
361
362 function set_image_blocker_param_disable(tf)
363 {
364     if (document.getElementById) {
365         document.getElementById("set_image_blocker_param").disabled = tf;
366     } else if (document.all) {
367         document.myform.set_image_blocker_param.disabled = tf;
368     }
369 }
370
371 function show_add_header_opts(tf)
372 {
373     if (document.getElementById) {
374         target = document.getElementById("add_header_opts");
375     } else if (document.all) {
376         target = document.add_header_opts;
377     } else {
378         return;
379     }
380     target.style.display = (tf ? "" : "none");
381 }
382
383 function show_deanimate_opts(tf)
384 {
385     if (document.getElementById) {
386         target = document.getElementById("deanimate_opts");
387     } else if (document.all) {
388         target = document.deanimate_opts;
389     } else {
390         return;
391     }
392     target.style.display = (tf ? "" : "none");
393 }
394
395 function show_hide_from_header_opts(tf)
396 {
397     if (document.getElementById) {
398         target = document.getElementById("hide_from_header_opts");
399     } else if (document.all) {
400         target = document.hide_from_header_opts;
401     } else {
402         return;
403     }
404     target.style.display = (tf ? "" : "none");
405 }
406
407 function show_hide_referrer_opts(tf)
408 {
409     if (document.getElementById) {
410         target = document.getElementById("hide_referrer_opts");
411     } else if (document.all) {
412         target = document.hide_referrer_opts;
413     } else {
414         return;
415     }
416     target.style.display = (tf ? "" : "none");
417 }
418
419 function show_user_agent_opts(tf)
420 {
421     if (document.getElementById) {
422         target = document.getElementById("user_agent_opts");
423     } else if (document.all) {
424         target = document.user_agent_opts;
425     } else {
426         return;
427     }
428     target.style.display = (tf ? "" : "none");
429 }
430
431 function show_set_image_blocker_opts(tf)
432 {
433     if (document.getElementById) {
434         target = document.getElementById("set_image_blocker_opts");
435     } else if (document.all) {
436         target = document.set_image_blocker_opts;
437     } else {
438         return;
439     }
440     target.style.display = (tf ? "" : "none");
441 }
442
443 function show_limit_connect_opts(tf)
444 {
445     if (document.getElementById) {
446         target = document.getElementById("limit_connect_opts");
447     } else if (document.all) {
448         target = document.limit_connect_opts;
449     } else {
450         return;
451     }
452     target.style.display = (tf ? "" : "none");
453 }
454
455 //-->
456 </script>
457 </head>
458
459 <body>
460
461 <!-- @if-one-form-only-start -->
462 <form method="GET" action="edit-actions-submit" id="myform" name="myform">
463 <!-- if-one-form-only-end@ -->
464
465   <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
466     <tr>
467       <td class="title">
468
469 #include mod-title
470
471       </td>
472     </tr>
473
474 <!-- @if-unstable-start -->
475 # This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
476     <tr>
477       <td class="warning">
478
479 #include mod-unstable-warning
480
481       </td>
482     </tr>
483 <!-- if-unstable-end@ -->
484
485 <!-- @if-one-form-only-start -->
486     <tr>
487       <td class="box">
488         <h2>Edit Actions
489           <input type="hidden" name="f" value="@f@">
490           <input type="hidden" name="v" value="@v@">
491           <input type="hidden" name="s" value="@s@">
492         </h2>
493       </td>
494     </tr>
495
496     <tr>
497       <td class="green" align="center">
498         <p><input type="submit" value="Submit" name="Submit"></p>
499       </td>
500     </tr>
501 <!-- if-one-form-only-end@ -->
502
503 <tr><td class="wrapbox">
504
505 <!-- @if-multiple-forms-start -->
506 <form method="GET" action="edit-actions-submit" id="myform" name="myform">
507   <h2>Edit Actions (Section 1)</h2>
508 <!-- if-multiple-forms-end@ -->
509
510   <table summary="Action section 1" border="0" cellspacing="2" width="100%" class="wide">
511     <tr class="hdr" align="left">
512       <th class="enh" align="center">Enable</th>
513       <th class="dish" align="center">Disable</th>
514       <th class="noch" align="center">No Change</th>
515       <th>Action</th>
516       <th>Description</th>
517     </tr>
518     <tr class="bg1" align="left" valign="top">
519       <td class="en1" align="center" valign="middle"><input type="radio"
520         name="add_header" id="add_header_y" value="Y" @add-header-y@
521         onclick="show_add_header_opts(true)"></td>
522       <td class="dis1" align="center" valign="middle"><input type="radio"
523         name="add_header" value="N" @add-header-n@
524         onclick="show_add_header_opts(false)"></td>
525       <td class="noc1" align="center" valign="middle"><input type="radio"
526         name="add_header" value="X" @add-header-x@
527         onclick="show_add_header_opts(false)"></td>
528       <td class="action"><a href="@user-manual@@actions-help-prefix@ADD-HEADER">add-header</a></td>
529       <td>Adds HTTP headers.</td>
530     </tr>
531     <tr class="bg1" align="left" valign="top" id="add_header_opts">
532       <td class="en1">&nbsp;</td>
533       <td class="dis1">&nbsp;</td>
534       <td class="noc1">&nbsp;</td>
535       <td>&nbsp;</td>
536       <td>Editing the settings for this option, or turning
537         it on if it was off, is not yet supported using this web-based
538         editor.</td>
539     </tr>
540     <tr class="bg1" align="left" valign="top">
541       <td class="en1" align="center" valign="middle"><input type="radio"
542         name="block" value="Y" @block-y@
543         ></td>
544       <td class="dis1" align="center" valign="middle"><input type="radio"
545         name="block" value="N" @block-n@
546         ></td>
547       <td class="noc1" align="center" valign="middle"><input type="radio"
548         name="block" value="X" @block-x@
549         ></td>
550       <td class="action"><a href="@user-manual@@actions-help-prefix@BLOCK">block</a></td>
551       <td>Block the request.</td>
552     </tr>
553     <tr class="bg1" align="left" valign="top" id="block_opts">
554       <td class="en1">&nbsp;</td>
555       <td class="dis1">&nbsp;</td>
556       <td class="noc1">&nbsp;</td>
557       <td>&nbsp;</td>
558       <td>Block reason to tell the user:<br>
559         <input type="text" name="block_mode" size="40" value="@block-param@">
560       </td>
561     </tr>
562     <tr class="bg1" align="left" valign="top">
563       <td class="en1" align="center" valign="middle"><input type="radio"
564         name="change_x_forwarded_for" id="change_x_forwarded_for_y" value="Y" @change-x-forwarded-for-y@
565         onclick="show_change_x_forwarded_for_opts(true)"></td>
566       <td class="dis1" align="center" valign="middle"><input type="radio"
567         name="change_x_forwarded_for" value="N" @change-x-forwarded-for-n@
568         onclick="show_change_x_forwarded_for_opts(false)"></td>
569       <td class="noc1" align="center" valign="middle"><input type="radio"
570         name="change_x_forwarded_for" value="X" @change-x-forwarded-for-x@
571         onclick="show_change_x_forwarded_for_opts(false)"></td>
572       <td class="action"><a href="@user-manual@@actions-help-prefix@CHANGE-X-FORWARDED-FOR">change-x-forwarded-for</a></td>
573       <td>Specifies whether to block or add X-Forwarded-For headers.</td>
574     </tr>
575     <tr class="bg1" align="left" valign="top" id="change_x_forwarded_for_opts">
576       <td class="en1">&nbsp;</td>
577       <td class="dis1">&nbsp;</td>
578       <td class="noc1">&nbsp;</td>
579       <td>&nbsp;</td>
580       <td><input type="radio" name="change_x_forwarded_for_mode" value="block"
581         id="change_x_forwarded_for_mode_block" @change-x-forwarded-for-param-block@><label
582         for="change_x_forwarded_for_mode_block">Block the header.</label><br>
583         <input type="radio" name="change_x_forwarded_for_mode" value="add"
584         id="change_x_forwarded_for_mode_add" @change-x-forwarded-for-param-add@><label 
585         for="change_x_forwarded_for_mode_add">Add the header.</label><br>
586     </tr>
587     <tr class="bg1" align="left" valign="top">
588       <td class="en1">&nbsp;</td>
589       <td class="dis1" align="center" valign="middle"><input type="radio"
590         name="client_header_filter_all" id="client_header_filter_all_n" value="N" @client-header-filter-all-n@ ></td>
591       <td class="noc1" align="center" valign="middle"><input type="radio"
592         name="client_header_filter_all" id="client_header_filter_all_x" value="X" @client-header-filter-all-x@ ></td>
593       <td class="action"><a href="@user-manual@@actions-help-prefix@CLIENT-HEADER-FILTER">client-header-filter</a> *</td>
594       <td>Filter the client headers.
595         You can use the radio buttons on this line to disable
596         all client-header filters applied by previous rules, and/or
597         you can enable or disable the filters individually below.</td>
598     </tr>
599 @client-header-filter-params@
600     <tr class="bg1" align="left" valign="top">
601       <td class="en1">&nbsp;</td>
602       <td class="dis1" align="center" valign="middle"><input type="radio"
603         name="client_header_tagger_all" id="client_header_tagger_all_n" value="N" @client-header-tagger-all-n@ ></td>
604       <td class="noc1" align="center" valign="middle"><input type="radio"
605         name="client_header_tagger_all" id="client_header_tagger_all_x" value="X" @client-header-tagger-all-x@ ></td>
606       <td class="action"><a href="@user-manual@@actions-help-prefix@CLIENT-HEADER-TAGGER">client-header-tagger</a> *</td>
607       <td>Create tags based on the client headers.
608         You can use the radio buttons on this line to disable
609         all client-header taggers applied by previous rules, and/or
610         you can enable or disable the taggers individually below.</td>
611     </tr>
612 @client-header-tagger-params@
613    <tr class="bg1" align="left" valign="top">
614       <td class="en1" align="center" valign="middle"><input type="radio"
615         name="content_type_overwrite" value="Y" @content-type-overwrite-y@
616         ></td>
617       <td class="dis1" align="center" valign="middle"><input type="radio"
618         name="content_type_overwrite" value="N" @content-type-overwrite-n@
619         ></td>
620       <td class="noc1" align="center" valign="middle"><input type="radio"
621         name="content_type_overwrite" value="X" @content-type-overwrite-x@
622         ></td>
623       <td class="action"><a href="@user-manual@@actions-help-prefix@CONTENT_TYPE_OVERWRITE">content-type-overwrite</a></td>
624       <td>Replace Content-Type header. By default it only applies to
625          text documents, but if you know what you're doing you
626          can enable force-text-mode to modify binary content types as well.</td>
627     </tr>
628     <tr class="bg1" align="left" valign="top" id="content_type_overwrite_opts">
629       <td class="en1">&nbsp;</td>
630       <td class="dis1">&nbsp;</td>
631       <td class="noc1">&nbsp;</td>
632       <td>&nbsp;</td>
633       <td>New Content-Type:<br>
634         <input type="text" name="content_type_overwrite_mode" size="40"
635         value="@content-type-overwrite-param@"></td>
636     </tr>
637     <tr class="bg1" align="left" valign="top">
638       <td class="en1" align="center" valign="middle"><input type="radio"
639         name="crunch_client_header" id="crunch_client_header_y" value="Y" @crunch-client-header-y@
640         ></td>
641       <td class="dis1" align="center" valign="middle"><input type="radio"
642         name="crunch_client_header" value="N" @crunch-client-header-n@
643         ></td>
644       <td class="noc1" align="center" valign="middle"><input type="radio"
645         name="crunch_client_header" value="X" @crunch-client-header-x@
646         ></td>
647       <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-CLIENT-HEADER">crunch-client-header</a></td>
648       <td>Remove header(s) matching the supplied pattern.</td>
649     </tr>
650     <tr class="bg1" align="left" valign="top" id="crunch_client_header_opts">
651       <td class="en1">&nbsp;</td>
652       <td class="dis1">&nbsp;</td>
653       <td class="noc1">&nbsp;</td>
654       <td>&nbsp;</td>
655       <td>Header string to suppress:<br>
656         <input type="text" name="crunch_client_header_mode" size="40"
657         value="@crunch-client-header-param@"></td>
658     </tr>
659     <tr class="bg1" align="left" valign="top">
660       <td class="en1" align="center" valign="middle"><input type="radio"
661         name="crunch_if_none_match" value="Y" @crunch-if-none-match-y@
662         ></td>
663       <td class="dis1" align="center" valign="middle"><input type="radio"
664         name="crunch_if_none_match" value="N" @crunch-if-none-match-n@
665         ></td>
666       <td class="noc1" align="center" valign="middle"><input type="radio"
667         name="crunch_if_none_match" value="X" @crunch-if-none-match-x@
668         ></td>
669       <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH_IF_NONE_MATCH">crunch-if-none-match</a></td>
670       <td>Remove If-None-Match header. Useful for filter testing
671          and to make sure the header can't be used to track your visits.</td>
672     </tr>
673
674     <tr class="bg1" align="left" valign="top">
675       <td class="en1" align="center" valign="middle"><input type="radio"
676         name="crunch_incoming_cookies" value="Y" @crunch-incoming-cookies-y@
677         ></td>
678       <td class="dis1" align="center" valign="middle"><input type="radio"
679         name="crunch_incoming_cookies" value="N" @crunch-incoming-cookies-n@
680         ></td>
681       <td class="noc1" align="center" valign="middle"><input type="radio"
682         name="crunch_incoming_cookies" value="X" @crunch-incoming-cookies-x@
683         ></td>
684       <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></td>
685       <td>Prevent the website from setting HTTP cookies on your system.</td>
686     </tr>
687     <tr class="bg1" align="left" valign="top">
688       <td class="en1" align="center" valign="middle"><input type="radio"
689         name="crunch_outgoing_cookies" value="Y" @crunch-outgoing-cookies-y@
690         ></td>
691       <td class="dis1" align="center" valign="middle"><input type="radio"
692         name="crunch_outgoing_cookies" value="N" @crunch-outgoing-cookies-n@
693         ></td>
694       <td class="noc1" align="center" valign="middle"><input type="radio"
695         name="crunch_outgoing_cookies" value="X" @crunch-outgoing-cookies-x@
696         ></td>
697       <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></td>
698       <td>Prevent the website from reading HTTP cookies from your system.</td>
699     </tr>
700     <tr class="bg1" align="left" valign="top">
701       <td class="en1" align="center" valign="middle"><input type="radio"
702         name="crunch_server_header" id="crunch_server_header_y" value="Y" @crunch-server-header-y@
703         ></td>
704       <td class="dis1" align="center" valign="middle"><input type="radio"
705         name="crunch_server_header" value="N" @crunch-server-header-n@
706         ></td>
707       <td class="noc1" align="center" valign="middle"><input type="radio"
708         name="crunch_server_header" value="X" @crunch-server-header-x@
709         ></td>
710       <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-SERVER-HEADER">crunch-server-header</a></td>
711       <td>Remove server header(s) matching the supplied pattern.</td>
712     </tr>
713     <tr class="bg1" align="left" valign="top" id="crunch_server_header_opts">
714       <td class="en1">&nbsp;</td>
715       <td class="dis1">&nbsp;</td>
716       <td class="noc1">&nbsp;</td>
717       <td>&nbsp;</td>
718       <td>Header string to suppress:<br>
719         <input type="text" name="crunch_server_header_mode" size="40"
720         value="@crunch-server-header-param@"></td>
721     </tr>
722
723     <tr class="bg1" align="left" valign="top">
724       <td class="en1" align="center" valign="middle"><input type="radio"
725         name="deanimate_gifs" id="deanimate_gifs_y" value="Y" @deanimate-gifs-y@
726         onclick="show_deanimate_opts(true)"></td>
727       <td class="dis1" align="center" valign="middle"><input type="radio"
728         name="deanimate_gifs" value="N" @deanimate-gifs-n@
729         onclick="show_deanimate_opts(false)"></td>
730       <td class="noc1" align="center" valign="middle"><input type="radio"
731         name="deanimate_gifs" value="X" @deanimate-gifs-x@
732         onclick="show_deanimate_opts(false)"></td>
733       <td class="action"><a href="@user-manual@@actions-help-prefix@DEANIMATE-GIFS">deanimate-gifs</a></td>
734       <td>Replace animated GIFs with their (first/last) frame.</td>
735     </tr>
736     <tr class="bg1" align="left" valign="top" id="deanimate_opts">
737       <td class="en1">&nbsp;</td>
738       <td class="dis1">&nbsp;</td>
739       <td class="noc1">&nbsp;</td>
740       <td>&nbsp;</td>
741       <td>Use the <input type="radio" name="deanimate_gifs_mode"
742         value="first" id="deanimate_first" @deanimate-gifs-param-first@><label
743         for="deanimate_first">first frame</label>&nbsp;&nbsp; <input
744         type="radio" name="deanimate_gifs_mode" value="last" 
745         id="deanimate_last" @deanimate-gifs-param-last@><label
746         for="deanimate_last">last frame</label></td>
747     </tr>
748     <tr class="bg1" align="left" valign="top">
749       <td class="en1" align="center" valign="middle"><input type="radio"
750         name="downgrade_http_version" value="Y" @downgrade-http-version-y@></td>
751       <td class="dis1" align="center" valign="middle"><input type="radio"
752         name="downgrade_http_version" value="N" @downgrade-http-version-n@></td>
753       <td class="noc1" align="center" valign="middle"><input type="radio"
754         name="downgrade_http_version" value="X" @downgrade-http-version-x@></td>
755       <td class="action"><a href="@user-manual@@actions-help-prefix@DOWNGRADE-HTTP-VERSION"
756        >downgrade-http-version</a></td>
757       <td>Change HTTP/1.1 requests to HTTP/1.0.  Only change if you know
758         what you're doing!</td>
759     </tr>
760     <tr class="bg1" align="left" valign="top">
761       <td class="en1" align="center" valign="middle"><input type="radio"
762         name="fast_redirects" value="Y" @fast-redirects-y@
763         ></td>
764       <td class="dis1" align="center" valign="middle"><input type="radio"
765         name="fast_redirects" value="N" @fast-redirects-n@
766         ></td>
767       <td class="noc1" align="center" valign="middle"><input type="radio"
768         name="fast_redirects" value="X" @fast-redirects-x@
769         ></td>
770       <td class="action"><a href="@user-manual@@actions-help-prefix@FAST-REDIRECTS">fast-redirects</a></td>
771       <td>Bypass some click-tracking URLs.</td>
772     </tr>
773     <tr class="bg1" align="left" valign="top" id="fast-redirects_opts">
774       <td class="en1">&nbsp;</td>
775       <td class="dis1">&nbsp;</td>
776       <td class="noc1">&nbsp;</td>
777       <td>&nbsp;</td>
778       <td>
779        <input type="radio" name="fast_redirects_mode"
780         value="simple-check" id="fast_redirects_simple_check" @fast-redirects-param-simple-check@><label
781         for="fast_redirects_simple_check">Simple check.</label>
782        <br>
783        <input type="radio" name="fast_redirects_mode" value="check-decoded-url" 
784         id="fast_redirects_check_decoded_url" @fast-redirects-param-check-decoded-url@><label
785         for="fast_redirects_check_decoded_url">Decode URL before checking.</label></td>
786     </tr>
787 <!-- @if-multiple-forms-start -->
788    </table>
789    <p>
790     <input type="hidden" name="f" value="@f@">
791     <input type="hidden" name="v" value="@v@">
792     <input type="hidden" name="s" value="@s@">
793     <input type="submit" value="Submit changes in Section 1" name="Submit">
794   </p>
795   </form>
796  </td></tr>
797  <tr><td class="wrapbox">
798   <form method="GET" action="edit-actions-submit" id="myform-2" name="myform">
799   <h2>Edit Actions (Section 2)</h2>
800   <table summary="Action section 2" border="0" cellspacing="2" width="100%" class="wide">
801     <tr class="hdr" align="left">
802       <th class="enh" align="center">Enable</th>
803       <th class="dish" align="center">Disable</th>
804       <th class="noch" align="center">No Change</th>
805       <th>Action</th>
806       <th>Description</th>
807     </tr>
808 <!-- if-multiple-forms-end@ -->
809     <tr class="bg1" align="left" valign="top">
810       <td class="en1">&nbsp;</td>
811       <td class="dis1" align="center" valign="middle"><input type="radio"
812         name="filter_all" id="filter_all_n" value="N" @filter-all-n@ ></td>
813       <td class="noc1" align="center" valign="middle"><input type="radio"
814         name="filter_all" id="filter_all_x" value="X" @filter-all-x@ ></td>
815       <td class="action"><a href="@user-manual@@actions-help-prefix@FILTER">filter</a> *</td>
816       <td>Filter the website through regular expression
817         filters.  You can use the radio buttons on this line to disable
818         all filters applied by previous rules, and/or you can enable or
819         disable the filters individually below.</td>
820     </tr>
821
822 @content-filter-params@
823
824 <!-- @if-multiple-forms-start -->
825    </table>
826    <p>
827     <input type="hidden" name="f" value="@f@">
828     <input type="hidden" name="v" value="@v@">
829     <input type="hidden" name="s" value="@s@">
830     <input type="submit" value="Submit changes in Section 2" name="Submit">
831    </p>
832   </form>
833  </td></tr>
834  <tr><td class="wrapbox">
835   <form method="GET" action="edit-actions-submit" id="myform-3" name="myform">
836   <h2>Edit Actions (Section 3)</h2>
837   <table summary="Action section 3" border="0" cellspacing="2" width="100%" class="wide">
838     <tr class="hdr" align="left">
839       <th class="enh" align="center">Enable</th>
840       <th class="dish" align="center">Disable</th>
841       <th class="noch" align="center">No Change</th>
842       <th>Action</th>
843       <th>Description</th>
844     </tr>
845 <!-- if-multiple-forms-end@ -->
846    <tr class="bg1" align="left" valign="top">
847       <td class="en1" align="center" valign="middle"><input type="radio"
848         name="force_text_mode" value="Y" @force-text-mode-y@
849         ></td>
850       <td class="dis1" align="center" valign="middle"><input type="radio"
851         name="force_text_mode" value="N" @force-text-mode-n@
852         ></td>
853       <td class="noc1" align="center" valign="middle"><input type="radio"
854         name="force_text_mode" value="X" @force-text-mode-x@
855         ></td>
856       <td class="action"><a href="@user-manual@@actions-help-prefix@FORCE_TEXT_MODE">force-text-mode</a></td>
857       <td>
858        Enable filtering on documents whose Content-Type wasn't recognized as text.
859        Do think twice, nothing is alright.
860      </td>
861     </tr>
862     <tr class="bg1" align="left" valign="top">
863       <td class="en1" align="center" valign="middle"><input type="radio"
864         name="forward_override" id="forward_override_y" value="Y" @forward-override-y@
865         ></td>
866       <td class="dis1" align="center" valign="middle"><input type="radio"
867         name="forward_override" id="forward_override_n" value="N" @forward-override-n@
868         ></td>
869       <td class="noc1" align="center" valign="middle"><input type="radio"
870         name="forward_override" id="forward_override_x" value="X" @forward-override-x@
871         ></td>
872       <td class="action"><a href="@user-manual@@actions-help-prefix@FORWARD-OVERRIDE">forward-override</a></td>
873       <td>Override forward directives in the configuration file.
874           Note that the <a href="@user-manual@actions-file.html#FORWARD-OVERRIDE">parameter syntax</a>
875           isn't checked until the action is used. <strong class="warning">Syntax errors
876           will cause Privoxy to exit.</strong></td>
877     </tr>
878     <tr class="bg1" align="left" valign="top" id="forward_override_language_opts">
879       <td class="en1">&nbsp;</td>
880       <td class="dis1">&nbsp;</td>
881       <td class="noc1">&nbsp;</td>
882       <td>&nbsp;</td>
883       <td>
884         Overriding forward directive:<br>
885         <input type="text" name="forward_override_param" 
886         id="forward_override_param" size="40"
887         value="@forward-override-param@"><br>
888      </td>
889     </tr>
890    <tr class="bg1" align="left" valign="top">
891       <td class="en1" align="center" valign="middle"><input type="radio"
892         name="handle_as_empty_document" value="Y" @handle-as-empty-document-y@
893         ></td>
894       <td class="dis1" align="center" valign="middle"><input type="radio"
895         name="handle_as_empty_document" value="N" @handle-as-empty-document-n@
896         ></td>
897       <td class="noc1" align="center" valign="middle"><input type="radio"
898         name="handle_as_empty_document" value="X" @handle-as-empty-document-x@
899         ></td>
900       <td class="action"><a href="@user-manual@@actions-help-prefix@HANDLE_AS_EMPTY_DOCUMENT">handle-as-empty-document</a></td>
901       <td>
902        Block with an <em>empty</em> document instead of an Image or HTML message.
903        The <em>empty</em> document contains only a space and can safely be parsed
904        as JavaScript or Style Sheet. Use content-type-overwrite to specify the
905        Content-Type, default is <q>text/html</q>.
906      </td>
907     </tr>
908     <tr class="bg1" align="left" valign="top">
909       <td class="en1" align="center" valign="middle"><input type="radio"
910         name="handle_as_image" value="Y" @handle-as-image-y@
911         ></td>
912       <td class="dis1" align="center" valign="middle"><input type="radio"
913         name="handle_as_image" value="N" @handle-as-image-n@
914         ></td>
915       <td class="noc1" align="center" valign="middle"><input type="radio"
916         name="handle_as_image" value="X" @handle-as-image-x@
917         ></td>
918       <td class="action"><a href="@user-manual@@actions-help-prefix@HANDLE-AS-IMAGE">handle-as-image</a></td>
919       <td>Request is for an image (only useful in conjunction with the <i><b><a href="@user-manual@@actions-help-prefix@BLOCK">block</a></b></i>
920         and <i><b><a href="@user-manual@@actions-help-prefix@SET-IMAGE-BLOCKER">set-image-blocker</a></b></i> actions).</td>
921     </tr>
922     <tr class="bg1" align="left" valign="top">
923       <td class="en1" align="center" valign="middle"><input type="radio"
924         name="hide_accept_language" id="hide_accept_language_y" value="Y" @hide-accept-language-y@
925         onclick="show_hide_accept_language_opts(true)"></td>
926       <td class="dis1" align="center" valign="middle"><input type="radio"
927         name="hide_accept_language" id="hide_accept_language_n" value="N" @hide-accept-language-n@
928         onclick="show_hide_accept_language_opts(false)"></td>
929       <td class="noc1" align="center" valign="middle"><input type="radio"
930         name="hide_accept_language" id="hide_accept_language_x" value="X" @hide-accept-language-x@
931         onclick="show_hide_accept_language_opts(false)"
932         ></td>
933       <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-ACCEPT-LANGUAGE">hide-accept-language</a></td>
934       <td>Pretend to have different language settings. (Makes a fake User-Agent more believable,
935           but you may end up with content in the language you pretended to understand.)</td>
936     </tr>
937     <tr class="bg1" align="left" valign="top" id="hide_accept-language_opts">
938       <td class="en1">&nbsp;</td>
939       <td class="dis1">&nbsp;</td>
940       <td class="noc1">&nbsp;</td>
941       <td>&nbsp;</td>
942       <td><input type="radio" name="hide_accept_language_mode" value="block"
943         onclick="hide_accept_language_param_disable(true)"
944         @hide-accept-language-param-block@ id="hide_accept_language_mode_block"><label
945         for="hide_accept_language_mode_block">Remove Accept-Language header without replacement.</label>
946         <br>
947         <input type="radio" name="hide_accept_language_mode" value="CUSTOM"
948         onclick="hide_accept_language_param_disable(false)"
949         @hide-accept-language-param-custom@ id="hide_accept_language_mode_set"><label
950         for="hide_accept_language_mode_set">Fake these language settings:</label><br>
951         <input type="text" name="hide_accept_language_param" 
952         id="hide_accept_language_param" size="40"
953         value="@hide-accept-language-param@"><br>
954      </td>
955     </tr>
956     <tr class="bg1" align="left" valign="top">
957       <td class="en1" align="center" valign="middle"><input type="radio"
958         name="hide_content_disposition" id="hide_content_disposition_y" value="Y" @hide-content-disposition-y@
959         onclick="show_hide_content_disposition_opts(true)"></td>
960       <td class="dis1" align="center" valign="middle"><input type="radio"
961         name="hide_content_disposition" id="hide_content_disposition_n" value="N" @hide-content-disposition-n@
962         onclick="show_hide_content_disposition_opts(false)"></td>
963       <td class="noc1" align="center" valign="middle"><input type="radio"
964         name="hide_content_disposition" id="hide_content_disposition_x" value="X" @hide-content-disposition-x@
965         onclick="show_hide_content_disposition_opts(false)"
966         ></td>
967       <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-CONTENT-DISPOSITION">hide-content-disposition</a></td>
968       <td>Block or overwrite the content-disposition header. Useful to view a document inside the browser,
969        even if you were supposed to save it first, or to change the suggested file name.</td>
970     </tr>
971     <tr class="bg1" align="left" valign="top" id="hide_content_disposition_opts">
972       <td class="en1">&nbsp;</td>
973       <td class="dis1">&nbsp;</td>
974       <td class="noc1">&nbsp;</td>
975       <td>&nbsp;</td>
976       <td><input type="radio" name="hide_content_disposition_mode" value="block"
977         onclick="hide_content_disposition_param_disable(true)"
978         @hide-content-disposition-param-block@ id="hide_content_disposition_mode_block"><label
979         for="hide_content_disposition_mode_block">Remove content-disposition header without replacement.</label>
980         <br>
981         <input type="radio" name="hide_content_disposition_mode" value="CUSTOM"
982         onclick="hide_content_disposition_param_disable(false)"
983         @hide-content-disposition-param-custom@ id="hide_content_disposition_mode_set"><label
984         for="hide_content_disposition_mode_set">Overwrite content-dispostion header with:</label><br>
985         <input type="text" name="hide_content_disposition_param" 
986         id="hide_content_disposition_param" size="40"
987         value="@hide-content-disposition-param@"><br>
988      </td>
989     </tr>
990     <tr class="bg1" align="left" valign="top">
991       <td class="en1" align="center" valign="middle"><input type="radio"
992         name="hide_from_header" id="hide_from_header_y" value="Y" @hide-from-header-y@
993         onclick="show_hide_from_header_opts(true)"></td>
994       <td class="dis1" align="center" valign="middle"><input type="radio"
995         name="hide_from_header" value="N" @hide-from-header-n@
996         onclick="show_hide_from_header_opts(false)"></td>
997       <td class="noc1" align="center" valign="middle"><input type="radio"
998         name="hide_from_header" value="X" @hide-from-header-x@
999         onclick="show_hide_from_header_opts(false)"></td>
1000       <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-FROM-HEADER">hide-from-header</a></td>
1001       <td>Stop old web browsers from sending the user's e-mail address with
1002         every request.</td>
1003     </tr>
1004     <tr class="bg1" align="left" valign="top" id="hide_from_header_opts">
1005       <td class="en1">&nbsp;</td>
1006       <td class="dis1">&nbsp;</td>
1007       <td class="noc1">&nbsp;</td>
1008       <td>&nbsp;</td>
1009       <td><input type="radio" name="hide_from_header_mode" value="block"
1010         onclick="hide_from_header_param_disable(true);"
1011         @hide-from-header-param-block@ id="hide_from_header_mode_block"><label
1012         for="hide_from_header_mode_block">Remove completely</label><br>
1013         <input type="radio" name="hide_from_header_mode" value="CUSTOM" 
1014         onclick="hide_from_header_param_disable(false);"
1015         @hide-from-header-param-custom@ id="hide_from_header_mode_set"><label
1016         for="hide_from_header_mode_set">Fake e-mail address:</label><br>
1017         <input type="text" name="hide_from_header_param" id="hide_from_header_param"
1018         size="40" value="@hide-from-header-param@"></td>
1019     </tr>
1020
1021    <tr class="bg1" align="left" valign="top">
1022       <td class="en1" align="center" valign="middle"><input type="radio"
1023         name="hide_if_modified_since" value="Y" @hide-if-modified-since-y@
1024         ></td>
1025       <td class="dis1" align="center" valign="middle"><input type="radio"
1026         name="hide_if_modified_since" value="N" @hide-if-modified-since-n@
1027         ></td>
1028       <td class="noc1" align="center" valign="middle"><input type="radio"
1029         name="hide_if_modified_since" value="X" @hide-if-modified-since-x@
1030         ></td>
1031       <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE_IF_MODIFIED_SINCE">hide-if-modified-since</a></td>
1032       <td>Remove or randomize the If-Modified-Since header.</td>
1033     </tr>
1034     <tr class="bg1" align="left" valign="top" id="hide_if-modifed-since_opts">
1035       <td class="en1">&nbsp;</td>
1036       <td class="dis1">&nbsp;</td>
1037       <td class="noc1">&nbsp;</td>
1038       <td>&nbsp;</td>
1039       <td><input type="radio" name="hide_if_modified_since_mode" value="block"
1040         onclick="hide_if_modified_since_param_disable(true)"
1041         @hide-if-modified-since-param-block@ id="hide_if_modified_since_mode_block"><label
1042         for="hide_if_modified_since_mode_block">Remove without replacement.</label>
1043         Useful for filter testing.<br>
1044         <input type="radio" name="hide_if_modified_since_mode" value="CUSTOM"
1045         onclick="hide_if_modified_since_param_disable(true)"
1046         @hide-if-modified-since-param-custom@ id="hide_if_modified_since_mode_set"><label
1047         for="hide_if_modified_since_mode_set">Add random amount of seconds in the range of</label>
1048         <input type="text" name="hide_if_modified_since_param" 
1049         id="hide_if_modified_since_param" size="4"
1050         value="@hide-if-modified-since-param@"> minute(s).
1051         To appreciate this option a small amount of paranoia is required,
1052         but at least in theory the If-Modified-Since header could be used
1053         to keep track of your visits.
1054      </td>
1055     </tr>
1056 <!-- @if-multiple-forms-start -->
1057    </table>
1058    <p>
1059     <input type="hidden" name="f" value="@f@">
1060     <input type="hidden" name="v" value="@v@">
1061     <input type="hidden" name="s" value="@s@">
1062     <input type="submit" value="Submit changes in Section 3" name="Submit">
1063    </p>
1064   </form>
1065  </td></tr>
1066  <tr><td class="wrapbox">
1067   <form method="GET" action="edit-actions-submit" id="myform-4" name="myform">
1068   <h2>Edit Actions (Section 4)</h2>
1069   <table summary="Action section 4" border="0" cellspacing="2" width="100%" class="wide">
1070     <tr class="hdr" align="left">
1071       <th class="enh" align="center">Enable</th>
1072       <th class="dish" align="center">Disable</th>
1073       <th class="noch" align="center">No Change</th>
1074       <th>Action</th>
1075       <th>Description</th>
1076     </tr>
1077 <!-- if-multiple-forms-end@ -->
1078     <tr class="bg1" align="left" valign="top">
1079       <td class="en1" align="center" valign="middle"><input type="radio"
1080         name="hide_referrer" id="hide_referrer_y" value="Y" @hide-referrer-y@
1081         onclick="show_hide_referrer_opts(true)"></td>
1082       <td class="dis1" align="center" valign="middle"><input type="radio"
1083         name="hide_referrer" id="hide_referrer_n" value="N" @hide-referrer-n@
1084         onclick="show_hide_referrer_opts(false)"></td>
1085       <td class="noc1" align="center" valign="middle"><input type="radio"
1086         name="hide_referrer" id="hide_referrer_x" value="X" @hide-referrer-x@
1087         onclick="show_hide_referrer_opts(false)"
1088         ></td>
1089       <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-REFERRER">hide-referrer</a></td>
1090       <td>Helps prevent tracking by not sending the URL of the previous web
1091         page.&nbsp;</td>
1092     </tr>
1093     <tr class="bg1" align="left" valign="top" id="hide_referrer_opts">
1094       <td class="en1">&nbsp;</td>
1095       <td class="dis1">&nbsp;</td>
1096       <td class="noc1">&nbsp;</td>
1097       <td>&nbsp;</td>
1098       <td><input type="radio" name="hide_referrer_mode" value="block"
1099         onclick="hide_referrer_param_disable(true)"
1100         @hide-referrer-param-block@ id="hide_referrer_mode_block"><label
1101         for="hide_referrer_mode_block">Remove completely</label> (breaks images
1102         on some free web hosts).<br>
1103         <input type="radio" name="hide_referrer_mode" value="forge"
1104         onclick="hide_referrer_param_disable(true)"
1105         @hide-referrer-param-forge@ id="hide_referrer_mode_forge"><label
1106         for="hide_referrer_mode_forge">Fake as the root directory of the
1107         site</label> (fools checks for in-site links.)<br>
1108         <input type="radio" name="hide_referrer_mode" value="CUSTOM"
1109         onclick="hide_referrer_param_disable(false)"
1110         @hide-referrer-param-custom@ id="hide_referrer_mode_set"><label
1111         for="hide_referrer_mode_set">Fake as this web address:</label><br>
1112         <input type="text" name="hide_referrer_param" 
1113         id="hide_referrer_param" size="40"
1114         value="@hide-referrer-param@"><br>
1115         <input type="radio" name="hide_referrer_mode" value="conditional-block"
1116         onclick="hide_referrer_param_disable(true)"
1117         @hide-referrer-param-conditional-block@ id="hide_referrer_mode_conditional-block"><label
1118         for="hide_referrer_mode_conditional-block">Remove completely if host has changed,
1119         but don't touch in-site referrers.
1120         Less suspicious than the options above.</label><br>
1121         <input type="radio" name="hide_referrer_mode" value="conditional-forge"
1122         onclick="hide_referrer_param_disable(true)"
1123         @hide-referrer-param-conditional-forge@ id="hide_referrer_mode_conditional-forge"><label
1124         for="hide_referrer_mode_conditional-forge">Forge referrer if host has
1125         changed, but don't touch in-site referrers.</label><br>
1126       </td>
1127     </tr>
1128     <tr class="bg1" align="left" valign="top">
1129       <td class="en1" align="center" valign="middle"><input type="radio"
1130         name="hide_user_agent" id="hide_user_agent_y" value="Y" @hide-user-agent-y@
1131         onclick="show_user_agent_opts(true)"></td>
1132       <td class="dis1" align="center" valign="middle"><input type="radio"
1133         name="hide_user_agent" value="N" @hide-user-agent-n@
1134         onclick="show_user_agent_opts(false)"></td>
1135       <td class="noc1" align="center" valign="middle"><input type="radio"
1136         name="hide_user_agent" value="X" @hide-user-agent-x@
1137         onclick="show_user_agent_opts(false)"></td>
1138       <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-USER-AGENT">hide-user-agent</a></td>
1139       <td>Pretend to be using a different web browser.&nbsp; (May cause problems with broken web sites).</td>
1140     </tr>
1141     <tr class="bg1" align="left" valign="top" id="user_agent_opts">
1142       <td class="en1">&nbsp;</td>
1143       <td class="dis1">&nbsp;</td>
1144       <td class="noc1">&nbsp;</td>
1145       <td>&nbsp;</td>
1146       <td>User Agent string to send:<br>
1147         <input type="text" name="hide_user_agent_mode" size="40"
1148         value="@hide-user-agent-param@"></td>
1149     </tr>
1150     <tr class="bg1" align="left" valign="top">
1151       <td class="en1" align="center" valign="middle"><input type="radio"
1152         name="limit_connect" id="limit_connect_y" value="Y" @limit-connect-y@
1153         onclick="show_limit_connect_opts(true)"></td>
1154       <td class="dis1" align="center" valign="middle"><input type="radio"
1155         name="limit_connect" value="N" @limit-connect-n@
1156         onclick="show_limit_connect_opts(false)"></td>
1157       <td class="noc1" align="center" valign="middle"><input type="radio"
1158         name="limit_connect" value="X" @limit-connect-x@
1159         onclick="show_limit_connect_opts(false)"></td>
1160       <td class="action"><a href="@user-manual@@actions-help-prefix@LIMIT-CONNECT">limit-connect</a></td>
1161       <td>Limit which ports are allowed in HTTP CONNECT requests. These requests are
1162         used to tunnel SSL and other protocols through HTTP proxies.</td>
1163     </tr>
1164     <tr class="bg1" align="left" valign="top" id="limit_connect_opts">
1165       <td class="en1">&nbsp;</td>
1166       <td class="dis1">&nbsp;</td>
1167       <td class="noc1">&nbsp;</td>
1168       <td>&nbsp;</td>
1169       <td>Legal ports (comma separated, ranges allowed):<br>
1170         <input type="text" name="limit_connect_mode" size="40"
1171         value="@limit-connect-param@"></td>
1172     </tr>
1173     <tr class="bg1" align="left" valign="top">
1174       <td class="en1" align="center" valign="middle"><input type="radio"
1175         name="overwrite_last_modified" value="Y" @overwrite-last-modified-y@
1176         ></td>
1177       <td class="dis1" align="center" valign="middle"><input type="radio"
1178         name="overwrite_last_modified" value="N" @overwrite-last-modified-n@
1179         ></td>
1180       <td class="noc1" align="center" valign="middle"><input type="radio"
1181         name="overwrite_last_modified" value="X" @overwrite-last-modified-x@
1182         ></td>
1183       <td class="action"><a href="@user-manual@@actions-help-prefix@OVERWRITE_LAST_MODIFIED">overwrite-last-modified</a></td>
1184       <td>Remove or randomize the Last-Modified header.</td>
1185     </tr>
1186     <tr class="bg1" align="left" valign="top" id="overwrite_last_modified_opts">
1187       <td class="en1">&nbsp;</td>
1188       <td class="dis1">&nbsp;</td>
1189       <td class="noc1">&nbsp;</td>
1190       <td>&nbsp;</td>
1191       <td><input type="radio" name="overwrite_last_modified_mode" value="block"
1192         onclick="overwrite_last_modified_param_disable(true)"
1193         @overwrite-last-modified-param-block@ id="overwrite_last_modified_mode_block"><label
1194         for="overwrite_last_modified_mode_block">Remove without replacement.</label>
1195         <br>
1196         <input type="radio" name="overwrite_last_modified_mode" value="reset-to-request-time"
1197         onclick="overwrite_last_modified_param_disable(true)"
1198         @overwrite-last-modified-param-reset-to-request-time@
1199          id="overwrite_last_modified_mode_reset-to-request-time"><label
1200         for="overwrite_last_modified_mode_reset-to-request-time">Reset to the time of the request.</label>
1201         <br>
1202         <input type="radio" name="overwrite_last_modified_mode" value="randomize"
1203         onclick="overwrite_last_modified_param_disable(true)"
1204         @overwrite-last-modified-param-randomize@
1205          id="overwrite_last_modified_mode_randomize"><label
1206         for="overwrite_last_modified_mode_randomize">Overwrite with random value
1207         between original header value and the time of the request.</label>
1208      </td>
1209     </tr>
1210
1211     <tr class="bg1" align="left" valign="top">
1212       <td class="en1" align="center" valign="middle"><input type="radio"
1213         name="prevent_compression" value="Y" @prevent-compression-y@
1214         ></td>
1215       <td class="dis1" align="center" valign="middle"><input type="radio"
1216         name="prevent_compression" value="N" @prevent-compression-n@
1217         ></td>
1218       <td class="noc1" align="center" valign="middle"><input type="radio"
1219         name="prevent_compression" value="X" @prevent-compression-x@
1220         ></td>
1221       <td class="action"><a href="@user-manual@@actions-help-prefix@PREVENT-COMPRESSION">prevent-compression</a></td>
1222       <td>Disables compression.  Compressed web pages are faster to
1223         download, but cannot be filtered with <a href="@user-manual@@actions-help-prefix@FILTER"><b>filter</b></a>
1224         or <a href="@user-manual@@actions-help-prefix@KILL-POPUPS"><b>kill-popups</b></a>
1225         if your Privoxy version was build without zlib support.</td>
1226     </tr>
1227    <tr class="bg1" align="left" valign="top">
1228       <td class="en1" align="center" valign="middle"><input type="radio"
1229         name="redirect" value="Y" @redirect-y@
1230         ></td>
1231       <td class="dis1" align="center" valign="middle"><input type="radio"
1232         name="redirect" value="N" @redirect-n@
1233         ></td>
1234       <td class="noc1" align="center" valign="middle"><input type="radio"
1235         name="redirect" value="X" @redirect-x@
1236         ></td>
1237       <td class="action"><a href="@user-manual@@actions-help-prefix@REDIRECT">redirect</a></td>
1238       <td>Redirect to another address.
1239     </tr>
1240     <tr class="bg1" align="left" valign="top" id="redirect_opts">
1241       <td class="en1">&nbsp;</td>
1242       <td class="dis1">&nbsp;</td>
1243       <td class="noc1">&nbsp;</td>
1244       <td>&nbsp;</td>
1245       <td>Static address or a single pcrs command to redirect to a rewritten version of the original URL:<br>
1246         <input type="text" name="redirect_mode" size="40"
1247         value="@redirect-param@"></td>
1248     </tr>
1249
1250     <tr class="bg1" align="left" valign="top">
1251       <td class="en1">&nbsp;</td>
1252       <td class="dis1" align="center" valign="middle"><input type="radio"
1253         name="server_header_filter_all" id="server_header_filter_all_n" value="N" @server-header-filter-all-n@ ></td>
1254       <td class="noc1" align="center" valign="middle"><input type="radio"
1255         name="server_header_filter_all" id="server_header_filter_all_x" value="X" @server-header-filter-all-x@ ></td>
1256       <td class="action"><a href="@user-manual@@actions-help-prefix@SERVER-HEADER-FILTER">server-header-filter</a> *</td>
1257       <td>Filter the server headers.
1258         You can use the radio buttons on this line to disable
1259         all server-header filters applied by previous rules, and/or
1260         you can enable or disable the filters individually below.</td>
1261     </tr>
1262 @server-header-filter-params@
1263     <tr class="bg1" align="left" valign="top">
1264       <td class="en1">&nbsp;</td>
1265       <td class="dis1" align="center" valign="middle"><input type="radio"
1266         name="server_header_tagger_all" id="server_header_tagger_all_n" value="N" @server-header-tagger-all-n@ ></td>
1267       <td class="noc1" align="center" valign="middle"><input type="radio"
1268         name="server_header_tagger_all" id="server_header_tagger_all_x" value="X" @server-header-tagger-all-x@ ></td>
1269       <td class="action"><a href="@user-manual@@actions-help-prefix@SERVER-HEADER-TAGGER">server-header-tagger</a> *</td>
1270       <td>Create tags based on the server headers.
1271         You can use the radio buttons on this line to disable
1272         all server-header taggers applied by previous rules, and/or
1273         you can enable or disable the taggers individually below.</td>
1274     </tr>
1275 @server-header-tagger-params@
1276     <tr class="bg1" align="left" valign="top">
1277       <td class="en1" align="center" valign="middle"><input type="radio"
1278         name="session_cookies_only" value="Y" @session-cookies-only-y@
1279         ></td>
1280       <td class="dis1" align="center" valign="middle"><input type="radio"
1281         name="session_cookies_only" value="N" @session-cookies-only-n@
1282         ></td>
1283       <td class="noc1" align="center" valign="middle"><input type="radio"
1284         name="session_cookies_only" value="X" @session-cookies-only-x@
1285         ></td>
1286       <td class="action"><a href="@user-manual@@actions-help-prefix@SESSION-COOKIES-ONLY">session-cookies-only</a></td>
1287       <td>HTTP cookies set by the website are changed to temporary
1288         ("per-session") ones, which only last until you close your web
1289         browser.  This will allow you to use sites that require cookies, but
1290         sites will not be able to track you across sessions.  For this to
1291         be useful, you should disable 
1292         <a href="@user-manual@@actions-help-prefix@CRUNCH-OUTGOING-COOKIES"><b>crunch-outgoing-cookies</b></a> and
1293         <a href="@user-manual@@actions-help-prefix@CRUNCH-INCOMING-COOKIES"><b>crunch-incoming-cookies</b></a>.</td>
1294     </tr>
1295     <tr class="bg1" align="left" valign="top">
1296       <td class="en1" align="center" valign="middle"><input type="radio"
1297         name="set_image_blocker" id="set_image_blocker_y" value="Y" @set-image-blocker-y@
1298         onclick="show_set_image_blocker_opts(true)"></td>
1299       <td class="dis1" align="center" valign="middle"><input type="radio"
1300         name="set_image_blocker" value="N" @set-image-blocker-n@
1301         onclick="show_set_image_blocker_opts(false)"></td>
1302       <td class="noc1" align="center" valign="middle"><input type="radio"
1303         name="set_image_blocker" value="X" @set-image-blocker-x@
1304         onclick="show_set_image_blocker_opts(false)"></td>
1305       <td class="action"><a href="@user-manual@@actions-help-prefix@SET-IMAGE-BLOCKER">set-image-blocker</a></td>
1306       <td>Specifies how to block images.</td>
1307     </tr>
1308     <tr class="bg1" align="left" valign="top" id="set_image_blocker_opts">
1309       <td class="en1">&nbsp;</td>
1310       <td class="dis1">&nbsp;</td>
1311       <td class="noc1">&nbsp;</td>
1312       <td>&nbsp;</td>
1313       <td><input type="radio" name="set_image_blocker_mode"
1314         onclick="set_image_blocker_param_disable(true)"
1315         value="pattern" id="set_image_blocker_mode_pattern"
1316         @set-image-blocker-param-pattern@><label
1317         for="set_image_blocker_mode_pattern">Send a pattern (<img
1318         src="send-banner?type=p" width="12" height="12"
1319         alt="pattern">)</label><br>
1320         <input type="radio" name="set_image_blocker_mode" value="blank"
1321         onclick="set_image_blocker_param_disable(true)"
1322         id="set_image_blocker_mode_blank" @set-image-blocker-param-blank@><label 
1323         for="set_image_blocker_mode_blank">Send a 1x1 transparent GIF</label><br>
1324         <input type="radio" name="set_image_blocker_mode" value="CUSTOM"
1325         onclick="set_image_blocker_param_disable(false)"
1326         id="set_image_blocker_mode_set" @set-image-blocker-param-custom@><label
1327         for="set_image_blocker_mode_set">Redirect
1328         the browser to this image URL:</label><br>
1329         <input type="text" name="set_image_blocker_param" id="set_image_blocker_param"
1330         size="40" value="@set-image-blocker-param@"></td>
1331     </tr>
1332   </table>
1333
1334 <!-- @if-multiple-forms-start -->
1335   <p>
1336    <input type="hidden" name="f" value="@f@">
1337    <input type="hidden" name="v" value="@v@">
1338    <input type="hidden" name="s" value="@s@">
1339    <input type="submit" value="Submit changes in Section 4" name="Submit">
1340   </p>
1341  </form>
1342 <!-- if-multiple-forms-end@ -->
1343 </td></tr>
1344 <!-- @if-one-form-only-start -->
1345     <tr>
1346       <td class="green" align="center">
1347         <p><input type="submit" value="Submit" name="Submit"></p>
1348       </td>
1349     </tr>
1350 <!-- if-one-form-only-end@ -->
1351     <tr>
1352       <td class="box">
1353         <h2>More Privoxy:</h2>
1354         <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
1355       </td>
1356     </tr>
1357
1358     <tr>
1359       <td class="info">
1360
1361 #include mod-support-and-service
1362
1363       </td>
1364     </tr>
1365
1366 <!-- @if-have-help-info-start -->
1367     <tr>
1368       <td class="info">
1369
1370 #include mod-local-help
1371
1372       </td>
1373     </tr>
1374 <!-- if-have-help-info-end@ -->
1375
1376   </table>
1377 <!-- @if-one-form-only-start -->
1378 </form>
1379 <!-- if-one-form-only-end@ -->
1380
1381 <script type="text/javascript">
1382 <!--
1383
1384 if (document.getElementById) {
1385     // alert("Netscape 6 or IE5");
1386     document.getElementById("hide_from_header_param").disabled = !(document.getElementById("hide_from_header_mode_set").checked);
1387     document.getElementById("hide_referrer_param").disabled = !(document.getElementById("hide_referrer_mode_set").checked);
1388     document.getElementById("set_image_blocker_param").disabled = !(document.getElementById("set_image_blocker_mode_set").checked);
1389
1390     show_add_header_opts    (document.getElementById("add_header_y").checked);
1391     show_deanimate_opts     (document.getElementById("deanimate_gifs_y").checked);
1392     show_hide_from_header_opts(document.getElementById("hide_from_header_y").checked);
1393     show_hide_referrer_opts (document.getElementById("hide_referrer_y").checked);
1394     show_user_agent_opts    (document.getElementById("hide_user_agent_y").checked);
1395     show_set_image_blocker_opts (document.getElementById("set_image_blocker_y").checked);
1396     show_limit_connect_opts (document.getElementById("limit_connect_y").checked);
1397     show_send_wafer_opts    (document.getElementById("send_wafer_y").checked);
1398 } else if (document.all) {
1399     // alert("IE4");
1400     document.myform.hide_from_header_param.disabled = !(document.myform.hide_from_header_mode_set.checked);
1401     document.myform.hide_referrer_param.disabled = !(document.myform.hide_referrer_mode_set.checked);
1402     document.myform.set_image_blocker_param.disabled = !(document.myform.set_image_blocker_mode_set.checked);
1403
1404     show_add_header_opts    (document.myform.add_header_y.checked);
1405     show_deanimate_opts     (document.myform.deanimate_gifs_y.checked);
1406     show_hide_from_header_opts (document.myform.hide_from_header_y.checked);
1407     show_hide_referrer_opts (document.myform.hide_referrer_y.checked);
1408     show_user_agent_opts    (document.myform.hide_user_agent_y.checked);
1409     show_set_image_blocker_opts (document.myform.set_image_blocker_y.checked);
1410     show_limit_connect_opts (document.myform.limit_connect_y.checked);
1411     show_send_wafer_opts    (document.myform.send_wafer_y.checked);
1412 } else if (document.layers) {
1413     // alert("Netscape 4");
1414 }
1415 //-->
1416 </script>
1417
1418
1419 </body>
1420
1421 </html>