/* Libraries */
#include <libraries/mui.h>
#include <libraries/gadtools.h> /* for BARLABEL in MenuItem */

/* Prototypes */
#ifdef __GNUC__
#include <proto/muimaster.h>
#include <proto/exec.h>
#include <proto/alib.h>
#include <proto/dos.h>
#else
#include <clib/muimaster_protos.h>
#include <clib/exec_protos.h>
#include <clib/alib_protos.h>
#include <clib/dos_protos.h>
#include <pragmas/muimaster_pragmas.h>
#endif /* __GNUC__ */

/* abaixo, feito por mim	*/
#include <stdio.h>
#include <string.h>
#include "Zelador_Config.h"
#include "ZeladorMain.h"
#include "ZeladorGUI.h"

struct estDadosConfig {
	long	ZellID;	/* FILEID	*/
	int	Limite;
	int	Inicio;
	int	TentarAte;
	char	PString1 [255];
	char  PString2 [255];
	char	PString3 [255];

	/* limit max length/time, auto miami, rec yam, send yam, P1, P2, P3, W1, W2, W3	*/
	long	CHK_EventosAtivos;
	long	CYC_DuracTempo;	/* 0-por duração   1-por horário	*/
	long	CHK_AutoMiami;
	long	CHK_ReceberYAM;
	long	CHK_EnviarYAM;
	long	CHK_Ativo1;
	long	CHK_Espera1;
	long	CHK_Ativo2;
	long	CHK_Espera2;
	long	CHK_Ativo3;
	long	CHK_Espera3;

	long	Future [128];

	long	CHK_FileRequest;
	long	CHK_EFRScanWhileConnected;
	long	CHK_HabilitaRobotReply;
	long	CHK_RRScanWhileConnected;
	char	STR_AssuntoIntercepta[256];
	char	POP_TxtApresentacao[256];
	char	POP_EnviandoArq[256];
	char	STR_MaxPedidoKbEvento[256];
	char	STR_RecusaAPartirKB[256];

	struct {	/* file request	*/
		long	CHK;			/* CHK_Req0	*/
		char	STR[256];	/* STR_Req0	*/
		char	POP[256];	/* POP_Req0	*/
		} Req[10];
	
	struct {	/* reply robot	*/
		long	CHK;			/* CHK_RR0	*/
		char	STR[256];	/* STR_RR0	*/
		char	POP[256];	/* POP_RR0	*/
		} RR[10];

	char	STR_MaxDaysValidID[256];
	} DadosConfig;

struct estpDadosConfig {	/* pointers, utilizado p/ fazer ref a GUI	*/
	char	*Limite;
	char	*Inicio;
	char	*TentarAte;
	char	*PString1;
	char  *PString2;
	char	*PString3;

	char	*STR_AssuntoIntercepta;
	char	*POP_TxtApresentacao;
	char	*POP_EnviandoArq;
	char	*STR_MaxPedidoKbEvento;
	char	*STR_RecusaAPartirKB;

	struct {	/* file request	*/
		char	*STR;	/* STR_Req0	*/
		char	*POP;	/* POP_Req0	*/
		} Req[10];

	struct {	/* reply robot	*/
		char	*STR;	/* STR_RR0	*/
		char	*POP;	/* POP_RR0	*/
		} RR[10];

	char	*STR_MaxDaysValidID;
	} pDadosConfig;

