
function AssoloComparsaMenu(id,myConfigs,myItems) 
{
	this.Configs = {
		DeltaMenu : 0,
		IsVertical: false,
		ImgL1LineaI: "", 
		ImgL1LineaM: "", 
		ImgL1LineaF: "",
		ImgL2LineaI: "", 
		ImgL2LineaM: "", 
		ImgL2LineaF: "",
		ImgL3LineaI: "", 
		ImgL3LineaM: "", 
		ImgL3LineaF: "",
		maindiv_L1 : "",
		maindiv_L2 : "",
		maindiv_L3 : "",
		maintab_L1: "",
		maintab_L2: "",
		maintab_L3: "",
		CssL1Div : "",
		CssL1DivSel : "",
		CssL1DivOver : "",
		CssL2Div : "",
		CssL2DivSel : "",
		CssL2DivOver : "",
		CssL3Div: "",
		CssL3DivSel: "",
		CssL3DivOver: "",
		CssL1Tab : "",
		CssL2Tab : "",
		CssL3Tab : "",
		CssL1Link: "",
		CssL1LinkSel: "",
		CssL2Link: "",
		CssL2LinkSel: "",
		CssL3Link: "",
		CssL3LinkSel: "",
		L3_usa_L2: "",
        CssTdChiudi: "",
        CssBtnChiudi: ""
    };

    this.DeltaLeft = 0;
	
	if (myConfigs) {
		if (myConfigs.DeltaMenu) this.Configs.DeltaMenu  = myConfigs.DeltaMenu;
		if (myConfigs.IsVertical) this.Configs.IsVertical = myConfigs.IsVertical;
		if (myConfigs.ImgL1LineaI && (myConfigs.ImgL1LineaI != "%26nbsp%3B")) this.Configs.ImgL1LineaI = URLDecode(myConfigs.ImgL1LineaI);
		if (myConfigs.ImgL1LineaM && (myConfigs.ImgL1LineaM != "%26nbsp%3B")) this.Configs.ImgL1LineaM = URLDecode(myConfigs.ImgL1LineaM);
		if (myConfigs.ImgL1LineaF && (myConfigs.ImgL1LineaF != "%26nbsp%3B")) this.Configs.ImgL1LineaF = URLDecode(myConfigs.ImgL1LineaF);
		if (myConfigs.ImgL2LineaI && (myConfigs.ImgL2LineaI != "%26nbsp%3B")) this.Configs.ImgL2LineaI = URLDecode(myConfigs.ImgL2LineaI);
		if (myConfigs.ImgL2LineaM && (myConfigs.ImgL2LineaM != "%26nbsp%3B")) this.Configs.ImgL2LineaM = URLDecode(myConfigs.ImgL2LineaM);
		if (myConfigs.ImgL2LineaF && (myConfigs.ImgL2LineaF != "%26nbsp%3B")) this.Configs.ImgL2LineaF = URLDecode(myConfigs.ImgL2LineaF);
		if (myConfigs.ImgL3LineaI && (myConfigs.ImgL3LineaI != "%26nbsp%3B")) this.Configs.ImgL3LineaI = URLDecode(myConfigs.ImgL3LineaI);
		if (myConfigs.ImgL3LineaM && (myConfigs.ImgL3LineaM != "%26nbsp%3B")) this.Configs.ImgL3LineaM = URLDecode(myConfigs.ImgL3LineaM);
		if (myConfigs.ImgL3LineaF && (myConfigs.ImgL3LineaF != "%26nbsp%3B")) this.Configs.ImgL3LineaF = URLDecode(myConfigs.ImgL3LineaF);
		if (myConfigs.maindiv_L1) this.Configs.maindiv_L1 = myConfigs.maindiv_L1;
		if (myConfigs.maindiv_L2) this.Configs.maindiv_L2 = myConfigs.maindiv_L2;
		if (myConfigs.maindiv_L3) this.Configs.maindiv_L3 = myConfigs.maindiv_L3;
		if (myConfigs.maintab_L1) this.Configs.maintab_L1 = myConfigs.maintab_L1;
		if (myConfigs.maintab_L2) this.Configs.maintab_L2 = myConfigs.maintab_L2;
		if (myConfigs.maintab_L3) this.Configs.maintab_L3 = myConfigs.maintab_L3;
		if (myConfigs.CssL1Div) this.Configs.CssL1Div = myConfigs.CssL1Div;
		if (myConfigs.CssL2Div) this.Configs.CssL2Div = myConfigs.CssL2Div;
		if (myConfigs.CssL3Div) this.Configs.CssL3Div = myConfigs.CssL3Div;
		if (myConfigs.CssL1Tab) this.Configs.CssL1Tab = myConfigs.CssL1Tab;
		if (myConfigs.CssL2Tab) this.Configs.CssL2Tab = myConfigs.CssL2Tab;
		if (myConfigs.CssL3Tab) this.Configs.CssL3Tab = myConfigs.CssL3Tab;
		if (myConfigs.CssL1Link) this.Configs.CssL1Link = myConfigs.CssL1Link;
		if (myConfigs.CssL1LinkSel) this.Configs.CssL1LinkSel = myConfigs.CssL1LinkSel;
		if (myConfigs.CssL2Link) this.Configs.CssL2Link = myConfigs.CssL2Link;
		if (myConfigs.CssL2LinkSel) this.Configs.CssL2LinkSel = myConfigs.CssL2LinkSel;
		if (myConfigs.CssL3Link) this.Configs.CssL3Link = myConfigs.CssL3Link;
		if (myConfigs.CssL3LinkSel) this.Configs.CssL3LinkSel = myConfigs.CssL3LinkSel;
		if (myConfigs.L3_usa_L2) this.Configs.L3_usa_L2 = myConfigs.L3_usa_L2;
		if (myConfigs.CssL1DivSel) this.Configs.CssL1DivSel = myConfigs.CssL1DivSel;
		if (myConfigs.CssL2DivSel) this.Configs.CssL2DivSel = myConfigs.CssL2DivSel;
		if (myConfigs.CssL3DivSel) this.Configs.CssL3DivSel = myConfigs.CssL3DivSel;
		if (myConfigs.CssL1DivOver) this.Configs.CssL1DivOver = myConfigs.CssL1DivOver;
		if (myConfigs.CssL2DivOver) this.Configs.CssL2DivOver = myConfigs.CssL2DivOver;
		if (myConfigs.CssL3DivOver) this.Configs.CssL3DivOver = myConfigs.CssL3DivOver;
		if (myConfigs.CssTdChiudi) this.Configs.CssTdChiudi = myConfigs.CssTdChiudi;
		if (myConfigs.CssBtnChiudi) this.Configs.CssBtnChiudi = myConfigs.CssBtnChiudi;
	}
    
	this.ItemsMenu = myItems;
	this.MenuDIVID  = id;
	this.MenuDIV = document.getElementById(id);
	if (this.Configs.maindiv_L1) {
		this.MenuDIV.className = this.Configs.maindiv_L1;
	}
	this.MakeMainMenu();
	
	var oSelf = this;
	
	function myResize(ev)
	{
		oSelf.doResize(ev);
	}
	
	try {
		window.addEventListener('resize',myResize,true);
	} catch(err) {
		window.attachEvent('onresize', myResize);
	}

    setTimeout( function(){ oSelf.doResize(); }, 10);
//    setTimeout( function(){ alert('OpenALL'); oSelf.OpenALL(); }, 5000);
}

