#!/bin/perl -i.bak

$fname= $ARGV[0]; shift ; # get filename

print STDERR " file name is $fname ";

# edit these if more man sections added
$top="";
$primer= 2;
# <TITLE> Xtal3.5 User's Manual: Program Guide </TITLE> #
$prog_guide= 6;
# <TITLE> Xtal3.5 User's Manual: Program controls </TITLE> # 
$prog_controls= 70;
# <TITLE> Xtal3.5 User's Manual: Program Descriptions </TITLE> #
$prog_descriptions= 134;
# <TITLE> Xtal3.5 User's Manual: Program Descriptions </TITLE> #
$index= 198;
$archive= 199;
$symmap= 228;
$final = $symmap;



while(<>) {


# for first line only
if ($. == 1)  {
  $count= 0 ;
  $filename = $ARGV;

  ($source, $fnum , $html) =  $filename =~ /(.*)-([^\.]*)\.([^ ]*)/ ;
  $prev = $fnum - 1;
  $next = $fnum + 1;
  print STDERR "$filename  number $fnum : $source : $html \n ";
    
  
  if ($fnum > $primer && $fnum <$prog_guide ) {
       $up = - $primer;
     }
  elsif ($fnum > $prog_guide && $fnum <$prog_controls ) {
       $up = - $prog_guide;
     }
  elsif ($fnum == $prog_controls + 1)  { $up = - $prog_controls; } 
  elsif ($fnum > $prog_controls+ 1 && $fnum <$prog_descriptions ) {
       $up = -( $prog_guide     + $fnum - $prog_controls ); 
     }
  elsif ($fnum == $prog_descriptions + 1)  { $up = - $prog_descriptions; } 
  elsif ($fnum > $prog_descriptions && $fnum <$index ) {
       $up = -( $prog_guide     + $fnum - $prog_descriptions); 
     }
  elsif ($fnum > $archive && $fnum <$symmap ) {
       $up = -( $archive ); 
     }
  else { $up = $top ; }

}


#############################################################
#  substitute  for Next Previous and Contents lines

next if  /^<A HREF=\"${fname}.*Next.*<\/A>$/;
next if  /^<A HREF=\"${fname}.*Previous.*<\/A>$/;
next if  /^Next$/;    # watch out for this as stray "Next" could be deleted
next if  /^Previous\s*$/; # watch out for this as stray "Prev" could be deleted

if (m/^<A HREF=\"$fname.*Contents.*<\/A>$/ ) { 
  ++$count ;
  print qq(<CENTER>\n);
  if ($next >= $symmap ) {
      print qq([ <A HREF="${fname}.html"  >Next</A> | ); # back to title
  }
  else { 
      print qq([ <A HREF="${fname}-${next}.html"  >Next</A> | );
  }
  if ($prev == 0) {print  qq( <A HREF="${fname}.html"  >Previous</A> |);}
  else           {print  qq( <A HREF="${fname}-${prev}.html"  >Previous</A> |);}
  print  qq( <A HREF="${fname}${up}.html">Up</A> |);
  print  qq( <A HREF="${fname}.html"    >TOP</A> | );
  print  qq( <A HREF="${fname}-${prog_guide}.html">Program Guide</A> | );
  print  qq( <A HREF="${fname}-${prog_controls}.html">Quick Reference</A> | );
  print qq(<A HREF="${fname}-${prog_descriptions}.html">Program Descriptions</A> |);
  print  qq(<BR> <A HREF="${fname}-${archive}.html">Archive file map</A> | );
  print  qq( <A HREF="${fname}-${index}.html">Index</A> ]  <BR>\n );
  print  qq(</CENTER>\n);
  if ($count == 2)  {
    print qq(<HR> \n);
    print qq(<EM>Copyright &copy;1983, 85, 86, 87, 88, 90, 92, 95, 97, 99, 2000, );
    print qq( The Xtal System of Crystallographic Software.);
    print qq( The University of Western Australia. Permission is granted);
    print qq( to copy or distribute this manual without modification); 
    print qq( provided this copyright notice is retained intact.</EM>);
  }
  next;
}

if (m/^<H2>/){
   if (m/<A NAME=\"([A-Z][A-Z0-9]*)-(cont|desc|guide)\"><\/A>/ ) {
      s/<CODE>/<CODE><font size=\"+5\">/ ;
      s/<\/CODE>/<\/font><\/CODE>/ ;
   }
}


# print for all additional lines
# make light grey background
s/<BODY>/<BODY BGCOLOR=\"\#FFFFFF\" TEXT=\"\#000000\">/  ; 
s/<\@\@formula>//g  ; 
s/<\/@\@formula>//g  ; 
s/<\/@\@endformula>//g  ; 
s/\{\[([^\]]*)\]\}/\[$1\]/g;
s/\[alpha \]/<IMG SRC="alpha.lc.gif"   ALT=\[alpha\]>/g  ; 
s/\[beta  \]/<IMG SRC="beta.lc.gif"    ALT=\[beta\]>/g  ; 
s/\[chi   \]/<IMG SRC="chi.lc.gif"     ALT=\[chi\]>/g  ; 
s/\[delta \]/<IMG SRC="delta.lc.gif"   ALT=\[delta\]>/g  ; 
s/\[Delta \]/<IMG SRC="delta.uc.gif"   ALT=\[Delta\]>/g  ; 
s/\[epsi  \]/<IMG SRC="epsilon.lc.gif" ALT=\[epsi\]>/g  ; 
s/\[gamma \]/<IMG SRC="gamma.lc.gif"   ALT=\[gamma\]>/g  ; 
s/\[lambda\]/<IMG SRC="lambda.lc.gif"  ALT=\[lambda\]>/g  ; 
s/\[omega \]/<IMG SRC="omega.lc.gif"   ALT=\[omega\]>/g  ; 
s/\[phis  \]/<IMG SRC="phi.lc.gif"     ALT=\[phis\]>/g  ; 
s/\[phi   \]/<IMG SRC="phi.lc.gif"     ALT=\[phi\]>/g  ; 
s/\[Phi   \]/<IMG SRC="phi.uc.gif"     ALT=\[Phi\]>/g  ; 
s/\[pi    \]/<IMG SRC="pi.lc.gif"      ALT=\[pi\]>/g  ; 
s/\[Pi    \]/<IMG SRC="pi.uc.gif"      ALT=\[Pi\]>/g  ; 
s/\[psi   \]/<IMG SRC="psi.lc.gif"     ALT=\[psi\]>/g  ; 
s/\[Psi   \]/<IMG SRC="psi.uc.gif"     ALT=\[Psi\]>/g  ; 
s/\[rho   \]/<IMG SRC="rho.lc.gif"     ALT=\[rho\]>/g  ; 
s/\[sigma \]/<IMG SRC="sigma.lc.gif"   ALT=\[sigma\]>/g  ; 
s/\[Sigma \]/<IMG SRC="sigma.uc.gif"   ALT=\[Sigma\]>/g  ; 
s/\[tau   \]/<IMG SRC="tau.lc.gif"     ALT=\[tau\]>/g  ; 
s/\[thetas\]/<IMG SRC="theta.lc.gif"   ALT=\[theta\]>/g  ; 

s/\[sum   \]/<IMG SRC="sum.gif" ALT=\[sum\]>/g ;
s/\[prod  \]/<IMG SRC="prod.gif" ALT=\[prod\]>/g ;
s/\&int\;/<IMG SRC="integ.gif" ALIGN=MIDDLE  ALT=\[integral\]>/g ;
s/\&commat\;/\@/g ;
s/\[florin\]/<em>f<\/em>/g  ; 


# cope with bizarre unpredictable happenings 
s/\&thetas\;/<IMG SRC="theta.lc.gif"  ALT=\[theta\]>/g  ; 
s/\&lambda\;/<IMG SRC="lambda.lc.gif" ALT=\[lambda\]>/g  ; 
  s/\&part\;/<IMG SRC="part.gif" ALT=\[d\]>/g;  # partial derivative substitute with "d"
    s/\&le\;/<IMG SRC="leq.gif"  ALT="&lt;">/g  ; 
s/\&amp\;\#/\&\#/g ;
s/\&dagger\;/<sup>T<\/sup>/g ;
s/\&cir\;/\&\#176/g ;
s/\&mu\;/\&\#181/g ;
 

if (eof) {  $count= 0 ; close ARGV; }
print;
}
