============================================================================
TheVotingBooth - By Mike Dissinger - Version 1.6d
Copyright July 1996
============================================================================

Added the ability for TVB to create a Log On Bulletin of a votes results
when a topic is deleted and the results are written to PASTVOTES.TXT
file.

The program that is writting the Log On Bulletin (Via TheVotingBooth)
is included in this archive.  Its is...

                               POSTBUL 1.0
                               ------------
                                    by
                               Ron Reynolds

                       Copyright © 1993 Ron Reynolds
                           Freely Distributable
                             FIDO 1:153/957.0
                     InterNet Ron_Reynolds@amsbbs.bc.ca

It is a very nice program to allow you to write Log On Bulletins via
CLI.   Thanks to Ron!

The POSTBUL program must also reside in the Doors:VBooth directory!

If you are just updating from a prior version... just copy TheVotingBooth
to your "DOORS:VBOOTH" directory.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Also added the following... (DOUBT IF YOU WILL USE IT, BUT ITS AVAILABLE)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IF you wanted to run TWO different TheVotingBooths (Like if you wanted one
for XX privledged members, and another for xx privledged members) Then by
adding a PATH sub-directory name at the end of the DLG command line..
it will keep all of the results there.  This PATH sub-directory must
be somewhere in the DOORS: directory and YOU will have to create it.

If you are setting up TVB for the first time and plan on using this
function... then you must STILL do the first time installation as stated
further on, as it will still run TVB *from* the DOORS:VBOOTH directory,
which is hard coded.

I.E. IF you decided to call this new directory 'VotingBoothTwo'
(actually would be "DOORS:VotingBoothTwo) then the DLG command line would
look like...

doors:vbooth/TheVotingBooth %uname %ansi %level %port VotingBoothTwo
                                                      --------------
DO NOT include the FULL PATH to it!  TVB will assume that it *IS* ALREADY
IN THE "DOORS:" directory somewhere!
Be sure to copy and or change ALL of the CFG.xxx files there also!

If you DO NOT WANT TO USE TVB multiple times.. then DO NOT
include a PATH at the end of the DLG command line!

* This is FreeWare/ShareWare
* For DLG Pro BBS

There are other voting booth programs out there for DLG, but none did what
I wanted them to do!  So I wrote my own in Arexx and compiled it with
RexxPlus.  (RexxPlus Library included in this archive)

**FEATURES**

 * Will write a message to a specified message area when a NEW vote
   topic is created telling about the newly created topic.
 * When a Vote Topic is deleted.. it can/will write a message to a
   specified message area giving all the Vote Topic results.
 * Added the ability for TVB to create a Log On Bulletin of a votes results
   when a topic is deleted and the results are written to PASTVOTES.TXT
   file.
 * Can optionally keep a log of who does what.
 * Can hold up to 16 different vote topics.
 * Can hold up to 16 vote topic answers per topic.
 * Will allow any user to add an answer to a topic if there are less then
   16 answers and if the creator of the vote topic will allow it.
 * When a new vote topic is created.. the creator is given the options to
   enter all answers themselves, which would not allow anyone else to
   add an answer to the vote topic.
 * Sysop access to TheVotingBooth is determined by the members name.  This
   is OPTIONAL.
 * Sysop's have access to remove vote topic, edit vote topic (and all of
   its fields), delete one or more answers from a topic (not just edit it)
   and optionally append vote results, to a viewable file from the main
   main menu, when a vote topic is deleted.
 * When a QUESTION topic is DELETED by the SysOp (Or anyone else who has
   access to the SysOp menu) you are given the option to write all of the
   vote topics QUESTION, TIME FRAME, ANSWERS, PERCENTAGES OF VOTES etc. etc.
   to a file called [PastVotes.Txt] (Hard Coded Name) and with DLG's Color
   switches (%a4 etc.), which then CAN be read from within the program
   by using the 'P' Function on the main menu.  This would allow users
   to read OLD vote results.  It is up to you when you want to edit this
   file down in size (if it grows huge!).
 * Allows you to create your own text file (or ANSI) that will be shown
   to all users when they run the program (OPTIONAL).

For a fast set up of TheVotingBooth... see the line in this doc starting
with '----- FAST SET UP'.

