function badbinstruct = pzap_badbins(AA, pflags, figpos)
% pzap_badbins(AA, pflags, figwidgh)
%
% This program does not stand alone: it is a callback for gautoedit 
%
% AA.data should have data.dday, data.bins, data.[fn] ('fn' is field name)
% AA.config is from agetmat(prefix)
% AA.config.yearbase is yearbase
% drag a rectangle to rzap bad bins
% AA.badprof (see aplotit)
% AA.badrect (see aplotit)

data = AA.data;
config = AA.plotconfig;
yr = AA.config.yearbase;

prefix = 'a_';  %for gautoedit
outfile = 'abadbin.asc';   	% writes here by default

config.flagged = pflags;

numbins = length(data.pg(:,1));

%%% specific to gautoedit
buttonhandle = findobj('Tag','pzap_badbinsButton');
buttonstrings = get(buttonhandle, 'string');
buttonval = get(buttonhandle, 'value');
buttonstring = buttonstrings{buttonval};
set(buttonhandle, 'value', 1);

if (isfield(data, buttonstring))
   fprintf('polygon zapping bad bins from data field %s\n', buttonstring)
   fn = buttonstring;
else
   fprintf('select a field from the popup menu to use for rzap\n')
end

zapfig = figure;
set(gcf, 'menubar','none','toolbar','none', 'pos', ...
         [figpos(1:3) round(figpos(4)/4)])
whitebg(gcf,'w');
new_pos = [.08 NaN .92 NaN];   %(new xstart and new width)
ax1 = axes;
pos = get(ax1, 'pos');

set(ax1, 'pos', [new_pos(1)  pos(2) new_pos(3) pos(4)])


config.xlim = [config.start_dd config.start_dd+config.ddrange];
cfg = aplotit(data, config, 'cur_ax', ax1, 'fn', fn,...
             'badrect', AA.badrect,...
              'badpoly', AA.badpoly, ...
              'badprof', AA.badprof);


axes(cfg.cur_ax);


disp('zap a polygon: click once for each vertex; doubleclick to finish\n')

clear gcbo
polyh = drawppolygon(cfg.cur_ax,'Color','k','LineWidth',2,'closed','yes');


polydday = get(polyh, 'xdata');
polybins  = get(polyh, 'ydata');



%[ddayM, binM] = meshgrid(data.dday, data.bins);
%alldday = ddayM(:);
%allbins = binM(:);
%ini = inpolygon(alldday, allbins, polydday, polybins); %index "inside" polygon


%%%---------------------------------
%% subtract one second to ensure our times are 
%%before ensemble times in codasdb              

%tbad = alldday(ini) ;
%badbins = allbins(ini);


%%create an ASCII file in the format as same as badbin.asc
%% formula is yyyy/mm/dd hh:mm:ss blk prf N bin1 bin2 bin3 binN

%%%tbad = alldday(ini) - 1/86400;
%%
%%fmt_str = ['\n%s   0   0  1 %d  '];
%%FID=fopen(outfile, 'a');
%%for ii=1:length(tbad)
%%   fprintf(FID, '\n%s 0 0 1 %d', to_date(yr, tbad(ii),'s'), badbins(ii));
%%end
%%fclose(FID);
%%

set(zapfig, 'position',  [figpos(1:3) round(figpos(4)/4)]);
close(zapfig)


%for output

%badbinstruct.dday = tbad;
%badbinstruct.bins = badbins;


badbinstruct.dday = polydday;
badbinstruct.bins = polybins;

