// JavaScript-Volltext-Suchmaschine, Version SH-8-1 (25.10.01)
// angepaßt an Selfhtml 8.0
// Autor: Oliver García
// Vielen Dank an Alexander Foken für seinen Einsatz als Betatester
//
// Dieses Programm ist urheberrechtlich geschützt. Falls Sie Interesse
// haben, eine auf Ihre Datenbestände angepaßte Version dieser Suchmaschine
// in Lizenz zu erwerben, erhalten Sie unter mailto:suchmaschine@ogu.de
// mehr Informationen

archiv = "../../"
ie4 = (document.all)? true:false
nc4 = (document.layers)? true:false
nc45 = (nc4 && navigator.appVersion.substr(2).match(/^[1-9]|^0[5-9]/))
mz5 = ((document.getElementById) && (!document.all) && (document.documentElement))
zeigedetails=true
bildschirm=50
aktiv= new Array()
for (x=0; x<i.length; x++) aktiv[x]=(i[x] ? true : false)
aktuellerindex=1
interneansicht=0
oeffnen=0
vordatei=""
f1="<B>"
f2="</B>"
if (nc45 && top.window.name.match(/0s$/)) window.setTimeout("Konfigurieren()",500)

if (document.cookie) {
        cook=document.cookie
        if (cook.indexOf("Selfhtml8=")>-1) {
                cook=cook.substr(cook.indexOf("Selfhtml8=")+10)
                cook=cook.replace(/;.*/,"")
                ck=cook.split("_")
                ck2=ck[0].split("+")
                aktiv= new Array()
                for (x=0; x<ck2.length-1; x++) {
                        aktiv[ck2[x].split("-")[0]]=(i[ck2[x].split("-")[0]] && parseInt(ck2[x].split("-")[1]))
                }
                abfolge()
                zeigedetails=(ck[0] == 1)
                bildschirm=parseInt(ck[1])
                oeffnen=parseInt(ck[2])
                if (parseInt(ck[3]) == 0) {
                        f1=""
                        f2=""
                }
        }
}


