#!/usr/bin/perl

require "dudenv.pl";
&profil;

require "dudparse.pl";
&ReadParse;

$sw1=$in{'sw1'};
$sw2=$in{'sw2'};
$bedingung1=$in{'bedingung1'};
$verzeichnis=$in{'verzeichnis'};
$sprache=$in{'sprache'};

@abt=();
@best=();
$urkunden=$in{'urkunden'};
$rep1=$in{'rep1'};
$rep2=$in{'rep2'};
$rep3=$in{'rep3'};
$rep4=$in{'rep4'};
$rep5=$in{'rep5'};
if ($urkunden) {
   $urkunden=1;
   @abt=(@abt,"\"urkunden\"");
   if (!$rep1 && !$rep2 && !$rep3 && !$rep4 && !$rep5) {
      @best=(@best,"\"rep 1 equal\"","\"rep 2 equal\"","\"rep 3 equal\"","\"rep 4 equal\"","\"rep 5 equal\"");
   } elsif ($rep1 && $rep2 && $rep3 && $rep4 && $rep5) {
      @best=(@best,"\"rep 1 equal\"","\"rep 2 equal\"","\"rep 3 equal\"","\"rep 4 equal\"","\"rep 5 equal\"");
   } else {
      if  ($rep1) {
         @best=(@best,"\"rep 1\" equal");
         $urkunden=2;
      }
      if ($rep2) {
         @best=(@best,"\"rep 2\" equal");
         $urkunden=2;
      }
      if ($rep3) {
         @best=(@best,"\"rep 3\" equal");
         $urkunden=2;
      }
      if ($rep4) {
         @best=(@best,"\"rep 4\" equal");
         $urkunden=2;
      }
      if ($rep5) {
         @best=(@best,"\"rep 5\" equal");
         $urkunden=2;
      }
   }
}
$ab=$in{'amtsbuecher'};
if ($ab) {
   $ab=1;
   @abt=(@abt,"\"ab\"");
   @best=(@best,"\"rep 10\"");
}
$akten=$in{'akten'};
$rep11=$in{'rep11'};
$rep13=$in{'rep13'};
$rep51=$in{'rep51'};

if ($akten) {
   $akten=1;
   @abt=(@abt,"\"akten\"");
   if (!$rep11 && !$rep13 && !$rep51){
      @best=(@best,"\"rep 11\"","\"rep 13\"","\"rep 51\"");
   } elsif ($rep11 && $rep13 && $rep51){
      @best=(@best,"\"rep 11\"","\"rep 13\"","\"rep 51\"");
   } else {
      if ($rep11) {
         @best=(@best,"\"rep 11\"");
         $akten=2;
      }
      if ($rep13) {
         @best=(@best,"\"rep 13\"");
         $akten=2;
      }
      if ($rep51) {
         @best=(@best,"\"rep 51\"");
         $akten=2;
      }
   }
}
     
$abt=@abt;