There are 4 configuration types of files involved with TheVotingBooth..
they are;

CFG.INFOSCREEN
CFG.MESSAGE
CFG.SYSOP
CFG.USERACTIVITY

IN ALL CASES...
* IF * THE FILE EXISTS THE FUNCTION BECOMES ACTIVE.
* IF * THE FILE DOES NOT EXIST THE FUNCTION BECOMES INACTIVE.

And when I say exists.. I mean the files IN the DOORS:VBOOTH sub directory.

Ok.. to explain these 4 files...

----- CFG.INFOSCREEN
* If * this file exist TheVotingBooth will read the CFG.INFOSCREEN file
and will display whatever is in it to the user when they run the program.
You could put whatever you want into it... some rules, some advice,
some something.  The one included with this archive is an ANSI type of
screen text.

----- CFG.MESSAGE
* IF * this file exists TheVotingBooth will read the CFG.MESSAGE file
and will use whatever is in it as text to write a message to your system
stating that someone has created a new vote topic.  It must be a plain
old TEXT file.  If the CFG.MESSAGE file does not exist.. a message will
NOT be created.

THE FIRST LINE OF THIS TEXT MUST CONTAIN A VALID MESSAGE AREA # THAT YOU
WANT THE MESSAGE TO BE WRITTEN TO!

The rest of the file can be anything you want to say in the message.

IF you have {NAME} in this file anywhere it will use the actual creators
name in place of {NAME}.

IF you have {QUESTION} in this file it will use the actual question
in place of {QUESTION}.

The {NAME} and {QUESTION} MUST be in upper case!!!!!

See the example CFG.MESSAGE file for a better understanding.

----- CFG.SYSOP
* IF * this file exists TheVotingBooth will use whatever NAMES it finds
in it and give those people access to the "S) Sysop Functions" menu.
So if you wanted John Smith to have sysop access.. just put his name into
the file.  (NO underscores are required to separate first name from the
last name and case is un-important).  Members with an access level of 255
will automatically have sysop access regardless if their name exists in
the file or not.

----- CFG.USERACTIVITY
* IF * this file exists TheVotingBooth will keep track of who does what
and when.  It will be written to a file called 'USERACTIVITY.TXT'
(Hard coded name).  You can have anything *IN* this file, as all
TheVotingBooth is looking to see IF the FILE EXISTS OR NOT.. it won't
actualy read the file nor will it use whats in it.

TheVotingBooth does NOT monitor this file in anyway... so check it
occasionally (Size Wise) and either delete it or edit down its size if
it becomes too big.

The resultant file [USERACTIVITY.TXT] file can be viewed from the sysop's
menu only - via "4) View User Activity".

Here is an example of what it could look like...

ADAM DYE --> 09 Mar 1994 At 16:01:08
         --> Voted On Topic # 13
         --> Voted On Topic # 14
         --> Voted On Topic # 15
         --> Added Answer # 5 To Topic # 16
         --> Voted On Topic # 16

LA MAR STAHL --> 09 Mar 1994 At 21:38:06
             --> Added Answer # 8 To Topic # 9
             --> Voted On Topic # 9
             --> Added Answer # 8 To Topic # 10
             --> Voted On Topic # 10
             --> Added Answer # 8 To Topic # 11
             --> Voted On Topic # 11
             --> Voted On Topic # 12
             --> Voted On Topic # 13
             --> Voted On Topic # 14
             --> Voted On Topic # 15
             --> Added Answer # 6 To Topic # 16
             --> Voted On Topic # 16

==========================================================================

----- MAIN MENU
The Main Menu has the following functions on it..

R) Read Voting Topics Results (You Must FIRST Vote)
V) Vote On A Question Vote Topic
P) View Previous [OLDER] Vote Results
C) Create/Add A New Question Vote Topic
H) Help/Information About The Voting Booth
E) Exit Voting Booth
S) SysOp Functions

These are pretty self explanatory.. however.. the "C" will only
show IF there are less then the maximum number (16) of vote topics available.
Likewise the "S" will only show IF the user has sysop access.

