var domMenu_data = new domHash();
var domMenu_settings = new domHash();
domMenu_settings.set('global', new domHash(
'menuBarClass','domMenu_menuBar',
'menuElementClass','domMenu_menuElement',
'menuElementHoverClass','domMenu_menuElementHover',
'menuElementActiveClass','domMenu_menuElementHover',
'subMenuBarClass','domMenu_subMenuBar',
'subMenuElementClass','domMenu_subMenuElement',
'subMenuElementHoverClass','domMenu_subMenuElementHover',
'subMenuElementActiveClass','domMenu_subMenuElementHover',
'subMenuElementHeadingClass','domMenu_subMenuElementHeading',
'subMenuTargetFrame',false,
'targetDocumentXOrigin',0,
'targetDocumentYOrigin',0,
'menuBarWidth','100%',
'subMenuMinWidth','inherit',
'distributeSpace',true,
'axis','horizontal',
'verticalExpand','south',
'horizontalExpand','east',
'expandMenuArrowUrl','arrow.gif',
'subMenuWidthCorrection',0,
'verticalSubMenuOffsetY',0,
'verticalSubMenuOffsetX',0,
'horizontalSubMenuOffsetX',0,
'horizontalSubMenuOffsetY',0,
'screenPadding',0,
'openMouseoverMenuDelay',100,
'openMousedownMenuDelay',-1,
'closeMouseoutMenuDelay',300,
'closeClickMenuDelay',-1,
'openMouseoverSubMenuDelay',100,
'openClickSubMenuDelay',-1,
'closeMouseoutSubMenuDelay',200,
'closeClickSubMenuDelay',-1,
'baseZIndex',100,
'baseUri',''
));
var domMenu_data;
var domMenu_selectElements;
var domMenu_scrollbarWidth = 14;
var domMenu_eventTo = domLib_isIE ? 'toElement' : 'relatedTarget';
var domMenu_eventFrom = domLib_isIE ? 'fromElement' : 'relatedTarget';
var domMenu_activeElement = new domHash();
var domMenu_timeouts = [];
domMenu_timeouts['open'] = new domHash();
domMenu_timeouts['close'] = new domHash();
var domMenu_pointerStyle = domLib_isIE ? 'hand' : 'pointer';
function domMenu_activate(in_containerId, in_disableWarning){
	var container, data;
	if(!domLib_useLibrary){
		if(!in_disableWarning) alert('domMenu: Browser not supported.  Menu will be disabled.');
	return;
	}
	if(!(container = document.getElementById(in_containerId)) || !(data = domMenu_data.get(in_containerId)) || data.numericLength == 0){
		if(!in_disableWarning) alert('domMenu: Menu failed to load.');
	return;
	}
	if(domLib_isIE && window.attachEvent) window.attachEvent('onunload', domMenu_unloadEventCache);
	if(!domMenu_settings.has(in_containerId)) domMenu_settings.set(in_containerId, new domHash());
	var settings = domMenu_settings.get(in_containerId);
	for(var i in domMenu_settings.get('global').elementData)
		if(!settings.has(i)) settings.set(i, domMenu_settings.get('global').get(i));
	container.data = new domHash('parentElement',false,'numChildren',data.numericLength,'childElements',new domHash(),'level',0,'index',1);
	var distributeRatio = Math.round(100/container.data.get('numChildren')) + '%';
	var rootMenu = document.createElement('div');
	rootMenu.id = in_containerId + '-0';
	rootMenu.className = settings.get('menuBarClass');
	container.data.set('subMenu', rootMenu);
	var rootMenuTable = rootMenu.appendChild(document.createElement('table'));
	if(domLib_isKonq || domLib_isMacIE) rootMenuTable.cellSpacing = 0;
	rootMenuTable.style.border = 0;
	rootMenuTable.style.borderCollapse = 'collapse';
	rootMenuTable.style.width = settings.get('menuBarWidth');
	var rootMenuTableBody = rootMenuTable.appendChild(document.createElement('tbody'));
	var numSiblings = container.data.get('numChildren');
	for(var index = 1; index <= numSiblings; index++){
		if(index == 1 || settings.get('axis') == 'vertical') var rootMenuTableRow = rootMenuTableBody.appendChild(document.createElement('tr'));
		var rootMenuTableCell = rootMenuTableRow.appendChild(document.createElement('td'));
		rootMenuTableCell.style.padding = 0;
		rootMenuTableCell.id = in_containerId + '-' + index;
		container.data.get('childElements').set(rootMenuTableCell.id, rootMenuTableCell);
		rootMenuTableCell.data = data.get(index);
		rootMenuTableCell.data.merge(new domHash('basename',in_containerId,'parentElement',container,'numChildren',rootMenuTableCell.data.numericLength,'childElements',new domHash(),'offsets',new domHash(),'level',container.data.get('level') + 1,'index',index));
		rootMenuTableCell.style.cursor = 'default';
		if(settings.get('axis') == 'horizontal'){
			if(settings.get('distributeSpace')) rootMenuTableCell.style.width = distributeRatio;
		}
		rootMenuTableCell.style.verticalAlign = 'top';
		var rootElement = rootMenuTableCell.appendChild(document.createElement('div'));
		rootElement.className = settings.get('menuElementClass');
		var spanElement = rootElement.appendChild(document.createElement('span'));
		spanElement.innerHTML = rootMenuTableCell.data.get('contents').replace(/\/\/\//, settings.get('baseUri'));
		if(rootMenuTableCell.data.has('contentsHover')){
			spanElement = rootElement.appendChild(document.createElement('span'));
			spanElement.style.display = 'none';
			spanElement.innerHTML = rootMenuTableCell.data.get('contentsHover').replace(/\/\/\//, settings.get('baseUri'));
		}
		if(domLib_isMacIE) rootMenuTableCell.appendChild(document.createTextNode("\n"));
		rootMenuTableCell.onmouseover = domMenu_openMenuOnmouseoverHandler;
		rootMenuTableCell.onmouseout = domMenu_closeMenuHandler;
		if(settings.get('openMousedownMenuDelay') >= 0 && rootMenuTableCell.data.get('numChildren')){
			rootMenuTableCell.onmousedown = domMenu_openMenuOnmousedownHandler;
			rootMenuTableCell.onmouseup = domLib_cancelBubble;
			if(domLib_isIE) rootMenuTableCell.ondblclick = domMenu_openMenuOnmousedownHandler;
		}else if(rootMenuTableCell.data.get('uri')){
			rootMenuTableCell.style.cursor = domMenu_pointerStyle;
			rootMenuTableCell.onclick = domMenu_resolveLinkHandler;
		}
		if(domLib_isIE) rootMenuTableCell.onselectstart = makeFalse;
		rootMenuTableCell.oncontextmenu = makeFalse;
	}
	rootMenu = container.appendChild(rootMenu);
	if(domLib_detectObstructionsEnabled) domLib_detectObstructions(rootMenu, false, false);
}
function domMenu_activateSubMenu(in_parentElement){
	if(domLib_isMacIE) return;
	if(in_parentElement.data.has('subMenu')){
		domMenu_toggleSubMenu(in_parentElement, 'visible');
	return;
	}
	var settings = domMenu_settings.get(in_parentElement.data.get('basename'));
	var targetDoc = document;
	var targetFrame = settings.get('subMenuTargetFrame');
	if(targetFrame) targetDoc = targetFrame.document;
	var menu = targetDoc.createElement('div');
	menu.id = in_parentElement.id + '-0';
	menu.className = settings.get('subMenuBarClass');
	menu.style.zIndex = settings.get('baseZIndex');
	menu.style.position = 'absolute';
	menu.style.visibility = 'hidden';
	menu.style.top = 0;
	menu.style.left = 0;
	in_parentElement.data.set('subMenu', menu);
	var menuTable = menu.appendChild(targetDoc.createElement('table'));
	if(domLib_isOpera){
		menuTable.style.width = '1px';
		menuTable.style.whiteSpace = 'nowrap';
	}
	if(domLib_isKonq || domLib_isMacIE) menuTable.cellSpacing = 0;
	menuTable.style.border = 0;
	menuTable.style.borderCollapse = 'collapse';
	var menuTableBody = menuTable.appendChild(targetDoc.createElement('tbody'));
	var numSiblings = in_parentElement.data.get('numChildren');
	for(var index = 1; index <= numSiblings; index++){
		var dataIndex = in_parentElement.data.get('level') == 1 && settings.get('verticalExpand') == 'north' && settings.get('axis') == 'horizontal' ? numSiblings + 1 - index : index;
		var menuTableCell = menuTableBody.appendChild(targetDoc.createElement('tr')).appendChild(targetDoc.createElement('td'));
		menuTableCell.style.padding = 0;
		menuTableCell.id = in_parentElement.id + '-' + dataIndex;
		in_parentElement.data.get('childElements').set(menuTableCell.id, menuTableCell);
		menuTableCell.data = in_parentElement.data.get(dataIndex);
		menuTableCell.data.merge(new domHash('basename',in_parentElement.data.get('basename'),'parentElement',in_parentElement,'numChildren',menuTableCell.data.numericLength,'childElements',new domHash(),'offsets',new domHash(),'level',in_parentElement.data.get('level') + 1,'index',index));
		menuTableCell.style.cursor = 'default';
		var element = menuTableCell.appendChild(targetDoc.createElement('div'));
		var outerElement = element;
		outerElement.className = settings.get('subMenuElementClass');
		if(menuTableCell.data.get('numChildren')){
			element = outerElement.appendChild(targetDoc.createElement('div'));
			element.style.backgroundImage = 'url(' + settings.get('expandMenuArrowUrl') + ')';
			element.style.backgroundRepeat = 'no-repeat';
			if(settings.get('horizontalExpand') == 'east'){
				element.style.backgroundPosition = 'right center';
				element.style.paddingRight = '12px';
			}else{
				element.style.backgroundPosition = 'left center';
				element.style.paddingLeft = '12px';
			}
		}
		if(domLib_isMacIE){
			element.appendChild(targetDoc.createTextNode(menuTableCell.data.get('contents')));
			menuTableCell.appendChild(targetDoc.createTextNode("\n"));
		}else element.innerHTML = menuTableCell.data.get('contents');
		menuTableCell.onmouseover = domMenu_openSubMenuOnmouseoverHandler;
		menuTableCell.onmouseout = domMenu_closeMenuHandler;
		if(settings.get('openClickSubMenuDelay') >= 0 && menuTableCell.data.get('numChildren')){
			menuTableCell.onmousedown = domMenu_openSubMenuOnclickHandler;
			menuTableCell.onmouseup = domLib_cancelBubble;
			if(domLib_isIE) menuTableCell.ondblclick = domMenu_openSubMenuOnclickHandler;
		}else if(menuTableCell.data.get('uri')){
			menuTableCell.style.cursor = domMenu_pointerStyle;
			menuTableCell.onclick = domMenu_resolveLinkHandler;
		}else if(!menuTableCell.data.get('numChildren'))
			outerElement.className += ' ' + settings.get('subMenuElementHeadingClass');
		if(domLib_isIE) menuTableCell.onselectstart = makeFalse;
		menuTableCell.oncontextmenu = makeFalse;
	}
	menu = targetDoc.body.appendChild(menu);
	domMenu_toggleSubMenu(in_parentElement, 'visible');
}
function domMenu_changeActivePath(in_newActiveElement, in_oldActiveElement, in_closeDelay){
	if(!in_oldActiveElement && !in_newActiveElement) return false;
	for(var i in domMenu_timeouts['open'].elementData) domLib_clearTimeout(domMenu_timeouts['open'].get(i));
	var basename = in_oldActiveElement ? in_oldActiveElement.data.get('basename') : in_newActiveElement.data.get('basename');
	var settings = domMenu_settings.get(basename);
	var oldActivePath = new domHash();
	if(in_oldActiveElement){
		var tmp_newActiveLevel = in_newActiveElement ? in_newActiveElement.data.get('level') : -1;
		var tmp_oldActivePathElement = in_oldActiveElement;
		do{
			oldActivePath.elementData[tmp_oldActivePathElement.id] = tmp_oldActivePathElement;
			if(tmp_newActiveLevel >= 0 && tmp_oldActivePathElement.data.get('level') == tmp_newActiveLevel)
				domMenu_toggleHighlight(tmp_oldActivePathElement, false);
		}while((tmp_oldActivePathElement = tmp_oldActivePathElement.data.get('parentElement')) && tmp_oldActivePathElement.id != basename);
		if(!in_oldActiveElement.data.get('subMenu') || in_oldActiveElement.data.get('subMenu').style.visibility == 'hidden')
			domMenu_toggleHighlight(in_oldActiveElement, false);
	}
	var newActivePath = new domHash();
	var intersectPoint;
	if(in_newActiveElement){
		var actualActiveElement = in_newActiveElement;
		setWindowStatus(in_newActiveElement.data.get('statusText'));
		//window.status = in_newActiveElement.data.get('statusText') + ' ';
		if(!in_oldActiveElement){
			domLib_clearTimeout(domMenu_timeouts['close'].get(in_newActiveElement.id));
			domMenu_toggleHighlight(in_newActiveElement, true);
		return false;
		}else if(oldActivePath.has(in_newActiveElement.id)) in_newActiveElement = in_oldActiveElement;
		var tmp_newActivePathElement = in_newActiveElement;
		do{
			if(!intersectPoint && oldActivePath.has(tmp_newActivePathElement.id)) intersectPoint = tmp_newActivePathElement;
			newActivePath.set(tmp_newActivePathElement.id, tmp_newActivePathElement);
			domLib_clearTimeout(domMenu_timeouts['close'].get(tmp_newActivePathElement.id));
			if(tmp_newActivePathElement != in_oldActiveElement || actualActiveElement == in_oldActiveElement) domMenu_toggleHighlight(tmp_newActivePathElement, true);
		}while((tmp_newActivePathElement = tmp_newActivePathElement.data.get('parentElement')) && tmp_newActivePathElement.id != basename);
		if(in_newActiveElement.data.get('parentElement') == in_oldActiveElement) return in_newActiveElement;
		else if(in_newActiveElement == in_oldActiveElement) return in_newActiveElement;
		var intersectSibling;
		if(intersectPoint && oldActivePath.length > 0){
			for(var i in oldActivePath.elementData){
				if(oldActivePath.get(i).data.get('parentElement') == intersectPoint){
					intersectSibling = oldActivePath.get(i);
				break;
				}
			}
		}
		var isRootLevel = in_newActiveElement.data.get('level') == 1 ? true : false;
		var closeDelay = isRootLevel ? settings.get('closeMouseoutMenuDelay') : settings.get('closeMouseoutSubMenuDelay');
	}else{
		var isRootLevel = false, closeDelay = settings.get('closeMouseoutMenuDelay');
		setWindowStatus(window.defaultStatus);
	}
	if(typeof(in_closeDelay) != 'undefined') closeDelay = in_closeDelay;
	if(intersectSibling){
		if(!isRootLevel) domMenu_toggleHighlight(intersectSibling, false);
		else{
			for(var i in domMenu_timeouts['close'].elementData){
				if(!oldActivePath.has(i)){
					var tmp_element = document.getElementById(i);
					if(tmp_element.data.get('basename') == basename) oldActivePath.set(i, tmp_element);
				}
			}
		}
	}
	for(var i in oldActivePath.elementData){
		if(newActivePath.has(i)) continue;
		domLib_clearTimeout(domMenu_timeouts['close'].get(i));
		if(isRootLevel){
			domMenu_toggleHighlight(oldActivePath.get(i), false);
			domMenu_toggleSubMenu(oldActivePath.get(i), 'hidden');
		}else domMenu_timeouts['close'].set(i, domLib_setTimeout(domMenu_closeMenuCallback, closeDelay, [oldActivePath.get(i), basename]));
	}
return in_newActiveElement;
}
function domMenu_deactivate(in_basename, in_delay){
	if(!in_delay) in_delay = 0;
	domMenu_changeActivePath(false, domMenu_activeElement.get(in_basename), in_delay);
}
function domMenu_openEvent(in_this, in_event, in_delayType){
	if(domLib_isGecko) window.getSelection().removeAllRanges();
	var eventObj = domLib_isIE ? event : in_event;
	if(domLib_isIE && in_this.data.get('level') > 1){
		var targetFrame = domMenu_settings.get(in_this.data.get('basename')).get('subMenuTargetFrame');
		if(targetFrame) eventObj = targetFrame.event;
	}
	var currentTarget = domLib_isIE ? in_this : eventObj.currentTarget;
	var basename = currentTarget.data.get('basename');
	var settings = domMenu_settings.get(basename);
	if(eventObj.type != 'mousedown' && domMenu_getElement(eventObj[domMenu_eventFrom], basename) == currentTarget) return;
	if(eventObj.type == 'mousedown' && domMenu_activeElement.get(basename)){
		domMenu_changeActivePath(false, domMenu_activeElement.get(basename), currentTarget.data.get('level') == 1 ? settings.get('closeClickMenuDelay') : settings.get('closeClickSubMenuDelay'));
	return;
	}
	if(currentTarget.data.get('numChildren')){
		if(currentTarget.data.get('level') == 1 && domMenu_activeElement.get(basename)){
			domMenu_activateSubMenu(currentTarget);
			domMenu_activeElement.set(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.get(basename)));
		}else{
			domMenu_activeElement.set(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.get(basename)));
			domMenu_timeouts['open'].set(currentTarget.id, domLib_setTimeout(domMenu_openMenuCallback, settings.get(in_delayType), [currentTarget, basename]));
		}
	}else domMenu_activeElement.set(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.get(basename)));
}
function domMenu_closeEvent(in_this, in_event){
	var eventObj = domLib_isIE ? event : in_event;
	if(domLib_isIE && in_this.data.get('level') > 1){
		var targetFrame = domMenu_settings.get(in_this.data.get('basename')).get('subMenuTargetFrame');
		if(targetFrame) eventObj = targetFrame.event;
	}
	var currentTarget = domLib_isIE ? in_this : eventObj.currentTarget;
	var basename = currentTarget.data.get('basename');
	var relatedTarget = domMenu_getElement(eventObj[domMenu_eventTo], basename);
	if(domMenu_activeElement.get(basename)){
		if(!relatedTarget) domMenu_changeActivePath(false, domMenu_activeElement.get(basename));
	}else if(currentTarget != relatedTarget){
		domLib_clearTimeout(domMenu_timeouts['open'].get(currentTarget.id));
		domMenu_toggleHighlight(currentTarget, false);
	}
}
function domMenu_getElement(in_object, in_basename){
	while(in_object){
		try{
			if(in_object.id && in_object.id.search(new RegExp('^' + in_basename + '(\\[[0-9]\\])*\\[[1-9]\\]$')) == 0) return in_object;
			else in_object = in_object.parentNode;
		}catch(e){ return false; }
	}
return false;
}
function domMenu_correctEdgeBleed(in_width, in_height, in_x, in_y, in_padding, in_axis){
	var doc = ((domLib_standardsMode && (domLib_isIE || domLib_isGecko)) ? document.documentElement : document.body);
	var pageHeight = domLib_isKHTML ? window.innerHeight : doc.clientHeight;
	var pageYOffset = domLib_isIE ? doc.scrollTop : window.pageYOffset;
	var pageXOffset = domLib_isIE ? doc.scrollLeft : window.pageXOffset;
	if(in_axis == 'horizontal'){
		var bleedRight = (in_x - pageXOffset) + in_width - (doc.clientWidth - in_padding);
		var bleedLeft = (in_x - pageXOffset) - in_padding;
		if(bleedRight > 0) in_x -= bleedRight;
		if(bleedLeft < 0) in_x += bleedLeft;
	}else{
		var bleedTop = (in_y - pageYOffset) - in_padding;
		var bleedBottom = (in_y - pageYOffset) + in_height - (pageHeight - in_padding);
		if(bleedBottom > 0) in_y -= bleedBottom;
		if(bleedTop < 0) in_y += bleedTop;
	}
return [in_x, in_y];
}
function domMenu_toggleSubMenu(in_parentElement, in_style){
	var subMenu = in_parentElement.data.get('subMenu');
	if(subMenu && subMenu.style.visibility != in_style){
		var settings = domMenu_settings.get(in_parentElement.data.get('basename'));
		var isFirstLevelSub = in_parentElement.data.get('level') == 1;
		var targetOtherDoc = isFirstLevelSub && settings.get('subMenuTargetFrame');
		var prefix = isFirstLevelSub ? 'menu' : 'subMenu';
		var className = settings.get(prefix + 'ElementClass');
		if(in_style == 'visible') className += ' ' + settings.get(prefix + 'Element' + (in_style == 'visible' ? 'Active' : 'Hover') + 'Class');
		in_parentElement.firstChild.className = className;
		if(in_style == 'visible'){
			var tmp_offsets = domLib_getOffsets(in_parentElement);
			if(isFirstLevelSub){
				tmp_offsets.set('top', tmp_offsets.get('top') + settings.get('verticalSubMenuOffsetY'));
				tmp_offsets.set('bottom', tmp_offsets.get('bottom') + settings.get('verticalSubMenuOffsetY'));
				tmp_offsets.set('left', tmp_offsets.get('left') + settings.get('verticalSubMenuOffsetX'));
				tmp_offsets.set('right', tmp_offsets.get('right') + settings.get('verticalSubMenuOffsetX'));
			}
			if(!in_parentElement.data.get('offsets').compare(tmp_offsets)){
				in_parentElement.data.set('offsets', tmp_offsets);
				var xCoor, yCoor;
				if(isFirstLevelSub && settings.get('axis') == 'horizontal'){
					xCoor = tmp_offsets.get('left');
					if(settings.get('verticalExpand') == 'north')
						yCoor = (targetOtherDoc) ? subMenu.offsetHeight : tmp_offsets.get('top') - subMenu.offsetHeight - settings.get('verticalSubMenuOffsetY');
					else
						yCoor = (targetOtherDoc) ? settings.get('targetDocumentYOrigin') : tmp_offsets.get('bottom');
				}else{
					yCoor = tmp_offsets.get('top') + settings.get('horizontalSubMenuOffsetY');
					if(settings.get('horizontalExpand') == 'east')
						xCoor = (targetOtherDoc) ? settings.get('targetDocumentXOrigin') : tmp_offsets.get('right') + settings.get('horizontalSubMenuOffsetX');
					else
						xCoor = tmp_offsets.get('left') - subMenu.offsetWidth - settings.get('horizontalSubMenuOffsetX');
					if(!targetOtherDoc && (domLib_isOpera || domLib_isSafari)){
						var marginLeft = parseInt(domLib_getComputedStyle(document.body, 'margin-left'));
						xCoor -= marginLeft;
						var marginTop = parseInt(domLib_getComputedStyle(document.body, 'margin-top'));
						yCoor -= marginTop;
					}
				}
				var minWidth = settings.get('subMenuMinWidth');
				var renderedWidth = subMenu.offsetWidth;
				if(minWidth == 'inherit') minWidth = in_parentElement.offsetWidth + settings.get('subMenuWidthCorrection');
				else if(minWidth == 'auto') minWidth = renderedWidth;
				if(domLib_isKonq) subMenu.firstChild.firstChild.firstChild.firstChild.style.width = Math.max(minWidth, renderedWidth) + 'px';
				else subMenu.firstChild.style.width = Math.max(minWidth, renderedWidth) + 'px';
				var coordinates = domMenu_correctEdgeBleed(subMenu.offsetWidth, subMenu.offsetHeight, xCoor, yCoor, settings.get('screenPadding'), settings.get('axis'));
				subMenu.style.left = coordinates[0] + 'px';
				subMenu.style.top = coordinates[1] + 'px';
				if(settings.get('axis') == 'horizontal' && settings.get('subMenuMinWidth') == 'inherit') subMenu.firstChild.style.width = Math.max(in_parentElement.offsetWidth + settings.get('subMenuWidthCorrection'), renderedWidth) + 'px';
			}
		}
		if(domLib_isKonq){
			in_parentElement.firstChild.style.display = 'none';
			in_parentElement.firstChild.style.display = '';
		}
		subMenu.style.visibility = in_style;
		if(domLib_detectObstructionsEnabled) domLib_detectObstructions(subMenu, (in_style == 'hidden'), true);
	}
}
function domMenu_toggleHighlight(in_element, in_status){
	if(!in_element.data.get('numChildren') && !in_element.data.get('uri')) return;
	var settings = domMenu_settings.get(in_element.data.get('basename'));
	var prefix = in_element.data.get('level') == 1 ? 'menu' : 'subMenu';
	var className = settings.get(prefix + 'ElementClass');
	var highlightElement = in_element.firstChild;
	var pseudoClass;
	if(in_status){
		if(in_element.data.has('subMenu') && in_element.data.get('subMenu').style.visibility == 'visible') pseudoClass = 'Active';
		else if(in_element.data.get('numChildren') || in_element.data.get('uri')) pseudoClass = 'Hover';
	}
	if(pseudoClass){
		className += ' ' + settings.get(prefix + 'Element' + pseudoClass + 'Class');
		if(highlightElement.childNodes.length == 2 && highlightElement.lastChild.style && highlightElement.lastChild.style.display == 'none'){
			highlightElement.firstChild.style.display = 'none';
			highlightElement.lastChild.style.display = '';
		}
	}else if(highlightElement.childNodes.length == 2 && highlightElement.lastChild.style && highlightElement.firstChild.style.display == 'none'){
		highlightElement.lastChild.style.display = 'none';
		highlightElement.firstChild.style.display = '';
	}
	highlightElement.className = className;
	if(domLib_isKonq){
		highlightElement.style.display = 'none';
		highlightElement.style.display = '';
	}
}
function domMenu_resolveLink(in_this, in_event){
	var eventObj = domLib_isIE ? event : in_event;
	var currentTarget = domLib_isIE ? in_this : eventObj.currentTarget;
	var basename = currentTarget.data.get('basename');
	domMenu_changeActivePath(false, domMenu_activeElement.get(basename), 0);
	var uri = currentTarget.data.get('uri');
	if(uri){
		setWindowStatus('Carregando...');
		//window.status = 'Resolving Link...';
		if(uri.charAt(0) == '/' && domMenu_settings.get(basename).get('baseUri').length > 0) uri = domMenu_settings.get(basename).get('baseUri') + uri;
		if(uri.indexOf('javascript: ') == 0) eval(uri.substring(12));
		else if(!currentTarget.data.get('target') || currentTarget.data.get('target') == '_self') window.location = uri;
		else window.open(uri, currentTarget.data.get('target'));
	}
}
function domMenu_unloadEventCache(){
	var el, clearElementProps = ['data','onmouseover','onmouseout','onmousedown','onmouseup','ondblclick','onclick','onselectstart','oncontextmenu'];
	for(var d = document.all.length; d--;){
		el = document.all[d];
		for(var c = clearElementProps.length; c--;) el[clearElementProps[c]] = null;
		//for(var c = clearElementProps.length; c--;) try{ el[clearElementProps[c]] = null; }catch(e){ }
	}
}
function domMenu_openMenuOnmouseoverHandler(in_event){ domMenu_openEvent(this, in_event, 'openMouseoverMenuDelay'); }
function domMenu_openMenuOnmousedownHandler(in_event){ domMenu_openEvent(this, in_event, 'openMousedownMenuDelay'); }
function domMenu_openSubMenuOnmouseoverHandler(in_event){ domMenu_openEvent(this, in_event, 'openMouseoverSubMenuDelay'); }
function domMenu_openSubMenuOnclickHandler(in_event){ domMenu_openEvent(this, in_event, 'openClickSubMenuDelay'); }
function domMenu_resolveLinkHandler(in_event){ domMenu_resolveLink(this, in_event); }
function domMenu_closeMenuHandler(in_event){ domMenu_closeEvent(this, in_event); }
function domMenu_closeMenuCallback(argv){
	domMenu_toggleHighlight(argv[0], false);
	domMenu_toggleSubMenu(argv[0], 'hidden');
	if(argv[0].data.get('level') == 1) domMenu_activeElement.set(argv[1], false);
}
function domMenu_openMenuCallback(argv){
	if(!domMenu_activeElement.get(argv[1])) domMenu_activeElement.set(argv[1], argv[0]);
	domMenu_activateSubMenu(argv[0]);
}
function setWindowStatus(statusText){
	writeDiv(document.getElementById('msg'), statusText == '' ? defaultStatus : statusText);
	window.status =(statusText.replace(/<.*?>/g, ' ')).replace(/\s+/g, ' ') + ' ';
}
