function [min_val, min_idx, max_min_time] = calcMinVm(s, max_idx)

% calcMinVm - Calculates the minimal value of the spike_shape, s. 
%
% Usage:
% [min_val, min_idx, max_min_time] = calcMinVm(s, max_idx)
%
% Description:
%
%   Parameters:
%	s: A spike_shape object.
%	max_idx: The index of the maximal point of the spike_shape [dt].
%
%   Returns:
%	min_val: The min value [dy].
%	min_idx: Its index in the spike_shape [dt].
%	max_min_time: Time from max to min [dt].
%
% See also: period, spike_shape, trace/calcMin
%
% $Id$
%
% Author: 
%   Cengiz Gunay <cgunay@emory.edu>, 2004/08/02
%   Based on @spike_trace/shapestats by Jeremy Edgerton.

% Copyright (c) 2007 Cengiz Gunay <cengique@users.sf.net>.
% This work is licensed under the Academic Free License ("AFL")
% v. 3.0. To view a copy of this license, please look at the COPYING
% file distributed with this software or visit
% http://opensource.org/licenses/afl-3.0.php.

[min_val, min_idx] = calcMin(s.trace, period(max_idx, length(s.trace.data)));
min_idx = min_idx + max_idx - 1;
max_min_time = min_idx - max_idx;

if max_min_time < 0
  error('Minimum voltage precedes peak!');
end