The "P" function (Which will read the [PastVotes.Txt] file.
The [PastVote.Txt] file would look something like this.....

%a2-----------------------------------------------------------------
%a7Past Voting Results
%a3For Question Topic...
%a3Is CBS doing a good job with the Olympics?  why, why not?
%a1Question Time Frame Was From:22 Feb 1994 To 15 Mar 1994
%a6Created By:ADAM DYE
%a2-----------------------------------------------------------------
%a243.3%%a3 - No way!  should have fewer changes between events
%a223.3%%a3 - Yea, i guess they're ok..
%a2  10%%a3 - I haven't watched the Olympics yet
%a213.3%%a3 - Well, I like TNT'S coverage a lot better.
%a2  10%%a3 - No, they focused to much on tabloid coverage of skating.
%a7Total Votes:30
%a2-----------------------------------------------------------------

etc. etc.

Edit this file down if it becomes to large for you.
==========================================================================


----- SYSOP FUNCTIONS/MENU

1) Delete Particular TOPIC - With Option To Create [PastVotes.Txt] Text)
2) Edit Particular Topic
3) View Creator/Dated/Number Of Votes/Questions
4) View 'User Activity'
5) CHOP 'User Activity' Log
6) View 'ERROR' Log
7) Delete 'ERROR' Log

#1 Delete Particular TOPIC - With Option To Create [PastVotes.Txt] Text)

Will allow you to DELETE a particular topic number.  It will also
ASK IF you want to APPEND the vote topic results to the [PastVotes.Txt]
file, which would be viewable from the main menu (function 'P').  Nice
to be able to view OLD vote results.

New to release 1.5f - If you ARE appending vote topic results then you
will be asked IF you want to also create a Log On Bulletin with the
results of the topic.  Thanks To Ron Reynolds for his POSTBUL program
thats handeling this!

+-----------------------------------------------------------------------+
| >>>>>>>>>>>>>>>>>>>>>>>>>  BIG READ ME! <<<<<<<<<<<<<<<<<<<<<<<<<<<   |
|                                                                       |
| Be  sure  NOT  to  delete  a  question  topic  while  a  user  is in  |
| TheVotingBooth!!  Be sure not to be in a topic directory (via DOS)    |
| when deleting a question topic.                                       |
+-----------------------------------------------------------------------+


--------------------------------------------------------------------------
#2 Edit Particular Topic

Will allow you to edit a particular Topic and ALL its fields.  You are
also given the option to DELETED a particular ANSWER.. not just edit
it if you so desire.

+-----------------------------------------------------------------------+
| >>>>>>>>>>>>>>>>>>>>>>>>>  BIG READ ME! <<<<<<<<<<<<<<<<<<<<<<<<<<<   |
|                                                                       |
| Be  sure  NOT  to  edit  a  question  topic  while  a  user  is in    |
| TheVotingBooth!!                                                      |
|                                                                       |
+-----------------------------------------------------------------------+

--------------------------------------------------------------------------
#3 View Creator/Dated/Number Of Votes Made/Questions

This function will show two screen worth of topic information.  It can be
toggled by hitting RETURN.  This function can be used to see what topics
are worth while to keep and which are not really having any activity.
Use "E" to exit it.

--------------------------------------------------------------------------
#4 View 'User Activity'

This will use DLG's [DLG:DF] program to view the [UserActivity.txt] file
IF you have it active.  I.E. the file CFG.USERACTIVITY must exist.
If CFG.USERACTIVITY file does NOT exist the '4' will not show.

--------------------------------------------------------------------------
#5 Chop 'User Activity' file

This function will count the number of lines in the USERACTIVITY.TXT file.
You enter the number of lines you want to chop the file down to.
TheVotingBooth will not monitor the USERACTIVITY.TXT file in any way other
than this function 5.  When it starts chopping the file.. it will not start
in the middle of a session.. but will increment your line count downwards
till it finds the first complete session.  Here again... the
CFG.USERACTIVITY must exist for this function to be active.

---------------------------------------------------------------------------
#6 View 'ERROR' Log  (File: TVB.ERRORS)

Simply... this will show a list of any errors that have taken place.

---------------------------------------------------------------------------
#7 Delete 'ERROR' Log  (File: TVB.ERRORS)

Simply... this will delete (if it exists) the error log.

=========================================================================
Ok... The Set Up
=========================================================================