/* transfere config da gui p/as variáveis do programa	*/
void CarregaDaGUI (void)
{
	short int temploop;	/* loop de 0 a 9	*/

	DadosConfig.Limite = ConverteHora (pDadosConfig.Limite);
	DadosConfig.Inicio = ConverteHora (pDadosConfig.Inicio);
	DadosConfig.TentarAte = ConverteHora (pDadosConfig.TentarAte);

	strcpy (DadosConfig.PString1, pDadosConfig.PString1);
	strcpy (DadosConfig.PString2, pDadosConfig.PString2);
	strcpy (DadosConfig.PString3, pDadosConfig.PString3);

	get(MeuApp->CYC_DuracTempo, MUIA_Cycle_Active, &DadosConfig.CYC_DuracTempo);

	get(MeuApp->CHK_Ativo1, MUIA_Selected, &DadosConfig.CHK_Ativo1);
	get(MeuApp->CHK_Ativo2, MUIA_Selected, &DadosConfig.CHK_Ativo2);
	get(MeuApp->CHK_Ativo3, MUIA_Selected, &DadosConfig.CHK_Ativo3);
	get(MeuApp->CHK_Espera1, MUIA_Selected, &DadosConfig.CHK_Espera1);
	get(MeuApp->CHK_Espera2, MUIA_Selected, &DadosConfig.CHK_Espera2);
	get(MeuApp->CHK_Espera3, MUIA_Selected, &DadosConfig.CHK_Espera3);

	get(MeuApp->CHK_EventosAtivos, MUIA_Selected, &DadosConfig.CHK_EventosAtivos);

	get(MeuApp->CHK_AutoMiami, MUIA_Selected, &DadosConfig.CHK_AutoMiami);
	get(MeuApp->CHK_ReceberYAM, MUIA_Selected, &DadosConfig.CHK_ReceberYAM);
	get(MeuApp->CHK_EnviarYAM, MUIA_Selected, &DadosConfig.CHK_EnviarYAM);

	get(MeuApp->CHK_FileRequest, MUIA_Selected, &DadosConfig.CHK_FileRequest);
	get(MeuApp->CHK_EFRScanWhileConnected, MUIA_Selected, &DadosConfig.CHK_EFRScanWhileConnected);
	get(MeuApp->CHK_HabilitaRobotReply, MUIA_Selected, &DadosConfig.CHK_HabilitaRobotReply);
	get(MeuApp->CHK_RRScanWhileConnected, MUIA_Selected, &DadosConfig.CHK_RRScanWhileConnected);

	/* enable/disable file request	*/
	get(MeuApp->CHK_Req0, MUIA_Selected, &DadosConfig.Req[0].CHK);
	get(MeuApp->CHK_Req1, MUIA_Selected, &DadosConfig.Req[1].CHK);
	get(MeuApp->CHK_Req2, MUIA_Selected, &DadosConfig.Req[2].CHK);
	get(MeuApp->CHK_Req3, MUIA_Selected, &DadosConfig.Req[3].CHK);
	get(MeuApp->CHK_Req4, MUIA_Selected, &DadosConfig.Req[4].CHK);
	get(MeuApp->CHK_Req5, MUIA_Selected, &DadosConfig.Req[5].CHK);
	get(MeuApp->CHK_Req6, MUIA_Selected, &DadosConfig.Req[6].CHK);
	get(MeuApp->CHK_Req7, MUIA_Selected, &DadosConfig.Req[7].CHK);
	get(MeuApp->CHK_Req8, MUIA_Selected, &DadosConfig.Req[8].CHK);
	get(MeuApp->CHK_Req9, MUIA_Selected, &DadosConfig.Req[9].CHK);

	/* enable/disable reply robot	*/
	get(MeuApp->CHK_RR0, MUIA_Selected, &DadosConfig.RR[0].CHK);
	get(MeuApp->CHK_RR1, MUIA_Selected, &DadosConfig.RR[1].CHK);
	get(MeuApp->CHK_RR2, MUIA_Selected, &DadosConfig.RR[2].CHK);
	get(MeuApp->CHK_RR3, MUIA_Selected, &DadosConfig.RR[3].CHK);
	get(MeuApp->CHK_RR4, MUIA_Selected, &DadosConfig.RR[4].CHK);
	get(MeuApp->CHK_RR5, MUIA_Selected, &DadosConfig.RR[5].CHK);
	get(MeuApp->CHK_RR6, MUIA_Selected, &DadosConfig.RR[6].CHK);
	get(MeuApp->CHK_RR7, MUIA_Selected, &DadosConfig.RR[7].CHK);
	get(MeuApp->CHK_RR8, MUIA_Selected, &DadosConfig.RR[8].CHK);
	get(MeuApp->CHK_RR9, MUIA_Selected, &DadosConfig.RR[9].CHK);

	temploop = 10;
	while (temploop)	/* enqto temploop > 0	*/
	{
		temploop--;
		strcpy (DadosConfig.Req[temploop].POP, pDadosConfig.Req[temploop].POP);
		strcpy (DadosConfig.Req[temploop].STR, pDadosConfig.Req[temploop].STR);
		strcpy (DadosConfig.RR[temploop].POP, pDadosConfig.RR[temploop].POP);
		strcpy (DadosConfig.RR[temploop].STR, pDadosConfig.RR[temploop].STR);
	}
	
	strcpy (DadosConfig.STR_AssuntoIntercepta, pDadosConfig.STR_AssuntoIntercepta);
	strcpy (DadosConfig.POP_TxtApresentacao, pDadosConfig.POP_TxtApresentacao);
	strcpy (DadosConfig.POP_EnviandoArq, pDadosConfig.POP_EnviandoArq);
	strcpy (DadosConfig.STR_MaxPedidoKbEvento, pDadosConfig.STR_MaxPedidoKbEvento);
	strcpy (DadosConfig.STR_RecusaAPartirKB, pDadosConfig.STR_RecusaAPartirKB);
	strcpy (DadosConfig.STR_MaxDaysValidID, pDadosConfig.STR_MaxDaysValidID);
}

