// --------------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------------
// Almila Information Technology
// Menu JavaScript Functions
// Version : 3.0.0802
// Author  : İsmail Türkay
// Http    : www.almila.com
// E-Mail  : ismailturkay@almila.com
// --------------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------------

	var ActiveMenu;
	var ActiveMenuSub;
	var ActivePopup;
	var ActiveSubPopup;
	var ActiveToolMnuIndex, ActiveToolItmIndex;
	var ActivePopupMnuIndex, ActivePopupItmIndex;
	var ActiveSubPopupMnuIndex, ActiveSubPopupItmIndex;
	var Start, HideMenuFlag, HideMenuTimer, ShowSubPopup = false;
	var CopyStatusText = window.status;
				
function AddItem(item, action, desc, image, popmenu) {
	this.Item[this.Item.length] = item;
	this.Image[this.Image.length] = image;
	this.Action[this.Action.length] = action;
	this.Description[this.Description.length] = desc;
	this.Enabled[this.Enabled.length] = true;
	this.PopMenu[this.PopMenu.length] = popmenu;
}

function ItemAction(action) {
	if (action.substring(0, 3) == 'dl:') {
		return('onclick="document.location=' + "'" + action.substring(3, action.length) + "'" + '"');
	} else {
		//alert('onclick="' + action + '"');
		return('onclick="' + action + '"');
	}	
}

function DefaultDesc() {
	window.status = CopyStatusText;
}

function WriteDesc(desc) {
	CopyStatusText = window.status;
	if (desc != '' && desc != null) window.status = desc; else window.status = CopyStatusText;
}

function ToolMenu(name) {
	this.AddItem = AddItem;
	
	this.Item = new Array();
	this.Image = new Array();
	this.Action = new Array();
	this.Enabled = new Array();
	this.PopMenu = new Array();
	this.Description = new Array();
	this.Left = 0;
	this.Top = 0;
		
	if (!window.TToolMenu) window.TToolMenu = new Array();
	this.MenuName = name;
	window.TToolMenu[this.MenuName] = this;
	window.TToolMenu[window.TToolMenu.length] = this;		
}

function PopupMenu(name) {
	this.AddItem = AddItem;
	
	this.Item = new Array();
	this.Image = new Array();
	this.Action = new Array();
	this.Enabled = new Array();
	this.PopMenu = new Array();
	this.Description = new Array();
	this.SubPopup = false;
	
	if (!window.TPopupMenu) window.TPopupMenu = new Array();
	this.MenuName = name;
	window.TPopupMenu[this.MenuName] = this;
	window.TPopupMenu[window.TPopupMenu.length] = this;		
}

