var hideTimer;

var menu, submenus, addIframe;


function getMenuComponents(ul) {
	var els, links, items, lists, li, a, innerul, iframe, i;
	if (!ul) {
		return;
	}
	els = jlib.getChildrenByTagName(ul, 'li');
	links = [];
	items = [];
	lists = [];
	for (i = 0; i < els.length; i++) {
		li = els[i];
		a = jlib.getChildrenByTagName(li, 'a')[0];
		innerul = jlib.getChildrenByTagName(li, 'ul')[0];
		if (a && innerul) {
			links.push(a);
			items.push(li);
			lists.push(innerul);
			if (addIframe) {
				iframe = document.createElement('iframe');
				iframe.className = innerul.className;
				li.appendChild(iframe);
				li.list = innerul;
				li.iframe = iframe;
			}
		}
	}
	return { links: links, items: items, lists: lists };
}

function hideAllSubMenus() {
	var i;
	if (!submenus) {
		return;
	}
	for (i = submenus.length - 1; i >= 0; i--) {
		submenus[i].deselect();
	}
}
function menuFocus(e) {
	jlib.addCSSClass(e.target, 'focused');
}

function menuBlur(e) {
	jlib.removeCSSClass(e.target, 'focused');
}

function menuIframe(e) {
	e.station.iframe.style.height = e.station.list.offsetHeight + 'px';
}

function menuInit() {
	var m = getMenuComponents(document.getElementById('mainnav'));
	var lists, sm, submenu, i;

	if (!m) {
		return;
	}
	menu = new jlib.CSSClassRadio(m.links, m.items, 'selected', 'mouseover', 0, 500);
	jlib.addEventListener(menu, 'deselect', hideAllSubMenus);
	jlib.addEventListener(menu, 'focus', menuFocus);
	jlib.addEventListener(menu, 'blur', menuBlur);
	if (addIframe) {
		jlib.addEventListener(menu, 'select', menuIframe);
	}

	lists = m.lists;
	submenus = [];
	
}

function menuUninit() {
	if (menu) {
		jlib.removeEventListener(menu, 'deselect', hideAllSubMenus);
		jlib.removeEventListener(menu, 'focus', menuFocus);
		jlib.removeEventListener(menu, 'blur', menuBlur);
		if (addIframe) {
			jlib.removeEventListener(menu, 'select', menuIframe);
		}
		menu.uninit();
		menu = null;
	}
}
