/*
 * date:	2003-11-16
 * info:	http://inspire.server101.com/js/mb/
 */

var mbW=250;	/* delay to allow mouse to move from main menu to sub menu */
var mbA,mbT,mbTf,mbSf;
var mbR = [];

/* Function bmSet(menuID, Classname) */
function mbSet(m,c) {
if (document.getElementById&&document.createElement) {
	var m=document.getElementById(m);
	m.className=c;
	mbR[mbR.length] = m;
	var i;

	/* Set the A tag element */
	e=m.getElementsByTagName('a');
	/ Create new functions for onMouseOver and onMouseOut */
	if (!mbTf) mbTf=new Function('mbHT();');
	if (!mbSf) mbSf=new Function('mbS(this);');
        /* Loop through the A tag Elements setting the onMouseOver and onMouseOut events */
	for (i=0;i<e.length;i++) {
		e[i].onmouseout=e[i].onblur=mbTf;
		e[i].onmouseover=e[i].onfocus=mbSf;
	}

        /* Get main UL element */
	m=m.getElementsByTagName('ul');
        /* Loop through the child elements to hide menus */
	for (i=0;i<m.length;i++) {
		mbH(mbL(m[i]));
	}
}
}

function mbHA() {
	if (mbA) {
		while (mbA) mbH(mbA);
		mbHE('visible');
	}
}

/* onMouseOut/onBlur set timeout */
function mbHT() {
	if (!mbT) mbT=setTimeout('mbHA();', mbW);
}

function mbTC() {
	if (mbT) {
		clearTimeout(mbT);
		mbT=null;
	}
}

/* Show menu */
/* onMouseOver/onFocus show mwnu */
function mbS(m) {
	mbTC();
	if (mbA) while (mbA&&m!=mbA&&mbP(m)!=mbA) mbH(mbA);
	else mbHE('hidden');

	if (mbM(m)) {
		mbSH(m,'visible');
		mbA=m;
	}
}

/* Hide Menu */
function mbH(m) {
	if (m==mbA) mbA=mbP(m);
	mbSH(m,'hidden');
	mbT=null;
}

/* Locate the A tag element by looping through m */
function mbL(m) {
	while (m && m.tagName != 'A') m = m.previousSibling;
	return m;
}

/* Locate the UL tag element by looping through l */
function mbM(l) {
	while (l && l.tagName != 'UL') l = l.nextSibling;
	return l;
}

/* Parent element */
function mbP(m) {
	var p = m.parentNode.parentNode;
	if (p.tagName == 'UL') {
		var i = 0;
		while (i < mbR.length) {
			if (mbR[i] == p) return null;
			i++;
		}
	} else {
		return null;
	}
	return mbL(p);
}

/* Set visibility of element */
function mbSH(m,v) {
	m.className=v;
	mbM(m).style.visibility=v;
}

/* Set visibility of all selected elements */
function mbHE(v) {
	mbHEV(v,document.getElementsByTagName('select'));
}

/* Set visibility of all elements */
function mbHEV(v,e) {
	for (var i=0;i<e.length;i++) e[i].style.visibility=v;
}
