
PRO layout_nm,image,name,head,hindex,msk=msk,mini=mini,maxi=maxi

@wload.com

   IF KEYWORD_SET(mini) THEN min_img = mini
   IF KEYWORD_SET(maxi) THEN max_img = maxi

   r1col  = FXPAR(head,"R1COL") - 20
   r1row  = FXPAR(head,"R1ROW") -  1
   r2col  = FXPAR(head,"R2COL") - 20 
   r2row  = FXPAR(head,"R2ROW") -  1

   detector = SXPAR(head,'DETECTOR')
   detector = STRCOMPRESS(detector,/REMOVE_ALL)

   disk = 1.1  ; default

   CASE detector OF

     'C1':  BEGIN 
             mf = 'mask_c1.fts'
             disk = 1.1
            END
     'C2':  BEGIN
             mf = 'mask_c2.fts'
             disk = 2.0
            END
     'C3':  BEGIN
             mf = 'mask_c3.fts'
             disk = 3.7
            END
   ELSE: mf = 'mask_c1.fts'
   ENDCASE


   IF N_ELEMENTS(mf) GT 0 THEN BEGIN               
;             IF img_resize EQ 1 THEN BEGIN
              IF KEYWORD_SET(msk) THEN BEGIN
                maske = msk.maske
                mh = msk.mh
              ENDIF ELSE BEGIN
                maske = readfitsl(GETENV('HOMED')+!delimiter+mf,mh)
              ENDELSE

               sz  = size(image)
               msz = size(maske)
          
               IF ( msz(1) LE sz(1) ) OR ( msz(2) LE sz(2) ) THEN BEGIN 

                og = 1	; occultuer and grid O.K.

                m1col  = FXPAR(mh,"R1COL")  
                m1row  = FXPAR(mh,"R1ROW") 
                m2col  = FXPAR(mh,"R2COL")
                m2row  = FXPAR(mh,"R2ROW")
                mnaxis1= FXPAR(mh,"NAXIS1")
                mnaxis2= FXPAR(mh,"NAXIS2")
                crpix1 = FXPAR(mh,"CRPIX1")
                crpix2 = FXPAR(mh,"CRPIX2")
                radius = FXPAR(mh,"RADIUS")

                tx1 = r1col > m1col
                tx2 = r2col < m2col
                ty1 = r1row > m1row
                ty2 = r2row < m2row

                tmp1 = image(tx1-r1col:tx2-r1col-1,ty1-r1row:ty2-r1row-1)

               IF lo.cmask EQ 1 THEN BEGIN      

                tmp2 = maske(tx1-m1col:tx2-m1col-1,ty1-m1row:ty2-m1row-1)
                inm = WHERE( tmp2 EQ 255 )
                tmp1(inm) = 0
          
                image(tx1-r1col:tx2-r1col-1,ty1-r1row:ty2-r1row-1) = tmp1
               ENDIF
              ENDIF ELSE BEGIN
                og = 0	; can't insert mask and grid
              ENDELSE

   ENDIF

                
              IF ( lo.cgrid EQ 1 ) AND ( og EQ 1 ) THEN BEGIN 
               
              ; dt = SXPAR(head,"DATE-OBS") + ' ' + SXPAR(head,"TIME-OBS")
               
                   date_o = SXPAR(head,'DATE_OBS')  
                   time_o = SXPAR(head,'TIME_OBS')
                   IF DATATYPE(date_o) EQ 'INT' THEN BEGIN
                     date_o = SXPAR(head,'DATE-OBS')
                     time_o = SXPAR(head,"TIME-OBS")
                   ENDIF 
                
               dt = date_o + ' ' + time_o
                  
               ephemerix,dt,p=0,b0=b0,l0=l0
       
               grid = tmp1
               grid(*,*)=0

               sz = size(tmp1)
               dia = FIX(radius*2.0 / disk)
               sungrid,0,b0,l0,grid=grid,size=[sz(1),sz(2)],center=[sz(1)/2.,sz(2)/2.],pixeld=dia, $
                     charsize=1.5,latlab=[-60,-30,30,60]
                             
               tmp1(where(grid GT 0 ))= max_img
               ;tmp1(where(grid GT 0 ))= !d.n_colors - 1

               image(tx1-r1col:tx2-r1col-1,ty1-r1row:ty2-r1row-1) = tmp1
                
              ENDIF 
              
              
              IF lo.clogo EQ 1 then BEGIN
              
                logo_path = GETENV('HOMED') + !delimiter+'lasco_logo.dat'
                restore, logo_path

                i = WHERE(logo EQ 255)
                logo_s = size(logo)
                img_s = size(image) 

                image = image > min(image) < max(image)
                tmp1 = image((img_s(1)-1)-(logo_s(1)-1):img_s(1)-1, $
                                   0:img_s(2)-1)
                   
               ;tmp1(i) = 255 - tmp1(i)
                tmp1(i) = logo(i)
                image((img_s(1)-1)-(logo_s(1)-1):img_s(1)-1, $
                            0:img_s(2)-1) = tmp1
              
              ENDIF                
      
               IF lo.cdate EQ 1 THEN BEGIN
              
                   date_o = SXPAR(head,'DATE_OBS')  
                   time_o = SXPAR(head,'TIME_OBS')
                   IF DATATYPE(date_o) EQ 'INT' THEN BEGIN
                     date_o = SXPAR(head,'DATE-OBS')
                     time_o = SXPAR(head,"TIME-OBS")
                   ENDIF 

                   dt = date_o + ' ' + STRMID(time_o,0,8) + ' UT'
                   ta = textarray(dt,charsize=1.5)

                i = WHERE(ta EQ 255)
                ta_s = size(ta)

                image = image > min(image) < max(image)
                img_s = size(image)
                
                IF ta_s(1) LT img_s(1) THEN BEGIN      
                 tmp1 = image(0:ta_s(1)-1,(img_s(2)-1)-(ta_s(2)-1):(img_s(2)-1))
                                                      
                 tmp1(i) = ta(i)

                 image(0:ta_s(1)-1,(img_s(2)-1)-(ta_s(2)-1):(img_s(2)-1)) = tmp1 
                ENDIF         
               ENDIF


               IF lo.cid EQ 1 THEN BEGIN
              
                ta = textarray(name,charsize=1.0)

                i = WHERE(ta EQ 255)
                ta_s = size(ta)
                                 
                image = image > min(image) < max(image)
                img_s = size(image)

                IF ta_s(1) LT img_s(1) THEN BEGIN                
                 tmp1 = image((img_s(1)-1)-(ta_s(1)-1):img_s(1)-1,(img_s(2)-1)-(ta_s(2)-1):(img_s(2)-1))                                                      
                 tmp1(i) = ta(i)
                 image((img_s(1)-1)-(ta_s(1)-1):img_s(1)-1,(img_s(2)-1)-(ta_s(2)-1):(img_s(2)-1)) = tmp1 
                ENDIF          
               ENDIF



                                
;             ENDIF
            
            ; next line was added for the mmod.pro  (07/02/96)
            ; were min_img and max_img are not defined yet.
            
            IF n_elements(min_img) EQ 0 THEN min_img = -.5 & max_img = 50.
            
            ;TVSCL,image > min_img < max_img ,r1col,r1row

            ; also hindex is not known in mmod.pro (07/02/96)
            IF datatype(hindex) NE 'UND' THEN BEGIN
             IF hindex GT -1 THEN shandle,image,head,hindex
            ENDIF
           END

RETURN
END