/* transfere config das variáveis p/a GUI do programa	*/
void TransfereParaGUI (void)
{
	char tpgtemp[255];

	ConverteHoraParaString (DadosConfig.Limite, &tpgtemp[0]);
	set(MeuApp->STR_LimiteHoras, MUIA_String_Contents, &tpgtemp[0]);
	ConverteHoraParaString (DadosConfig.Inicio, &tpgtemp[0]);
	set(MeuApp->STR_InicioEvento, MUIA_String_Contents, &tpgtemp[0]);
	ConverteHoraParaString (DadosConfig.TentarAte, &tpgtemp[0]);
	set(MeuApp->STR_TentarAte, MUIA_String_Contents, &tpgtemp[0]);

	set(MeuApp->STR_Path1, MUIA_String_Contents, &DadosConfig.PString1[0]);
	set(MeuApp->STR_Path2, MUIA_String_Contents, &DadosConfig.PString2[0]);
	set(MeuApp->STR_Path3, MUIA_String_Contents, &DadosConfig.PString3[0]);	

	set(MeuApp->CYC_DuracTempo, MUIA_Cycle_Active, DadosConfig.CYC_DuracTempo);

	set(MeuApp->CHK_Ativo1, MUIA_Selected, DadosConfig.CHK_Ativo1);
	set(MeuApp->CHK_Ativo2, MUIA_Selected, DadosConfig.CHK_Ativo2);
	set(MeuApp->CHK_Ativo3, MUIA_Selected, DadosConfig.CHK_Ativo3);
	set(MeuApp->CHK_Espera1, MUIA_Selected, DadosConfig.CHK_Espera1);
	set(MeuApp->CHK_Espera2, MUIA_Selected, DadosConfig.CHK_Espera2);
	set(MeuApp->CHK_Espera3, MUIA_Selected, DadosConfig.CHK_Espera3);

/* NAO habilitar a linha abaixo	*/
/*	set(MeuApp->CHK_EventosAtivos, MUIA_Selected, DadosConfig.CHK_EventosAtivos);*/

	set(MeuApp->CHK_AutoMiami, MUIA_Selected, DadosConfig.CHK_AutoMiami);
	set(MeuApp->CHK_ReceberYAM, MUIA_Selected, DadosConfig.CHK_ReceberYAM);
	set(MeuApp->CHK_EnviarYAM, MUIA_Selected, DadosConfig.CHK_EnviarYAM);

	set(MeuApp->CHK_FileRequest, MUIA_Selected, DadosConfig.CHK_FileRequest);
	set(MeuApp->CHK_EFRScanWhileConnected, MUIA_Selected, DadosConfig.CHK_EFRScanWhileConnected);
	set(MeuApp->CHK_HabilitaRobotReply, MUIA_Selected, DadosConfig.CHK_HabilitaRobotReply);
	set(MeuApp->CHK_RRScanWhileConnected, MUIA_Selected, DadosConfig.CHK_RRScanWhileConnected);

	/* enable/disable file request	*/
	set(MeuApp->CHK_Req0, MUIA_Selected, DadosConfig.Req[0].CHK);
	set(MeuApp->CHK_Req1, MUIA_Selected, DadosConfig.Req[1].CHK);
	set(MeuApp->CHK_Req2, MUIA_Selected, DadosConfig.Req[2].CHK);
	set(MeuApp->CHK_Req3, MUIA_Selected, DadosConfig.Req[3].CHK);
	set(MeuApp->CHK_Req4, MUIA_Selected, DadosConfig.Req[4].CHK);
	set(MeuApp->CHK_Req5, MUIA_Selected, DadosConfig.Req[5].CHK);
	set(MeuApp->CHK_Req6, MUIA_Selected, DadosConfig.Req[6].CHK);
	set(MeuApp->CHK_Req7, MUIA_Selected, DadosConfig.Req[7].CHK);
	set(MeuApp->CHK_Req8, MUIA_Selected, DadosConfig.Req[8].CHK);
	set(MeuApp->CHK_Req9, MUIA_Selected, DadosConfig.Req[9].CHK);

	/* enable/disable reply robot	*/
	set(MeuApp->CHK_RR0, MUIA_Selected, DadosConfig.RR[0].CHK);
	set(MeuApp->CHK_RR1, MUIA_Selected, DadosConfig.RR[1].CHK);
	set(MeuApp->CHK_RR2, MUIA_Selected, DadosConfig.RR[2].CHK);
	set(MeuApp->CHK_RR3, MUIA_Selected, DadosConfig.RR[3].CHK);
	set(MeuApp->CHK_RR4, MUIA_Selected, DadosConfig.RR[4].CHK);
	set(MeuApp->CHK_RR5, MUIA_Selected, DadosConfig.RR[5].CHK);
	set(MeuApp->CHK_RR6, MUIA_Selected, DadosConfig.RR[6].CHK);
	set(MeuApp->CHK_RR7, MUIA_Selected, DadosConfig.RR[7].CHK);
	set(MeuApp->CHK_RR8, MUIA_Selected, DadosConfig.RR[8].CHK);
	set(MeuApp->CHK_RR9, MUIA_Selected, DadosConfig.RR[9].CHK);

	/* file request	*/
	set(MeuApp->STR_Req0, MUIA_String_Contents, &DadosConfig.Req[0].STR);
	set(MeuApp->POP_Req0, MUIA_String_Contents, &DadosConfig.Req[0].POP);
	set(MeuApp->STR_Req1, MUIA_String_Contents, &DadosConfig.Req[1].STR);
	set(MeuApp->POP_Req1, MUIA_String_Contents, &DadosConfig.Req[1].POP);
	set(MeuApp->STR_Req2, MUIA_String_Contents, &DadosConfig.Req[2].STR);
	set(MeuApp->POP_Req2, MUIA_String_Contents, &DadosConfig.Req[2].POP);
	set(MeuApp->STR_Req3, MUIA_String_Contents, &DadosConfig.Req[3].STR);
	set(MeuApp->POP_Req3, MUIA_String_Contents, &DadosConfig.Req[3].POP);
	set(MeuApp->STR_Req4, MUIA_String_Contents, &DadosConfig.Req[4].STR);
	set(MeuApp->POP_Req4, MUIA_String_Contents, &DadosConfig.Req[4].POP);
	set(MeuApp->STR_Req5, MUIA_String_Contents, &DadosConfig.Req[5].STR);
	set(MeuApp->POP_Req5, MUIA_String_Contents, &DadosConfig.Req[5].POP);
	set(MeuApp->STR_Req6, MUIA_String_Contents, &DadosConfig.Req[6].STR);
	set(MeuApp->POP_Req6, MUIA_String_Contents, &DadosConfig.Req[6].POP);
	set(MeuApp->STR_Req7, MUIA_String_Contents, &DadosConfig.Req[7].STR);
	set(MeuApp->POP_Req7, MUIA_String_Contents, &DadosConfig.Req[7].POP);
	set(MeuApp->STR_Req8, MUIA_String_Contents, &DadosConfig.Req[8].STR);
	set(MeuApp->POP_Req8, MUIA_String_Contents, &DadosConfig.Req[8].POP);
	set(MeuApp->STR_Req9, MUIA_String_Contents, &DadosConfig.Req[9].STR);
	set(MeuApp->POP_Req9, MUIA_String_Contents, &DadosConfig.Req[9].POP);

	/* reply robot	*/
	set(MeuApp->STR_RR0, MUIA_String_Contents, &DadosConfig.RR[0].STR);
	set(MeuApp->POP_RR0, MUIA_String_Contents, &DadosConfig.RR[0].POP);
	set(MeuApp->STR_RR1, MUIA_String_Contents, &DadosConfig.RR[1].STR);
	set(MeuApp->POP_RR1, MUIA_String_Contents, &DadosConfig.RR[1].POP);
	set(MeuApp->STR_RR2, MUIA_String_Contents, &DadosConfig.RR[2].STR);
	set(MeuApp->POP_RR2, MUIA_String_Contents, &DadosConfig.RR[2].POP);
	set(MeuApp->STR_RR3, MUIA_String_Contents, &DadosConfig.RR[3].STR);
	set(MeuApp->POP_RR3, MUIA_String_Contents, &DadosConfig.RR[3].POP);
	set(MeuApp->STR_RR4, MUIA_String_Contents, &DadosConfig.RR[4].STR);
	set(MeuApp->POP_RR4, MUIA_String_Contents, &DadosConfig.RR[4].POP);
	set(MeuApp->STR_RR5, MUIA_String_Contents, &DadosConfig.RR[5].STR);
	set(MeuApp->POP_RR5, MUIA_String_Contents, &DadosConfig.RR[5].POP);
	set(MeuApp->STR_RR6, MUIA_String_Contents, &DadosConfig.RR[6].STR);
	set(MeuApp->POP_RR6, MUIA_String_Contents, &DadosConfig.RR[6].POP);
	set(MeuApp->STR_RR7, MUIA_String_Contents, &DadosConfig.RR[7].STR);
	set(MeuApp->POP_RR7, MUIA_String_Contents, &DadosConfig.RR[7].POP);
	set(MeuApp->STR_RR8, MUIA_String_Contents, &DadosConfig.RR[8].STR);
	set(MeuApp->POP_RR8, MUIA_String_Contents, &DadosConfig.RR[8].POP);
	set(MeuApp->STR_RR9, MUIA_String_Contents, &DadosConfig.RR[9].STR);
	set(MeuApp->POP_RR9, MUIA_String_Contents, &DadosConfig.RR[9].POP);

	set(MeuApp->STR_AssuntoIntercepta, MUIA_String_Contents, &DadosConfig.STR_AssuntoIntercepta);
	set(MeuApp->POP_TxtApresentacao, MUIA_String_Contents, &DadosConfig.POP_TxtApresentacao);
	set(MeuApp->POP_EnviandoArq, MUIA_String_Contents, &DadosConfig.POP_EnviandoArq);
	set(MeuApp->STR_MaxPedidoKbEvento, MUIA_String_Contents, &DadosConfig.STR_MaxPedidoKbEvento);
	set(MeuApp->STR_RecusaAPartirKB, MUIA_String_Contents, &DadosConfig.STR_RecusaAPartirKB);
	set(MeuApp->STR_MaxDaysValidID, MUIA_String_Contents, &DadosConfig.STR_MaxDaysValidID);
}