function datei(temp,ang,ue,det,l,l2) {
        det=""
        if ((zeigedetails && !(exkt && !oder_s)) || zsg) {
                if (!indokg[temp]) indokg[temp]=indok[temp].replace(/#$/,"").replace(/~|#/g,", ")
                if (indokg[temp]!="") {
                        if (zsg && !exkt) det=" ("+indokg[temp].small()+")"
                        else det=" ("+indokg[temp].italics().small()+")"
                }
        }
        alttemp=temp
        titel = new Array()
        titel[1]=parent.d[parent.dz[temp]].split("*")[1]
        if (!parent.dz[temp]) return ""
        uurl=url(parent.dz[temp])
        if (!ang) ang=""
        if (ue) ue="<P><U>"+ue.italics()+"</U><P>"
        else ue=""
        l2=""
        if (oeffnen==2) l2=" target=\"_blank\""
        if (oeffnen==1) l2=" target=\"_Ergebnisse\""

        einruecken=""
        einruecken+=vordatei
        vordatei=""
        ausruecken=""
        tr=parent.dz[temp].split("-")
        tr2=""
        ebausr=0
        for (x=0; x<tr.length-1; x++) {
                tr2+="-"+tr[x]
                tr3=tr2.substr(1)
                abstand=""
                if (x==0 || (x==1 && eb[x])) {
                        abstand=" style=\"margin-top:1em;\""
                }
                if (tr3!=eb[x])  {
                        if (x==0) eb= new Array()
                        if (itext[tr3]) {
                                einruecken+=aausruecken+dts()+"<dd><dl><dt"+abstand+">"+img(1)+"<A HREF=\""+archiv+itext[tr3].split("@")[1]+"\""+l2+">"+f1+parent.d[tr3].split("*")[1]+f2+"</A>"+itext[tr3].split("@")[0]
                        }
                        else einruecken+=dts()+"<dd><dl><dt"+abstand+">"+img(1)+f1+parent.d[tr3].split("*")[1]+f2
                        dt++
                }
                else altebausr--
                aausruecken=""
                eb[x]=tr3
                ebausr++
        }
        for (x=tr.length; x<7; x++) {
                eb[x]=""
        }
        while (altebausr>0) {
                ausruecken+="</dl></dd>"
                altebausr--
        }
        l="<A HREF=\""+archiv+uurl+"\""+l2+">"+f1+titel[1].replace(/^SELFHTML: /,"")+f2+"</A>"
        altebausr=ebausr
        vordatei=""
        if (parent.dz[temp].split("-").length<3) {
                itext[parent.dz[temp]]=det+"@"+uurl
                aausruecken=ausruecken
                if (parent.dz[z[ergebniszaehler+1]] && !parent.dz[z[ergebniszaehler+1]].indexOf(parent.dz[temp])) {
                        if (tr.length == 1) return einruecken
                        return ausruecken+einruecken
                }
        }
        trl=tr.length
        if (trl > 1 && parent.d[parent.dz[temp]+"-0"]) trl=1
        return ue+ausruecken+einruecken+dts()+"<dd><dl><dt>"+img(trl)+l+det+"</dt></dl></dd>"+ang
}

function dts() {
        if (dt>0) {
                dt--
                return "</dt>"
        }
        else return ""
}

function img(temp) {
        if (temp==1) return "<img src=\""+archiv+"src/refkap.gif\" width=16 height=13 border=0 alt=\"\">&nbsp;"
        return "<img src=\""+archiv+"src/dok.gif\" width=15 height=10 border=0 alt=\"\">&nbsp;"
}

function url(temp,temp2,temp3) {
        temp2=parent.d[temp].split("*")[0]
        if (temp=="undefined") return ""
        if (temp2.indexOf("#") == 0) {
                temp3=temp.replace(/-[^-]*$/,"")
                temp2=url(temp3)+temp2
        }
        else if (!temp2.match(/^\|/)) {
                temp3=temp.replace(/-[^-]*$/,"")
                if (parent.d[temp3+"-0"].split("*")[0]) {
                        temp2=url(temp3+"-0")+temp2
                }
                else {
                        temp2=url(temp3)+temp2
                }
        }
        return temp2.replace(/^\|/,"")
}

function RF_a(temp,x,treffer,suchein) {
        if (indokg[temp]) return 1
        window.defaultStatus = "Phrasensuche ("+(ergebniszaehler+1)+")"
        indok=new Array()
        such2=new Array()
        such3=new Array()
        for (uz=0; uz<und.length; uz++) {
                bs=af[und[uz]].split(",")
                for (aff in bs) {
                        suchein="+"+parent.w[bs[aff]]+"+"
                        ssin="/\\+"+temp+"-[^+]*/g"
                        sserg=escape(suchein).match(eval(ssin))
                        if (sserg) {
                                such2[uz]=sserg[0].substr(sserg[0].indexOf("-")+1)
                                stl=such2[uz].split("-")
                                x=und.length-uz
                                for (ss3=0; ss3<stl.length; ss3++) {
                                        x+=parseInt(stl[ss3])
                                        such3[x]=(such3[x] ? such3[x]+" " : " ")+bs[aff]
                                }
                        }
                }
        }
        such4=new Array()
        for (d in such3) {
                if ((such3[d]+" ").match(/ /g).length==und.length+1) {
                        vh=such3[d].substr(1)
                        such4[vh]=(such4[vh] ? such4[vh]+1 : 1)
                }
        }
        treffer=""
        for (d in such4) {
                treffer+=" und "+html(d).italics()
                if (such4[d]>1) treffer+=" - "+such4[d]+" Treffer -"
        }
        if (treffer>"") {
                indok[temp]=treffer.substr(5)
                return 1
        }
        return 0
}

function RF(temp,x,treffer,suchein) {
        if (indokg[temp]) return 1
        window.defaultStatus = "Phrasensuche ("+(ergebniszaehler+1)+")"
        indok=new Array()
        such2=new Array()
        such3=new Array()
        for (uz=0; uz<und.length; uz++) {
                suchein="+"+parent.w[und[uz]]+"+"
                ssin="/\\+"+temp+"-[^+]*/g"
                sserg=escape(suchein).match(eval(ssin))
                if (sserg) stl=sserg[0].substr(sserg[0].indexOf("-")+1).split("-")
                else return 0
                x=und.length-uz
                for (ss3=0; ss3<stl.length; ss3++) {
                        x+=parseInt(stl[ss3])
                        such3[x]=(such3[x] ? such3[x]+"" : "")+"-"
                }
        }
        treffer=0
        for (x in such3) if (such3[x].length==und.length) treffer++
        if (treffer>1) indok[temp]=treffer+" Treffer"
        else if (treffer>0) indok[temp]=""
        return treffer
}

function Numsort(a,b) {
        return a-b
}

function vgl(temp,rw) {
        tl=temp.split(",")
        d1=new Array()
        for (tx in tl) {
                if (!parent.w[tl[tx]]) return "---"
                else {
                        tl[tx]=escape(parent.w[tl[tx]]).replace(/-[^+]*/g,"")
                        d2 = tl[tx].split("+")
                        for (d3 in d2) d1[d2[d3]]=(d1[d2[d3]] ? d1[d2[d3]] : "")+"-"
                }
        }
        var rueckgabe=""
        if (rw==1) {
                for (x in d1) if (d1[x].length==tl.length) rueckgabe=","+x+rueckgabe
        }
        else {
                for (x in d1) if (d1[x].length==tl.length) rueckgabe+=","+x
        }
        if (rueckgabe>"") return rueckgabe.substr(1)
        else return "---"
}

function kleiner(temp,x,k) {
        x=-1
        tl=temp.split(",")
        d1=new Array()
        as=new Array()
        for (tx in tl) {
                tl[tx]=tl[tx].replace(/^-/,"")
                for (aff in parent.w) {
                        if (String(aff).indexOf(tl[tx])==0) af[tl[tx]]=(af[tl[tx]] ? af[tl[tx]] : "")+","+aff
                }
                if (af[tl[tx]]) af[tl[tx]]=af[tl[tx]].substr(1)
                else return "---"
                x++
                bs=af[tl[tx]].split(",")
                as[tl[tx]]=""
                for (aff in bs) as[tl[tx]]+="+"+escape(exakt(bs[aff])).replace(/-[^+]*/g,"")
        }
        va=""
        for (x in as) if (va=="" || as[x].length<va.length) {
                va=as[x]
                k=x
        }
        return "/\\+("+va.substr(1).replace(/\+/g,"|")+")-/g"
}

function vgl_a_d(temp,x,f,d,y,va,kl,zaehler,ri) {
        indok=new Array()
        tl=temp.split(",")
        kl=kleiner(temp)
        if (kl == "---") return "---"
        zaehler=2
        for (x in tl) {
                for (f in parent.w) {
                        if (String(f).indexOf(tl[x])==0) {
                                ds=escape(parent.w[f]).replace(/-[^+]*/g,"")
                                if (kl.length<4000) {
                                        vat=("+"+ds+"+").replace(/\+/g,"-+").match(eval(kl))
                                        if (vat) ds=vat.join("").replace(/-\+/g,"+").replace(/^\+/g,"").replace(/-$/g,"")
                                        else continue
                                }
                                d=ds.split("+")
                                for (y in d) {
                                        indok[d[y]]=(indok[d[y]] ? indok[d[y]] : "")+html(f)+"~"
                                }
                        }
                }
                for (y in indok) indok[y]=indok[y].replace(/~$/,"#")
        }
        rueckgabe=new Array()
        ri=0
        for (y in indok) {
                if (indok[y].split("#").length==und.length+1) {
                        rueckgabe[ri++]=y
                }
        }
        rueckgabe.sort(Numsort)
        if (ri>0) return rueckgabe.join(",")
        else return "---"
}

function vgl_a(temp,tmp2,k,tmp3,x) {
        x=-1
        tl=temp.split(",")
        d1=new Array()
        as=new Array()
        for (tx in tl) {
                tl[tx]=tl[tx].replace(/^-/,"")
                if (!af[tl[tx]]) {
                        for (aff in parent.w) if (String(aff).indexOf(tl[tx])==0) {
                                af[tl[tx]]=(af[tl[tx]] ? af[tl[tx]] : "")+","+aff
                        }
                        if (af[tl[tx]]) {
                                af[tl[tx]]=af[tl[tx]].substr(1)
                        }
                        else return "---"
                        x++
                }
                bs=af[tl[tx]].split(",")
                as[tl[tx]]=""
                for (aff in bs) as[tl[tx]]+="+"+escape(exakt(bs[aff])).replace(/-[^+]*/g,"")
                as[tl[tx]]+="+"
        }
        va=""
        for (x in as) if (va=="" || as[x].length<va.length) {
                va=as[x]
                k=x
        }
        va=va.substr(1)
        as[k]=""
        va2=va.split("+")
        var rueckgabe=""
        enth=false
        for (x in va2) {
                if (va2[x] == "") continue
                enth=true
                for (y in as) {
                        if (as[y] == "") continue
                        if (as[y].indexOf("+"+va2[x]+"+") == -1) {
                                enth=false
                                break
                        }
                }
                if (enth) rueckgabe=rueckgabe+","+va2[x]
        }
        tmp3=rueckgabe.substr(1).split(",").sort(Numsort)
        rueckgabe=""
        for (x in tmp3) {
                if (tmp2==tmp3[x]) continue
                rueckgabe+=","+tmp3[x]
                tmp2=tmp3[x]
        }
        rueckgabe=rueckgabe.substr(1)
        if (rueckgabe>"") return rueckgabe
        else return "---"
}

function oder(temp,suchenach,tmp2,k,tmp3,ue,ohne_sortierung) {
        indok=new Array()
        var x=-1
        var zz5=0
        od=new Array()
        as=new Array()
        for (tx in temp) {
                if (parent.w[temp[tx]]) {
                        tmp2=escape(parent.w[temp[tx]]).replace(/-[^+]*/g,"")
                        tmp3=tmp2.split("+")
                        for (x in tmp3) {
                                indok[tmp3[x]]=(indok[tmp3[x]] ? indok[tmp3[x]] : "")+html(unescape(temp[tx]))+"~"
                        }
                }
        }
        rueckgabe=new Array()
        ri=0
        for (y in indok) {
                rueckgabe[ri++]=y
                indok[y]=indok[y].replace(/~$/,"")
        }
        rueckgabe.sort(Numsort)
        if (ri>0) return rueckgabe.join(",")
        else return "---"
}

function ls(a,b) {
        return b.split(" ").length-a.split(" ").length
}

function n(temp) {
        while (temp.length<3) temp="0"+temp
        return temp
}

function oder_a_d(temp,x,f,d,y,va,kl,zaehler,ri) {
        indok=new Array()
        tl=temp.split(",")
        for (x in tl) {
                for (f in parent.w) {
                        if (String(f).indexOf(tl[x])==0) {
                                ds=escape(parent.w[f]).replace(/-[^+]*/g,"")
                                d=ds.split("+")
                                for (y in d) {
                                        indok[d[y]]=(indok[d[y]] ? indok[d[y]] : "")+html(f)+"~"
                                }
                        }
                }
                for (y in indok) indok[y]=indok[y].replace(/~$/,"#")
        }
        rueckgabe=new Array()
        ri=0
        for (y in indok) {
                if (indok[y].split("#").length>0) {
                        rueckgabe[ri++]=y
                }
        }
        rueckgabe.sort(Numsort)
        if (ri>0) return rueckgabe.join(",")
        else return "---"
}

function oder_a(temp,kurz,tmp2,k,tmp3,x) {
        x=-1
        tl=temp.split(",")
        d1=new Array()
        as=new Array()
        var o_a=""
        for (tx in tl) if (!as[tl[tx]]) for (aff in parent.w) {
                if (String(aff).indexOf(tl[tx])==0) {
                        o_a+="+"+escape(parent.w[aff]).replace(/-[^+]*/g,"")
                }
        }
        if (kurz) return o_a+"+"
        if (o_a=="") return "---"
        tmp3=o_a.substr(1).split("+")
        tmp3.sort(Numsort)
        rueckgabe=""
        for (x in tmp3) {
                if (tmp2==tmp3[x]) continue
                rueckgabe+=","+tmp3[x]
                tmp2=tmp3[x]
        }
        return rueckgabe.substr(1)
}

function oder_e(temp,tmp2,k,tmp3) {
        var x=-1
        tl=temp.split(",")
        var o_a=""
        for (tx in tl) o_a+="+"+escape(exakt(tl[tx])).replace(/-[^+]*/g,"")
        return o_a+"+"
}

function exakt(temp) {
        if (parent.w[temp]) return parent.w[temp]
        else return "---"
}

function Dateikopf() {
        if (nc4) document.Suchfeld.Absendeknopf.blur()
        if (ie4) document.all.Einblenden_ausblenden.innerHTML="<SPAN Class='Meldung'>Suche l&auml;uft...</SPAN>"
        with (parent.frames['Anzeige'].document) {
                writeln("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n<html><head>")
                writeln("<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\">")
                writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"../../src/selfhtml.css\">")
                writeln("<style type=\"text/css\">")
                writeln("<!--")
                if (ie4 || mz5) { writeln("p,dt,dd,ol,li        {  font-size: 3.5mm;") }
                if (nc4) writeln("p,dl,dt,dd,ol,li        {  font-size: small;")
                writeln("        line-height: 110%;")
                writeln("        font-family: Arial, Verdana;")
                writeln(" }")
                if (ie4) writeln("dt,dd { margin-left:4ex; margin-top:0.7mm; }")
                writeln("//-->")
                writeln("</style>")
                writeln("<title>Ergebnisse</title></head>")
                writeln("<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#AA5522\" vlink=\"#772200\" alink=\"#000000\" onload=\"self.focus()\">")
        }
}

