#!/usr/bin/perl 
@datetime=localtime(time);
$monimplant='';
$dayimplant='';
if($datetime[4]+1 < 10)
{
    $monimplant='0';
}
if($datetime[3]<10)
{
    $dayimplant='0';
}
$today=join('', ($datetime[5]+1900),$monimplant,($datetime[4]+1),$dayimplant,($datetime[3]));
$var{year}=substr $today,0,4;
#get the query string
if($ENV{REQUEST_METHOD} eq 'GET')
{
    $query=$ENV{QUERY_STRING};
}
if($ENV{REQUEST_METHOD} eq 'POST')
{
    read(STDIN,$query,$ENV{CONTENT_LENGTH});
}
$query=~s/\+/ /g;
$query=~ s/%(..)/chr(hex($1))/ge ;
   #decode query string into variable list
##### set defalt values #####

##### get query #########
if (defined($query))
{
    @list=split('&', $query);
    foreach (@list)
    {
	my ($key,$value) = split /=/;
	$var{$key}=$value;
    }
}

sub datediff
{
    ($date1,$date2)=@_;
    $day1=substr $date1, 6,2;
    $day2=substr $date2, 6,2;
    $mon1=substr $date1, 4,2;
    $mon2=substr $date2, 4,2;
    $yr1=substr $date1, 0,4;
    $yr2=substr $date2, 0,4;
    system "../private/julian/j.run $yr1 $mon1 $day1 0 0 0 > junk";
    open(TIME, "<junk");
    $junk=<TIME>;
    $jday1=<TIME>;
    $jday1=substr $jday1, 5;
    close(TIME);
    system "../private/julian/j.run $yr2 $mon2 $day2 0 0 0 > junk";
    open(TIME, "<junk");
    $junk=<TIME>;
    $jday2=<TIME>;
    $jday2=substr $jday2, 5;
    close(TIME);
    $daydiff=$jday1-$jday2;
    return($daydiff)
}



print"Content-type: text/html\n\n";
print"<HTML><HEAD><TITLE>ADD Dates to the schedule</TITLE></HEAD>";
print"<BODY bgcolor=dddddd><TABLE>";


################
### help bar ###
################

open(HELP, "<helpbar");
foreach(<HELP>)
{
    chomp;
    if(!($_=~m/newdate/)or !($_=~m/href/))
    { 
	print"$_";
    }
    elsif($_ =~m/newdate/)
    {
	($first,$second)=split('>',$_);
	print"$first ><FONT color=ff0000>$second ></FONT>";
    }
}
close(HELP);

print'</FORM></TABLE><TABLE>';



#########################################
###### initial web page #################
#########################################
if(!defined($var{run}))
{
    print('<FORM method=GET ACTION="newdate.pl"><TR><TD width=150></TD><TD>');
#    print('<INPUT type="text" name="myname" size="4" maxlength="8"></TD></TR></TABLE><TABLE>');
#print('<TR><TD>Password<INPUT type="password" name="password" size=8></TD><TD>');
    print(`ls ../private/runs > junk`);
    print("<TR><TD>Choose a run by its starting date:</TD><TD>");
    open(RUN, "<junk");
    foreach(<RUN>)
    {
	chomp;
	$thisyear=substr $_,0,4;
	$startrun=substr $_,0,8;
	$endrun=substr $_,9,8;
	if($thisyear == $var{year})
	{
	    $yy1=substr $_,0,4;
	    $mm1=substr $_,4,2;
	    $dd1=substr $_,6,2;
	    $yy2=substr $_,9,4;
	    $mm2=substr $_,13,2;
	    $dd2=substr $_,15,2;
	    $ym1=join('',$yy1,$mm1);
	    $ym2=join('',$yy2,$mm2);
	    print'<INPUT type="radio" name="run" value="',$_,'">',"$yy1/$mm1/$dd1-$yy2/$mm2/$dd2";
	    if(((substr $today,0,4)eq $yy1)or((substr $today,0,4)eq $yy2))
	    {
		if(($today<=$endrun)and($today>=$startrun))
		{
		    print' - Current run!';
		}
		$todayym=substr $today,0,6;
		if(($today<$startrun)and($today>$lastendrun)and(($ym1 == $todayym)or($ym1==$todayym+1)))
		{
		    print' -up coming run!';
		}
	    }
	    $lastendrun=$endrun;
	    print'<BR>';
	}
    }
    close(RUN);
    print('</TD></TR><TR><TD>');
#    print('</TD><TD width=300><INPUT type="radio" name="loc" value="1">HiRes 1<BR>');
#    print('<INPUT type="radio" name="loc" value="2">HiRes 2</TD>');
    print('<TD> <INPUT type=submit value="Enter"></TD></TR></TABLE><TABLE><TR><TD><BR>');
    print'</TR></TABLE></FORM><TABLE>';
    print'<TR><TD>------------------------------------------</TD></TR>';
    print'<FORM method=GET ACTION="viewsched.pl">';
    print'<INPUT type="submit" name="year" value="',$var{year}-1,'">';
    print"<-$var{year}->";
    print'<INPUT type="submit" name="year" value="',$var{year}+1,'">';
    print'</FORM>';
    print'<FORM method=GET ACTION="newdate.pl">';
    print"<TR><TD>The selected year is $var{year}</TD></TR><TR><TD>If you would like to choose a different year please enter it below</TD></TR><TR><TD>";
    print'<INPUT type="text" size="4" maxlength=4 name="year"><INPUT type="submit" value="Okay">';
}

