
////////////////////////////////////////////////////////////////////////////////////////////////////// O N   M E N U   H E A D E R   M O U S E   O V E R
// O N   M E N U   H E A D E R   M O U S E   O V E R
function OnMenuHeaderMouseOver(oMenu){
	var Header = event.srcElement;
	if(!Header.Popup){
		ConstructPopupOverlay(Header, oMenu);
	}
	
	var bHasOpenMenus = (HasOpenMenus(Header.parentNode));
	Popup = Header.Popup;
	Popup.show(0, 0, Header.offsetWidth + 1, Header.offsetHeight, Header);
	
	if(bHasOpenMenus){
		Popup.document.all("Header").fireEvent('onmousedown'); //ShowMenu(Header, oMenu, false);
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////// O N   M E N U   H E A D E R   M O U S E   O U T
// O N   M E N U   H E A D E R   M O U S E   O U T
function OnMenuHeaderMouseOut(){
	
}
////////////////////////////////////////////////////////////////////////////////////////////////////// H A S   O P E N   M E N U S
// H A S   O P E N   M E N U S
function HasOpenMenus(Container){
	var i;
	for(i = 0; i < Container.childNodes.length; i++){
		var Popup = Container.childNodes[i].Popup;
		if(!Popup) continue;
		var Header = Popup.document.all("Header");
		if(Header == null || !Header.oMenu || !Header.oMenu.m_MenuPopup) continue;
		
		var DropDownMenu = Header.oMenu.m_MenuPopup;
		
		if(DropDownMenu.isOpen){
			return true;
		}
	}
	return false;
}
////////////////////////////////////////////////////////////////////////////////////////////////////// C O N S T R U C T   P O P U P   O V E R L A Y
// C O N S T R U C T   P O P U P   O V E R L A Y
function ConstructPopupOverlay(Header, oMenu){
	//document.ondeactivate = new Function("alert(1)");
	
	window.attachEvent('onbeforedeactivate', new Function("document.all('"+ Header.uniqueID +"').Popup.hide();"));
	
	if(!Header.oMenu) Header.oMenu = oMenu;
	var Temp = Header.cloneNode(true);

	Temp.style.cssText = Header.style.cssText;
	//alert(oElement.currentStyle.borderStyle);
	//Temp.style.borderStyle = oElement.currentStyle.borderStyle;
	//Temp.style.borderColor = oElement.currentStyle.borderColor;
	//Temp.style.borderWidth = oElement.currentStyle.borderWidth;
	Temp.style.border = Header.sMouseOverBorder;
	Temp.style.backgroundColor = Header.sMouseOverBgColor;
	Temp.style.color = Header.sMouseOverColor;
	Temp.style.cursor = 'hand';
	
	Temp.style.fontFamily = Header.currentStyle.fontFamily;
	Temp.style.fontSize = Header.currentStyle.fontSize;
	Temp.style.width = Header.offsetWidth + 1;
	
	Temp.id = "Header";
	Temp.unselectable = "on";
	//alert(oElement.style.cssText);
	//oMenu.Show(0, oElement.offsetHeight - 1, oElement, true); 
	
	Header.Popup = window.createPopup();
	Header.Popup.document.body.innerHTML = Temp.outerHTML;
	//oElement.Popup.document.all("Header").onclick = oElement.onclick;
	//Header.Popup.document.parentWindow.oMenu = oMenu;
	Header.Popup.document.all("Header").onmouseover = null;
	Header.Popup.document.all("Header").onmouseout = null;
	Header.Popup.document.all("Header").oMenu = oMenu;
	Header.Popup.document.all("Header").oMenu.m_ParentPopup = Header.Popup;
	Header.Popup.document.all("Header").oMenu.m_OwnerWindow = Header.Popup.document.parentWindow;
	Header.Popup.document.all("Header").onmousedown = new Function("this.oMenu.Show(0, "+ (Header.offsetHeight - 1) +", this, true); this.document.parentWindow.event.cancelBubble = true; return false;");
	//Header.Popup.document.all("Header").onkeydown = new Function("if(this.document.parentWindow.event.keyCode == 40) this.oMenu.Show(0, "+ (Header.offsetHeight - 1) +", this, true); this.document.parentWindow.event.cancelBubble = true; return false;");
	//Header.Popup.document.all("Header").onmousedown = new Function();

}
////////////////////////////////////////////////////////////////////////////////////////////////////// ON MENU HEADER CLICK
// ON MENU HEADER CLICK
function OnMenuHeaderClick(Header){
	//Header.oMenu.Show(0, Header.offsetHeight - 1, Header, false);
}
////////////////////////////////////////////////////////////////////////////////////////////////////// ON MENU HEADER CLICK
// ON MENU HEADER CLICK
function OnBeforeMenuShow(Element, oMenu){
	/*if(oElement.OnBeforeShowContextMenu && IsFunctionName(oElement.OnBeforeShowContextMenu)){
		eval(oElement.OnBeforeShowContextMenu +"(oElement, oMenu);");
	}else{
		eval(oElement.OnBeforeShowContextMenu);
	}*/
}
////////////////////////////////////////////////////////////////////////////////////////////////////// S H O W   M E N U
// S H O W   M E N U
function ShowMenu(oElement, oMenu, bContextMenu){
	
	//OnBeforeMenuShow(oElement, oMenu);
	/*if(oElement.OnBeforeShowContextMenu && IsFunctionName(oElement.OnBeforeShowContextMenu)){
		eval(oElement.OnBeforeShowContextMenu +"(oElement, oMenu);");
	}else{
		eval(oElement.OnBeforeShowContextMenu);
	}*/
	//alert(oElement.ContextMenuName);
	//alert(window.arContextMenus.length);
	/*var oParent = oElement;
	var X = oParent.offsetLeft;
	var Y = oParent.offsetTop;
	//oMenu = window.m_arMenus[oMenu.m_nStorageIndex];
	//nTime = GetTime();
	//HideOpenMenus();
	
	if(bContextMenu == true){
		X = event.clientX;
		Y = event.clientY;
	}else{
		/*while(oParent = oParent.offsetParent){
			X += oParent.offsetLeft;
			Y += oParent.offsetTop;
		}
		Y += oElement.offsetHeight;
	}*/
	
	/*
	if(bContextMenu == true){
		//oMenu.m_oCreatorTag = event.srcElement.parentNode;
		//oMenu.m_oCreatorTagOldClass = oMenu.m_oCreatorTag.className;
		//oMenu.m_oCreatorTag.className = "cRightClickedRow";
		//for(i = 0; i < oMenu.m_arItems.length; i++){
		//	if(oMenu.m_arItems[i].bIsSeparator == false){
		//		//oMenu.SetItemAction(i, oMenu.m_arItems[i].sOriginalAction.replace(arLinkRegExp['sRegExp'], arLinkRegExp['sReplacement']));
		//	}
		//}
		oMenu.Show(X - document.body.scrollLeft, Y - document.body.scrollTop);
	}else{
		//var oTarget = event.srcElement;
		//alert(oTarget.offsetWidth);
		if(!oElement.Popup){
			ConstructPopupOverlay(oElement, oMenu);
		}
		//Popup = oElement.Popup;
		//if(Popup.isOpen == false) Popup.show(0, 0, oElement.offsetWidth + 1, oElement.offsetHeight, oElement);
		
		//window.oMenu = oMenu;
		//window.oMenuReferenceItem = Popup.document.body;
		
		//oMenu.m_OwnerWindow = Popup.document.parentWindow;
		//oMenu.Show(0, oElement.offsetHeight - 1, Popup.document.body, true);
		
		//oMenu.Show(0, oElement.offsetHeight - 1, oElement, true); 
		
		//oMenu.Show(X - document.body.scrollLeft, Y - document.body.scrollTop);
		
		//oMenu.m_oMenuHeader = oTarget;
		//oMenu.m_sOnHide = "this.m_oMenuHeader.runtimeStyle.border = this.m_oMenuHeader.sNormalBorder; this.m_oMenuHeader.runtimeStyle.zIndex = this.m_oMenuHeader.sNormalZIndex";
		//oTarget.runtimeStyle.border = oTarget.sMouseOverBorder;
		//oTarget.runtimeStyle.borderBottom = 'none';
		//oTarget.runtimeStyle.zIndex = oTarget.sMouseOverZIndex;
		//alert(event.srcElement.cellIndex);
		//oTarget.className = oTarget.sMenuOpenClass;
		
	}*/

	//alert(GetTime() - nTime);
}