function LoadToolMenu(name, style) {
	var htmlStr = '',
		htmlObj = null,
		mnuIndex = -1,
		mnuStyle = 'm',
		mnuHeight = 21;

	for (var i = 0; i < window.TToolMenu.length; i++) 
		if (window.TToolMenu[i].MenuName == name) { mnuIndex = i; break; }
	if (mnuIndex == -1) return;

	if (style) {
		mnuStyle = style.toLowerCase();
		if (style.toLowerCase() == 'menu') mnuStyle = 'm';
		if (style.toLowerCase() == 'button') mnuStyle = 'b';
		if (style.toLowerCase() == 'toolbutton') mnuStyle = 't';
	}
	if (mnuStyle == 'm') mnuHeight = 16;

	htmlObj = window.TToolMenu[mnuIndex];
	htmlStr = '<div id="Tool_' + name + '" style="position:absolute;left:' + htmlObj.Left + ';top:' + htmlObj.Top + ';;visibility:inherit;">';
	htmlStr += '<table cellpadding="0" cellspacing="0"><tr>';
	if (mnuStyle == 't') htmlStr += '<td>' + SkinImage('ToolGrip') + '</td>';
	for (var i = 0; i < htmlObj.Item.length; i++) {
		var itmID = 'ToolItem_' + name + '_' + i.toString();
		var capID = 'ToolFont_' + name + '_' + i.toString();

		var scriptOut = 'ToolMenuControl(' + mnuIndex + ',' + i + ',0);';
		if (htmlObj.PopMenu[i] && htmlObj.PopMenu[i] != '')
			scriptOut = 'StartTimeOut();';
		var scriptOver = 'ToolMenuControl(' + mnuIndex + ',' + i + ',1);';
		var scriptClick = 'ToolMenuControl(' + mnuIndex + ',' + i + ',2);';
		var scriptAction = '';
		
		//if (!htmlObj.PopMenu[i]) 
		if (htmlObj.Action[i] != '') scriptAction = ItemAction(htmlObj.Action[i]);

		htmlStr += '<td id="' + itmID + '" class="ToolItem" ' + scriptAction + '" onmouseover="' + scriptOver + '" onmouseout="' + scriptOut + '" onmousedown="' + scriptClick + '" onmouseup="' + scriptOver + '" valign="top">';	
		htmlStr += '<table cellpadding="0" cellspacing="0" height="' + mnuHeight.toString() + '"><tr>';
		if (!htmlObj.Image[i] && htmlObj.Image[i] != '' && mnuStyle == 'b' || mnuStyle == 't') 
			htmlStr += '<td align="center" valign="middle" width="21" height="21" nowrap>' + SkinIcon(htmlObj.Image[i], htmlObj.Item[i], 16) + '</td>';
		htmlStr += '<td id="' + capID + '" class="ToolFont" valign="middle" nowrap>&nbsp;' + htmlObj.Item[i] + '&nbsp;</td>';
		if (mnuStyle == 'b' && htmlObj.PopMenu[i] && htmlObj.PopMenu[i] != '') 
			htmlStr += '<td align="center" width="21" nowrap>' + SkinIcon('MenuArrow') + '</td>';
		htmlStr += '</tr></table>';
		
		htmlStr += '</td>';
	}
	htmlStr += '</tr></table>';
	htmlStr += '</div>';
	htmlObj = null;

	document.write(htmlStr);	
}

function ToolMenuControl(mnuIndex, itmIndex, action) {
	var mnuObj = window.TToolMenu[mnuIndex];
	var itmObj = FindObj('ToolItem_' + mnuObj.MenuName + '_' + itmIndex.toString());
	var capObj = FindObj('ToolFont_' + mnuObj.MenuName + '_' + itmIndex.toString());
		
	if (mnuObj.Enabled[itmIndex] == false) return;

	if (action == 0) {
		itmObj.className = 'ToolItem';
		capObj.className = 'ToolFont';
		DefaultDesc();
	} else if (action == 1) {		
		ToolPopupControl(0);
		if (mnuObj.Description[itmIndex]) WriteDesc(mnuObj.Description[itmIndex]);
		ActiveToolMnuIndex = mnuIndex;
		ActiveToolItmIndex = itmIndex;
		if (mnuObj.PopMenu[itmIndex]) {		
			ShowPopupMenu(mnuObj.PopMenu[itmIndex], 'v', itmObj.id);
			itmObj.className = 'ToolItem_Popup';
			capObj.className = 'ToolFont_Popup';
		} else {
			itmObj.className = 'ToolItem_Over';
			capObj.className = 'ToolFont_Over';
		}
	} else if (action == 2) {
		itmObj.className = 'ToolItem_Click';
		capObj.className = 'ToolFont_Click';		
	}
	
}

function ToolPopupControl(action) {
	if (ActiveToolMnuIndex == null) return;
	var mnuObj = window.TToolMenu[ActiveToolMnuIndex];
	var itmObj = FindObj('ToolItem_' + mnuObj.MenuName + '_' + ActiveToolItmIndex.toString());
	var capObj = FindObj('ToolFont_' + mnuObj.MenuName + '_' + ActiveToolItmIndex.toString());

	if (action == 0) {
		DefaultDesc();
		HidePopupMenu(ActivePopup);
		itmObj.className = 'ToolItem';
		capObj.className = 'ToolFont';
	} else if (action == 1) {
		itmObj.className = 'ToolItem_Popup';
		capObj.className = 'ToolFont_Popup';
	}
}

