// 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 2004 sitepark gmbh, muenster, germany
// ueberarbeitet am 26.06.2007 (FL, Cynapsis)
// 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 verkuerzt, wenn
// eine seite gleichen namens in der history schon einmal 
// vorhanden war.
// eine manuelle verkuerzung des pfades erfolgt ueber 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 Verkuerzung 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">
// 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,subindex,blnNoWrite) {
  
  // fuehrende und nachfolgende Leerzeichen entfernen
  pathname = pathname.replace(/^ +/,"");
  pathname = pathname.replace(/ +$/,"");
  
  // URL encoding aktivieren
  pathname = escape(pathname);
  
  // Anzeigetrenner definieren
  delimiter = " / "
  
  // wo soll der Link geoeffnet werden
  outputparam = "target='_self'";
  
  
  if (!subindex) subindex = 0;
  
  navipatharray = new Array();
  naviurlarray  = 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(",");
    }
  }
    
  index = navipatharray.length;
  
  // pfad kuerzen
  if (subindex == 0) {
    
    for (i = 0; i < index; i++) {
    
      if (navipatharray[i].toLowerCase() == pathname.toLowerCase()) {
        subindex = i+1;
        break;
      }
    }
  }
  
  
  if (subindex != 0) {
    for (i = index; i >= subindex; i--) {
      navipatharray.pop();
      naviurlarray.pop();
    }
  }
  
  // append new element
  navipatharray.push(pathname);
  naviurlarray.push(encodeURIComponent(pathurl));
  
  // write cookie
  document.cookie = "navipath=" + navipatharray.join(",") + "; path=/";
  document.cookie = "naviurl="  + naviurlarray.join(",")  + "; path=/";
  
  if (!blnNoWrite) {
    for (i =0; i < navipatharray.length; i++) {
      if (navipatharray[i]) document.write(delimiter + "<a href='" + decodeURIComponent(naviurlarray[i]) + "' " + outputparam + " class='pfad'>" + unescape(navipatharray[i]) + "</a>");
    }
  }
}