<!-- DYNAMICALY LOADED UL LI DHTML MENU -->
<!-- (C) 2006 InterWay, s. r. o. ALL RIGHTS RESERVED  -->
<!-- www.interway.sk -->

<!-- user settings -- >
var iway_rootMainMenuDivName = 'shopmenu';
var iway_mainMenuDelay_show = 300;
var iway_mainMenuDelay_hide = 800;
var iway_dontHideClassName='nextLevel';
var iway_ajaxRequest='/app/menu.php';

<!-- system settings, dont change -->
var iway_mainMenuRoot = false;
var iway_mainMenuZIndex = 800;
var iway_visibleULs = new Array();
var iway_loadedMenus = new Array();
var iway_activeLI=false;
var iway_menuIsActive=false;
var iway_ajaxObjectArray = new Array();

<!-- AJAX functions -->

function iway_ajaxOnCompletion(ajaxIndex, ulId)
{
	var ul = document.getElementById(ulId);
	if(ul)
	{
//		ul.style.display='none';
		var level = ul.className.replace(/[^0-9]/g, '');
		var numericId = ul.id.replace(/[^0-9]/g, '');
		var liIndex = numericId*100;
		level = level-0;   // to make '+' under int context
		ul.innerHTML = iway_ajaxObjectArray[ajaxIndex].response;
		iway_ajaxObjectArray[ajaxIndex] = false;
		var subLi = ul.getElementsByTagName('LI')[0];
		while(subLi)
		{
			if(subLi.tagName=='LI')
			{
				iway_initSubMenu(subLi, level+1, liIndex)
				liIndex++;
			}
			subLi = subLi.nextSibling;
		}
/*
		if(iway_menuIsActive && iway_activeLI.id == 'iway_listItem'+numericId)
		{
			ul.style.display='';
		}
*/
	}
}

function iway_fillSubMenuLI(id)
{
	var li = document.getElementById(id);
	numericId = id.replace(/[^0-9]/g, '');
	if(li)
	{
		var ul = document.getElementById('iway_subMenu'+numericId);
		if(ul && !iway_loadedMenus[id])
		{
			// call ajax
			var a = li.getElementsByTagName('A')[0];
			if(a)
			{
				var start = a.href.indexOf('?');
//				var end = a.href.indexOf('?', start+1);
//				if(end==-1) end = a.href.length;
//				var params = a.href.substring(start+1,end);
				var params = "?id=" + a.id + "&session=" + session;

				//alert(params);

				iway_ajaxObjectArray[iway_ajaxObjectArray.length] = new sack();
				var ajaxIndex = iway_ajaxObjectArray.length-1;
				iway_ajaxObjectArray[ajaxIndex].requestFile = iway_ajaxRequest + params;
				iway_ajaxObjectArray[ajaxIndex].onCompletion = function() { iway_ajaxOnCompletion(ajaxIndex,ul.id); };	// Specify function that will be executed after file has been found
				iway_ajaxObjectArray[ajaxIndex].runAJAX();		// Execute AJAX function
				iway_loadedMenus['iway_listItem'+numericId]=true;
			}
		}
	}
}

<!-- END AJAX functions -->

function iway_elementTopPosition(obj)
{
	  var il_a = obj.getElementsByTagName('A')[0];
	  var ret = obj.offsetTop;
	  while((obj = obj.offsetParent) != null)
	  {
		  ret += obj.offsetTop;
	  }
	  return ret;
}

function iway_elementLeftPosition(obj)
{
	  var ret = obj.offsetLeft;
	  while((obj = obj.offsetParent) != null)
	  {
		  ret += obj.offsetLeft;
	  }
	  return ret;
}

function iway_showHideSubMenu()
{
  iway_activeLI = this;
  var noHide = new Array();
  var command = 'iway_showHideSubMenuTimer("'+this.id+'")';
  window.setTimeout(command, iway_mainMenuDelay_show);
}

function iway_hideWholeMenuTimer()
{
	if(!iway_menuIsActive)
	{
		iway_hideSubMenus(new Array());
	}
}

