// (C) 2000 - 2003 CPM - Consulting & Projektmanagement GmbH
// filename: core_menuinfo_client.php
//
// Version 2.0 - January 15th 2003
//
// history:
// Version 1.0 - October 15th 2002
// - first release
// Version 2.0 - January 15th 2003
// - new naming conventions (whole application changed)
//
// global definitions
var switchEnde = false;
var LevelNr = new Array (0,1,2,3);
var Keyword = "";
var cntVerarbeitet = 0;
var cntLimit = 0;
var switchAusgabe = false;
var switchMenuItemNeu = false;
var strText = "";
var strLink = "";
var strLevel = "";
var strType = "";
var strStatus = "";
var strNodeMode = "0";
var strStartProperty = "0";
var aryStartProperty = new Array(50);
var cntMenuItem = 0;
function getMenuItemData() {
var tmpIndex = 0;
// for start initialise with -1
posStart = -1
LevelNr[0] = -1 // entspricht level0ID
LevelNr[1] = -1 // entspricht level1ID
LevelNr[2] = -1 // entspricht level2ID
LevelNr[3] = -1 // entspricht level3ID
cntLimit = strMenuItemData.length
while (switchEnde == false) {
// get next keyword (including start-position, end-position and value of the keyword)
analyzeBuffer ()
// processing according to the keyword
switch (Keyword.toUpperCase()) {
case "MENUITEM":
switchAusgabe = true;
switchMenuItemNeu = true;
break;
case "/MENUITEM":
IndexLevel = strLevel;
if (strNodeMode == "1") {
// add child
LevelNr[IndexLevel] = theMenu.addChild(LevelNr[IndexLevel-1], strType, strText, strLink, strStatus)
}
else {
// add sister
if (IndexLevel == 0) {
LevelNr[1] = theMenu.addEntry(-1, strType, strText, strLink, strStatus)
}
else {
LevelNr[IndexLevel] = theMenu.addEntry(LevelNr[IndexLevel], strType, strText, strLink, strStatus)
}
}
switchAusgabe = false;
// clear variables after processing for next loop
strText = "";
strLink = "";
strLevel = "";
strType = "";
strStatus = "";
strNodeMode = "";
strStartProperty = "";
break;
case "TEXT":
strText = DataValue;
break;
case "LINK":
strLink = DataValue;
break;
case "LEVEL":
strLevel = DataValue;
break;
case "TYPE":
if (DataValue == "0") {
strType = "Folder";
} else {
if (DataValue == "1") {
strType = "Document";
} else {
strType = "";
}
}
break;
case "STATUS":
strStatus = DataValue;
break;
case "NODEMODE":
strNodeMode = DataValue;
break;
case "STARTPROPERTY":
strStartProperty = DataValue;
break;
default:
}
}
}
function oldNodes() {
// Now set up the menu with a whole lot of addEntry and addChild function calls
var level1ID = -1;
var level2ID = -1;
var level3ID = -1;
level1ID = theMenu.addEntry(-1, "Folder", "Folder 1", "robots.htm", "Help for Folder 1");
level2ID = theMenu.addChild(level1ID, "Document", "Page 1", "page1.htm", "Help for page 1.");
level2ID = theMenu.addEntry (level2ID, "Document", "Page 2", "page2.htm", "Help for page 2.");
level2ID = theMenu.addEntry(level2ID, "Folder", "Folder 1.2", "", "Help for Folder 1.2");
level3ID = theMenu.addChild(level2ID, "Document", "Page 3", "page3.htm?fred", "Help for Page 3.");
level3ID = theMenu.addEntry (level3ID, "Document", "Page 4", "page4.htm", "Help for page 4.");
level1ID = theMenu.addEntry(level1ID, "Folder", "Folder 2", "", "Help for Folder 1");
level2ID = theMenu.addChild(level1ID, "Document", "Page 5", "page5.htm", "Help for page 5.");
level2ID = theMenu.addEntry (level2ID, "Document", "Page 6", "page6.htm", "Help for page 6.");
level1ID = theMenu.addEntry(level1ID, "Document", "License", "license.htm", "The Joust license agreement.");
}
// -------------------------
// a n a l y z e B u f f e r
// -------------------------
function analyzeBuffer () {
// this functions analyses the textstring
// and according to the keyword the processing will be controlled
var lgeTabelle = 0
// initialisations
posTagEnde = 0
// get next keyword
posBeginn = strMenuItemData.indexOf("<")
posEnde = strMenuItemData.indexOf(">", posBeginn)
posBlank = strMenuItemData.indexOf(" ", posBeginn)
// wenn das erste Blank früher vorkommt als das Ende-Zeichen, dann steht
// das Schlüsselwort zwischen Beginn und Blank, sonst zwischen Beginn und Ende
if ((posBlank < posEnde) && (posBlank != -1)){
Keyword = strMenuItemData.substr(posBeginn + 1, posBlank - posBeginn - 1)
} else {
Keyword = strMenuItemData.substr(posBeginn + 1, posEnde - posBeginn - 1)
}
// Anzahl der verarbeiteten Zeichen erhöhen
cntVerarbeitet = cntVerarbeitet + posEnde + 1
// Wenn es sich um einen Tag-Beginn handelt, dann auch das Tag-Ende ermitteln
if (Keyword.substr(0,1) != "/") {
posTagEnde = strMenuItemData.indexOf("" + Keyword + ">")
}
// nur als Muster ohne Wert (kann entsprechend adaptiert werden)
if (posTagEnde != 0) {
switch (Keyword.toUpperCase()) {
case "DATA":
DataValue = strMenuItemData.substr(posEnde + 1, posTagEnde - posEnde - 1)
break
default:
DataValue = strMenuItemData.substr(posEnde + 1, posTagEnde - posEnde - 1)
}
}
// Ausgabe der enthaltenen Tabellen
// Keyword auf Grossbuchstaben umstellen
if (Keyword.toUpperCase() == "TABLE") {
lgeTabelle = posTagEnde + 3 + Keyword.length - posBeginn
if (blnTest == "true") {
window.alert ("posTagEnde = " + posTagEnde + "\n" + "Länge der Tabelle = " + lgeTabelle +
"\n" + "Keyword.Length = " + Keyword.length)
//document.write ("
A u s g a b e d e r T a b e l l e
")
window.alert ("Jetzt wird folgende Tabelle ausgegeben: \n" + strMenuItemData.substr(posBeginn, lgeTabelle))
}
// nachfolgendes document.write deaktiviert für Test gruge / 23. 01. 2001
document.write (strMenuItemData.substr(posBeginn, lgeTabelle))
}
// nun den verarbeiteten Teil "ausschneiden"
strMenuItemData = strMenuItemData.substr(posEnde + 1)
//Verarbeitungsende setzen
if (cntVerarbeitet >= cntLimit){
switchEnde = true
}
// Sicherheitsabfrage, damit ein Ausstieg erfolgt, wenn kein Ende mehr vorkommt !!!
if (posEnde == -1) {
switchEnde = true
}
// keine Ausgabe der Testmeldungen, daher return
// wenn die Ausgabe der Testmeldungen gewünscht ist,
// dann dieses Statement auskommentieren
// if (cntVerarbeitet < 1800) {
// return
// }
// Testmeldung ausgeben
//window.alert ("Ende analyzeBuffer mit cntVerarbeitet = " + cntVerarbeitet + ", Keyword = " + Keyword);
}
// AE 13.09.2002: Tom -- Anfang
// Diese Variable muss am Ende als letztes auf TRUE gesetzt werden, da mittels
// des Werts dieser Variable das vollstaendige Laden der sys_menuinfo_client.php ueberprueft
// werden kann.
switchMenuInfoClientExists = true
// AE 13.09.2002: Tom -- Ende
//
// end of sys_menuinfo_client.php
//