AssoloComparsaMenu.prototype.LookForItemClick = function(ItemsMenu, itemid)
{
	for (var i = 0; i < ItemsMenu.length; i++) {
		if (ItemsMenu[i].id == itemid) {
			if (ItemsMenu[i].GoToLink) {
				document.location = str_replace("&amp;", "&", URLDecode(ItemsMenu[i].GoToLink));				
			} else if (ItemsMenu[i].GoToJs) {
				var myJs = URLDecode(ItemsMenu[i].GoToJs);
				eval(myJs);
                                this.CloseALL();
			}
			break;
		} else if (isdefined(ItemsMenu[i].SubMenu)) {
//			this.LookForItemClick(ItemsMenu[i].SubMenu, itemid);
		}
	}
}

AssoloComparsaMenu.prototype.HandleClick = function(itemid) 
{
	this.LookForItemClick(this.ItemsMenu, itemid);
}

AssoloComparsaMenu.prototype.MakeMainMenu = function() 
{
	this.MenuTable   = document.createElement("table");
	this.MenuTable.border="0";
	this.MenuTable.cellPadding="0";
	this.MenuTable.cellSpacing="0";
	if (this.Configs.maintab_L1) {
		this.MenuTable.className = this.Configs.maintab_L1;
	}
	
	if (!this.Configs.IsVertical) {
		var MenuTableRow = this.MenuTable.insertRow(0);
	} else {
		var MenuTableRow;
	}

	var CurCell = null;
	var CurCellDiv = null;
	var CurLink = null;
	var oSelf = this;

	for (var i = 0; i < this.ItemsMenu.length; i++) {
		var CurId = "ACM_item_"+this.MenuDIVID+"_"+i;
		this.ItemsMenu[i].id = CurId;

		if (!this.Configs.IsVertical) 
		{
			if (i == 0) {
				if (this.Configs.ImgL1LineaI) {
					CurCell = MenuTableRow.insertCell(-1);
					CurCell.innerHTML = this.Configs.ImgL1LineaI;
				}
			} else {
				if (this.Configs.ImgL1LineaM) {
					CurCell = MenuTableRow.insertCell(-1);
					CurCell.innerHTML = this.Configs.ImgL1LineaM;
				}
			}
			CurCell = MenuTableRow.insertCell(-1);
		}
		else 
		{
			if (i == 0) {
				if (this.Configs.ImgL1LineaI) {
					MenuTableRow = this.MenuTable.insertRow(-1);
					CurCell = MenuTableRow.insertCell(0);
					CurCell.innerHTML = this.Configs.ImgL1LineaI;
				}
			} else {
				if (this.Configs.ImgL1LineaM) {
					MenuTableRow = this.MenuTable.insertRow(-1);
					CurCell = MenuTableRow.insertCell(0);
					CurCell.innerHTML = this.Configs.ImgL1LineaM;
				}
			}
		
			MenuTableRow = this.MenuTable.insertRow(-1);
			CurCell = MenuTableRow.insertCell(0);
		}
		
		CurCellDiv = document.createElement("div");
		CurCellDiv.id = CurId;
        CurCellDiv.onclick = function (ev) { oSelf.OpenMenu(this.id); }    
		CurCellDiv.style.cursor = "pointer";
        CurCellDiv.className = this.Configs.CssL1Div;

        this.ItemsMenu[i].CurCellDiv = CurCellDiv;
	
		if (this.ItemsMenu[i].GoToLink) {
		
			if (this.ItemsMenu[i].Icon) {
				CurCellDiv.innerHTML = "<table border='0' cellpadding='0' cellspacing='0' "+(this.Configs.CssL1Tab?"class='"+this.Configs.CssL1Tab+"'":"")+"><tr><td>"+this.ItemsMenu[i].Icon+"</td><td>"+
										"<a href=\""+str_replace("&amp;", "&", URLDecode(this.ItemsMenu[i].GoToLink))+"\" class=\""+(this.ItemsMenu[i].IsSelected?this.Configs.CssL1LinkSel:this.Configs.CssL1Link)+"\">"+URLDecode(this.ItemsMenu[i].Content)+"</a>"+
										"</td></tr></table>";
			} else {
				CurCellDiv.innerHTML = "<a href=\""+str_replace("&amp;", "&", URLDecode(this.ItemsMenu[i].GoToLink))+"\" class=\""+(this.ItemsMenu[i].IsSelected?this.Configs.CssL1LinkSel:this.Configs.CssL1Link)+"\">"+URLDecode(this.ItemsMenu[i].Content)+"</a>";
			}
		} else {
			if (this.ItemsMenu[i].Icon) {
				CurCellDiv.innerHTML = "<table border='0' cellpadding='0' cellspacing='0' "+(this.Configs.CssL1Tab?"class='"+this.Configs.CssL1Tab+"'":"")+"><tr><td>"+this.ItemsMenu[i].Icon+"</td><td>"+
										URLDecode(this.ItemsMenu[i].Content)+
										"</td></tr></table>";
			} else {
				CurCellDiv.innerHTML = URLDecode(this.ItemsMenu[i].Content);
			}
		}
		CurCell.appendChild(CurCellDiv);
		
		if (!this.Configs.IsVertical) 
		{
			if (i == (this.ItemsMenu.length-1)) {
				if (this.Configs.ImgL1LineaF) {
					CurCell = MenuTableRow.insertCell(-1);
					CurCell.innerHTML = this.Configs.ImgL1LineaF;
				}
			}
		}
		else 
		{
			if (i == (this.ItemsMenu.length-1)) {
				if (this.Configs.ImgL1LineaF) {
					MenuTableRow = this.MenuTable.insertRow(-1);
					CurCell = MenuTableRow.insertCell(0);
					CurCell.innerHTML = this.Configs.ImgL1LineaF;
				}
			}
		}		
	}

	this.MenuDIV.appendChild(this.MenuTable);
    var Box = GetXYWH(this.MenuDIV);
    this.toBeOpened = false;

	for (var i = 0; i < this.ItemsMenu.length; i++) 
	{
		var CurId = "ACM_item_"+this.MenuDIVID+"_"+i;
	
		if (isdefined(this.ItemsMenu[i].SubMenu)) {
			this.ItemsMenu[i].titleLeft   = Box[0] + this.DeltaLeft;
			this.ItemsMenu[i].titleRight  = Box[0]+Box[2];
			this.ItemsMenu[i].titleTop    = Box[1];
			this.ItemsMenu[i].titleBottom = Box[1]+Box[3];
			this.MakeSubMenu(this.ItemsMenu[i], CurId, Box, !this.Configs.IsVertical, 2);
		} else {
			this.ItemsMenu[i].titleLeft   = Box[0] + this.DeltaLeft;
			this.ItemsMenu[i].titleRight  = Box[0]+Box[2];
			this.ItemsMenu[i].titleTop    = Box[1];// + this.DeltaTop;
			this.ItemsMenu[i].titleBottom = Box[1]+Box[3];
		}
	}
    
    if (this.toBeOpened) {
        //this.OpenMenu(this.toBeOpened);
        this.toBeOpened = false;
    }
}

