<!--
/**
*	GD PROMENU
*	Version: 1.0
*	Author: Giovanni D'Orazio
*	Author Email: email: giovanni.dorazio@rgn.it
*	Created: 25/10/2004 
*/



var openSubMenu = new Array;		//Array variable to store all current SubMenu items opened
var styleMenu = new Array;			//Array variable to store all StyleMenu Object initialized in the function GDProMenu()
var hover = new Array;				//Array variable to store all items which capture the "onmouseover" event
var openMenu = null;				//Currently MenuBar item opened
var idMenus = new Array("tdMenuBarItem", "tdMenuItem", "tdSubMenuItem", "divMenu", "divSubMenu", "divMenuBar", "arrowSubMenu", "ImgMenuItem");				//
var closeMenu = null;
var IE = "Microsoft Internet Explorer";
var NS = "Netscape";
var browser = navigator.appName;

function initMenu() {
	for (var i=0; i<document.getElementsByTagName("TD").length; i++) {

		if (document.getElementsByTagName("TD").item(i).id && document.getElementsByTagName("TD").item(i).id.search(idMenus[0]) > -1) {
			document.getElementsByTagName("TD").item(i).onmouseover = MenuBar_over;
			document.getElementsByTagName("TD").item(i).onmouseout = setStyleMenuBar_out;
		}
		if (document.getElementsByTagName("TD").item(i).id && document.getElementsByTagName("TD").item(i).id.search(idMenus[1]) > -1) {
			document.getElementsByTagName("TD").item(i).onmouseover = Menu_over;
		}
		if (document.getElementsByTagName("TD").item(i).id && document.getElementsByTagName("TD").item(i).id.search(idMenus[2]) > -1) {
			document.getElementsByTagName("TD").item(i).onmouseover = MenuSub_over;
		}
	}
	setStyleMenu(document.getElementById('divMenuBar'), null);
}	

document.onmousemove = CloseMenus;
/*
document.onmousemove = function() {
	var a = "ARRAY MENU: " + openSubMenu.length + "<br>";
	var b = "ARRAY HOVER: " + hover.length + "<br>";
	if (openSubMenu.length > 0) {
		for (var i=0; i<openSubMenu.length; i++) {
			a += (i + ". " + openSubMenu[i][0].id + " - " + openSubMenu[i][1].id + "<br>");
		}
	}
	if (hover.length > 0) {
		for (var j=0; j<hover.length; j++) {
			b += (j + ". " + hover[j][0].id + " - " + hover[j][1].id + "<br>");
		}
	}
	document.getElementById("scrivi").innerHTML = a + "<hr>" + b;
};
*/


