Index: /trunk/Ohana/doc/www/html/developer/libfits.htm
===================================================================
--- /trunk/Ohana/doc/www/html/developer/libfits.htm	(revision 4811)
+++ /trunk/Ohana/doc/www/html/developer/libfits.htm	(revision 4812)
@@ -3,3 +3,114 @@
 <meta name=page  content=libfits>
 
-Sorry!  The page you requested is not yet available.
+<h3> FITS-related constants </h3>
+
+<pre>
+# define FT_TEXT_LENGTH          18  /* max length text header field */
+# define FT_MAX_NAXES            10  /* max number of axes */
+# define FT_FIELD_LENGTH          8  /* max length header field */   
+# define FT_COMMENT_LENGTH       47  /* max length comment field */
+# define FT_HISTORY_LENGTH       72  /* max length history / comment */
+# define FT_LINE_LENGTH          80  /* FITS header line length */
+# define FT_RECORD_SIZE        2880  /* FITS block size */
+</pre>
+
+<h3> misc FITS library functions </h3>
+
+<pre>
+char *fits_version ();
+</pre>
+
+<h3> FITS Header Manipulation functions </h3>
+
+<pre>
+int    fits_init_header (Header *header);
+int    fits_create_header (Header *header); 
+int    fits_copy_header (Header *in, Header *out); 
+
+int    fits_read_header (char *filename, Header *header);
+int    fits_write_header (char *filename, Header *header); 
+int    fits_save_header (FILE *f, Header *header);
+int    fits_load_header (FILE *f, Header *header);
+int    fits_fread_header (FILE *f, Header *header);
+void   fits_free_header (Header *header); 
+int    fits_fwrite_header (FILE *f, Header *header); 
+int    fits_read_Xheader (char *filename, Header *header, int N);
+char  *fits_header_field (Header *header, char *field, int N); 
+
+int    fits_modify (Header *header, char *field, char *mode, int N,...); 
+int    fits_print (Header *header, char *field, char *mode, int N,...); 
+int    fits_scan (Header *header, char *field, char *mode, int N,...);
+int    fits_vscan (Header *header, char *field, char *mode, int N, va_list argp);
+int    fits_delete (Header *header, char *field, int N); 
+char  *fits_keyword_end (char *line);
+int    fits_stripwhite (char *string);
+</pre>
+
+<h3> FITS Matrix (Image) Manipulation functions </h3>
+
+<pre>
+int    fits_create_matrix (Header *header, Matrix *); 
+int    fits_copy_matrix (Matrix *in, Matrix *out); 
+
+int    fits_read_matrix (char *filename, Matrix *matrix);      
+int    fits_write_matrix (char *filename, Matrix *matrix); 
+int    fits_fread_matrix (FILE *f, Matrix *matrix, Header *header);
+void   fits_free_matrix (Matrix *matrix); 
+int    fits_fwrite_matrix (FILE *f, Matrix *matrix);      
+int    fits_read_portion (char *filename, Matrix *matrix, int Nskip, int Npix);
+int    fits_read_segment (char *filename, Matrix *matrix, char *region);
+int    fits_load_matrix (FILE *f, Matrix *matrix, Header *header);
+
+int    fits_matrix_size (Header *header);
+int    fits_convert_format (Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign);
+void   fits_insert_array (Matrix *matrix, Matrix *array, int x, int y); 
+
+void   fits_set_matrix_value (Matrix *matrix, int x, int y, double); 
+double fits_get_matrix_value (Matrix *, int x, int y); 
+void   fits_add_matrix_value (Matrix *matrix, int x, int y, double value); 
+
+int    fits_divide_matrix (Matrix *numerator, Matrix *denomenator, Matrix *result); 
+int    fits_multiply_matrix (Matrix *matrix1, Matrix *matrix2, Matrix *result); 
+</pre>
+
+<h3> FITS Table Manipulation functions </h3>
+
+<pre>
+int   fits_load_Theader (FILE *f, Header *Theader);
+int   fits_read_Theader (char *filename, Header *header);     
+int   fits_write_Theader (char *filename, Header *header);
+int   fits_read_table (char *filename, FTable *ftable); 
+int   fits_write_table (char *filename, FTable *ftable); 
+int   fits_fwrite_table (FILE *f, FTable *ftable);
+int   fits_fwrite_vtable (FILE *f, VTable *ftable);
+int   fits_fread_ftable (FILE *f, FTable *ftable, char *extname); 
+int   fits_fread_vtable (FILE *f, VTable *ftable, char *extname, int Nrow, int *row);
+int   fits_fread_ftable_data (FILE *f, FTable *ftable);
+int   fits_fwrite_table (FILE *f, FTable *ftable); 
+int   fits_fwrite_vtable (FILE *f, VTable *vtable); 
+int   fits_read_ftable (char *filename, FTable *ftable, char *extname);
+int   fits_create_table_header (Header *header, char *type, char *extname);
+int   fits_create_table (Header *header, FTable *ftable);
+int   fits_free_table (FTable *ftable);
+int   fits_free_vtable (VTable *ftable);
+
+int   fits_bintable_format (char *format, char *type, int *Nval, int *Nbytes);
+int   fits_table_format (char *format, char *type, int *Nval, int *Nbytes);
+int   fits_set_bintable_column (Header *header, FTable *ftable, char *label, void *data, int Nrow);
+int   fits_set_table_column (Header *header, FTable *ftable, char *label, void *data, int Nrow);
+int   fits_define_bintable_column (Header *header, char *format, char *label, char *comment, char *unit, double bscale, double bzero);
+int   fits_define_table_column (Header *header, char *format, char *label, char *comment, char *unit);
+
+int   fits_vtable_from_ftable (FTable *ftable, VTable *vtable, int *row, int Nrow);
+int   fits_table_to_vtable (FTable *ftable, VTable *vtable, int start, int Nkeep);
+int   fits_vadd_rows (VTable *vtable, char *data, int Nrow, int Nbytes);
+int   fits_add_rows (FTable *ftable, char *data, int Nrow, int Nbytes);
+char *fits_table_print (FTable *ftable,...);
+int   fits_create_Theader (Header *header, char *type);
+int   fits_table_column (FTable *ftable, char *field, char *mode,...); 
+int   fits_table_column (FTable *ftable, char *field, char *mode,...);
+int   fits_get_bintable_column_type (Header *header, char *label, char *type, int *Nval);
+int   fits_get_bintable_column (Header *header, FTable *ftable, char *label, void **data);
+int   fits_get_table_column_type (Header *header, char *label, char *type);
+int   fits_get_table_column (Header *header, FTable *ftable, char *label, void **data);
+</pre>
Index: /trunk/Ohana/doc/www/html/developer/libohana.htm
===================================================================
--- /trunk/Ohana/doc/www/html/developer/libohana.htm	(revision 4811)
+++ /trunk/Ohana/doc/www/html/developer/libohana.htm	(revision 4812)
@@ -1,5 +1,278 @@
-<meta name=file  content=libohana>
-<meta name=title content=libohana>
-<meta name=page  content=libohana>
-
-Sorry!  The page you requested is not yet available.
+<meta name=title content=libohana API reference>
+<meta name=page  content=libohana API reference>
+
+<h2> generic ohana functions </h2>
+
+<h3> basic macros </h3>
+
+<pre>
+TRUE
+FALSE
+SIGN(X)  
+ROUND(X) 
+SQR(X)   
+SQ(X)    
+MIN(X,Y) 
+MAX(X,Y) 
+SWAP(X,Y) 
+whitespace (char c)
+</pre>
+
+<h3> ohana memory management functions </h3>
+
+<pre> 
+ALLOCATE (void *ptr, type, int Nalloc);
+REALLOCATE (void *ptr, type, int Nalloc);
+CHECK_REALLOCATE (void *ptr, type, int Nalloc, int Nused, int Ndelta);
+free (void *ptr); 
+
+void  ohana_memregister (void *ptr);
+void  ohana_memdump (int mode);
+void  ohana_memcheck (int mode);
+</pre>
+
+<h3> string manipulation functions (string.c) </h3>
+
+<pre> 
+int   get_argument (int argc, char **argv, char *arg);
+int   remove_argument (int Narg, int *argc, char **argv);
+char *strcreate (char *string);
+char *strncreate (char *string, int Nbytes);
+int   strnumcmp (char *str1, char *str2);
+int   stripwhite (char *string);
+int   scan_line (FILE *f, char *line);
+int   dparse (double *value, int Nentry, char *line);
+int   fparse (double *value, int Nentry, char *line);
+char *_parse_nextword (char *string);
+</pre>
+
+<pre> int get_argument (int argc, char **argv, char *arg); </pre>
+
+search argv, argc list (starting at argv[1]) for desired argument.
+returns entry number if found, 0 otherwise. 
+<hr>
+
+<pre> int remove_argument (int Narg, int *argc, char **argv); </pre>
+
+remove the given entry Narg from the argv list, adjusting argc
+appropriately. 
+<hr>
+
+<pre> int stripwhite (char *string); </pre>
+
+strip whitespace (space or tab) from start and end of string.
+<hr>
+
+<pre> int strnumcmp (char *str1, char *str2); </pre>
+
+compare str1 and str2 as strings, or as numbers if both are pure
+numeric values (base 10 only).  returns TRUE / FALSE.
+<hr>
+
+<h3> file system functions (findexec.c) </h3>
+
+<pre> 
+char *pathname (char *file);
+char *filerootname (char *file);
+char *fileextname (char *file);
+char *filebasename (char *file);
+char *findexec (int argc, char **argv);
+int   mkdirhier (char *path);
+char *getcwd_cfht (char *path, int size);
+void  make_backup (char *filename);
+int   Fseek (FILE *f, long offset, int whence);
+</pre>
+
+<h3> lockfile functions (glockfile.c) </h3>
+
+<pre> 
+FILE *fsetlockfile (char *filename, double timeout, int type, int *state);
+int   fclearlockfile (char *filename, FILE *f, int type, int *state);
+</pre>
+
+associated constants:
+
+<pre>
+LCK_SOFT - block writing
+LCK_XCLD - block reading and writing
+LCK_HARD - block reading and writing, persistent
+
+LCK_UNLOCK   - file is unlocked 
+LCK_ACCESS   - can't get access to file 
+LCK_TIMEOUT  - timeout setting lock 
+LCK_HARDLCK  - error setting hard lockfile 
+LCK_HUNLOCK  - error clearing hard lockfile 
+            
+LCK_EMPTY    - locked file is empty 
+LCK_FULL     - locked file is not empty 
+LCK_UNKNOWN  - can't stat file to get size 
+</pre>
+
+<h3> time / radec manipulation functions (time.c) </h3>
+
+<pre>
+int    dms_to_ddd (double *Value, char *string);
+int    str_to_radec (double *ra, double *dec, char *str1, char *str2);
+int    chk_time (char *line);
+int    str_to_time (char *line, time_t *second);
+int    str_to_dtime (char *line, double *second);
+double sec_to_jd (time_t second);
+time_t jd_to_sec (double jd);
+double sec_to_mjd (time_t second);
+time_t mjd_to_sec (double mjd);
+char  *sec_to_date (time_t second);
+time_t date_to_sec (char *date);
+time_t short_date_to_sec (char *date);
+int    hstgsc_hms_to_deg (double *h0, double *h1, double *d0, double *d1, char *string);
+</pre>
+
+<h3> functions in config.c </h3>
+
+<pre> 
+char *SelectConfigFile (int *argc, char **argv, char *progname);
+char *LoadConfigFile (char *filename);
+char *ScanConfig (char *config, char *field, char *mode, int Nentry, ...);
+char *expandline (char *line, char *config);
+char *LoadRawConfigFile (char *filename, int options);
+</pre>
+
+<h3> miscellaneous functions </h3>
+
+<pre> char *ohana_version (); </pre>
+
+<h2> DVO data structures and catalog I/O functions </h2>
+
+<h3> read/write (Fread.c) </h3>
+
+<pre> 
+int Fread (char ptr, int size, int nitems, FILE *f, char *type);
+int Fwrite (char ptr, int size, int nitems, FILE *f, char *type);
+int ByteSwap (char *ptr, int size, int nitems, char *type);
+int ConvertStruct (char *buffer, int size, int nitems, char *type);
+</pre>
+
+Several of these functions are used to perform byte-swapping for
+structures in the pre-autocode days.  They should be deprecated and
+dropped, but the autocoding must superceed the hard-wired structure
+first.
+
+<h3> coordinate structure manipulations (coordops.c) </h3>
+
+<pre> 
+int XY_to_RD (double *ra, double *dec, double x,  double y,   Coords *coords);
+int RD_to_XY (double *x,  double *y,   double ra, double dec, Coords *coords);
+int fXY_to_RD (float *ra, float *dec, float x,  float y,   Coords *coords);
+int fRD_to_XY (float *x,  float *y,   float ra, float dec, Coords *coords);
+int GetCoords (Coords *coords, Header *header);
+int coords_precess (double *ra, double *dec, double in_epoch, double out_epoch);
+</pre>
+
+<h3> photcode manipulations (LoadPhotcodes.c) </h3>
+
+<pre>
+int     LoadPhotcodes (char *filename, PhotCodeData *photcodes);
+int     FreePhotcodes (PhotCodeData *photcodes);
+
+PhotCode *GetPhotcodebyName (char *name);
+PhotCode *GetPhotcodeEquivbyName (char *name);
+PhotCode *GetPhotcodebyCode (int code);
+PhotCode *GetPhotcodeEquivbyCode (int code);
+PhotCode *GetPhotcodebyNsec (int Nsec);
+char     *GetPhotcodeNamebyCode (int code);
+
+int     GetPhotcodeCodebyName (char *name);
+int     GetPhotcodeEquivCodebyName (char *name);
+int     GetPhotcodeEquivCodebyCode (int code);
+int     GetPhotcodeNsec (int code);
+int     GetPhotcodeNsecfilt ();
+int      *GetPhotcodeEquivList (int code, int *nlist);
+
+void    SetZeroPoint (double ZP);
+void    ParseColorTerms (char *terms, float *X, int *N);
+
+int       PhotColor (Average *average, SecFilt *secfilt, Measure *measure, int c1, int c2, double *color);
+short   iPhotColor (Average *average, SecFilt *secfilt, Measure *measure, PhotCode *code);
+
+double  PhotInst (Measure *measure);
+double  PhotCat (Measure *measure);
+double  PhotSys (Measure *measure, Average *average, SecFilt *secfilt);
+double  PhotRel (Measure *measure, Average *average, SecFilt *secfilt);
+double  PhotCal (Measure *thisone, Average *average, SecFilt *secfilt, Measure *measure, PhotCode *code);
+double  PhotAve (PhotCode *code, Average *average, SecFilt *secfilt);
+double  PhotRef (PhotCode *code, Average *average, SecFilt *secfilt, Measure *measure);
+double  PhotdM (PhotCode *code, Average *average, SecFilt *secfilt);
+double  PhotXm (PhotCode *code, Average *average, SecFilt *secfilt);
+
+short   iPhotInst (Measure *measure);
+short   iPhotCat (Measure *measure);
+short   iPhotSys (Measure *measure, Average *average, SecFilt *secfilt);
+short   iPhotRel (Measure *measure, Average *average, SecFilt *secfilt);
+short   iPhotCal (Measure *thisone, Average *average, SecFilt *secfilt, Measure *measure, PhotCode *code);
+short   iPhotAve (PhotCode *code, Average *average, SecFilt *secfilt);
+short   iPhotRef (PhotCode *code, Average *average, SecFilt *secfilt, Measure *measure);
+short   iPhotdM (PhotCode *code, Average *average, SecFilt *secfilt);
+short   iPhotXm (PhotCode *code, Average *average, SecFilt *secfilt);
+</pre>
+
+<h3> photometry catalog I/O functions (phot_catalog.c) </h3>
+
+<pre>
+int lock_catalog (Catalog *catalog, int lockmode);
+int unlock_catalog (Catalog *catalog);
+int load_catalog (Catalog *catalog, char mode, int VERBOSE);
+int save_catalog (Catalog *catalog, char VERBOSE);
+</pre>
+
+<h3> DVO format conversions (dvo_convert.c) </h3>
+
+<pre>
+Measure *FixOldMeasure (OldMeasure *in, int Nvalues); 
+Average *FixOldAverage (OldAverage *in, int Nvalues); 
+SecFilt *FixOldSecFilt (OldSecFilt *in, int Nvalues); 
+</pre>
+
+<h3> image type / mode lookups (imreg_datatypes.c) </h3>
+
+<pre>
+int   get_image_type (char *name); 
+char *get_type_name (int type); 
+int   get_image_mode (char *name); 
+char *get_mode_name (int mode); 
+</pre>
+
+<h3> mosaic astrometry functions (mosaic_astrom.c) </h3>
+
+<pre>
+int FindMosaicForImage (Image *images, int Nimages, int entry); 
+int FindMosaicForImage_TableSearch (Image *images, int Nimages, int entry); 
+int FindMosaicForImage_MatchSearch (Image *images, int Nimages, int entry); 
+int BuildChipMatch (Image *images, int Nimages); 
+</pre>
+
+<h3> FITS DB I/O functions (fits_db.c) </h3>
+
+<pre>
+int fits_db_init (FITS_DB *db); 
+int fits_db_create (FITS_DB *db); 
+int fits_db_lock (FITS_DB *db, char *filename); 
+int fits_db_load (FITS_DB *db); 
+int fits_db_save (FITS_DB *db); 
+int fits_db_update (FITS_DB *db, VTable *vtable); 
+int fits_db_free (FITS_DB *db); 
+int fits_db_close (FITS_DB *db); 
+</pre>
+
+<h3> functions in photfits.c </h3>
+
+<pre>
+short int putMi (double value); 
+double getMi (short int value); 
+void returnMcal (Image *image, double *c); 
+void assignMcal (Image *image, double *c, int order); 
+double applyMcal (Image *image, double x, double y); 
+double findscatter (double *X, double *Y, double *M, double *dM, int N, double *c, int order); 
+</pre>
+
+These functions manipulate the high-order polynomial fit of magnitude
+offset as a function of image position for the Image structure.
+
Index: /trunk/Ohana/doc/www/html/index.htm
===================================================================
--- /trunk/Ohana/doc/www/html/index.htm	(revision 4811)
+++ /trunk/Ohana/doc/www/html/index.htm	(revision 4812)
@@ -16,5 +16,6 @@
 and tcl scripts.  
 