AssoloComparsaMenu.prototype.MakeSubMenu = function(CurMenu, myCurId, Box, IsSotto, Level) 
{
	CurMenu.id 		  = myCurId;

	CurMenu.SubMenuDiv = document.createElement("div");

	if ((this.Configs.L3_usa_L2 == "1") || (Level == 2)) {
		if (this.Configs.maindiv_L2) {
			CurMenu.SubMenuDiv.className = this.Configs.maindiv_L2;
		}
	} else {
		if (this.Configs.maindiv_L3) {
			CurMenu.SubMenuDiv.className = this.Configs.maindiv_L3;
		}
	}
	
	CurMenu.SubMenuDiv.style.position = "absolute";
    CurMenu.SubMenuDiv.style.visibility="hidden";

	if (IsSotto) {
		CurMenu.SubMenuDiv.style.left = Box[0]+"px";
		CurMenu.SubMenuDiv.style.top  = (Box[1]+Box[3]-this.Configs.DeltaMenu)+"px";
	} else {
		CurMenu.SubMenuDiv.style.left = (Box[0]+Box[2]-this.Configs.DeltaMenu)+"px";
		CurMenu.SubMenuDiv.style.top  = Box[1]+"px";
	}
	
	CurMenu.SubMenuTable = document.createElement("table");
	CurMenu.SubMenuTable.border="0";
	CurMenu.SubMenuTable.cellPadding="0";
	CurMenu.SubMenuTable.cellSpacing="0";
	
	if ((this.Configs.L3_usa_L2 == "1") || (Level == 2)) {
		if (this.Configs.maintab_L2) {
			CurMenu.SubMenuTable.className = this.Configs.maintab_L2;
		}
	} else {
		if (this.Configs.maintab_L3) {
			CurMenu.SubMenuTable.className = this.Configs.maintab_L3;
		}
 	}

	var oSelf = this;
	var ImgLineaI;
	var ImgLineaM;
	var ImgLineaF;
    var totLinee;
    var CurRow;
    var CurCell;
    var daFare;
    var curChiudi;

	for (var i = 0; i < CurMenu.SubMenu.length; i++) 
	{
		if ((this.Configs.L3_usa_L2 == "1") || (Level == 2)) {
			ImgLineaI = this.Configs.ImgL2LineaI;
			ImgLineaM = this.Configs.ImgL2LineaM;
			ImgLineaF = this.Configs.ImgL2LineaF;
		} else {
			ImgLineaI = this.Configs.ImgL3LineaI;
			ImgLineaM = this.Configs.ImgL3LineaM;
			ImgLineaF = this.Configs.ImgL3LineaF;
		}
    
		var CurId = myCurId+"_"+i;
		CurMenu.SubMenu[i].id = CurId;

        totLinee = CurMenu.SubMenu.length;
        if (ImgLineaM) {
            totLinee = totLinee * 2 - 1;
        }
        if (ImgLineaI) {
            totLinee += 1;
        }
        if (ImgLineaF) {
            totLinee += 1;
        }

        var CurRow = false;
		if (i == 0) {
			if (ImgLineaI) {
				CurRow = CurMenu.SubMenuTable.insertRow(-1);
				CurCell = CurRow.insertCell(0);
				CurCell.innerHTML = ImgLineaI;
			}
		} else {
			if (ImgLineaM) {
				CurRow = CurMenu.SubMenuTable.insertRow(-1);
				CurCell = CurRow.insertCell(0);
				CurCell.innerHTML = ImgLineaM;
			}
		}

        daFare = false;
        if (i == 0) {
            if (CurRow) {
                if (totLinee>0) {
                    CurCell = CurRow.insertCell(-1);
                    CurCell.rowSpan = totLinee;
                    CurCell.className = this.Configs.CssTdChiudi;
                    //CurCell.innerHTML = '[chiudi]';
                    curChiudi = document.createElement("input");
                    curChiudi.type = 'button';
                    curChiudi.className = this.Configs.CssBtnChiudi;
                    curChiudi.value = ' ';
                    curChiudi.idx = myCurId;
                    CurCell.appendChild(curChiudi);
                    curChiudi.onclick = function() { oSelf.hideThisMenu(this.idx) }
                }
            } else {
                if (totLinee>0) {
                    daFare = true;
                }
            }
        }

		CurRow = CurMenu.SubMenuTable.insertRow(-1);
		CurCell = CurRow.insertCell(0);
		
		CurCellDiv = document.createElement("div");
		CurCellDiv.id = CurId;
        CurMenu.SubMenu[i].CurCellDiv = CurCellDiv;

		if ((this.Configs.L3_usa_L2 == "1") || (Level == 2)) {
			if (CurMenu.SubMenu[i].IsSelected) {
				CurCellDiv.className = this.Configs.CssL2DivSel;
				if (this.Configs.CssL2DivOver) {
					CurCellDiv.onmouseover = function () { this.className=oSelf.Configs.CssL2DivOver };
					CurCellDiv.onmouseout  = function () { this.className=oSelf.Configs.CssL2DivSel };
				}
			} else {
				CurCellDiv.className = this.Configs.CssL2Div;
				if (this.Configs.CssL2DivOver) {
					CurCellDiv.onmouseover = function () { this.className=oSelf.Configs.CssL2DivOver };
					CurCellDiv.onmouseout  = function () { this.className=oSelf.Configs.CssL2Div };
				}
			}
		} else {
			if (CurMenu.SubMenu[i].IsSelected) {
				CurCellDiv.className = this.Configs.CssL3DivSel;
				if (this.Configs.CssL3DivOver) {
					CurCellDiv.onmouseover = function () { this.className=oSelf.Configs.CssL3DivOver };
					CurCellDiv.onmouseout  = function () { this.className=oSelf.Configs.CssL3DivSel };
				}
			} else {
				CurCellDiv.className = this.Configs.CssL3Div;
				if (this.Configs.CssL3DivOver) {
					CurCellDiv.onmouseover = function () { this.className=oSelf.Configs.CssL3DivOver };
					CurCellDiv.onmouseout  = function () { this.className=oSelf.Configs.CssL3Div };
				}
			}
		}

        CurCellDiv.onclick = function (ev) { oSelf.OpenMenu(this.id); }    

		if ((this.Configs.L3_usa_L2 == "1") || (Level == 2)) {
			if (CurMenu.SubMenu[i].GoToLink) {
				if (CurMenu.SubMenu[i].Icon) {
					CurCellDiv.innerHTML = "<table border='0' cellpadding='0' cellspacing='0' "+(this.Configs.CssL2Tab?"class='"+this.Configs.CssL2Tab+"'":"")+"><tr><td>"+CurMenu.SubMenu[i].Icon+"</td><td>"+
											"<a href=\""+str_replace("&amp;", "&", URLDecode(CurMenu.SubMenu[i].GoToLink))+"\" class=\""+(CurMenu.SubMenu[i].IsSelected?this.Configs.CssL2LinkSel:this.Configs.CssL2Link)+"\">"+URLDecode(CurMenu.SubMenu[i].Content)+"</a>"+
											"</td></tr></table>";
				} else {
					CurCellDiv.innerHTML = "<a href=\""+str_replace("&amp;", "&", URLDecode(CurMenu.SubMenu[i].GoToLink))+"\" class=\""+(CurMenu.SubMenu[i].IsSelected?this.Configs.CssL2LinkSel:this.Configs.CssL2Link)+"\">"+URLDecode(CurMenu.SubMenu[i].Content)+"</a>";
				}
			} else {
				if (CurMenu.SubMenu[i].Icon) {
					CurCellDiv.innerHTML = "<table border='0' cellpadding='0' cellspacing='0' "+(this.Configs.CssL2Tab?"class='"+this.Configs.CssL2Tab+"'":"")+"><tr><td>"+CurMenu.SubMenu[i].Icon+"</td><td>"+
											URLDecode(CurMenu.SubMenu[i].Content)+
											"</td></tr></table>";
				} else {
					CurCellDiv.innerHTML = URLDecode(CurMenu.SubMenu[i].Content);
				}
			}
			//CurCellDiv.onclick = function() { oSelf.HandleClick(this.id) }
			CurCellDiv.style.cursor = "pointer";
		} else {
			if (CurMenu.SubMenu[i].GoToLink) {
				if (CurMenu.SubMenu[i].Icon) {
					CurCellDiv.innerHTML = "<table border='0' cellpadding='0' cellspacing='0' "+(this.Configs.CssL3Tab?"class='"+this.Configs.CssL3Tab+"'":"")+"><tr><td>"+CurMenu.SubMenu[i].Icon+"</td><td>"+
											"<a href=\""+str_replace("&amp;", "&", URLDecode(CurMenu.SubMenu[i].GoToLink))+"\" class=\""+(CurMenu.SubMenu[i].IsSelected?this.Configs.CssL3LinkSel:this.Configs.CssL3Link)+"\">"+URLDecode(CurMenu.SubMenu[i].Content)+"</a>"+
											"</td></tr></table>";
				} else {
					CurCellDiv.innerHTML = "<a href=\""+str_replace("&amp;", "&", URLDecode(CurMenu.SubMenu[i].GoToLink))+"\" class=\""+(CurMenu.SubMenu[i].IsSelected?this.Configs.CssL3LinkSel:this.Configs.CssL3Link)+"\">"+URLDecode(CurMenu.SubMenu[i].Content)+"</a>";
				}
			} else {
				if (CurMenu.SubMenu[i].Icon) {
					CurCellDiv.innerHTML = "<table border='0' cellpadding='0' cellspacing='0' "+(this.Configs.CssL3Tab?"class='"+this.Configs.CssL3Tab+"'":"")+"><tr><td>"+CurMenu.SubMenu[i].Icon+"</td><td>"+
											URLDecode(CurMenu.SubMenu[i].Content)+
											"</td></tr></table>";
				} else {
					CurCellDiv.innerHTML = URLDecode(CurMenu.SubMenu[i].Content);
				}
			}
			//CurCellDiv.onclick = function() { oSelf.HandleClick(this.id) }
			CurCellDiv.style.cursor = "pointer";
		}

		CurCell.appendChild(CurCellDiv);

        if (daFare) {
            CurCell = CurRow.insertCell(-1);
            CurCell.rowSpan = totLinee;
            CurCell.className = this.Configs.CssTdChiudi;
            //CurCell.innerHTML = '[chiudi]';

            curChiudi = document.createElement("input");
            curChiudi.type = 'button';
            curChiudi.className = this.Configs.CssBtnChiudi;
            curChiudi.value = ' ';
            curChiudi.idx = myCurId;
            CurCell.appendChild(curChiudi);
            curChiudi.onclick = function() { oSelf.hideThisMenu(this.idx) }
        }

		if (i == (CurMenu.SubMenu.length-1)) {
			if (ImgLineaF) {
				CurRow = CurMenu.SubMenuTable.insertRow(-1);
				CurCell = CurRow.insertCell(0);
				CurCell.innerHTML = ImgLineaF;
			}
		}		
	}
	
	CurMenu.SubMenuDiv.appendChild(CurMenu.SubMenuTable);
	document.body.appendChild(CurMenu.SubMenuDiv);
	
	var Box = GetXYWH(CurMenu.SubMenuDiv.firstChild);
	CurMenu.SubMenuDiv.style.width  = parseInt(Box[2])+"px";
	CurMenu.SubMenuDiv.style.height = parseInt(Box[3])+"px";
	CurMenu.boxLeft   = Box[0] + this.DeltaLeft;
	CurMenu.boxRight  = Box[0]+Box[2];
	CurMenu.boxTop    = Box[1];// + this.DeltaTop;
	CurMenu.boxBottom = Box[1]+Box[3];

	for (var i = 0; i < CurMenu.SubMenu.length; i++) 
	{
		var Box = GetXYWH(document.getElementById(CurMenu.SubMenu[i].id));

		CurMenu.SubMenu[i].titleLeft   = Box[0] + this.DeltaLeft;
		CurMenu.SubMenu[i].titleRight  = Box[0]+Box[2];
		CurMenu.SubMenu[i].titleTop    = Box[1];
		CurMenu.SubMenu[i].titleBottom = Box[1]+Box[3];

		if (isdefined(CurMenu.SubMenu[i].SubMenu)) {
			var CurId = myCurId+"_"+i;
			this.MakeSubMenu(CurMenu.SubMenu[i], CurId, Box, false, Level+1);
		} else if (CurMenu.SubMenu[i].IsSelected) {
            this.toBeOpened = CurMenu.SubMenu[i].id;
        }
	}
}

