<HTML>
<HEAD>
<title> WebStore 400CS Shopping Cart - RDC Software - Configure WebStore Setup File - outlet.setup</title>
<META NAME="description" content="WebStore 400CS - a flexible, low cost, Perl shopping cart by RDC Software. Easy to install and customize. Online web store demonstrations and support documentation. Custom programming available.">
<META NAME="keywords" content="shopping cart,Shopping Cart,SHOPPING CART,perl webstore,Perl Webstore,WebStore,WEBSTORE,webstores,Webstores,WebStores,WEBSTORES,web-store,Web-store,Web-Store,WEB-STORE,web-stores,Web-stores,Web-Stores,WEB-STORES,storefront,Storefront,STOREFRONT,storefronts,Storefronts,STOREFRONTS,store-front,Store-Front,STORE-FRONT,store-fronts,Store-Fronts,STORE-FRONTS,on-line shop,On-line Shop,ON-LINE SHOP,online store,Online Store,ONLINE STORE,virtual mall,Virtual Mall,VIRTUAL MALL,internet commerce,Internet Commerce,e-commerce,E-Commerce,frontpage,MS Frontpage,nt,NT server">
<META NAME="copyright" content="
Copyright (c) 1996 - 2002, RDC Software, http://www.ratite.com
Copyright notifications:
Single User License:  /Docs/Copyright_SingleUser.html
Server License:       /Docs/Copyright_Server.html
File contents can not be altered.">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" ALINK="#FF0000" VLINK="#0000A0">



<DL>
  <DT><TABLE BORDER=0 WIDTH="100%" CELLPADDING=0 CELLSPACING=0>
      <TR><TD><FONT SIZE=2>
      <A HREF="ws_global.setup.html">Previous</A> |
      <A HREF="index.shipping.html">Next</A>
      </FONT></TD>

      <TD ALIGN=right><FONT SIZE=2>
      Main Index: &nbsp;
      <A HREF="index.html" TARGET="_top">Frames</A> |
      <A HREF="index.docs.html" TARGET="_top">No Frames</A>
      </FONT></TD></TR>

      <TR><TD COLSPAN=2 ALIGN=right><FONT SIZE=2>
      Document: &nbsp;
      <A HREF="frames/frame.outlet.setup.html" TARGET="_top">Frames</A> |
      <A HREF="outlet.setup.html" TARGET="_top">No Frames</A>
      </FONT></TD></TR>
      </TABLE>


  <DT>&nbsp;
  <DT><CENTER><H3><B>Configure <I>WebStore</I> Setup File</B></H3></CENTER>
  <DT>&nbsp;


  <DT><I>WebStore's</I> setup file, /Web_store/Databases/<I><A HREF="../Databases/outlet.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">outlet.setup</A></I>,
      contains <A HREF="#GenSet">variables</A> specific to
      <I><A HREF="preface.html#ws400CS.cgi" TARGET="w2" onClick="window.open('','w2','width=640,height=200,scrollbars,resizable,top=0,left=0')">ws400CS.cgi</A></I>.
  <DT>&nbsp;
  <DT>Variables used by all scripts are located in
      /Web_store/<I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
  <DT>&nbsp;
  <DT><A NAME="default_setup_file"></A><PRE><B>$default_setup_file = 'outlet.setup';</B></PRE>
      If you change the filename of <I>outlet.setup</I>, change the value of
      $default_setup_file located in the DEFINE VARIABLES section at the top of
      <I>ws400CS.cgi</I> to reflect the file's new name.
  <DT>&nbsp;
  <DT>$default_setup_file is the setup file used if the URL pointing to <I>ws400CS.cgi</I>
      does not contain a name=value pair for store=
      in the <NOBR>query string:</NOBR> &nbsp; ws400CS.cgi?store=outlet
  <DT>&nbsp;
  <DT>&nbsp;


  <DT><B><A NAME="GenSet"></A><A HREF="#General">General Settings</A></B>
  <DT>&nbsp;
  <DD><A HREF="#data_file">$data_file</A>
  <DD><A HREF="#global_page_title">$global_page_title</A>
  <DD><A HREF="#company">@company</A>
  <DD><A HREF="#currency">$currency</A>
  <DD><A HREF="#frontpage_file">$frontpage_file</A>
  <DD><A HREF="#frameset_file">$frameset_file</A>
  <DD><A HREF="#duplicate_buttons">$duplicate_buttons</A>
  <DD><A HREF="#button_txt">$button_1_txt - $button_5_txt</A>
  <DD><A HREF="#add_cart_button">$add_cart_button</A>
  <DD><A HREF="#return_link_url">$return_link_url</A> | <A HREF="#return_link_url">$return_link_title</A>
  <DD><A HREF="#email_link_url">$email_link_url</A> &nbsp;| <A HREF="#email_link_url">$email_link_title</A>
  <DT>&nbsp;


  <DT><B><A NAME="DbaseItems"></A><A HREF="#Dbase">Database of Items for Sale</A></B>
  <DT>&nbsp;
  <DD><A HREF="#field_names">@field_names</A>
  <DD><A HREF="#category_fld_num">$category_fld_num</A> |
      <A HREF="#item_fld_num">$item_fld_num</A> |
      <A HREF="#price_fld_num">$price_fld_num</A> |
      <A HREF="#image_fld_num">$image_fld_num</A>
  <DL>
      <DT>&nbsp;
      <DT><B><A NAME="DropDownList"></A><A HREF="#DDListElement">Color/Size Database Fields</A></B>
      <DT>&nbsp;
      <DD><A HREF="#DD1_FIELDS">%DD1_FIELDS</A> | <A HREF="#DD2_FIELDS">%DD2_FIELDS</A>
  </DL>
  <DT>&nbsp;


  <DT><B><A NAME="ClientFormVars"></A><A HREF="#ClientForm">Client Form Files</A></B>
  <DT>&nbsp;
  <DD><A HREF="#password_file">$password_file</A>
  <DD><A HREF="#def_username">$def_username</A> | <A HREF="#def_username">$def_password</A>
  <DD><A HREF="#deny_access_url">$deny_access_url</A>
  <DT>&nbsp;
  <DD><A HREF="#client_file">$client_file</A>
  <DD><A HREF="#retrieve_file">$retrieve_file</A>
  <DD><A HREF="#client_delete_age">$client_delete_age</A>
  <DD><A HREF="#client_fields">@client_fields</A>
  <DD><A HREF="#usr_fld_name">$usr_fld_name</A> | <A HREF="#pwd_fld_name">$pwd_fld_name</A>
  <DD><A HREF="#access_attempts">$access_attempts</A>
  <DD><A HREF="#admin_file_email">$admin_file_email</A>
  <DT>&nbsp;


  <DT><B><A NAME="ResellerVars"></A><A HREF="#Reseller">Product Resellers</A></B>
  <DT>&nbsp;
  <DD><A HREF="#reseller_data_file">$reseller_data_file</A>
  <DD><A HREF="#reseller_file">$reseller_file</A>
  <DD><A HREF="#reseller_spreadsheet">$reseller_spreadsheet</A>
  <DD><A HREF="#RESELLER_FIELDS">%RESELLER_FIELDS</A>
  <DD><A HREF="#reseller_include_files">@reseller_include_files</A>
  <DD><A HREF="#rsc_name_fld_num">$rsc_name_fld_num</A> | <A HREF="#rsc_name_fld_num">$rsc_mail_fld_num</A> | <A HREF="#rsc_name_fld_num">$rsc_urlpage_fld_num</A>
  <DT>&nbsp;


  <DT><B><A NAME="Realtime"></A><A HREF="#Real-time">Real-time Payment Processing</A></B>
  <DT>&nbsp;
  <DD><A HREF="#merchant_file">$merchant_file</A>
  <DT>&nbsp;


  <DT><B><A NAME="OrderFormVars"></A><A HREF="#OrderForm">Order Form</A></B>
  <DT>&nbsp;
  <DD><A HREF="#country_file">$country_file</A>
  <DD><A HREF="#pre_form_file">$pre_form_file</A>
  <DD><A HREF="#form_files">%form_files</A>
  <DD><A HREF="#demo_form_file">$demo_form_file</A>
  <DD><A HREF="#minimum_order">$minimum_order</A>
  <DD><A HREF="#DISCOUNT">%DISCOUNT</A>
  <DD><A HREF="#SHIPPING">%SHIPPING</A>
  <DD><A HREF="#tax">$tax</A> | <A HREF="#tax_label">$tax_label</A>
  <DD><A HREF="#mail_file">$mail_file</A> | <A HREF="#join_list">$join_list</A>
  <DT>&nbsp;
  <DD><B><A NAME="ConfirmationVars"></A><A HREF="#Confirmation">Confirmation of Order HTML Page</A></B>
  <DL>
      <DT>&nbsp;
      <DD><A HREF="#fax_signature">$fax_signature</A>
      <DD><A HREF="#delete_cart">$delete_cart</A>
  </DL>
  <DT>&nbsp;


  <DT><B><A NAME="OrderEmailMessages"></A><A HREF="#OrderEmail">Administrative & Confirmation of Order E-mail Messages</A></B>
  <DT>&nbsp;
  <DD><A HREF="#email_numbers">@email_numbers</A> | <A HREF="#email_fields_array">%email_fields_array</A>
  <DD><A HREF="#label_align">$label_align</A>
  <DD><A HREF="#item_subtotal">$item_subtotal</A>
  <DD><A HREF="#email_subject">$email_subject</A>
  <DD><A HREF="#message_columns">$message_columns</A>
  <DD><A HREF="#message_divider">$message_divider</A>
  <DD><A HREF="#pre_client_msg">$pre_client_msg</A> | <A HREF="#app_client_msg">$app_client_msg</A>
  <DD><A HREF="#pre_admin_msg">$pre_admin_msg</A>
  <DD><A HREF="#fax_email">$fax_email</A>
  <DD><A HREF="#mail_order">%mail_order</A>
  <DT>&nbsp;


  <DT><B><A NAME="Statistics"></A><A HREF="#Stats">Statistics</A></B>
  <DT>&nbsp;
  <DD><A HREF="#log_file">$log_file</A> | <A HREF="#log_file_size">$log_file_size</A> | <A HREF="#log_delimiter">$log_delimiter</A>
  <DD><A HREF="#stat_file">$stat_file</A> | <A HREF="#stat_file_size">$stat_file_size</A> | <A HREF="#stat_delimiter">$stat_delimiter</A>
  <DD><A HREF="#count_file">$count_file</A> | <A HREF="#start_count">$start_count</A> | <A HREF="#counter_label">$counter_label</A>
  <DT>&nbsp;


  <DT><B><A NAME="TableDisplayVars"></A><A HREF="#TableDisplay">Table Displays</A></B>
  <DT>&nbsp;
  <DD><A HREF="#meta_tags">$meta_tags</A>
  <DD><A HREF="#DocColorVars">$background</A> | <A HREF="#DocColorVars">$bgcolor - $alink_color</A>
  <DD><A HREF="#SPC">$SPC</A> | <A HREF="#CELLPADDING">$CELLPADDING</A>
  <DD><A HREF="#border">$border</A>
  <DT>&nbsp;
  <DL>
      <DT><B><A NAME="CategoryTables"></A><A HREF="#Category">Database Category and Search Result Tables</A></B>
      <DT>&nbsp;
      <DD><A HREF="#vertical_numbers">@vertical_numbers</A> | <A HREF="#display_numbers">@display_numbers</A> | <A HREF="#fields_array">%fields_array</A>
      <DD><A HREF="#table_border">$table_border</A> | <A HREF="#spc_width">$spc_width</A> | <A HREF="#spc_height">$spc_height</A>
      <DD><A HREF="#table_title">$table_title</A>
      <DD><A HREF="#table_width">$table_width</A>
      <DD><A HREF="#item_separator">$item_separator</A>
      <DD><A HREF="#max_items">$max_items</A>
      <DD><A HREF="#display_category">$display_category</A>
  </DL>
  <DT>&nbsp;

  <DL><DL>
      <DT><B><A NAME="ImageDisplayVars"></A><A HREF="#ImageDisplay">Image Display</A></B>
      <DT>&nbsp;
      <DD><A HREF="#img_spacing">$img_spacing</A>
      <DD><A HREF="#img_border">$img_border</A> | <A HREF="#img_padding">$img_padding</A>
      <DD><A HREF="#outer_clr_width">$outer_clr_width</A> | <A HREF="#outer_clr_width">$outer_img_clr</A>
      <DD><A HREF="#inner_clr_width">$inner_clr_width</A> | <A HREF="#inner_clr_width">$inner_img_clr</A>
  </DL></DL>
  <DT>&nbsp;

  <DL>
      <DT><B><A NAME="ViewModifyTables"></A><A HREF="#ViewModify">View/Modify Tables</A></B>
      <DT>&nbsp;
      <DD><A HREF="#modify_display_numbers">@modify_display_numbers</A> | <A HREF="#modify_fields_array">%modify_fields_array</A>
      <DD><A HREF="#modify_table_border">$modify_table_border</A> | <A HREF="#modify_spc_width">$modify_spc_width</A> | <A HREF="#modify_spc_height">$modify_spc_height</A>
  </DL>
  <DT>&nbsp;


  <DT><B><A NAME="FontControlVars"></A><A HREF="#FontControl">Font Control</A></B>
  <DT>&nbsp;
  <DD><A HREF="#header_bkg_clr">$header_bkg_clr</A> | <A HREF="#header_bkg_clr">$header_fnt_clr</A>
  <DD><A HREF="#dsc_hr_bkg_clr">$dsc_hr_bkg_clr</A> | <A HREF="#dsc_hr_bkg_clr">$dsc_hr_fnt_clr</A>
  <DD><A HREF="#data_bkg_clr">$data_bkg_clr</A>     | <A HREF="#data_bkg_clr">$data_fnt_clr</A>
  <DD><A HREF="#modify_bkg_clr">$modify_bkg_clr</A> | <A HREF="#modify_bkg_clr">$modify_fnt_clr</A>
  <DD><A HREF="#border_bkg_clr">$border_bkg_clr</A>
  <DD><A HREF="#count_bkg_clr">$count_bkg_clr</A> | <A HREF="#count_bkg_clr">$count_fnt_clr</A>
  <DT>&nbsp;


  <DT><B><A NAME="Display"></A><A HREF="#DisplayHTML">Display Additional HTML</A></B>
  <DT>&nbsp;
  <DD><A HREF="#include_files">@include_files</A>
  <DT>&nbsp;
  <DD><A HREF="#print_text_file">&amp;print_text_file('filename.txt');</A>
  <DD><A HREF="#frontpage_trailer">$frontpage_trailer</A> | <A HREF="#sub_frontpage_trailer_html">sub_frontpage_trailer_html</A>
  <DD><A HREF="#pre_category">$pre_category</A>           | <A HREF="#sub_pre_category_html">sub_pre_category_html</A>
  <DD><A HREF="#category_trailer">$category_trailer</A>   | <A HREF="#sub_category_trailer_html">sub_category_trailer_html</A>
  <DD><A HREF="#pre_view_modify">$pre_view_modify</A>     | <A HREF="#sub_pre_view_modify_html">sub_pre_view_modify_html</A>
  <DT>&nbsp;


  <DT><B><A NAME="SearchEngine"></A><A HREF="#Search">Search Engine</A></B>
  <DT>&nbsp;
  <DD><A HREF="#search_engine">$search_engine</A>
  <DD><A HREF="#search_tips">$search_tips</A>
  <DD><A HREF="#categories_desc">$categories_desc</A> | <A HREF="#categories">@categories</A>
  <DT>&nbsp;



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#top"><FONT SIZE=2>Top of Page</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