'TheVotingBooth' program MUST be put in [DOORS:VBooth] directory.  So you
will have to create a directory called 'VBooth' in your DOORS: directory.
Copy 'TheVotingBooth' and all the [CFG.xxx] files there also.

The main program is called 'THEVOTINGBOOTH'

The DLG menu call should look like this.......

[ 1] Letter:                V
[ 2] Executable:            DOORS:VBooth/TheVotingBooth %uname %ansi %level %port
[ 4] Description:           The Voting Booth
[ 5] Type:                  Executable
[ 6] Help File:             VOTE/V
[ 7] Lower level:           1
[ 8] Upper level:           255
[ 9] Hidden:                NO
[10] Load type:             OVERLAY  <------- IMPORTANT SETTING!
[11] Ask user if sure:      NO
[12] Pend messages:         YES
[13] Cli mode:              YES      <------- IMPORTANT SETTING!
[14] Pause on completion:   NO
[15] Log value:             None
[16] Activity string:       Is In The Voting Booth
[17] Priority:              DEFAULT
[18] Edit help file

----- FAST SET UP
==========================================================================
For a fast set up ................
Use the above DLG menu example on your system.

The only thing you HAVE to edit is the file CFG.MESSAGE.  You must put
a valid message NUMBER on the first line of the file and it must be at
the left most column.. This indicates what message area number you want
the messages to be written to.  Currently the example file is set for
message area number 1.

Copy the REXXPLSLIB.LIBRARY file to your SYS:LIBS directory, as this
Arexx program was compiled with RexxPlus and this library is required.

Copy the C: files to your SYS:C directory.

Make a directory in DOORS: called VBOOTH.  Copy all remaining files, from
this archive, there.   That should do it.

==========================================================================

When the program is run it will check to see if 16 different sub directories
(In DOORS:VBooth) exist.  If they do not.. they will be created.
The names of these sub directories will be..

TOPIC-1
TOPIC-2
TOPIC-3
TOPIC-4
TOPIC-5
TOPIC-6
TOPIC-7
TOPIC-8
TOPIC-9
TOPIC-10
TOPIC-11
TOPIC-12
TOPIC-13
TOPIC-14
TOPIC-15
TOPIC-16

FYI - These sub directories WILL BE created EVERY TIME the program is run
IF they do not exits and will likewise be re-created if a QUESTION TOPIC
has been deleted by the SysOp.  (Or anyone who has access to the SysOp
menu) and will become empty.

The TOPIC-X sub directories will hold the QUESTION, the ANSWERS (which will
be numbers (Numbered 1 to a possible 16), The VOTERESULTS and any members
NAME who HAS voted on the particular TOPIC-X.  The sub directory will also
contain a file which will be called the first 30 characters of the Question
Topic.  Did this just so if you looked at the sub directory from DOS you
could quickly see what the question topic was about for that topic sub
directory.

---------------------------------------------------------------------------
Within TheVotingBooth there is a routine that will check for dropped
carrier or if a user runs out of time while in TheVotingBooth.  If either
happens.. TheVotingBooth will exit, but be advised.. under certain
conditions.. it MAY take a couple of minutes to figure out that the
carrier is gone and terminal itself and the port, but not usually.

Well... thats about it.. Now I have to say this, but I don't see any
reason the program would cause any problems with your system.... but...
===========================================================================
There is no warranty for the program, to the extend permitted by applicable
law.  Except when otherwise stated in writing the copyright holder and/or
other parties provide the program "as is" without warranty of any kind,
either expressed or implied, including, but not limited to, the implied
warranties of merchantability  and fitness for a particular purpose.  The
entire risk as to the quality and performance of the program is with you.
Should the program prove defective, you assume the cost of all necessary
servicing, repair, or correction.
===========================================================================

Any suggestions.. bugs please let me know.  I can be reached on The Tusk
BBS.  (Lancaster, Pennsylvania) (717-560-1750) or (717-560-8714)

If there are updates... they will be there first.

Or leave me email on the net at "tuskie@cris.com".

Hope you like it!

If you would LIKE to send me some $$ for this version..  :) please please!

Send to    Mike Dissinger
           2613 Sutton Place Apt #2
           Lancaster, Pennsylvania 17601

Thankyou.. thankyou very much!  :)