<HTML>
<TITLE>Price List</TITLE>
<!-- OWNER_NAME="Chris Nadovich, J. Thomas Associates" -->
<LINK rev=made href="mailto:tech-support@jtan.com">
<!-- OWNER_INFO="1302 Diamond Street, Sellersville, PA 18960" -->
</HEAD>

<?php include("/www/jtan/letterhead.html"); ?> 

<?php

  require_once('/usr/share/php/mysql_mysqli.inc.php');

  // open the database as the "pricelist" user

  $db = mysql_connect("elara.jtan.com", "pricelist", "H39AfJBTXAaJFJgPUgrb6h4g");
  mysql_select_db("jtan",$db);

?>

<H1>Full Pricelist</h1>

<font size=-2><i>All Pricing is Subject to Change Without Notice</i></font><P>

<?php

  // This loads the pricelist from the database
  
  $result = mysql_query("SELECT pricelist.*,featureinfo.isbundle FROM pricelist,featureinfo where 
    pricelist.type=featureinfo.type and forsale=1 and
    (offer like \"%members%\" or offer like \"%signup%\" or 
     offer like \"%othersvc%\" or offer like \"%pricelist%\") order by price",$db);
  while ($myrow = mysql_fetch_array($result)) {
    $skus[]=$myrow["sku"];
    $price[$myrow["sku"]]=$myrow["price"];
    $description[$myrow["sku"]]=$myrow["description"];
    $term[$myrow["sku"]]=$myrow["term"];
    $unit[$myrow["sku"]]=$myrow["unit"];
    $termprice[$myrow["sku"]]=$myrow["termprice"];
    $isbundle[$myrow["sku"]]=$myrow["isbundle"];
    $type[$myrow["sku"]]=$myrow["type"];
    $setuptext[$myrow["sku"]]=$myrow["setuptext"];
    $setup[$myrow["sku"]]=$myrow["price"] - $myrow["termprice"];
  }

  $result = mysql_query("SELECT * FROM featureinfo"); 
  while ($myrow = mysql_fetch_array($result)) {
    $ftag[$myrow["type"]]=$myrow["tag"];
    $fdescription[$myrow["type"]]=$myrow["description"];
  }

  $result = mysql_query("SELECT * FROM bundle");
  while ($myrow = mysql_fetch_array($result)) {
    $has[$myrow["type"]][$myrow["hasa"]]=$myrow["quan"];
  }

  // re-order skus so that annual subscriptions are
  // after their monthly counterparts (otherwise, sorted
  // by price makes it a little confusing)
  //
  $new_skus = array();
  $compare_skus = $skus;
  foreach ($skus as $sku)
  {
    if (!in_array($sku, $new_skus))
    {
      $new_skus[] = $sku;
      foreach ($compare_skus as $compare_sku)
      {
        if ($type[$sku] !== '0' && $sku !== $compare_sku
         && $type[$sku] === $type[$compare_sku])
           $new_skus[] = $compare_sku;
      }
    }
  }
  $skus = $new_skus;

?>



<HR>

<H2>Basic ProWeb Account</H2>

The basic ProWeb account is <?php echo "\$$price[130278]" ?> per month.
The <A HREF=http://www.jtan.com/proweb/features.html>many features</a> bundled with ProWeb accounts, used or unused, are not billed
separately. No credit
is given for bundled features that you do not use. <P>


<A NAME=alacarte>
<H2>Features Individually <i>A La Carte</i></H2>

The following pricing is for JTAN products, accounts, and features purchased
separately. Also listed are billing and service fees and penalties.  
<P> 

<TABLE border>
  <TR>
    <TH>SKU</TH>
    <TH>Description</TH>
    <TH>Payment</TH>
    <TH>Term</TH>
  </TR>
  
  <?php

    // This prints the rows in the table

    foreach ($skus as $sku){
    
      if($isbundle[$sku]>0){continue;}

      if($setup[$sku]>0 and $termprice[$sku]>0){
        $note=sprintf("Includes \$%.2f %s", $setup[$sku], $setuptext[$sku]);
      }else{
        $note="&nbsp;";
      }

      if($termprice[$sku]>0){
        $termtext=sprintf("%d %s" . ($term[$sku] > 1 ? 's' : ''), 
           $term[$sku], $unit[$sku]);
      }else{
        $termtext="&nbsp;";
      }
    
      printf("<TR><TD>%d</TD><TD>%s</TD><TD align=center>\$%.2f</TD>
              <TD>%s</TD></tr>\n",
             $sku, $description[$sku], $price[$sku], $termtext);
    
    }
  
  ?>

  
</table>


<h2>Payment Terms</h2>

Unless otherwise stated, payment terms for all accounts are
net 15.  Overdue accounts may be suspended until payment is received
with no credit given for downtime.  No refunds are issued on
overdue accounts.  <P>

All accounts are subject to other fees and charges above and beyond
the basic account fee. These fees are due net 15 days from
the last day of the month in which they were incurred.<P>

<HR>

<A NAME=data></a>
<H2>Data Transfer and Storage Charge</H2>

All users are subject to a data transfer and storage surcharges above
and beyond the basic account fee. Data storage includes 
web site, email, MySQL databases, shell accounts, and logs.  
Data transfer consists of web
server or ftp server transfers, mail server, chat, or VPN transfer, or
any other sort of transfer from public files in a user's account or
any program he or she runs. Incoming and outgoing data transfer both
count.<P>

For any transfer or storage beyond the limits included with the basic
account, additional data units must be purchased in whole units of 1
Gigabyte (1073741824 bytes).  The very first byte stored or transferred in excess of
the limit requires the purchase of another whole Gigabyte unit for the
month. A whole unit fee is due regardless which day of the month the excess
occurs, and a whole unit fee is due regardless of the duration of the overage. The fees are
not pro-rated or adjusted if you beg and plead, so don't bother. <P>
For each additional GByte needed each month, there is a fee of
<?php echo "\$$price[130286]" ?>.  <P>

Data transfer and storage fees are subject to change without notice. 

<HR>
<h2> Billing Penalties </h2>
There is a <?php echo "\$$price[130252]" ?> fee for a returned check or
chargeback.  For a declined credit card there is 
a <?php echo "\$$price[130237]" ?> fee.
If a customer is delinquent and does not pay fees in a timely manner,
their service may be terminated by JTAN. To re-establish service after a
termination, there is an  <?php echo "\$$price[130238]" ?> service
re-establishment fee. <P>
There is a $1 fee for paper invoices mailed to a US address. For
international deliveries of paper invoices, the fee is $2 to most
countries. 

<HR>

<H2>Up-grades and Cross-grades</H2>

To change to a different account type, you must purchase a full term of
the new account. Credit is given for unused time in your old account.<P>
<P>

<HR>

<H2>Domain Registration and DNS Service</h2>

Domain Registration may be sold separately or in combination with DNS
Service. These may be included as part of various account packages. 
The fee for domain registration sold separately
is <?php echo "\$$price[130347]" ?> annually (or higher for certain premium top level domain types).
The fee for DNS Service alone is $36<?php /* echo "\$$price[130249]" */ ?>. Some
accounts (e.g., ProWeb) include DNS service and domain registration for free for some
limited number of domains.

<P>


<HR>

<h2> Administrative Support </h2>

Admin fees may be charged for things such as switching domains,
secondary domains, switching usernames, special mail, DNS, or webserver
configuration, and other tasks.  These are quoted on a case-by-case
basis.  If for some reason you need the OS reinstalled or repaired on
your dedicated server, this always invoves an administrative support
fee.<P>

Normal administrative support service that can be performed on a
sheduled basis during normal business hours is billed at a rate of
<?php echo "\$$price[130251]" ?> per hour for direct labor, plus any material required billed at cost plus
20% markup. <P>

Emergency support may be provided after hours on an immediate emergency
basis.  JTAN does not guarantee the availability of emergency support. 
If available, emergency support is billed at a rate of <?php echo
"\$$price[130257]" ?> per hour for
direct labor, plus any material required billed at cost plus 30% markup. 

<P>


<HR>

<A NAME=otherfee>
<h2> Other Fees </h2>

If a user deletes or loses a file or directory and requests that file or
directory restored, there is a <?php echo "\$$price[130220]" ?> fee. 
<P>

If a user forgets or loses an account password, the user may have to
re-apply.  If so, there is a <?php echo "\$$price[130204]" ?>&nbsp;
re-application fee. This fee includes delivery of a new
password letter.  Users with JTAN signed PGP keys do not need to
re-apply or pay the fee, as their passwords can be reissued by email.<P>

<HR>

<H2>Service Disruption Fees</H2>

In cases of damage or service disruption caused by hackers to JTAN
machines or networks, or to machines or networks owned or operated by
JTAN customers, JTAN may bill responsible JTAN users for service
disruption.  This fee is billed in cases where a JTAN user is found
directly or indirectly responsible for the attack, including, but not
limited to, cases where the JTAN user ran a high risk application, such
as an IRC "bot", that was attacked, or operated software on a dedicated
host without installing currently available security patches.<P>

Service Disruption Fee: <?php echo "\$$price[130258]" ?> per hour, for each system disrupted.  

<HR>
<H2>Fine Print</H2>

Refer to our 
<A HREF=fineprint.html>fine print</a> for policy fine print. <P>

<HR>


<?php include("/www/jtan/letterfoot.html"); ?> 

</HTML>