AssoloComparsaMenu.prototype.ClickMultiMenu = function(evt)
{
	var returnVar = true;

	ev = evt || window.event;

	if (ev.pageX || ev.pageY) {
	  mousex = ev.pageX;
	  mousey = ev.pageY;
	} else if (ev.clientX || ev.clientY) {
	  mousex = ev.clientX;
	  mousey = ev.clientY;
      mousex += (document.body.scrollLeft + document.documentElement.scrollLeft);
      mousey += (document.body.scrollTop + document.documentElement.scrollTop);
	}
	

	var idx = "";
	for (var i = 0; i < this.ItemsMenu.length; i++) 
	{
		if ((this.ItemsMenu[i].titleLeft || this.ItemsMenu[i].titleRight) && (this.ItemsMenu[i].titleTop || this.ItemsMenu[i].titleBottom)) {
			if ( (mousex > this.ItemsMenu[i].titleLeft) && (mousex < this.ItemsMenu[i].titleRight) && (mousey > this.ItemsMenu[i].titleTop) && (mousey < this.ItemsMenu[i].titleBottom) ) {
				idx = this.ItemsMenu[i].id;
			}
		}

		if (idx != "") {
			break;
		}
	
		if (isdefined(this.ItemsMenu[i].SubMenu)) {
			idx = this.CheckMultiMenuRec(mousex, mousey, this.ItemsMenu[i]);
			if (idx != "") {
                returnVar = false;
				break;
			}
		}
	}

	this.OpenMenu(idx);
/*
    if (returnVar) {
        return true;
    } else {*/
        ev.cancelBubble = true;
        if (ev.stopPropagation) ev.stopPropagation();

        return false;
//    }
}

