/* Breadcrumbs in eigenem Abschnitt ausdrucken
   Parameter:	bc:		Hash von Breadcrumbs in "Zweig"-Struktur
		urlPath:	Pfad in der URL, welcher in Breadcrumbs umgewandelt werden soll
		rootText:	Text des "Root"- (d.h. Start-)Breadcrumbs
		rootUrl:	Link-URL des Root-Breadcrumbs
		separator:	Trennzeichen zwischen den Breadcrumbs
		cssClass:	CSS-Klasse des kompletten Breadcrumb-Abschnitts - Standard: "breadcrumbs"
*/
function printBreadCrumbs(bc, urlPath, rootText, rootUrl, separator, cssClass) {
	var pos;
	function doIt(h, urlPath, bcPath) {
		var bcID; pos = urlPath.indexOf('/'); var t = '';
		pos == -1 ? bcID = urlPath : bcID = urlPath.substr(0, pos);
		if (bcID != '' && typeof(h[bcID]) != 'undefined') {
			var bcItem = h[bcID]; bcPath += '/' + bcID;
			if (bcItem.hasChild()) {
				t = separator + '<a href="' + bcPath + '/' + bcItem.dirStartFile + '">' + bcItem.title + '</a>';
				t += doIt(bcItem.sub, urlPath.substr(pos+1), bcPath);
			}
			else {t = separator + '<a href="' + bcPath + '">' + bcItem.title + '</a>';}
		}
		return t;
	}
	
	// urlPath normalisieren
	pos = urlPath.indexOf('://');
	if (pos > -1) urlPath = urlPath.substr(urlPath.indexOf('/', pos+3));
	while (urlPath.substr(0, 1) == '/') urlPath = urlPath.substr(1);

	var t;
	typeof(cssClass) == typeof('a') ? t = '<div class=' + cssClass + '">' : t = '<div class="breadcrumbs">';
	t += '<a href="' + rootUrl + '">' + rootText + '</a>'
	t += doIt(bc, urlPath, '');
	t += '</div>';
	return(t);
}

/* Komplette BC-Hash-Struktur in Liste ausgeben - für Debug-Zwecke */
function printBCHash(h) {
	function doIt(h, url) {
		var t = "";
		for (i in h) {
			var e = h[i];
			e.hasChild() ? u = url + '/' + i + '/' + e.dirStartFile : u = url + '/' + i;
			t += '\t<li><b><a href="' + u + '">' + e.title + "</a></b>";
			if (e.hasChild()) {t += "\n<ul>\n" + doIt(e.sub, url + '/' + i) + "</ul>\n"}
			t += "</li>\n";
		}
		return t;
	}
return "\n<ul>\n" + doIt(h, '') + "</ul>";
}

/* Objekt für Breadcrumbs
   Parameter:	title:		Anzeige-Titel des Breadcrumbs
		dirStartFile:	für Verzeichnisse notwendig - Start-Datei des Verzeichnisses (meist "index.html")
   Schlüssel der einzelnen Hash-Werte der sub-Struktur ist der jeweilige Verzeichnis- bzw. Dateiname.

   Musterstruktur:

	bc = new Array();
	bc['unternehmen'] = new Zweig('Unternehmen', 'index.html');
		bc['unternehmen'].sub['konzernstruktur.html'] = new Zweig('Konzernstruktur');
		bc['unternehmen'].sub['standorte.html'] = new Zweig('Unsere Standorte');
	bc['produkte'] = new Zweig('Produkte', 'index.html');
		bc['produkte'].sub['produkte1'] = new Zweig('Produktgruppe 1', 'index.html');
			bc['produkte'].sub['produkte1'].sub['produkt1a'] = new Zweig('Produkt 1a');
			bc['produkte'].sub['produkte1'].sub['produkt1b'] = new Zweig('Produkt 1b');´
			...
		bc['produkte'].sub['produkte2'] = new Zweig('Produktgruppe 2', 'index.html');
			bc['produkte'].sub['produkte1'].sub['produkt1a'] = new Zweig('Produkt 1a');
			...
		...
	bc['aktuelles'] = new Zweig('Aktuelles', 'index.html');
		bc['aktuelles'].sub['karriere.html'] = new Zweig('Karriere');
		bc['aktuelles'].sub['news.html'] = new Zweig('News');
		...
	bc['kontakt.html'] = new Zweig('Kontakt');
	...

   Musteraufruf:

	printBreadCrumbs(bc, window.location.pathname, 'FSG', '/index.html', ' > ')

*/
function Zweig(title, dirStartFile)
{
	this.title = title; this.dirStartFile = dirStartFile; this.sub = new Array();
	function hasChild() {for (var i in this.sub) {return true;break;} return false;}
	this.hasChild = hasChild;
}