/**
*	FUNCTION: StyleMenu
*	This function creates a new Object that works like a tag Style, its attributes mean the stylesheet properties.
*	PARAMETER:
*		-tagAttribute: identifies by ID or CLASS attribute what of the menu items will be setted their stylesheet.
*		-tagEvent: identifies if the object will work in presence of a mouse event.
*		-width: set the width property of the stylesheet.
*		-height: set the height property of the stylesheet.
*		-backgroundColor: set the background property of the stylesheet. This property is a shorthand for setting the individual 
*			background properties (’background-color’, ’background-image’, ’background-repeat’, ’background-attachment’ and ’background-position’)
*			at the same place in the style sheet.
*		-fontFamily: set the font-family property of the stylesheet. This property specifies a prioritized list of font family names and/or generic	family names.
*		-fontColor: set the color property. This property describes the foreground color of an element’s text content.
*		-fontSize: set the font-size property of the stylesheet. This property describes the size of the font when set solid.
*		-fontStyle: set the font-style property of the stylesheet. This property requests normal (sometimes referred to as "roman" or "upright"), italic, and oblique faces within a font family.
*		-fontWeight: set the font-weight property of the stylesheet. Requests number values from 100 to 900 (these values form an ordered sequence, where each number indicates a
*			weight that is at least as dark as its predecessor) or string values normal, bold, bolder, lighter.
*		-textAlign: set the text-align property of the stylesheet. This property describes how inline content of a block is aligned. It requests string values left, right, center, justify.
*		-textDecoration: set the text-decoration property of the stylesheet. This property describes decorations that are added to the text of an element. It requests string values none, underline, overline, line-through, blink.
*		-textTransform: set the text-transform property of the stylesheet. This property controls capitalization effects of an element’s text. It requests string values capitalize, uppercase, lowercase, none
*		-borderWidth: set the border-width property of the stylesheet. This property is a shorthand for setting ’border-top-width’, ’border-right-width’, ’border-bottom-width’, and ’border-left-width’ at the same
			place in the style sheet. If there is only one value, it applies to all sides.
*		-borderColor:
*		-borderStyle:
*		-margin:
*		-padding:
*		-cursor:
*/
function StyleMenu(tagAttribute, tagEvent, width, height, backgroundColor, fontFamily, fontColor, fontSize, fontStyle, fontWeight, textAlign, textDecoration, textTransform, borderWidth, borderColor, borderStyle, margin, padding, cursor) {
	var objStyle = new Object();
	objStyle.name = tagAttribute;
	objStyle.typeEvent = tagEvent;
	objStyle.width = width;
	objStyle.height = height;
	objStyle.background = backgroundColor;

	if (browser == IE) {
		objStyle.fontFamily = fontFamily;
		objStyle.fontSize = fontSize;
		objStyle.fontStyle = fontStyle;
		objStyle.fontWeight = fontWeight;
		objStyle.color = fontColor;
		objStyle.textAlign = textAlign;
		objStyle.textDecoration = textDecoration;
		objStyle.texTransform = textTransform;
		objStyle.borderWidth = borderWidth;
		objStyle.borderColor = borderColor;
		objStyle.borderStyle = borderStyle;
		objStyle.margin = margin;
		objStyle.padding = padding;	
		objStyle.cursor = cursor;
	} else {
		objStyle.font_family = fontFamily;
		objStyle.font_size = fontSize;
		objStyle.font_style = fontStyle;
		objStyle.font_weight = fontWeight;
		objStyle.color = fontColor;
		objStyle.text_align = textAlign;
		objStyle.text_decoration = textDecoration;
		objStyle.text_transform = textTransform;
		objStyle.border_width = borderWidth;
		objStyle.border_color = borderColor;
		objStyle.border_style = borderStyle;
		objStyle.margin = margin;
		objStyle.padding = padding;	
		objStyle.cursor = cursor;
	}		
	styleMenu.push(objStyle);
}

function goToURL(frame, isFrame, URL) {
	if (isFrame == null) {
		if (frame == "_self") self.location.href = URL;
		if (frame == "_blank") var newWin = window.open(URL);
	} else {
		eval(isFrame + "." + frame + ".location.href = " + URL);
	}
}

function setStyleMenuBar_out() {
	var eMenu = document.getElementById(this.id.replace(idMenus[0],idMenus[3]));
	if (!eMenu) setStyleMenu(this, "mouseout");

}

