/*
 * HTML tools library AP_HTML 
 *
 */

#define TYPE_DEFAULT 0
#define TYPE_MULTI   1



void debug_input();

struct multi {
	char name[1024];
	char filename[1024];
	char type[1024];
	int  size;
	char *content;
};


struct ap_html{
	char *remote_addr;
	char *remote_host;
	char *server_name;
	char *server_url;
	char *server_port;
	char *accept_language;
	char *query_string;
	int var_count;
	char **vars;
	int query_count;
	char **queries;
	int type;
	int multis;
	struct multi **multi;
};

struct multi *get_multi(struct ap_html *,char *name,int index);

#define MAX_FRAMES 16

struct frame{
	char template[1024];
	char tempfile[1024];
	char name[1024];
	FILE *fp_in;
	FILE *fp_out;
	char **datablock;
	int  lines;
};

struct frameset{
	int frames;
	struct frame *frame[MAX_FRAMES];
};



/* HTML functions */

struct ap_html *html_open();
char 	       *html_getvar();
void            html_close();
int             html_send();
int             int_html_send();
int             int_html_sendstartblock();
char	       *create_where();

#define START_BLOCK "%%%%%%%%%%"

/* ORACLE functions */

char *get_row();
char *get_bf_row();
void  free_all();

/* Config functions */

char *ap_get_entry();
char **ap_get_stanzas();
char *get_sql_val();

extern char *sql_error;

char *get_url_val(char *name);
char *get_url_val2(char *name);
char *get_url_val3(char *name);


/* KSG functions & structures */

struct einkauf21 {
	char stationskennung[3+1];
	char transaktionsart[4+1];
	char kartennummer[21+1];
	char ablaufdatum[4+1];
	char betrag[8];
};

struct einkauf22 {
	char stationskennung[3+1];
	char transaktionsart[4+1];
	char kartennummer[21+1];
	char ablaufdatum[4+1];
	char betrag[8+1];
	char autorisierungsnummer[9+1];
	char display_text[80+1];
	char kartentyp[20+1];
	char belegnummer[6+1];
	char haendlernummer[15+1];
	char terminal_id[8+1];
	char datum[10+1];
	char zeit[8+1];
		
};


char *ap_int_gettext(struct ap_html *ap, int id, char *file);
void html_dump(struct ap_html *ap);