function iway_showHideSubMenuTimer(id)
{
	if(iway_activeLI.id == id && iway_menuIsActive)
	{
		var numericId = id.replace(/[^0-9]/g, '')
		var ul = document.getElementById('iway_subMenu'+numericId);
		var noHide = new Array();
		if(ul)
		{
			ul.style.display='';
			iway_visibleULs.push(ul);
			iway_fillSubMenuLI(id);
			noHide[ul.id]=true;
		}
		// show parents
		numericId = numericId.substring(0, numericId.length-2);
		var parentId = 'iway_subMenu'+numericId;
		var parent = document.getElementById(parentId);
		while(numericId.length>0 && parent)
		{
			iway_visibleULs.push(parent);
			noHide[parent.id] = true;
			parent.style.display='';
			numericId = numericId.substring(0, numericId.length-2)
			parent = document.getElementById('iway_subMenu' + numericId);
		}
		iway_hideSubMenus(noHide);
	}
}

function iway_hideSubMenus(noHide)
{
	var newVisibleULs = new Array();
	for(a=0; a < iway_visibleULs.length; ++a)
	{
		if(noHide[iway_visibleULs[a].id])
		{
			newVisibleULs.push(iway_visibleULs[a]);
		}
		else
		{
			iway_visibleULs[a].style.display='none';
		}
	}
	iway_visibleULs=newVisibleULs;
}

function iway_mainMenuOver()
{
	iway_menuIsActive = true;
}

function iway_mainMenuOut()
{
	iway_menuIsActive = false;
	setTimeout('iway_hideWholeMenuTimer()', iway_mainMenuDelay_hide);
}

function iway_initSubMenu(objLi, level, numericId)
{
	var ul=false;
	if(objLi.id=='iway_hasSubMenu')
	{
		ul = document.createElement('UL');
		ul.innerHTML="<li><span>Nahrávam...</span></li>";
//		loadUl.id='iway_subMenu'+numericId;
//		ul.appendChild(loadLI);
//		iway_mainMenuRoot.appendChild(loadUl);
//		objLi.innerHTML += "<ul><li><span>Nahrávam...</span></li></ul>";
	}
	else
	{
		// try to process subUL if has some
		ul = objLi.getElementsByTagName('UL')[0];
	}
	objLi.id = 'iway_listItem'+numericId;
//	var ul = objLi.getElementsByTagName('UL')[0];
//	var numericId = objLi.id.replace(/[^0-9]/g, '');
	var liIndex = numericId*100;
	if(objLi.className!=iway_dontHideClassName)
	{
		objLi.onmouseover = iway_showHideSubMenu;
		if(ul)
		{
			ul.id='iway_subMenu'+numericId;
			ul.style.position='absolute';
			ul.style.zIndex=iway_mainMenuZIndex;
			ul.style.display='none';
			iway_mainMenuZIndex++;
			ul.className='iway_mainMenuBlock'+level;
			ul.onmouseover=iway_mainMenuOver;
			ul.onmouseout=iway_mainMenuOut;
			iway_mainMenuRoot.appendChild(ul);
			ul.style.top=(iway_elementTopPosition(objLi))+'px';
			ul.style.left=(iway_elementLeftPosition(objLi))+'px';
		}
	}
	if(ul)
	{
		var li = ul.getElementsByTagName('LI')[0];
		while(li)
		{
			if(li.tagName=='LI')
			{
				iway_initSubMenu(li,level+1, liIndex);
				liIndex++;
			}
			li = li.nextSibling;
		}
	}
}

function iway_initLeftMenu()
{
	
	iway_mainMenuRoot = document.getElementById(iway_rootMainMenuDivName);
	var liIndex = 1;
	if(iway_mainMenuRoot)
	{
		rootUl = iway_mainMenuRoot.getElementsByTagName('UL')[0];
		if(rootUl)
		{
			rootUl.onmouseover = iway_mainMenuOver;
			rootUl.onmouseout = iway_mainMenuOut;
			var li = rootUl.getElementsByTagName('LI')[0];
			while(li)
			{
				if(li.tagName=='LI')
				{
					iway_initSubMenu(li, 1, liIndex);
					liIndex++;
				}
				li = li.nextSibling
			}
		}
	}
}