function setStyleMenu(obj, styleTypeEvent) {
	if (styleMenu.length > 0) {
		var childTag = new Array;	
		switch (obj.tagName) {
			case "DIV":
				childTag.push(obj); 
				for (var c1=0; c1<obj.childNodes.length; c1++) {
					if (obj.childNodes.item(c1).tagName != "TABLE") {
						continue;
					}
					if (obj.childNodes.item(c1).tagName == "TABLE") {
						var childTable = obj.childNodes.item(c1);
						childTag.push(childTable);
						for (var c2=0; c2<childTable.rows.length; c2++) {
							var childTR = childTable.rows.item(c2);
							for (var c3=0; c3<childTR.cells.length; c3++) {
								var childTD = childTR.cells.item(c3);
								childTag.push(childTD);
								for (var c4=0; c4<childTD.childNodes.length; c4++) {
									if (childTD.childNodes.item(c4).tagName == "A")
										childTag.push(childTD.childNodes.item(c4));
									else
										continue;
								}//end for childTD.childNodes.length
							}//end for childTR.cells.length
						}//end for childTable.rows.length
					}//end if obj.childNodes.item(c1).tagName == "TABLE"
				}//end for obj.childNodes.length
				break;

			case "TD":
				childTag.push(obj);
				for (var c4=0; c4<obj.childNodes.length; c4++) {
					if (obj.childNodes.item(c4).tagName == "A")
						childTag.push(obj.childNodes.item(c4));
					else
						continue;
				}//end for obj.childNodes.length
				break;

			defalut:
				childTag.push(obj);
		}//end switch
		var styleTag = new Array;
		for (var i=0; i<styleMenu.length; i++) {
			if (styleTypeEvent == null && styleMenu[i].typeEvent != "") {
				continue;
			} else {
				for (var k=0; k<childTag.length; k++) {	
					if (styleTypeEvent != null && styleTypeEvent == styleMenu[i].typeEvent &&
							(styleMenu[i].name == childTag[k].id || styleMenu[i].name == childTag[k].className)) {
						if (styleTypeEvent == "mouseout" && styleMenu[i].typeEvent == "mouseout" && !removeHover(getParentMenu(childTag[k]))) break;
						if (styleTypeEvent == "mouseover" && styleMenu[i].typeEvent == "mouseover" && !insertHover(obj, getParentMenu(childTag[k]))) break;
						for (var styleAttribute in styleMenu[i]) {
							var attributeName = styleAttribute.replace("_","-");
							if (browser == IE)
								childTag[k].style.setAttribute(attributeName,styleMenu[i][styleAttribute]);
							else
								childTag[k].style.setProperty(attributeName,styleMenu[i][styleAttribute],null);
						}//end for styleAttribute in styleMenu[i]
					}//end if styleTypeEvent != null && styleTypeEvent == styleMenu[i].typeEvent &&	(styleMenu[i].name == childTag[k].id || styleMenu[i].name == childTag[k].className)
					if (styleTypeEvent == null && styleMenu[i].typeEvent == "" &&
							(styleMenu[i].name == childTag[k].id || styleMenu[i].name == childTag[k].className)) {
						for (var styleAttribute in styleMenu[i]) {
							var attributeName = styleAttribute.replace("_","-");
							if (browser == IE)
								childTag[k].style.setAttribute(attributeName,styleMenu[i][styleAttribute]);
							else
								childTag[k].style.setProperty(attributeName,styleMenu[i][styleAttribute],null);
						}//end for styleAttribute in styleMenu[i]
					}//end if styleTypeEvent == null && styleMenu[i].typeEvent == "" &&	(styleMenu[i].name == childTag[k].id || styleMenu[i].name == childTag[k].className)
				}//end for childTag.length
			}//end else styleTypeEvent == null && styleMenu[i].typeEvent != ""
		}//end for styleMenu.length
	}//end if styleMenu.length > 0
}//end function setStyleMenu

function isSameParentMenu(eParentMenu) {
	var flag = false;
	if (openSubMenu.length > 0) {
		for (var i=0; i<openSubMenu.length; i++) {
			if (openSubMenu[i][1] == eParentMenu) {
				flag = true;
				break;
			}	
		}
	}
	return flag;	
}

function getParentMenu(activeTD) {
	if (activeTD.tagName == "TD")
		return activeTD.parentNode.parentNode.parentNode.parentNode;
	else
		return null;
}
  
function insertHover(hoverTD, eParentMenu) {
	var tmpArray = new Array(2);
	if (hover.length > 0) {
		var flag = false;
		for (var i=0; i<hover.length; i++) {
			if (hover[i][1] == eParentMenu) {
					flag = true;
					break;
			}	
		}
		if (flag) {
			setStyleMenu(hover[i][0], "mouseout");
		}
	}
	tmpArray[0] = hoverTD;
	tmpArray[1] = eParentMenu;
	hover.push(tmpArray);
	return true;
}

