File: D:/HostingSpaces/JTent/tentje.com/wwwroot/2015_02_13/layout/tsg_mobile/content/js/navtree.js
// ACHTUNG! In dieser JS-Datei keine Umlaute verwenden!
var themenu = new Array();
var lbActiveXAllowed = true;
var gbNavLoaded = false;
// XML-File laden
function getXML(psFile) {
if (window.ActiveXObject && document.getElementById) {
// InternetExplorer
if (lbActiveXAllowed) {
// XML-Transformation mit ActiveX, wenn erlaubt
var loNaviXML = new ActiveXObject('Microsoft.XMLDOM');
loNaviXML.onreadystatechange = function () {
if (loNaviXML.readyState>3 && loNaviXML.parseError.errorCode==0) {
getNavigationNode(loNaviXML);
}
};
loNaviXML.load(psFile);
} else {
// "on the fly" - Transformation des XML-Dokuments: XML direkt laden
document.location.href = psFile;
}
} else if (window.XMLHttpRequest) {
try {
// Netscape / Firefox
var loNaviXML = document.implementation.createDocument('', '', null);
loNaviXML.onload = function() {
getNavigationNode(loNaviXML);
}
loNaviXML.load(psFile);
} catch (e) {
var url = psFile;
var request = new XMLHttpRequest();
request.open("GET", url, false);
request.send(null);
getNavigationNode(request.responseXML);
}
} else {
// OPERA
// Wenn Transformation oder XML-Einlesen nicht m?ch, dann transformierte HTML-Datei laden
document.location.href = psFile.split('.xml').join('.htm');
}
}
// Knoten "navigation" holen
function getNavigationNode(poNode) {
for (var i=0; i<poNode.childNodes.length; i++) {
if (poNode.childNodes[i].nodeName == 'navigation') {
loStart = new Date().getTime();
parseXML(poNode.childNodes[i], themenu, null, 0);
break;
}
}
}
// Navigations-XML parsen
function parseXML(poNode, poMenuObj, poParent, piLevel) {
if (poNode.hasChildNodes()) {
for (var i=0; i<poNode.childNodes.length; i++) {
if (poNode.childNodes[i].nodeName == 'item') {
// Item-Attribute holen
var lsText = '';
var lsDescription = '';
if (poNode.childNodes[i].hasChildNodes()) {
for (var j=0; j<poNode.childNodes[i].childNodes.length; j++) {
if (poNode.childNodes[i].childNodes[j].nodeName == 'text') {
lsText = poNode.childNodes[i].childNodes[j].childNodes[0].nodeValue;
} else if (poNode.childNodes[i].childNodes[j].nodeName == 'description') {
lsDescription = poNode.childNodes[i].childNodes[j].childNodes[0].nodeValue;
}
}
}
var lsID = poNode.childNodes[i].getAttribute('id');
var lsSrc = poNode.childNodes[i].getAttribute('src');
var lsVersion = poNode.childNodes[i].getAttribute('version');
var lsActive = poNode.childNodes[i].getAttribute('active');
var lsVisible = poNode.childNodes[i].getAttribute('visible');
var lsPageType = poNode.childNodes[i].getAttribute('pagetype');
var lsNext = poNode.childNodes[i].getAttribute('next');
// dh, 3889, 29.08.06
var lsProperties = poNode.childNodes[i].getAttribute('properties');
// end dh, 3889, 29.08.06
var liLevel = piLevel;
// Item anlegen
if (poMenuObj.items == null) {
poMenuObj.items = new Array();
}
// dh, 3889, 29.08.06
poMenuObj.items[poMenuObj.items.length] = new MenuItem(lsID, lsText, lsDescription, lsSrc, lsVersion, lsActive, lsVisible, lsPageType, lsNext, lsProperties, liLevel, poParent);
// end dh, 3889, 29.08.06
// Auf Sub-Items pruefen
if (poNode.childNodes[i].hasChildNodes()) {
if (hasItems(poNode.childNodes[i])) {
// Sub-Items Anlegen
poMenuObj.items[poMenuObj.items.length-1].sub = new Array();
parseXML(poNode.childNodes[i], poMenuObj.items[poMenuObj.items.length-1].sub, poMenuObj.items[poMenuObj.items.length-1], piLevel+1);
}
}
}
}
if (piLevel == 0) {
// Ende des Parsens
gbNavLoaded = true;
return;
}
}
}
function hasItems(poNode) {
// Pruefen, ob der Knoten "items" enth?
for (var i=0; i<poNode.childNodes.length; i++) {
if (poNode.childNodes[i].nodeName == 'item') {
return true;
}
}
return false;
}
// =====================================================================================================================
// Nur fuer IE "on the fly"-Transformation =============================================================================
// =====================================================================================================================
var liLevel = 0;
var loMenuObj = themenu;
var loParent = null;
loMenuObj.parent = loParent;
// Item hinzufuegen
// dh, 3889, 29.08.06
function addItem(psID, psText, psDescription, psSrc, psVersion, psActive, psVisible, psPageType, psNext, psProperties) {
// end dh, 3889, 29.08.06
if (loMenuObj.items == null) {
loMenuObj.items = new Array();
}
// dh, 3889, 29.08.06
loMenuObj.items[loMenuObj.items.length] = new MenuItem(psID, psText, psDescription, psSrc, psVersion, psActive, psVisible, psPageType, psNext, psProperties, liLevel, loMenuObj.parent);
// end dh, 3889, 29.08.06
}
// Sub hinzufuegen
function addSub() {
liLevel++;
loMenuObj.items[loMenuObj.items.length-1].sub = new Array();
loParent = loMenuObj;
loMenuObj = loMenuObj.items[loMenuObj.items.length-1].sub;
loMenuObj.parent = loParent;
}
// Eine Ebene nach oben
function gotoParent() {
liLevel --;
loMenuObj = loMenuObj.parent;
}
// =====================================================================================================================
// IE Transformation functions END =====================================================================================
// =====================================================================================================================
var liItemCnt = 0;
var gsContentPath = searchReplace(myPath(),'file://','');
gsContentPath = searchReplace(gsContentPath,'\\','/');
var gaFlatNav = [];
// Item anlegen
// dh, 3889, 29.08.06
function MenuItem(psID, psText, psDescription, psSrc, psVersion, psActive, psVisible, psPageType, psNext, psProperties, piLevel, poParent) {
// end dh, 3889, 29.08.06
// alert(psText+" "+piLevel+" "+poParent);
if (psSrc == '') {
this.url = '';
} else {
this.url = gsContentPath+psSrc;
}
this.url = this.url.replace(/\\/g,"/");
if (psNext == '' || psNext == 'null') {
this.next = null // nachfolgende Seite (lineares Weiter)
} else {
this.next = psNext; // nachfolgende Seite (ID der Seite oder Bedingung)
}
this.id = psID; // id: ID der Seite = Findet sich im Normalfall im Seitename wieder.
this.text = psText; // text: Titel der Seite
this.description = psDescription; // description: ToDo ASH
// dh, 3889, 29.08.06
this.properties = psProperties;
// end dh, 3889, 29.08.06
this.filename = psSrc; // filename: URL der Seite (absolut)
this.active = psActive; // active: Wenn 0, wird Seite uebersprungen
this.show = psVisible; // show: Sichtbarkeit im Baum (0/1)
this.pagetype = psPageType; // pagetype: Seitentyp, z.B. '' (length=0), 'tp' (testpage)
this.parent = poParent; // parent: Parent-Item im Baum
this.actversion = psVersion; // actversion: ToDo ASH
this.isupdate = false; // isupdate: ToDo ASH
this.wasupdate = false; // wasupdate: ToDo ASH
this.exp = false; // expanded: Knoten im Baum erweitert?
this.vis = false; // visited: Seite bereits besucht?
this.solution = 0; // solution: 0 = nicht richtig geloest
// 1 = richtig geloest im 1. Versuch
// 2 = richtig geloest im n. Versuch
this.result = ''; // result: String mit Einzelergebnissen
// 0 = nicht gemacht
// 1 = falsch
// 2 = richtig
this.sub = null; // subNodes: Referenz auf childNodes
this.cnt = ++liItemCnt; // count: Laufende Nummer aller Items
this.level = piLevel; // level: Ebene im Baum
gaFlatNav.push(this);
}