
var head="display:''"

// ----------------------------------------------------------------------------------------

// 20030321 Tobias Meyer, BISS GmbH 
// Problem: Durch das Verändern des Cookie-Strings durch das Script wird die SessionID 
//          ungültig. Der Servlet-Container erzeugt daher bei jedem Request eine neue 
//          Session. --> Loginstatus wäre nicht persistent
// Lösung:  Extra Cookie für den Status des Navigationsmenus

var jsess_cookie = document.cookie.match(/JSESSIONID=[0-9A-F]*/); // JSESSID=0192830AEF19283

if (jsess_cookie == null) 
	jsess_cookie = "";

var bissnav_cookie = document.cookie.match(/N=[A-Z\.]*/) + ""; //N=.PR.SS
if ((bissnav_cookie == null) || (bissnav_cookie == 'null')) 
	bissnav_cookie = "N=";
	
//alert(jsess_cookie);
//alert(bissnav_cookie);	
	
// ----------------------------------------------------------------------------------------

var ns6=document.getElementById&&!document.all
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1

// Zum Thema Dateinamen:
// Dateien können heissen, wie sie wollen. Wenn sie nicht so heissen, wie hier beschrieben,
// funktioniert aber die richtige Klapperei nicht mehr :-)
// Grundsatzlich ist ein Dateiname in verschiedene, durch Punkte voneinander getrennte Bereiche aufgeteilt:
// Am Anfang steht die DIV-ID (also der auf-/zuklappbare Bereich) des Hauptmenüs, in der der Link
// zu dieser Datei steht. 
// 		Beispiel: Seite "Impressum" in der Hauptrubrik "Unternehmen" => unternehmen.impressum.jsp
// Steht eine Seite im Menü gleich in der ersten Ebene, gibts auch keine DIV-ID.
// 		Beispiel: Seite "Bug-Database" in der 1. Ebene => bug-database.jsp
// In der 3. Ebene setzt sich eine DIV-ID immer aus der ID der 2. Ebene und einem weiteren Wort (getrennt
// durch einen Punkt) zusammen. Darunter liegenden DIVs gibt es nicht.
// 		Beispiel: Seite "Download" der Unterrubrik "B-Wise" in der Hauptrubrik "Produkte" => produkte.bwise.download.jsp


// Auflistung der Hauptrubriken (1. Ebene); hintereinander durch Pipes getrennt:
//		- Bezeichnung der elterlichen DIV-Section 
//		- Bezeichnung der folgendes DIV-Section
//		- Text des Menüeintrages
//		- und der Link zur Seite
// Einträge der ersten Ebene haben keine elterliche DIV-Section
// Handelt es sich um einen Klappeffekt und somit keinen Link, bleibt die DIV-Section leer

var MENUEEINTRAEGE = new Array(
	"||News|/news.jsp",
	"|projekte|Lösungen|",
		"projekte||Leistungsspektrum|/projekte.ueberblick.jsp",
		"projekte||V.I.P.|/projekte.vip.jsp",
		"projekte||HICOS|/projekte.hicos.jsp",
		"projekte||tel'ass|/projekte.telass.jsp",
		"projekte||WinRisk|/projekte.winrisk.jsp",
		"projekte||ELAN|/projekte.elan.jsp",
	"|produkte|Produkte|",
		"produkte|produkte.bwise|B-Wise|",
			"produkte.bwise||Überblick|/produkte.bwise.ueberblick.jsp",
			"produkte.bwise||Nutzen|/produkte.bwise.nutzen.jsp",
			"produkte.bwise||Funktionsübersicht|/produkte.bwise.funktionsuebersicht.jsp",
			"produkte.bwise||Systemarchitektur|/produkte.bwise.architektur.jsp",
			"produkte.bwise||Systemanforderungen|/produkte.bwise.systemanforderungen.jsp",
			"produkte.bwise||Informationsmaterial|/produkte.bwise.infomaterial.jsp",
			"produkte.bwise||Referenzkunden|/produkte.bwise.referenzen.jsp",
			"produkte.bwise||Mobiler Client|/produkte.mobileclient.ueberblick.jsp",
			"produkte.bwise||Update-System|/bwupdater/index.jsp",
			"produkte.bwise||B-Wise XA SDK|/produkte.bwise.sdk.jsp",
	"|support|Support|",
		"support|support.bwise|B-Wise|",
			"support.bwise||Aktuelle Version|/support.bwise.download.jsp",
			"support.bwise||Support-Tipps|/support.bwise.tipps.jsp",
		"support|support.bsdk|B-Wise SDK|",
			"support.bsdk||Aktuelle Version|/support.bsdk.download.jsp",
			"support.bsdk||Support-Tipps|/support.bsdk.tipps.jsp",
	"|unternehmen|Unternehmen|",
		"unternehmen||BISS GmbH|/unternehmen.ueberblick.jsp",
		"unternehmen||Jobs|/unternehmen.jobs.jsp",
		"unternehmen||Kontakt|/unternehmen.kontakt.jsp",
		"unternehmen||Impressum|/unternehmen.impressum.jsp",
	"||Reporting|/reporting.jsp"
)
	