function removeHover(eParentMenu) {
	var removed = null;
	if (hover.length > 0) {
		var flag = false;
		for (var i=0; i<hover.length; i++) {
			if (hover[i][1] == eParentMenu) {
				flag = true;
				break;
			}	
		} 
		if (flag) {
			removed = hover.splice(i, 1);
		}
	}
	if (removed != null && removed.length > 0)
		return true;
	else
		return false;
}

function insertSubMenu(eSubMenu, eParentMenu) {
	var tmpArray = new Array(2);
	if (openSubMenu.length > 0) {
		var flag = false;
		for (var i=0; i<openSubMenu.length; i++) {
			if (openSubMenu[i][0] == eSubMenu || openSubMenu[i][1] == eParentMenu) {
				flag = true;
				break;
			}	
		}
		if (flag) {
			CloseSubMenu(openSubMenu[i][0],true);
		}
	}
	tmpArray[0] = eSubMenu;
	tmpArray[1] = eParentMenu;
	openSubMenu.push(tmpArray);
}

function removeAllSubMenu() {
	var removedMenu = null;
	if (openSubMenu.length > 0) {
		removedMenu = openSubMenu.splice(0, openSubMenu.length);
	}
	return removedMenu;
}

function removeSubMenu(eSubMenu, selectedMenu) {
	var removedMenu = null;
	var index = null;
	if (openSubMenu.length > 0) {
		for (var i=0; i<openSubMenu.length; i++) {
			if (selectedMenu) {
				if (openSubMenu[i][0] == eSubMenu) index = i;
			} else {
				if (openSubMenu[i][1] == eSubMenu) index = i;
			}
		}
		if (index != null) {
				removedMenu = openSubMenu.splice(index, openSubMenu.length-index);
		}
	}
	return removedMenu;
}

function MenuBar_over(){
	var eMenu = document.getElementById(this.id.replace(idMenus[0],idMenus[3]));
	setStyleMenu(this, "mouseover");

	if (openMenu && openMenu != eMenu) CloseMenu(openMenu);
    if (eMenu) OpenMenu(eMenu);
}

function Menu_over(){
	var eTypeMenu = idMenus[1];
	var eSubMenu = document.getElementById(this.id.replace(eTypeMenu,idMenus[4]));
	var eParentMenu = getParentMenu(this);
	setStyleMenu(this, "mouseover");

	if (eSubMenu) {
		OpenSubMenu(eSubMenu, eTypeMenu, eParentMenu);
	}else{
		CloseAllSubMenu();
	}
}

function MenuSub_over(){
	var eTypeMenu = idMenus[2];
	var eSubMenu = document.getElementById(this.id.replace(eTypeMenu,idMenus[4]));
	var eParentMenu = getParentMenu(this);
	setStyleMenu(this, "mouseover");

	if (eSubMenu) {
		OpenSubMenu(eSubMenu, eTypeMenu, eParentMenu);
	}else{
		CloseSubMenu(eParentMenu, false);
	}	
}

function OpenMenu(eMenu){
	var divMenuBar = document.getElementById(idMenus[5]);
	var parentElement = document.getElementById(eMenu.id.replace(idMenus[3],idMenus[0]));

	setStyleMenu(eMenu, null);

	eMenu.style.left = parseInt(parentElement.offsetLeft + divMenuBar.offsetLeft) + "px";
	eMenu.style.top = parseInt(divMenuBar.offsetHeight + divMenuBar.offsetTop) + "px";

	eMenu.style.visibility = "visible";

	openMenu = eMenu;
//********** SOLO PER FARAONE - inizio **********//
	for (var i=0; i<document.getElementsByTagName("DIV").length; i++) {
		if (document.getElementsByTagName("DIV").item(i).id && document.getElementsByTagName("DIV").item(i).id.search("faraone") > -1)
			document.getElementsByTagName("DIV").item(i).style.clip = 'rect(auto 0px auto auto)';	
	}
//********** SOLO PER FARAONE - fine **********//

//	if (closeMenu != null) { clearTimeout(closeMenu); closeMenu = null; }

}

