function fidrange, directory, filt=filt, range=range, days=days, $
		   keeppre=keeppre, time=time, padtime=padtime
;
;+
;   Name: fidrange
;
;   Purpose: return fileid range covered by yohkoh ref files on a directory
;  
;   Input Parameter:
;       directory - string containing path (default is current directory)
;
;   Optional Keyword Parameters:
;       filt - optional file filter (default is ada*)
;	range - if set, return value is first and last elements
;	days - if set, return value is uniq (yymmdd) portion of fids
;	keeppre - if set, return includes file prefix (ex: ada)
;	time -    if set, return  is formmatted time string
;
;   Output Paramters:
;       function returns fids matching filt on directory optionally
;	modified via. keyword parameters
;	
;   Calling Sequence: 
;	fids=fidrange([directory] [,filt=filt], [,/range] [,/days])
;
;   Category:
;	swmaint, system, dbase
;
;   History: slf 30-July-1992
;
;-
if n_elements(directory) eq 0 then directory=curdir()
if n_elements(filt) eq 0 then filt='ada*'
files=findfile(concat_dir(directory,filt))
break_file, files, log, path, fnames, versions

case 1 of 
   keyword_set(range): 	$
      outarr=[fnames(0) + versions(0), $
	      fnames(n_elements(fnames)-1) + versions(n_elements(fnames)-1)]
   keyword_set(days):  	$
      outarr=fnames(uniq(fnames))
   else:		$
      outarr=fnames + versions
endcase
;
;
last=n_elements(outarr)-1

if not keyword_set(keeppre) then begin
   outarr=strmid(outarr,3,11)
   case n_elements(padtime) of
      0: pad=[0,0]			     		; add no time 
      1: begin
            case padtime of 
              1   : pad=[0,90]		     		; pad stop 90 min
	      else: pad=(intarr(2)+padtime)*[-1,1]	; window (-pad/+pad)
	    endcase
         endcase
      2: pad=padtime			     		; user supplied pad
   endcase
   if keyword_set(time) then begin
      extime=fid2ex(outarr(0))
      for i=1,n_elements(outarr)-1 do $
         extime=[[extime], [fid2ex(outarr(i))]] ;convert to external vmt
;
;	 add padding (which may be 0)
	 extime(0,0)=addtime(extime(*,0),delta=pad(0))
 	 extime(0,last)=addtime(extime(*,last),delta=pad(1))        
         outarr=fmt_tim(extime)	
   endif
endif else outarr=files
;
return,outarr

end
