#!/usr/bin/perl
use CGI qw(:standard);
$days = param("days");
$volume = param("volume");
$day = param("day");
$bom = "Book of Mormon";
$ot = "Old Testament";
$nt = "New Testament";
$dc = "Doctrine and Covenants";
$pgp = "Pearl of Great Price";
$sw = "Standard Works";
if ($volume eq $bom)
{
$volTitle = $bom;
$volXml = "bom2.xml";
$totalVerses = 6613;
}
elsif ($volume eq $ot)
{
$volTitle = $ot;
$volXml = "ot.xml";
$totalVerses = 23145;
}
elsif ($volume eq $nt)
{
$volTitle = $nt;
$volXml = "nt.xml";
$totalVerses = 7957;
}
elsif ($volume eq $dc)
{
$volTitle = $dc;
$volXml = "nt.xml";
$totalVerses = 3654;
}
elsif ($volume eq $pgp)
{
$volTitle = $pgp;
$volXml = "nt.xml";
$totalVerses = 635;
}
elsif ($volume eq $sw)
{
$volTitle = $sw;
$volXml = "nt.xml";
$totalVerses = 42004;
}
$volXml = "scriptures.xml";
if ($days)
{
$title = "Read The $volTitle in $days Days";
}
print header(-charset=>'UTF-8'), start_html(-encoding=>'UTF-8', -head=>meta({-http_equiv=>'Content-Type', -content=>'text/html; CHARSET=UTF-8'}), $title), "
";
print h1($title);
if ($volume)
{
open(BOOK, $volXml) || ERRHANDLER(2);
}
if ($days)
{
print "
";
$versesPerDay = $totalVerses / $days;
$found = 0;
if ($volTitle eq $sw)
{
$found = 1;
}
$endOfVol = 0;
while ()
{
$line = $_;
if (!$found && $volTitle ne $sw)
{
#print $line;
if (/$volTitle<\/volume>/i)
{
$found = 1;
$endOfVol = 0;
}
}
elsif ($found && !$endOfVol && m//g)
{
#print $line;
$verseCount++;
$reference = getTag($line, "r");
#print $reference;
if (!$verses)
{
$dayNumPlus = $dayNum + 1;
print "- $reference - ";
$dayNum++;
}
$verses++;
if ($verses >= $versesPerDay)
{
print "$reference
";
$verses = 0;
}
if ($day == $dayNum)
{
push @verseText, "$reference " . getTag($line, "t") . "
";
if ($verses == 0)
{
print @verseText;
}
}
}
else
{
if ($volTitle ne $sw)
{
$endOfVol = 1;
}
}
}
#print h3($chapter . " ($verseCount)");
print "$reference";
while ($dayNum++ < $days)
{
print ("- Review, Catch up, etc.
");
}
print "
";
# print "
$verseCount
";
print "
";
}
print "
";
print "
", end_html();
sub ERRHANDLER {
my($errnum) = @_;
if ($errnum == 1) {
print h2("Unknown media file type");
}
elsif ($errnum == 2) {
print h2("Unable to open XML file");
}
}
############################################################
sub getTag {
my ($string, $element) = @_;
my ($start, $end);
if ($string =~ /<$element>/) {
$start = index($string, "<$element>");
if ($start >= 0) {
$start = (index($string, ">", $start) + 1);
$end = index($string, "<", $start);
if ($start >= 0) {
return (substr($string, $start, $end-$start))
}
}
}
return ("");
}