function OpenSubMenu(eSubMenu, eTypeMenu, eParentMenu){
	var parentTD = document.getElementById(eSubMenu.id.replace(idMenus[4],eTypeMenu));
	setStyleMenu(eSubMenu, null);
	insertSubMenu(eSubMenu, eParentMenu);

	eSubMenu.style.left = parseInt(eParentMenu.offsetLeft + eParentMenu.offsetWidth) + "px";
	eSubMenu.style.top = parseInt(eParentMenu.offsetTop + parentTD.offsetTop) + "px";
	eSubMenu.style.visibility = "visible"; 

}

function CloseAllMenus(){
	if (closeMenu == null) {
//		clearTimeout(closeMenu);
		return;
	} else {
		if (openMenu != null) {
			openMenu.style.visibility = "hidden";
			openMenu = null;
			if (openSubMenu.length > 0) CloseAllSubMenu();
			setStyleMenu(document.getElementById('divMenuBar'), null);
//********** SOLO PER FARAONE - inizio **********//
			for (var i=0; i<document.getElementsByTagName("DIV").length; i++) {
				if (document.getElementsByTagName("DIV").item(i).id && document.getElementsByTagName("DIV").item(i).id.search("faraone") > -1)
					document.getElementsByTagName("DIV").item(i).style.clip = 'rect(auto auto auto auto)';	
			}
//********** SOLO PER FARAONE - fine **********//
			
		}	
	}
}

function CloseMenu(eMenu){
	eMenu.style.visibility = "hidden";
	openMenu = null;
	if (openSubMenu.length > 0) CloseAllSubMenu();
}

function CloseAllSubMenu() {
	var removedMenu = removeAllSubMenu();
	if (removedMenu != null && removedMenu.length > 0) {
		for (var k=0; k<removedMenu.length; k++) {
			removedMenu[k][0].style.visibility = "hidden";
		}
	}
}

function CloseSubMenu(eSubMenu, selectedMenu){
	var removedMenu = removeSubMenu(eSubMenu, selectedMenu);
	if (removedMenu != null && removedMenu.length > 0) {
		for (var k=0; k<removedMenu.length; k++) {
			removedMenu[k][0].style.visibility = "hidden";
		}
	}
}

function CloseMenus(e){
	var x2_mouse = (browser == IE) ? window.event.offsetX : e.layerX;
	var y2_mouse = (browser == IE) ? window.event.offsetY : e.layerY;
	var x_mouse = (browser == IE) ? window.event.clientX : e.clientX;
	var y_mouse = (browser == IE) ? window.event.clientY : e.clientY;
		
	if (openMenu != null) {
		var eMenu = (browser == IE) ? window.event.srcElement : e.target;
//		window.status = closeMenu + "  ---    " +  eMenu.id + "      X: " + x_mouse + "    Y: " + y_mouse + "    ----    offsetWidth: " + eMenu.offsetWidth + "    offsetHeight: " + eMenu.offsetHeight;
//		window.status = "X: " + x_mouse + "    Y: " + y_mouse + "    ----    offsetLeft: " + eMenu.offsetLeft + "    offsetTop: " + eMenu.offsetTop;
		if (!eMenu.id) {
			closeMenu = setTimeout(CloseAllMenus,700);			
		} else {
			if (eMenu.id.search(idMenus[0]) == -1 && eMenu.id.search(idMenus[1]) == -1 && eMenu.id.search(idMenus[2]) == -1 && eMenu.id.search(idMenus[6]) == -1 && eMenu.id.search(idMenus[7]) == -1) {
				closeMenu = setTimeout(CloseAllMenus,700);			
			}
			if (eMenu.id.search(idMenus[0]) > -1 || eMenu.id.search(idMenus[1]) > -1 || eMenu.id.search(idMenus[2]) > -1 || eMenu.id.search(idMenus[6]) > -1 || eMenu.id.search(idMenus[7]) > -1) {
				closeMenu = null;
			}
		}
	}
}


//-->