function Dateifuss() {
        var temp=""
        window.defaultStatus = "Suche abgeschlossen"
        window.setTimeout("window.defaultStatus = ''",2000)
        var sf="<input LANGUAGE='JavaScript' type=button onClick='Pruefe()' value='Suchen'>"
        if (!ngf) sf+="&nbsp;<input type=button onClick=\"Aendern(und[0]+'|'+und[1])\" value=\"Treffer markieren\" title=\"Klicken Sie hier, um nach dem Seitenaufruf im gefundenen Dokument den bzw. die Suchtreffer zu markieren und zum ersten Auftreten zu springen\">"
        if (ie4) document.all.Einblenden_ausblenden.innerHTML=sf
        ausruecken=""
        while (altebausr>0) {
                ausruecken+=dts()+"</dl></dd>"
                altebausr--
        }
        ausruecken+="</dl>"
        with (parent.frames['Anzeige'].document) {
                if (ngf) writeln("<p>Es wurde keine "+(zngf ? "weitere " : "")+"Seite mit Treffern gefunden")
                fc="<p>&nbsp;\n</body></html>"
                if (zwischenergebnis) writeln(ausruecken+temp+"<p align=center><b><a href=\"javascript:parent.frames['Suche'].weiter("+(ergebniszaehler)+")\">Weitere Treffer</a></b>"+fc)
                else writeln(ausruecken+temp+"<p align=center><b>Die Suche ist abgeschlossen</b>"+fc)
                close()
        }
        document.Suchfeld.Suchenach.blur()
        if (!nc45) parent.frames['x'].location.href="leer.htm"
}

