var timeOutMenuChange = 0;
var originalMenu = '';
var activatedClass = '';
var newMenuId = '';
var newMenuTimeout = null;

function changemenu(id) {
	// Wait a small amount of time before actually changing the menu
	newMenuId = id;
	if (newMenuTimeout) {
		clearTimeout(newMenuTimeout);
	}
	newMenuTimeout = setTimeout(reallyChangeMenu,200);
}

function cancelChangeMenu() {
	if (newMenuTimeout) {
		clearTimeout(newMenuTimeout);
	}
}
	

function reallyChangeMenu() {
	id = newMenuId;
	if (originalMenu == '') {
		originalMenu = document.getElementById('nav2').innerHTML;
	}
	var el = document.getElementById("menu_"+id);
	var topmenu = document.getElementById(id);
	var nav2 = document.getElementById("nav2");
	if (el && nav2) {
		var menu = el.innerHTML;
		nav2.innerHTML = menu;
		if (activatedClass) {
			menuRemoveClass(activatedClass,'activated');
		}
		menuAddClass(topmenu, 'activated');
		activatedClass = topmenu; 
	}
}
function resetMenuTimer() {
	if (timeOutMenuChange !=0) {
		clearTimeout(timeOutMenuChange);
	}
}

function bumpMenuTimer() { 
	if (timeOutMenuChange !=0) {
		clearTimeout(timeOutMenuChange);
	}
	if (originalMenu != '') {
		// only bump if we have changed the menu
		// Change the number to alter delay (in miliseconds)
		timeOutMenuChange = setTimeout(resetMenu,600);
	}
	
}

function menuAddClass(obj,cl) {
	var cn = obj.className;
	if (cn == '') {
		obj.className = cl;
	}
	else {
		obj.className += ' '+cl;
	}
}
function menuRemoveClass(obj, cl) {
	var cn = obj.className;
	var arr = cn.split(" ");

	cn = '';
	for (var i=0;i<arr.length;i++) {
		if (arr[i] != cl) {
			if (cn != '') {
				cn += ' ';
			}
			cn += arr[i];
		}
	}
	obj.className = cn;
}


function resetMenu() {
	document.getElementById('nav2').innerHTML=originalMenu;
	if (activatedClass) {
		menuRemoveClass(activatedClass,'activated');
		activatedClass = '';
	}
	timeoutMenuChange = 0;
}


