;+
; NAME:
;           EIS_LINE_VALUES
;
; PROJECT:
;           SolarB EIS
;
; PURPOSE:
;           Function to calculate the properties of a line window - defined
;           by a central wavelength. These include;
;               p0   - central pixel
;               p1   - lower pixel node
;               p2   - upper pixel node
;               ccd  - 1/2 if CCD1 or CCD2
;               quad -
;               w1   -
;               w2   -
;
; CATEGORY:
;           EIS Technical Planning
;
; INPUTS:
;           line  - an "eis_line" structure
;           width - window width
;           slitindex - an index that identifies the EIS slit
;
; HISTORY:
;           V0 Written by: John Rainnie, RAL
;              j.rainnie@rl.ac.uk (Dec 2005)
;           V1, 1-Feb-2007, Peter Young
;              added slitindex input
;           v0.3 JAR 16-Apr-2007
;               Corrected quad calculation
;           v0.4 JAR 18-Apr-2007
;               Remove annoying message
;
;-
;************************************************************************
FUNCTION eis_line_values , line , width, slitindex

; Get central pixel value
p0      = eis_wavelength_to_pixels(line.wavelength, slitindex)
; Populate p0, p1 and p2 values
line.p0 = p0
line.p1 = p0 -  width/2
line.p2 = p0 + (width - 1)/2

; OK, determine CCD and quad values
CASE (line.wavelength GT 24000) OF
    0:  BEGIN
            line.ccd      = 1
            IF (p0 LT 1024) THEN quad = 0 ELSE quad = 1
        END
    1:      BEGIN
            line.ccd      = 2
            IF (p0 LT 1024) THEN quad = 2 ELSE quad = 3
        END
ENDCASE
line.quad = quad

IF (width GT 1020) THEN BEGIN

    ;print,"Adjusting pixel values to account for full CCD readout!"
    IF (quad EQ 0) OR (quad EQ 2) THEN BEGIN

        line.p0 = 512
        line.p1 = 0
        line.p2 = 1023

    ENDIF ELSE BEGIN

        line.p0 = 1536
        line.p1 = 1024
        line.p2 = 2047

    ENDELSE

ENDIF

; Get wavelength of window nodes
line.w1 = ROUND(eis_pixel_to_wavelength(line.p1 , line.ccd, slitindex) * 100.)
line.w2 = ROUND(eis_pixel_to_wavelength(line.p2 , line.ccd, slitindex) * 100.)

RETURN , line

END