function LoadPopupMenu() {
	var htmlStr = '', 
		htmlObj = null;
	
	for (var mnuIndex = 0; mnuIndex < window.TPopupMenu.length; mnuIndex++) {		
		htmlObj = window.TPopupMenu[mnuIndex];
		//var pophide = "HidePopupMenu('Popup_" + htmlObj.MenuName + "', 500)";
		var timeout = ' onmousemove="SetActiveMenu(this, ' + htmlObj.SubPopup + ');"'; //'onmouseout="HidePopupMenu(this)"'; //'onmouseout="SetTimeOut(' + "'" + 'HidePopupMenu(Popup_' + htmlObj.MenuName + ")'" + ', 100)"';
		htmlStr += '<div id="Popup_' + htmlObj.MenuName + '" style="position:absolute;visibility:hidden;left:0;top:0;" ' + timeout + '>'; //onmousemove="HidePopupMenu(Popup_' + htmlObj.MenuName + ');">';
		htmlStr += '<table cellpadding="0" cellspacing="0" class="PopupMenu">';
		
		for (var itmIndex = 0; itmIndex < htmlObj.Item.length; itmIndex++) {
			var itmID = 'PopupItem_' + htmlObj.MenuName + '_' + itmIndex.toString();
			var capID = 'PopupFont_' + htmlObj.MenuName + '_' + itmIndex.toString();
			
			var scriptOut = "PopupMenuControl(" + mnuIndex + "," + itmIndex + ", 0);";			
			var scriptOver = "PopupMenuControl(" + mnuIndex + "," + itmIndex + ", 1);";
			var scriptClick = "PopupMenuControl(" + mnuIndex + "," + itmIndex + ", 2);";
			var scriptAction = '';
		
			if (!htmlObj.PopMenu[itmIndex]) {
				if (htmlObj.Action[itmIndex] != '') scriptAction = ItemAction(htmlObj.Action[itmIndex]);
				scriptOut = 'StartTimeOut();';
			}
			
			htmlStr += '<tr>';
			if (htmlObj.Item[itmIndex] != '' && htmlObj.Item[itmIndex] != '-')
				htmlStr += '<td id="' + itmID + '" class="PopupItem" ' + scriptAction + '" onmouseover="' + scriptOver + '" onmouseout="' + scriptOut + '" onmousedown="' + scriptClick + '" onmouseup="' + scriptOver + '">';
			else htmlStr += '<td>';
			htmlStr += '<table cellpadding="0" cellspacing="0" width="100%"><tr>';
			htmlStr += '<td align="center" valign="middle" width="21" height="21" style="border-right:1px solid #cccccc" nowrap>';
			if (htmlObj.Image[itmIndex] && htmlObj.Image[itmIndex] != '') htmlStr += SkinIcon(htmlObj.Image[itmIndex], '', 16) + '</td>'; else htmlStr += '&nbsp;</td>';
			if (htmlObj.Item[itmIndex] == '' || htmlObj.Item[itmIndex] == '-') {
				htmlStr += '<td colspan="2"><hr size="1" width="95%"></td>';
			} else {
				htmlStr += '<td id="' + capID + '" class="PopupFont" "height="21" valign="middle" nowrap>&nbsp;' + htmlObj.Item[itmIndex] + '&nbsp;</td>';
				htmlStr += '<td align="center" valign="middle" width="16" nowrap>';
				if (htmlObj.PopMenu[itmIndex] && htmlObj.PopMenu[itmIndex] != '') htmlStr += SkinIcon('MenuArrow', '', 16) + '</td>'; else htmlStr += '&nbsp;</td>';
			}
			htmlStr += '</tr></table>';
			htmlStr += '</td></tr>';
		}
		
		htmlStr += '</table>';
		htmlStr += '</div>';
	}

	document.write(htmlStr);
}

