##########################################################
#
# "Blocked" Error Output template for Privoxy.
#
#  NOTE: UNLIKE THE OTHER TEMPLATES, THIS ONE USES
#  JavaScript write() TO GENERATE THE PAGE IN JS_AWARE
#  BROWSERS. SYMBOL SUBSTITUTIONS THAT RESULT IN MULTILINE
#  STRINGS WILL BREAK THE JavaScript SYNTAX.
#  USE WITH CAUTION.
#
# USING HTML TEMPLATES:
# ---------------------
#
# Template files are written in plain HTML, with a few
# additions:
#
# - Lines that start with a '#' character like this one
#   are ignored
#
# - Each item in the below list of exported symbols will
#   be replaced by dynamically generated text, if they
#   are enclosed in '@'-characters. E.g. The string @version@
#   will be replaced by the version number of Privoxy.
#
# - One special application of this is to make whole blocks
#   of the HTML template disappear if the condition <name>
#   is not given. Simply enclose the block between the two
#   strings @if-<name>start and if-<name>-end@. The strings
#   should be placed in HTML comments (<!-- -->), so the
#   html structure won't be messed when the magic happens.
#
# USABLE SYMBOLS IN THIS TEMPLATE:
# --------------------------------
#
#  my-ip-addr:
#    The IP-address that the client used to reach this proxy
#  my-hostname:
#    The hostname associated with my-ip-addr
#  admin-address:
#    The email address of the proxy administrator, as configured
#    in the config file
#  default-cgi:
#    The URL for the "main menu" builtin CGI of this proxy
#  menu:
#    List of <li> elements linking to the other available CGIs
#  version:
#    The version number of the proxy software
#  code-status:
#    The development status of the proxy software: "alpha", "beta",
#    or "stable".
#  homepage:
#    The URL of the Privoxy project, which maintains this software.
#
#  protocol:
#    The request's protocol: http:// or https://
#  hostport:
#    The host and port part of the blocked request's URL.
#  path:
#    The path part of the blocked request's URL.
#  path-ue:
#    The path part of the blocked request's URL, url-encoded.
#
#
# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
# ------------------------------------------------------------------
#
#  unstable:
#    This is an alpha or beta release of the proxy software
#  have-adminaddr-info:
#    An e-mail address for the local Privoxy administrator has
#    been specified and is available through the "admin-address"
#    symbol
#  have-proxy-info:
#    A URL for online documentation about this proxy has been
#    specified and is available through the "proxy-info-url"
#    symbol
#  have-help-info:
#    If either have-proxy-info is true or have-adminaddr-info is
#    true, have-help-info is true.  Used to conditionally include
#    a grey box for any and all help info.
#  force-support:
#    Privoxy has been compiled with support for forced loading
#    of blocked content. In that case, the symbol "force-prefix" is
#    avaiable, which translates to the FORCE_PREFIX
#
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>Request blocked (Privoxy@@my-hostname@)</title>
  <meta http-equiv="Content-Style-Type" content="text/css">
  <meta http-equiv="Content-Script-Type" content="text/javascript">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="robots" content="noindex,nofollow">
  <link rel="shortcut icon" href="@default-cgi@error-favicon.ico" type="image/x-icon">
  <style type="text/css">
#include cgi-style.css
  </style>
  <script type="text/javascript" language="javascript">
  <!--
    /*
     * Is this window or frame too small
     * for the full-blown "blocked" page?
     */
    function isSmallFrame()
    {
       minWidth  = 650;
       minHeight = 330;

       /*
        * Navigator, Mozilla, Opera
        */
       if (window.innerWidth
           && (window.innerWidth >= minWidth)
           && (window.innerHeight >= minHeight))
       {
          return false;
       }

       /*
        * MSIE
        */
       else if (document.body && document.body.clientWidth
                && (document.body.clientWidth >= minWidth)
                && (document.body.clientHeight >= minHeight))
       {
          return false;
       }

       /*
        * Small window or unsupported browser
        */
       return true;
   }
  //-->
  </script>
 </head>
 <body>
  <script type="text/javascript" language="javascript">
  <!--
