function [mintime, maxtime]=minmaxsptimes(data)
% Find the minimum and maximum of the spike times in each channel
% Usage: [mintime, maxtime]=minmaxsptimes(data)
% Input:
% data  (spike times as a structural array of multiple dimensions e.g. channels; channels x trials; 
%        can also accept a 1d matrix of spike times)
% Output:
% mintime       (minimum of the spike time across channels)
% maxtime       (maximum of the spike time across channels)
%
dtmp='';
if isstruct(data)
   data=reshape(data,numel(data),1);
   C=size(data,1);
   fnames=fieldnames(data);
   mintime=zeros(1,C); maxtime=zeros(1,C);
   for ch=1:C
     eval(['dtmp=data(ch).' fnames{1} ';'])
     if ~isempty(dtmp)
        maxtime(ch)=max(dtmp);
        mintime(ch)=min(dtmp);
     else
        mintime(ch)=NaN;
        maxtime(ch)=NaN;
     end
   end;
   maxtime=max(maxtime); % maximum time
   mintime=min(mintime); % minimum time
else
     dtmp=data;
     if ~isempty(dtmp)
        maxtime=max(dtmp);
        mintime=min(dtmp);
     else
        mintime=NaN;
        maxtime=NaN;
     end
end
if mintime < 0 
   error('Minimum spike time is negative'); 
end
