// Don't change these parameters
var delay = 100; /////
var menuElement = new Array ();
var usedWidth = 0;
var numOfMenus = 0;
var largestLayerH= 0;
/// ----------------------------
// check browser version
// moved to base.js
// isNC = (document.layers) ? 1 : 0;
// isOPERA = (navigator.userAgent.indexOf('Opera') >= 0)? true : false;
// isIE = (document.all && !isOPERA)? true : false;
// isDOM = (document.getElementById && !isIE && !isOPERA)? true : false;
var topID = -1;
// constructor of menu elements
function menuConstructor (id, content, DW)
{
this.ID = id;
this.parentID = content [0]*1;
this.parentItemID = content [1]*1;
// this.width = content [2]*1;
this.timerID = -1;
this.isOn = false;
this.item = new Array ();
this.currItemID = -1;
this.DW = DW;
this.x = content [3]*1;
if (this.x < 0 && this.parentID == -1)
{
this.x = initX + usedWidth + this.DW;
usedWidth = usedWidth + this.width;
}
else if (this.x < 0 && this.parentID > -1)
{
this.x = menuElement [this.parentID].x
+ menuElement [this.parentID].width
- xOverlap //+ this.DW;
// ha jobbra kilógna az almenusor
if( (this.x+this.width) > (DW+docContentW) ){
this.x = menuElement [this.parentID].x - this.width
}
}
this.y = content [4]*1;
if (this.y < 0 && this.parentID == -1)
this.y = initY;
else if (this.y < 0 && this.parentID > -1)
this.y = menuElement [this.parentID].y
+ itemHeight*this.parentItemID
+ yOverlap;
items = content [5];
this.thebgcolor = content [6];
this.thebgrollcolor = content [7];
this.thebordercolor = content [7];
itemsLength = items.length/2 // két adad (title, és url) az itemekben
thisLayerH = 0
layerBody = '';
for (j = 0; j <= items.length - 2; j = j + 2)
{
controlBlock = ' onMouseOver = "enterItem (' + this.ID + ', ' + ((j + 2)/2 - 1) + ');" onMouseOut = "exitItem (' + this.ID + ', ' + ((j + 2)/2 - 1) + ');" ';
layerBody += '';
if (j < items.length - 2)
layerBody = layerBody + '\n';
else
layerBody = layerBody + '\n';
}
thisLayerH = itemsLength*itemHeight
if(largestLayerH < itemHeight) largestLayerH = thisLayerH + 3*itemHeight // => 3 többsoros menu fér ki
if (!isNC)
layerHeader = '' +
'"
layerFooter = '';
//layerFooter = " |
záróelem |
';
if (!isNC) layerFooter = layerFooter + '';
else layerFooter = layerFooter + '';
document.writeln (layerHeader + layerBody + layerFooter);
return this;
}
function enterTopItem (ID)
{
if (topID != ID && topID != -1)
hideTree (topID);
releaseTree (ID);
topID = ID;
show (ID);
}
function exitTopItem (ID)
{
menuElement [ID].timerID = setTimeout ('hide (' + ID + ')', delay);
}
function enterItem (menuID, itemID)
{
if(allLevel){
//MM_swapImage('m'+menuID+''+itemID,'','images/m2.gif',1)
var currItemID = menuElement [menuID].currItemID;
if (currItemID != i & currItemID > -1)
hide (currItemID);
for (var i = 0; i < numOfMenus; i++)
{
if (menuElement [i].parentID == menuID &&
menuElement [i].parentItemID == itemID)
{
clearTimeout (menuElement [i].timerID);
menuElement [i].timerID = -1;
show (i);
return 0;
}
}
}
return -1;
}
function exitItem (menuID, itemID)
{
for (var i = 0; i < numOfMenus; i++)
{
if (menuElement [i].parentID == menuID &&
menuElement [i].parentItemID == itemID)
{
menuElement [i].timerID = setTimeout ('hide (' + i + ')', delay);
return 0;
}
}
}
function enterMenu (ID)
{
var parentID = menuElement [ID].parentID;
if (parentID == -1)
{
clearTimeout (menuElement [ID].timerID);
menuElement [ID].timerID = -1;
}
else
releaseTree (ID);
}
function exitMenu (ID)
{
timeoutTree (ID);
}
function hideTree (ID)
{
hide (ID);
for (var j = 0; j < numOfMenus; j++)
{
if (menuElement [j].parentID == ID &&
menuElement [j].isOn)
{
hideTree (j);
return 0;
}
}
}
function releaseTree (ID)
{
clearTimeout (menuElement [ID].timerID);
menuElement [ID].timerID = -1;
var parentID = menuElement [ID].parentID;
if (parentID > -1)
releaseTree (parentID);
}
function timeoutTree (ID)
{
menuElement [ID].timerID = setTimeout ('hide (' + ID + ')', delay);
var parentID = menuElement [ID].parentID;
if (parentID > -1)
timeoutTree (parentID);
}
function show (ID)
{
if (isDOM)
document.getElementById('Menu' + ID).style.visibility = "visible";
else if (isIE || isOPERA)
document.all['Menu' + ID].style.visibility = "visible";
else if (isNC)
document.layers[ID].visibility = "show";
dd=0; clipingMemu(ID)
//for (var i = 0; i < 100; i++)
//{
// if (menuElement [i].parentID == ID)
// {
// //menuElement [i].timerID = setTimeout ('hide (' + i + ')', delay);
// hide (i)
// return 0;
// }
//}
menuElement [ID].isOn = true;
if (menuElement [ID].parentID > -1)
menuElement [menuElement [ID].parentID].currItemID = ID;
}
function hide (ID)
{
if (isDOM)
document.getElementById('Menu' + ID).style.visibility = "hidden";
else if (isIE || isOPERA)
document.all['Menu' + ID].style.visibility = "hidden";
else if (isNC)
document.layers[ID].visibility = "hide";
menuElement [ID].isOn = false;
if (menuElement [ID].parentID > -1)
menuElement [menuElement [ID].parentID].currItemID = -1;
}
function createMenuTree ()
{
for (var i = 0; i < menuContent.length; i++)
{
menuElement [i] = new menuConstructor (i, menuContent [i], DW);
numOfMenus++;
}
}
function clipingMemu(i){
if (isDOM){
//eval('document.getElementById("Menu'+i+'").style.clip = "rect(0 auto "+dd+" 0)"');
//document.getElementById('Menu' + i).style.clip = "rect(0 auto "+dd+" 0)";
}else if (isIE || isOPERA){
//eval('document.all.Menu'+i+'.style.clip="rect(0 auto "+dd+" 0)"');
document.all['Menu' + i].style.clip="rect(0 auto "+dd+" 0)";
}else if (isNC){
//document.layers[ID].visibility = "hide";
//eval('document.Menu'+i+'.clip.bottom = dd');
document.Menu[i].clip.bottom = dd;
}
dd +=8; novel = eval(setTimeout("clipingMemu("+i+")", 10))
if(dd > largestLayerH){ clearTimeout(novel); }
}
createMenuTree ();