/* carrega config do arquivo para as variáveis do programa	*/
/* retorna 0-ok   1-erro, nada carregado							*/
int CarregaConfig (void)
{
	FILE * ArqConfig;
	
	if (!(ArqConfig = fopen ("Zelador.config", "rb"))) return (1);

	if ((fread (&DadosConfig, sizeof (estDadosConfig), 1, ArqConfig)) != 1) {
		fclose (ArqConfig);
		InicializaVarsInternas ();	/* reseta variáveis.. nunca se sabe	*/
		return (1);
	}

	fclose (ArqConfig);
	
	return (0);
}

/* grava dados de config das variáveis para arquivo	*/
/* retorna 0-ok   1-erro, nada gravado						*/
int GravaConfig (void)
{
	FILE * ArqConfig;
	
	if (!(ArqConfig = fopen ("Zelador.config", "wb"))) return (1);

	if ((fwrite (&DadosConfig, sizeof (estDadosConfig), 1, ArqConfig)) != 1) {
		fclose (ArqConfig);
		return (1);
	}

	fclose (ArqConfig);
	
	return (0);
}

/* inicializa variáveis de config com valores default	*/
void InicializaVarsInternas (void)
{
	int repetek = 0;

	DadosConfig.ZellID = 0x5a454c31;	/* ZEL0	*/
	
	DadosConfig.Limite = 120;
	DadosConfig.Inicio = 0;
	DadosConfig.TentarAte = 30;
	DadosConfig.PString1 [0] = char (0);
	DadosConfig.PString2 [0] = char (0);
	DadosConfig.PString3	[0] = char (0);
	while (repetek < 129) {
		DadosConfig.Future [repetek] = 0;
		repetek++;
	}
	
	get(MeuApp->STR_LimiteHoras, MUIA_String_Contents, &pDadosConfig.Limite);
	get(MeuApp->STR_InicioEvento, MUIA_String_Contents, &pDadosConfig.Inicio);
	get(MeuApp->STR_TentarAte, MUIA_String_Contents, &pDadosConfig.TentarAte);

	get(MeuApp->STR_Path1, MUIA_String_Contents, &pDadosConfig.PString1);
	get(MeuApp->STR_Path2, MUIA_String_Contents, &pDadosConfig.PString2);
	get(MeuApp->STR_Path3, MUIA_String_Contents, &pDadosConfig.PString3);

	/* file request	*/
	get(MeuApp->STR_Req0, MUIA_String_Contents, &pDadosConfig.Req[0].STR);
	get(MeuApp->POP_Req0, MUIA_String_Contents, &pDadosConfig.Req[0].POP);
	get(MeuApp->STR_Req1, MUIA_String_Contents, &pDadosConfig.Req[1].STR);
	get(MeuApp->POP_Req1, MUIA_String_Contents, &pDadosConfig.Req[1].POP);
	get(MeuApp->STR_Req2, MUIA_String_Contents, &pDadosConfig.Req[2].STR);
	get(MeuApp->POP_Req2, MUIA_String_Contents, &pDadosConfig.Req[2].POP);
	get(MeuApp->STR_Req3, MUIA_String_Contents, &pDadosConfig.Req[3].STR);
	get(MeuApp->POP_Req3, MUIA_String_Contents, &pDadosConfig.Req[3].POP);
	get(MeuApp->STR_Req4, MUIA_String_Contents, &pDadosConfig.Req[4].STR);
	get(MeuApp->POP_Req4, MUIA_String_Contents, &pDadosConfig.Req[4].POP);
	get(MeuApp->STR_Req5, MUIA_String_Contents, &pDadosConfig.Req[5].STR);
	get(MeuApp->POP_Req5, MUIA_String_Contents, &pDadosConfig.Req[5].POP);
	get(MeuApp->STR_Req6, MUIA_String_Contents, &pDadosConfig.Req[6].STR);
	get(MeuApp->POP_Req6, MUIA_String_Contents, &pDadosConfig.Req[6].POP);
	get(MeuApp->STR_Req7, MUIA_String_Contents, &pDadosConfig.Req[7].STR);
	get(MeuApp->POP_Req7, MUIA_String_Contents, &pDadosConfig.Req[7].POP);
	get(MeuApp->STR_Req8, MUIA_String_Contents, &pDadosConfig.Req[8].STR);
	get(MeuApp->POP_Req8, MUIA_String_Contents, &pDadosConfig.Req[8].POP);
	get(MeuApp->STR_Req9, MUIA_String_Contents, &pDadosConfig.Req[9].STR);
	get(MeuApp->POP_Req9, MUIA_String_Contents, &pDadosConfig.Req[9].POP);

	/* reply robot	*/
	get(MeuApp->STR_RR0, MUIA_String_Contents, &pDadosConfig.RR[0].STR);
	get(MeuApp->POP_RR0, MUIA_String_Contents, &pDadosConfig.RR[0].POP);
	get(MeuApp->STR_RR1, MUIA_String_Contents, &pDadosConfig.RR[1].STR);
	get(MeuApp->POP_RR1, MUIA_String_Contents, &pDadosConfig.RR[1].POP);
	get(MeuApp->STR_RR2, MUIA_String_Contents, &pDadosConfig.RR[2].STR);
	get(MeuApp->POP_RR2, MUIA_String_Contents, &pDadosConfig.RR[2].POP);
	get(MeuApp->STR_RR3, MUIA_String_Contents, &pDadosConfig.RR[3].STR);
	get(MeuApp->POP_RR3, MUIA_String_Contents, &pDadosConfig.RR[3].POP);
	get(MeuApp->STR_RR4, MUIA_String_Contents, &pDadosConfig.RR[4].STR);
	get(MeuApp->POP_RR4, MUIA_String_Contents, &pDadosConfig.RR[4].POP);
	get(MeuApp->STR_RR5, MUIA_String_Contents, &pDadosConfig.RR[5].STR);
	get(MeuApp->POP_RR5, MUIA_String_Contents, &pDadosConfig.RR[5].POP);
	get(MeuApp->STR_RR6, MUIA_String_Contents, &pDadosConfig.RR[6].STR);
	get(MeuApp->POP_RR6, MUIA_String_Contents, &pDadosConfig.RR[6].POP);
	get(MeuApp->STR_RR7, MUIA_String_Contents, &pDadosConfig.RR[7].STR);
	get(MeuApp->POP_RR7, MUIA_String_Contents, &pDadosConfig.RR[7].POP);
	get(MeuApp->STR_RR8, MUIA_String_Contents, &pDadosConfig.RR[8].STR);
	get(MeuApp->POP_RR8, MUIA_String_Contents, &pDadosConfig.RR[8].POP);
	get(MeuApp->STR_RR9, MUIA_String_Contents, &pDadosConfig.RR[9].STR);
	get(MeuApp->POP_RR9, MUIA_String_Contents, &pDadosConfig.RR[9].POP);

	get(MeuApp->STR_AssuntoIntercepta, MUIA_String_Contents, &pDadosConfig.STR_AssuntoIntercepta);
	get(MeuApp->POP_TxtApresentacao, MUIA_String_Contents, &pDadosConfig.POP_TxtApresentacao);
	get(MeuApp->POP_EnviandoArq, MUIA_String_Contents, &pDadosConfig.POP_EnviandoArq);
	get(MeuApp->STR_MaxPedidoKbEvento, MUIA_String_Contents, &pDadosConfig.STR_MaxPedidoKbEvento);
	get(MeuApp->STR_RecusaAPartirKB, MUIA_String_Contents, &pDadosConfig.STR_RecusaAPartirKB);
	get(MeuApp->STR_MaxDaysValidID, MUIA_String_Contents, &pDadosConfig.STR_MaxDaysValidID);

	repetek = 10;
	while (repetek)	/* repetek > 0	*/
	{
		repetek--;
		DadosConfig.Req[repetek].CHK = 0;
		DadosConfig.Req[repetek].STR[0] = char(0);
		DadosConfig.Req[repetek].POP[0] = char(0);

		DadosConfig.RR[repetek].CHK = 0;
		DadosConfig.RR[repetek].STR[0] = char(0);
		DadosConfig.RR[repetek].POP[0] = char(0);
	}

	strcpy(DadosConfig.POP_TxtApresentacao, "texts/InitialTextEFR.txt");
	strcpy(DadosConfig.POP_EnviandoArq, "texts/ReplyTextEFR.txt");
	strcpy(DadosConfig.STR_AssuntoIntercepta, "FILE REQUEST");
	strcpy(DadosConfig.STR_MaxPedidoKbEvento, "4500");
	strcpy(DadosConfig.STR_RecusaAPartirKB, "12000");
	strcpy(DadosConfig.STR_MaxDaysValidID, "5");
	DadosConfig.Req[0].CHK = 1;
	strcpy(DadosConfig.Req[0].STR, "this file is my startup sequence...");
	strcpy(DadosConfig.Req[0].POP, "s:Startup-sequence");
	DadosConfig.RR[0].CHK = 1;
	strcpy(DadosConfig.RR[0].STR, "What About Zelador");
	strcpy(DadosConfig.RR[0].POP, "texts/WhatAboutZelador.txt");

	DadosConfig.CHK_EventosAtivos = 0;
	DadosConfig.CYC_DuracTempo = 0;
	DadosConfig.CHK_AutoMiami = 1;
	DadosConfig.CHK_ReceberYAM = 1;
	DadosConfig.CHK_EnviarYAM = 1;
	DadosConfig.CHK_Ativo1 = 0;
	DadosConfig.CHK_Espera1 = 1;
	DadosConfig.CHK_Ativo2 = 0;
	DadosConfig.CHK_Espera2 = 1;
	DadosConfig.CHK_Ativo3 = 0;
	DadosConfig.CHK_Espera3 = 1;

	DadosConfig.CHK_FileRequest = 0;
	DadosConfig.CHK_EFRScanWhileConnected = 0;
	DadosConfig.CHK_HabilitaRobotReply = 0;
	DadosConfig.CHK_RRScanWhileConnected = 0;
}

