#include <stdio.h>
#ifndef NO_STDLIB_H
#include <stdlib.h>
#endif#include <string.h>
#include "cgi-util.h"

#define MAX_ENTRIES 1000
void erro_exit(){	puts("<html><body>");
	puts("<strong>Aparentemente você não usou a nossa página de Inquérito</strong><br>");
	puts("clique <a href='http://www.dei.isep.ipp.pt/~psousa/aulas/amb-des/inquerito.htm'>aqui</a>");
	puts("</body></html>");
	exit(1);}	

int main(int argc, char *argv[])
{
entry entries[MAX_ENTRIES];
int x, m, p;
char value[80];

int i;
char nome[80];
int vogais_nome = 0;
unsigned long telefone = 0;
int car_email = 0;unsigned long codigo = 0;

	/**CGI: inicializar o modulo de CGI **/
	m = cgi_init(entries, sizeof(entries)/sizeof(entries[0]));
	if (m < 0)
	{
		/**CGI: reportar erro no modulo **/
		cgi_send_error(m);
		exit(1);
	}

	/**CGI: indicar tipo de conteudo da resposta **/  
	cgi_send_header(HEADER_TYPE_TEXT_HTML);
	
	/**CGI: procurar por um valor **/
	p = cgi_get_value_from_key(nome, sizeof(nome), "nome", 0, entries, m);	if (p == -1 || strlen(nome) == 0)		erro_exit();

	vogais_nome = 0;	for (i = 0; i < strlen(nome); i++)
	{		if (nome[i] == 'a' || nome[i] == 'e' || nome[i] == 'i' || nome[i] == 'o' || nome[i] == 'u')			vogais_nome++;
	}			
	/**CGI: procurar por um valor **/
	p = cgi_get_value_from_key(value, sizeof(value), "telefone", 0, entries, m);	telefone = atol(value);	if (p == -1 || telefone == 0)
		erro_exit();
	/**CGI: procurar por um valor **/
	p = cgi_get_value_from_key(value, sizeof(value), "email", 0, entries, m);	if (p == -1 || strlen(value) == 0 || strchr(value, '@') == NULL)
		erro_exit();
	car_email = strlen(value);
	/* embora sejam passados o dia, mes e ano de nascimento, não são usados */	/* gerar código */		/* por segurança modifica a formula se não houver vogais no nome*/
	if (vogais_nome == 0)
		codigo = telefone * car_email;	else		codigo = vogais_nome * telefone + car_email;
	/* construir documento */	puts("<html><body>");
	printf("<H1>Banca electronica</H1>\n");
	puts("<hr>"); 
	printf("<p>Obrigado pela preferência Sr(a). %s\n", nome);	printf("<p>O seu código de accesso é <strong>%ul</strong></p>", codigo);
	puts("</body></html>");	
	/**CGI: libertar recursos do modulo **/
	cgi_uninit(entries, m);		return 0;
}