if ($abt>0) {
 if ($urkunden==1 &&$akten==1 &&$ab==1) {
   $q="n";
 } elsif ($urkunden<2 &&$akten<2) {
   $q="a";
   $auswahl=join(" or ",@abt);
 } else {
   $q="b";
   $auswahl=join(" or ",@best);
 }
 $tpq=$in{'tpq'};
 $taq=$in{'taq'};
 if (!$taq && !$tpq) {
   $zeit=0;
 } else {
   $zeit=1;
   if ($taq==0) {
      $taq=1999;
   }
   if ($tpq==0) {
      $tpq=900;
   }
 }

 require "dudqsub.pl";
 &sw_test;


# Neben den eigentlichen Umlauten soll es auch  erlaubt sein, diese
# in TeX-Notation einzugeben:

 if ($sw1 =~ /\\/) {
    $sw1=&tex_convert($sw1);
 }

 if ($sw2 =~ /\\/) {
    $sw2=&tex_convert($sw2);
 }

 if ($sw1) {
   chdir ("$DB_DIR");
   $prozess = $$;
   $ausgabe = "/duderstadt/ergebnis/ergebnis" . "$prozess" . ".htm";
   $ausgabe_lang = "$ENV{'DOCUMENT_ROOT'}" . "$ausgabe";

   if ($OS=~/WIN/i) {
      &dt;
   }

   if ($ab) {
      $e1=",";
   }
   if ($akten) {
      $e1=$e2=",";
   }
 $zl=1;
 while ($zl==1) {
   $zl=2;
   open (ASK, "|$KL_START");
   if ($verzeichnis eq "soundex") {
      $verzeichnis="person";
      if ($sw2) {
         $sw1=~s/\&//;
         $sw2=~s/\&//;
         print ASK ("query name=tektonik;part=/catalogue[$verzeichnis,complete,\"lemma[\'$sw1\'] $bedingung1 lemma[\'$sw2\']\"]/memorize[treffer]:sign[]=not null\n");
      } else {
         print ASK ("query name=tektonik;part=/catalogue[$verzeichnis,algorithm,\"$sw1\"]/memorize[treffer]:sign[]=not null\n");
      }
   } else {
      if ($sw2) {
         print ASK ("query name=tektonik;part=/catalogue[$verzeichnis,start,\"\'$sw1\' $bedingung1 \'$sw2\'\"]/memorize[treffer]:sign[]=not null\n");
      } else {
         print ASK ("query name=tektonik;part=/catalogue[$verzeichnis,start,\"$sw1\"]/memorize[treffer]:sign[]=not null\n");
      }
   }
   print ASK ("confirm name=sw\n");
   if ($q eq "a") {
      print ASK ("query part=/root[2]:abteilung=$auswahl\n");
   } elsif ($q eq "b") {
      print ASK ("query part=/root[2]:rep=$auswahl\n");
   }
   if ($zeit) {
     if ($verzeichnis eq "titel") {
         print ASK ("write self=no;start=no;
               part=/test[/remember[treffer]:bestand=not null and /remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:conversion[:bestand,text],bestand] &+ :package[:abteilung &+ :form[\"\/\"] &+ :html,fundstellen_ref] &+ :package[:rep,fundstelle],");
         if ($akten) {
             print ASK ("
                    /test[/remember[treffer]:gruppe=not null and /remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:systematik,systematik] &+ :package[/back[1]:rep,bestand] &+ :package[/back[1]:html,systematik_ref] &+ :package[/remember[treffer]:gruppe,schliessen1] &+ :package[/back[1]:bestand,bindestrich] &+ :package[/remember[treffer]:gruppe,eintragsende],
                    /test[/remember[treffer]:klassifikation=not null and /remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:klassifikation,klassifikation] &+ :package[/back[2]:rep,bestand] &+ :package[/back[2]:verzeichnis,klass_ref] &+ :package[/remember[treffer]:conversion[:klass_nr,press],schliessen2] &+ :package[/back[2]:bestand,bindestrich] &+ :package[/remember[treffer]:klass_nr,eintragsende],");
         }
         if ($urkunden) {
             print ASK ("
                    /test[/remember[treffer]:quelle=not null and /remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:titel,fragmente] &+ :package[:quelle,quelle] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[:form[\"Fragmente\"],fragment_ref],
                    /test[/remember[treffer]:regest=not null and /remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:conversion[:regest,text],regest] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[/back[1]:rep,bestand] &+ :package[/back[1]:verzeichnis,urkunden_ref] &+ :package[/remember[treffer]:bestellnr,schliessen2] &+ :package[/back[1]:bestand,bindestrich] &+ :package[:bestellnr,urkundenende]$e1")
         }
         if ($ab) {
             print ASK ("
                    /test[/remember[treffer]:reihe=not null and /remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:titel,reihentitel] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[:form[\"Rep 10\"],bestand] &+ :package[:reihe,reihen_ref2],
                    /test[/remember[treffer]/back[1]:reihe=not null and /remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:titel,abtitel] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[:form[\"Rep 10\"],bestand] &+ :package[/back[1]:reihe,reihen_ref] |+ :package[:substring[:bestellnr,3],schliessen2] |+ :package[:substring[:bestellnr,3],amtsbuchende2],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:datum=after \"$tpq\" and /remember[treffer]:datum=before \"$taq\"]/remember[treffer]:package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[:substring[/remember[treffer]/back[amtsbuch]:bestellnr,3],schliessen2] |+ :package[:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/remember[treffer]/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]/back[1]:datum=after \"$tpq\" and /remember[treffer]/back[1]:datum=before \"$taq\"]/remember[treffer]:package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[:substring[/remember[treffer]/back[amtsbuch]:bestellnr,3],schliessen2] |+ :package[:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/remember[treffer]/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]/back[2]:datum=after \"$tpq\" and /remember[treffer]/back[2]:datum=before \"$taq\"]/remember[treffer]:package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[:substring[/remember[treffer]/back[amtsbuch]:bestellnr,3],schliessen2] |+ :package[:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/remember[treffer]/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]/back[3]:datum=after \"$tpq\" and /remember[treffer]/back[3]:datum=before \"$taq\"]/remember[treffer]:package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[:substring[/remember[treffer]/back[amtsbuch]:bestellnr,3],schliessen2] |+ :package[:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/remember[treffer]/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]/back[amtsbuch]:laufzeit=after \"$tpq\" and /remember[treffer]/back[amtsbuch]:laufzeit=before \"$taq\"]/remember[treffer]:package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[:substring[/remember[treffer]/back[amtsbuch]:bestellnr,3],schliessen2] |+ :package[:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/remember[treffer]/back[folio]:datei,schliessen4]$e2")
         }
         if ($akten) {
             print ASK ("
                    /test[/remember[treffer]/back[2]:klass_nr=not null and /remember[treffer]/back[1]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[/back[1]:conversion[:titel,text],titel] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[3]:rep,bestand] |+ :package[/back[3]:verzeichnis,klass_ref] |+ :package[/remember[treffer]/back[2]:conversion[:klass_nr,press],schliessen3] |+ :package[/remember[treffer]/back[1]:aktennr,schliessen1] |+ :package[/remember[treffer]/back[4]:bestand,bindestrich] |+ :package[/remember[treffer]/back[1]:aktennr,aktenende],
                    /test[/remember[treffer]/back[1]:klass_nr=not null and /remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:conversion[/remember[treffer]:titel,text],titel] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[/back[3]:rep,bestand] &+ :package[/back[3]:verzeichnis,klass_ref] &+ :package[/back[1]:conversion[:klass_nr,press],schliessen3] &+ :package[/remember[treffer]:aktennr,schliessen1] &+ :package[/back[3]:bestand,bindestrich] &+ :package[/remember[treffer]:aktennr,aktenende]")
         }
         print ASK ("\n");
     } elsif ($verzeichnis eq "regest") {
         print ASK ("write self=no;start=no;
               part=/test[/remember[treffer]:laufzeit=after \"$tpq\" and /remember[treffer]:laufzeit=before \"$taq\"]/remember[treffer]:package[:conversion[:regest,text],regest] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[/back[1]:rep,bestand] &+ :package[/back[1]:verzeichnis,urkunden_ref] &+ :package[/remember[treffer]:bestellnr,schliessen2] &+ :package[/back[1]:bestand,bindestrich] &+ :package[:bestellnr,urkundenende]\n");
     } elsif ($verzeichnis eq "person") {
         print ASK ("write self=no;start=no;
               part=");
         if ($urkunden) {
              print ASK ("
                    /test[/remember[treffer]/back[1]:regest=not null and /remember[treffer]/back[1]:laufzeit=after \"$tpq\" and /remember[treffer]/back[1]:laufzeit=before \"$taq\"]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[1]:conversion[:regest,text],regest] &+ :package[/back[1]:collect[:text[:laufzeit1,date]],laufzeit] &+:package[/back[2]:rep,bestand] &+ :package[/back[2]:verzeichnis,urkunden_ref] &+ :package[/back[1]:bestellnr,schliessen2] &+ :package[/back[2]:bestand,bindestrich] &+ :package[/back[1]:bestellnr,urkundenende]$e1");
         }
         if ($ab) {
            print ASK ("
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:jahr=after \"$tpq\" and /remember[treffer]:jahr=before \"$taq\"]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit2]  |+ :package[/remember[treffer]:collect[:text[:jahr,date]],amtsjahr]|+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende]  |+:package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:datum=after \"$tpq\" and /remember[treffer]:datum=before \"$taq\"]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit2] |+ :package[/back[1]:collect[:text[:datum,date]],datum] |+ :package[/back[2]:collect[:text[:datum,date]],datum] |+ :package[/back[3]:collect[:text[:datum,date]],datum] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[recht]:nummer,posten] |+ :package[/back[eintrag]:nummer,posten] |+:package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]/back[1]:datum=after \"$tpq\" and /remember[treffer]/back[1]:datum=before \"$taq\"]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit2] |+ :package[/back[1]:collect[:text[:datum,date]],datum] |+ :package[/back[2]:collect[:text[:datum,date]],datum] |+ :package[/back[3]:collect[:text[:datum,date]],datum] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[recht]:nummer,posten] |+ :package[/back[eintrag]:nummer,posten] |+: package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]/back[2]:datum=after \"$tpq\" and /remember[treffer]/back[2]:datum=before \"$taq\"]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit2] |+ :package[/back[1]:collect[:text[:datum,date]],datum] |+ :package[/back[2]:collect[:text[:datum,date]],datum] |+ :package[/back[3]:collect[:text[:datum,date]],datum] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[recht]:nummer,posten] |+ :package[/back[eintrag]:nummer,posten] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]/back[3]:datum=after \"$tpq\" and /remember[treffer]/back[3]:datum=before \"$taq\"]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit2] |+ :package[/back[1]:collect[:text[:datum,date]],datum] |+ :package[/back[2]:collect[:text[:datum,date]],datum] |+ :package[/back[3]:collect[:text[:datum,date]],datum] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[recht]:nummer,posten] |+ :package[/back[eintrag]:nummer,posten] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]/back[amtsbuch]:laufzeit=after \"$tpq\" and /remember[treffer]/back[amtsbuch]:laufzeit=before \"$taq\"]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit2] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4]$e2");
         }
         if ($akten) {
             print ASK ("
                    /test[/remember[treffer]/back[2]:klass_nr=not null and /remember[treffer]/back[1]:laufzeit=after \"$tpq\" and /remember[treffer]/back[1]:laufzeit=before \"$taq\"]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[1]:conversion[:titel,text],titel] |+ :package[/back[1]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[4]:rep,bestand] |+ :package[/back[4]:verzeichnis,klass_ref] |+ :package[/back[2]:conversion[:klass_nr,press],schliessen3] |+ :package[/back[1]:aktennr,schliessen1] |+ :package[/back[4]:bestand,bindestrich] |+ :package[/back[1]:aktennr,aktenende]");
         }
         print ASK ("\n");
     } elsif ($verzeichnis eq "ort") {
         print ASK ("write self=no;start=no;
               part=");
         if ($urkunden) {
              print ASK ("
                    /test[/remember[treffer]/back[1]:regest=not null and /remember[treffer]/back[1]:laufzeit=after \"$tpq\" and /remember[treffer]/back[1]:laufzeit=before \"$taq\"]/remember[treffer]:package[:orte,person] |+ :package[/back[1]:conversion[:regest,text],regest] &+ :package[/back[1]:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[/back[2]:rep,bestand] &+ :package[/back[2]:verzeichnis,urkunden_ref] &+ :package[/back[1]:bestellnr,schliessen2] &+ :package[/back[2]:bestand,bindestrich] &+ :package[/back[1]:bestellnr,urkundenende]$e1");
         }
         if ($ab) {
            print ASK ("
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:wohnort=not null and /remember[treffer]:datum=after \"$tpq\" and /remember[treffer]:datum=before \"$taq\"]/remember[treffer]:package[:wohnort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:wohnort=not null and /remember[treffer]/back[1]:datum=after \"$tpq\" and /remember[treffer]/back[1]:datum=before \"$taq\"]/remember[treffer]:package[:wohnort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:wohnort=not null and /remember[treffer]/back[2]:datum=after \"$tpq\" and /remember[treffer]/back[2]:datum=before \"$taq\"]/remember[treffer]:package[:wohnort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:wohnort=not null /remember[treffer]/back[3]:datum=after \"$tpq\" and /remember[treffer]/back[3]:datum=before \"$taq\"]/remember[treffer]:package[:wohnort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:wohnort=not null and /remember[treffer]/back[amtsbuch]:laufzeit=after \"$tpq\" and /remember[treffer]/back[amtsbuch]:laufzeit=before \"$taq\"]/remember[treffer]:package[:wohnort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:herkunftsort=not null and /remember[treffer]:datum=after \"$tpq\" and /remember[treffer]:datum=before \"$taq\"]/remember[treffer]:package[:herkunftsort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4,
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:herkunftsort=not null and /remember[treffer]/back[1]:datum=after \"$tpq\" and /remember[treffer]/back[1]:datum=before \"$taq\"]/remember[treffer]:package[:herkunftsort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4,
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:herkunftsort=not null and /remember[treffer]/back[2]:datum=after \"$tpq\" and /remember[treffer]/back[2]:datum=before \"$taq\"]/remember[treffer]:package[:herkunftsort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4,
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:herkunftsort=not null and /remember[treffer]/back[3]:datum=after \"$tpq\" and /remember[treffer]/back[3]:datum=before \"$taq\"]/remember[treffer]:package[:herkunftsort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4,
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:herkunftsort=not null and /remember[treffer]/back[amtsbuch]:laufzeit=after \"$tpq\" and /remember[treffer]/back[amtsbuch]:laufzeit=before \"$taq\"]/remember[treffer]:package[:herkunftsort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4]$e2");
         }
         if ($akten) {
             print ASK ("
                    /test[/remember[treffer]/back[2]:klass_nr=not null and /remember[treffer]/back[1]:laufzeit=after \"$tpq\" and /remember[treffer]/back[1]:laufzeit=before \"$taq\"]/remember[treffer]:package[:orte,person] |+ :package[/back[1]:conversion[:titel,text],titel] |+ :package[/back[1]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[4]:rep,bestand] |+ :package[/back[4]:verzeichnis,klass_ref] |+ :package[/back[2]:conversion[:klass_nr,press],schliessen3] |+ :package[/back[1]:aktennr,schliessen1] |+ :package[/back[4]:bestand,bindestrich] |+ :package[/back[1]:aktennr,aktenende]");
         }
         print ASK ("\n");
     } elsif ($verzeichnis eq "transkript") {
         print ASK ("write self=no;start=no;
               part=");
         if ($ab) {
            print ASK ("
                   /test[/remember[treffer]/back[2]:reihe=not null and /remember[treffer]/back[amtsbuch]:laufzeit=after \"$tpq\" and /remember[treffer]/back[amtsbuch]:laufzeit=before \"$taq\"]/remember[treffer]:package[/back[1]:titel,abtitel] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[:form[\"Rep 10\"],bestand] &+ :package[/back[1]:reihe,reihen_ref] &+ :package[:substring[:bestellnr,3],schliessen2] &+ :package[:substring[:bestellnr,3],amtsbuchende]&+ :package[/back[1]:reihe,seiten_ref_tsc] |+ :package[/remember[treffer]:datei,schliessen4]$e2");
         }
         if ($akten) {
             print ASK ("
                /test[/remember[treffer]/back[2]:klass_nr=not null and /remember[treffer]/back[1]:laufzeit=after \"$tpq\" and /remember[treffer]/back[1]:laufzeit=before \"$taq\"]/remember[treffer]:package[/back[1]:conversion[:titel,text],titel] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[3]:rep,bestand] |+ :package[/back[3]:verzeichnis,klass_ref] |+ :package[/remember[treffer]/back[2]:conversion[:klass_nr,press],schliessen3] |+ :package[/remember[treffer]/back[1]:aktennr,schliessen1] |+ :package[/remember[treffer]/back[4]:bestand,bindestrich] |+ :package[/remember[treffer]/back[1]:aktennr,aktenende2] |+ :package[/remember[treffer]:datei,seiten_ref_aktentsc]");
         }
         print ASK ("\n");
     }
   } else {
     if ($verzeichnis eq "titel") {
         print ASK ("write self=no;start=no;
               part=/test[/remember[treffer]:bestand=not null]/remember[treffer]:package[:conversion[:bestand,text],bestand] &+ :package[:abteilung &+ :form[\"\/\"] &+ :html,fundstellen_ref] &+ :package[:rep,fundstelle],");
         if ($akten) {
             print ASK ("
                    /test[/remember[treffer]:gruppe=not null]/remember[treffer]:package[:systematik,systematik] &+ :package[/back[1]:rep,bestand] &+ :package[/back[1]:html,systematik_ref] &+ :package[/remember[treffer]:gruppe,schliessen1] &+ :package[/back[1]:bestand,bindestrich] &+ :package[/remember[treffer]:gruppe,eintragsende],
                    /test[/remember[treffer]:klassifikation=not null]/remember[treffer]:package[:klassifikation,klassifikation] &+ :package[/back[2]:rep,bestand] &+ :package[/back[2]:verzeichnis,klass_ref] &+ :package[/remember[treffer]:conversion[:klass_nr,press],schliessen2] &+ :package[/back[2]:bestand,bindestrich] &+ :package[/remember[treffer]:klass_nr,eintragsende],");
         }
         if ($urkunden) {
             print ASK ("
                    /test[/remember[treffer]:quelle=not null]/remember[treffer]:package[:titel,fragmente] &+ :package[:quelle,quelle] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[:form[\"Fragmente\"],fragment_ref],
                    /test[/remember[treffer]:regest=not null]/remember[treffer]:package[:conversion[:regest,text],regest] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[/back[1]:rep,bestand] &+ :package[/back[1]:verzeichnis,urkunden_ref] &+ :package[/remember[treffer]:bestellnr,schliessen2] &+ :package[/back[1]:bestand,bindestrich] &+ :package[:bestellnr,urkundenende]$e1")
         }
         if ($ab) {
             print ASK ("
                    /test[/remember[treffer]:reihe=not null]/remember[treffer]:package[:titel,reihentitel] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[:form[\"Rep 10\"],bestand] &+ :package[:reihe,reihen_ref2],
                    /test[/remember[treffer]/back[1]:reihe=not null]/remember[treffer]:package[:titel,abtitel] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[:form[\"Rep 10\"],bestand] &+ :package[/back[1]:reihe,reihen_ref] |+ :package[:substring[:bestellnr,3],schliessen2] |+ :package[:substring[:bestellnr,3],amtsbuchende2],
                    /test[/remember[treffer]/back[folio]:datei=not null]/remember[treffer]:package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[:substring[/remember[treffer]/back[amtsbuch]:bestellnr,3],schliessen2] |+ :package[:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/remember[treffer]/back[folio]:datei,schliessen4]$e2")
         }
         if ($akten) {
             print ASK ("
                    /test[/remember[treffer]/back[2]:klass_nr=not null]/remember[treffer]:package[/back[1]:conversion[:titel,text],titel] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[3]:rep,bestand] |+ :package[/back[3]:verzeichnis,klass_ref] |+ :package[/remember[treffer]/back[2]:conversion[:klass_nr,press],schliessen3] |+ :package[/remember[treffer]/back[1]:aktennr,schliessen1] |+ :package[/remember[treffer]/back[4]:bestand,bindestrich] |+ :package[/remember[treffer]/back[1]:aktennr,aktenende],
                    /test[/remember[treffer]/back[1]:klass_nr=not null]/remember[treffer]:package[:conversion[/remember[treffer]:titel,text],titel] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[/back[3]:rep,bestand] &+ :package[/back[3]:verzeichnis,klass_ref] &+ :package[/back[1]:conversion[:klass_nr,press],schliessen3] &+ :package[/remember[treffer]:aktennr,schliessen1] &+ :package[/back[3]:bestand,bindestrich] &+ :package[/remember[treffer]:aktennr,aktenende]")
         }
         print ASK ("\n");
     } elsif ($verzeichnis eq "regest") {
         print ASK ("write self=no;start=no;
               part=/remember[treffer]:package[:conversion[:regest,text],regest] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[/back[1]:rep,bestand] &+ :package[/back[1]:verzeichnis,urkunden_ref] &+ :package[/remember[treffer]:bestellnr,schliessen2] &+ :package[/back[1]:bestand,bindestrich] &+ :package[:bestellnr,urkundenende]\n");
     } elsif ($verzeichnis eq "person") {
         print ASK ("write self=no;start=no;
               part=");
         if ($urkunden) {
              print ASK ("
                    /test[/remember[treffer]/back[1]:regest=not null]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[1]:conversion[:regest,text],regest] &+ :package[/back[1]:collect[:text[:laufzeit1,date]],laufzeit] &+:package[/back[2]:rep,bestand] &+ :package[/back[2]:verzeichnis,urkunden_ref] &+ :package[/back[1]:bestellnr,schliessen2] &+ :package[/back[2]:bestand,bindestrich] &+ :package[/back[1]:bestellnr,urkundenende]$e1");
         }
         if ($ab) {
            print ASK ("
                    /test[/remember[treffer]/back[folio]:datei=not null]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit2] |+ :package[/back[1]:collect[:text[:datum,date]],datum] |+ :package[/back[2]:collect[:text[:datum,date]],datum] |+ :package[/back[3]:collect[:text[:datum,date]],datum] |+ :package[:collect[:text[:jahr,date]],amtsjahr]|+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[recht]:nummer,posten] |+ :package[/back[eintrag]:nummer,posten] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4]$e2");
         }
         if ($akten) {
             print ASK ("
                    /test[/remember[treffer]/back[2]:klass_nr=not null]/remember[treffer]:package[:name |+ :package[:vorname,vorname]|+ :package[:namenszusatz,vorname],person] |+ :package[:collect[:amt],nennung] |+ :package[:collect[:funktion],nennung] |+ :package[/back[1]:conversion[:titel,text],titel] |+ :package[/back[1]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[4]:rep,bestand] |+ :package[/back[4]:verzeichnis,klass_ref] |+ :package[/back[2]:conversion[:klass_nr,press],schliessen3] |+ :package[/back[1]:aktennr,schliessen1] |+ :package[/back[4]:bestand,bindestrich] |+ :package[/back[1]:aktennr,aktenende]");
         }
         print ASK ("\n");
     } elsif ($verzeichnis eq "ort") {
         print ASK ("write self=no;start=no;
               part=");
         if ($urkunden) {
              print ASK ("
                    /test[/remember[treffer]/back[1]:regest=not null]/remember[treffer]:package[:orte,person] |+ :package[/back[1]:conversion[:regest,text],regest] &+ :package[/back[1]:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[/back[2]:rep,bestand] &+ :package[/back[2]:verzeichnis,urkunden_ref] &+ :package[/back[1]:bestellnr,schliessen2] &+ :package[/back[2]:bestand,bindestrich] &+ :package[/back[1]:bestellnr,urkundenende]$e1");
         }
         if ($ab) {
            print ASK ("
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:wohnort=not null ]/remember[treffer]:package[:wohnort,person] |+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4],
                    /test[/remember[treffer]/back[folio]:datei=not null and /remember[treffer]:herkunftsort=not null ]/remember[treffer]:package[:herkunftsort,person]|+ :package[/back[amtsbuch]:conversion[:titel,text],amtsbuch] |+ :package[/back[amtsbuch]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[reihen]:reihe,reihen_ref] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],schliessen2] |+ :package[/back[amtsbuch]:substring[:bestellnr,3],amtsbuchende] |+ :package[/back[reihen]:reihe,seiten_ref] |+ :package[/back[folio]:datei,schliessen4]$e2");
         }
         if ($akten) {
             print ASK ("
                    /test[/remember[treffer]/back[2]:klass_nr=not null]/remember[treffer]:package[:orte,person] |+ :package[/back[1]:conversion[:titel,text],titel] |+ :package[/back[1]:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[4]:rep,bestand] |+ :package[/back[4]:verzeichnis,klass_ref] |+ :package[/back[2]:conversion[:klass_nr,press],schliessen3] |+ :package[/back[1]:aktennr,schliessen1] |+ :package[/back[4]:bestand,bindestrich] |+ :package[/back[1]:aktennr,aktenende]");
         }
         print ASK ("\n");
     } elsif ($verzeichnis eq "transkript") {
         print ASK ("write self=no;start=no;
               part=");
         if ($ab) {
            print ASK ("
                   /test[/remember[treffer]/back[2]:reihe=not null]/remember[treffer]:package[/back[1]:titel,abtitel] &+ :package[:collect[:text[:laufzeit1,date]],laufzeit] &+ :package[:form[\"Rep 10\"],bestand] &+ :package[/back[1]:reihe,reihen_ref] &+ :package[:substring[:bestellnr,3],schliessen2] &+ :package[:substring[:bestellnr,3],amtsbuchende]&+ :package[/back[1]:reihe,seiten_ref_tsc] |+ :package[/remember[treffer]:datei,schliessen4]$e2");
         }
         if ($akten) {
             print ASK ("
                /test[/remember[treffer]/back[2]:klass_nr=not null]/remember[treffer]:package[/back[1]:conversion[:titel,text],titel] |+ :package[:collect[:text[:laufzeit1,date]],laufzeit] |+ :package[/back[3]:rep,bestand] |+ :package[/back[3]:verzeichnis,klass_ref] |+ :package[/remember[treffer]/back[2]:conversion[:klass_nr,press],schliessen3] |+ :package[/remember[treffer]/back[1]:aktennr,schliessen1] |+ :package[/remember[treffer]/back[4]:bestand,bindestrich] |+ :package[/remember[treffer]/back[1]:aktennr,aktenende2] |+ :package[/remember[treffer]:datei,seiten_ref_aktentsc]");
         }
         print ASK ("\n");
     }
   }
   print ASK ("exit name=sw\n");
   print ASK ("stop target=\"$ausgabe_lang\";package=ergebnisdatei;overwrite=yes\n");
   close ASK;
   if (-e $ausgabe_lang) {
      & doublettentest;
   } else {
      if ($sw2 && $bedingung1 eq "or") {
         $sw1=$sw2;
         $sw2="";
         $zl=1;
         $sw1=~s/\&//;
      }  else {
         if ($sprache eq "d") {
           print "Location: /duderstadt/fehler/fehler2x-d.htm", "\n\n";
         } else {
           print "Location: /duderstadt/fehler/fehler2x-e.htm", "\n\n";
         }
      }
   }
 }
 } else {
    if ($sprache eq "d") {
      print "Location: /duderstadt/fehler/fehler1x-d.htm", "\n\n";
    } else {
      print "Location: /duderstadt/fehler/fehler1x-e.htm", "\n\n";
    }
 }
} else {
    if ($sprache eq "d") {
      print "Location: /duderstadt/fehler/fehler3x-d.htm", "\n\n";
    } else {
      print "Location: /duderstadt/fehler/fehler3x-e.htm", "\n\n";
    }
}