// Hier werden jeder möglichen DIV-Section eindeutige ZWEISTELLIGE (!) Codes zugeordnet, die bei 
// jedem Auf-/Zuklappen über die Funktion "klapperli()" gegen den bestehenden Cookie erstetzt werden.
var COOKIECODES = new Array(
	"loesungen|LO",
	"projekte|PJ",
	"produkte|PR",
	"produkte.bwise|PW",
	"support|SU",
	"support.bwise|SW",
	"support.bsdk|SS",
	"unternehmen|UN"
)

// um den aktuell angeklickten Link hervorzuheben (mit <a class="menueaktiv">) muss herausgesucht werden, welche Seite gerade aufgerufen wurde:
var aktuelleSeite 	= document.URL.split("/")[(document.URL.split("/")).length-1];
//alert(aktuelleSeite);

// Menue aufbauen:
for (var i=0; i < MENUEEINTRAEGE.length; i++) {
	var Menue = MENUEEINTRAEGE[i].split("|");
	if (!Menue[0] && Menue[3]) {
		// 1. Ebene mit direkten Links
		document.write('<table border="0" cellpadding="2" cellspacing="0" width="190"><tr><td class="menue1">');
		document.write('<a class="menue');
		if (aktuelleSeite == Menue[3]) document.write('aktiv');
		document.write('" href="' + Menue[3] + '">' + Menue[2] + '</a>');
		document.write('</td></tr></table>');
		var AktuelleDIV = '';
	}
	else if (!Menue[0]) {
		// 1. Ebene mit Klappeffekten
		document.write('<table border="0" cellpadding="2" cellspacing="0" width="190"><tr><td class="menue1" onClick="klapperli(\'' + Menue[1] + '\');">' + Menue[2] + '</td></tr></table>');
		document.write('<div id="' + Menue[1] + '" style="display:');
		if (bissnav_cookie.indexOf('.'+GetCookieCode(Menue[1])) == -1) { document.write('none'); }
		document.write('">');
		
		// Einbau der 2. Ebene
		for (var z=0; z < MENUEEINTRAEGE.length; z++) {
			var ZweiteEbene = MENUEEINTRAEGE[z].split("|");
			if ((ZweiteEbene[0] == Menue[1]) && ZweiteEbene[3]) {
				// 2. Ebene mit direkten Links
				document.write('<table border="0" cellpadding="2" cellspacing="0" width="190"><tr><td class="menue2">');
				document.write('<a class="menue');
				if (aktuelleSeite == ZweiteEbene[3]) document.write('aktiv');
				document.write('" href="' + ZweiteEbene[3] + '">' + ZweiteEbene[2] + '</a>');
				document.write('</td></tr></table>');
			}
			else if (ZweiteEbene[0] == Menue[1]) {
				// 2. Ebene mit Klappeffekten
				var morepad = "";
				// if (ZweiteEbene[2] != "B-Wise") { morepad = "morepad"; }
				
				var directlink = MENUEEINTRAEGE[z].split("|")[3];
				//alert(directlink);
								
				document.write('<table border="0" cellpadding="2" cellspacing="0" width="190">');
				document.write('<tr><td class="menue2' + morepad + '" onClick="klapperli(\'' + ZweiteEbene[1] + '\');">' + ZweiteEbene[2] + '</td></tr>');
				document.write('</table>');
				document.write('<div id="' + ZweiteEbene[1] + '" style="display:');
				if (bissnav_cookie.indexOf('.'+GetCookieCode(ZweiteEbene[1])) == -1) { document.write('none'); }
				document.write('">');

				// Einbau der 3. Ebene
				document.write('<table border="0" cellpadding="2" cellspacing="0" width="190">');
				for (var d=0; d < MENUEEINTRAEGE.length; d++) {
					var DritteEbene = MENUEEINTRAEGE[d].split("|");
					if ((DritteEbene[0] == ZweiteEbene[1]) && DritteEbene[3]) {
						// 3. Ebene hat nur direkte Links
						document.write('<tr><td class="menue3' + morepad + '">');
						document.write('<a class="menue');
						if (aktuelleSeite == DritteEbene[3]) document.write('aktiv');
						document.write('" href="' + DritteEbene[3] + '">' + DritteEbene[2] + '</a>');
						document.write('</td></tr>');
					}
				}
				document.write('</table>');
				document.write('</div>');
			}
		}
			
		document.write('</div>');
	}
}
SetDisplayStatusByPage();