#########################################################
######## look at the run, mabey choose to edit ##########
#########################################################
if((defined($var{run}))and(!defined($var{edit}))and($var{day} ne "new")and(!defined($var{drop})))
{

    #####################################
    ####### add a date to the run #######
    #####################################
    if(defined($var{add}))
    {
	print"</TABLE><TABLE>";
	$found=0;
	open(RUN, "<../private/runs/$var{run}");
	open(NEW, ">runtmp$$");
	foreach(<RUN>)
	{
	    chomp;
	    ($date,$moonlt,$moonut,$length,$jday,$hi1,$hi2,$hi3,$comm)=split('#',$_);
	    
	    if(($date>$var{day})and(!$found))
	    {
		$found=1;
		print NEW "$var{day}#$var{moonlt}#$var{moonut}#$var{length}#$var{jday}####$var{comment}\n";
	    }
	    print NEW "$_\n";
	}
	if(!$found)
	{
	    print NEW "$var{day}#$var{moonlt}#$var{moonut}#$var{length}#$var{jday}####$var{comment}\n";
	}
	close(NEW);
	close(RUN);
	system "mv runtmp$$ ../private/runs/$var{run}";
    print"<BR><BR><BR></TABLE><TABLE>";
    }
    ###################################
    ##### Drop a date from the run ####
    ###################################
#    if(defined($var{sure}))
#    {
#	open(RUN, "<../private/runs/$var{run}");
#	open(NEW, ">junk");
#	foreach(<RUN>)
#	{
#	    chomp;
#	    ($date,$moonlt,$moonut,$length,$jday,$hi1,$hi2,$hi3,$comm)=split('#',$_);
#	    if($date != $var{day})
#	    {
#		print NEW "$date#$moonlt#$moonut#$length#$jday#$hi1#$hi2#$hi3#$comm\n";
#	    }
#	}
	
#	close(NEW);
#	close(RUN);
#	system "mv junk runs/$var{run}";
#    }
    #############################
    ### edit the run ############
    #############################
    if(defined($var{changed}))
    {
	open(RUN, "<../private/runs/$var{run}");
	open(NEW, ">runtmp$$");
	foreach(<RUN>)
	{
	    chomp;
	    ($date,$moonlt,$moonut,$length,$jday,$hi1,$hi2,$hi3,$comm)=split('#',$_);
	    if($date != $var{day})
	    {
		print NEW "$_\n";
	    }
	    elsif($date == $var{day})
	    {
		print NEW "$var{date}#$var{moonlt}#$var{moonut}#$var{length}#$var{jday}#$var{hi1}#$var{hi2}#$var{hi3}#$var{comm}\n";
	    }
	}
	close(NEW);
	close(RUN);
	
	system"mv runtmp$$ ../private/runs/$var{run}";
    }
    
    ################################
    ###### display the run #########
    ################################
    @datetime=localtime(time);
    $monimplant='';
    $dayimplant='';
    if($datetime[4]+1 < 10)
    {
	$monimplant='0';
    }
    if($datetime[3]<10)
    {
	$dayimplant='0';
    }
    $today=join('', ($datetime[5]+1900),$monimplant,($datetime[4]+1),$dayimplant,($datetime[3]));
    print"Todays date is: $today<BR>";
    print"Chosen run: $var{run}";
    print"</TABLE><TABLE>";
    print'<FORM method=POST ACTION="newdate.pl">';
    print'<INPUT type=hidden name=day value=new>';
    print"<INPUT type=hidden name=run value=$var{run}>";
    print'Create a <INPUT type=submit value="New"> date to add to this run</FORM></TABLE><TABLE>';
    print"</FROM>\n";
    open(RUN, "<../private/runs/$var{run}");
    foreach(<RUN>)
    {
	chomp;
	($date,$moon{lt},$moon{ut},$length,$jday,$hires1,$hires2,$hires3,$comm,@waste)=split /#/;
	($dw,@rest)=split(' ',$moon{lt});
	print'<FORM method=POST ACTION="newdate.pl">';
	print"<INPUT type=hidden name=day value=$date>";
	print"<INPUT type=hidden name=run value=$var{run}>";
	print"<TR><TD>$date</TD><TD>$moon{lt}</TD><TD>$moon{ut}</TD><TD>$length</TD><TD>$jday</TD><TD>$hires1</TD><TD>$hires2</TD><TD>$hires3</TD><TD>$comm</TD>";
	print"<TD><INPUT type=submit name=edit value=EDIT></TD>";
########print"<TD><INPUT type=submit name=drop value=DROP></TD>";
	print"</TR>";
	print"</FORM>\n";
	
    }
    print'</FORM>';
}

