#!/bin/bash

echo "Content-type: text/html"
echo ""

eval `echo $PREFIX$QUERY_STRING | \
      sed -e 's/'"'"'/%27/g' | \
      sed -e 's/%2F/\//g' | \
      awk 'BEGIN{RS="&";FS="="}
        $1~/^[a-zA-Z][a-zA-Z0-9_]*$/ {
                printf "QUERY_%s=%c%s%c\n",$1,39,$2,39}' `
                
SELECTED1=
SELECTED2=
SELECTED3=
SELECTED4=
if [ "$QUERY_SORTBY" = "" ]; then
  QUERY_SORTBY=2
fi

if [ "$QUERY_SORTBY" = "1" ]; then
	SELECTED1=SELECTED
elif [ "$QUERY_SORTBY" = "2" ]; then
	SELECTED2=SELECTED
elif [ "$QUERY_SORTBY" = "3" ]; then
	SELECTED3=SELECTED
elif [ "$QUERY_SORTBY" = "4" ]; then
	SELECTED4=SELECTED
fi

if [ "$QUERY_REVERSE" = "1" ]; then
	CHECKED=CHECKED
fi
	
QUERY_FILTER=`echo $QUERY_FILTER|tr a-zA-Z A-ZA-Z`
if [ "$QUERY_FILTER" = "0" ]; then
	REGEXP=\[\^a-zA-Z\]\*
elif [ "`echo $QUERY_FILTER|tr A-Z x`" = "x" ]; then
	REGEXP=\[$QUERY_FILTER`echo $QUERY_FILTER|tr A-Z a-z`\]\* 
else
	REGEXP=\*
fi

cat << EOM
<HTML><HEAD>
<TITLE>The BBC Lives! - Archive Tree Indexer</TITLE>
</HEAD>
<BODY>
EOM
cat ../burst.php3 
cat ../menu.php3 
# echo '<?php $title = "Archive Index"; include("../pre.php3"); ?>' | php -q

cat << EOM
<H2>Index of <A HREF="../dir.php3?dir=$QUERY_DIR">$QUERY_DIR</A></H2>
<FORM>
<INPUT TYPE=HIDDEN NAME=DIR VALUE="$QUERY_DIR">
<INPUT TYPE=HIDDEN NAME=EXT VALUE=$QUERY_EXT>
<INPUT TYPE=HIDDEN NAME=LEVEL1 VALUE=$QUERY_LEVEL1>
<INPUT TYPE=HIDDEN NAME=LEVEL2 VALUE=$QUERY_LEVEL2>
<INPUT TYPE=HIDDEN NAME=LEVEL3 VALUE=$QUERY_LEVEL3>
Filter: 
<SELECT NAME=FILTER>
EOM

ECHO=
for LETTER in @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0
do
	ECHO="$ECHO<OPTION VALUE=$LETTER"
	if [ "$LETTER" = "$QUERY_FILTER" ]; then
		ECHO="$ECHO SELECTED"
	fi
	if [ "$LETTER" = "0" ]; then
		ECHO="$ECHO>#"
	elif [ "$LETTER" = "@" ]; then
		ECHO="$ECHO>*"
	else
		ECHO="$ECHO>$LETTER"
	fi;
done
echo $ECHO

cat << EOM
</SELECT>
Sort by:
<SELECT NAME=SORTBY>
<OPTION VALUE=1 $SELECTED1>Filename
<OPTION VALUE=2 $SELECTED2>Modification date
<OPTION VALUE=3 $SELECTED3>Directory
<OPTION VALUE=4 $SELECTED4>File size
</SELECT>
<INPUT TYPE=CHECKBOX NAME=REVERSE VALUE=1 $CHECKED>Reverse
EOM

cat << EOM
<INPUT TYPE=SUBMIT NAME=Refresh>
</FORM>
<HR>
EOM

CGIDIR=`pwd`

if [ ! "$QUERY_DIR" = "" ]; then
	cd ../$QUERY_DIR
fi

REVERSE=
if [ "$QUERY_REVERSE" = "1" ]; then
	REVERSE=-r
fi

SORTOPT=
if [ "$QUERY_SORTBY" = "2" ]; then
	SORTOPT=-t
elif [ "$QUERY_SORTBY" = "4" ]; then
	SORTOPT=-S
fi

GLOBBER=
if [ ! "$QUERY_LEVEL1" = "" ]; then
	GLOBBER="$GLOBBER $REGEXP$QUERY_EXT"
fi
if [ ! "$QUERY_LEVEL2" = "" ]; then
	GLOBBER="$GLOBBER */$REGEXP$QUERY_EXT"
fi
if [ ! "$QUERY_LEVEL3" = "" ]; then
	GLOBBER="$GLOBBER */*/$REGEXP$QUERY_EXT"
fi

echo "<!-- globbing $GLOBBER in `pwd` -->"

LSCMD="ls -lLdp $REVERSE $SORTOPT $GLOBBER"
CUT1="cut -c34-"
CONVERT="$CGIDIR/ls-l2html -fa -b/$QUERY_DIR"
if [ "$QUERY_SORTBY" = "1" ]; then
	CONVERT="$CONVERT -p"
fi

TEMPFILE=`$CGIDIR/tempnam rsind`

$LSCMD 2> /dev/null | $CUT1 | $CONVERT | if [ "$QUERY_SORTBY" = "1" ]; then
	sort $REVERSE | cut -f2-
else
	cat
fi > $TEMPFILE

echo "<CENTER>"
SUM_BYTES=`cat $TEMPFILE | cut -c-8 | $CGIDIR/sum`
echo "$SUM_BYTES bytes in `cat $TEMPFILE | wc -l` files."
echo "</CENTER>"
echo "<HR><PRE>"

cat $TEMPFILE
rm $TEMPFILE

echo "</PRE>"
# echo '<?php include ("post.php3"); ?>' | php

randval=$RANDOM
cat << EOM
<center>
<!-- BEGIN BURST! CODE -->
<iframe SRC="http://www.burstnet.com/cgi-bin/ads/ba8451a.cgi/RETURN-CODE/if/$randval/" scrolling=no marginwidth=0 marginheight=0 frameborder=0 vspace=0 hspace=0 width=468 height=60>
<A target="_top" HREF="http://www.burstnet.com/ads/ba8451a-map.cgi/$randval">
<IMG SRC="http://www.burstnet.com/cgi-bin/ads/ba8451a.cgi/$randval" border=0 width=468 height=60 alt="Please support our sponsor."></A>
</iframe>
</center>
<!-- END BURST! CODE -->
EOM
cat ../menu.php3 
cat << EOM
</BODY>
</HTML>
EOM
