var IE4 = (document.all) ? 1 : 0;
var hideDelay = 50; //ms
var shiftX = -6;
var shiftY = 3;

// ------------
// menu images
// ------------

function menuItem(id, name, href, submenu) {
	this.id = id;
	this.name = name;
	this.href = href;
	this.lock = false;
	this.itemFocused = false;
	this.submenuFocused = false;
	this.submenu = submenu;
	return this;
};




function loadLayers(root){
	loadLayer(root);
	for (var i=0; i<root.submenu.length; i++) loadLayers(root.submenu[i]);
}

function getItem(menu, id) {
	for (var i=0; i<menu.length; i++) {
		if (menu[i].id != id) {
			var res = getItem(menu[i].submenu, id);
			if (res != null) return res;
		} else return menu[i];
	}
	return null;
}

function item(id) {
	return getItem(theMenu, id);
}

function getParent(item, id) {
	for (var i=0; i<item.submenu.length; i++) {
		if (item.submenu[i].id != id) {
			var res = getParent(item.submenu[i], id);
			if (res != null) return res;
		} else return item;
	}
	return null;
}

function parentOf(id) {
	return getParent(theRoot, id)
}

function focusSubmenu(id) {
	item(id).submenuFocused = true;
}

function unfocusSubmenu(id) {
	item(id).submenuFocused = false;
	setTimeout("closeAllSubmenus(\'" + id + "\')", hideDelay);
}

function layerAction(act, id,event) {
	if (IE4) {
		if (!document.all["div" + id]) return;
		parentOf(id).submenuLocked = act;
		if (act) {
			with (document.all["div" + id]) {
				style.posLeft = document.body.scrollLeft + event.clientX - event.offsetX + shiftX;
				style.posTop = document.body.scrollTop + event.clientY - event.offsetY + event.srcElement.offsetHeight + shiftY;
				style.visibility = "inherit";
			}
		} else {
			document.all["div" + id].style.visibility = "hidden";
		}
	} else if(document.getElementById) {
		// --------------------------------------------------------
		// for NN6
		// --------------------------------------------------------
		parentOf(id).submenuLocked = act;
		if (act) {
			var divElement = document.getElementById("div" + id);
			divElement.style.left = event.pageX;
			// -----------------------------------------------
			// for NN6 change the top if header height changed
			// -----------------------------------------------
			divElement.style.top = event.target.y + event.target.height;
			divElement.style.left = event.target.x;
			divElement.style.visibility = "inherit";
		} else {
			document.getElementById("div" + id).style.visibility = "hidden";
		}	
	} else {
		if (!document.layers["lyr" + id]) return;
		parentOf(id).submenuLocked = act;
		if (act) {
			with (document.anchors["anc" + id]) {
				var lyrLeft = x;
				var lyrTop = y;
			}

			with (document.layers["lyr" + id]) {
				left = lyrLeft + shiftX + 4;
				top = lyrTop + 16;
				visibility = "inherit";
			}
		} else {
			document.layers["lyr" + id].visibility = "hide";
		}
	}
}

function setImage(id,image) {
	document.images[id].src = image;
}

function showSubmenu(id,event) 
{
	try
	{
		item(id).itemFocused = true;
		layerAction(1, id,event);
	}
	catch(errx){}
}

function hideSubmenu(id)
{
	try
	{
		item(id).itemFocused = false;
		setTimeout("closeSubmenu(\'" + id + "\')", hideDelay);
	}
	catch(errx){}	
}

function closeSubmenu(id,event) {
	if ((!item(id).submenuFocused) 
		&& (!item(id).submenuLocked)
		&& (!item(id).itemFocused)) {
		parentOf(id).submenuLocked = false;
		layerAction(0, id,event);
	}
}

function closeAllSubmenus(id) {
	if (id != "Root") {
		closeSubmenu(id);
		closeAllSubmenus(parentOf(id).id);
	}	
}

function loadItem(anItem) {
	document.writeln('<tr>');
	document.writeln(	'<td width=150>');
	document.writeln(		'<a href="#" >');
	document.writeln(			'<table border=0 cellpadding=0 cellspacing=0>');
	document.writeln(				'<tr>');
	document.writeln(					'<td width=150 onClick="location.href=\'' + anItem.href + '\'">');
	document.writeln(						'<a href="' + anItem.href + '"class="menu" name="anc' + anItem.id + '">' + anItem.name+ '</a>');
	document.writeln(					'</td>');
	document.writeln(				'</tr>');
	document.writeln(			'</table>');
	document.writeln(		'</a>');
	document.writeln(	'</td>');
	document.writeln('</tr>');
}

function loadLayer(root){
	document.writeln('');
	if(!document.getElementById) {
		document.writeln('<layer name="lyr' + root.id + '"  visibility="hide" top="0" left="0" onmouseover="focusSubmenu(\'' + root.id + '\')" onmouseout="unfocusSubmenu(\'' + root.id + '\');">');
		document.writeln('<nolayer>');
	}
	
	document.writeln('<div id="div' + root.id + '" style="position:absolute; top:0; left:0; visibility:hidden" onmouseover="focusSubmenu(\'' + root.id + '\')" onmouseout="unfocusSubmenu(\'' + root.id + '\');">');
	if(!document.getElementById) {	
		document.writeln('</nolayer>');
	}

	document.writeln(	'<table border=0 cellpadding=0 cellspacing=0 class="menutable" bgcolor="#ffffff">');
	document.writeln(		'<tr>');
	document.writeln(			'<td>');
	document.writeln(				'<table border=0 cellpadding=0 cellspacing=1 >');

	for (var i=0; i<root.submenu.length; i++) loadItem(root.submenu[i]);

	document.writeln(				'</table>');
	document.writeln(			'</td>');
	document.writeln(		'</tr>');
	document.writeln(	'</table>');

	if(!document.getElementById) {
		document.writeln('<nolayer>');
	}
	
	document.writeln('</div>');
	if(!document.getElementById) {
		document.writeln('</nolayer>');
		document.writeln('</layer>');
	}
	document.writeln('');
}