function PopupMenuControl(mnuIndex, itmIndex, action) {
	var mnuObj = window.TPopupMenu[mnuIndex];
	var itmObj = FindObj('PopupItem_' + mnuObj.MenuName + '_' + itmIndex.toString());
	var capObj = FindObj('PopupFont_' + mnuObj.MenuName + '_' + itmIndex.toString());

	if (mnuObj.Enabled[itmIndex] == false) return;
	
	if (action == 0) {
		StartTimeOut();
		itmObj.className = 'PopupItem';
		capObj.className = 'PopupFont';
		DefaultDesc();
	}
	if (action == 1) {
		ClearTimeOut();	
		MainPopupControl(0, itmIndex);
		if (mnuObj.Description[itmIndex]) WriteDesc(mnuObj.Description[itmIndex]);
		if (ShowSubPopup != true) {
			ActivePopupMnuIndex = mnuIndex;
			ActivePopupItmIndex = itmIndex;
		} else {
			ActiveSubPopupMnuIndex = mnuIndex;
			ActiveSubPopupItmIndex = itmIndex;
		}
		itmObj.className = 'PopupItem_Over';
		capObj.className = 'PopupFont_Over';		
		if (mnuObj.PopMenu[itmIndex]) {
			ShowSubPopup = true;
			ShowPopupMenu(mnuObj.PopMenu[itmIndex], 'h', itmObj.id);
		}
	}
	if (action == 2) {
		itmObj.className = 'PopupItem_Click';
		capObj.className = 'PopupFont_Click';
	}
}

function MainPopupControl(action, itmIndex) {
	if (ActivePopupMnuIndex == null) return;
	var mnuObj = window.TPopupMenu[ActivePopupMnuIndex];
	var itmObj = FindObj('PopupItem_' + mnuObj.MenuName + '_' + ActivePopupItmIndex.toString());
	var capObj = FindObj('PopupFont_' + mnuObj.MenuName + '_' + ActivePopupItmIndex.toString());

	if (action == 0) {
		DefaultDesc();
		//window.status = ActiveMenuSub;
		if (itmIndex != ActivePopupItmIndex && ActiveMenuSub == false) HideSubPopupMenu(ActiveSubPopup);
		itmObj.className = 'PopupItem';
		capObj.className = 'PopupFont';
	} else if (action == 1) {
		itmObj.className = 'PopupItem_Over';
		capObj.className = 'PopupFont_Over';
	}
}

function SubPopupControl(action) {
	if (ActiveSubPopupMnuIndex == null) return;
	var mnuObj = window.TPopupMenu[ActiveSubPopupMnuIndex];
	var itmObj = FindObj('PopupItem_' + mnuObj.MenuName + '_' + ActiveSubPopupItmIndex.toString());
	var capObj = FindObj('PopupFont_' + mnuObj.MenuName + '_' + ActiveSubPopupItmIndex.toString());

	if (action == 0) {
		DefaultDesc();
		//HideSubPopupMenu(ActiveSubPopup);
		itmObj.className = 'PopupItem';
		capObj.className = 'PopupFont';
	} else if (action == 1) {
		itmObj.className = 'PopupItem_Over';
		capObj.className = 'PopupFont_Over';
	}
}

