To Do (for HYMNS v0.5: Elga's Maintainer Interface):
       - done tasks prefixed by * (star) -
       - >>>>  <<<< mark improvments for speed/ease-of-use: TBI in next version(s) -
    
    *	-check why stat.pl won't be read in; reformat it as hymnsu.pl; > UNIX rights;
    	-find out a way to get to the www.aubg.edu logs; >Ani? Ivo?
    *	-error routine: takes string and outputs; "Sorry: string... Go back"; > in custom.pl
    *	-routine to check the existence of a directory; > -d perl operator;
    *	-routine to format a directory; > in hymnsm.pl;
    *	-routine to display pictures; > in hymnsm.pl;
    *	>>>>-utility to modify the gob separator;<<<<
    	>>>>-make Manager-oriented and Designer-oriented documentation (different presentation order -- and arguments);<<<<
    	>>>>-utility to import already-existing sites;<<<<
    *	>>>>-figure out a way to automatize #-type links; > in hymnsm&ver<<<<
    	>>>>-make the whole thing fool-proof (check ALL data entry, including syntax for template input and HTML (JavaScript?) for data and template input)<<<<
    	>>>>-think about binary file saving (make it an option or the norm?)<<<<
    	>>>>-beautify somehow the whole thing!<<<<
    	>>>>-for shareware delivery, garble the whole thing, place the common subs in the mains & remove the comments; then take out the \ns :)<<<<
    
    $gtf is the Query string
    single letters (f,d,...) are $Form{'letter'}
    
    „maintainer's page	<maint.shtml>
    *	- link to file manager
    *	- link to scheduler
    	>>>>-add/delete version; additions should be paralelled in trash<<<<
    	>>>>-view/empty trash (a little trash icon shown with the size of the data in it)<<<<
    *	-link to user statistics
    *	-link to site generation
    	>>>>-make controls for all the variables in the custom.pl<<<<
    
    „statistics makes:	<hymnsu.pl>
    *	-generates index page and reads data from log (plain)
    	>>>>-increments data on a one-page&user basis ($gtf='w=inc&f=<file>')<<<<
    	>>>>-should keep track of time... monthly?<<<<
    	>>>>-which pages open by what user?<<<<
    	>>>>-hits/day? IPs/day? hits/home vs hits/rest? hits/no.users?<<<<
    	>>>>  <<<<
    
    „manager makes:			<hymnsm.pl>
    *	-FM index page (default) -> (prev)(tbox)
    	-(prev frame) „innitial list of given directory ($gtf="lst<path>")
    	>>>>-figure out add and delete directory; they should be parallelled in trash and in every version<<<<
    *		-> a click on directory fills (main) with „manager(folder)
    *		-> select action („choose, „edit, „add, „delete) from pop-up menu (a)
    *		-> a click on a file fills (input) with chosen action
    *		-> file size gets displayed
    		-> if file is a directory or a UNIX link, it becomes a button to open it
    *		-> if file is a picture, it gets displayed
    *		-> if file is a template, its description gets displayed
    		-> if file is a document, its title gets displayed
    		>>>>-> add checkbox for "directories first"<<<<
    *	-(tbox frame) „innitial instructions to use the File Manager ($gtf="inst")
    	-(tbox frame) action ($gtf='in&<action>&<file name>')
    *		-> „choose: fills the 'choose' input field in (tbox) with the file name, abs to area root
    *		-> „edit: click on <file/name> link fills (_top) with the „editor index
    		-> „add: 
    		-> „delete: asks for filename to replace the deleted one in references
    		-> „reference: fills (tbox) with a list of all files pointing to the one you click
    		>>>>-> „duplicate: asks for filename; makes a new file with the same templates and data values<<<<
    	-(tbox frame) „delete reply ($gtf="delf<file name>")
    		-> click on update button fills (prev) with list of files which had links to the deleted one
    		>>>>-> checkbox for 'completely delete' (delete the file and any reference to it)<<<<
    		>>>>-> checkbox for 'deal with each file individually'<<<<
    		>>>>-> make sure the files replaced are not remote (warn the user in documentation (and in toolbox) "You'll have to modify/delete manually the links leading to the mirror site(s)")<<<<
    	-(tbox frame) „reference reply ($gtf="reff<file name>")
    	>>>>-figure out undelete options<<<<
    	>>>>  <<<<
    
    „generator does:		<hymnsg.pl>
    	-preview of page using files ($gtf='prev&<data file name>')
    	-preview of page using template form($gtf='pret&<data file name>')
    	-preview of page using data form($gtf='pred&<data file name>')
    	-preview of page using chunk form($gtf='prec&<data file name>')
    	>>>>-make temporary files and recover from them in case of crash<<<<
    	>>>>-filter out garbage (non-$hye files)<<<<
    	-one page, all versions ($gtf='bake<data file name>')
    		-> find all variables in a template
    	-all pages using one template/chunk ($gtf='bake<template file name>')
    	-recursively, whole area, all versions (default)
    	>>>>-think about mirroring (remote locations in @hymult?)<<<<
    	>>>>-routine to add version<<<<
    	>>>>-think about repeating layout element (r# <chunk/name>)<<<<
    
    „editor makes:			<hymnse.pl>
    	-„data index page ($gtf='ind') -> (templ)(prev)(tbox)
    	-„template index page ($gtf='indt') -> (templ)(prev)(tbox)
    	-(templ frame) „template edit page ($gtf='inst&<template file name>')
    		-> enter template in textarea
    		-> click on 'preview' button (s?) fills (prev) with „generator
    		>>>>-> if necessary, record sizes for textareas<<<<
    	-(templ frame) „list of data values ($gtf='inst&<data file name>')
    		-> edit the data in textareas
    		-> 'preview' buttons fill (prev frame) with „generator
    	-(tbox frame) „data toolbox ($gtf='tbx')
    		-> 'choose' input field gets data from „manager, „color composition
    		-> 'clip' textarea gets formated data from buttons below
    		-> click on 'get file' button fills (prev frame) with „manager
    		-> click on 'make link' button converts 'choose' to a link in 'clip'
    		-> click on 'make image' button converts 'choose' to a image in 'clip'
    		-> click on 'make chunk' button imports in 'clip' the template from 'choose'
    		-> click on 'get color' button fills (prev frame) with „color composition
    		-> click on 'preview' button fills (prev frame) with „generator
    		-> click on 'generate' button just calls „generator for 'one page'
    		-> click on 'edit template' button fills (_top) with „template index
    		-> click on 'cancel' button fills (_top) with „manager
    		>>>>-> load automatic hints<<<<
    	-(tbox frame) „template toolbox ($gtf='tbxt')
    		-> 'choose' input field gets data from „manager, „color composition
    		-> 'clip' textarea gets formated data from buttons below
    		-> click on 'get file' button fills (prev frame) with „manager
    		-> click on 'make link' button converts 'choose' to a link in 'clip'
    		-> click on 'make image' button converts 'choose' to a image in 'clip'
    		-> click on 'make chunk' button imports in 'clip' the template from 'choose'
    		-> click on 'get color' button fills (prev frame) with „color composition
    		-> click on 'edit template' button fills (templ) with „template edit on the file in 'choose'
    		-> click on 'preview' button fills (prev frame) with „generator for 'one page'
    		-> click on 'generate' button fills (prev frame) with „generator for 'one template'
    		-> click on 'cancel' button fills (_top) with „data index
    		>>>>-> load automatic hints<<<<
    		>>>>-> add HTML and JavaScript pop-up, take out make link, make image<<<<
    	-(prev frame) „color composition page ($gtf='cols<bg pict filename>')
    		-> takes the whole tag from 'clip' or background image from 'choose'
    		-> imagemap and/or RGB controlls
    		-> text, link, vlink, alink radio buttons to select where the color you choose should go
    		-> text, link, vlink, alink text fields to store a complete scheme
    		-> pick text color formats a <font> tag in 'clip'
    		-> font pop-up for most commonly-used fonts
    		-> pick color scheme formats a <body> tag in 'clip'
    		>>>>-> up/down buttons to slightly modify RGB values for the colors that are dynamically processed<<<<
    	>>>>  <<<<
    
    „todo makes:				<hymnsd.pl>
    	-TD index page ($gtf='ind') -> (prev)(tbox)
    	-(main frame) „to-do list ($gtf='do' or w='do' a=<item to add> d=<no. of item to delete> 
    																					c=<delete choice>)
    		-> a click on 'manager' link fills (_top) with index of „manager
    	-(input frame) „to-do options (w='in' a='do')
    		-> >>>>check 'add' box and<<<< type new item in (a)textarea
    		-> check 'delete' or 'done' (c) and choose from pop-up number of item to delete (d)
    		-> a click on 'do' button fills (main) with „to-do
    		>>>>-sort by date due, task<<<<
    		>>>>-purge list of done items<<<<
    		>>>>-view backup lists<<<<
    	>>>>  <<<<
    
    >>>>„mailer makes:			<hymnsa.pl><<<<
    	>>>>  <<<<
    
    >>>>„mudder makes:			<hymnsn.pl><<<<
    	>>>>  <<<<
    	
    >>>>„ip manager makes:	<mons.pl><<<<
    	>>>>  <<<<
    
    „chunks
    	>>>>-HTML mnemonics<<<<
    	>>>>-JavaScript mnemonics<<<<
    	-search:
    		>>>>->make it flexible and write its documentation<<<<
    		->input text filled with keywords
    		->boolean pop-up (AND,OR)
    		>>>>->sort by something... :)<<<<
    		>>>>->radio buttons: data only / data and context<<<<
    		>>>>->find a way (better parser? subsequent searches?) to allow for more complicate expressions like (and or)<<<<
    	>>>>  <<<<
    
    „data files:
    	(<> replaced with text, <#> replaced with number, [] is an optional element, []n optional repeating n times)
    	-statistics
    		->area (one line)
    			<FirstReadDate>:<TotalCorrectlyReadPages>:<TotalPages>:<LastReadDate>
    		->users (<#TotalUsers>)
    			<userIP>:<#total correct reads>\n
    		->pages (<#TotalCorrectPages>)
    			<filename>:<#total correct reads>\n
    	-to do 
    		-><full name>„„[<date recorded>:<date due>:<manager>:<importance[1-3]>:<user>:<task>:[d]:<item>„„]<#items>
    	-data
    		->>>>index of pages linked to this<<<<
    			plain \n list of pages, relative to the data root
    		->data file
    			<template name>„„[<data name>„„<value>„„]<#data fields>
    	-template
    		->>>>index of pages using this<<<< (<no. of pages> lines)
    			plain \n list of pages, relative to the template root
    		->template file
    			(<description>„„
    			 ([p[<related data>] <piece>„„] |
    				[d<variable name> [<default>]„„] |
    				[c<postfix> <chunk|template f-name>„„])<#layout pieces>
    			)
    
    „HYMNS Hints
    (<> are links to further explanations)
    
    - protect the hymns directory <against external access>
    - before composing colors, choose a background image with the file manager
    - Don't name any of your subareas as you name the version areas
    - Make sure that a template you use for a data file has the <html></html> in its extreme pieces
    - Make the first words of your template description one of {page layout,layout element,mnemonic piece}
    - Keep track of all variable names that you use in a template
    - Add a part of the name of the template to the name of each variable on that template (e.g. AdTel - the telephone number variable in the adress chunk)
    
    „assume that:
    	- browser used is Netscape v>=3.0.1 (a release, not a preview!)
    	- OS runs perl v>=5
    	- OS has commands named 'ls','cp','mv','rm' which behave like on UNIX
    	- ls -R <path> produces something like:
    		==========example==========
    		cc:/u/radu/cgi/hymns> ls -R /u/radu
    		cgi          p            public_html
    		
    		/u/radu/cgi:
    		hymns  tests
    		
    		/u/radu/cgi/hymns:
    		chsep.pl   hymnse.pl  hymnsm.pl  t.txt
    		custom.pl  hymnsg.pl  hymnsu.pl  tst.pl
    		
    		/u/radu/cgi/tests:
    		date.pl      date1.pl     date2.pl     date3.pl     dump-env.pl  fin
    		=======endof example=======
    	- ls -l <path> produces something like:
    		==========example==========
    		total 96
    		-rwxr-x--x   1 radu     staff        884 Jun  6 02:06 chsep.pl
    		-rwxr-x--x   1 radu     staff       2484 Jun  5 23:53 custom.pl
    		-rwxr-x--x   1 radu     staff       8843 Jun  4 03:01 hymnse.pl
    		-rwxr-x--x   1 radu     staff       2424 Jun  4 01:24 hymnsg.pl
    		-rwxr-x--x   1 radu     staff       6303 Jun  3 22:51 hymnsm.pl
    		-rwxr-x--x   1 radu     staff       4359 Jun  2 16:09 hymnsu.pl
    		=======endof example=======
    	- the only '.' in pathname to every file in the area is the one before the extension
    		(that is, no hidden files or directories!)
    	- in links there's no space after the " in <a href="/path"
    
    „Credits (in order of their direct or indirect contribution to HYMNS):
    	-Rich Beilock (for challenging me to create 'the best tool out there')
    	-the Mellon Foundation and the Pew Charitable Trust (for indirectly (but effectively :) providing the money that funded the development of this tool)
    	-Elga Nikolova (for a manager's requirements)
    	-Mark Stefanovich (for the use of his kool Macs, managerial guidance and 'focusing' my development efforts)
    	-Ani Milanova (for suggesting -- and even coding! -- enhancements, and constantly asking for simplification of the interface)
    	-the American University in Bulgaria (for server space -- and teaching me!!, and working environment, and many more)
    	-Mark Andersen and his Netscape team (for the most woderful information tool since the modern press)
    	-Larry Wall (for a kool P[er...]L)
    	-the University of Missouri (for their short'n effective course on perl)
    	-the BG-BIO team at AUBG (for extensive beta-testing)
    	-countless of web designers from whose work I learned