AssoloComparsaMenu.prototype.CheckMultiMenu = function(evt)
{
	ev = evt || window.event;

	if (ev.pageX || ev.pageY) {
	  mousex = ev.pageX;
	  mousey = ev.pageY;
	} else if (ev.clientX || ev.clientY) {
	  mousex = ev.clientX;
	  mousey = ev.clientY;
      mousex += (document.body.scrollLeft + document.documentElement.scrollLeft);
      mousey += (document.body.scrollTop + document.documentElement.scrollTop);
	}
	
	var idx = "";
	for (var i = 0; i < this.ItemsMenu.length; i++) 
	{
		if ((this.ItemsMenu[i].titleLeft || this.ItemsMenu[i].titleRight) && (this.ItemsMenu[i].titleTop || this.ItemsMenu[i].titleBottom)) {
			if ( (mousex > this.ItemsMenu[i].titleLeft) && (mousex < this.ItemsMenu[i].titleRight) && (mousey > this.ItemsMenu[i].titleTop) && (mousey < this.ItemsMenu[i].titleBottom) ) {
				idx = this.ItemsMenu[i].id;
			}
		}

		if (idx != "") {
			break;
		}
	
		if (isdefined(this.ItemsMenu[i].SubMenu)) {
			idx = this.CheckMultiMenuRec(mousex, mousey, this.ItemsMenu[i]);
			if (idx != "") {
				break;
			}
		}
	}
    
	this.OpenMenu(idx);
}

