#-*-Perl-*-

#Tack on the names of the subroutines to the list of functions
foreach ("cathy","adam","cth","corn","cr","cs","dp","hc","fw",
	 "geech","itb","boffo","sc","stsp","ziggy") {
    $hof{$_} = 14;
}

#UExpress http://www.uexpress.com/ups/comics/
sub uexpress {
    #get arguments (fp stands for file prefix)
    my $time = shift;
    my $name = shift;
    my $fp   = shift;
    my @ltime = localtime($time);
    my $rec = {
	'name' => strftime("${name}-${date_fmt}.gif",@ltime),
	'base' => "http://www.uexpress.com",
	'page' => strftime("/ups/comics/$fp/pages/$fp%y%m%d.html",
			   @ltime),
	'exprs' => ["(\/ups\/comics\/$fp\/strips\/$fp\\d+\.gif)"]
    };
    return $rec;
}

#Cathy http://www.uexpress.com/ups/comics/ca/
sub cathy {
    return uexpress(shift(@_),"Cathy","ca");
}

#Adam@home http://www.uexpress.com/ups/comics/ad/
sub adam {
    return uexpress(shift(@_),"Adam_at_Home","ad");
}

#Close to Home http://www.uexpress.com/ups/comics/cl/
sub cth {
    return uexpress(shift(@_),"Close_to_Home","cl");
}

#Cornered http://www.uexpress.com/ups/comics/co/
sub corn {
    return uexpress(shift(@_),"Cornered","co");
}

#Crabby Road http://www.uexpress.com/ups/comics/cr/
sub cr {
    return uexpress(shift(@_),"Crabby_Road","cr");
}

#Crankshaft http://www.uexpress.com/ups/comics/cs/
sub cs {
    return uexpress(shift(@_),"Crankshaft","cs");
}

#The Duplex http://www.uexpress.com/ups/comics/dp/
sub dp {
    return uexpress(shift(@_),"The_Duplex","dp");
}

#Heart of the City http://www.uexpress.com/ups/comics/hc/
sub hc {
    return uexpress(shift(@_),"Heart_of_the_City","hc");
}

#Fifth Wave http://www.uexpress.com/ups/comics/fw/
sub fw {
    my $today = shift(@_);
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = 
        localtime($today);
    if ($wday == 0) {
        return uexpress($today,"Fifth_Wave","fw");
    } else {
	return undef;
    }
}

#Geech http://www.uexpress.com/ups/comics/ge/
sub geech {
    return uexpress(shift(@_),"Geech","ge");
}

#In the Bleachers http://www.uexpress.com/ups/comics/bl/
sub itb {
    return uexpress(shift(@_),"In_the_Bleachers","bl");
}

#Mister Boffo http://www.uexpress.com/ups/comics/mb/
sub boffo {
    return uexpress(shift(@_),"Mister_Boffo","mb");
}

#Second Chances http://www.uexpress.com/ups/comics/se/
sub sc {
    return uexpress(shift(@_),"Second_Chances","se");
}

#Stone Soup http://www.uexpress.com/ups/comics/ss/
sub stsp {
    return uexpress(shift(@_),"Stone_Soup","ss");
}

#Us & Them http://www.uexpress.com/ups/comics/ut/
sub uat {
    return uexpress(shift(@_),"Us_and_Them","ut");
}

#Ziggy http://www.uexpress.com/ups/comics/zi/
sub ziggy {
    return uexpress(shift(@_),"Ziggy","zi");
}

1;