#   Note: The same small version is used at the bottom
#         of this file in the <noscript> context. If you
#         make changes here, keep the other version in sync!

  if (isSmallFrame())
  {
     document.write('\
   <p class="small" align="center"> \
    Request blocked by <a href="@default-cgi@" target="_blank">Privoxy</a>: @block-reason@ \
    <br>See <a href="@default-cgi@show-url-info?url=@hostport@@path-ue@" \
     >why this block applies</a> \
    <!-- @if-force-support-start --> \
    or <a href="http://@hostport@@force-prefix@@path@">go \
    <!-- if-force-support-end@ --> \
    to <b>@protocol@@hostport@@path@</b> \
    <!-- @if-force-support-start --> \
    anyway</a>. \
    <!-- if-force-support-end@ --> \
   </p> \
   ');

  }
  else
  {
     document.write('\
  <table cellpadding="20" cellspacing="10" border="0" width="100%">\
    <tr> \
      <td class="status"> \
        BLOCKED \
      </td> \
      <td class="title" width=100%> \
         <h1> \
          This is <a href="@homepage@">Privoxy</a> @version@ on @my-hostname@ (@my-ip-address@), port @my-port@, \
          @if-enabled-display-then@enabled@else-not-enabled-display@disabled@endif-enabled-display@ \
        </h1> \
      </td> \
    </tr> \
 \
<!-- @if-unstable-start --> \
# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in \
    <tr> \
      <td class="warning" colspan="2"> \
        <h2>Warning:</h2> \
        <p> \
          <b>Please note that this <font color=red>@code-status@</font> release \
          of the proxy software is not intended for production systems! \
          <br>Use at your own risk. See the <a href="@user-manual@copyright.html">license</a> for details.</b> \
        </p> \
      </td> \
    </tr> \
<!-- if-unstable-end@ --> \
 \
    <tr> \
      <td class="box" colspan="2"> \
        <h2>Request for blocked URL</h2> \
        <p>Your request for <b>@protocol@@hostport@@path@</b> was blocked. \
         <br>Block reason: @block-reason@ \
         <br><a href="@default-cgi@show-url-info?url=@hostport@@path-ue@" \
          >See why this block applies</a> \
<!-- @if-force-support-start --> \
          or <a href="http://@hostport@@force-prefix@@path@">go there anyway</a>. \
<!-- if-force-support-end@ --> \
        </p> \
      </td> \
    </tr> \
 \
    <tr> \
      <td class="box" colspan="2"> \
        <h2>More Privoxy:</h2> \
        <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul> \
      </td> \
    </tr> \
 \
<!-- @if-have-help-info-start --> \
    <tr> \
      <td class="info" colspan="2"> \
        <h2>Local Privoxy support:</h2> \
 \
<!-- @if-have-proxy-info-start --> \
        <p>You can consult the <a href="@proxy-info-url@">online documentation</a> for more information about this Privoxy installation.</p> \
<!-- if-have-proxy-info-end@ --> \
 \
<!-- @if-have-adminaddr-info-start --> \
        <p>Address e-mail questions about this service to \
          <a href="mailto:@admin-address@"><code>@admin-address@</code></a>, \
          who will be glad to help you. \
        </p> \
<!-- if-have-adminaddr-info-end@ --> \
      </td> \
    </tr> \
<!-- if-have-help-info-end@ --> \
 \
    <tr> \
      <td class="info" colspan="2"> \
        <big><b>Support and Service:</b></big> \
        <p> \
          The Privoxy Team values your feedback. \
        </p> \
        <p> \
          Please have a look at the User Manual to learn how to \
          <a title="Privoxy User Manual: Contacting the developers, Bug Reporting and Feature Requests" \
           href="@user-manual@contact.html">get support or report problems</a>. \
        <p> \
          If you want to support the Privoxy Team, you can \
          <a href="https://www.privoxy.org/faq/general.html#PARTICIPATE">participate</a> \
          or <a href="https://www.privoxy.org/faq/general.html#DONATE">donate</a>. \
        </p> \
      </td> \
    </tr> \
 \
  </table> \
     ');
  }
  //-->
  </script>

#   Note: The same small version is used above via JavaScript
#         If you make changes here, keep the other version in sync!

  <noscript>
   <p class="small" align="center">
    Request blocked by <a href="@default-cgi@">Privoxy</a>: @block-reason@
    <br>See <a href="@default-cgi@show-url-info?url=@hostport@@path-ue@"
     >why this block applies</a>
    <!-- @if-force-support-start -->
    or <a href="http://@hostport@@force-prefix@@path@">go
    <!-- if-force-support-end@ -->
    to <b>@protocol@@hostport@@path@</b>
    <!-- @if-force-support-start -->
    anyway</a>.
    <!-- if-force-support-end@ -->
   </p>
  </noscript>

 </body>
</html>
