function [II_array spikes]=spike_detection(VV)
global dt
% Calculating dV/dt
% dvdt=zeros(1,length(VV));
% for n=3:(length(VV)-3)
% dvdt(n)=(-VV(2+n)+8*VV(1+n)-8*VV(-1+n)+VV(-2+n))/(12*dt);
% end
% ddvddt=zeros(1,length(VV));
% for n=3:(length(VV)-3)
% ddvddt(n)=(-dvdt(2+n)+8*dvdt(1+n)-8*dvdt(-1+n)+dvdt(-2+n))/(12*dt);
% end
% sumdp=zeros(1,length(VV));
% sumdn=zeros(1,length(VV));
% for n=176:(length(VV)-176)
% sumdpost(n)=sum(dvdt(n:n+175));
% sumdpre(n)=sum(dvdt(n-175:n));
% end
% figure(2)
% plot(sumdpre)
% figure(3)
% plot(sumdpost)
% calculating time postion of spikes
s_count=1;
nn=400;
spikes=0;
for n=351:length(VV)-351
if n> length(VV-3)
break
% elseif VV(n) > -35 && VV(n+1) < VV(n) && VV(n) > VV(n-1) && nn > 2/dt && sumdpre(n) > 3000 && sumdpost(n) < -3000
%elseif nn > 3.5/dt && VV(n) > -35 && VV(n+1) < VV(n) && VV(n) > VV(n-1) && sum(diff(VV(n-175:n))) > 8700*dt && sum(diff(VV(n:n+175))) < -1200*dt
elseif nn > 3.5/dt && VV(n) > -35 && VV(n+1) < VV(n) && VV(n) > VV(n-1) && sum(diff(VV(n-175:n))) > 1100*dt && sum(diff(VV(n:n+175))) < -1200*dt % nominal used for running the response maps?
%elseif nn > 3.5/dt && VV(n) > -35 && VV(n+1) < VV(n) && VV(n) > VV(n-1) && sum(diff(VV(n-175:n))) > 500*dt && sum(diff(VV(n:n+175))) < -500*dt %detect EPSCs (green)
%elseif nn > 3.5/dt && VV(n) > -35 && VV(n+1) < VV(n) && VV(n) > VV(n-1) && sum(diff(VV(n-175:n))) > 3000*dt && sum(diff(VV(n:n+175))) < -3000*dt %detect spikes (red)
spikes(s_count)=n*dt;
s_count=s_count+1;
nn=1; %refractory period
end
nn=nn+1;
end
% calculating II times
II_array=zeros(1,length(spikes)-1);
for n=1:length(spikes)-1
II_array(n)=spikes(n+1)-spikes(n);
end
% total_count=0;
% for n=1:length(II_array)
% total_count=total_count+II_array(n);
% spike(n)=total_count;
% end
spikes=round(spikes/dt);
spikes=round(spikes);
spikes_m50=spikes-350;
spikes_p50=spikes+350;
%close all
time=(dt:dt:length(VV)*dt);
if spikes > 0
figure(124)
plot(time(spikes),VV(spikes)+3,'r*')
hold on
% plot(spikes_m50,VV(spikes_m50),'bo')
% plot(spikes_p50,VV(spikes_p50),'go')
plot(time,VV)
end
% figure(1)
% plot(VV)
% figure(2)
% plot(VV,gradient(VV))