Julius: Suchfunktion anpassen

Hallo zusammen.

Habe aus eurem Forum eine nette Suchfunktion gefunden. Jedoch wären ein paar weitere Dinge voll super. Dürfte ich euch bitten mal im Quellcode zu schnuppern, da ich selber kein JavaScript kann.

Folgendes sollte die Funktion können:
1. Gefundene Ergebnisse nicht nur markieren, sondern auch hinscrollen.
2. Bei mehreren Ergebnissen, alle markieren (nicht nur das erste)

Quellcode:
<input type="text" name="SuchNach" value="Suchbegriff eingeben und auf markieren klicken"  size="50">
  <input type="submit" value="markieren" onClick="finden(SuchNach.value)"  >
  <script language="JavaScript">
<!--

function naechstes(element,followChildren)
{
  if (followChildren && element.firstChild != null)  return element.firstChild;
  if (element.nextSibling != null)  return element.nextSibling;
  if (element.parentNode != null)  return naechstes(element.parentNode,false);
  return null;
}

function finden(suchstring) {
  aktElement = document.getElementsByTagName("body")[0];

gefunden = -1;

do {
     text = "";

while (aktElement != null && aktElement.nodeType != 3)
  {      aktElement = naechstes(aktElement,true);
     }

startElement = aktElement;
     KnotenIndizes = new Array();
     i = 0;

while (aktElement != null && aktElement.nodeType == 3)
  {  KnotenIndizes[i] = text.length;
        text += aktElement.data;
        aktElement = naechstes(aktElement,true);
        i++;
     }
     KnotenIndizes[i] = text.length;
     gefunden = text.indexOf(suchstring)
  } while (gefunden == -1 && aktElement != null);

if (gefunden != -1)
  {     i = 1;
     while (KnotenIndizes[i] < gefunden)
  {    i++;
         startElement = naechstes(startElement,true);
    }

var neuB = document.createElement("span");
     neuB.style.color = "#000000";
     neuB.style.fontWeight = "bold";
     neuB.style.backgroundColor = "#0066FF";

neuB.appendChild(document.createTextNode(suchstring));

vortext = startElement.nodeValue.substr(0,gefunden-KnotenIndizes[i-1]);

startElement.nodeValue = startElement.nodeValue.substr(gefunden-KnotenIndizes[i-1]+suchstring.length,KnotenIndizes[i]-gefunden-suchstring.length);
     startElement.parentNode.insertBefore(neuB,startElement);
     startElement.parentNode.insertBefore(document.createTextNode(vortext),neuB);
   }
}
//-->
</script>

Thx im Vorraus
mfg Julius