AssoloComparsaMenu.prototype.CheckMultiMenuRec = function(mousex, mousey, CurItem)
{
	var idx = ""; 
	
	if ((CurItem.titleLeft || CurItem.titleRight) && (CurItem.titleTop || CurItem.titleBottom)) {
		if ( (mousex >= CurItem.titleLeft) && (mousex <= CurItem.titleRight) && (mousey >= CurItem.titleTop) && (mousey <= CurItem.titleBottom) ) {
			idx = CurItem.id;
		}
	}

	if (idx == "") {
		if (CurItem.SubMenuDiv) {
			if (CurItem.SubMenuDiv.style.visibility=="visible") {
				if (isdefined(CurItem.SubMenu)) {
					for (var i = 0; i < CurItem.SubMenu.length; i++) {
						idx = this.CheckMultiMenuRec(mousex, mousey, CurItem.SubMenu[i]);
						if (idx != "") {
							break;
						}
					}
				}
				if (idx == "") {
					if ((CurItem.boxLeft || CurItem.boxRight) && (CurItem.boxTop || CurItem.boxBottom)) {
						if ( (mousex >= CurItem.boxLeft) && (mousex <= CurItem.boxRight) && (mousey >= CurItem.boxTop) && (mousey <= CurItem.boxBottom) ) {
							idx = CurItem.id;
						}
					}
				}
			}
		}
    }
	
	return idx;
}

