// javascript-funktion zur automatischen erzeugung eines 
// pfades mit navigationshistory innerhalb von html-seiten.
// dieses script darf unter beibehaltung des 
// copyright-vermerkes frei verwendet werden
// copyright 2003 sitepark gmbh, muenster, germany
// funktionsweise:
// eine beliebig lange history wird mit kurzem text 
// (z.b. seitentitel) und seitenurl innerhalb der 
// cookie-variablen navipath und naviurl protokolliert.
// der pfad wird automatisch verkürzt, wenn
// eine seite gleichen namens in der history schon einmal 
// vorhanden war.
// eine manuelle verkürzung des pfades erfolgt über die
// variable subindex. ein wert von z.b. 2 schneidet den 
// pfad hinter dem 2. eintrag ab.
// parameter
// pathname - Text, der im Pfad angezeigt werden soll.
//     - der Text muss im url-tauglichen Format
//            vorliegen und darf auf keinen fall komma
//            oder anfuehrungszeichen enthalten.
// pathurl  - URL der Seite
// subindex - optionale Angabe zur Verkürzung des Pfades
// einbindung in html-dokumente
// das script kann als externes javscript im header
// eines html-dokumentes eingebunden werden.
// beispiel:
// <script language="JavaScript" src="navipath.js" type="text/javascript"></script>
// der aufruf der funktion erfolgt an der stelle im
// html-dokument an der der pfad ausgegeben werden soll. 
// beim aufruf muessen die o.g. variablen uebergeben werden:
// <script language="JavaScript">makenavipath("Wetter","/wetter.html")</script>
function makenavipath(pathname,pathurl,pathtarget,subindex) {   
  delimiter =" | "
  outputparam ="target='_self'";
  // fuehrende und nachfolgende Leerzeichen entfernen
  pathname =pathname.replace(/^ +/,"");
  pathname =pathname.replace(/ +$/,"");
  if (!subindex) subindex =-1;
  navipatharray =new Array();
  naviurlarray =new Array();
  navitargetarray =new Array();
  // read cookie
  if (document.cookie)
  {
    start =document.cookie.indexOf("navipath=");
    if (start !=-1) {
      ende =document.cookie.indexOf(";",start);
      if (ende ==-1) ende =document.cookie.length;
      navipath =document.cookie.substring(start+9,ende);
      navipatharray =navipath.split(",");
    }
    start =document.cookie.indexOf("naviurl=");
    if (start !=-1) {
      ende =document.cookie.indexOf(";",start);
      if (ende ==-1) ende =document.cookie.length;
      naviurl =document.cookie.substring(start+8,ende);
      naviurlarray =naviurl.split(",");
    }
    start =document.cookie.indexOf("navitarget=");
    if (start !=-1) {
      ende =document.cookie.indexOf(";",start);
      if (ende ==-1) ende =document.cookie.length;
      navitarget =document.cookie.substring(start+8,ende);
      navitargetarray =navitarget.split(",");
    }
  }
  index =navipatharray.length
  // pfad kürzen
  if (subindex ==-1) {
    for (i =0; i < index; i++) {
      if (navipatharray[i].toLowerCase() ==pathname.toLowerCase()) {
        subindex =i+1;
        break;
      }
    }
  }
  if (subindex !=-1) {
    for (i =index; i >=subindex; i--) {
      navipatharray =navipatharray.slice(0,-1);
      naviurlarray =naviurlarray.slice(0,-1);
      navitargetarray =navitargetarray.slice(0,-1);
    }
  }
  // append new element
  naviurlarray[navipatharray.length] =pathurl
  navipatharray[navipatharray.length] =pathname
  navitargetarray[navitargetarray.length] =pathtarget
  // write cookie
  document.cookie ="navipath="+navipatharray.join(",")+"; path=/"
  document.cookie ="naviurl="+naviurlarray.join(",")+"; path=/"
  document.cookie ="navitarget="+navitargetarray.join(",")+"; path=/"
  for (i =0; i < navipatharray.length-1; i++) {
    document.write(delimiter+"<a href='"+naviurlarray[i]+"' "+outputparam+"?"+navitargetarray[i]+">"+unescape(navipatharray[i])+"</a>");
  }
  document.write(delimiter+"<b><a href='"+naviurlarray[i]+"' "+outputparam+"?"+navitargetarray[i]+">"+unescape(navipatharray[i])+"</a></b>");
}
