/**************************************************************************
*       functions.h		
*			All function declarations.
**************************************************************************/
#include <X11/Intrinsic.h>
#include <Xm/Xm.h>

/**************************************************************************
*       in olsi.c
**************************************************************************/
void	setup_screen (int); 
void	setup_next_screen (int); 
void	setup_topscreen (); 
void	validate_login (char*, char*); 
void	validate_password (char*);
void	dialog_respondCB (Widget, caddr_t, caddr_t); 
void	create_widgets (); 
void	create_menu_struct ();
void	exit_application (); 
void	display_buttons (); 
void	clear_buttons (); 
void	passwordCB (Widget, caddr_t, caddr_t); 
void    regCB (Widget, caddr_t, caddr_t);
void	idCB (Widget, caddr_t, caddr_t); 
void	helpCB (Widget, caddr_t, caddr_t); 
void	dialogCB (Widget, caddr_t, caddr_t);
void    catCB (Widget, caddr_t, caddr_t);

/**************************************************************************
*       in ccat.c
**************************************************************************/
void    clear_catalog_screen ();
int	display_course_name (char*);
int     display_subject_desc (char*, char*);
void	subject_enteredCB (Widget, caddr_t, caddr_t);
void	list_subjects (char*); 
int	load_subject_array ();
void    make_subjname (char*);
void    next_subjectCB (Widget, caddr_t, caddr_t); 
void    previous_subjectCB (Widget, caddr_t, caddr_t);
void	pick_subjectCB (Widget, caddr_t, XmListCallbackStruct*);
void	select_subjectCB (Widget, caddr_t, caddr_t); 
int	verify_subject_number (char*, char*, char*);

/**************************************************************************
*       in grsch.c
**************************************************************************/

void	construct_sort_clause ();
void	course_catalog_entryCB (Widget, caddr_t, caddr_t);
void	display_grades (int); 
void	display_summary (int);
void	explain_codesCB (Widget, caddr_t, caddr_t); 
void	gradesCB (Widget, caddr_t, caddr_t); 
void	hide_gradesCB (Widget, caddr_t, caddr_t); 
void	hide_ratingsCB (Widget, caddr_t, caddr_t); 
void    schedlistCB (Widget, caddr_t, XmListCallbackStruct*);
void	sort_subjectCB (Widget, caddr_t, caddr_t); 
void    return_to_schedCB (Widget, caddr_t, caddr_t);
void	scheduleCB (Widget, caddr_t, caddr_t); 
void	show_gradesCB (Widget, caddr_t, caddr_t); 
void	show_ratingsCB (Widget, caddr_t, caddr_t);
void	sort_optionsCB (Widget, caddr_t, caddr_t);
void	summaryCB (Widget, caddr_t, caddr_t); 
void	toggleCB (Widget, caddr_t, caddr_t); 
void	unmanage_sort_widgets ();


/**************************************************************************
*       in bio.c
**************************************************************************/

void    write_bio_changes();
void	bioCB (Widget, caddr_t, caddr_t); 
void	address_lookupCB (Widget, caddr_t, caddr_t); 
void    fratlistCB (Widget, caddr_t, XmListCallbackStruct*);
void    bio_focusCB (Widget, caddr_t, caddr_t);
void	cancel_updateCB (Widget, caddr_t, caddr_t); 
void	confirm_updateCB (Widget, caddr_t, caddr_t); 
void	display_student_data (); 
Boolean format_phone (char*, char[]);
void    reset_bio_screen ();
void	update_bioCB (Widget, caddr_t, caddr_t);
Boolean validate_bio_field ();
Boolean validate_full_name ();
Boolean validate_zip (int);
Boolean validate_phone (int);
Boolean validate_mit_ext ();
Boolean validate_degree_date ();

/**************************************************************************
*       in util.c
**************************************************************************/

int		count_digits (char*);
void		display_msg (char*);
char		*extract_digits (char*);
Position        get_x_pos (Widget);
Dimension       get_width (Widget);
void            handle_error (char*, char*, int);
int             is_toggle_set (Widget);
void		replace_char (char*, int, int);
XmString        str_array_to_xmstr (char**, int, int);
void            trim (char*);