AssoloComparsaMenu.prototype.OpenMenuRec = function(ItemsMenu, itemid, isInline, level)
{
	for (var i = 0; i < ItemsMenu.length; i++) 
	{
		if (itemid == "") {
			isParentOf = -1;
			isChildOf = -1;
			isItself = false;
		} else if (itemid == ItemsMenu[i].id) {
			isParentOf = 1;
			isChildOf = 1;
			isItself = true;
		} else {
			isItself = false;
			isParentOf = strpos(ItemsMenu[i].id, itemid);
			isChildOf = strpos(itemid, ItemsMenu[i].id);
		}

		if ((!isInline) || ((isParentOf === -1) && (isChildOf === -1))) {
			curDisplay = "hidden";
			curInline = false;
			curItemid = itemid;
		} else {
			curDisplay = "visible";
			curInline = true;
			curItemid = itemid;
		}

		if (isdefined(ItemsMenu[i].SubMenuDiv)) {
			ItemsMenu[i].SubMenuDiv.style.visibility = curDisplay;
            if (curDisplay == "visible") {
                ItemsMenu[i].SubMenuDiv.style.zIndex = getMaxZIndex(document.body, ItemsMenu[i].SubMenuDiv)+1;
                ItemsMenu[i].CurCellDiv.className = ((level==1)?this.Configs.CssL1DivSel:(((this.Configs.L3_usa_L2 == "1") || (level==2))?this.Configs.CssL2DivSel:this.Configs.CssL3DivSel));
            } else {
                ItemsMenu[i].CurCellDiv.className = ((level==1)?this.Configs.CssL1Div:(((this.Configs.L3_usa_L2 == "1") || (level==2))?this.Configs.CssL2Div:this.Configs.CssL3Div));
            }
		} else {
            ItemsMenu[i].CurCellDiv.className = ((level==1)?this.Configs.CssL1Div:(((this.Configs.L3_usa_L2 == "1") || (level==2))?this.Configs.CssL2Div:this.Configs.CssL3Div));
        }

		if (isdefined(ItemsMenu[i].SubMenu)) {
			if ((!curInline) || (ItemsMenu[i].id != itemid)) {
				this.OpenMenuRec(ItemsMenu[i].SubMenu, curItemid, curInline, level+1);
			}
        }
	}
    if (!this.toBeOpened) {
        this.LookForItemClick(ItemsMenu, itemid);
    }
}

AssoloComparsaMenu.prototype.OpenMenu = function(itemid) 
{
	this.OpenMenuRec(this.ItemsMenu, itemid, true, 1);
}


AssoloComparsaMenu.prototype.hideThisMenu = function(itemid) 
{
	this.hideThisMenuRec(this.ItemsMenu, itemid, 1);
}

