;+
; Project     : SOLAR-B - EIS
;
; Name        : EIS_CPT_READTIME
;
; Purpose     : Reads time from ORL engineering file.
;
; Explanation : The ORL engineering file contains the time delay in the format :
;                   yyyy/mm/dd.hh:mm:ss or a DOUBLE in seconds.
;
; Use         : < time = eis_cpt_readtime (timestring) >
;
; Inputs      : timestring  : STRING time delay in yyyy/mm/dd.hh:mm:ss or a DOUBLE in seconds
;
; Opt. Inputs :
;
; Outputs     : time        : DOUBLE time in seconds or [-]1 if no match.
;
; Opt. Outputs: None.
;
; Keywords    : None.
;
; Calls       : None.
;
; Common      : None.
;
; Restrictions: None.
;
; Side effects: None.
;
; Category    : EIS_CPT.
;
; Prev. Hist. : None.
;
; Written     : Martin Carter RAL 14/05/07
;
; Modified    : Version 0.0, 14/05/07, MKC
;
; Version     : 0.0, 14/05/07
;-
;**********************************************************

FUNCTION eis_cpt_readtime, timestring

  ; check if in DOUBLE format

  IF eis_cpt_readnum(timestring, VALUE=value) THEN RETURN, value

  ; check if in hh:mm:ss format

  text = STREGEX(timestring,'^([0-9]{2}):([0-9]{2}):([0-9]{2})',/EXTRACT, /SUBEXPR)

  ; check if match

  IF STRLEN(text[0]) EQ STRLEN(timestring) AND timestring NE '' THEN BEGIN

    hhmmss = DOUBLE(text[1:3])

    IF hhmmss[0] LT 24 AND hhmmss[1] LT 60 AND hhmmss[2] LT 60 THEN RETURN, 3600*hhmmss[0]+60*hhmmss[1]+hhmmss[2]

  ENDIF

  ; check if in dd.hh:mm:ss format

  text = STREGEX(timestring,'^([0][0-9])\.([0-9]{2}):([0-9]{2}):([0-9]{2})',/EXTRACT, /SUBEXPR)

  ; check if match

  IF STRLEN(text[0]) EQ STRLEN(timestring) AND timestring NE '' THEN BEGIN

    hhmmss = DOUBLE(text[1:4])

    IF hhmmss[0] LT 24 AND hhmmss[1] LT 60 AND hhmmss[2] LT 60 THEN RETURN, 24L*3600*hhmmss[0]+3600*hhmmss[1]+60*hhmmss[2]+hhmmss[3]

  ENDIF

  ; check if in yyyy/mm/dd.hh:mm:ss format

  text = STREGEX(timestring,'^([0]{4})/([0]{2})/([0][0-9])\.([0-9]{2}):([0-9]{2}):([0-9]{2})',/EXTRACT, /SUBEXPR)

  ; check if match

  IF STRLEN(text[0]) EQ STRLEN(timestring) AND timestring NE '' THEN BEGIN

    hhmmss = DOUBLE(text[3:6])

    IF hhmmss[0] LT 24 AND hhmmss[1] LT 60 AND hhmmss[2] LT 60 THEN RETURN, 24L*3600*hhmmss[0]+3600*hhmmss[1]+60*hhmmss[2]+hhmmss[3]

  ENDIF

  RETURN, -1

END





