var left = (txtMenuType.substring(txtMenuType.length-1) == 'R');
var currentMenu = false;
var iTimeoutID;
var side;
var removeImage = function() {};

if (window.ActiveXObject) window.ie = window[window.XMLHttpRequest ? 'ie7' : 'ie6'] = true;
else if (document.childNodes && !document.all && !navigator.taintEnabled) window.khtml = true;
else if (document.getBoxObjectFor != null) window.gecko = true;

function addSubMenuTop(obj, btm_img)
{
	clearTimeout(iTimeoutID);
	
	if(currentMenu && currentMenu != obj) hideNav(currentMenu);
	currentMenu = obj;
	
	if(menuLevelTop == 0) return;
	
	side = false;
	
	var el = document.getElementById('navTopWrapper');
	if(el) el.parentNode.removeChild(el);
	
	var fakeId = obj.id.replace(/t|s|sub/i,'');	
	
	if(menus[fakeId])
	{
		var objPos = getElementPosition(obj);
		var elTop = objPos.top;
		var elLeft = objPos.left;
		var trueHeight = (obj.firstChild.firstChild.height > 0 && !window.opera) ? obj.firstChild.firstChild.height : (obj.offsetHeight == 0) ? obj.parentNode.offsetHeight : obj.offsetHeight;
		var opOffset = ysnHorizontal ? obj.offsetWidth+intSubMenuXRelative2 : 0;
		
		var wrapper = document.createElement('div');
		wrapper.id = 'navTopWrapper';
		wrapper.level = 1;
		
		wrapper.className = 'wrapper';
		if(intMenuHeightLevel >= 1) wrapper.className += '  wrapperHeight';
		if(intMenuWidthLevel >= 1) wrapper.className += ' wrapperWidth';
	   
		var elStyle = wrapper.style; 
		elStyle.top = ysnHorizontal ? (elTop + intSubMenuYRelative2) + 'px' : (elTop + trueHeight) + 'px'; 
		elStyle.left = (elLeft + opOffset) + 'px';
		
		wrapper.innerHTML = menus[fakeId];
		
		document.getElementById("floating").appendChild(wrapper);
		
		if((window.khtml) && (intMenuHeightLevel >= 1) && (wrapper.offsetHeight < intPopupMenuHeight2)) wrapper.style.height = intPopupMenuHeight2 + 'px';
		
		if (btm_img) 
		{
			var imgWrapper = document.createElement('div');
			imgWrapper.className = 'imgWrapper';
			imgWrapper.innerHTML = '<img class = "btmImage" src = "' + btm_img + '">';			
			wrapper.appendChild(imgWrapper);
			elStyle.borderBottom = 'none';
			imgWrapper.style.top = wrapper.clientHeight + 'px';				 
		}
		popupDelay2 ? iTimeoutID = setTimeout(function() { elStyle.visibility = 'visible'; }, popupDelay2) : elStyle.visibility = 'visible';

		if(isie6) hideSelect();
	}
}

function addSubMenuSide(obj)
{
	clearTimeout(iTimeoutID);
	
	removeImage();
	
	var el = document.getElementById('navTopWrapper');
	if(el) el.parentNode.removeChild(el);
	
	if(currentMenu && currentMenu != obj) hideNav(currentMenu);
	currentMenu = obj;
	
	if(menuLevelSide == 0) return;
	
	side = true;	
	
	obj.style.zIndex = 1000;
	
	var wrapper = document.createElement('div');
	wrapper.level = 1;
	wrapper.id = 'navSideWrapper';
	wrapper.className = 'wrapper';
	if(intPopupMenuHeightLevels >= 1) wrapper.className += '  intPopupMenuHeight';
	if(intPopupMenuWidthLevels >= 1) wrapper.className += ' intPopupMenuWidth';
		
	drawMenu(obj, wrapper, (intSubMenuXRelative + 2), obj.parentNode);
}

