interactive = false;

//document.onmousedown = mouseDown

var menuson = false;
var linksactive = true;
var menuflip = false;
var menuitemthemouseisover;

var overlap = -2;

var menuthemouseisover;
var submenuthemouseisover;
var subsubmenuthemouseisover;

var currentmenu = 0;
var currentsubmenu = 0;
var currentsubsubmenu = 0;

var currentsubsubmenuparent = 0;

var menu = new Array();
var submenu = new Array();
var subsubmenu = new Array();

var fade = null;

function initMenu(n) {
	menu[n] = document.getElementById("menu" + n);
	menu[n].xpos = menu[n].offsetLeft;
	menu[n].ypos = menu[n].offsetTop;
	menu[n].w = menu[n].offsetWidth;
	menu[n].h = menu[n].offsetHeight;
}

function initSubMenu(n, p) {
	submenu[n] = document.getElementById("menu" + p + "sub" + n);
	submenu[n].xpos = submenu[n].offsetLeft;
	submenu[n].ypos = submenu[n].offsetTop;
	submenu[n].w = submenu[n].offsetWidth;
	submenu[n].h = submenu[n].offsetHeight;
}

function initSubSubMenu(n, p, g) {
	subsubmenu[n] = document.getElementById("menu" + g + "sub" + p + "sub" + n);
	subsubmenu[n].xpos = subsubmenu[n].offsetLeft;
	subsubmenu[n].ypos = subsubmenu[n].offsetTop;
	subsubmenu[n].w = subsubmenu[n].offsetWidth;
	subsubmenu[n].h = subsubmenu[n].offsetHeight;
}

function showObject(object) {
	object.style.visibility = "visible";
}

function hideObject(object) {
	object.style.visibility = "hidden";
}

function eventXcoord(evt) {
	evt = (evt) ? evt : ((event) ? event : null);
	var x = (evt.x) ? evt.x : ((evt.layerX) ? evt.layerX : null);
	return x;
}

function eventYcoord(evt) {
	evt = (evt) ? evt : ((event) ? event : null);
	var y = (evt.y) ? evt.y : ((evt.layerY) ? evt.layerY : null);
	return y;
}

function shiftTo(object,x,y) {
	object.xpos = x;
	object.ypos = y;
	object.style.left = x + "px";
	object.style.top = y + "px";
}

function canvasWidth() {
	x = document.body.clientWidth;
	return x;
}

function canvasHeight() {
	x = document.body.clientHeight;
	return x;
}

function mouseDown(evt) {
	if (interactive) {
		evt = (evt) ? evt : ((event) ? event : null);
		src = (evt.target) ? evt.target.id : evt.srcElement.id;
		if (src.indexOf('menu') != -1) {
		
		} else if (evt.button < 2) {
	
			// if menu system not active
			if (!menuson) {

			// if menu system active
			} else {
				menuthemouseisover = getCurrentMenu(evt);
				submenuthemouseisover = getCurrentSubMenu(evt);
				subsubmenuthemouseisover = getCurrentSubSubMenu(evt);
				if (
					(menuthemouseisover==null) &&
					(submenuthemouseisover==null) &&
					(subsubmenuthemouseisover==null)
				) {
					if (currentsubmenu!=0) hideObject(submenu[currentsubmenu]);
					if (
						currentsubsubmenuparent!=0 &&
						currentsubsubmenu!=0
					) {
						hideObject(subsubmenu[currentsubsubmenu]);
					}
				}
				menuson=false;
			}
		}
	}
	return false;
}

function getCurrentMenu(e) {
	var _menu = null;
	var found = null;
	var x = eventXcoord(e);
	var y = eventYcoord(e);
	i = currentmenu;
	if (
		x>=menu[i].xpos &&
		x<=menu[i].xpos+menu[i].w &&
		y>=menu[i].ypos &&
		y<=menu[i].ypos+menu[i].h
	) {
		_menu = i;
	}
	return _menu;
}

function getCurrentSubMenu(e) {
	var sub_menu = null;
	var found = null;
	var x = eventXcoord(e);
	var y = eventYcoord(e);
	i = currentsubmenu;
	if (currentsubmenu!=0) {
		if (
			x>=submenu[i].xpos &&
			x<=submenu[i].xpos+submenu[i].w &&
			y>=submenu[i].ypos &&
			y<=submenu[i].ypos+submenu[i].h
		) {
			sub_menu = i;
		}
	}
	return sub_menu;
}

function getCurrentSubSubMenu(e) {
	var subsub_menu = null;
	var found = null;
	var x = eventXcoord(e);
	var y = eventYcoord(e);
	i = currentsubsubmenu;
	if (currentsubsubmenuparent!=0 && currentsubsubmenu!=0) {
		if (
			x>=subsubmenu[currentsubsubmenu].xpos &&
			x<=subsubmenu[currentsubsubmenu].xpos+subsubmenu[currentsubsubmenu].w &&
			y>=subsubmenu[currentsubsubmenu].ypos &&
			y<=subsubmenu[currentsubsubmenu].ypos+subsubmenu[currentsubsubmenu].h
		) {
			subsub_menu = i;
		}
	}
	return subsub_menu;
}

