clear all; close all;

%% Serial dependence task - left/right 2AFC judgement

% Set up general experiment parameters

prompt = {'Enter block number:'};
dlg_title = 'Block Information';
num_lines = 1;
answer = inputdlg(prompt,dlg_title,num_lines);

Gparams                 = [];
Gparams.block_number    = str2num(answer{1});
Gparams                 = defGParams(Gparams);

% Initialize Screen
HideCursor;
priorityLevel = MaxPriority(Gparams.pWindow);
Priority(priorityLevel);
fullscreenloop(Gparams); % ensures that window is fullscreen

% Information about blocks
cfg                 = [];
cfg.curBlock        = Gparams.block_number;
cfg.repetitions     = 4;      % 10 trials per repetition; must be an even number;

% Task instructions
task_msg = ['INSTRUCTIES \n\n' ...
            'Je ziet steeds kort twee lijnpatronen. \n\n' ...
            'Het eerste lijnpatroon zie je voor een seconde. \n\n' ...
            'Kijk naar het eerste lijnpatroon. Je hoeft verder niets te doen. \n\n' ...
            'Het tweede lijnpatroon komt meteen daarna. Je ziet dit lijnpatroon maar kort. \n\n' ...
            'Bepaal de orientatie van het tweede lijnpatroon: \n\n' ...
            'Is het linksom? Druk op de linker pijltjestoets, aangegeven met < \n\n' ...
            'Is het rechtsom? Druk op de rechter pijltjestoets, aangegeven met > \n\n' ...
            'Druk op een toets om te starten.'];
        
block_start_msg = ['Dit is een oefenblok. \n\n\n\n\n\n' ... 
        task_msg]; 
 
showtext(block_start_msg,Gparams)

% Run the practice block
tae_practice_block(cfg, Gparams);
    
% End message
block_end_msg = 'Dit is het einde van het oefenblok!\n\n\n Laat je ons weten dat je klaar bent?';
showtext(block_end_msg,Gparams);

%% Cleaning up
Screen('CloseAll');
ShowCursor;
ListenChar(0);
Priority(0);

%% Practice Stats
tmp = load(['../Data/S' num2str(Gparams.subject_number) '/data_S' num2str(Gparams.subject_number) '_tae_practice_block_' num2str(cfg.curBlock) '.mat']);
data_mat = cell2mat(tmp.data);

% Count missed button presses & responses
missed_frequency    = sum(isnan(data_mat(:,8)));

% Count number correct answers on the extremes
nr_correct  = sum(data_mat(data_mat(:,5) == Gparams.stim.tae_stim_levels(1),9) == 0) + sum(data_mat(data_mat(:,5) == Gparams.stim.tae_stim_levels(5),9) == 1);
nr_tot      = sum((data_mat(:,5) == Gparams.stim.tae_stim_levels(1)) + (data_mat(:,5) == Gparams.stim.tae_stim_levels(5)));

% Count frequency of button presses and responses
button_frequency    = tabulate(data_mat(:,8));
response_frequency  = tabulate(data_mat(:,9));

% Display stats
disp(['Missed responses: ' num2str(missed_frequency) ' out of ' num2str(cfg.repetitions*10)]);
disp(['Correct responses: ' num2str(nr_correct) ' out of ' num2str(nr_tot)]);
disp(['Button presses: LEFT = ' num2str(button_frequency(1,3)) '% | RIGHT = ' num2str(button_frequency(2,3)) '%']);
disp(['Decisions: LEFT = ' num2str(response_frequency(1,3)) '% | RIGHT = ' num2str(response_frequency(2,3)) '%']);