########################################
#### add a date to the run ############# if it pleases you
########################################
if(($var{day} eq "new")and(defined($var{run})))
{
    $exampdate=substr $var{run},0,8;
    print'<TABLE><FORM method=POST ACTION="newdate.pl">';
    print"The New date will be added to the Run <B>$var{run}</B>";
    print"</TABLE><TABLE>";

    print'<TR><TD></TD><TD></TD><TD>EXAMPLES</TD></TR>';
    print"<TR><TD><FONT color=ff0000>Date:</FONT></TD><TD><INPUT type=text name=day size=8 maxlength=8></TD><TD>$exampdate</TD></TR>";
    print'<TR><TD>Dark in LT:</TD><TD><INPUT type=text name=moonlt size=30></TD><TD>Tue Oct 31 2000 20:46 MST (moonset) to Wed Nov 1 2000 05:29 MST (twilight)</TD></TR>';
    print'<TR><TD>Dark in UT:</TD><TD><INPUT type=text name=moonut size=30></TD><TD>Wed Nov 1 2000 03:46 UT (moonset) to Wed Nov 1 2000 12:29 UT (twilight)</TD></TR>';
    print'<TR><TD>Length:</TD><TD><INPUT type=text name=length size=5 maxlength=6></TD></TR>';
    print'<TR><TD>Julian Day:</TD><TD><INPUT type=text name=jday></TD></TR>';
    print'<TR><TD>Comment:</TD><TD><INPUT type=text size=15 name=comment></TD></TR>';
    print'<TR><TD></TD><TD><INPUT type=submit name="add" value="Add to Run"></TD></TR>';
    print"<INPUT type=hidden name=run value=$var{run}>";
    print'</FORM>';
}




##################################
##### lets edit this sucker ######
##################################
if((defined($var{run}))and(defined($var{day}))and(defined($var{edit})))
{
    print'</TABLE><TABLE><FORM method=POST ACTION="newdate.pl">';
    open(RUN, "<../private/runs/$var{run}");
    foreach(<RUN>)
    {
	chomp;
	($date,$moonlt,$moonut,$length,$jday,$hi1,$hi2,$hi3,$comment)=split('#', $_);
	if($date eq $var{day})
	{
	    print"heloo helloo";
	    print"<TR><TD>Date:</TD><TD>$var{day}</TD></TR>";
	    print"<INPUT type=hidden name=date value=$var{day}>";
############	    print"<INPUT type=text size=8 maxlength=8 name=date value=$var{day}></TD></TR>";
	    print'<TR><TD>Moon in LT:</TD><TD><INPUT type=text size=40 name=moonlt value="',$moonlt,'"></TD></TR>';
	    print'<TR><TD>Moon in UT:</TD><TD><INPUT type=text size=40 name=moonut value="',$moonut,'"></TD></TR>';
	    print"<TR><TD>Length:</TD><TD><INPUT type=text size=5 maxlength=5 name=length value=$length></TD></TR>";
	    print"<TR><TD>Julian day:</TD><TD><INPUT type=text size=15 name=jday value=$jday></TD></TR>";
	    print'<TR><TD>Comment:</TD><TD><INPUT type=text size=15 name=comm value="',$comment,'"></TD></TR>';
	    print"<INPUT type=hidden name=hi1 value=$hi1><INPUT type=hidden name=hi2 value=$hi2><INPUT type=hidden name=hi3 value=$hi3>";
	    print'<INPUT type=hidden name=run value="',$var{run},'">';
	    print"<INPUT type=hidden name=day value=$var{day}>";
	    print'<TR><TD></TD><TD><INPUT type=submit name="changed" value="Make the change"</TD></TR>';
########	    print'edit edit edit';
	}
    }
    close(RUN);
    print'</FORM>';
}

if((defined($var{run}))and(defined($var{day}))and($var{day} ne "new")and(!defined($var{edit})))
{
    
}





print'</TABLE></FORM></BODY></HTML>';








