// Don't change these parameters
var delay       =100; /////
var menuElement =new Array ();
var usedWidth   =0;
var numOfMenus  =0;

/// ----------------------------

// check browser version
var isNC   =(document.layers) ? 1 : 0;
var isOPERA=(navigator.userAgent.indexOf('Opera')!=-1)? true : false;
var isIE   =(document.all && !isOPERA)? true : false;
var isDOM  =(document.getElementById && !isIE && !isOPERA)? true : false;

var topID =-1;
// constructor of menu elements

function menuConstructor (id, content)
{
	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.x=content [3]*1;

	if(this.x<0 && this.parentID==-1){
		this.x=initX+usedWidth;
		usedWidth=usedWidth+this.width;
	}
	else if(this.x<0 && this.parentID>-1){
		this.x= menuElement [this.parentID].x
			     +menuElement [this.parentID].width
			      - xOverlap;
	}

	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;

	var items=content[5];

	var layerBody='<table class="h" width='+this.width+' cellpadding=0 cellspacing='+borderSize+' style="border-bottom:1px solid #cccccc;">';

	for(var j=0; j<=items.length-2; j=j+2){
		var controlBlock=' onMouseOver="enterItem('+this.ID+', '+((j+2)/2-1)+');" onMouseOut="exitItem('+this.ID+', '+((j+2)/2-1)+');" ';
		layerBody += '<td class="tdmenu2pop" onMouseOver="this.bgColor=\'#F8F8F8\';" onMouseOut="this.bgColor=\'#E9E9E9\';" onclick="location=\''+ items [j+1] +'\'" height='+itemHeight+' width='+this.width+' bgcolor=\''+backColor+'\'><a href='+ items [j+1] +'>'+items [j]+'</a></td>';
		if(j<items.length - 2){
			layerBody=layerBody+ '<tr>\n';
		}else{
			layerBody=layerBody+'\n';
		}
	}

	if(!isNC){
		var layerHeader='<div id=Menu'+this.ID +' onMouseOver="enterMenu('+this.ID+');" onMouseOut="exitMenu('+this.ID+');"'+' style="width: '+this.width+'; visibility: hidden; position: absolute;z-index:2;left: '+this.x+'; top: '+this.y+';">';
	}else{
		layerHeader='<layer id=Menu'+this.ID +' onMouseOver="enterMenu('+this.ID+');" onMouseOut="exitMenu('+this.ID+');"'+' visibility=hide left='+this.x+' top ='+this.y+'>';
	}
	layerHeader += '<table width='+this.width+' cellpadding=0 cellspacing=0 border=0><tr>'+'<td bgcolor='+borderColor+'>';

	var layerFooter='</table></td></table>';

	if(!isNC)
		layerFooter=layerFooter+'</div>';
	else
		layerFooter=layerFooter+'</layer>';

	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){
	var currItemID=menuElement[menuID].currItemID;
	if(currItemID!= i & currItemID>-1){
		hide(currItemID);
	}
	var toto=-1;
	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);
			toto= 0;
		}
	}

	return toto;
}
function exitItem(menuID, itemID){
	var retour=false;
	for(var i=0; i<numOfMenus; i++){
		if(menuElement[i].parentID==menuID && menuElement [i].parentItemID==itemID){
			menuElement[i].timerID=setTimeout ('hide ('+i+')', delay);
			retour=0;
		}
	}
	return retour;
}
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){
	var retour=false;
	hide(ID);
	for(var j=0; j<numOfMenus; j++){
		if(menuElement [j].parentID==ID && menuElement [j].isOn){
			hideTree (j);
			retour=0;
		}
	}
	return retour;
}
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){document.all['Menu'+ID].style.visibility="visible";}
    else if(isNC){document.layers[ID].visibility="show";}

	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){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]);
		numOfMenus++;
	}
}

createMenuTree ();