function addSubMenu(obj)
{
	clearTimeout(iTimeoutID);
	
	var parent = obj.parentNode;
	var offset = side ? intSecondaryMenuXRelative : intSecondaryMenuXRelative2;	
	
	var children = parent.childNodes;
	var nodes = children.length;
	for(var i = 0; i < nodes; i++) if(children[i] != obj) hideNav(children[i]);
	
	if((side ? (parent.level >= menuLevelSide) : (parent.level >= menuLevelTop))) return;
		
	obj.style.zIndex = 1000;  
		
	var wrapper = document.createElement('div');
	wrapper.level = (parent.level + 1);
	
	wrapper.className = 'wrapper';
	
	if(side)
	{
		if(intPopupMenuHeightLevels > parent.level) wrapper.className += '  intPopupMenuHeight';
		if(intPopupMenuWidthLevels > parent.level) wrapper.className += ' intPopupMenuWidth';
	}
	else
	{
		if(intMenuHeightLevel > parent.level) wrapper.className += '  wrapperHeight';
		if(intMenuWidthLevel > parent.level) wrapper.className += ' wrapperWidth';
	}	
	
	drawMenu(obj, wrapper, offset, parent);
}

function drawMenu(obj, wrapper, offset, parent)
{	   
	var fakeId = obj.id.replace(/t|sub|s/i,'');
	
	if(!menus[fakeId] || (obj.lastChild.className && obj.lastChild.className.indexOf('wrapper') != -1)) return; 
	  
	wrapper.innerHTML = menus[fakeId];
	wrapper.border = true;
	
	obj.appendChild(wrapper); 
	
	var elStyle = wrapper.style;
	var elClientTop = side ? intOuterMOMBorderSize : intOuterMOMBorderSize2; 
	var padding = side ?  intSecondSidePadding : intSecondSidePadding2;
	var elWidth = wrapper.offsetWidth;
	var parentWidth = (window.ie6 && wrapper.level > 1) ? (wrapper.parentNode.offsetWidth - padding) : wrapper.parentNode.offsetWidth;
	
	if(!window.ie6) elStyle.width = elWidth + 'px';	   
	if(parent.left) wrapper.left = true;	
	if((left && side && !parent.bounce) || obj.parentNode.left) 
	{
		if(window.ie6 && wrapper.level > 1) parentWidth += (padding);
		elStyle.right = (parentWidth + offset) + 'px';
	}
	else elStyle.left = (parentWidth + offset) + 'px';
	
	if(window.khtml)
	{
		var height = side ? intPopupMenuHeight : intPopupMenuHeight2;
		var level = side ? intPopupMenuHeightLevels : intMenuHeightLevel;
		if((level >= wrapper.level) && (wrapper.offsetHeight < height)) wrapper.style.height = height + 'px';
	}   
	
	if(side ? ysnMenuBounce : ysnMenuBounce2)
	{	  
		if(parent.bounce) wrapper.bounce = true;
		var elLeft = getElementPosition(wrapper).left;
		elStyle.display = 'none';
		var winWidth = getWidth();
		var winHeight = getHeight();		
		var scrollTop = getScrollTop();
		var scrollLeft = getScrollLeft();
			 
		if(((winWidth + scrollLeft - elLeft - elWidth) <= 5) && ((elLeft - elWidth) > 0))
		{
			elStyle.left = '';
			if(window.ie6) elStyle.left = '-'+ (padding + elWidth) + 'px';
			else elStyle.right = (parentWidth + offset) + 'px';
			wrapper.left = true;
			
			if(left && side) wrapper.bounce = false;
			else wrapper.bounce = true;   
		}
		else if((elLeft - scrollLeft) <= 5 && (obj.parentNode.left || (left && side)))
		{	
			elStyle.right = '';
			wrapper.left = '';
					 
			if(window.ie6 && !left) parentWidth = parentWidth - padding;
			elStyle.left = (parentWidth + offset) + 'px';
			
			if(left && side) wrapper.bounce = true;
			else wrapper.bounce = false;			
		}
		if(wrapper.bounce)
		{
			if(wrapper.className.indexOf('wrapperHeight') != -1 && !side) wrapper.className += ' bounceHeight';
			wrapper.className += ' bounce';			
			var children = wrapper.getElementsByTagName('A');
			var nodes = children.length;
			for(var i = 0; i < nodes; i++) if(children[i].className == 'SubCat') children[i].className += ' bounce';
			
			children = wrapper.getElementsByTagName('SPAN');
			nodes = children.length;
			for(var i = 0; i < nodes; i++) if(children[i].className == 'SubCatGroup') children[i].className += ' bounce';
			
			children = wrapper.getElementsByTagName('DIV');
			nodes = children.length;
			for(var i = 0; i < nodes; i++) children[i].className += ' bounceItem';
		}
		elStyle.display = 'block';
		var elTop = (getElementPosition(wrapper).top - scrollTop);
		var elHeight = (wrapper.offsetHeight);
		elStyle.display = 'none';
		if(!side) elTop += elClientTop;
		if(((winHeight - elTop - elHeight) < 10) && (elHeight < winHeight)) elStyle.top = (winHeight - elTop - elHeight - 10) + 'px';
		elStyle.display = 'block';
	}
	(popupDelay && wrapper.level == 1) ? iTimeoutID = setTimeout(function() { elStyle.visibility = 'visible'; }, popupDelay) : elStyle.visibility = 'visible';
	
	if(isie6) hideSelect();
}

