menu.js example
//------------------FOR DEMO USE ONLY----------------------------------
//-------- Copyright by Artem Saveliev artem@savelev.com --------------
//---------------------------------------------------------------------
var previous = "";
var touched = false;
var touchedkey = 0;
function DrawNode(node,target,parentID,selectedItem,resetMode,level){
var buffer = ""
for (var i=0;i<node.length;i++){
buffer += "<a class=\""
if (selectedItem == i) buffer += "selected";
buffer += "menuitem"+level+"\" href=\""+node[i][1]+"\" title=\""+node[i][2]+"\" target=\"body\" onmouseover=\"MouseOver('"+(parentID+i)+"',false)\">"
if (selectedItem == i && level==0) buffer += "<img align=\"absmiddle\" border="0" src=\"images/menuLeftBracket.gif\">";
buffer += node[i][0]
if (selectedItem == i && level==0) buffer += "<img align=\"absmiddle\" border="0" src=\"images/menuRightBracket.gif\">";
buffer += "</a>";
}
target.innerHTML = buffer;
}
function MouseOver(tree,resetMode){
touch();
if (previous == tree) return; else previous = tree;
var steps = tree.split("-");
var recArr;
recArr = a[0];
var parentID = steps[0] + "-";
var i=0;
var filled = 1;
if (steps.length > 1) firstStep = steps[1]; else firstStep = "-1";
DrawNode(recArr,document.getElementById("line"+i),parentID,firstStep,resetMode,0);
for(i=1;i<steps.length;i++){
if (i < steps.length && recArr[steps[i]].length > 3){
recArr = recArr[steps[i]][3];
parentID += steps[i] + "-";
DrawNode(recArr,document.getElementById("line"+i),parentID,steps[i+1],resetMode,i);
filled++;
}
}
for(j=filled;j<3;j++)
document.getElementById("line"+j).innerHTML = "";
}
function timeit(){
touched = false;
touchedkey ++;
setTimeout("reset("+touchedkey+")",1000);
}
function reset(param){
if (!touched && touchedkey==param) MouseOver(path,true);
}
function touch(){
touched = true;
touchedkey ++;
}
function menuStart(){
MouseOver(path,true);
}
document.body.onload = menuStart;