/* converte uma string contendo hora para int = minutos após 0h	*/
int ConverteHora (char * HoraStr)
{
	int Tamanho;
	int lop = 0;
	int Letra;
	int Valor = 0;

	Tamanho = strlen (HoraStr);

	while ((lop < 4) && (lop < Tamanho)) {

		Letra = RetornaValCar (*(HoraStr+Tamanho-lop-1));
		switch (lop) {
			case 0:
				Valor = Valor + Letra;
				break;
			case 1:
				if (Letra > 5) return (0);
				Valor = Valor + (10 * Letra);
				break;
			case 2:
				Valor = Valor + (60 * Letra);
				break;
			case 3:
				Valor = Valor + (600 * Letra);
				if (Valor > 1439) return (0);
				break;	
		}

		lop++;
	}
	return (Valor);
}

/* função auxiliar para ConverteHora	*/
int RetornaValCar (char MeuCar)
{
	short int ValCar;
	ValCar = short int (MeuCar);
		
	switch (short int (MeuCar)) {
		case 49: return(1);
		case 50: return(2);
		case 51: return(3);
		case 52: return(4);
		case 53: return(5);
		case 54: return(6);
		case 55: return(7);
		case 56: return(8);
		case 57: return(9);			
	}
	return (0);
}

/* converte um número inteiro (nº de minutos) para string de hora HHMM	*/
void ConverteHoraParaString (int HoraI, char * chfrase)
{
	int chtemp;

	*(chfrase+0) = char (48 + (HoraI / 600));
	chtemp = HoraI % 600;
	*(chfrase+1) = char (48 + (chtemp / 60));
	chtemp = chtemp % 60;
	*(chfrase+2) = char (48 + (chtemp / 10));
	chtemp = chtemp % 10;
	*(chfrase+3) = char (48 + (chtemp));

	*(chfrase+4) = char (0);
}