;+
; PROJECT:
;	SXI-M Ground Data System
;
; NAME:
;	MAKE_BKGD
;
; PURPOSE:
;	Process level-1 backgrounds for subtraction.
;
; EXPLANATION:
;	TBS
;
; CALLING SEQUENCE:
;   function make_bkgd,dark_path,index1,background
;
; INPUTS:
;	dark_path		=	directory where background files are located
;	index1			=	FITS level-1 header index for solar image
;						(contains names of two background files)
;
; OUTPUTS:
;	background		=	512x512 background array
;
; OPTIONAL INPUT KEYWORDS:
;	N/A
;
; EXTERNAL CALLS:
;   N/A
;
; CALLED BY:
;	SXIM_PREP
;
; METHOD:
;	TBS
;
; HISTORY:
;   003.000 Written by Steven Hill at NOAA/SEC 29 Oct 2001
;-
function make_bkgd,dark_path,index1,background

browse_msg=''

if (strmid(index1.LONGDARK,0,5) eq 'ERROR') $
     or (strmid(index1.SHRTDARK,0,5) eq 'ERROR') then begin

  browse_msg='ERROR: NO DARK FRAME'
  if (strmid(index1.SHRTDARK,0,5) eq 'ERROR') then $
    index1.SHRTDARK='ERROR: SQL RECORD'
  if (strmid(index1.LONGDARK,0,5) eq 'ERROR') then $
    index1.LONGDARK='ERROR: SQL RECORD'

endif else begin

  sd_fn_struct=sxi_parse_name(index1.SHRTDARK)
  sd_fn_struct.extension='.FTS'
  sd_file_full=sxi_make_name(sd_fn_struct)

  ld_fn_struct=sxi_parse_name(index1.LONGDARK)
  ld_fn_struct.extension='.FTS'
  ld_file_full=sxi_make_name(ld_fn_struct)

  ; Read background files
  sd_file_full=dark_path+sd_fn_struct.year+'\'+sd_fn_struct.month $
   +'\'+sd_fn_struct.day+'\'+sd_file_full
  ld_file_full=dark_path+ld_fn_struct.year+'\'+ld_fn_struct.month $
   +'\'+ld_fn_struct.day+'\'+ld_file_full

  ; hp test use only:
  ;        sd_file_full=dark_path+sd_fn_struct.year+'/'+sd_fn_struct.month $
  ;	   +'/'+sd_fn_struct.day+'/'+sdfile
  ;        ld_file_full=dark_path+ld_fn_struct.year+'/'+ld_fn_struct.month $
  ;	   +'/'+ld_fn_struct.day+'/'+ldfile

  short_dark=readfits(sd_file_full,hdr_sd,exten_no=0,/silent)
  long_dark=readfits(ld_file_full,hdr_ld,exten_no=0,/silent)										;V001.00X

  ; Verify existance and integrity of background files

  if size(short_dark,/n_dimensions) eq 0 or size(long_dark,/n_dimensions) eq 0 then begin
    browse_msg='ERROR: NO DARK FRAME'
    !error_state.code=0 ; reset error code to zero so python processing will continue.
    if size(short_dark,/n_dimensions) eq 0 then $
      index1.SHRTDARK='ERROR: FITS FILE'
    if size(long_dark,/n_dimensions) eq 0 then $
      index1.LONGDARK='ERROR: FITS FILE'
  endif else begin

  ; Compute background

    index_sd=fitshead2struct(hdr_sd)																		;V001.00X
    index_ld=fitshead2struct(hdr_ld)																		;V001.00X

    background=short_dark + (long_dark-short_dark) * $
     float((index1.exptime-index_sd.exptime)/(index_ld.exptime-index_sd.exptime))
  endelse

endelse

return,browse_msg

end