AssoloComparsaMenu.prototype.hideThisMenuRec = function(ItemsMenu, itemid, level)
{
	for (var i = 0; i < ItemsMenu.length; i++) {
		if (itemid == ItemsMenu[i].id) {
            ItemsMenu[i].SubMenuDiv.style.visibility = 'hidden';
            ItemsMenu[i].CurCellDiv.className = ((level==1)?this.Configs.CssL1Div:(((this.Configs.L3_usa_L2 == "1") || (level==2))?this.Configs.CssL2Div:this.Configs.CssL3Div));
			break;
        } else if (isdefined(ItemsMenu[i].SubMenu)) {
            this.hideThisMenuRec(ItemsMenu[i].SubMenu, itemid, level+1);
        }
    }
}

AssoloComparsaMenu.prototype.doResize = function(evt)
{
    var Box = GetXYWH(this.MenuDIV);
    this.DeltaLeft=Box[0]-this.DeltaLeft;
	this.doResizeRec(this.ItemsMenu);
}

AssoloComparsaMenu.prototype.doResizeRec = function(ItemsMenu)
{
    var Box = GetXYWH(this.MenuDIV);

    for (var i = 0; i < ItemsMenu.length; i++) 
    {
		if (isdefined(ItemsMenu[i].SubMenu)) 
        {
            ItemsMenu[i].boxLeft   = Box[0] + this.DeltaLeft;
            ItemsMenu[i].boxRight  = Box[0]+Box[2];
            ItemsMenu[i].boxTop    = Box[1];// + this.DeltaTop;
            ItemsMenu[i].boxBottom = Box[1]+Box[3];

            if (ItemsMenu == this.ItemsMenu) {
                if (this.Configs.IsVertical) {
                    ItemsMenu[i].titleLeft   = Box[0];
                    ItemsMenu[i].titleRight  = Box[0]+Box[2];
                    ItemsMenu[i].titleTop    = Box[1];
                    ItemsMenu[i].titleBottom = Box[1]+Box[3];

                    ItemsMenu[i].SubMenuDiv.style.left = (Box[0]+Box[2])+"px";
                    ItemsMenu[i].SubMenuDiv.style.top  = (Box[1])+"px";
                } else {
                    ItemsMenu[i].titleLeft   = Box[0];
                    ItemsMenu[i].titleRight  = Box[0]+Box[2];
                    ItemsMenu[i].titleTop    = Box[1];
                    ItemsMenu[i].titleBottom = Box[1]+Box[3];

                    ItemsMenu[i].SubMenuDiv.style.left = (Box[0])+"px";
                    ItemsMenu[i].SubMenuDiv.style.top  = (Box[1] + Box[3])+"px";
                }
            } else {
                ItemsMenu[i].titleLeft   = Box[0];
                ItemsMenu[i].titleRight  = Box[0]+Box[2];
                ItemsMenu[i].titleTop    = Box[1];
                ItemsMenu[i].titleBottom = Box[1]+Box[3];

                ItemsMenu[i].SubMenuDiv.style.left = (Box[0]+Box[2])+"px";
                ItemsMenu[i].SubMenuDiv.style.top  = (Box[1])+"px";
            }
            this.doResizeRec(ItemsMenu[i].SubMenu, Box);
        } else {
			ItemsMenu[i].titleLeft   = Box[0];
			ItemsMenu[i].titleRight  = Box[0]+Box[2];
			ItemsMenu[i].titleTop    = Box[1];
			ItemsMenu[i].titleBottom = Box[1]+Box[3];
		}
	}
}

AssoloComparsaMenu.prototype.OpenALL = function() 
{
	this.OpenMenuALL(this.ItemsMenu);
}

AssoloComparsaMenu.prototype.OpenMenuALL = function(ItemsMenu)
{
	for (var i = 0; i < ItemsMenu.length; i++) {
		if (isdefined(ItemsMenu[i].SubMenuDiv)) {
			ItemsMenu[i].SubMenuDiv.style.visibility = "visible";
            ItemsMenu[i].SubMenuDiv.style.zIndex = getMaxZIndex(document.body, ItemsMenu[i].SubMenuDiv)+1;
		}
		if (isdefined(ItemsMenu[i].SubMenu)) {
            this.OpenMenuALL(ItemsMenu[i].SubMenu);
		}
	}
}


AssoloComparsaMenu.prototype.CloseALL = function()
{
	this.CloseMenuALL(this.ItemsMenu);
}

AssoloComparsaMenu.prototype.CloseMenuALL = function(ItemsMenu)
{
	for (var i = 0; i < ItemsMenu.length; i++) {
		if (isdefined(ItemsMenu[i].SubMenuDiv)) {
			ItemsMenu[i].SubMenuDiv.style.visibility = "hidden";
            ItemsMenu[i].SubMenuDiv.style.zIndex = getMaxZIndex(document.body, ItemsMenu[i].SubMenuDiv)+1;
		}
		if (isdefined(ItemsMenu[i].SubMenu)) {
            this.OpenMenuALL(ItemsMenu[i].SubMenu);
		}
	}
}