function positionMenu(n) {
	var x = 12 + (n - 1) * 150;
	var y = 10;
	shiftTo(menu[n],x,y);
}

function positionSubMenu(p, q) { // p is parent menu number
	// Vertical
	xj = parseInt(menu[p].xpos) - overlap + menu[p].offsetWidth;
	yj = menu[p].ypos + (q - 1) * row_height;
	// Horizontal
	xj = parseInt(menu[p].xpos);
	yj = menu[p].ypos - overlap + menu[p].offsetHeight;
	shiftTo(submenu[q],xj,yj);
}
	
function positionSubSubMenu(n, p, q) { // n is item number
	// Vertical
	xk = parseInt(submenu[p].xpos) - overlap + submenu[p].offsetWidth;
	yk = submenu[p].ypos + (n - 1) * row_height;
	shiftTo(subsubmenu[q],xk,yk);
}
	
function showMenu(n) {
//	positionMenu(n); // Position horizontal menus in style sheet
	showObject(menu[n]);
	currentmenu = n;
}
	
function showSubMenu(p, q) {
	if (interactive) {
		if (q!=0) positionSubMenu(p, q);
		if (q!=0) showObject(submenu[q]);
		if (currentsubmenu != 0 && currentsubmenu != q) {
			hideObject(submenu[currentsubmenu]);
			if (currentsubsubmenu != 0) {
				hideObject(subsubmenu[currentsubsubmenu]);
			}
		}
		currentsubmenu = q;
		menuson=true;
	}
}

function fadeObject() {
	if (submenu[currentsubmenu].style.opacity > 0) {
		submenu[currentsubmenu].style.opacity -= 0.05;
		if (document.all) {
				sm -= 5;
				document.getElementById('menu2sub15').style['filters'] = "alpha(opacity="+sm+")";
		}
		setTimeout("fadeObject()",30);
	} else {
		if (!document.all) submenu[currentsubmenu].style.opacity = 0.8;
		showSubMenu(0,0);
	}
}

function fadeObject2() {
	if (subsubmenu[currentsubsubmenu].style.opacity > 0) {
		if (!document.all) subsubmenu[currentsubsubmenu].style.opacity -= 0.05;
		setTimeout("fadeObject2()",30);
	} else {
		if (!document.all) subsubmenu[currentsubsubmenu].style.opacity = 0.8;
//		showSubSubMenu(0,0);
	}
}

function fadeSubMenu(p, q) {
	if (interactive) {
		if (currentsubmenu != 0 && currentsubmenu != q) {
			submenu[currentsubmenu].style.opacity = 0.8;
			if (document.all) {
				sm = 80;
				submenu[currentsubmenu].style['filters'] = "alpha(opacity="+sm+")";
			}
			fadeObject(submenu[currentsubmenu]);
			if (currentsubsubmenu != 0) {
				subsubmenu[currentsubsubmenu].style.opacity = 0.8;
				if (document.all) {
					ssm = 80;
					subsubmenu[currentsubsubmenu].style['filters'] = "alpha(opacity="+ssm+")";
				}
				fadeObject2();
			}
		}
	}
}

/*
function fadeSubSubMenu(n, p, q) {
	if (interactive) {
		if (currentsubsubmenu!=0 && currentsubsubmenu!=q) {
			subsubmenu[currentsubsubmenu].style.opacity = 0.8;
			fadeObject2();
		}
	}
}
*/

function showSubSubMenu(n, p, q) {
	if (interactive) {
		if (q!=0) positionSubSubMenu(n, p, q);
		if (q!=0) showObject(subsubmenu[q]);
		if (currentsubsubmenu!=0 && currentsubsubmenu!=q) {
			hideObject(subsubmenu[currentsubsubmenu]);
		}
		currentsubsubmenu = q;
		currentsubsubmenuparent = p;
	}
}

function fadeMenus() {
//	fadeSubSubMenu(0, 0, 0);
	fadeSubMenu(0, 0);
}

function highlightOn(div,head,arrow, dir) {
	if (fade) clearTimeout(fade);
	document.getElementById(div).style.backgroundColor = "#6D96CC";
	document.getElementById(div).style.color = "#FFFFFF";
	if (arrow) {
		if (dir == 1) {
			document.images[arrow].src = img[4].src;
		} else {
			document.images[arrow].src = img[2].src;
		}
	}
	if (head) document.getElementById(head).style.color = "#FFFFFF";
}
	
function highlightOff(div,head,arrow, dir) {
	fade = setTimeout("fadeMenus()", 1000);
	document.getElementById(div).style.backgroundColor = "#CCCCCC";
	document.getElementById(div).style.color = "#000000";
	if (arrow) {
		if (dir == 1) {
			document.images[arrow].src = img[3].src;
		} else {
			document.images[arrow].src = img[1].src;
		}
	}
	if (head) document.getElementById(head).style.color = "#000000";
}
	
function popUp(url, w, h) {
	window.open(url, '_blank', 'width='+w+',height='+h);
}

function shiftTo2(id,x,y) {
	document.getElementById(id).style.left = x + "px";
	document.getElementById(id).style.top = y + "px";
}

function showLayer(id,parentid) {
	document.getElementById(id).style.visibility = "visible";
}