function weiter(temp) {
        ergebniszaehler=temp
        seitenbeginn[seiteaktuell]=altergebniszaehler
        seiteaktuell++
        zeige(zwischenergebnisse,vorspann)
}

function zurueck(temp) {
        seiteaktuell=temp
        ergebniszaehler=seitenbeginn[seiteaktuell]
        zeige(zwischenergebnisse,vorspann)
}

function zeige(temp,text,zl) {
        zwischenergebnisse=temp
        vorspann=text
        if (text) Dateikopf()
        eb= new Array()
        altebausr=0
        zl=0
        ngf=0
        dt=0
        with (parent.frames['Anzeige'].document) {
                z=zwischenergebnisse.split(",")

                if (text) writeln("<TABLE WIDTH=\"100%\"><TR><TD ALIGN=\"left\" VALIGN=\"top\">"+text+"</TD><TD ALIGN=\"right\" VALIGN=\"top\"><img src=\""+archiv+"src/dok.gif\" width=\"15\" height=\"10\" border=\"0\" alt=\"Seite\">&nbsp;<A HREF=\"unten.htm\">Hilfe</A></TD></TR></TABLE>")
                if (ergebniszaehler!=0) writeln("<p align=center><b><a href=\"javascript:parent.frames['Suche'].zurueck("+(seiteaktuell-1)+")\">Vorherige "+bildschirm+" Treffer</a></b>")
                writeln("<dl>")
                while ((zwischenergebnisse=="---" || zwischenergebnisse=="") && nd[aktuellerindex+1]) {
                        zwischenergebnisse=nachladen()
                        if (zwischenergebnisse == "---") ngf=1
                }
                if (!ngf) {
                        temp=z.length
                        altergebniszaehler=ergebniszaehler
                        while (ergebniszaehler < temp && zl < bildschirm) {
                                if (z[ergebniszaehler].search(/^[0-9]*$/)==0) { // NC-Sonderbehandlung
                                        if (ohne0=="" || ohne1.indexOf("+"+z[ergebniszaehler]+"+")==-1) {
                                                if (!zsg || (exkt && RF(z[ergebniszaehler])>0) || (!exkt && RF_a(z[ergebniszaehler])>0)) {
                                                        writeln(datei(z[ergebniszaehler])+(interneansicht ? " "+(ergebniszaehler) : ""))
                                                        zl++
                                                }
                                        }
                                }
                                ergebniszaehler++
                                if (ergebniszaehler == temp) {
                                        do {
                                                weitereergebnisse=nachladen()
                                        } while (weitereergebnisse=="---" && nd[aktuellerindex+1])
                                        if (weitereergebnisse == "---") break
                                        else {
                                                zwischenergebnisse+=","+weitereergebnisse
                                                z=zwischenergebnisse.split(",")
                                                temp=z.length
                                        }
                                }
                        }
                        if (zl==0) ngf=1
                }
                minus+=mmm
                mmm=0
                if (zwischenergebnis && ngf) zngf=1
                zwischenergebnis=0
                if (ergebniszaehler<temp) zwischenergebnis=1
                Dateifuss()
        }
}

