

#
# subroutine errcheck
# the call is $errmsg = &errcheck($ra,$dec,$start,$end)
# subroutine checks for valid ranges in RA, DEC and if the start date
# is after the end date.
#
# a null string is returned if no problem is found
#

sub errcheck {

($ra, $dec, $start, $end) = @_;

@MESSAGE = ('<center>RA is outside the valid range of <font color="#FF0000>0 to 24 hrs</font></center>',
            '<center>DEC is outside the valid range of <font color="#FF0000>-90 to +90 deg</font></center>',
            '<center>Reenter Dates<font color="#FF0000>End Date is before Start Date</font></center>'
);



# split ra hh:mm:ss
($ra_h,$ra_m,$ra_s) = split(':',$ra);

# split dec dd:mm:ss
($dec_d,$dec_m,$dec_s) = split(':',$dec);

# split star and end dates mm/dd/yyyy
($start_m,$start_d,$start_y) = split('/',$start);
($end_m,$end_d,$end_y) = split('/',$end);

$center_ra = 15.0*($ra_h + $ra_m/60.0 + $ra_s/3600.0);
$center_dec;

if ( $dec_d =~ /-/ ) {
    $center_dec = ($dec_d - $dec_m/60.0 - $dec_s/3600.0);
} else {
    $dec_d =~ s/\+//;
    $center_dec = ($dec_d + $dec_d/60.0 + $dec_s/3600.0);
}


$errmsg = '';

# check to see if ra and dec are within their valid ranges
if ( $center_ra < 0.0 || $center_ra > 360.0) {
$errmsg = $errmsg.$MESSAGE[0];
    exit;
}

if ( $center_dec < -90.0 || $center_dec > 90.0) {
$errmsg = $errmsg.$MESSAGE[1];
    exit;
}

#check start and end dates
# 

if ( $end_y < $start_y ) {
   $errmsg = $errmsg.$MESSAGE[2];
   exit;                 } 
else {
   if ( $end_y == $start_y ) {
      if ( $end_m < start_m ) {
         $errmsg = $errmsg.$MESSAGE[2];
         exit;                }
                             } 
      else {
         if ( $end_m == $start_m ) {
            if ( $end_d < $start_d ) {
               $errmsg = $errmsg.$MESSAGE[2];
               exit;                 }
                                   }
           }
       }
 
return ($errmsg);

}