function removeSubMenu(obj)
{
	clearTimeout(iTimeoutID);
	iTimeoutID = setTimeout(function() { if(!side) removeNavWrapper(); else hideNav(obj); if(isie6) showSelect(); }, side ? popdownDelay : popdownDelay2);
}

function removeNavWrapper()
{
	var el = document.getElementById('navTopWrapper');
	if(el) { el.parentNode.removeChild(el); removeImage(); }
	else removeImage();
}

function hideNav(obj)
{
   if(obj.className.indexOf('navText') != -1) obj.style.zIndex = 999;
   var el;
   if(el = obj.lastChild) if(el.className && el.className.indexOf('wrapper') != -1) obj.removeChild(el);
}

function hideSelect() 
{
	var x = document.getElementsByTagName('select');
	var nodes = x.length;
	for(var i = 0; i < nodes; i++) if(x.item(i).className != 'dontHide') x.item(i).style.visibility = 'hidden';
}

function showSelect() 
{
	var x = document.getElementsByTagName('select');
	var nodes = x.length;
	for(var i = 0; i< nodes; i++) x.item(i).style.visibility = 'visible';
}

function getElementPosition(offsetTrail) 
{
	var offsetLeft = 0;
	var offsetTop = 0;
	el = offsetTrail;
	while (offsetTrail) 
	{
		offsetLeft += offsetTrail.offsetLeft;
		offsetTop += offsetTrail.offsetTop;
		if(!window.opera && !window.khtml && offsetTrail.className.indexOf('wrapper') != -1 && offsetTrail.border) 
		{
			var elClientTop = offsetTrail.bounce ? side ? intOuterMOMBorderSizeb : intOuterMOMBorderSize2b : side ? intOuterMOMBorderSize : intOuterMOMBorderSize2;
			offsetLeft += elClientTop;
			offsetTop +=  elClientTop;								  
		}
		offsetTrail = offsetTrail.offsetParent;
	}
	
	if(window.gecko)
	{
		while (el)
		{
			if(el.style && el.style.marginTop)
			{
				margin = el.style.marginTop;
				margin = margin.substr(0, (margin.length - 2));
				if(el.offsetTop == margin)offsetTop = (offsetTop - margin);
			}
			el = el.parentNode;
		}
	}
	if (window.khtml && document.body.topMargin && document.body.leftMargin)
	{
		offsetLeft += document.body.leftMargin;
		offsetTop += document.body.topMargin;
	}
	if(window.khtml && intSubMenuY != 0) offsetTop += intSubMenuY;
	return{ left : offsetLeft, top : offsetTop };
}

function getScrollLeft()
{
	return this.pageXOffset || document.documentElement.scrollLeft;
}

function getScrollTop()
{
	return this.pageYOffset || document.documentElement.scrollTop;
}

function getWidth()
{
	if (this.khtml) return this.innerWidth;
	if (this.opera) return document.body.clientWidth;
	return document.documentElement.clientWidth;
}

function getHeight()
{
	if (this.khtml) return this.innerHeight;
	if (this.opera) return document.body.clientHeight;
	return document.documentElement.clientHeight;
}