function ShowPopupMenu(name, style, owner) {
	var bodyWidth = GetWindowWidth(this), 
		bodyHeight = GetWindowHeight(this);
	var ownWidth = 0, ownHeight = 0, ownLeft = 0, ownTop = 0, ownParent;
	var popleft = 0, poptop = 0;
	var popobj = null, ownobj = null;
		
	if (ShowSubPopup == false) {
		HidePopupMenu(ActivePopup);	
		popobj = FindObj('Popup_' + name);
		ActivePopup = 'Popup_' + name;
		ClearTimeOut();
	} else {
		HideSubPopupMenu(ActiveSubPopup);
		popobj = FindObj('Popup_' + name);
		ActiveSubPopup = 'Popup_' + name;
		ShowSubPopup = true;
		ClearTimeOut();
	}
	
	if (owner) ownobj = FindObj(owner); else ownobj = this.event.srcElement;

	if (!style || style == 'f' || style == 'free' || style == '') {
		popleft = event.x;
		poptop = event.y;
	} else {
		ownWidth = ownobj.offsetWidth;
		ownHeight = ownobj.offsetHeight;
		ownParent = ownobj.offsetParent;

		while (ownParent != null) {
			if (ownParent.id && ownParent.offsetLeft > 0 && ownParent.offsetTop) {
				ownLeft += ownParent.offsetLeft;
				ownTop += ownParent.offsetTop;
			}
			ownParent = ownParent.offsetParent;
		}

		if (style == 'h' || style == 'horizontal') {
			popleft = ownobj.offsetLeft + ownobj.offsetWidth + ownLeft + 1;
			poptop = ownobj.offsetTop;
			if (ShowSubPopup) {
				var apopup = FindObj(ActivePopup);
				poptop = poptop + apopup.offsetTop + 1;
			}
		}
		if (style == 'v' || style == 'vertical') {
			popleft = ownobj.offsetLeft + ownLeft;
			poptop = ownobj.offsetTop + ownobj.offsetHeight + ownTop;
		}			
	}

	var pl = popleft; //popobj.offsetLeft;
	var pt = poptop; //popobj.offsetTop;
	var pw = popobj.offsetWidth;
	var ph = popobj.offsetHeight;
	
	var mw = pl + pw;
	var mh = pt + ph;

	if (!style || style == 'free' || style == '' || style == 'f') {
		if (mw > bodyWidth) popleft = pl - pw; 
		if (mh > bodyHeight) poptop = pt - ph;
	} else {
		if (style == 'h' || style == 'horizontal') {
			if (mw > bodyWidth) popleft = pl - pw;
			if (mh > bodyHeight) popttop = pt - ph;
		}
		if (style == 'v' || style == 'vertical') {
			if (mw > bodyWidth) popleft = (pl - pw) + ownWidth + 1;
			if (mh > bodyHeight) poptop = (pt - ph) - ownHeight;
		}
	}

	if (isIE()) {
		hideElement("SELECT");
		hideElement("IFRAME");
		hideElement("OBJECT");
	}

	popobj.style.left = popleft.toString() + 'px';
	popobj.style.top = poptop.toString() + 'px';
	popobj.style.visibility = "inherit";	
}

function HidePopupMenu(name) {
	if (!name || name == '') return;
	if (ActivePopup == null) return;
	var popobj = FindObj(name);
	popobj.style.visibility = 'hidden';
	ActivePopup = null;
	ClearTimeOut();

	ToolPopupControl(0);
		
	if (isIE()) {
		showElement("SELECT");
		showElement("IFRAME");
		showElement("OBJECT");
	}
}

function HideSubPopupMenu(name) {	
	if (!name || name == '') return;
	if (ActiveSubPopup == null) return;
	var popobj = FindObj(name);
	popobj.style.visibility = 'hidden';
	ActiveSubPopup = null;
	ShowSubPopup = false;
	ClearTimeOut();
	
	if (isIE()) {
		showElement("SELECT");
		showElement("IFRAME");
		showElement("OBJECT");
	}
}

function ClearTimeOut() {
	if (HideMenuTimer) clearTimeout(HideMenuTimer);
	HideMenuTimer = null;
	HideMenuFlag = false;
}

function StartTimeOut() {	
	Start = new Date();
	HideMenuFlag = true;
	HideMenuTimer = setTimeout("PopupLoop()", 500);
}

function PopupLoop()
{
	if (!HideMenuFlag) return;
	var elapsed = new Date() - Start;
	if (elapsed < 500) {
		HideMenuTimer = setTimeout("PopupLoop()", 1100-elapsed);
		return;
	}
	HideMenuFlag = false;
	if (ActiveSubPopup != null) {
		HideSubPopupMenu(ActiveSubPopup);
		StartTimeOut();
	} else {
		HidePopupMenu(ActivePopup);
	}
}

function SetActiveMenu(name, subpop) {
	if (subpop && ActivePopup != null) MainPopupControl(1);
	ActiveMenu = name.id;
	ActiveMenuSub = subpop;
}