<!-- General Settings -->
  <DT><A NAME="General"></A><CENTER><B><FONT SIZE=4>General Settings</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="data_file"></A><PRE><B>$data_file = 'outlet.data';</B></PRE>
  <DT>$data_file is the | (pipe) delimited flatfile database containing the store's
      inventory of items for sale.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="global_page_title"></A><PRE><B>$global_page_title = 'RDC Software';</B></PRE>
  <DT>$global_page_title is the &lt;TITLE&gt; text printed to HTML pages generated by
      <I>WebStore</I> and the table header text for the search engine.
  <DT>&nbsp;
  <DT>$global_page_title is used in <A HREF="#email_subject">$email_subject</A>,
      <A HREF="#meta_tags">$meta_tags</A>, and <A HREF="#table_title">$table_title</A>,
      in $email_subject of secondary form files, and in page header arrays in primary
      order form setup files and secondary form setup files.


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="company"></A><PRE><B>@company = (

  'RDC Software',
  'Route 3, Box 29B',
  'Grapeland, Texas 75844',
  'Phone: 936.687.2400',
  'Fax:   936.687.9057'

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates @company</FONT></B></PRE>
  <DT>@company is is used on the Confirmation of Order page, in
      <A HREF="#pre_client_msg">$pre_client_msg</A>, and in $pre_client_msg in secondary
      form files.
  <DT>&nbsp;
  <DT>The first element of @company must be your business name.
  <DT>The contents of @company is printed at the top of the Confirmation of Order page
      using the following format:
  <DT>&nbsp;
  <DT><FONT SIZE=3><A HREF="#company"><B>RDC Software</B></A></FONT><BR>
      <FONT SIZE=2><NOBR>Route 3, Box 29B &nbsp;&nbsp; </NOBR><NOBR>Grapeland, Texas 75844 &nbsp;&nbsp; </NOBR><NOBR>Phone: 936.687.2400 &nbsp;&nbsp; </NOBR><NOBR>Fax: 936.687.9057</NOBR></FONT>
  <DT>&nbsp;
  <DT>The business name is wrapped inside an &lt;A HREF&gt; tag using <A HREF="#return_link_url">$return_link_url</a>
      in the address listing at the top of the page and in the following phrase
      located at the bottom of the page:
  <DT>&nbsp;
  <DT><CENTER><FONT SIZE=2>Thank you for shopping at <A HREF="#company">RDC Software</A></FONT></CENTER>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="currency"></A><PRE><B>$currency = '$';</B></PRE>
  <DT>$currency is the currency label for price values printed to the client's
      web browser and order e-mail messages.
  <DT>&nbsp;
  <DT>$currency defaults to '$' (US currency) when the value of $currency is not
      defined or the value of $currency does not match a non-whitespace character.
  <DT>&nbsp;
  <DD>Example settings:
  <DD><PRE>$currency = '£';    <FONT COLOR="#008080"># Sterling Pounds</FONT>
$currency = 'Lit.'; <FONT COLOR="#008080"># Italian Lira</FONT>
$currency = '$';    <FONT COLOR="#008080"># US Dollars</FONT></PRE>


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="frontpage_file"></A><PRE><B>$frontpage_file = 'outlet_frontpage.html';</B></PRE>
  <DT>$frontpage_file is the store's front page containing links to database categories,
      category front pages, or expanded item information pages.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="frameset_file"></A><PRE><B>$frameset_file = 'Frameset.html';</B></PRE>
  <DT>$frameset_file is the store's frame document.
  <DT>&nbsp;
  <DT><I>WebStore</I> is packaged with the following frame documents:<PRE>
      <I><A HREF="../Html/TEXT_Frameset.html" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Frameset.html</A></I>
      <I><A HREF="../Html/TEXT_Frameset_banner.html" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Frameset_banner.html</A></I></PRE>
  <DT><I>WebStore</I> loads <I>Frameset.html</I> when clients enter the store.
  <DT>&nbsp;
  <DT>Setting $frameset_file = '' disables frames. <I>WebStore</I> loads
      <A HREF="#frontpage_file">$frontpage_file</A> when clients enter the store.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="duplicate_buttons"></A><PRE><B>$duplicate_buttons = '1';</B></PRE>
  <DT>If $duplicate_buttons = '1', print buttons for <I>View Cart</I>, <I>Order Form</I>,
      and <I>Front Page</I> in the <I>main</I> frame housing the <I>WebStore</I> application.
  <DT>&nbsp;
  <DT>If these buttons do not exist in an HTML document defined in a
      &lt;frame src&gt; tag of the frame document defined in
      <A HREF="#frameset_file">$frameset_file</A>, $duplicate_buttons must be set to '1'.
  <DT>&nbsp;
  <DT><I>WebStore</I> disregards $duplicate_buttons when
      <A HREF="#frameset_file">$frameset_file</A> = ''. All buttons are printed.
  <DT>&nbsp;
  <DT>Setting $duplicate_buttons = '' disables printing of buttons when a
      filename is defined in <A HREF="#frameset_file">$frameset_file</A>,
      <I>WebStore</I> is running in frames.


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="button_txt"></A><PRE><B>$button_1_txt = 'View Cart';     <FONT COLOR="#008080"># Go to View/Modify table</FONT>
$button_2_txt = 'Front Page';    <FONT COLOR="#008080"># Go to Store's Front Page</FONT>
$button_3_txt = 'Previous Page'; <FONT COLOR="#008080"># Go to Previous Category or HTML Page</FONT>
$button_4_txt = 'Order Form';    <FONT COLOR="#008080"># Go to Order Form</FONT>
$button_5_txt = 'Add to Cart';   <FONT COLOR="#008080"># Add item to shopping cart</FONT></B></PRE>
  <DT>$button_1_txt through $button_5_txt contain the text displayed on submission
      buttons throughout <I>WebStore</I>.
  <DT>&nbsp;
  <DT>$button_5_txt is also used in <I>Add to Cart</I> error messages



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="add_cart_button"></A><PRE><B>$add_cart_button = 'ac.Add_to_Cart.gif:BORDER="0" WIDTH="63" HEIGHT="15"';</B></PRE>
  <DT>$add_cart_button is the <I>Add to Cart</I> button printed in each item's table row
      in database category displays and expanded item pages.
  <DT>&nbsp;
  <DT>$add_cart_button may be colon delimited, listing an add to cart button image
      to the left of the colon and image attributes to the right of the colon.
  <DT>&nbsp;
  <DT><I>WebStore</I> assigns the image submit button's NAME and VALUE.  If you include
      NAME or VALUE in the attributes, <I>WebStore</I> will not print any listed attributes.
  <DT>&nbsp;
  <DT>The add to cart button image must be stored in the /Graphics sub-directory.
      If the image is not readable by the server,
      <NOBR><FONT SIZE=2 FACE="Arial,Helvetica"><B>-<FONT COLOR="#0000CD">r</FONT>
      IMAGE.xxx</B>,</FONT></NOBR> form submission buttons are printed to item rows
      using the text defined in <A HREF="#button_txt">$button_5_txt</A> as
      the button's VALUE.
  <DT>&nbsp;
  <DT>Accepted image types are .gif, .jpg, or .jpeg.
  <DT>&nbsp;
  <DT>Accepted button image settings:
  <DD><PRE>
$add_cart_button = 'Filename<FONT COLOR="#DC143C">:</FONT><FONT COLOR="#0000CD">Attributes</FONT>';

$add_cart_button = 'IMAGE.gif';   <FONT COLOR="#008080">No Image Attributes</FONT>
$add_cart_button = 'IMAGE.gif<FONT COLOR="#DC143C">:</FONT>';  <FONT COLOR="#008080">No Image Attributes</FONT>
$add_cart_button = 'IMAGE.gif<FONT COLOR="#DC143C">:</FONT><FONT COLOR="#0000CD">BORDER="0" WIDTH="64" HEIGHT="15"</FONT>';</PRE>

  <DT>Setting $add_cart_button = '1' prints form submission buttons to item table
      rows using the text defined in <A HREF="#button_txt">$button_5_txt</A> as
      the button's VALUE.
  <DT>&nbsp;
  <DT>Setting $add_cart_button = '' disables printing add to cart buttons to item
      table rows.  A single <I>Add to Cart</I> button is printed at the bottom of the
      page.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="return_link_url"></A><PRE><B>$return_link_url = 'http://www.YourDomain.xxx';</B></PRE>
      $return_link_url is an absolute URL link printed at the bottom of all pages in
      <I>WebStore</I> whose format is:
  <DD><PRE>http://www.YourDomain.xxx/AnyDirectories/Filename.html</PRE>
  <DT>$return_link_url targets "_top" to exit frames when a frames document
      is defined in <A HREF="#frameset_file">$frameset_file</A>.
  <DT>&nbsp;
  <DT>Setting $return_link_url = '' disables the printing of $return_link_url.
      For the <I>Confirmation of Order</I> HTML page, <I>WebStore</I> will attempt to construct
      a value for $return_link_url using:
  <DD><PRE>$return_link_url = 'http://'.$ENV{'HTTP_HOST'};</PRE>
  <DT><PRE><B>$return_link_title = 'Home Page';</B></PRE>
  <DT>$return_link_title is the absolute URL's description.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="email_link_url"></A><PRE><B>$email_link_url = "WebStore\@YourDomain.xxx";</B></PRE>
  <DT>$email_link_url is an e-mail link printed at the bottom of all pages in <I>WebStore</I>.
  <DT>&nbsp;
  <DT>Setting $email_link_url = '' disables the printing of $email_link_url.
  <DT><PRE><B>$email_link_title = 'Mail to: '.$email_link_url;</B></PRE>
  <DT>$email_link_title is the e-mail link's description.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#GenSet"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



<!-- Database of Items for Sale Variables -->
  <DT><A NAME="Dbase"></A><CENTER><B><FONT SIZE=4>Database of Items for Sale</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="field_names"></A><PRE><B>@field_names = (

<FONT COLOR="#008080"># Field Name     Dbase Field</FONT>

  'Color',       <FONT COLOR="#008080">#   0</FONT>
  'Size',        <FONT COLOR="#008080">#   1</FONT>
  'Shipping',    <FONT COLOR="#008080">#   2</FONT>
  'Item',        <FONT COLOR="#008080">#   3</FONT>
  'Category',    <FONT COLOR="#008080">#   4</FONT>
  'Price',       <FONT COLOR="#008080">#   5</FONT>
  'Name',        <FONT COLOR="#008080">#   6</FONT>
  'Description', <FONT COLOR="#008080">#   7</FONT>
  'Image',       <FONT COLOR="#008080">#   8</FONT>
  'Id',          <FONT COLOR="#008080">#   9</FONT>

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates @field_names</FONT></B></PRE>
  <DT>@field_names is a listing of the database record structure present in
      the | (pipe) delimited product database,
      <I><A HREF="../Databases/outlet.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">outlet.data</A></I>,
      defined in <A HREF="#data_file">$data_file</A>.
      These field names are used to display column header text in View/Modify, Delete,
      Change Quantity, Order Form, and Reminder to client of what they ordered.
      They are also used as field labels when <I>WebStore</I> is configured
      to display vertical fields using <A HREF="#vertical_numbers">@vertical_numbers</A>.
  <DT>&nbsp;
  <DT>The <I>Color</I> and <I>Size</I> fields are reserved for drop down list elements and
      can not be removed.  Their location within @field_names can not be changed.
      The names <I>Color</I> and <I>Size</I> may be changed to describe the type of
      information you are listing in each drop down list element.
  <DT>&nbsp;
  <DT>The field names assigned to the <I>Color</I> and <I>Size</I> fields in @field_names
      are used by <I>WebStore</I> to display &lt;FORM&gt; entry error messages to the client.
  <DT>&nbsp;
  <DT>The <I>Id</I> field must always be the last element in @field_names and it's name can not
      be changed.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#DbaseItems"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="category_fld_num"></A><PRE><B>$category_fld_num = '4';</B></PRE>
  <DT>$category_fld_num is the array index number or field number of the
      <I><A HREF="product.database.html#Category" TARGET="_blank">Category</A></I> field within
      all database records of outlet.data.
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#DbaseItems"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="item_fld_num"></A><PRE><B>$item_fld_num = '3';</B></PRE>
  <DT>$item_fld_num is the array index number or field number of the
      <I><A HREF="product.database.html#Item" TARGET="_blank">Item</A></I> field or
      the item's inventory control number field within all database records of outlet.data.
  <DT>&nbsp;
  <DT>When printing database category displays or search result pages, <I>WebStore</I>
      prints name anchors in each item's table row and constructs image filenames
      using the value present in the item field.
  <DT>&nbsp;
  <DT>Spaces in the item field value are replaced with _ (underscore) in image
      filenames and name anchors.

  <DD><PRE>Name Anchor:  &lt;A NAME=&quot;<FONT COLOR="#0000CD">Item_Number</FONT>&quot;&gt;&lt;/A&gt;</PRE>

  <DT>Valid image types are <I>.gif</I> and <I>.jpg</I>. <I>WebStore</I> checks for the
      existence of <I>.gif</I> files first. If <FONT COLOR="#0000CD">Item_Number.gif</FONT>
      exists, <I>WebStore</I> never checks for <FONT COLOR="#0000CD">Item_Number.jpg</FONT>.
  <DT>&nbsp;
  <DT><B>Example image filenames and image source tags:</B>
  <DD><PRE>   Item field value:    Item Number
   Image filenames:     <FONT COLOR="#0000CD">Item_Number.gif</FONT>
                        <FONT COLOR="#0000CD">Item_Number.jpg</FONT>

&lt;IMG SRC=&quot;$graphics_url/<FONT COLOR="#0000CD">Item_Number.gif</FONT>&quot; ALT=&quot;&quot; BORDER=0&gt;
&lt;IMG SRC=&quot;$graphics_url/<FONT COLOR="#0000CD">Item_Number.jpg</FONT>&quot; ALT=&quot;&quot; BORDER=0&gt;</PRE>

  <DT>If <FONT COLOR="#0000CD">Item_Number.gif</FONT> or <FONT COLOR="#0000CD">Item_Number.jpg</FONT>
      exists, <I>WebStore</I> uses the alignment attribute stored in the item's
      <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I> field to
      align the image to printed text. Image alignment defaults to left when no alignment
      attribute is present in the
      <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I> field.
      Images stored in the
      <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I> field are not used.
  <DT>&nbsp;
  <DT>If <FONT COLOR="#0000CD">Item_Number.gif</FONT> and
      <FONT COLOR="#0000CD">Item_Number.jpg</FONT> do not exist, <I>WebStore</I> uses the
      contents of the item's <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I>
      field for printing images.
  <DT>&nbsp;
  <DT>$item_fld_num also enables the use of
      <I><A HREF="query_string.html#buy_item" TARGET="_blank">&amp;buy_item=</A></I>ItemNumber
      and
      <I><A HREF="query_string.html#view_item" TARGET="_blank">&amp;view_item=</A></I>ItemNumber
      in <I>WebStore</I> query strings.
  <DT>&nbsp;
  <DT>Setting $item_fld_num = '' disables name anchor generation, the use of
      <I><A HREF="query_string.html#buy_item" TARGET="_blank">&amp;buy_item=</A></I>ItemNumber
      and
      <I><A HREF="query_string.html#view_item" TARGET="_blank">&amp;view_item=</A></I>ItemNumber
      in <I>WebStore</I> query strings, and item image
      filename construction. <I>WebStore</I> never checks for the existence of
      <FONT COLOR="#0000CD">Item_Number.gif</FONT> and
      <FONT COLOR="#0000CD">Item_Number.jpg</FONT>.

      <I>WebStore</I> uses the contents of the item's
      <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I>
      field for printing all images.
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#DbaseItems"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="price_fld_num"></A><PRE><B>$price_fld_num = '5';</B></PRE>
  <DT>$price_fld_num is the location of the <I><A HREF="product.database.html#Price" TARGET="_blank">Price</A></I>
      field for each item listed in the store's database.
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#DbaseItems"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="image_fld_num"></A><PRE><B>$image_fld_num = '8';</B></PRE>
  <DT>$image_fld_num is the location of the <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I>
      field for each item listed in the store's database.
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#DbaseItems"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



<!-- Color/Size Database Fields -->
  <DT>&nbsp;
  <DT><A NAME="DDListElement"></A><CENTER><B><FONT SIZE=4>Color/Size Database Fields</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><TABLE WIDTH=450 BORDER=0 CELLPADDING=2 CELLSPACING=0>
      <TR VALIGN=top><TD COLSPAN=19 HEIGHT=30><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).</TD></TR>
      <TR>
      <TH COLSPAN=19 ALIGN=left>
      <I><A HREF="product.database.html" TARGET="_blank">Database Fields</A></I> in
      <I><A HREF="../Databases/outlet.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">outlet.data</A></I></TH></TR>
      <TR>
      <TD ALIGN=center><FONT SIZE=2>0</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>1</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>2</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>3</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>4</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>5</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>6</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>7</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>8</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>9</FONT></TD></TR>
      <TR BGCOLOR="#DCDCDC">
      <TD ALIGN=center><FONT SIZE=2>&nbsp;<I><A HREF="product.database.html#ColorSize" TARGET="_blank">Color</A></I></FONT></TD>  <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#ColorSize" TARGET="_blank">Size</A></I></FONT></TD>         <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Shipping" TARGET="_blank">Shipping</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Item" TARGET="_blank">Item</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Category" TARGET="_blank">Category</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Price" TARGET="_blank">Price</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Name" TARGET="_blank">Name</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Description" TARGET="_blank">Description</A></I></FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Id" TARGET="_blank">Id</A></I>&nbsp;</FONT></TD></TR>
      </TABLE>
  <DT>&nbsp;
  <DT>All items must contain a field for <FONT COLOR="#DC143C">Color</FONT> and
      <FONT COLOR="#0000CD">Size</FONT> in the store's database,
      <I><A HREF="../Databases/outlet.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">outlet.data</A></I>.
  <DT>&nbsp;
  <DT>The <FONT COLOR="#DC143C">Color</FONT> field must be <I>Field
      <FONT COLOR="#DC143C">0</FONT></I> (<FONT COLOR="#DC143C">zero</FONT>) for each
      item in the database.
  <DT>The <FONT COLOR="#0000CD">Size</FONT> field must be <I>Field
      <FONT COLOR="#0000CD">1</FONT></I> (<FONT COLOR="#0000CD">one</FONT>) for each
      item in the database.
  <DT>&nbsp;
  <DT><B>Item's requiring <FONT COLOR="#DC143C">Color</FONT> drop down element:</B>
  <DT>Include the list number from <A HREF="#DD1_FIELDS">%DD1_FIELDS</A> in the item's
      <FONT COLOR="#DC143C">Color</FONT> field in the store's database. The list number
      corresponds to the item's list of colors required to construct the drop down element.
  <DT>&nbsp;
  <DT><B>Item's requiring <FONT COLOR="#0000CD">Size</FONT> drop down element:</B>
  <DT>Include the list number from <A HREF="#DD2_FIELDS">%DD2_FIELDS</A> in the item's
      <FONT COLOR="#0000CD">Size</FONT> field in the store's database. The list number
      corresponds to the item's list of sizes required to construct the drop down element.
  <DT>&nbsp;
  <DT>&nbsp;


  <DT><B><FONT COLOR="#DC143C">Color</FONT> and <FONT COLOR="#0000CD">Size</FONT> examples used in item database,
      <I><A HREF="../Databases/outlet.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">outlet.data</A></I>:</B>

<PRE><B><FONT COLOR="#DC143C">0</FONT><FONT COLOR="#DC143C">|</FONT><FONT COLOR="#0000CD">0</FONT><FONT COLOR="#DC143C">|</FONT>Item<FONT COLOR="#DC143C">|</FONT>Category<FONT COLOR="#DC143C">|</FONT>Price<FONT COLOR="#DC143C">|</FONT>Name<FONT COLOR="#DC143C">|</FONT>Description<FONT COLOR="#DC143C">|</FONT>Image<FONT COLOR="#DC143C">|</FONT>Id</B>
First <FONT COLOR="#DC143C">Color</FONT> list in <A HREF="#DD1_FIELDS">%DD1_FIELDS</A> - First <FONT COLOR="#0000CD">Size</FONT> list in <A HREF="#DD2_FIELDS">%DD2_FIELDS</A>

<B><FONT COLOR="#DC143C">6</FONT><FONT COLOR="#DC143C">|</FONT><FONT COLOR="#0000CD">3</FONT><FONT COLOR="#DC143C">|</FONT>Item<FONT COLOR="#DC143C">|</FONT>Category<FONT COLOR="#DC143C">|</FONT>Price<FONT COLOR="#DC143C">|</FONT>Name<FONT COLOR="#DC143C">|</FONT>Description<FONT COLOR="#DC143C">|</FONT>Image<FONT COLOR="#DC143C">|</FONT>Id</B>
Last <FONT COLOR="#DC143C">Color</FONT> list in <A HREF="#DD1_FIELDS">%DD1_FIELDS</A> - Last <FONT COLOR="#0000CD">Size</FONT> list in <A HREF="#DD2_FIELDS">%DD2_FIELDS</A>

<B><FONT COLOR="#DC143C">|</FONT><FONT COLOR="#0000CD">3</FONT><FONT COLOR="#DC143C">|</FONT>Item<FONT COLOR="#DC143C">|</FONT>Category<FONT COLOR="#DC143C">|</FONT>Price<FONT COLOR="#DC143C">|</FONT>Name<FONT COLOR="#DC143C">|</FONT>Description<FONT COLOR="#DC143C">|</FONT>Image<FONT COLOR="#DC143C">|</FONT>Id</B>
No <FONT COLOR="#DC143C">Color</FONT> list - Last <FONT COLOR="#0000CD">Size</FONT> list in <A HREF="#DD2_FIELDS">%DD2_FIELDS</A>

<B><FONT COLOR="#DC143C">6</FONT><FONT COLOR="#DC143C">|</FONT><FONT COLOR="#DC143C">|</FONT>Item<FONT COLOR="#DC143C">|</FONT>Category<FONT COLOR="#DC143C">|</FONT>Price<FONT COLOR="#DC143C">|</FONT>Name<FONT COLOR="#DC143C">|</FONT>Description<FONT COLOR="#DC143C">|</FONT>Image<FONT COLOR="#DC143C">|</FONT>Id</B>
Last <FONT COLOR="#DC143C">Color</FONT> list in <A HREF="#DD1_FIELDS">%DD1_FIELDS</A> - No <FONT COLOR="#0000CD">Size</FONT> list

<B><FONT COLOR="#DC143C">||</FONT>Item<FONT COLOR="#DC143C">|</FONT>Category<FONT COLOR="#DC143C">|</FONT>Price<FONT COLOR="#DC143C">|</FONT>Name<FONT COLOR="#DC143C">|</FONT>Description<FONT COLOR="#DC143C">|</FONT>Image<FONT COLOR="#DC143C">|</FONT>Id</B>
No <FONT COLOR="#DC143C">Color</FONT> list - No <FONT COLOR="#0000CD">Size</FONT> list</PRE>



  <DT>&nbsp;
  <DT><CENTER><A HREF="#DropDownList"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="DD1_FIELDS"></A><PRE><B>%DD1_FIELDS = (

  '<FONT COLOR="#DC143C">0</FONT>'   =>  [ 'Blue',        'Black',        'Navy',        'Red' ],
  '<FONT COLOR="#DC143C">1</FONT>'   =>  [ 'Light Blue',  'Light Brown',  'Red',         'White' ],
  '<FONT COLOR="#DC143C">2</FONT>'   =>  [ 'Blue/Black',  'Green/Black',  'Pink/Black',  'Red/Black' ],
  '<FONT COLOR="#DC143C">3</FONT>'   =>  [ 'Cadetblue',   'Coral',        'Cornsilk',    'Crimson' ],
  '<FONT COLOR="#DC143C">4</FONT>'   =>  [ 'Dark Blue',   'Dark Cyan',    'Dark Gray',   'Dark Green' ],
  '<FONT COLOR="#DC143C">5</FONT>'   =>  [ 'Brown',       'Gray',         'Green',       'White' ],
  '<FONT COLOR="#DC143C">6</FONT>'   =>  [ 'Gold',        'Goldenrod',    'Gray',        'Green' ],

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates %DD1_FIELDS.</FONT></B></PRE>
  <DT>%DD1_FIELDS is a hash of arrays listing your color selections.
  <DT>&nbsp;
  <DT>Each item that requires color definition using a &lt;FORM&gt; drop down list element will access one of the color lists in <NOBR>%DD1_FIELDS</NOBR> according to the value (<FONT COLOR="#DC143C"><B>0</B></FONT> - <FONT COLOR="#DC143C"><B>6</B></FONT>) stored in the item's <FONT COLOR="#DC143C">Color</FONT> field in the store's database.
  <DT>&nbsp;
  <DT>This arrangement offers unlimited color sets for drop down list elements while keeping repetitive data to a minimum in the store's database.
  <DT>&nbsp;
  <DT>If an item does not require the use of a color drop down list element, put <I>nothing</I> in the item's <FONT COLOR="#DC143C">Color</FONT> field in the store's database
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#DropDownList"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="DD2_FIELDS"></A><PRE><B>%DD2_FIELDS = (

  '<FONT COLOR="#0000CD">0</FONT>'  =>  [ '15 x 32',      '15 x 34',      '15 x 36',      '15 x 38',
             '15 1/2 x 32',  '15 1/2 x 34',  '15 1/2 x 36',  '15 1/2 x 38',
             '16 x 32',      '16 x 34',      '16 x 36',      '16 x 38',
             '16 1/2 x 32',  '16 1/2 x 34',  '16 1/2 x 36',  '16 1/2 x 38',
             '17 x 32',      '17 x 34',      '17 x 36',      '17 x 38',
             '17 1/2 x 32',  '17 1/2 x 34',  '17 1/2 x 36',  '17 1/2 x 38',
             '18 x 32',      '18 x 34',      '18 x 36',      '18 x 38',
             '18 1/2 x 32',  '18 1/2 x 34',  '18 1/2 x 36',  '18 1/2 x 38',
             '19 x 32',      '19 x 34',      '19 x 36',      '19 x 38' ],

  '<FONT COLOR="#0000CD">1</FONT>  =>'  [ 'Small',    'Medium',  'Large',       'X-Large',      'XX-Large' ],
  '<FONT COLOR="#0000CD">2</FONT>  =>'  [ 'Small',    'Medium',  'Large',       'X-Large',      'XX-Large',  'XXX-Large' ],
  '<FONT COLOR="#0000CD">3</FONT>  =>'  [ 'Regular',  'Tall',    'Extra-Tall',  'Big Regular',  'Big Tall' ],

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates %DD2_FIELDS.</FONT></B></PRE>
  <DT>%DD2_FIELDS is a hash of arrays listing your size selections.
  <DT>&nbsp;
  <DT>Each item that requires size definition using a &lt;FORM&gt; drop down list element will access one of the size lists in <NOBR>%DD2_FIELDS</NOBR> according to the value (<FONT COLOR="#0000CD"><B>0</B></FONT> - <FONT COLOR="#0000CD"><B>3</B></FONT>) stored in the item's <FONT COLOR="#0000CD">Size</FONT> field in the store's database.
  <DT>&nbsp;
  <DT>This arrangement offers unlimited size sets for drop down list elements while keeping repetitive data to a minimum in the store's database.
  <DT>&nbsp;
  <DT>If an item does not require the use of a size drop down list element, put <I>nothing</I> in the item's <FONT COLOR="#0000CD">Size</FONT> field in the store's database
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#DropDownList"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Client Form Files -->
  <DT><A NAME="ClientForm"></A><CENTER><B><FONT SIZE=4>Client Form Files</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



  <DT><A NAME="password_file"></A><PRE><B>$password_file = 'Access.Restrict.Phone.setup';</B></PRE>
  <DT>$password_file is the forms setup file clients will use to gain access
      to <I>WebStore</I>.  The client's order form file must exist in the
      /Databases/Clients/Restricted sub-directory or access to <I>WebStore</I> is denied.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds <I>.setup</I> to the filename listed in $password_file if the
      filename does not end in <I>.setup</I>.
  <DT>&nbsp;
  <DT>Set $password_file equal to the setup filename configured for the type of
      access fields you will be using:
<DD><PRE>Setup Filename                   Type of Access Fields

Access.Restrict.Password.setup   E-mail Address and Password
Access.Restrict.Phone.setup      E-mail Address and Phone Number</PRE>
  <DT>Setting $password_file = '' disables restricted access to <I>WebStore</I>.
      Client file access is controlled by <A HREF="#client_file">$client_file</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="def_username"></A><PRE><B>$def_username = "demo\@YourDomain.xxx";
$def_password = 'demo1234';</B></PRE>
  <DT>$def_username and $def_password are the default username and password given
      to clients to permit access to <I>WebStore</I> when <I>WebStore</I> is configured
      for restricted access (filename defined in <A HREF="#password_file">$password_file</A>).
  <DT>&nbsp;
  <DT>When entering <I>WebStore</I> using $def_username and $def_password, clients must
      create and submit an account file before access to <I>WebStore</I> is permitted.
  <DT>&nbsp;
  <DT><I>WebStore</I> sets $def_username and $def_password = '' when no filename is
      defined in <A HREF="#password_file">$password_file</A>.
  <DT>&nbsp;
  <DT>Setting  $def_username = ''  and/or  $def_password = ''  disables the use of
      the default username/password access method when <I>WebStore</I> is operating under
      restricted access.  The client must have an order form file present in the
      /Databases/Clients/Restricted sub-directory in order to access <I>WebStore</I>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="deny_access_url"></A><PRE><B>$deny_access_url = 'http://www.YourDomain.xxx/Web_store/Html/denied.html';</B></PRE>
  <DT>$deny_access_url is an absolute URL of an HTML page clients are directed
      to when client file access is denied when <I>WebStore</I> is configured for
      restricted access.
  <DT>&nbsp;
  <DT>When the number of failed form submission attempts exceeds the value of
      <A HREF="#access_attempts">$access_attempts</A>, <I>WebStore</I> prints an
      HTML page directing the client to the web page defined in $deny_access_url.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="client_file"></A><PRE><B>$client_file = 'Access.Client.Phone.setup';</B></PRE>
  <DT>$client_file is the forms setup file clients will use to modify their
      existing order form file in the /Databases/Clients sub-directory.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds <I>.setup</I> to the filename listed in $client_file if the
      filename does not end in <I>.setup</I>.
  <DT>&nbsp;
  <DT>When a setup file is defined in <A HREF="#password_file">$password_file</A>,
      the value assigned to $client_file is disregarded.
  <DT>&nbsp;
  <DT>Set $client_file equal to the setup filename configured for the type of
      access fields you will be using:
<DD><PRE>Setup Filename                 Type of Access Fields

Access.Client.Password.setup   E-mail Address and Password
Access.Client.Phone.setup      E-mail Address and Phone Number</PRE>
  <DT>Setting $client_file = '' disables the use of client order form files for
      retrieving client order form field data.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="retrieve_file"></A><PRE><B>$retrieve_file = 'Client.Retrieve.Phone.setup';</B></PRE>
  <DT>$retrieve_file is the form setup file <I>WebStore</I> will use to retrieve a
      client's form file in the /Databases/Clients sub-directory when a client
      goes to the order form.  The client may also select the method of payment
      when <A HREF="#form_files">%form_files</A> is configured for multiple order forms.
  <DT>&nbsp;
  <DT><I>WebStore</I> will not print the form defined in $retrieve_file when going to
      the order form when the existence of the client's form file was previously
      verified and <A HREF="#form_files">%form_files</A> is configured for a single order form.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds <I>.setup</I> to the filename listed in $retrieve_file if the
      filename does not end in <I>.setup</I>.
  <DT>&nbsp;
  <DT>Set $retrieve_file equal to the setup filename configured for the type of
      access fields you will be using:
<DD><PRE>Setup Filename                   Type of Access Fields

Client.Retrieve.Password.setup   E-mail Address and Password
Client.Retrieve.Phone.setup      E-mail Address and Phone Number</PRE>
  <DT>Setting $retrieve_file = '' disables printing of a client retrieval form
      when going to the order form.
      <I>WebStore</I> will print the default order form defined in
      <A HREF="#form_files">%form_files</A>.
      The client may switch order forms by selecting an alternative payment method near
      the top of the default order form.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="client_delete_age"></A><PRE><B>$client_delete_age = '24';</B></PRE>
  <DT>$client_delete_age limits the age of client order form files stored in the
      /Databases/Clients or /Databases/Clients/Restricted sub-directory.
  <DT>&nbsp;
  <DD>Example settings:
  <DD><PRE>
$client_delete_age = '6'     6 months
$client_delete_age = '12'   12 months
$client_delete_age = '18'   18 months
$client_delete_age = '24'   24 months</PRE>
  <DT>Setting $client_delete_age = '' disables age deletion of client files from
      the /Databases/Clients  or /Databases/Clients/Restricted sub-directory.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="client_fields"></A><PRE><B>@client_fields = (

<FONT COLOR="#008080"># Form Name        Field Label</FONT>

  'nameFirst',     <FONT COLOR="#008080">#  First Name</FONT>
  'nameLast',      <FONT COLOR="#008080">#  Last Name</FONT>
  'name',          <FONT COLOR="#008080">#  Name</FONT>
  'company',       <FONT COLOR="#008080">#  Company</FONT>
  'addr1',         <FONT COLOR="#008080">#  Address 1</FONT>
  'addr2',         <FONT COLOR="#008080">#  Address 2</FONT>
  'addr3',         <FONT COLOR="#008080">#  Address 3</FONT>
  'city',          <FONT COLOR="#008080">#  City</FONT>
  'province',      <FONT COLOR="#008080">#  Province</FONT>
  'state',         <FONT COLOR="#008080">#  State</FONT>
  'country',       <FONT COLOR="#008080">#  Country</FONT>
  'zip',           <FONT COLOR="#008080">#  Zip/Postal Code</FONT>
  'phone',         <FONT COLOR="#008080">#  Phone</FONT>
  'fax',           <FONT COLOR="#008080">#  Fax</FONT>
  'email',         <FONT COLOR="#008080">#  E-mail Address</FONT>
  'shpNameFirst',  <FONT COLOR="#008080">#  Ship First Name</FONT>
  'shpNameLast',   <FONT COLOR="#008080">#  Ship Last Name</FONT>
  'shpName',       <FONT COLOR="#008080">#  Ship Name</FONT>
  'shpAddr1',      <FONT COLOR="#008080">#  Ship Address 1</FONT>
  'shpAddr2',      <FONT COLOR="#008080">#  Ship Address 2</FONT>
  'shpAddr3',      <FONT COLOR="#008080">#  Ship Address 3</FONT>
  'shpCity',       <FONT COLOR="#008080">#  Ship City</FONT>
  'shpProvince',   <FONT COLOR="#008080">#  Ship Province</FONT>
  'shpState',      <FONT COLOR="#008080">#  Ship State</FONT>
  'shpCountry',    <FONT COLOR="#008080">#  Ship Country</FONT>
  'shpZip',        <FONT COLOR="#008080">#  Ship Zip/Postal Code</FONT>
  'shpPhone',      <FONT COLOR="#008080">#  Ship Phone</FONT>
  'shpIns',        <FONT COLOR="#008080">#  Shipping Instructions</FONT>
  'password1',     <FONT COLOR="#008080">#  Password</FONT>
  'ship',          <FONT COLOR="#008080">#  Shipping Method</FONT>
  'tax',           <FONT COLOR="#008080">#  Sales Tax</FONT>

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates @client_fields</FONT></B></PRE>
  <DT>@client_fields is a listing of the record structure present in the client
      order form files.
  <DT>&nbsp;
  <DT>@client_fields is a listing of form field names used in all forms in
      <I>WebStore</I>.
  <DT>&nbsp;
  <DT>The client selected shipping method and sales tax ('ship' and 'tax') are
      added to the client's record when an order is submitted.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds two fields to the client's record after the tax field:
  <DD><PRE><B>Order Reference</B>   1010815114601967
<B>Date</B>              2001 08 15</PRE>
  <DD>The <B>Order Reference</B> number is written to client files who
      have placed an order with your <I>WebStore</I>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="usr_fld_name"></A><PRE><B>$usr_fld_name = 'email';</B></PRE>
  <DT>$usr_fld_name defines the field name of the user id field in the client's
      order form file, defined in <A HREF="#client_fields">@client_fields</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="pwd_fld_name"></A><PRE><B>$pwd_fld_name = 'phone';</B></PRE>
  <DT>$pwd_fld_name defines the field name of the password field in the client's
      order form file, defined in <A HREF="#client_fields">@client_fields</A>.
  <DT>&nbsp;
  <DT>The value of $pwd_fld_name is dependent on the access file you defined in
      <A HREF="#client_file">$client_file</A> or
      <A HREF="#password_file">$password_file</A> when operating in restricted mode.
      Set the field name in $pwd_fld_name according to the following:
  <DD><PRE><B>Filename defined in               Variable Settings
<A HREF="#client_file">$client_file</A> or <A HREF="#password_file">$password_file</A></B>

Access.Restrict.Phone.setup       $pwd_fld_name = 'phone';
Access.Client.Phone.setup

Access.Restrict.Password.setup    $pwd_fld_name = 'password1';
Access.Client.Password.setup</PRE>
  <DT><I>WebStore</I> uses the client's e-mail address and phone number (or password)
      to construct the account filename:
  <DD><PRE>susan@cgicentral.net~4096872400.client</PRE>



  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="access_attempts"></A><PRE><B>$access_attempts = '3';</B></PRE>
  <DT>$access_attempts is the number of form submission attempts allowed for the
      %ClientAccess and %ClientRetrieve forms in <A HREF="#client_file">$client_file</A>
      or <A HREF="#password_file">$password_file</A> when operating in restricted mode.
  <DT>&nbsp;
  <DT>$access_attempts is a whole number, greater than 1, defaulting to 3
      if mis-configured.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="admin_file_email"></A><PRE><B>$admin_file_email = '';</B></PRE>
  <DT>When $admin_file_email = 1, send client file update e-mail to the store administrator.
  <DT>&nbsp;
  <DT>Setting $admin_file_email = '' disables client file update e-mail to the store
      administrator.
  <DT>&nbsp;
  <DT>$admin_file_email is disabled in the <I>WebStore</I> distributions.


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ClientFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Reseller -->
  <DT>&nbsp;
  <DT><A NAME="Reseller"></A><CENTER><B><FONT SIZE=4>Product Resellers</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



  <DT><A NAME="reseller_data_file"></A><PRE><B>$reseller_data_file = 'Resellers.data';</B></PRE>
  <DT>$reseller_data_file is the | (pipe) delimited flatfile database of resellers.
  <DT>&nbsp;
  <DT>Depending on the values assigned to <A HREF="#reseller_file">$reseller_file</A>
      and <A HREF="#reseller_spreadsheet">$reseller_spreadsheet</A>, reseller records
      may be automatically added to the reseller database by <I>WebStore</I> or manually
      added to the reseller database using <I>WS Editor</I>.
  <DT>&nbsp;
  <DT>The setup file for editing the reseller database using <I>WS Editor</I> is
      <I><A HREF="../Databases/Resellers.data_editor.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">Resellers.data_editor.setup</A></I>.
  <DT>&nbsp;
  <DT><I>WebStore</I> maintains a second reseller database,
      <I><A HREF="../Databases/Resellers.data.readonly" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Resellers.data.readonly</A></I>,
      which is accessed for reseller retrieval when
      <I><A HREF="../Databases/Resellers.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Resellers.data</A></I>
      is locked in write mode.
  <DT>&nbsp;
  <DD>The read only filename is constructed by appending <FONT COLOR="#0000CD">.readonly</FONT>
      to the filename defined in $reseller_data_file:
  <DD><BLOCKQUOTE><PRE>$read_file = $reseller_data_file.'<FONT COLOR="#0000CD">.readonly</FONT>';</PRE></BLOCKQUOTE>

  <DD><I>WebStore</I> updates the read only database when a file size difference exists between
      <I><A HREF="../Databases/Resellers.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Resellers.data</A></I>
      and
      <I><A HREF="../Databases/Resellers.data.readonly" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Resellers.data.readonly</A></I>.
      File update occurs when <I>WebStore</I> is accessed with a name=value pair for
      rsc= in the query string and the reseller database is not locked in write mode.
  <DT>&nbsp;
  <DT><I>WebStore</I> generated reseller codes consist of the reseller's country code,
      state code (00 for foreign countries), and the cart reference number defined
      when a reseller application is submitted:
  <DD><PRE>
Reseller code example:  <FONT COLOR="#0000CD">319</FONT><FONT COLOR="#DC143C">53</FONT>-990806010728290

                         <FONT COLOR="#0000CD">319 = United States</FONT>
                          <FONT COLOR="#DC143C">53 = Texas</FONT>
             990806010728290 = Cart reference number</PRE>

  <DT>Links pointing to your <I>WebStore</I> from a reseller's html document must include
      the <FONT COLOR="#0000CD">rsc=</FONT>  name=value pair for the reseller's code in
      the query string:
  <DD><PRE>http://www.YourDomain.xxx/Web_store/ws400CS.cgi?<FONT COLOR="#0000CD">rsc=31953-990806010728290</FONT></PRE>
  <DT>When an order is submitted and a valid reseller code is present, the reseller
      receives an abbreviated e-mail copy of the submitted order with credit card fields
      omitted. E-mail to the store's administrator contains the reseller's database record
      prefixed to the order.
  <DT>&nbsp;
  <DT>Setting $reseller_data_file = '' disables all reseller functions in <I>WebStore</I>.
      No reseller order e-mail message is generated.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ResellerVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="reseller_file"></A><PRE><B>$reseller_file = 'Form.Reseller.setup';</B></PRE>
  <DT>$reseller_file is the forms setup file clients will use to apply for product reselling.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds <I>.setup</I> to the filename listed in $reseller_file if the
      filename does not end in <I>.setup</I>.
  <DT>&nbsp;
  <DT>Reseller form submissions are added to the reseller database defined in
      <A HREF="#reseller_spreadsheet">$reseller_spreadsheet</A>.
  <DT>&nbsp;
  <DT>Setting $reseller_file = '' disables the addition of reseller form input
      records to the reseller database defined in <A HREF="#reseller_spreadsheet">$reseller_spreadsheet</A>.
  <DT>&nbsp;



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ResellerVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="reseller_spreadsheet"></A><PRE><B>$reseller_spreadsheet = 'Resellers.data.txt';</B></PRE>
  <DT>$reseller_spreadsheet is the | (pipe) delimited flatfile database of reseller
      applications (<A HREF="#reseller_file">$reseller_file</A> form submissions).
  <DT>&nbsp;
  <DT>The filename 'Resellers.data.txt' is <I>WS Editor's</I> spreadsheet filename for the
      reseller's database,
      <I><A HREF="../Databases/Resellers.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Resellers.data</A></I>,
      defined in <A HREF="#reseller_data_file">$reseller_data_file</A>.
  <DT>&nbsp;
  <DT>The <I>WS Editor</I> setup file for the reseller spreadsheet is
      <I><A HREF="../Databases/Resellers.data.txt_editor.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">Resellers.data.txt_editor.setup</A></I>.
  <DT>&nbsp;
  <DT>Using <I>WS Editor</I> and the setup file for the reseller spreadsheet, you may
      delete or modify reseller applications before merging the spreadsheet into
      the reseller database,
      <I><A HREF="../Databases/Resellers.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Resellers.data</A></I>.
  <DT>&nbsp;
  <DT>After verifying the records in the spreadsheet, switch to the <I>WS Editor</I> setup
      file for the reseller database,
      <I><A HREF="../Databases/Resellers.data_editor.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">Resellers.data_editor.setup</A></I>.
  <DT>&nbsp;
  <DT><I>WS Editor</I> will detect the presence of the reseller spreadsheet and switch
      you to the spreadsheet conversion page where you may merge the records
      from the spreadsheet into the reseller's database,
      <I><A HREF="../Databases/Resellers.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">Resellers.data</A></I>.
  <DT>&nbsp;
  <DT>Setting $reseller_spreadsheet equal to the same filename defined in
      <A HREF="#reseller_data_file">$reseller_data_file</A> will write reseller
      application records directly to the reseller database.  Resellers become active
      immediately.
  <DT>&nbsp;
  <DT>Setting $reseller_spreadsheet = '' disables the addition of reseller form
      input to a database.  Resellers must be added to the reseller database using
      <I>WS Editor</I>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ResellerVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="RESELLER_FIELDS"></A><PRE><B>%RESELLER_FIELDS = (

<FONT COLOR="#008080"># KEY      Field Name   E-mail Label        Dbase Field</FONT>

  '00' => ['rsc',       'Reseller Code'],   <FONT COLOR="#008080">#   0</FONT>
  '01' => ['name',      'Name'],            <FONT COLOR="#008080">#   1</FONT>
  '02' => ['company',   'Company'],         <FONT COLOR="#008080">#   2</FONT>
  '03' => ['addr1',     'Address 1'],       <FONT COLOR="#008080">#   3</FONT>
  '04' => ['addr2',     'Address 2'],       <FONT COLOR="#008080">#   4</FONT>
  '05' => ['city',      'City'],            <FONT COLOR="#008080">#   5</FONT>
  '06' => ['state',     'State'],           <FONT COLOR="#008080">#   6</FONT>
  '07' => ['country',   'Country'],         <FONT COLOR="#008080">#   7</FONT>
  '08' => ['zip',       'Zip/Postal Code'], <FONT COLOR="#008080">#   8</FONT>
  '09' => ['phone',     'Phone Number'],    <FONT COLOR="#008080">#   9</FONT>
  '10' => ['fax',       'Fax Number'],      <FONT COLOR="#008080">#  10</FONT>
  '11' => ['email',     'E-mail Address'],  <FONT COLOR="#008080">#  11</FONT>
  '12' => ['urlpage',   'Web Page URL'],    <FONT COLOR="#008080">#  12</FONT>

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates %RESELLER_FIELDS</FONT></B></PRE>
  <DT>%RESELLER_FIELDS is a listing of the record structure in the reseller
      database defined in  <A HREF="#reseller_data_file">$reseller_data_file</A> and
      <A HREF="#reseller_spreadsheet">$reseller_spreadsheet</A>.
  <DT>&nbsp;
  <DT>The field names in %RESELLER_FIELDS are a listing of the form fields present
      in %Form in the reseller's secondary form file,
      <I><A HREF="../Databases/Form.Reseller.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">Form.Reseller.setup</A></I>.
  <DT>&nbsp;
  <DT>Field names changed in %Form in
      <I><A HREF="../Databases/Form.Reseller.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">Form.Reseller.setup</A></I>
      must be changed in %RESELLER_FIELDS.  Field names in %Form which do not match a
      field name in %RESELLER_FIELDS will not be written to the reseller database.
  <DT>&nbsp;
  <DT>Fields removed from %Form which exist in %RESELLER_FIELDS or optional fields
      not completed by the reseller applicant will store a blank field in the
      reseller database.
  <DT>&nbsp;
  <DT>The field names 'rsc', 'name', 'email', 'state', and 'country' can not be changed.
  <DT>&nbsp;
  <DT>The field named 'rcs' must be database field 0, $RESELLER_FIELDS{00}.


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ResellerVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="reseller_include_files"></A><PRE><B>@reseller_include_files = (
<FONT COLOR="#008080">
#  'include.reseller.txt',
#  'include.reseller.category_page.txt',
#  'include.reseller.item_page.txt',
</FONT>
); <FONT COLOR="#008080"># DO NOT REMOVE - terminates @reseller_include_files</FONT></B></PRE>
  <DT>@reseller_include_files is a listing of template text files used to display
      reseller information when a value is present for rsc=, r_data=, and <I>WebStore</I>
      is configured for resellers.
  <DT>&nbsp;
  <DT>Reseller information is retrieved from the reseller database for substitution
      into these template text files.
  <DT>&nbsp;
  <DT>The contents of the files listed in @reseller_include_files are substituted into
      HTML pages by adding hidden text tags using the file's name:
  <DD><PRE>&lt;!--include=include.reseller.txt--&gt;</PRE>
  <DT>Whitespace is not allowed in reseller include hidden text tags.
      <I>WebStore</I> ignores hidden text tags which contain whitespace.
  <DT>&nbsp;
  <DT>Hidden text tags are replaced with the associated file's contents.
  <DT>cart_id= substitution occurs on the contents of substituted files.
  <DT>&nbsp;
  <DT>Files listed in @reseller_include_files must be located under <I>WebStore's</I>
      /Html sub-directory or any sub-directory you may create under /Html.
  <DT>&nbsp;
  <DT>When files are placed under sub-directories, the sub-directory must be listed
      in the hidden text tag:
  <DD><PRE>&lt;!--include=subdir/include.reseller.txt--&gt;</PRE>
  <DT>When a file does not exist under the /Html directory, <I>WebStore</I> writes a
      <TT>FILE NOT FOUND</TT> message in the file's associated hidden text tag:
  <DD><PRE>&lt;!-- FILE NOT FOUND:  include.reseller.txt --&gt;</PRE>

  <DT>Substitution of the reseller's information into the contents of the reseller
      text file is accomplished using hidden text tags containing the field names
      present in element zero of <A HREF="#RESELLER_FIELDS">%RESELLER_FIELDS</A>:
  <DD><PRE>&lt;!--name=rsc--&gt;          Reseller Code
&lt;!--name=name--&gt;         Name
&lt;!--name=company--&gt;      Company
&lt;!--name=addr1--&gt;        Address 1
&lt;!--name=addr2--&gt;        Address 2
&lt;!--name=city--&gt;         City
&lt;!--name=state--&gt;        State
&lt;!--name=country--&gt;      Country
&lt;!--name=zip--&gt;          Zip/Postal Code
&lt;!--name=phone--&gt;        Phone Number
&lt;!--name=fax--&gt;          Fax Number
&lt;!--name=email--&gt;        E-mail Address
&lt;!--name=urlpage--&gt;      Web Page URL</PRE>

  <DT>Field names ending in email, case insensitive, are converted to MAILTO tags.
  <DT>&nbsp;
  <DT>Field names ending in img or imgexist, case insensitive, are converted to
      IMG SRC tags.  If present, the reseller's referring web page URL is wrapped
      around the IMG SRC tag in an HREF anchor which targets top.
  <DT>&nbsp;
  <DT>Field names ending in url, urlexist, and urlpage, case insensitive, are
      converted to HREF tags which target top.
  <DT>&nbsp;
  <DT><I>WebStore</I> disables SSI tags detected in HTML documents.
  <DT>&nbsp;
  <DT>Setting @reseller_include_files = () disables file includes.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ResellerVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="rsc_name_fld_num"></A><PRE><B><FONT COLOR="#008080">#                            Dbase Field    Field Label</FONT>

$rsc_name_fld_num    = '2';  <FONT COLOR="#008080">#  2           Company</FONT>
$rsc_mail_fld_num    = '11'; <FONT COLOR="#008080"># 11           E-mail Address</FONT>
$rsc_urlpage_fld_num = '12'; <FONT COLOR="#008080"># 12           Web Page URL</FONT></B></PRE>
  <DT>$rsc_name_fld_num, $rsc_mail_fld_num, and $rsc_urlpage_fld_num are the field
      numbers in the reseller database for the reseller's name, e-mail address, and
      web page URL respectively.
  <DT>&nbsp;
  <DT>$rsc_name_fld_num can be set to the reseller's name field or company field.
  <DT>&nbsp;
  <DT>When a client enters your store from a reseller advertising web page and a
      valid reseller code exists in a name=value pair for rsc= in the query string,
      <I>WebStore</I> uses the contents of these reseller database fields to replace
      the values for
      <A HREF="#return_link_url">$return_link_url</A>,
      <A HREF="#return_link_url">$return_link_title</A>,
      <A HREF="#email_link_url">$email_link_url</A>, and
      <A HREF="#email_link_url">$email_link_title</A>
      when printing links at the bottom of <I>WebStore</I> parsed pages.
  <DT>&nbsp;
  <DT>A reseller code is valid when it exists in the reseller database.
  <DT>&nbsp;
  <DT>The reseller's web page URL is also used to print an href anchor near the top
      of the confirmation of order HTML page, pointing back to the reseller's advertising
      web page.


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ResellerVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Real-time Payment Processing -->
  <DT>&nbsp;
  <DT><A NAME="Real-time"></A><CENTER><B><FONT SIZE=4>Real-time Payment Processing</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



  <DT><A NAME="merchant_file"></A><PRE><B>$merchant_file = '';</B></PRE>
  <DT>$merchant_file is the merchant configuration file for the real-time payment
       processor you are using.
       <I>WebStore</I> supports the following real-time processors:
  <DD><PRE>
Processor Name    Merchant Configuration Filename
--------------    -------------------------------

Authorize.Net     <I><A HREF="authorizenet/merchant.authorizenet.cfg.html" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">merchant.authorizenet.cfg</A></I>
Surepay           <I><A HREF="surepay/merchant.surepay.cfg.html" TARGET="w1" onClick="window.open('','w1','width=650,height=480,scrollbars,resizable,top=0,left=0')">merchant.surepay.cfg</A></I></PRE>

  <DT>The Processor Name must be included in the Merchant Configuration Filename.
      For example, <I>Surepay</I> must be included as part of the filename for the
      Surepay merchant configuration file, merchant.surepay.cfg.  The Processor
      Name is case insensitive in the Merchant Configuration Filename.
  <DT>&nbsp;

  <DT>Merchant configuration files are located in the /Library sub-directory.
  <DT>&nbsp;
  <DT><B>Protect your merchant file from viewing:</B>
  <DT>&nbsp;
    <UL TYPE=disc>
      <LI>Move the /Library sub-directoy to an area which can not be accessed
          using a web browser or place the /Library sub-directoy under HTACCESS.
      <LI>Rename the /Library sub-directoy defined in
          <I><A HREF="ws_global.setup.html#libr_directory" TARGET="_blank">$libr_directory</A></I>
          in <I>WebStore's</I> global setup file,
          <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
      <LI>Rename the merchant file.<BR><BR>

      <LI>Store the merchant file under a sub-directory:
      <OL>
        <LI>Create a directory under the /Library sub-directory
        <LI>Store the merchant file under the newly created sub-directory
        <LI>Set <TT>$merchant_file = 'sub-directory/merchant.xxxx.cfg';</TT>
      </OL>
    </UL>
  <DT>&nbsp;

  <DT>Modify the variables in the merchant configuration file you are using.
      Variables included in the configuration file are your merchant ID, merchant
      password, etc.
  <DT>&nbsp;

  <DT>Setting $merchant_file = '' disables real-time payment processing.
  <DT>$merchant_file is disabled in the <I>WebStore</I> distributions.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Realtime"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Order Form -->
  <DT>&nbsp;
  <DT><A NAME="OrderForm"></A><CENTER><B><FONT SIZE=4>Order Form</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;


  <DT><A NAME="country_file"></A><PRE><B>$country_file = 'outlet.state_country.setup';</B></PRE>
  <DT><I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">$country_file</A></I>
      contains two hash of arrays, %states and %countries,
      used to perform required fields checking of state and country form
      inputs on all froms used in <I>WebStore</I>.
  <DT>&nbsp;
  <DT>%states and %countries are also used for calculating sales tax when
      <A HREF="#tax">$tax</A> = '1'.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds <I>.setup</I> to the filename listed in $country_file if the
      filename does not end in <I>.setup</I>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="pre_form_file"></A><PRE><B>$pre_form_file = 'Pre.OrderForm.setup';</B></PRE>
  <DT><I><A HREF="../Databases/Pre.OrderForm.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">$pre_form_file</A></I>
      is the form setup file <I>WebStore</I> will use to determine the
      client's sales tax liability, shipping method preference, payment method
      preference, etc.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds <I>.setup</I> to the filename listed in $pre_form_file if the
      filename does not end in <I>.setup</I>.
  <DT>&nbsp;
  <DT><I>WebStore</I> will not print the form defined in $pre_form_file prior to printing
      <I>WebStore's</I> order form when only one order form file is defined in
      <A HREF="#form_files">%form_files</A> and the values requested by this form were
      previously determined during client form file verification.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="form_files"></A><PRE><B>%form_files = (<FONT COLOR="#008080">

# Not using real-time processing:
#
# KEYS     zero - Filename                        one - Label</FONT>
  '10' => ['OrderForm.CreditCard.setup',         'Credit Card'],
  '11' => ['OrderForm.Check.setup',              'Personal Check - US citizens'],
  '12' => ['OrderForm.FaxMail.setup',            'Fax or Mail your order'],<FONT COLOR="#008080">
# '13' => ['OrderForm.CreditFaxMail.setup',      'Credit Card, Fax, or Mail'],
# '14' => ['Demo.OrderForm.CreditFaxMail.setup', 'Demo: Credit Card, Fax, or Mail'],


# Authorize.Net real-time processing:
#
# '20' => ['OrderForm.AuthorizeNet.CreditCard.setup',      'Credit Card'],
# '21' => ['OrderForm.AuthorizeNet.Check.setup',           'Personal Check - US citizens'],
# '22' => ['Demo.OrderForm.AuthorizeNet.CreditCard.setup', 'Demo Authorize.Net: Credit Card'],


# Surepay real-time processing:
#
# '30' => ['OrderForm.Surepay.CreditCard.setup',      'Credit Card'],
# '31' => ['OrderForm.Surepay.Check.setup',           'Personal Check - US citizens'],
# '32' => ['Demo.OrderForm.Surepay.CreditCard.setup', 'Demo Surepay: Credit Card'],
# '33' => ['Demo.OrderForm.Surepay.Check.setup',      'Demo Surepay: Personal Check'],</FONT>

);<FONT COLOR="#008080"> # DO NOT REMOVE - terminates %form_files</FONT></B></PRE>
  <DT>%form_files is a hash of arrays listing <I>WebStore's</I> order form setup files.
  <DT>&nbsp;
  <DT><I>WebStore</I> is packaged with pre-configured sets of order form setup files.
      One set of files is included for those who do not use real-time processing.
      One set of files is included for each real-time processor <I>WebStore</I> supports.
  <DT>&nbsp;
  <DT>Information is available for configuring <A HREF="OrderForm.html">order form files</A>.
  <DT>Additional information is available for
      <A HREF="rp.AuthorizeNet.html">Authorize.Net</A> and
      <A HREF="rp.Surepay.html">Surepay</A> form files.
  <DT>&nbsp;
  <DT>Element zero of each array lists an order form's filename in the /Databases
      sub-directory. <I>WebStore</I> adds <I>.setup</I> to the filename listed in element
      zero if the filename does not end in <I>.setup</I>.
  <DT>&nbsp;
  <DT>Element one is the order form's descriptive label.
  <DT>&nbsp;
  <DT><I>WebStore</I> sorts the arrays in %form_files by their KEYS, in ascending order.
      The array with the least significant KEY becomes the default order form
      printed by <I>WebStore</I> when no payment method is selected by the client.
      $form_files{10} is the default order form in the <I>WebStore</I> distributions.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="demo_form_file"></A><PRE><B>$demo_form_file = 'Demo.OrderForm.CreditFaxMail.setup';</B></PRE>
  <DT>$demo_form_file is the order form setup file used when
      <I><A HREF="ws_global.setup.html#demo" TARGET="_blank">$demo</A></I> = '1' in
      <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>
      or when the first URL accessing <I>WebStore</I> contains a
      name=value pair for demo:  &nbsp;ws400CS.cgi?demo=Y
  <DT>&nbsp;
  <DT>The demonstration form file may be used to modify and test an order form
      setup file using demonstration mode while <I>WebStore</I> processes orders
      using the order form(s) defined in <A HREF="#form_files">%form_files</A>:<BR>
  <DT>&nbsp;
      <UL TYPE=disc>
      <LI>Set <I><A HREF="ws_global.setup.html#demo" TARGET="_blank">$demo</A></I> = '' in
          <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
      <LI>Access <I>WebStore</I> using <B>ws400CS.cgi?demo=Y</B> to place
          a test order.<BR>
          <FONT SIZE=2>Administrative and client confirmation e-mail messages
          for submitted test orders are delivered to the e-mail address entered
          on the demonstration order form.</FONT>
      <LI>Once all modifications have been made and reviewed for accuracy, rename the
          demonstration order form file to it's intended filename and store in an array
          in <A HREF="#form_files">%form_files</A>.
      </OL>
  <DT>&nbsp;
  <DT>When demonstration mode is activated, <I>WebStore</I> adds the demo form file to
      <A HREF="#form_files">%form_files</A>, immediately after the array with the most
      significant KEY, labeling the file <I>Demonstration Form File</I>.
      The demonstration order form becomes $form_files{13} in the <I>WebStore</I> distributions.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds <I>.setup</I> to the filename listed in $demo_form_file if the
      filename does not end in <I>.setup</I>.
  <DT>&nbsp;
  <DT>Setting $demo_form_file = '' disables the use of the demonstration forms file.
  <DT>&nbsp;



  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="minimum_order"></A><PRE><B>$minimum_order = '25.00';</B></PRE>
  <DT>$minimum_order is the minimum order subtotal allowed before <I>WebStore</I>
      will print the order form.
  <DT>&nbsp;
  <DT>$minimum_order is a fixed decimal number. Do not include a dollar sign
      or commas in $minimum_order.
  <DT>&nbsp;
  <DT><DT>Setting $minimum_order = '' disables minimum order checking. <I>WebStore's</I>
      order form is available when the client's shopping cart contains one item.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="DISCOUNT"></A><PRE><B>%DISCOUNT = (

<A NAME="disc1"></A>         <FONT COLOR="#008080"># Subtotal Discount       Discount     Subtotal Value</FONT>
 '1' => ['Subtotal Discount',
         ' 75.00:0',           <FONT COLOR="#008080">#   0%           $75.00 or less</FONT>
         '100.00:.10',         <FONT COLOR="#008080">#  10%           $75.01 - $100.00</FONT>
         '125.00:.125',        <FONT COLOR="#008080">#  12.5%        $100.01 - $125.00</FONT>
         '150.00:.15',         <FONT COLOR="#008080">#  15%          $125.01 - $150.00</FONT>
         '175.00:.175',        <FONT COLOR="#008080">#  17.5%        $150.01 - $175.00</FONT>
         '175.01:.20',         <FONT COLOR="#008080">#  20%          $175.01 or more</FONT>
        ],

<FONT COLOR="#008080">
<A NAME="disc2">         # Quantity Discount</A>       Discount     Items Purchased
# '2' => ['Quantity Discount',
#         ' 2:0',               #   0%           1 -  2
#         ' 6:.10',             #  10%           3 -  6
#         '12:.125',            #  12.5%         7 - 12
#         '24:.15',             #  15%          13 - 24
#         '36:.175',            #  17.5%        25 - 36
#         '37:.20',             #  20%          37 or more
#        ],</FONT>

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates %DISCOUNT</FONT></B></PRE>


  <DT>%DISCOUNT lists percentage discounts for client orders.
      Percentage discounts are based on the order's subtotal value or on the total
      number of items purchased.
  <DT>&nbsp;
  <DT>$DISCOUNT{1} lists order subtotal range values.
      Subtotal discounts are enabled in the <I>WebStore</I> distributions.
  <DT>$DISCOUNT{2} lists item quantity range values.
  <DT>&nbsp;
  <DT>Element zero of $DISCOUNT{1} and $DISCOUNT{2} is the field label
      printed to the client confirmation HTML page and to e-mail messages.
  <DT>&nbsp;
  <DT>The remaining elements of $DISCOUNT{1} and $DISCOUNT{2} are colon-delimited
      discount range values. Range values must be listed in ascending order.
  <DT>&nbsp;
  <DT>For $DISCOUNT{1} and $DISCOUNT{2}, the percentage discount is to the right
      of each colon.  The value of percentage discount is a fixed decimal number.
      For example, .15 equals a 15% discount.
  <DT>&nbsp;
  <DT>For $DISCOUNT{1}, the value to the left of each colon is an order subtotal
      value. The percentage discount increases when the order's subtotal is
      greater than the subtotal value listed in an element of $DISCOUNT{1}.
  <DT>&nbsp;
  <DT>For $DISCOUNT{2}, the value to the left of each colon is an item quantity
      value. The percentage discount increases when the quantity of items ordered
      is greater than the item count listed in an element of $DISCOUNT{2}.
  <DT>&nbsp;
  <DT>Remove the discount array you will not be using or place
      <NOBR><B><FONT COLOR="#008080"># (pound signs)</FONT></B></NOBR> in column one of
      each element of the entire array ($DISCOUNT{1} or $DISCOUNT{2}), including
      the closing <NOBR><B><FONT COLOR="#008080">] (square bracket)</FONT></B></NOBR>.
  <DT>&nbsp;
  <DT>If you do not use discounts, %DISCOUNT may be removed from this file or you
      may place a <NOBR><B><FONT COLOR="#008080"># (pound sign)</FONT></B></NOBR> in column one
      for each line in the entire hash of arrays.
  <DT>&nbsp;
  <DT>$DISCOUNT{1} takes precedence over $DISCOUNT{2} when both arrays are defined.
      <I>WebStore</I> will calculate subtotal discounts according to the elements
      present in $DISCOUNT{1}, disregarding $DISCOUNT{2} entirely.
  <DT>&nbsp;
  <DT>To disable discounts, add
      <NOBR><B><FONT COLOR="#008080"># (pound signs)</FONT></B></NOBR> in column one of each
      element in $DISCOUNT{1} and $DISCOUNT{2}, including the closing
      <NOBR><B><FONT COLOR="#008080">] (square bracket)</FONT></B></NOBR> or
      remove $DISCOUNT{1} and $DISCOUNT{2} from %DISCOUNT, setting <NOBR>%DISCOUNT = ();.</NOBR>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="SHIPPING"></A><PRE><B>%SHIPPING = (

	<FONT COLOR="#008080"><A NAME="array_1"></A># Determines type of shipping
	# Database Field, Handling, Free Shipping</FONT>
	'<A HREF="#array1">1</A>' => ['',   '',   ''],


	<FONT COLOR="#008080"><A NAME="array_2"># </A>Domestic Shipping</FONT>
	'<A HREF="#array2">2</A>' => ['319',  '10','11','12','13'],


	<FONT COLOR="#008080"><A NAME="array_3"># </A>Universal Subtotal Ranges</FONT>
	'<A HREF="#array3">3</A>' => [                 <FONT COLOR="#008080">#  Order Subtotal        Shipping Charged</FONT>
	        '100.00:6.95',   <FONT COLOR="#008080">#    $0.01 to $100.00     $6.95</FONT>
	        '150.00:9.95',   <FONT COLOR="#008080">#  $100.01 to $150.00     $9.95</FONT>
	        '200.00:12.95',  <FONT COLOR="#008080">#  $150.01 to $200.00    $12.95</FONT>
	        '300.00:15.95',  <FONT COLOR="#008080">#  $200.01 to $300.00    $15.95</FONT>
	        '300.01:18.95',  <FONT COLOR="#008080">#  $300.01 & up          $18.95</FONT>
	       ],


	<FONT COLOR="#008080"><A NAME="array_10"># </A>Shipping Methods
	# 10  UPS Ground or Priority Mail:   $3.95 plus  3% of order's subtotal
	# 11  2nd Day Air:                  $12.00 plus  4% of order's subtotal
	# 12  Standard Next Day Air:        $18.00 plus  5% of order's subtotal
	# 13  Alaska & Hawaii:              $12.00 plus  4% of order's subtotal
	# 14  Canadian Orders:              $10.00 plus 17% of order's subtotal
	# 15  International Orders:         $20.00 plus  8% of order's subtotal</FONT>

	'<A HREF="#array10">10</A>' => ['UPS Ground or Priority Mail', '3.95',   '.03'],
	'11' => ['2nd Day Air',                 '12.00',  '.04'],
	'12' => ['Standard Next Day Air',       '18.00',  '.05'],
	<FONT COLOR="#008080"># State Specific Shipping Method</FONT>
	'13' => ['Alaska &amp; Hawaii',             '12.00',  '.04',  '<A HREF="#array13">11:21</A>'],
	<FONT COLOR="#008080"># Country Specific Shipping Method</FONT>
	'14' => ['Canadian Orders',             '10.00',  '.17',  '<A HREF="#array14">132</A>'],
	'15' => ['International Orders',        '20.00',  '.08'],

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates %SHIPPING</FONT></B></PRE>


  <DT>%SHIPPING is a hash of arrays listing all shipping variables.
  <DT>&nbsp;
  <DT>%SHIPPING array configurations and their explanations in this file are for
      <NOBR><I>Subtotal Range Shipping</I>.</NOBR>
  <DT>&nbsp;
  <DT><A HREF="frames/frame.index.shipping.html" TARGET="_top">Four types of shipping</A>
      are available in <I>WebStore</I>.


  <DT><PRE>Example:  $SHIPPING<FONT COLOR="#DC143C">{1}</FONT><FONT COLOR="#0000CD">[2]</FONT>

 <FONT COLOR="#DC143C">{1}</FONT>  An array's KEY value. KEY values will be referenced by their
      numeric value in the explanations below (0, 1, 2, etc.).

 <FONT COLOR="#0000CD">[2]</FONT>  An array's element reference. Element numeric values will
      be spelled in the explanations below (zero, one, two, etc.)

      Specific <FONT COLOR="#DC143C">arrays</FONT> will be referenced as $SHIPPING<FONT COLOR="#DC143C">{1}</FONT>.

      A specific <FONT COLOR="#0000CD">element</FONT> within a specific <FONT COLOR="#DC143C">array</FONT> will be referenced
      as $SHIPPING<FONT COLOR="#DC143C">{1}</FONT><FONT COLOR="#0000CD">[2]</FONT>.</PRE>

      Arrays 1, 2, and 10 must exist in %SHIPPING. If any of these arrays are
      not present in %SHIPPING or the value of their KEY (1, 2, 10) is altered,
      shipping is disabled in <I>WebStore</I>.
  <DT>&nbsp;
  <DT>Numeric array KEYS allow the <I>Webstore</I> script to sort the shipping methods
      in ascending order for printing to the client's web browser.
  <DT>&nbsp;
  <DT>Arrays 0 and 3 - 9 are reserved and can not be used.
  <DT>&nbsp;


  <!-- Array 1 - $SHIPPING{1} -->
  <DT><A NAME="array1"></A><PRE><B>Array 1 - <A HREF="#array_1">$SHIPPING{1}</A></B></PRE>
  <DT>$SHIPPING{1} must exist in <A HREF="#SHIPPING">%SHIPPING</A>.
      If $SHIPPING{1} is removed or the numeric value of it's KEY (1)
      is altered, shipping is disabled in <I>WebStore</I>.
  <DT>&nbsp;
  <DT>$SHIPPING{1} consists of the following elements:<PRE><B>
 <FONT COLOR="#008080">KEY     zero  one     two</FONT>
 '1' => ['',   '3.50', '150.00'],</B></PRE>

  <DT><TABLE BORDER=0 WIDTH="100%" CELLPADDING=0 CELLSPACING=4>
      <TR><TD>zero</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Database Shipping Field</TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Element zero is not used for <I>Subtotal Range Shipping</I> and must be set to ''.</TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>


      <TR><TD>one</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Handling Charge</TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Element one is the labor charge for packaging an order for shipment.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Setting element one = '' disables the addition of a handling charge.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Do not include a dollar sign or commas in element one.
              Element one is a fixed decimal number.</TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>


      <TR><TD>two</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Free Shipping</TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>When the value of an order's subtotal is greater than the value
              listed in element two, no shipping or handling is charged for the
              order.  The shipping drop down select element is not printed to the
              client's web browser.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Setting element two = '' disables free shipping checks, all orders
              pay shipping.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Do not include a dollar sign or commas in element two.
              Element two is a fixed decimal number.</TD></TR>
      </TABLE>


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#SHIPPING"><FONT SIZE=2>%SHIPPING</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;


  <!-- Array 2 - $SHIPPING{2} - Domestic Shipping -->
  <DT><A NAME="array2"></A><PRE><B>Array 2 - <A HREF="#array_2">$SHIPPING{2}</A> - Domestic Shipping</B></PRE>
  <DT>$SHIPPING{2} must exist in <A HREF="#SHIPPING">%SHIPPING</A>.
      If $SHIPPING{2} is removed or the numeric value of it's KEY (2)
      is altered, shipping is disabled in <I>WebStore</I>.
  <DT>&nbsp;
  <DT>$SHIPPING{2} consists of the following elements:<PRE><B>
 <FONT COLOR="#008080">KEY     zero    one   two   three four</FONT>
 '2' => ['319',  '10', '11', '12', '13'],</B></PRE>

  <DT><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=4>
      <TR><TD>zero</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Country Code</TD></TR>
      <TR><TD COLSPAN=2>&nbsp;</TD>
          <TD>Your 3 digit country code from %countries in
              <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">outlet.state_country.setup</A></I>.
              </TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>


      <TR><TD COLSPAN=3>one, two, three, etc. &nbsp;&nbsp;&nbsp; Domestic Shipping Method KEYS</TD></TR>
      <TR><TD>&nbsp;</TD><TD>&nbsp;&nbsp;</TD>
          <TD>Elements one, two, three, etc. is a listing off all domestic
              (your country's) shipping method KEYS in %SHIPPING.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>List as many domestic shipping methods as you require.</TD></TR>
      </TABLE>


      <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=4>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>
      <TR><TD COLSPAN=3 HEIGHT=3>Your 3 digit country code in element zero and the
          domestic shipping methods listed in elements one, two, three, etc. are
          used to determine if the client has chosen a shipping method which applies
          to their country of residence.</TD></TR>
      </TABLE>


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#SHIPPING"><FONT SIZE=2>%SHIPPING</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;


  <!-- Array 3 - $SHIPPING{3} - Universal Subtotal Ranges -->
  <DT><A NAME="array3"></A><PRE><B>Array 3 - <A HREF="#array_3">$SHIPPING{3}</A> - Universal Subtotal Ranges</B></PRE>
  <DT>$SHIPPING{3} is optional.
      If you do not use <I>Universal Subtotal Ranges</I>, $SHIPPING{3} may be deleted.
  <DT>&nbsp;
  <DT>$SHIPPING{3} example:<PRE><B>
 '3' => [                 <FONT COLOR="#008080">#  Order Subtotal        Shipping Charged</FONT>
         '100.00:6.95',   <FONT COLOR="#008080">#    $0.01 to $100.00     $6.95</FONT>
         '150.00:9.95',   <FONT COLOR="#008080">#  $100.01 to $150.00     $9.95</FONT>
         '200.00:12.95',  <FONT COLOR="#008080">#  $150.01 to $200.00    $12.95</FONT>
         '300.00:15.95',  <FONT COLOR="#008080">#  $200.01 to $300.00    $15.95</FONT>
         '500.00:20.00',  <FONT COLOR="#008080">#  $300.01 to $500.00    $20.00</FONT>
         '750.00:30.00',  <FONT COLOR="#008080">#  $500.01 to $750.00    $30.00</FONT>
         '750.01:45.00',  <FONT COLOR="#008080">#  $750.01 & up          $45.00</FONT>
        ],
</B></PRE>

  <DT>If the client-selected shipping method contains subtotal ranges in element one,
      the shipping method's range values are used in place of the universal ranges.
  <DT>&nbsp;
  <DT>Each element of $SHIPPING{3} is colon delimited.
  <DT>&nbsp;
  <DT>Order subtotal values are left of the colon in each element and the
      corresponding <I>base</I> shipping cost is right of the colon in each element.
  <DT>&nbsp;
  <DT>The subtotal values must be listed in ascending order.
  <DT>&nbsp;
  <DT>For example, if an order's subtotal equals $32.95 (less than $100.00), the order's
      <I>base</I> shipping cost is $6.95.
  <DT>&nbsp;
  <DT>&nbsp;


  <DT>The <I>base</I> or <I>universal</I> shipping charge for an order are first
      calculated using the values listed in $SHIPPING{3}.
  <DT>&nbsp;
  <DT>The values placed in this array should equal the values of your least
      expensive shipping method, usually a ground shipping method within the
      borders of your country.
  <DT>&nbsp;
  <DT>After the <I>base</I> shipping value is determined, <I>WebStore</I> checks the contents
      of elements one and two of the client-selected shipping method for additional
      manipulations of the <I>base</I> shipping charges.
  <DT>&nbsp;
  <DT>When a dollar value is present in element one of the client-selected shipping
      method and no value is present in element two, element one's value is added
      to the <I>base</I> shipping charge to determine total shipping charges.
  <DT>&nbsp;
  <DT>When a value is present in element two of the client-selected shipping
      method, the <I>base</I> shipping charge is discarded.  Shipping charges are
      calculated by multiplying the order's subtotal by the percentage value found
      in element two. If a dollar value is present in element one, it is added
      to the product to determine total shipping costs.
  <DT>&nbsp;
  <DT>If the charges for your shipping methods vary to the point that you can not
      use <I>base</I> or <I>universal</I> shipping values, delete $SHIPPING{3}.
      Subtotal ranges or a dollar value may be placed in element one of
      each shipping method or a percentage value must be placed in element two of
      each shipping method.  If elements one and two of a shipping method are set
      to '' and $SHIPPING{3} does not exist, shipping costs will be set to 0.00.


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#SHIPPING"><FONT SIZE=2>%SHIPPING</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;


  <!-- Arrays 10 - XX - Shipping Methods -->
  <DT><A NAME="array10"></A><PRE><B>Arrays 10 - XX <A HREF="#array_10">$SHIPPING{10}</A> - Shipping Methods</B></PRE>
  <DT>$SHIPPING{10} must exist in <A HREF="#SHIPPING">%SHIPPING</A>.
      If $SHIPPING{10} is removed or the numeric value of it's KEY (10)
      is altered, shipping is disabled in <I>WebStore</I>.
  <DT>&nbsp;
  <DT>$SHIPPING{10} is the first shipping method array.
  <DT>&nbsp;
  <DT>The default shipping method used by <I>WebStore</I> is defined in $SHIPPING{10}.
  <DT>&nbsp;
  <DT>$SHIPPING{10} remains the shipping method until the client selects an
      alternative shipping method.
  <DT>&nbsp;
  <DT>Each shipping method array (10, 11, 12, etc.) consists of a maximum of
      four elements.
  <DT>&nbsp;

  <DT>$SHIPPING{10} consists of the following elements:<PRE><B>
 <FONT COLOR="#008080">KEY     zero                           one  two  three</FONT>
'10' => ['UPS Ground or Priority Mail', '',  '',  ''],</B></PRE>

  <DT><TABLE BORDER=0 WIDTH="100%" CELLPADDING=0 CELLSPACING=4>
      <TR><TD>zero</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Shipping Label</TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>The shipping label used in the shipping drop down select element
              on the order form HTML page, confirmation of order HTML page, and
              e-mail messages.</TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>


      <TR><TD>one</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Add Value</TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>When element one equals a dollar value, that value is added to the
          <I>base</I> shipping costs obtained using the universal subtotal range
          array, <A HREF="#array_3">$SHIPPING{3}</A>.
          When <A HREF="#array_3">$SHIPPING{3}</A> is not defined, element one's
          value becomes the total shipping cost for the shipping method.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Element one may contain a set of <FONT COLOR="#0000CD">tilde</FONT>
              delimited subtotal ranges:<PRE>
'15' => ['International Orders',
         '100.00:26.95<FONT COLOR="#0000CD"><B>~</B></FONT>
          150.00:29.95<FONT COLOR="#0000CD"><B>~</B></FONT>
          200.00:32.95<FONT COLOR="#0000CD"><B>~</B></FONT>
          500.00:40.00<FONT COLOR="#0000CD"><B>~</B></FONT>
          750.00:50.00<FONT COLOR="#0000CD"><B>~</B></FONT>
          800.00:65.00',   '', ''],</PRE>

          Subtotal ranges present in a shipping method array take precedence
          over subtotal ranges in the universal subtotal range array,
          <A HREF="#array_3">$SHIPPING{3}</A>.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Do not include dollar signs or commas in element one.
              Element one is a fixed decimal number.</TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>


      <TR><TD>two</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Multiply Value</TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>The <I>Multiply Value</I> takes precedence over the universal subtotal
              range array, <A HREF="#array_3">$SHIPPING{3}</A>, and any value present
              in element one of the shipping method.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>The order's subtotal is multiplied by the decimal value present in
              element two to obtain the order's shipping cost.  If a dollar value
              is present in element one, element one's value is added to the
              shipping cost product, producing the order's shipping subtotal.
              If ranges are present in element one, they are not used.</TD></TR>

      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD>Do not include a dollar sign or commas in element two.
              Element two is a fixed decimal number.</TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>


      <TR><TD>three</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Country or State(s) Specific Shipping Method</TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD><PRE>

<A NAME="array14"></A>'14' => ['Canadian Orders', '10.00', '.17', '<A HREF="#SHIPPING">132</A>'],</PRE>
              For country-specific shipping methods, list the country's 3 digit
              code from %countries in
              <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">outlet.state_country.setup</A></I>
              in element three. Only one country code may be listed in element three
              for a country-specific shipping method.</TD></TR>



      <!-- SPACER -->
      <TR><TD COLSPAN=3 HEIGHT=3></TD></TR>
      <TR><TD COLSPAN=2></TD>
          <TD><PRE>

<A NAME="array13">'</A>13' => ['Alaska &amp; Hawaii', '12.00', '.04', '<A HREF="#SHIPPING">11:21</A>'],</PRE>
              For state-specific shipping methods, list state 2 digit
              codes from %states in
              <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">outlet.state_country.setup</A></I>
              in element three. More than one state code may be listed in element
              three for a state-specific shipping method. Colon delimit multiple
              state codes.</TD></TR>
      </TABLE>


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#SHIPPING"><FONT SIZE=2>%SHIPPING</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="tax"></A><PRE><B>$tax = '1';</B></PRE>
  <DT>When $tax = 1, sales tax is calculated and displayed on the order form for
      those clients whose billing state, province, or country contains a fixed decimal value
      for sales tax in element two of
      %states, %provinces, or %countries in
      <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">outlet.state_country.setup</A></I>,
      defined in <A HREF="#country_file">$country_file</A>.
  <DT>&nbsp;
  <DT>Examples of state array from %states with 6.75% sales tax:
  <DD><PRE>
 KEY     zero    one       two       three
 '53' => ['TX',  'Texas',  '.0675'],
 '53' => ['TX',  'Texas',  '.0675',  '~~RATE~~ ~~STATE~~ Sales Tax'],</PRE>

  <DT>Tax labels may be stored in element three. <I>WebStore</I> will use the universal label
      defined in <A HREF="#tax_label">$tax_label</A> when element three is not defined or
      element three is set to ''.
  <DT>&nbsp;
  <DT>Setting $tax = '' disables sales tax calculation. Tax rates present in
      element two of %states, %provinces, or %countries in
      <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">$country_file</A></I>
      are disregarded.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="tax_label"></A><PRE><B>$tax_label = '~~RATE~~ ~~STATE~~ Sales Tax';</B></PRE>
  <DT>$tax_label is displayed on <I>WebStore's</I> order form.
  <DT>&nbsp;
  <DT>Occurrences of  &nbsp;&nbsp; ~~RATE~~ &nbsp; ~~STATE~~ &nbsp; ~~PROVINCE~~ &nbsp; and &nbsp; ~~COUNTRY~~ &nbsp;
      found in $tax_label will be replaced with:
  <DD><PRE>
~~RATE~~        Tax rate in percentage format:  6.75%
~~STATE~~       US state from %states in <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">$country_file</A></I>
~~PROVINCE~~    Canadian province from %provinces in <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">$country_file</A></I>
~~COUNTRY~~     Country from %countries in <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">$country_file</A></I></PRE>
  <DT>Example sales tax rate of .0675 and sales tax state of Texas:
  <DD><PRE>
$tax_label = '~~RATE~~ ~~STATE~~ Sales Tax';
              6.75% Texas Sales Tax</PRE>
  <DT>State, provincial, or country specific tax labels may be stored in element three
      of %states, %provinces, or %countries in
      <I><A HREF="../Databases/outlet.state_country.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">outlet.state_country.setup</A></I>,
      defined in
      <A HREF="#country_file">$country_file</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="mail_file"></A><PRE><B>$mail_file = 'WebStore.list';</B></PRE>
  <DT>$mail_file is the | (pipe) delimited flatfile mailing list database consisting of
      e-mail addresses and names.
  <PRE>Example record:   <B>susan@cgicentral.net<FONT COLOR="#DC143C">|</FONT>Susan Smith</B></PRE>
  <DT>When an order is submitted, the client's e-mail address and name are added to
      $mail_file if the submitted e-mail address does not exist in $mail_file.
  <DT>&nbsp;
  <DT>Setting $mail_file = '' disables the addition of e-mail
      addresses and names to a mailing list database.
  <DT>&nbsp;
  <DT><I>WebStore</I> requires your clients to CHECK a checkbox input on the order
      form before they will be added to the mailing list database.
      The <B>name=</B> of this checkbox input is <B>joinlist=</B>.
  <DT>&nbsp;
  <DT>For compatibility with <I>WS Mail</I>, $mail_file must end in <I>.list</I>.
      <I>WebStore</I> adds <I>.list</I> to the file name in $mail_file if
      the file name does not end in <I>.list</I>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="join_list"></A><PRE><B>$join_list = '';</B></PRE>
  <DT>When $join_list = '1', clients are added to the mailing list defined in
      <A HREF="#mail_file">$mail_file</A> regardless of the use or condition of the
      form field 'joinlist'.
  <DT>&nbsp;
  <DT>Setting $join_list = '' disables automatic addition to the mailing list.
      A form field for 'joinlist' must be included on the form and the client
      must choose to be added to the mailing list.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderFormVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Confirmation of Order HTML Variables -->
  <DT>&nbsp;
  <DT><A NAME="Confirmation"></A><CENTER><B><FONT SIZE=4>Confirmation of Order HTML Page</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT>Order form fields printed to the Confirmation of Order HTML page are printed using
      &lt;FONT&nbsp;SIZE&gt; 3 for fax orders. &lt;FONT&nbsp;SIZE&gt; for credit card orders uses
      $data_font. &lt;FONT&nbsp;FACE&gt; uses $data_face.
  <DT>&nbsp;
  <DT><I><A HREF="ws_global.setup.html#data_font" TARGET="_blank">$data_font</A></I> and
      <I><A HREF="ws_global.setup.html#data_font" TARGET="_blank">$data_face</A></I> are defined in
      <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
  <DT>&nbsp;
  <DT>When <I><A HREF="ws_global.setup.html#data_font" TARGET="_blank">$data_font</A></I> is set to a value
      greater than '3', <I>WebStore</I> sets
      <I><A HREF="ws_global.setup.html#data_font" TARGET="_blank">$data_font</A></I> equal to '2' and
      <I><A HREF="ws_global.setup.html#header_font" TARGET="_blank">$header_font</A></I> equal to '3' for printing
      the Confirmation of Order page.
  <DT>&nbsp;
  <DT>To assure proper colors for printing of the Confirmation of Order page, color
      attributes within the opening <FONT SIZE=2>&lt;BODY&gt;</FONT> tag are set by
      <I>WebStore</I> using the following values:<PRE>
    $background  = '';          No background
    $bgcolor     = '#FFFFFF';   White
    $text_color  = '#000000';   Black
    $link_color  = '#0000FF';   Blue
    $vlink_color = '#0000A0';   Dark Blue
    $alink_color = '#FF0000';   Red</PRE>

    <I>Send Order to My Web Browser for Printing</I> may be disabled by removing it's
    form submit button from %OrderForm in the order form setup file you are using.
  <DT>&nbsp;
  <DT>&nbsp;



  <DT><A NAME="fax_signature"></A><PRE><B>$fax_signature = '2';</B></PRE>
  <DT>If $fax_signature = 0, never print client signature line on fax orders.
  <DT>If $fax_signature = 1, print client signature line in the credit card
      section of fax orders when any credit card field is not completed on the order form.
  <DT>If $fax_signature = 2, always print client signature line in the credit card
      section of fax orders.
  <DT>&nbsp;
  <DT><I>WebStore</I> will print the appropriate messages at the top of fax orders
      based on form input and the setting of $fax_signature.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ConfirmationVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="delete_cart"></A><PRE><B>$delete_cart = '';</B></PRE>
  <DT>If $delete_cart = 1, delete the client's shopping cart file after
      successful order form submission, preventing the client from performing
      multiple form submissions.  The client's cart is deleted after the
      entire confirmation of order page has been printed to the client's web
      browser.
  <DT>&nbsp;
  <DT>Setting $delete_cart = '', disables cart file deletion.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ConfirmationVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Administrative & Confirmation of Order E-mail Messages -->
  <DT>&nbsp;
  <DT><A NAME="OrderEmail"></A><CENTER><B><FONT SIZE=4>Administrative & Confirmation of Order E-mail Messages</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="email_numbers"></A><PRE><B>@email_numbers = ('4', '5', '0', '1');</B></PRE>
  <DT>@email_numbers array lists the array index numbers for the shopping cart database
      item fields to display at the bottom of the confimation of order page and to be included
      in the confirmation e-mail to the client and the order e-mail to the store's administrator.
      Column header text for the confirmation of order page is derived from
      the corresponding elements in <A HREF="#field_names">@field_names</A>.
  <DT>&nbsp;
  <DT><TABLE WIDTH=450 BORDER=0 CELLPADDING=2 CELLSPACING=0>
      <TR VALIGN=top><TD COLSPAN=19 HEIGHT=30><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).</TD></TR>
      <TR>
      <TH COLSPAN=19 ALIGN=left>
      <I><A HREF="product.database.html" TARGET="_blank">Database Fields</A></I> in
      <I><A HREF="../Databases/outlet.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">outlet.data</A></I></TH></TR>
      <TR>
      <TD ALIGN=center><FONT SIZE=2>0</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>1</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>2</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>3</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>4</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>5</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>6</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>7</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>8</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>9</FONT></TD></TR>
      <TR BGCOLOR="#DCDCDC">
      <TD ALIGN=center><FONT SIZE=2>&nbsp;<I><A HREF="product.database.html#ColorSize" TARGET="_blank">Color</A></I></FONT></TD>  <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#ColorSize" TARGET="_blank">Size</A></I></FONT></TD>         <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Shipping" TARGET="_blank">Shipping</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Item" TARGET="_blank">Item</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Category" TARGET="_blank">Category</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Price" TARGET="_blank">Price</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Name" TARGET="_blank">Name</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Description" TARGET="_blank">Description</A></I></FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Id" TARGET="_blank">Id</A></I>&nbsp;</FONT></TD></TR>
      </TABLE>
  <DT>&nbsp;
  <DT>The Image field is designed to display in Category tables only and should not be defined in @email_numbers or <A HREF="#email_fields_array">%email_fields_array</A>.
  <DT>&nbsp;
  <DT>Database fields containing &lt;HTML&gt; code should not be defined in @email_numbers or <A HREF="#email_fields_array">%email_fields_array</A> as &lt;HTML&gt; code will display as text in the e-mail messages.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="email_fields_array"></A><PRE><B>%email_fields_array = (

  '4' => 'right',
  '5' => 'left',
  '0' => 'left',
  '1' => 'left',

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates %modify_fields_array</FONT></B></PRE>
  <DT>%email_fields_array is a hash which defines the alignment attribute for each field in
  <DT><A HREF="#email_numbers">@email_numbers</A>.
  <DT>&nbsp;
  <DT>Valid alignment values are 'left' and 'right'.
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="label_align"></A><PRE><B>$label_align = 'left';</B></PRE>
  <DT>$label_align defines the alignment attribute for form field labels for all
      forms in <I>WebStore</I>.  Valid alignment values are 'left' and 'right'.
  <DD><PRE>
<B>LABELS ALIGNED '<FONT COLOR="#0000CD">left</FONT>':</B>

    <FONT COLOR="#0000CD">Type of Card</FONT>:      Visa
    <FONT COLOR="#0000CD">Name on Card</FONT>:      Susan Smith
    <FONT COLOR="#0000CD">Card Number</FONT>:       4111 1111 1111 1111
    <FONT COLOR="#0000CD">Expiration Month</FONT>:  January - 01
    <FONT COLOR="#0000CD">Expiration Year</FONT>:   2003

<B>LABELS ALIGNED '<FONT COLOR="#0000CD">right</FONT>':</B>

        <FONT COLOR="#0000CD">Type of Card</FONT>:  Visa
        <FONT COLOR="#0000CD">Name on Card</FONT>:  Susan Smith
         <FONT COLOR="#0000CD">Card Number</FONT>:  4111 1111 1111 1111
    <FONT COLOR="#0000CD">Expiration Month</FONT>:  January - 01
     <FONT COLOR="#0000CD">Expiration Year</FONT>:  2003</PRE>
  <DT>$label_align defaults to 'left' if mis-configured.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="item_subtotal"></A><PRE><B>$item_subtotal = '1';</B></PRE>
  <DT>If $item_subtotal = 1, include the subtotal of each item the client has
      ordered in the e-mail to client and e-mail to administrator.
  <DT>&nbsp;
  <DT>An item subtotal equals the quantity of an item multiplied by the item's unit price.
  <DT>&nbsp;
  <DT>Item subtotals are appended to the item's row, right justified (mandatory).
  <DT>&nbsp;
  <DT>Setting $item_subtotal = '' disables the addition of item subtotals
     to e-mail messages.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="email_subject"></A><PRE><B>$email_subject = <A HREF="#global_page_title">$global_page_title</A>.' Order';</B></PRE>
  <DT>$email_subject is used as the SUBJECT of the order confirmation e-mail sent to the client and the administrative e-mail used by the store administrator to fill the order.
  <DT>&nbsp;
  <DT>The client's order identification number is appended to the SUBJECT:
  <DD><PRE>RDC Software Order: [980712040921989]</PRE>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="message_columns"></A><PRE><B>$message_columns = '55';</B></PRE>
  <DT>$message_columns is the maximum number of characters per line in the confirmation
      of order e-mail and the administrative e-mail messages for <I>WebStore's</I> order form.
  <DT>&nbsp;
  <DT>$message_columns also controls line lengths in e-mail messages
      generated by <I>WebStore's</I> secondary form processor and the line length
      of the message separator character string defined in <A HREF="#message_divider">$message_divider</A>
      in all e-mail messages generated by all forms.
  <DT>&nbsp;
  <DT>Reformatting long text lines is performed on the contents of
      <A HREF="#pre_client_msg">$pre_client_msg</A>, <A HREF="#app_client_msg">$app_client_msg</A>,
      and all &lt;TEXTAREA&gt; inputs present on all forms in <I>WebStore</I>.
  <DT>&nbsp;
  <DT>The value of $message_columns should be equal to or greater than the
      COLS attribute assigned to &lt;TEXTAREA&gt; inputs on the order form.
  <DT>&nbsp;
  <DT>$message_columns is numeric only, ranging from 50 to 80, and defaults
       to 55 if mis-configured.
  <DT>&nbsp;
  <DT>$message_columns is mandatory and can not be disabled.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="message_divider"></A><PRE><B>$message_divider = '-';</B></PRE>
  <DT>$message_divider is a character or character string used to visually
      divide the sections of e-mail messages generated by all forms in
      <I>WebStore</I>.
  <DT>&nbsp;
  <DT>Tab characters in $message_divider are replaced with four spaces.
  <DT>Line control characters are removed from $message_divider.
  <DT>&nbsp;
  <DT>The character or character string which remains in $message_divider after
      whitespace filtering is duplicated and added to the right end of $message_divider
      until the string's length is equal to or greater than
      <A HREF="#message_columns">$message_columns</A>.
  <DT>&nbsp;
  <DT>After character or character string duplication, whitespace is removed
      from the right end of $message_divider.
  <DT>&nbsp;
  <DD>Example $message_divider contents followed by the resulting character
      string divider printed in e-mail messages:
  <DD><PRE>
$message_divider = '&lt;>';
&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>

$message_divider = '&lt;> ';
&lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;> &lt;>

$message_divider = '&lt;>&lt;>&lt;>&lt;> '.$global_page_title.' &lt;>&lt;>&lt;>&lt;>';
&lt;>&lt;>&lt;>&lt;> RDC Software &lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;>&lt;> RDC Software &lt;>&lt;>&lt;>&lt;>

$message_divider = '/\\';
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

$message_divider = '-';
-------------------------------------------------------</PRE>

  <DT>$message_divider defaults to - (dash) if $message_divider is set to ''.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="pre_client_msg"></A><PRE><FONT COLOR="#0000CD">if</FONT> ($email_link_url) { <FONT COLOR="#DC143C">$E_mail</FONT> = "\n".'E-mail:  mailto:'.$email_link_url }
<FONT COLOR="#0000CD">else</FONT> { <FONT COLOR="#DC143C">$E_mail</FONT> = '' }

<B>$pre_client_msg  = <FONT COLOR="#0000CD">join</FONT>("\n",@company)."\n".
   <FONT COLOR="#0000CD">qq</FONT>!

<A HREF="#subs1">~~FULL~~</A>:

Thank you for your order <A NAME="first"></A><A HREF="#subs1">~~FIRST~~</A>.  We appreciate your business and look
forward to serving you in the future.

Please retain this e-mail for your records.\n<FONT COLOR="#DC143C">$E_mail</FONT>
<A NAME="store">Store:</A>   <A HREF="#subs1">~~STORE~~</A>
!; <FONT COLOR="#008080"># DO NOT REMOVE - terminates $pre_client_msg.</FONT></B></PRE>

  <DT>$pre_client_msg is printed at the beginning of the confirmation of order
      e-mail sent to the client.
  <DT>&nbsp;
  <DT>You may personalize the text in $pre_client_msg by using the client's
      name and e-mail address.
  <DT>&nbsp;
  <DT><A NAME="subs1">Occurrences</A> of  &nbsp;&nbsp; ~~FIRST~~ &nbsp; ~~FULL~~ &nbsp; ~~EMAIL~~ &nbsp;
      and &nbsp; ~~STORE~~ &nbsp; found in $pre_client_msg will be replaced with:
  <DD><PRE>
~~FIRST~~    Client's first name
~~FULL~~     Client's full name
~~EMAIL~~    Client's e-mail address
~~STORE~~    WebStore URL</PRE>

  <DT>Occurrences of &nbsp;<A HREF="#first">~~FIRST~~</A>&nbsp; in
      <A HREF="#pre_client_msg">$pre_client_msg</A> are replaced with the full name
      of the client instead of the first name if the full name ends in Co,
      Company, Corp, Corporation, Inc, or Incorporated (case insensitive, optional
      trailing period).
  <DT>&nbsp;
  <DT>Occurrences of &nbsp;<A HREF="#store">~~STORE~~</A>&nbsp; are replaced with
      <I><A HREF="ws_global.setup.html#main_script_url" TARGET="_blank">$main_script_url</A></I>, defined in
      <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
      The client's username and password are included when name=value pairs for the
      client's username and password exist:
  <DD><PRE>
http://www.YourDomain.xxx/Web_store/ws400CS.cgi?uid=USERID&pwd=PASSWORD</PRE>
  <DT>The client's username and password name=value pairs are provided by <I>WebStore</I>
      when you are using client order form files, a filename is defined in
      <A HREF="#client_file">$client_file</A>.
  <DT>&nbsp;
  <DT>A name=value pair for store= is included when the required store setup file
      is not equal to $default_setup_file, defined in the <I>WebStore</I> script.
  <DT>&nbsp;
  <DT>A name=value pair for demo= is included when <I>WebStore</I> is operating in
      demonstration mode and <I><A HREF="ws_global.setup.html#demo" TARGET="_blank">$demo</A></I> = '' in
      <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
  <DT>&nbsp;
  <DT>Space the contents of $pre_client_msg as you would like it to appear in
      the e-mail message.
  <DT>&nbsp;
  <DT>Paragraph line lengths should be equal to or less than the value of
     <A HREF="#message_columns">$message_columns</A>. Placing entire paragraphs on
     one line allows <I>WebStore</I> to split line lengths according to the value of
     <A HREF="#message_columns">$message_columns</A>.
  <DT>&nbsp;
  <DT>Paragraphs containing ~~FIRST~~, ~~FULL~~, ~~EMAIL~~, and ~~STORE~~ should be on one
      line as the number of characters replacing these values can not be pre-determined.
  <DT>&nbsp;
  <DT>The script removes all leading and trailing whitespace from $pre_client_msg
      before line length formatting occurs.  One blank line is added to the end of
      $pre_client_msg.
  <DT>&nbsp;
  <DT>Setting &nbsp;
      $pre_client_msg = qq!!;  &nbsp;disables printing $pre_client_msg to the
      beginning of the client's confirmation of order e-mail.
  <DT><PRE><B><FONT COLOR="#0000CD">join</FONT>("\n",@company)."\n".</B></PRE>
  <DD>Prints the contents of <A HREF="#company">@company</A>.
  <DT><A NAME="email"></A><PRE><B><FONT COLOR="#0000CD">if</FONT> ($email_link_url) { <FONT COLOR="#DC143C">$E_mail</FONT> = "\n".'E-mail:  mailto:'.$email_link_url }
<FONT COLOR="#0000CD">else</FONT> { <FONT COLOR="#DC143C">$E_mail</FONT> = '' }</B></PRE>
  <DD>Prints the contents of <A HREF="#email_link_url">$email_link_url</A> when an
      e-mail address is defined in <A HREF="#email_link_url">$email_link_url</A>.
  <DT>&nbsp;
  <DD><B><FONT COLOR="#DC143C">$E_mail</FONT></B><BR>
      The <I>WebStore</I> scripts and program libraries never use uppercase and
      _ (underscore) in a variable name.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="app_client_msg"></A><PRE><B>$app_client_msg = qq!<FONT COLOR="#DC143C">$E_mail</FONT>
Store:   ~~STORE~~
!; <FONT COLOR="#008080"># DO NOT REMOVE - terminates $app_client_msg.</FONT></B></PRE>

  <DT>$app_client_msg is printed at the end of the confirmation of order
      e-mail sent to the client.
  <DT>&nbsp;
  <DT>You may personalize the text in $app_client_msg by using the client's
      name and e-mail address.
  <DT>&nbsp;
  <DT>Occurrences of &nbsp;&nbsp; ~~FIRST~~ &nbsp; ~~FULL~~ &nbsp; ~~EMAIL~~ &nbsp;
      and &nbsp; ~~STORE~~ &nbsp; found in $app_client_msg will be replaced with:
  <DD><PRE>
~~FIRST~~    Client's first name
~~FULL~~     Client's full name
~~EMAIL~~    Client's e-mail address
~~STORE~~    WebStore URL</PRE>

  <DT>Occurrences of &nbsp;~~FIRST~~&nbsp; in $app_client_msg are replaced with the
      full name of the client instead of the first name if the full name ends in Co,
      Company, Corp, Corporation, Inc, or Incorporated (case insensitive, optional
      trailing period).
  <DT>&nbsp;
  <DT>Occurrences of &nbsp;~~STORE~~&nbsp; are replaced with
      <I><A HREF="ws_global.setup.html#main_script_url" TARGET="_blank">$main_script_url</A></I>, defined in
      <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
      The client's username and password are included when name=value pairs for the
      client's username and password exist:
  <DD><PRE>
http://www.YourDomain.xxx/Web_store/ws400CS.cgi?uid=USERID&pwd=PASSWORD</PRE>

  <DT>The client's username and password name=value pairs are provided by <I>WebStore</I>
      when you are using client order form files, a filename is defined in
      <A HREF="#client_file">$client_file</A>.
  <DT>&nbsp;
  <DT>A name=value pair for store= is included when the required store setup file
      is not equal to $default_setup_file, defined in the <I>WebStore</I> script.
  <DT>&nbsp;
  <DT>A name=value pair for demo= is included when <I>WebStore</I> is operating in
      demonstration mode and <I><A HREF="ws_global.setup.html#demo" TARGET="_blank">$demo</A></I> = '' in
      <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
  <DT>&nbsp;
  <DT>Space the contents of $app_client_msg as you would like it to appear in
      the e-mail message.
  <DT>&nbsp;
  <DT>Paragraph line lengths should be equal to or less than the value of
     <A HREF="#message_columns">$message_columns</A>. Placing entire paragraphs on
     one line allows <I>WebStore</I> to split line lengths according to the value of
     <A HREF="#message_columns">$message_columns</A>.
  <DT>&nbsp;
  <DT>Paragraphs containing ~~FIRST~~, ~~FULL~~, ~~EMAIL~~, and ~~STORE~~ should be on one
      line as the number of characters replacing these values can not be pre-determined.
  <DT>&nbsp;
  <DT>The script removes all leading and trailing whitespace from $app_client_msg
      before line length formatting occurs.
  <DT>&nbsp;
  <DT>Setting &nbsp;
      $app_client_msg = qq!!;  &nbsp;disables printing $app_client_msg to the
      end of the client's confirmation of order e-mail.
  <DT>&nbsp;
  <DT>$email prints the contents of <A HREF="#email_link_url">$email_link_url</A> when
      an e-mail address is defined in <A HREF="#email_link_url">$email_link_url</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="pre_admin_msg"></A><PRE><B>$pre_admin_msg = '1';</B></PRE>
  <DT>If $pre_admin_msg = 1, preface e-mail to administrator with the reseller's
      details from the reseller database, Resellers.data, indicating where the order
      was routed. Also includes the referring web page the client accessed to link
      to <I>WebStore</I> in case the reseller did not include his reseller code OR included
      an incorrect code in the query string of the reseller's URL.
  <DT>&nbsp;
  <DT>Setting $pre_admin_msg = '' disables printing reseller information to the
      administrative e-mail message.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="fax_email"></A><PRE><B>$fax_email = '1';</B></PRE>
  <DT><TABLE BORDER=0 WIDTH="100%" CELLPADDING=0 CELLSPACING=0>
      <TR><TH VALIGN=top>0</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Order e-mail to administrator is disabled for fax orders.</TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>
      <TR><TH VALIGN=top>1</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Send order e-mail to the store administrator when a client prints an order to
           their web browser for faxing.</TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>
      <TR><TH VALIGN=top>2</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Send order e-mail to the store administrator and reseller when a client
          prints an order to their web browser for faxing.</TD></TR>
      </TABLE>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="mail_order"></A><PRE><B>%mail_order = (<FONT COLOR="#008080">

# KEY      Switches   E-mail address</FONT>
  '1' => [ 'af',      <I><A HREF="ws_global.setup.html#admin_email" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">$admin_email</A></I> ],
  '2' => [ 'rsf',     "Full Name &lt;username\@Domain.xxx&gt;"],

): <FONT COLOR="#008080"># DO NOT REMOVE - terminates %mail_order</FONT></B></PRE>
  <DT>%mail_order is a hash of arrays listing e-mail addresses which will receive
      a configured set of order related e-mail messages according to the mail
      switch settings present in element zero of each array.
  <DT>&nbsp;
  <DT><B>Switch Settings:</B>
  <DT><A NAME="a">&nbsp;</A>
  <DD><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
      <TR><TH VALIGN=top>a</TH>
          <TD>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD><I><A HREF="mail_order.a.html" TARGET="w1" onClick="window.open('','w1','width=640,height=400,scrollbars,resizable,top=0,left=0')">Administrative e-mail</A></I>,
          PGP encrypted or non-encrypted<BR>
          Complete order e-mail including credit card fields.
          If 'a' is not included in at least one e-mail address array, a
          complete administrative order message is delivered to
          <I><A HREF="ws_global.setup.html#admin_email" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">$admin_email</A></I>,
          defined in
          <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.</TD></TR>
      <TR><TD COLSPAN=3><A NAME="n">&nbsp;</A></TD></TR>
      <TR><TH VALIGN=top>n</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD><I><A HREF="mail_order.n.html" TARGET="w1" onClick="window.open('','w1','width=640,height=400,scrollbars,resizable,top=0,left=0')">Administrative e-mail</A></I>,
          non-encrypted - no client form fields<BR>
          Abbreviated message containing items ordered by the client.</TD></TR>
      <TR><TD COLSPAN=3><A NAME="s">&nbsp;</A></TD></TR>
      <TR><TH VALIGN=top>s</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD><I><A HREF="mail_order.s.html" TARGET="w1" onClick="window.open('','w1','width=640,height=400,scrollbars,resizable,top=0,left=0')">Administrative e-mail</A></I>,
          non-encrypted - no credit card fields<BR>
          Message construct <I>shared</I> by all administrative message types.</TD></TR>
      <TR><TD COLSPAN=3><A NAME="r">&nbsp;</A></TD></TR>
      <TR><TH VALIGN=top>r</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD><I><A HREF="mail_order.r.html" TARGET="w1" onClick="window.open('','w1','width=640,height=400,scrollbars,resizable,top=0,left=0')">Reseller e-mail</A></I>,
          non-encrypted - no credit card fields<BR>
          Message sent to reseller when <A HREF="#Reseller">reseller functions</A>
          are enabled.</TD></TR>
      <TR><TD COLSPAN=3><A NAME="c">&nbsp;</A></TD></TR>
      <TR><TH VALIGN=top>c</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD><I><A HREF="mail_order.c.html" TARGET="w1" onClick="window.open('','w1','width=640,height=400,scrollbars,resizable,top=0,left=0')">Client e-mail</A></I><BR>
          Order receipt sent to the client submitting an order.</TD></TR>
      <TR><TD COLSPAN=3>&nbsp;</TD></TR>
      <TR><TH VALIGN=top>d</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Send e-mail messages when operating in demonstration mode<BR>
          'd' has no effect when <I>WebStore's</I> demonstration mode is disabled.
          Refer to
          <I><A HREF="ws_global.setup.html#demo" TARGET="w1" onClick="window.open('','w1','width=640,height=400,scrollbars,resizable,top=0,left=0')">$demo</A></I>
          in
          <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>
          for demonstration mode details.</TD></TR>

      <TR><TD COLSPAN=3>&nbsp;</TD></TR>
      <TR><TH VALIGN=top>f</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Send e-mail messages for fax order submissions<BR>
              Messages are delivered when a client prints an order to their
              web browser for faxing when <A HREF="#fax_email">$fax_email</A>
              equals '1' or '2'.</TD></TR>
      </TABLE>
  <DT>&nbsp;
  <DT>E-mail address arrays which do not contain a minimum of one message switch in
      element zero are bypassed.  Valid message switches are
      <A HREF="#a">a</A>,
      <A HREF="#c">c</A>,
      <A HREF="#n">n</A>,
      <A HREF="#r">r</A>, or
      <A HREF="#s">s</A>.
  <DT>&nbsp;
  <DT>E-mail address arrays are bypassed when the e-mail address in element one
      does not pass the minimum e-mail address syntax of Text@Text.Text.
  <DT>&nbsp;
  <DT>A complete administrative order message,
      <I><A HREF="mail_order.a.html" TARGET="w1" onClick="window.open('','w1','width=640,height=400,scrollbars,resizable,top=0,left=0')">type a</A></I>,
      is delivered to
      <I><A HREF="ws_global.setup.html#admin_email" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">$admin_email</A></I>
      when all arrays are bypassed due to the errors described above or when
      <I><A HREF="ws_global.setup.html#admin_email" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">$admin_email</A></I>
      is not defined in an e-mail address array in %mail_order.
  <DT>&nbsp;
  <DT>Setting %mail_order = () disables sending configured sets of order related
      e-mail messages. A complete administrative order message,
      <I><A HREF="mail_order.a.html" TARGET="w1" onClick="window.open('','w1','width=640,height=400,scrollbars,resizable,top=0,left=0')">type a</A></I>,
      is delivered to
      <I><A HREF="ws_global.setup.html#admin_email" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">$admin_email</A></I>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#OrderEmailMessages"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Statistics -->
  <DT>&nbsp;
  <DT><A NAME="Stats"></A><CENTER><B><FONT SIZE=4>Statistics</FONT></B></CENTER>
  <DT>&nbsp;


  <DT>&nbsp;
  <DT><A NAME="log_file"></A><PRE><B>$log_file = 'WebStore_Access.stats';</B></PRE>
  <DT>$log_file is the name of the statistics log file stored in the /Statistics sub-directory.
  <DT>&nbsp;
  <DT>Maintain a formatted or | (pipe) delimited log file for the first access
      to <I>WebStore</I> consisting of:
  <DD><PRE>
Access Date and Time       21/Dec/1998 12:54:03 PM
$ENV{'HTTP_USER_AGENT'}    Type of Browser
$ENV{'HTTP_REFERER'}       Referring web page
$ENV{'REMOTE_ADDR'}        Remote address
$ENV{'REMOTE_HOST'}        Remote host</PRE>
  <DT>Setting $log_file = '' disables the statistics log file routine.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="log_file_size"></A><PRE><B>$log_file_size = '25000';</B>  (log file size = 25K)</PRE>
  <DT>$log_file_size equals the maximum size of the statistics log file before overwrite occurs.
  <DT>&nbsp;
  <DT>Setting $log_file_size = '' disables overwrite of the log file.
      You must manually delete the log file.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="log_delimiter"></A><PRE><B>$log_delimiter = '';</B></PRE>
  <DT>Setting $log_delimiter = 'Y' will | (pipe) delimit the fields of each
      record written to the log file defined in <A HREF="#log_file">$log_file</A>.
  <DT>&nbsp;
  <DT>Setting $log_delimiter = '' disables pipe delimited fields.  Fields are
      separated by four spaces.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="stat_file"></A><PRE><B>$stat_file = 'WebStore_Query.stats';</B></PRE>
  <DT>$stat_file is the name of the query stat file stored in the /Statistics sub-directory.
  <DT>&nbsp;
  <DT>Maintain a formatted or | (pipe) delimited query stat file consisting of:
  <DD><PRE>
Access Date and Time    21/Dec/1996 12:54:03 PM
Setup File              Store setup filename (file extension truncated)
Request                 Primary Request (query name=value pair)
$ENV{'REMOTE_ADDR'}     Remote address
Process ID              Script process ID
Query String            name=value pairs present in form POST submissions
                        or WebStore HREF anchor query strings.
                        Values for login, password, username, and any
                        field beginning with cc or chk are replaced with
                        * (asterisks).  Field names are case insensitive.</PRE>
  <DT>Setting $stat_file = '' disables the query stat file routine.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="stat_file_size"></A><PRE><B>$stat_file_size = '50000';</B>  (stat file size = 50K)</PRE>
  <DT>$stat_file_size equals the maximum size of the query stat file before overwrite occurs.
  <DT>&nbsp;
  <DT>Setting $stat_file_size = '' disables overwrite of the query stat file.
      You must manually delete the stat file.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="stat_delimiter"></A><PRE><B>$stat_delimiter = '';</B></PRE>
  <DT>Setting $stat_delimiter = 'Y' will | (pipe) delimit the fields of each
      record written to the query stat file defined in <A HREF="#stat_file">$stat_file</A>.
  <DT>&nbsp;
  <DT>Setting $stat_delimiter = '' disables pipe delimited fields.  Fields are
      separated by four spaces.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="count_file"></A><PRE><B>$count_file = 'WebStore_Access.counter';</B></PRE>
  <DT>$count_file is the access counter file stored in the /Statistics sub-directory. Each time a client visits your <I>WebStore</I>, the value stored in $count_file is incremented by 1 (one).
  <DT>&nbsp;
  <DT>Setting $count_file = '' disables the access counter routine.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="start_count"></A><PRE><B>$start_count = '0';</B></PRE>
  <DT>$start_count may be used to set the initial value or increase the current value stored
      in the access counter file defined in <A HREF="#count_file">$count_file</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="counter_label"></A><PRE><B>$counter_label = 'Visitor Count:';</B></PRE>
  <DT>$counter_label is the counter's label printed on the store's front page to the left of the access counter.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Statistics"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Table Displays -->
  <DT>&nbsp;
  <DT><A NAME="TableDisplay"></A><CENTER><B><FONT SIZE=4>Table Displays</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="meta_tags"></A><PRE><B>$meta_tags = <FONT COLOR="#0000CD">qq</FONT>!

&lt;META NAME=&quot;description&quot; content=&quot;<A HREF="#global_page_title">$global_page_title</A> - Online Shopping&quot;&gt;
&lt;META NAME=&quot;keywords&quot; content=&quot;comma,delimited,list,of,keywords&quot;&gt;

!: <FONT COLOR="#008080"># DO NOT REMOVE - terminates $meta_tags</FONT></B></PRE>
  <DT>Use $meta_tags to store META TAGS for printing in the &lt;HEAD&gt;&lt;/HEAD&gt; of
      all <I>WebStore</I> generated pages and forms.
  <DT>&nbsp;
  <DT>Setting $meta_tags = '' disables printing of &lt;META TAGS&gt;.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#TableDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="DocColorVars"></A><PRE><B><FONT COLOR="#008080"># $background  = '';
# $bgcolor     = '#FFFFFF';  # White
# $text_color  = '#000000';  # Black
# $link_color  = '#0000FF';  # Blue
# $vlink_color = '#0000A0';  # Dark Blue
# $alink_color = '#FF0000';  # Red</FONT></B></PRE>
  <DT>Values for background, bgcolor, text, link, visited link, and active link
      are set using $background, $bgcolor, $text_color, $link_color, $vlink_color,
      $alink_color respectively.
  <DT>&nbsp;
  <DT>These variables are set globally in
      <I><A HREF="ws_global.setup.html#DocColorVars" TARGET="_blank">ws_global.setup</A></I>
      for use by all scripts in the <I>WebStore</I> application.
  <DT>&nbsp;
  <DT>To configure specific colors for <I>WebStore</I>, remove the
      <FONT COLOR="#008080"><B>#</B></FONT> (pound sign) from column 1 and set to the
      desired value. Any combination of these variables may be uncommented (pound sign removed).
  <DT>&nbsp;
  <DT>$background is the filename of the background image stored in the
      /Web_store/Graphics sub-directory.
  <DT>&nbsp;
  <DT>The script determines whether to precede $backgound with $graphics_url
      or $ssl_graphics_url based on the setting of $ssl_url and the form
      action being processed:<PRE>
    $graphics_url/$background   <B>OR</B>   $ssl_graphics_url/$background</PRE>

      Setting any of these variables = '';
      disables printing their respective attribute within the opening &lt;BODY&gt; tag
      of <I>WebStore</I> generated HTML pages.
  <DT>&nbsp;
  <DT>For your store's frontpage, category frontpages, and expanded item information pages,
      add the background and color attributes to the HTML file's
      &lt;BODY&gt; tag.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#TableDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Colored Table Output -->
  <DT><A NAME="SPC"></A><PRE><B>$SPC = '&amp;nbsp;';</B></PRE>
  <DT>$SPC contains a non-breaking space extended character necessary for assigning bgcolor attributes in the spacer
      columns of table data rows in category and view/modify tables.  A column must contain at least one character to
      display background color. $SPC should not be altered, unless you prefer the look of it.
  <DT>&nbsp;
  <DT>Setting $SPC = '';
      will remove the &lt;TD BGCOLOR&gt; from spacer columns in rows containing database items.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#TableDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="CELLPADDING"></A><PRE><B>$CELLPADDING = '2';</B></PRE>
  <DT>$CELLPADDING is the value of &lt;TABLE CELLPADDING&gt;.
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A HREF="#SPC">$SPC</A> and $CELLPADDING are constants used in displaying all tables within <I>WebStore</I>. This will maintain visual consistency between category and view/modify tables.
  <DT>&nbsp;
  <DT>Dimensions of table's borders, space between columns, and space between category
      and cart content rows can be modified by adjusting the value $CELLPADDING.
  <DT>&nbsp;
  <DT>If additional row space is needed to display categories or cart contents,
      set <A HREF="#table_border">$table_border</A> and
      <A HREF="#modify_table_border">$modify_table_border</A> to 0 respectively.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#TableDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="border"></A><PRE><B>$border = '0';</B></PRE>
  <DT>If $border = 1, border is wrapped around the table.
  <DT>If $border = 0, border is disabled.
  <DT>&nbsp;
  <DT>$border should be set to 1 only for reviewing HTML formatted text
      printed from database item fields.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#TableDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



<!-- Database Category and Search Result Tables -->
  <DT><A NAME="Category"></A><CENTER><B><FONT SIZE=4>Database Category and Search Result Tables</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>The <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I> field
      is designed to automatically print to database category displays and search result pages.
      <I>WebStore</I> prints item images based on the presence of an image source tag in the
      <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I> field or the
      existence of an item's image based on the image filename constructed using the
      contents of the <I><A HREF="product.database.html#Item" TARGET="_blank">Item</A></I>
      field when a field number is defined in <A HREF="#item_fld_num">$item_fld_num</A>.
  <DT>&nbsp;
  <DT>Do not define the <I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I>
      field in <A HREF="#vertical_numbers">@vertical_numbers</A> or
      <A HREF="#display_numbers">@display_numbers</A>.
  <DT>&nbsp;
  <DT>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="vertical_numbers"></A><PRE><B>@vertical_numbers = ('7');</B></PRE>
  <DT>@vertical_numbers array lists the array index numbers for each database
      field set for vertical, labeled display in Category tables.
  <DT>&nbsp;
  <DT>Fields in @vertical_numbers may be colon delimited, including HTML formatting
      characters to the right of colons.  Fields may be printed with or without HTML
      formatted field labels.  Fields in @vertical_numbers are printed above the
      fields defined in <A HREF="#display_numbers">@display_numbers</A>.
  <DT>&nbsp;
  <DT><B>Field Labels:</B>
  <DT>&nbsp;
  <DD><FONT COLOR="#DC143C">UPPERCASE</FONT> control characters effect printing of a
      field's corresponding label defined in <A HREF="#field_names">@field_names</A>:
  <DD><PRE><FONT COLOR="#DC143C">N</FONT>   Do not print the field's label.  <FONT COLOR="#DC143C">B</FONT>, <FONT COLOR="#DC143C">I</FONT>, and <FONT COLOR="#DC143C">U</FONT> are ignored
<FONT COLOR="#DC143C">B</FONT>   Wrap &lt;B&gt; tags around field label
<FONT COLOR="#DC143C">I</FONT>   Wrap &lt;I&gt; tags around field label
<FONT COLOR="#DC143C">U</FONT>   Wrap &lt;U&gt; tags around field label</PRE>

  <DT><B>Field Contents:</B>
  <DT>&nbsp;
  <DD><FONT COLOR="#0000CD">lowercase</FONT> control characters effect printing of field contents:
  <DD><PRE><FONT COLOR="#0000CD">b</FONT>   Wrap &lt;B&gt; tags around field contents
<FONT COLOR="#0000CD">i</FONT>   Wrap &lt;I&gt; tags around field contents
<FONT COLOR="#0000CD">u</FONT>   Wrap &lt;U&gt; tags around field contents</PRE>

  <DT>A blank element inserted between fields in @vertical_numbers will print one
      spacing table row with HEIGHT=10.
  <DT>&nbsp;
  <DT><I>WebStore</I> removes leading and trailing blank elements, reducing multiple
      imbedded blank elements to one blank element.
  <DT>&nbsp;
  <DD>Example:
  <DD><PRE>VALUE:       @vertical_numbers = ('','','0:B','','','7:N','','');
REDUCED TO:  @vertical_numbers = ('0:B','','7:N');</PRE>

  <DT><I>WebStore</I> reduces multiple references to the same field to one field reference,
      using the first reference to the field.
  <DT>&nbsp;
  <DD>Example:
  <DD><PRE>VALUE:       @vertical_numbers = ('0:B','','0:Nb','','7:N');
REDUCED TO:  @vertical_numbers = ('0:B','','7:N');</PRE>
  <DT>When field zero or field one is included in @vertical_numbers, <I>WebStore</I> prints
      the following fields in the listed order:
  <DD><PRE>Price
Quantity text input
Color SELECT element - field 0
Size  SELECT element - field 1</PRE>

  <DT><I>WebStore</I> uses the first occurrence of field zero or field one, translating
      field one references to field zero.
      Price field references and additional references to field zero or field one
      are disregarded.
  <DT>&nbsp;
  <DD>Examples:
  <DD><PRE>VALUE:       @vertical_numbers = ('0:B','','1:Nb','','7:N');
REDUCED TO:  @vertical_numbers = ('0:B','','7:N');

VALUE:       @vertical_numbers = ('1:B','','0:Nb','','7:N');
REDUCED TO:  @vertical_numbers = ('0:B','','7:N');
</PRE>

  <DT>Database fields containing no text are not printed to the web browser.
  <DT>&nbsp;
  <DT><B>Examples:</B>
  <DD><PRE><B>@vertical_numbers = ('0');</B>
Price, Quantity, Color, and Size with field labels.

<B>@vertical_numbers = ('0:B');</B>
Price, Quantity, Color, and Size with &lt;B&gt; tags around
field labels.

<B>@vertical_numbers = ('0:B', '', '7:N');</B>
Price, Quantity, Color, and Size with &lt;B&gt; tags around
field labels, followed by spacing row with HEIGHT=10,
followed by Description field with no field label.</PRE>
  <DT>&nbsp;
  <DT>Setting @vertical_numbers = (); disables printing of vertical fields.
  <DT>&nbsp;
  <DT><TABLE WIDTH=450 BORDER=0 CELLPADDING=2 CELLSPACING=0>
      <TR VALIGN=top><TD COLSPAN=19 HEIGHT=30><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).</TD></TR>
      <TR>
      <TH COLSPAN=19 ALIGN=left>
      <I><A HREF="product.database.html" TARGET="_blank">Database Fields</A></I> in
      <I><A HREF="../Databases/outlet.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">outlet.data</A></I></TH></TR>
      <TR>
      <TD ALIGN=center><FONT SIZE=2>0</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>1</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>2</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>3</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>4</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>5</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>6</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>7</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>8</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>9</FONT></TD></TR>
      <TR BGCOLOR="#DCDCDC">
      <TD ALIGN=center><FONT SIZE=2>&nbsp;<I><A HREF="product.database.html#ColorSize" TARGET="_blank">Color</A></I></FONT></TD>  <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#ColorSize" TARGET="_blank">Size</A></I></FONT></TD>         <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Shipping" TARGET="_blank">Shipping</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Item" TARGET="_blank">Item</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Category" TARGET="_blank">Category</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Price" TARGET="_blank">Price</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Name" TARGET="_blank">Name</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Description" TARGET="_blank">Description</A></I></FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Id" TARGET="_blank">Id</A></I>&nbsp;</FONT></TD></TR>
      </TABLE>


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



  <DT><A NAME="display_numbers"></A><PRE><B>@display_numbers = ('7');</B></PRE>
  <DT>@display_numbers array lists the array index numbers for each database field
      set for vertical display in Category tables.
  <DT>&nbsp;
  <DT>Fields in @display_numbers are printed below the fields defined in
      @vertical_numbers in table rows spanning the entire table's width.
  <DT>&nbsp;
  <DT>When <A HREF="#vertical_numbers">@vertical_numbers</A> = (); fields in
      @display_numbers are printed according to the presence of an item image,
      using the alignment attribute assigned to the image in the Image field.
  <DT>&nbsp;
  <DT>Elements in @display_numbers are numeric only.  <I>WebStore</I> disregards blank
      elements and elements containing alpha or special characters.
  <DT>&nbsp;
  <DT><I>WebStore</I> removes duplicated field references, using the first occurrence of
      a field reference.
  <DT>&nbsp;
  <DD>Example:
  <DD><PRE>VALUE:       @display_numbers = ('7','','7');
REDUCED TO:  @display_numbers = ('7');</PRE>

  <DT>Setting @display_numbers = (); disables printing of fields below the fields
      defined in <A HREF="#vertical_numbers">@vertical_numbers</A>.
  <DT>&nbsp;
  <DT><TABLE WIDTH=450 BORDER=0 CELLPADDING=2 CELLSPACING=0>
      <TR VALIGN=top><TD COLSPAN=19 HEIGHT=30><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).</TD></TR>
      <TR>
      <TH COLSPAN=19 ALIGN=left>
      <I><A HREF="product.database.html" TARGET="_blank">Database Fields</A></I> in
      <I><A HREF="../Databases/outlet.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">outlet.data</A></I></TH></TR>
      <TR>
      <TD ALIGN=center><FONT SIZE=2>0</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>1</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>2</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>3</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>4</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>5</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>6</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>7</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>8</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>9</FONT></TD></TR>
      <TR BGCOLOR="#DCDCDC">
      <TD ALIGN=center><FONT SIZE=2>&nbsp;<I><A HREF="product.database.html#ColorSize" TARGET="_blank">Color</A></I></FONT></TD>  <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#ColorSize" TARGET="_blank">Size</A></I></FONT></TD>         <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Shipping" TARGET="_blank">Shipping</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Item" TARGET="_blank">Item</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Category" TARGET="_blank">Category</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Price" TARGET="_blank">Price</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Name" TARGET="_blank">Name</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Description" TARGET="_blank">Description</A></I></FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Id" TARGET="_blank">Id</A></I>&nbsp;</FONT></TD></TR>
      </TABLE>
  <DT>&nbsp;
  <DT>The Image field is controlled by <I>WebStore</I> and should not be defined in
      @display_numbers, <A HREF="#vertical_numbers">@vertical_numbers</A> or
      <A HREF="#fields_array">%fields_array</A>.
  <DT>&nbsp;
  <DT>The Price, and drop down list fields (defined in this file as Color and Size),
      are controlled by either <A HREF="#vertical_numbers">@vertical_numbers</A> or
      <I>WebStore</I> and should not be defined in @display_numbers.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="fields_array"></A><PRE><B>%fields_array = (

  '0' => 'left',
  '3' => 'left',
  '4' => 'left',
  '5' => 'left',
  '6' => 'left',
  '7' => 'left',

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates %fields_array</FONT></B></PRE>
  <DT>%fields_array is a hash defining the alignment attribute for each database
      field set for display in <A HREF="#vertical_numbers">@vertical_numbers</A> and
      <A HREF="#display_numbers">@display_numbers</A> for category tables.
  <DT>&nbsp;
  <DT>Valid alignment values are 'left', 'center', and 'right'.
  <DT>&nbsp;
  <DT>Field alignment defaults to 'left' for undefined references or references not equal to
      'left', 'center', or 'right'.
  <DT>&nbsp;
  <DT>Defining a reference to field '1' in %fields_array has no effect. <I>WebStore</I>
      translates all field '1' references in <A HREF="#vertical_numbers">@vertical_numbers</A>
      to field '0' in it's array filter subroutine.
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="table_border"></A><PRE><B>$table_border = '1';</B></PRE>
  <DT>If $table_border = 1, colored border is wrapped around the table.
  <DT>Setting $table_border = '' disables printing of the colored border.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="spc_width"></A><PRE><B>$spc_width = '7';</B></PRE>
  <DT>$spc_width controls the width of spacer columns located between displayed
      category item fields defined in <A HREF="#display_numbers">@display_numbers</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="spc_height"></A><PRE><B>$spc_height = '1';</B></PRE>
  <DT>$spc_height controls the height of spacer rows separating displayed category
      item rows.  Spacer rows follow the BGCOLOR or BACKGROUND attribute of the
      document.
  <DT>&nbsp;
  <DT><A HREF="#table_border">$table_border</A>, <A HREF="#spc_width">$spc_width</A>, and
      $spc_height are used to manipulate table appearance when displaying database categories
      or items returned from a client search.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="table_title"></A><PRE><B>$table_title = <A HREF="#global_page_title">$global_page_title</A>;</B></PRE>
  <DT>$table_title is the text printed to the title header row of displayed database
      categories and search result HTML pages generated by <I>WebStore</I>.
  <DT>&nbsp;
  <DT>Setting $table_title = '' disables printing of the header title row.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="table_width"></A><PRE><B>$table_width = '';</B></PRE>
  <DT>$table_width sets the table width of displayed database categories and
      and search result HTML pages. <I>WebStore</I> prints single item tables.
  <DT>&nbsp;
  <DT>When $table_width contains a width value, <I>WebStore</I> disables
      <A HREF="#table_border">$table_border</A> which prevents the printing of
      colored borders around item tables.
  <DT>&nbsp;
  <DT>$table_width may be a percentage of the browser's window or pixel count.
  <DT>&nbsp;
  <DD>Example settings:
  <DD><PRE>$table_width = '85%'; <FONT COLOR="#008080"># Percentage</FONT>
$table_width = '575'; <FONT COLOR="#008080"># Pixel count</FONT></PRE>
  <DT>Setting $table_width = '' disables fixed table widths.  Displayed items
      are printed in a single table. <I>WebStore</I> disables
      <A HREF="#item_separator">$item_separator</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="item_separator"></A><PRE><B>$item_separator = '';</B></PRE>
  <DT>The contents of $item_separator are printed in a table between displayed
      category item tables or search result item tables when
      <A HREF="#table_width">$table_width</A> contains a width value.
  <DT>&nbsp;
  <DT>The separator table row is printed with height equal to
      <NOBR>(<A HREF="#spc_height">$spc_height</A> * 3)</NOBR>
      and alignment attributes equal to ALIGN=center VALIGN=middle.
  <DT>&nbsp;
  <DD>Example settings:
  <DD><PRE>$item_separator = <A HREF="#SPC">$SPC</A>;
$item_separator = <FONT COLOR="#0000CD">qq</FONT>!&lt;HR WIDTH="550" NOSHADE&gt;!;
$item_separator = <FONT COLOR="#0000CD">qq</FONT>!&lt;IMG SRC="$graphics_url/divider.gif" BORDER=0&gt;!;</PRE>
  <DT>Setting $item_separator = '' prints a single spacing table row between
      displayed items with a height equal to <A HREF="#item_separator">$spc_height</A>.
      <I>WebStore</I> disables $item_separator when
      <NOBR><A HREF="#table_width">$table_width</A> = ''.</NOBR>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="max_items"></A><PRE><B>$max_items = '10';</B></PRE>
  <DT>$max_items is the maximum number of items returned to the client's web
      browser for a database category display or search result.  It's value must
      be numeric, greater than zero. $max_items defaults to 5 if mis-configured.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="display_category"></A><PRE><B>$display_category = '0';</B></PRE>
  <DT>If $display_category = 0, display the client's shopping cart contents
      after adding items to the cart.
  <DT>&nbsp;
  <DT>If $display_category = 1, return the client to the database category,
      product page, or search result page after adding items to the cart.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#CategoryTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Image Display -->
  <DT>&nbsp;
  <DT><A NAME="ImageDisplay"></A><CENTER><B><FONT SIZE=4>Image Display</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="img_spacing"></A><PRE><B>$img_spacing = '10';</B></PRE>
  <DT>$img_spacing is the amount of space between the image and the image's adjacent table columns.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ImageDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="img_border"></A><PRE><B>$img_border = '3';</B></PRE>
  <DT>$img_border is the image's outermost border and is a normal &lt;TABLE BORDER&gt;.
  <DT>Setting $img_border = '0' disables $img_border.
  <DT>&nbsp;
  <DT>Setting $img_border = '0' disables <A HREF="#img_padding">$img_padding</A> regardless of it's value in this setup file.
  <DT>Vary the width of this border by increasing or decreasing the value of $img_border.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ImageDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="img_padding"></A><PRE><B>$img_padding = '0';</B></PRE>
  <DT>$img_padding is the amount of space between the normal &lt;TABLE BORDER&gt; defined in <A HREF="#img_border">$img_border</A> and the image or the outermost colored border defined in <A HREF="#outer_clr_width">$outer_clr_width</A> and <A HREF="#outer_clr_width">$outer_img_clr</A>.
  <DT>&nbsp;
  <DT>When <A HREF="#img_border">$img_border</A> = '0', $img_padding is disabled regardless of it's value in this setup file.
  <DT>Vary the width of padding by increasing or decreasing the value of $img_padding.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ImageDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="outer_clr_width"></A><PRE><B>$outer_clr_width = '3';
$outer_img_clr   = '#FF0000'; </B>Red</PRE>
  <DT>$outer_clr_width and $outer_img_clr define the image's outermost colored ornamental
      border.
  <DT>Setting $outer_clr_width = '' disables this ornamental border.
  <DT>Vary the width of this border by increasing or decreasing the value of $outer_clr_width.
  <DT>&nbsp;
  <DT>$outer_img_clr defines the color of this ornamental border.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ImageDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="inner_clr_width"></A><PRE><B>$inner_clr_width = '3';
$inner_img_clr   = '#000000'; </B>Black</PRE>
  <DT>$inner_clr_width and $inner_img_clr define the image's innermost colored ornamental border.
  <DT>Setting $inner_clr_width = '' disables this ornamental border.
  <DT>Vary the width of this border by increasing or decreasing the value of $inner_clr_width.
  <DT>&nbsp;
  <DT>$inner_img_clr defines the color of this ornamental border.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ImageDisplayVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- View/Modify Tables -->
  <DT>&nbsp;
  <DT><A NAME="ViewModify"></A>
  <DT><CENTER><B><FONT SIZE=4>View/Modify Tables</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="modify_display_numbers"></A><PRE><B>@modify_display_numbers = ('5', '0', '1', '4');</B></PRE>
  <DT>@modify_display_numbers array lists the array index numbers for the shopping cart
      database item fields to display in <I>View/Modify Cart Items</I>, <I>Delete Cart Items</I>,
      and at the top of the order form. Column header text is derived from the
      corresponding elements in <A HREF="#field_names">@field_names</A>.
  <DT>&nbsp;
  <DT><TABLE WIDTH=450 BORDER=0 CELLPADDING=2 CELLSPACING=0>
      <TR VALIGN=top><TD COLSPAN=19 HEIGHT=30><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).</TD></TR>
      <TR>
      <TH COLSPAN=19 ALIGN=left>
      <I><A HREF="product.database.html" TARGET="_blank">Database Fields</A></I> in
      <I><A HREF="../Databases/outlet.data" TARGET="w1" onClick="window.open('','w1','width=640,height=200,scrollbars,resizable,top=0,left=0')">outlet.data</A></I></TH></TR>
      <TR>
      <TD ALIGN=center><FONT SIZE=2>0</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>1</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>2</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>3</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>4</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>5</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>6</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>7</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>8</FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2>9</FONT></TD></TR>
      <TR BGCOLOR="#DCDCDC">
      <TD ALIGN=center><FONT SIZE=2>&nbsp;<I><A HREF="product.database.html#ColorSize" TARGET="_blank">Color</A></I></FONT></TD>  <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#ColorSize" TARGET="_blank">Size</A></I></FONT></TD>         <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Shipping" TARGET="_blank">Shipping</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Item" TARGET="_blank">Item</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Category" TARGET="_blank">Category</A></I></FONT></TD>      <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Price" TARGET="_blank">Price</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Name" TARGET="_blank">Name</A></I></FONT></TD>              <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Description" TARGET="_blank">Description</A></I></FONT></TD><TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Image" TARGET="_blank">Image</A></I></FONT></TD>            <TH><FONT SIZE=2 COLOR="#DC143C">|</FONT></TH>
      <TD ALIGN=center><FONT SIZE=2><I><A HREF="product.database.html#Id" TARGET="_blank">Id</A></I>&nbsp;</FONT></TD></TR>
      </TABLE>
  <DT>&nbsp;
  <DT>The Image field is designed to display in Category tables only and should not be defined in @modify_display_numbers or <A HREF="#modify_fields_array">%modify_fields_array</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ViewModifyTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="modify_fields_array"></A><PRE><B>%modify_fields_array = (

  '5' => 'left',
  '0' => 'left',
  '1' => 'left',
  '4' => 'right',

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates %modify_fields_array</FONT></B></PRE>
  <DT>%modify_fields_array is a hash which defines the alignment attribute for each database field set for display in <A HREF="#modify_display_numbers">@modify_display_numbers</A> for cart content tables.
  <DT>&nbsp;
  <DT>Valid alignment values are 'left', 'center', and 'right'.
  <DT>&nbsp;
  <DT><FONT COLOR="#DC143C"><B>NOTE:</B></FONT> First element of an array is 0 (zero).



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ViewModifyTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;



  <DT><A NAME="modify_table_border"></A><PRE><B>$modify_table_border = '1';</B></PRE>
  <DT>If $modify_table_border = 1, colored border is wrapped around the table.
  <DT>Setting $modify_table_border = '' disables printing of the colored border.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ViewModifyTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="modify_spc_width"></A><PRE><B>$modify_spc_width = '7';</B></PRE>
  <DT>$modify_spc_width controls the width of spacer columns located between
      displayed cart contents columns defined in
      <A HREF="#modify_display_numbers">@modify_display_numbers</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ViewModifyTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="modify_spc_height"></A><PRE><B>$modify_spc_height = '1';</B></PRE>
  <DT>$modify_spc_height controls the height of spacer rows separating displayed
      cart contents rows.  Spacer rows follow the BGCOLOR or BACKGROUND attribute
      of the document.
  <DT>&nbsp;
  <DT><A HREF="#modify_table_border">$modify_table_border</A>,
      <A HREF="#modify_spc_width">$modify_spc_width</A>, and $modify_spc_height
      are used to manipulate table appearance when the client's shopping cart contents
      are displayed.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#ViewModifyTables"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Font Control -->
  <DT>&nbsp;
  <DT><A NAME="FontControl"></A><CENTER><B><FONT SIZE=4>Font Control</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><I><A HREF="ws_global.setup.html#data_font" TARGET="_blank">$data_font</A></I> and
      <I><A HREF="ws_global.setup.html#data_font" TARGET="_blank">$data_face</A></I>,
      set in <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>,
      are used with <A HREF="#data_bkg_clr">$data_fnt_clr</A> and
      <A HREF="#modify_fnt_clr">$modify_fnt_clr</A> to develop an opening &lt;FONT&gt;
      tag for use in table data rows.
  <DT>&nbsp;
  <DT><I><A HREF="ws_global.setup.html#header_font" TARGET="_blank">$header_font</A></I> and
      <I><A HREF="ws_global.setup.html#header_font" TARGET="_blank">$header_face</A></I>,
      set in <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>,
      are used with <A HREF="#header_bkg_clr">$header_fnt_clr</A> and
      <A HREF="#dsc_hr_bkg_clr">$dsc_hr_fnt_clr</A> to develop
      opening &lt;FONT&gt; tags for use in table header rows.
  <DT>&nbsp;
  <DT>&nbsp;


  <DT><A NAME="header_bkg_clr"></A><PRE><B>$header_bkg_clr = '#000000'; </B>Black
<B>$header_fnt_clr = '#FFFFFE'; </B>White</PRE>
  <DT>$header_bkg_clr and $header_fnt_clr are the background color and font color used in
      table header rows to display table page headers in all <I>WebStore</I> generated tables.
  <DT>&nbsp;
  <DT>Setting $header_bkg_clr = '' disables $header_bkg_clr.
  <DT>Setting $header_fnt_clr = '' disables $header_fnt_clr.
  <DT>Colors default to &lt;BODY BGCOLOR or BACKGROUND&gt; and &lt;BODY TEXT&gt; attributes.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#FontControlVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="dsc_hr_bkg_clr"></A><PRE><B>$dsc_hr_bkg_clr = '#DCDCDC'; </B>Gainsboro
<B>$dsc_hr_fnt_clr = '#000000'; </B>Black</PRE>
  <DT>$dsc_hr_bkg_clr and $dsc_hr_fnt_clr are the background color and font color
      used in table header rows to display order subtotal messages and descriptive
      column text in all <I>WebStore</I> generated tables.
  <DT>&nbsp;
  <DT>Setting $dsc_hr_bkg_clr = '' disables $dsc_hr_bkg_clr.
  <DT>Setting $dsc_hr_fnt_clr = '' disables $dsc_hr_fnt_clr.
  <DT>Colors default to &lt;BODY BGCOLOR or BACKGROUND&gt; and &lt;BODY TEXT&gt; attributes.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#FontControlVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="data_bkg_clr"></A><PRE><B>$data_bkg_clr = '#B0C4DE'; </B>Lightsteelblue
<B>$data_fnt_clr = '#000000'; </B>Black</PRE>
  <DT>$data_bkg_clr and $data_fnt_clr are the background color and font color used in
      table data rows to display database categories or items returned from a client search.
  <DT>&nbsp;
  <DT>Setting $data_bkg_clr = '' disables $data_bkg_clr.
  <DT>Setting $data_fnt_clr = '' disables $data_fnt_clr.
  <DT>Colors default to &lt;BODY BGCOLOR or BACKGROUND&gt; and &lt;BODY TEXT&gt; attributes.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#FontControlVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="modify_bkg_clr"></A><PRE><B>$modify_bkg_clr = '#B0C4DE'; </B>Lightsteelblue
<B>$modify_fnt_clr = '#000000'; </B>Black</PRE>
  <DT>$modify_bkg_clr and $modify_fnt_clr are the background color and font color used in
      table data rows to display items in the client's shopping cart.
  <DT>&nbsp;
  <DT>Setting $modify_bkg_clr = '' disables $modify_bkg_clr.
  <DT>Setting $modify_fnt_clr = '' disables $modify_fnt_clr.
  <DT>Colors default to &lt;BODY BGCOLOR or BACKGROUND&gt; and &lt;BODY TEXT&gt; attributes.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#FontControlVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="border_bkg_clr"></A><PRE><B>$border_bkg_clr = '#B0C4DE'; </B>Lightsteelblue</PRE>
  <DT>$border_bkg_clr is the background color of table ornamental borders in all
      <I>WebStore</I> generated tables.
  <DT>&nbsp;
  <DT>Set <A HREF="#table_border">$table_border</A> = '' to disable ornamental borders
      when displaying database categories or items returned from a client search.
  <DT>&nbsp;
  <DT>Set <A HREF="#modify_table_border">$modify_table_border</A> = '' to disable
      ornamental borders when displaying the client's shopping cart contents.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#FontControlVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="count_bkg_clr"></A><PRE><B>$count_bkg_clr = '#000000'; </B>Black
<B>$count_fnt_clr = '#00FF00'; </B>Green</PRE>
  <DT>$count_bkg_clr and $count_fnt_clr are the background color and font color used to
      display the access counter on the store's front page.
  <DT>&nbsp;
  <DT>&lt;FONT FACE&gt; of the <A HREF="#counter_label">$counter_label</a> and the access
     count value printed from <A HREF="#count_file">$count_file</A> uses
     <I><A HREF="ws_global.setup.html#data_font" TARGET="_blank">$data_face</A></I>, defined in
     <I><A HREF="../ws_global.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">ws_global.setup</A></I>.
  <DT>&nbsp;
  <DT>Setting $count_bkg_clr = '' disables $count_bkg_clr.
  <DT>Setting $count_fnt_clr = '' disables $count_fnt_clr.
  <DT>Colors default to &lt;BODY BGCOLOR or BACKGROUND&gt; and &lt;BODY TEXT&gt; attributes.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#FontControlVars"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Display Additional HTML -->
  <DT>&nbsp;
  <DT><A NAME="DisplayHTML"></A><CENTER><B><FONT SIZE=4>Display Additional HTML</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="include_files"></A><PRE><B>@include_files = (

  'include.Page_Header.txt',
  'include.Page_Trailer.txt',

); <FONT COLOR="#008080"># DO NOT REMOVE - terminates @include_files</FONT></B></PRE>
  <DT>@include_files is a list of files to be inserted into parsed HTML documents.
      Files which may be included are JavaScripts, CSS files, HTML formatted text,
      etc.
  <DT>&nbsp;
  <DT>The contents of the files listed in @include_files are substituted into
      HTML pages by adding hidden text tags using the file's name:
  <DD><PRE>&lt;!--include=include.Page_Header.txt--&gt;</PRE>
  <DT>Whitespace is not allowed in include hidden text tags.
      <I>WebStore</I> ignores hidden text tags which contain whitespace.
  <DT>&nbsp;
  <DT>Hidden text tags are replaced with the associated file's contents.
  <DT>cart_id= substitution occurs on the contents of substituted files.
  <DT>&nbsp;
  <DT>Files listed in @include_files must be located under <I>WebStore's</I>
      /Html sub-directory or any sub-directory you may create under /Html.
  <DT>&nbsp;
  <DT>When files are placed under sub-directories, the sub-directory must be listed
      in the hidden text tag:
  <DD><PRE>&lt;!--include=subdir/include.Page_Header.txt--&gt;</PRE>
  <DT>When a file does not exist under the /Html directory, <I>WebStore</I> writes a
      <TT>FILE NOT FOUND</TT> message in the file's associated hidden text tag:
  <DD><PRE>&lt;!-- FILE NOT FOUND:  include.Page_Header.txt --&gt;</PRE>
  <DT><I>WebStore</I> disables SSI tags detected in HTML documents.
  <DT>&nbsp;
  <DT>Setting @include_files = () disables file includes.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Display"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="print_text_file"></A><PRE><B>&amp;print_text_file('<FONT COLOR="#0000CD">filename.txt</FONT>');</B></PRE>
  <DT>Adding the command above to any of the subroutines below will access
      <NOBR>sub print_text_file</NOBR> in <I>WebStore</I>.
  <DT>&nbsp;
  <DT><I>WebStore</I> will print the contents of <FONT COLOR="#0000CD">filename.txt</FONT>,
      performing <I><A HREF="query_string.html#cart_id" TARGET="_blank">cart_id=</A></I>
      substitution on the file's contents.
  <DT>&nbsp;
  <DT>Place text files in the /Html sub-directory.
  <DT>&nbsp;
  <DT>Do not include opening or closing &lt;HTML&gt;, &lt;TITLE&gt;, or &lt;BODY&gt; tags in
      text files printed using sub print_text_file.
  <DT>&nbsp;
  <DT><I>WebStore</I> adds <I>.txt</I> to  the <FONT COLOR="#0000CD">filename</FONT>
      listed in  &amp;print_text_file('<FONT COLOR="#0000CD">filename</FONT>');
      if the <FONT COLOR="#0000CD">filename</FONT> does not end in <I>.txt</I>.
  <DT>&nbsp;
  <DT>If <FONT COLOR="#0000CD">filename.txt</FONT> does not exist in the /Html sub-directory,
      <I>WebStore</I> prints the following hidden text to the document printed to the
      web browser:
  <DD><PRE>&lt;!-- FILE NOT FOUND:  <FONT COLOR="#0000CD">filename.txt</FONT> --&gt;</PRE>
  <DT>&nbsp;


  <DT><A NAME="frontpage_trailer"></A><PRE><B>$frontpage_trailer = '1';</B></PRE>
  <DT>If $frontpage_trailer = 1, append the store's front page defined in
      <A HREF="#frontpage_file">$frontpage_file</A> with the contents of
      <NOBR><A HREF="#sub_frontpage_trailer_html">sub frontpage_trailer_html</A></NOBR>
      after form input buttons.
      Design the HTML code, copy and paste it below the <FONT COLOR="#DC143C">PRINTED FROM</FONT>
      hidden comment line in <NOBR>sub frontpage_trailer_html</NOBR>.
  <DT>&nbsp;
  <DT>Setting $frontpage_trailer = '' disables access to <NOBR>sub frontpage_trailer_html</NOBR>.
      Nothing is printed to the bottom of the store's front page.
  <DT>&nbsp;
  <DT>sub frontpage_trailer_html is a Perl subroutine which allows you to program
      the printed output to the bottom of the store's front page.

  <DT><A NAME="sub_frontpage_trailer_html"></A><PRE><B><FONT COLOR="#0000CD">sub</FONT> frontpage_trailer_html {</B>

      <FONT COLOR="#0000CD">print</FONT> qq!

<FONT COLOR="#DC143C">&lt;\!-- PRINTED FROM:  sub frontpage_trailer_html in $store --&gt;</FONT>

!; <FONT COLOR="#008080"># DO NOT REMOVE - terminates "print qq!" command above.</FONT>

      <FONT COLOR="#008080"># Print the contents of /Html/shipping.txt</FONT>
      <A HREF="#print_text_file">&amp;print_text_file</A>('shipping.txt');

<B>}<FONT COLOR="#008080"> # DO NOT REMOVE - End of sub frontpage_trailer_html</FONT></B></PRE>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Display"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="pre_category"></A><PRE><B>$pre_category = '1';</B></PRE>
  <DT>If $pre_category = 1, preface database category displays and search result pages with
      the contents of <NOBR><A HREF="#sub_pre_category_html">sub pre_category_html</A></NOBR>.
      Design the HTML code, copy and paste it below the <FONT COLOR="#DC143C">PRINTED FROM</FONT>
      hidden comment line in <NOBR>sub pre_category_html</NOBR>.
  <DT>&nbsp;
  <DT>If $pre_category = 2, convert the name of the current database category
      being displayed by the client to a header text filename.
  <DT>&nbsp;
  <DT><I>WebStore</I> replaces spaces in the database category name with _ (underscores)
      to construct the header text filename.
  <DD><PRE>EXAMPLE category name:         Category Name
Header text filename:    C-HDR.Category_Name.txt</PRE>

  <DT>If the header text file exists in the Html sub-directory, <I>WebStore</I> will
      print the contents of the file to the client's web browser immediately after
      executing <NOBR>sub pre_category_html</NOBR>.
  <DD><PRE>Default header text filename:   C-HDR.DEFAULT.txt</PRE>
      If a header text file does not exist for a database category name,
      <I>WebStore</I> will print the contents of the default header text file,
      C-HDR.DEFAULT.txt, if it exists.
  <DT>&nbsp;
  <DT><I>WebStore</I> performs query string substitution for occurrences of cart_id=
      detected in the header text file before printing the contents of the file
      to the client's web browser.
  <DT>&nbsp;
  <DT>Do not include opening or closing &lt;HTML&gt;, &lt;TITLE&gt;, or &lt;BODY&gt; tags
      in category header text files.
  <DT>&nbsp;
  <DT>Setting $pre_category = '' disables access to <NOBR>sub pre_category_html</NOBR>
      and disables printing of category header text files to the top of database category
      displays and search result pages.
      Nothing is printed at the top of database category displays.
  <DT>&nbsp;
  <DT>sub pre_category_html is a Perl subroutine which allows you to program
      the printed output to the top of database category displays.

  <DT><A NAME="sub_pre_category_html"></A><PRE><B><FONT COLOR="#0000CD">sub</FONT> pre_category_html {</B>

      <FONT COLOR="#0000CD">print</FONT> qq!

<FONT COLOR="#DC143C">&lt;\!-- PRINTED FROM:  sub pre_category_html in $store --&gt;</FONT>

!; <FONT COLOR="#008080"># DO NOT REMOVE - terminates "print qq!" command above.</FONT>

<B>}<FONT COLOR="#008080"> # DO NOT REMOVE - End of sub pre_category_html</FONT></B></PRE>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Display"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="category_trailer"></A><PRE><B>$category_trailer = '1';</B></PRE>
  <DT>If $category_trailer = 1, append database category displays and search result pages
      with the contents of
      <NOBR><A HREF="#sub_category_trailer_html">sub category_trailer_html</A></NOBR>.
      Design the HTML code, copy and paste it below the <FONT COLOR="#DC143C">PRINTED FROM</FONT>
      hidden comment line in <NOBR>sub category_trailer_html</NOBR>.

  <DT>If $category_trailer = 2, convert the name of the current database category
      being displayed by the client to a trailer text filename.
  <DT>&nbsp;
  <DT><I>WebStore</I> replaces spaces in the database category name with _ (underscores)
      to construct the trailer text filename.
  <DD><PRE>EXAMPLE category name:         Category Name
Header text filename:    C-TRL.Category_Name.txt</PRE>

  <DT>If the trailer text file exists in the Html sub-directory, <I>WebStore</I> will
      print the contents of the file to the client's web browser immediately after
      executing <NOBR>sub category_trailer_html</NOBR>.
  <DD><PRE>Default trailer text filename:   C-TRL.DEFAULT.txt</PRE>
      If a trailer text file does not exist for a database category name,
      <I>WebStore</I> will print the contents of the default trailer text file,
      C-TRL.DEFAULT.txt, if it exists.
  <DT>&nbsp;
  <DT><I>WebStore</I> performs query string substitution for occurrences of cart_id=
      detected in the trailer text file before printing the contents of the file
      to the client's web browser.
  <DT>&nbsp;
  <DT>Do not include opening or closing &lt;HTML&gt;, &lt;TITLE&gt;, or &lt;BODY&gt; tags
      in category trailer text files.
  <DT>&nbsp;
  <DT>Setting $category_trailer = '' disables access to <NOBR>sub category_trailer_html</NOBR>
      and disables printing of category trailer text files to the bottom of database category
      displays and search result pages.
      Nothing is printed at the bottom of database category displays.
  <DT>&nbsp;
  <DT>sub category_trailer_html is a Perl subroutine which allows you to program the
      printed output to the bottom of database category displays and search result pages.

  <DT><A NAME="sub_category_trailer_html"></A><PRE><B><FONT COLOR="#0000CD">sub</FONT> category_trailer_html {</B>

      <FONT COLOR="#0000CD">print</FONT> qq!

<FONT COLOR="#DC143C">&lt;\!-- PRINTED FROM:  sub category_trailer_html in $store --&gt;</FONT>

!; <FONT COLOR="#008080"># DO NOT REMOVE - terminates "print qq!" command above.</FONT>

<B>}<FONT COLOR="#008080"> # DO NOT REMOVE - End of sub category_trailer_html</FONT></B></PRE>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Display"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="pre_view_modify"></A><PRE><B>$pre_view_modify = '2';</B></PRE>
  <DT>If $pre_view_modify = 1 or 2, preface shopping cart <I>View/Modify</I> displays with the
      contents of <NOBR><A HREF="#sub_pre_view_modify_html">sub pre_view_modify_html</A></NOBR>.
      Design the HTML code, copy and paste it below the <FONT COLOR="#DC143C">PRINTED FROM</FONT>
      hidden comment line in <NOBR>sub pre_view_modify_html</NOBR>.
  <DT>&nbsp;
  <DT>&nbsp;
  <DT>If $pre_view_modify = 2, access <NOBR>sub pre_view_modify_html</NOBR> from any
      form file in <I>WebStore</I>. The contents of <NOBR>sub pre_view_modify_html</NOBR>
      will print directly below any printed output from the form file's corresponding
      subroutine.
  <DT>&nbsp;
  <DT>sub pre_client_form_html in client access form files and <NOBR>sub pre_form_html</NOBR>
      in order form and secondary form files contain the following command at the
      bottom of the subroutine:
  <DD><PRE>&pre_view_modify_html if $pre_view_modify eq '2';</PRE>
  <DT>This line of code may be removed or commented in form files you do not want
      accessing <NOBR>sub pre_view_modify_html</NOBR>.
  <DT>&nbsp;
  <DT>Images must be placed in the /Graphics sub-directory and must be referenced
      using $graphics_url. <I>WebStore</I> sets the value of $graphics_url based on
      the use of SSL for the store's order form setup file.
  <DD><PRE>&lt;IMG SRC=&quot;$graphics_url/image.gif&quot; BORDER=0 WIDTH=325 HEIGHT=40&gt;</PRE>
  <DT>&nbsp;

  <DT>Setting $pre_view_modify = '' disables access to <NOBR>sub pre_view_modify_html</NOBR>.
      Nothing is printed at the top of shopping cart content displays or the top
      of <I>WebStore</I> forms from <NOBR>sub pre_view_modify_html</NOBR>.
  <DT>&nbsp;
  <DT>sub pre_view_modify_html is a Perl subroutine which allows you to program
      the printed output to the top of shopping cart content displays.

  <DT><A NAME="sub_pre_view_modify_html"></A><PRE><B><FONT COLOR="#0000CD">sub</FONT> pre_view_modify_html {</B>

      <FONT COLOR="#0000CD">print</FONT> qq!

<FONT COLOR="#DC143C">&lt;\!-- PRINTED FROM:  sub pre_view_modify_html in $store --&gt;</FONT>

!; <FONT COLOR="#008080"># DO NOT REMOVE - terminates "print qq!" command above.</FONT>

<B>}<FONT COLOR="#008080"> # DO NOT REMOVE - End of sub pre_view_modify_html</FONT></B></PRE>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#Display"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



<!-- Search Engine -->
  <DT>&nbsp;
  <DT><A NAME="Search"></A><CENTER><B><FONT SIZE=4>Search Engine</FONT></B></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;
  <DT><A NAME="search_engine"></A><PRE><B>$search_engine = '1';</B></PRE>
  <DT><TABLE BORDER=0 WIDTH="100%" CELLPADDING=0 CELLSPACING=2>
      <TR><TH VALIGN=top>0</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Search form output is disabled. Substitution of no_search=Y into
              <I>WebStore</I> query strings is disabled.</TD></TR>

      <TR><TD COLSPAN=3>&nbsp;</TD></TR>
      <TR><TH VALIGN=top>1</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Print search form at the bottom of the store's front page, category front
              pages, and expanded item information pages.</TD></TR>
      <TR><TD COLSPAN=3 HEIGHT=7></TD></TR>
      <TR><TD>&nbsp;</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>When no_search=Y exists in a <I>WebStore</I> query string on an HTML page,
              do not print the search form to the HTML page defined in category= of the
              query string.</TD></TR>
      <TR><TD COLSPAN=3 HEIGHT=7></TD></TR>
      <TR><TD>&nbsp;</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>The search engine form is always printed to the store's front page.</TD></TR>

      <TR><TD COLSPAN=3>&nbsp;</TD></TR>
      <TR><TH VALIGN=top>2</TH>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Print search form at the bottom of the store's front page.  Substitute
              the name=value pair no_search=Y into <I>WebStore</I> query strings found
              in all HTML documents and <I>WebStore</I> query strings found in fields
              in the item database, outlet.data.</TD></TR>
      <TR><TD COLSPAN=3 HEIGHT=7></TD></TR>
      <TR><TD>&nbsp;</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>When no_search=Y exists in a <I>WebStore</I> query string on an HTML page or
              in a query string in the item database, do not print the search form to the
              HTML page defined in category= of the query string.  When the client clicks
              an anchor containing no_search=Y, search form printing remains prohibited
              until the client performs a search.</TD></TR>
      <TR><TD COLSPAN=3 HEIGHT=7></TD></TR>
      <TR><TD>&nbsp;</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>When the client performs a search, substitution of no_search=Y into
              <I>WebStore</I> query strings is temporarily disabled.  The search
              form is printed to all HTML pages until the client clicks an anchor
              containing no_search=Y.</TD></TR>

      <TR><TD COLSPAN=3 HEIGHT=7></TD></TR>
      <TR><TD>&nbsp;</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>Placing no_search= (with no value) in a <I>WebStore</I> query string
              prevents <I>WebStore</I> from substituting no_search=Y into the query
              string. When the client clicks an anchor containing no_search=, the
              search form is printed to the HTML page defined in category= of the
              query string and no_search=Y is not substituted into query strings
              present on
              the HTML page.</TD></TR>
      <TR><TD COLSPAN=3 HEIGHT=7></TD></TR>
      <TR><TD>&nbsp;</TD>
          <TD>&nbsp;&nbsp;</TD>
          <TD>The search engine form is always printed to the store's front page.</TD></TR>
      </TABLE>



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#SearchEngine"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="search_tips"></A><PRE><B>$search_tips = 'SearchTips.html';</B></PRE>
  <DT>&nbsp;
  <DT>$search_tips is the search engine help file.  When $search_tips
      is equal to 'SearchTips.html', this file must be present in the /Html
      sub-directory or <I>WebStore</I> will generate an <I><A HREF="error_msgs.html#soft_HFnF" TARGET="_blank">HTML File not Found</A></I> message.
  <DT>&nbsp;
  <DT>Setting $search_tips = '';
      disables printing the search tips URL on the search engine form located on the store's
      front page.  Access to the search engine help file is disabled.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#SearchEngine"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="categories_desc"></A><PRE><B>$categories_desc = 'Search all Categories';</B></PRE>
  <DT>$categories_desc is the default text printed as the &lt;OPTION VALUE SELECTED&gt;
      for the drop down list element of database categories on the search engine form.
      Categories are listed in <A HREF="#categories">@categories</A>.



  <DT>&nbsp;
  <DT>&nbsp;
  <DT><CENTER><A HREF="#SearchEngine"><FONT SIZE=2>Index</FONT><HR WIDTH="85%" NOSHADE SIZE=1></A></CENTER>
  <DT>&nbsp;



  <DT><A NAME="categories"></A><PRE><B>@categories = (

  'Outer Wear',
  'Shirts',
  'Sweaters',

   <FONT COLOR="#008080"># The following line must be on a line by itself</FONT>
); <FONT COLOR="#008080"># DO NOT REMOVE OR MODIFY THIS LINE - terminates @categories</FONT></B></PRE>
  <DT>@categories array lists all categories in the store database, outlet.data, and is
      used to construct the drop down list element on the search form.
  <DT>&nbsp;
  <DT><I>WS Editor</I> may be configured to update @categories using any of it's <I>Group</I>
      or <I>Sort</I> functions.  Refer to
      <I><A HREF="outlet_editor.setup.html#store_files" TARGET="_blank">@store_files</A></I> in
      <I><A HREF="../Databases/outlet_editor.setup" TARGET="w1" onClick="window.open('','w1','width=640,height=480,scrollbars,resizable,top=0,left=0')">outlet_editor.setup</A></I>,
      the <I>WS Editor</I> setup file which maintains the database defined in
      <A HREF="#data_file">$data_file</A>.
      <I>WS Editor</I> is configured to update @categories in the <I>WebStore</I> distributions.
  <DT>&nbsp;
  <DT>Prohibit the search of any category by omitting it from @categories.


  <DT>&nbsp;
  <DT>&nbsp;
  <DT><PRE><B>1; <FONT COLOR="#008080"># DO NOT REMOVE IN outlet.setup

# End of file</FONT></B></PRE>


  <DT>&nbsp;
  <DT><CENTER><FONT SIZE=2><A HREF="#GenSet">Index</A> | <A HREF="#top">Top of Page</A></FONT><HR WIDTH="85%" NOSHADE SIZE=1></CENTER>
  <DT>&nbsp;
  <DT>&nbsp;


<SCRIPT LANGUAGE="JavaScript" src="js.page_trailer.js"></SCRIPT>
</DL>


 

</BODY>
</HTML>