function Suche(ausdruck0) {
        exkt=parent.frames['Suche'].document.Suchfeld.EXAKT[0].checked
        oder_s=parent.frames['Suche'].document.Suchfeld.UNDODER[1].checked
        ausdruck0=ausdruck0.replace(/%22/g,"\"").replace(/  +/g," ").replace(/("?) ("?)$/g,"$1$2").replace(/[,.;:!?]/g,"")
        zsg=ausdruck0.match(/-?"[^"]*"/g)
        ausdruck0=ausdruck0.replace(/-?"[^"]*"/g,"")
        und0=ausdruck0.split(" ")
        ohne0=""
        for (x in und0) {
                if (und0[x].indexOf("-")==0) {
                        ohne0+=","+und0[x].substr(1)
                }
                else {
                        und_++
                        und[und_]=und0[x]
                }
        }
        if (und.length==0) {
                alert("Es muß mindestens ein positiver Suchbegriff eingegeben werden")
                parent.frames['Suche'].document.Suchfeld.Suchenach.focus()
                return
        }
        if (ohne0>"") {
                if (exkt) ohne1=oder_e(ohne0.substr(1))
                else ohne1=oder_a(ohne0.substr(1),true)
        }
        var az = (zsg ? zsg.length : 0)+und.length
        if (ohne0>"") ohne_t=unescape(" und "+ohne0.replace(/,/g,"</B> oder <B>").substr(10)+"</B> nicht vorkomm"+(ohne0.split(",").length>2 ? "en" : "t"))
        var zaehler1 = 0
        window.defaultStatus = "Suche läuft..."
        if (zsg) {
                zsg[0]=zsg[0].replace(/"/g,"")
                und = zsg[0].split(" ")
        }
        if (mz5 || (window.location.protocol == "http:" && ie4)) alert("Suche vorbereitet. Bitte drücken Sie OK.")
        if (oder_s && !zsg) {
                var befehl=""
                for (x=0; x<und.length; x++) {
                        befehl=befehl+","+html(und[x].replace(/"/g,""))
                        suchenach+="</B> oder <B>"+html(und[x].replace(/"/g,""))
                }
                if (exkt) to=oder(und)
                else {
                        odera=1
                        if (zeigedetails)        to=oder_a_d(und.join(","))
                        else to=oder_a(befehl.substr(1))
                }
                zeige(to,"Suche nach: <b>"+suchenach.substr(13)+"</b> "+(az==1 ? (ohne_t == "" ? "" : "<BR>(Seiten, in denen dieser Ausdruck vorkommt "+ohne_t+(exkt ? "" : " - Wortanfangsuche)")) : "<BR>(Seiten, in denen mindestens einer der "+(az==2 ? "beiden" : az)+" Ausdr&uuml;cke vorkommt "+ohne_t+(exkt ? "" : " - Wortanfangsuche)")))
                return
        }
        else if (exkt) {
                var befehl=""
                for (x=0; x<und.length; x++) {
                        befehl=befehl+","+und[x].replace(/"/g,"")
                        suchenach+="</B> und <B>"+html(und[x].replace(/"/g,""))
                }
                ueber="Suche nach: <b>"+suchenach.substr(12)+"</b> "+(az==1 ? (ohne0>"" ? "<BR>(Seiten, in denen dieser Ausdruck vorkommt "+ohne_t+")" : "") : "<BR>(Seiten, in denen "+(az==2 ? "beide" : "alle "+az)+" Ausdr&uuml;cke vorkommen "+ohne_t+" - exakte Suche)")
                if (zsg) ueber="Suche nach: &laquo;"+html(zsg[0]).bold()+"&raquo;<BR>(Seiten, in denen dieser zusammengesetzte Ausdruck vorkommt "+ohne_t+")<P>"
                zeige(vgl(befehl.substr(1)),ueber)
                return
        }
        indzz = new Array()
        for (x=1; x<=und.length; x++) indzz[x]=false
        indz = new Array()
        for (x=0; x<und.length; x++) suchenach=suchenach+"</B> und <B>"+html(und[x].replace(/"/g,""))
        ueber="Suche nach: <b>"+suchenach.substr(12)+"</b> "+(az==1 ? (ohne0>"" ? "<BR>(Seiten, in denen dieser Ausdruck vorkommt "+ohne_t+" - Wortanf&auml;nge)" : "") : "<BR>(Seiten, in denen "+(az==2 ? "beide" : "alle "+az)+" Ausdr&uuml;cke vorkommen "+ohne_t+" - Wortanf&auml;nge)")
        if (zsg) ueber="Suche nach: &laquo;"+html(zsg[0]).bold()+"&raquo;<BR>(Seiten, in denen dieser zusammengesetzte Ausdruck vorkommt "+ohne_t+" - Wortanf&auml;nge)<P>"
        vgla=1
        if (zeigedetails && !zsg) {
                to=vgl_a_d(und.join(","))
        }
        else to=vgl_a(und.join(","))
        zeige(to,ueber)
}

function Konfigurieren(ausgabe) {
        if (nc45) {
                if (!top.window.name.match(/0s$/)) {
                        top.window.name+="0s"
                        top.history.go(0)
                        return
                }
                else {
                        top.window.name=top.window.name.replace(/0s$/,"")
                }
        }
        ausgabe="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<html>\n<head>\n<title>SELFHTML: Suche</title>\n<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=iso-8859-1\">\n<style type=\"text/css\">\n<!--\ntd {text-align:left;\nfont-size:10pt;\nfont-family:\"Arial\"; }\ntd.zentriert {text-align:center}\nth {text-align:center;\nfont-size:12pt;\nfont-weight:bold;\nfont-family:\"Arial\";}\n.Meldung {\nfont-size:13pt;\nfont-family:\"Arial\"}\n-->\n</style>\n<script language=\"JavaScript\" type=\"text/javascript\">\nfunction alle(temp) {\n        ff=document.forms[\"Einstellungen\"][\"Teilarchiv\"]\n        for (x=0; x<ff.length; x++) if (document.layers || !ff[x].disabled) "
        ausgabe+="ff[x].checked=temp\n}\nfunction uo() {\n        return true\n}\n</script>\n</head>\n\n<body bgcolor=white>\n<DIV ALIGN=\"Center\">\n<form NAME=\"Einstellungen\" action=\"#\">\n<table cellpadding=\"0\" cellspacing=\"1\" border=\"0\" bgcolor=\"silver\" WIDTH=\"70%\"><tr><td>\n<TABLE BORDER=\"0\" CELLPADDING=\"5\" cellspacing=\"1\">\n<TR>\n<TH bgcolor=\"#EEEEEE\" COLSPAN=\"2\">&nbsp;<BR><B>Maximale Trefferzahl pro Seite</B><BR>&nbsp;\n</TH>\n</TR>\n<TR><TD bgcolor=\"#EEEEEE\" VALIGN=\"top\">&nbsp;"+trefferliste()+"</TD><TD bgcolor=\"#EEEEEE\" VALIGN=\"top\" WIDTH=\"50%\">&nbsp;\n</TD></TR>\n<TR>\n<TH bgcolor=\"#EEEEEE\" COLSPAN=\"2\">&nbsp;<BR><B>Ausgabeformat</B><BR>&nbsp;\n</TH>\n</TR>\n<TR><TD bgcolor=\"#EEEEEE\" VALIGN=\"top\">\n<input type=radio name=\"Detail\" "+(zeigedetails ? "Checked " : "")+"value=\"1\">"
        ausgabe+="<span onClick=\"uo(true)\">Detailliert</span>\n<input type=radio name=\"Detail\" "+(zeigedetails ? "" : "Checked ")+"value=\"0\"><span onClick=\"uo(false)\">Einfach</span>\n</TD><TD bgcolor=\"#EEEEEE\" VALIGN=\"top\" WIDTH=\"50%\">Hier k&ouml;nnen Sie einstellen, ob bei der \"Wortanfang\"- und \"Oder\"-Suche auch die in den Dokumenten vorkommenden zutreffenden Suchbegriffe angezeigt werden sollen (detailliert) oder nicht (einfach).\n</TD></TR>\n<TR>\n<TH bgcolor=\"#EEEEEE\" COLSPAN=\"2\">&nbsp;<BR><B>gefundene Dateien &ouml;ffnen...</B><BR>&nbsp;\n</TH>\n</TR>\n<TR><TD bgcolor=\"#EEEEEE\" VALIGN=\"top\">\n<input type=radio name=\"oef\" "+(oeffnen==0 ? "Checked " : "")
        ausgabe+="value=\"1\"><span onClick=\"uo(true)\">im gleichen Frame</span><BR>\n<input type=radio name=\"oef\" "+(oeffnen==1 ? "Checked " : "")+"value=\"0\"><span onClick=\"uo(false)\">in einem zweiten Fenster</span><BR>\n<input type=radio name=\"oef\" "+(oeffnen==2 ? "Checked " : "")+"value=\"0\"><span onClick=\"uo(false)\">jeweils in neuen Fenstern</span>\n</TD><TD bgcolor=\"#EEEEEE\" VALIGN=\"top\" WIDTH=\"50%\">Hier k&ouml;nnen Sie einstellen, wo die sich die Dokumente &ouml;ffnen, wenn Sie in der Ergebnisliste auf die &Uuml;berschrift klicken.<BR><BR>&nbsp;\n</TD></TR>\n"
        ausgabe+="<TR>\n<TH bgcolor=\"#EEEEEE\" COLSPAN=\"2\">&nbsp;<BR><B>Schriftformatierung</B><BR>&nbsp;\n</TH>\n</TR>\n<TR><TD bgcolor=\"#EEEEEE\" VALIGN=\"top\">\n<input type=radio name=\"fett\" "+(f1=="<B>" ? "Checked " : "")+"value=\"1\"><span onClick=\"uo(true)\">fett</span><BR>\n<input type=radio name=\"fett\" "+(f1!="<B>" ? "Checked " : "")+"value=\"0\"><span onClick=\"uo(false)\">normal</span>\n</TD><TD bgcolor=\"#EEEEEE\" VALIGN=\"top\" WIDTH=\"50%\">Hier k&ouml;nnen Sie einstellen, ob die Treffer mit fetter oder normaler Schriftst&auml;rke ausgegeben werden.<BR><BR>&nbsp;\n</TD></TR>\n"
        ausgabe+="<TR>\n<TD bgcolor=\"#EEEEEE\" CLASS=\"zentriert\" COLSPAN=\"2\"><input type=button onClick=\"parent.frames['Suche'].einstellungen(this.form.Detail[0].checked,this.form.Anzeigen.options[this.form.Anzeigen.options.selectedIndex].value,this.form.oef,this.form.fett)\" name=\"Einstellungenuebernehmen\" value=\"Einstellungen übernehmen\" style=\"background-color:#FFEEDD\">\n</TD></TR>\n<TR><TD bgcolor=\"#EEEEEE\" COLSPAN=\"2\">&nbsp;<FONT FACE=\"Arial\" Size=\"-2\"><I>Hinweis: zum Speichern der Einstellungen auf der Festplatte werden <img src=\""+archiv+"src/dok.gif\" width=\"15\" height=\"10\" border=\"0\" alt=\"Seite\">&nbsp;</i><a href=\""+archiv+"javascript/objekte/document.htm#cookie\"><b>Cookies</b></a><i> verwendet.</I></FONT></TD></TR>\n</table></td></tr></table></Form></DIV>\n</body>\n"

        with (parent.frames['Anzeige'].document) {
                write(ausgabe)
                write("</html>")
                close()
        }
}

function Pruefe() {
        if (window.location.protocol == "http:" && ie4) {
                alert("Hinweis: diese Suchmaschine funktioniert mit dem Internet Explorer lediglich im lokalen Betrieb, nicht jedoch in einer http-Umgebung. Benutzen Sie im Internet stattdessen bitte die Online-Suche.")
                return
        }
        suche0=document.Suchfeld.Suchenach.value
        if ( suche0.length < 1 ) {
                alert( "Es muß mindestens ein Zeichen eingegeben werden." )
                document.Suchfeld.Suchenach.focus()
        }
        else {
                formular_auswerten(suche0)
        }
}

function formular_auswerten(suche0) {
        suche=""
        af= new Array()
        if (nc45) document.layers.LadeBereich.w= new Array()
        else parent.w= new Array()
        indokg=new Array()
        itext= new Array()
        und_=-1
        ngf=false
        suchenach=""
        vgla=0
        odera=0
        ergebniszaehler=0
        mmm=0
        minus=0
        zwischenergebnis=0
        zngf=0
        lx=0
        seitenbeginn=new Array()
        seiteaktuell=1
        ohne_t=""
        nd= new Array()
        nd[1]=2
        aktuellerindex=1
        suche = escape(suche0.toLowerCase().replace(/<\//g,"_st_").replace(/\$_/g,"_di_")).replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g," ").replace(/(%20)+/g," ").replace(/^(\w+)-(\w+)/g,"%22$1 $2%22").replace(/_st_/g,"</").replace(/_di_/g,"%24_")
        suche=suche.replace(/  +/g," ")
        suche=suche.replace(/ $/,"").replace(/^ /,"")
        und = suche.split(" ")
        und.sort()
        bergel=","
        if (!nc45) parent.frames['x'].document.open()
        for (t in und) {
                und[t]=und[t].replace(/(%22)|^-/g,"")
                if (und[t] != "%20") indexladen(nd[aktuellerindex],und[t])
        }
        if (nc45) document.layers.LadeBereich.hinauf()
        und= new Array()
        Suche(suche)
}

function indexladen(teil,temp,x) {
        temp=temp.replace(/^-/,"")
        temp2=temp.substr(0,1)
        if (!i[teil][temp2]) return
        indx=i[teil][temp2].split(",")
        if (indx[1] == "%22") {  //Netscape-Fehler
                erstes=indx.shift()
                indx.shift()
                indx.unshift(erstes)
        }
        insg=0
        for (x in indx) {
                if (ssz(temp) < indx[x]) {
                        if (x==0) x=1
                        laden(teil,temp2,x)
                        if (temp != indx[x].substr(0,temp.length)) {
                                insg=1
                                break
                        }
                }
        }
        if (insg==0) laden(teil,temp2,indx.length-1)
}

function laden(teil,temp,temp2,hin) {
        lx++
        if (window.location.protocol == "http:" && ie4) alert("Lade Indexdatei "+lx)
        if (temp=="_") temp="__"
        if (temp=="%") temp="_"
        if (bergel.indexOf(","+temp+temp2+",")==-1) {
                ini="\""
                ini+="index"+nd[aktuellerindex]+"\/"+temp+temp2+".js\""
                if (nc45) {
                        with (document.layers.LadeBereich) {
                                hole("<script language=\"JavaScript\" src="+ini+" type=\"text\/javascript\"><\/script>")
                                src="leer.htm"
                        }
                }
                else parent.frames['x'].document.writeln("<script language=\"JavaScript\" src="+ini+" type=\"text\/javascript\"><\/script>")
                bergel+=temp+temp2+","
        }
}

function Eingabe() {
        Pruefe()
        return false
}

function neusuche(temp) {
        document.forms[0].elements[0].value=temp
        top.frames['Suche'].document.Suchfeld.Suchenach.focus()
}

function Sprung(temp) {
        if (temp.match(/^"[^"]*"$/)) {
                return temp.replace(/"$|^"/g,"")
        }
        else {
                return temp.replace(/ .*|"/g,"")
        }
}

function Aendern() {
        if (parent.frames['Anzeige'].location.href.replace(/.*\//,"")=="vt1.htm") {
                alert("Bitte wählen Sie erst ein gefundenes Dokument aus")
                return
        }
        ausdr=""
        for (x=0; x<und.length; x++) if (und[x]>"") ausdr+="|"+und[x]
        ausdr="/\\b("+unescape(ausdr.substr(1))+")/gi"
        parent.frames['Anzeige'].document.all.tags("body")[0].innerHTML=parent.frames['Anzeige'].document.all.tags("body")[0].innerHTML.replace(eval(ausdr),"<A NAME=\"S-Erg\"></A><SPAN STYLE=\"background-color:#FCE463; color:black\">$1</SPAN>")
}

function uo(temp) {
        with (document.Suchfeld) {
                UNDODER[0].checked=temp
                UNDODER[1].checked=(!temp)
        }
}

function ex(temp) {
        with (document.Suchfeld) {
                EXAKT[0].checked=temp
                EXAKT[1].checked=(!temp)
        }
}

function nachladen(to) {
        aktuellerindex++
        if (!nd[aktuellerindex]) return "---"
        af= new Array()
        parent.w= new Array()
        ngf=false

        bergel=","
        if (!nc45) parent.frames['x'].document.open()
        for (t in und) {
                und[t]=und[t].replace(/%22|^-/g,"")
                if (und[t] != "%20") indexladen(nd[aktuellerindex],und[t])
        }
        ohne2=ohne0.substr(1).split(",")
        for (t in ohne2) {
                if (ohne2[t] != "%20") indexladen(nd[aktuellerindex],ohne2[t])
        }
        if (nc45) document.layers.LadeBereich.hinauf()
        window.defaultStatus = "Suche läuft..."
        if (ohne0>"") {
                if (exkt) ohne1+=oder_e(ohne0.substr(1)).replace(/^\+/,"")
                else ohne1+=oder_a(ohne0.substr(1),true).replace(/^\+/,"")
        }

        if (oder_s) {
                if (odera) {
                        if (zeigedetails)        to=oder_a_d(und.join(","))
                        else to=oder_a(befehl.substr(1))
                }
                else to=oder(und)
        }
        else if (exkt) to=vgl(und.join(","))
        else {
                if (zeigedetails) to=vgl_a_d(und.join(","))
                else to=vgl_a(und.join(","))
        }
        return to
}

function abfolge(x,y) {
        nd= new Array()
        x=20
        y=1
        while (x>1) {
                x--
                if (aktiv[x]) nd[y++]=x
        }
}

function einstellungen(ausf,anzahl,oef,fett,x) {
        zeigedetails=ausf
        bildschirm=anzahl
        for (x=0; x<3; x++) if (oef[x].checked) oeffnen=x
        if (fett[0].checked) {
                f1="<B>"
                f2="</B>"
        }
        else {
                f1=""
                f2=""
        }
   var cook = (ausf ? 1 : 0)+"_"+anzahl+"_"+oeffnen+"_"+(fett[0].checked ? 1 : 0)
   var Verfall = 1000*60*60*24*365
   var jetzt = new Date()
   var Auszeit = new Date(jetzt.getTime() + Verfall);
   document.cookie = "Selfhtml8="+cook+"; expires="+Auszeit.toGMTString()+";"
        alert("Die Einstellungen sind ab der nächsten Suche gültig")
        if (nc45) parent.frames['Anzeige'].location.href="unten.htm"
        document.Suchfeld.Suchenach.focus()
}

function trefferliste(temp,x) {
        tr = new Array(10,20,30,50,75,100,150)
        temp="<select name=\"Anzeigen\" size=1>"
        for (x=0; x<tr.length; x++) temp+="<option "+(bildschirm==tr[x] ? "selected " : "")+"value='"+tr[x]+"'>"+tr[x]
        return temp+"</select> Treffer"
}

function html(temp) {
        return unescape(temp).replace(/</g,"&lt;").replace(/>/g,"&gt;")
}

function ssz(temp) {
        return temp.replace(/_/g,"~")
}