-<p>
+<h4> Software Organization</h4>
+
 The top-level of the Ohana software tree includes the Makefile, a
 system-dependent configuration file, and the directories src, bin,
@@ -35,11 +36,11 @@
 
 <p>
-Within the src directory are all of the program and library
-source-code subdirectories.  Many of the programs are contained within
-their own unique src subdirectory, but there are a few execeptions.
-First, the perl, csh, and tcl scripts are collected together in perl,
-csh, and tcl subdirectories.  Second, there are a variety of simple,
-small C-programs in the directory misc.  Third, there is a collection
-of related C programs which provide user interfaces to the Elixir
+The src directory contains all of the program and library source-code
+subdirectories.  Many of the programs are contained within their own
+unique src subdirectory, but there are a few execeptions.  First, the
+perl, csh, and tcl scripts are collected together in perl, csh, and
+tcl subdirectories.  Second, there are a variety of simple, small
+C-programs in the directory misc.  Third, there is a collection of
+related C programs which provide user interfaces to the Elixir
 databases.  These are collected together in the imregister-3.0
 subdirectory.
Index: /trunk/Ohana/doc/www/html/sequence.idx
===================================================================
--- /trunk/Ohana/doc/www/html/sequence.idx	(revision 4811)
+++ /trunk/Ohana/doc/www/html/sequence.idx	(revision 4812)
@@ -6,2 +6,5 @@
 DVO
 developer
+download.htm
+bugzilla.htm
+install.txt
