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;