function klapperli(divid) {
	if (ie4||ns6) {
		// den gespeicherten Cookie abfragen, neuen CookieSting basteln und zurückspeichern
		if(bissnav_cookie)  var AlterCookie = bissnav_cookie;
		else                var AlterCookie = "";

		var klappe = document.getElementById(divid);
		if ( klappe.style.display == "none" ) {
			klappe.style.display = "";
			// aufgeklappte DIVs werden dem Cookie einfach angehängt
			bissnav_cookie = AlterCookie + '.' + GetCookieCode(divid);
		}
		else {
			klappe.style.display = "none";
			// beim Zuklappen werden die Codes einfach wieder aus dem Cookie rausgefriemelt
			while (AlterCookie.indexOf('.'+GetCookieCode(divid)) != -1) {
				var LinkerTeil 	= AlterCookie.substring(0, AlterCookie.indexOf('.'+GetCookieCode(divid)));
				var RechterTeil	= AlterCookie.substring(AlterCookie.indexOf('.'+GetCookieCode(divid))+3, AlterCookie.length);
				var AlterCookie = LinkerTeil + RechterTeil;
			}
			bissnav_cookie = AlterCookie;
		}
		//alert(bissnav_cookie);
		//document.cookie = jsess_cookie + "; " + bissnav_cookie + ";";
		document.cookie = bissnav_cookie + ";";
		//alert(document.cookie);
	}
}


// Eindeutigen Cookie-Code anhand der DIV-ID raussuchen
function GetCookieCode(divid) {
	for (var Reihe in COOKIECODES) {
		var Zuordnung = COOKIECODES[Reihe].split("|")
		if (divid == Zuordnung[0]) return Zuordnung[1];
	}
}

// Automatisches Menüaufklappen
// Bei Querverweisen über z.B. direkte Links außerhalb des Menüs muss die richtige Menüstruktur
// geöffnet werden, auch wenn die Cookies dies nicht vorsehen. WENN in den Dateinamen die
// IDs der DIV-Sektions vorkommen, werden diese hiermit gleich geöffnet.
function SetDisplayStatusByPage() {
	for (var Reihe in COOKIECODES) {
		var Zuordnung = COOKIECODES[Reihe].split("|")
		var klappe = document.getElementById(Zuordnung[0]);
		if ((klappe != null)&& (aktuelleSeite.indexOf(Zuordnung[0]+'.') > -1) && (klappe.style.display == "none")) 
			klapperli(Zuordnung[0]);
	}
}


function Detailansicht ( name, breite, hoehe ) {
	htmlfile = name + '.jsp';
	
	// zentriert
	var wbreite, whoehe, x, y;
	var ns4 = (document.layers);

	/*
	x = 0;
	y = 0;
	*/
	
	x = (screen.width - breite)/2;
	y = (screen.height - hoehe)/2;
	
	var newWindow = window.open( htmlfile, "screenshotwin", "left="+x+", top="+y+", screenX="+x+", screenY="+y+", height=" + hoehe + ", width=" + breite + ",scrollbars=no,resizable=no")
}

// Show popup window named 'wname' using window-width 'wid'
function showPopUp( evnt, wname, wid ) {
	var  ttobj = document.getElementById( wname);
	if ( ttobj == null ) return;

	// Must be set before retrieving object dimensions !
	ttobj.style.display = "block";

	// "30" used for scrollbar offset in ICE browser !
	if ( getPageWidth() < (evnt.clientX + wid) )
		ttobj.style.left = Math.max( 0, (getPageWidth() - wid - 30));
	else
		ttobj.style.left = evnt.clientX - 30;

	if ( getPageHeight() < (evnt.clientY + getHeight( wname)) )
		ttobj.style.top = Math.max( 0, (getPageHeight() - getHeight( wname) + getScrollTop() - 10));
	else
		ttobj.style.top = evnt.clientY + getScrollTop();

	ttobj.style.width      = wid;
	ttobj.style.visibility = "visible";
}

// Hide popup window named 'wname'
function hidePopUp( wname ) {
	var  ttobj = document.getElementById( wname);
	if ( ttobj == null ) return;

	ttobj.style.display = "none";
	ttobj.style.visibility="hidden";
}

function getScrollTop() {
	if ( window.pageYOffset != null )
		return window.pageYOffset;
	if ( document.body.scrollWidth != null )
		return document.body.scrollTop;
	return (null);
}

function getScrollLeft() {
	if ( window.pageXOffset != null )
		return window.pageXOffset;
	if ( document.body.scrollHeight != null )
		return document.body.scrollLeft;
	return (null);
}

function getPageWidth() {
	if ( window.innerWidth != null )
		return window.innerWidth;
	if ( document.body.clientWidth != null )
		return document.body.clientWidth;
	return (null);
}

function getPageHeight() {
	if ( window.innerHeight != null )
		return window.innerHeight;
	if ( document.body.clientHeight != null )
		return document.body.clientHeight;
	return (null);
}

function getWidth ( oname ) {
	var  oid = document.getElementById( oname);
	if ( oid.offsetWidth != null )
		return oid.offsetWidth;
	if ( oid.clip.width != null )
		return oid.clip.width;
	return (null);
}

function getHeight( oname ) {
	var  oid = document.getElementById( oname);
	if ( oid.offsetHeight != null )
		return oid.offsetHeight;
	if ( oid.clip.height != null )
		return oid.clip.height;
	return (null);
}
         
