function load_menus() {

	window._menus = new Array();

	var divlist = document.getElementsByTagName('table');
	for(var i=0; i<divlist.length; ++i) {
		if(divlist[i].className == 'submenu') {
			window._menus[divlist[i].id] = new MainMenu(divlist[i]); 
		}
	}


	var alist = document.getElementsByTagName('a');
	for(var i=0; i<alist.length; ++i) {
		if(alist[i].getAttribute('showmenu')) {
			alist[i].onmouseover = function() {
				this.parentNode.className = 'hover';
				if(window._menus[this.getAttribute('showmenu')]) window._menus[this.getAttribute('showmenu')].show_menu(this);
			}
			alist[i].onmouseout = function() {
				this.parentNode.className = '';
				if(window._menus[this.getAttribute('showmenu')]) window._menus[this.getAttribute('showmenu')].start_hide_menu(this);
			}
		}
		else if(alist[i].getAttribute('showsubmenu')) {

		}
	}

	for(var i in window._menus) {
		if(window._menus[i] instanceof MainMenu) window._menus[i].init();
	}
}

function MainMenu(div) {
	this.div = div;
	this.id = div.id;
	this.timer;
	this.linklist = new Array();
	this.currently_over_menu = 0;

	this.init = function() {
		var tdlist = this.div.getElementsByTagName('td');
		for(var n=0; n<tdlist.length; ++n) {

			var k = this.linklist.length;
			this.linklist[k] = new Object();
			this.linklist[k].td = tdlist[n];


			var ss = tdlist[n].childNodes[0].getAttribute('showsubmenu');
			if(ss) {
				this.linklist[k].showsubmenu = window._menus[ss];
				this.linklist[k].showsubmenu.parentmenu = this;
			}

			tdlist[n].setAttribute('menuid', this.id);
			tdlist[n].setAttribute('linklistkey', k);


			tdlist[n].onclick = function() {
				document.location = this.childNodes[0].href;
			}

			tdlist[n].onmouseover = function() {
				var menuid = this.getAttribute('menuid');
				var k = this.getAttribute('linklistkey');
				window._menus[menuid].menu_item_over(this, k);
			}

			tdlist[n].onmouseout = function() {
				var menuid = this.getAttribute('menuid');
				var k = this.getAttribute('linklistkey');
				window._menus[menuid].menu_item_out(this, k);
			}
		}

	}

	this.show_menu = function(a) {
		this.clear_menu_timer();
		hide_all_menus();
		hide_selectors();
		this.div.style.left = getLeft(a.parentNode) + 'px';
		//this.div.style.top = ( getTop(a) + 20 ) + 'px';
		this.div.style.display = 'block';
		this.clear_menu_timer();
	}

	this.show_menu_sub = function(a) {
		hide_selectors();

		var left, top;
		if(this.div.getAttribute('direction') == 'left') {
			left = ( getLeft(a) - a.offsetWidth + 5 );
			top = ( getTop(a) + 5 );

		} else {
			left = ( getLeft(a) + a.offsetWidth - 5 );
			top = ( getTop(a) + 5 );
		}

		this.div.style.left = left + 'px';
		this.div.style.top = top + 'px';
		this.div.style.display = 'block';
		this.clear_menu_timer();
	}

	this.start_hide_menu = function() {
		var timeout = 1000;

		this.clear_menu_timer();
		this.timer = setTimeout("window._menus['"+this.id+"'].do_hide_menu();", timeout);



	}

	this.do_hide_menu = function() {
		this.clear_menu_timer();
		if(this.div.style.display != 'none') {
			this.div.style.display = 'none';
			show_selectors();
		}
	}

	this.clear_menu_timer = function() {
		clearTimeout(this.timer);



	}

	this.menu_item_over = function(that, k) {
		this.currently_over_menu = 1;
		this.clear_menu_timer();
		that.className = 'hover';


		// hide all submenus of this menu
		for(var n in this.linklist) {
			if(this.linklist[n].showsubmenu) {
				this.linklist[n].showsubmenu.do_hide_menu();
			}
		}

		// now show the submenu of this item if needed
		var l = this.linklist[k];
		if(l.showsubmenu) {
			l.showsubmenu.show_menu_sub(l.td);
		}

		// if this is a submenu, prevent the parent from disappearing
		if(this.parentmenu) {
			this.parentmenu.clear_menu_timer();
		}

	}

	this.menu_item_out = function(that, k) {
		this.currently_over_menu = 0;


		var l = this.linklist[k];
		if(l.showsubmenu) {
			l.showsubmenu.start_hide_menu();
		}

		that.className = '';


		// start hiding the menu 
		this.start_hide_menu();

		// if this is a submenu, start hiding the parent also
		if(this.parentmenu) {
			this.parentmenu.start_hide_menu();
		}

	}

}

function hide_all_menus() {
	for(var k in window._menus) {
		if(window._menus[k] instanceof MainMenu) window._menus[k].do_hide_menu();
	}
}


function getLeft(obj) {
	return (obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft + getLeft(obj.offsetParent));
}
function getTop(obj) {
	return (obj.offsetParent==null ? obj.offsetTop : obj.offsetTop + getTop(obj.offsetParent));
}


window.timer_show_selectors;

function hide_selectors() {
	clearTimeout(window.timer_show_selectors);
	var list = document.getElementsByTagName('select');
	for(var i=0; i<list.length; ++i) {
		list[i].style.visibility = 'hidden';
	}
}

function show_selectors() {
	clearTimeout(window.timer_show_selectors);
	window.timer_show_selectors = setTimeout('do_show_selectors();', 200);
}
function do_show_selectors() {
	var list = document.getElementsByTagName('select');
	for(var i=0; i<list.length; ++i) {
		list[i].style.visibility = 'visible';
	}
}


