﻿// JScript File

function ContextMenuControl()
{

	this._innerList = new Array();

	this.Add = function(objContextMenuControlItem)
	{
		this._innerList.push(objContextMenuControlItem);
	}
	
	this.GetContextItems = function(id)
	{
		var objContextItems = new Array();
		var intTotalCount = this._innerList.length;
		
		for(var intIndex = 0; intIndex< intTotalCount; intIndex++)
		{
			var objContextMenuControlItem = this._innerList[intIndex];
			
			if(objContextMenuControlItem.Id == id)
			{
				intInnerCount = objContextMenuControlItem._innerList.length;
				
				for(var intInnerIndex = 0; intInnerIndex< intInnerCount; intInnerIndex++)
				{
					objContextItems.push(objContextMenuControlItem._innerList[intInnerIndex]);
				}
			}
			
		}
		
		return objContextItems;
	}
	
	this.GetContextMenuControlItem = function(id)
	{
		var intTotalCount = this._innerList.length;
		
		for(var intIndex = 0; intIndex< intTotalCount; intIndex++)
		{
			var objContextMenuControlItem = this._innerList[intIndex];
			
			if(objContextMenuControlItem.Id == id)
			{
				return objContextMenuControlItem;
			}
			
		}
		
		return null;
	}
	
	this.showContextMenu = function(e, id)
	{
		var oContextMenuTable = document.getElementById('ContextMenuTable');
		var isRightClick = false;
		//var oTBody = null;
		
		if(oContextMenuTable == null)
		{
		
			var main_window = window;
			var aBody = main_window.document.getElementsByTagName('body');
	
			
			oContextMenuTable = document.createElement('TABLE');
			oContextMenuTable.id = 'ContextMenuTable';		
			oContextMenuTable.className = 'ContextMenu';
			oContextMenuTable.style.position = 'absolute';
			oContextMenuTable.style.display = 'none';
			
			aBody[0].appendChild(oContextMenuTable);
			
			//oTBody = document.createElement("TBODY");
			//oContextMenuTable.appendChild(oTBody);
		}
		
		
		if(oContextMenuTable != null)
		{
			
		
			if(!e)
			{
				e = window.event;
			}
		
			if (e.which) isRightClick = (e.which == 3);
			else if (e.button) isRightClick = (e.button == 2);

			if((e.type == 'contextmenu')||(isRightClick))
			{	
				//Remove any rows 
				while(oContextMenuTable.rows.length>0)
				{
					oContextMenuTable.deleteRow(oContextMenuTable.rows.length - 1);
				}
				
				var objContextMenuControlItem = this.GetContextMenuControlItem(id);
				if(objContextMenuControlItem != null)
				{
				
					var objContextItems = this.GetContextItems(id);
					var intContextItemCount = objContextItems.length;

				
					//Add title to menu.
					var oTr = oContextMenuTable.insertRow(oContextMenuTable.rows.length);
					var oTd = oTr.insertCell(0);
					var textNode = document.createTextNode(objContextMenuControlItem.Text);
					oTd.title = objContextMenuControlItem.ToolTip;
					oTd.appendChild(textNode);
					
					

					for(var intContextItemIndex = 0; intContextItemIndex < intContextItemCount; intContextItemIndex++)
					{
						//Add new menu items for the selected control.
						oTr = oContextMenuTable.insertRow(oContextMenuTable.rows.length);
						oTd = oTr.insertCell(0);
						oAnchor = document.createElement('A');
						textNode = document.createTextNode(objContextItems[intContextItemIndex].Text);
						oAnchor.appendChild(textNode);
						oAnchor.href = objContextItems[intContextItemIndex].Href;
						oAnchor.target = objContextItems[intContextItemIndex].Target;
						oAnchor.title = objContextItems[intContextItemIndex].ToolTip;
						oTd.appendChild(oAnchor);
					}
					
				
					var menuOffset = 2
					oContextMenuTable.style.left = e.x - menuOffset;
					oContextMenuTable.style.top = e.y - menuOffset;
					oContextMenuTable.style.display = '';
					e.cancelBubble = true;
			    
					return false;
				}
			}
		}
	    
		return true;
	}
}


function ContextMenuControlItem(id, zoneId, text, toolTip, objContextItems)
{
	this.Id = id;
	this.ZoneId = zoneId;
	this.Text = text;
	this.ToolTip = toolTip;
	this._innerList = objContextItems;
}


function ContextItem(text, toolTip, href, target)
{
	this.Text = text;
	this.ToolTip = toolTip;
	this.Href = href;
	this.Target = target;
}



ContextMenuControl.prototype._innerList = null;

ContextMenuControlItem.prototype.Id = '';
ContextMenuControlItem.prototype.ZoneId = '';
ContextMenuControlItem.prototype.Text = '';
ContextMenuControlItem.prototype.ToolTip = '';
ContextMenuControlItem.prototype._innerList = null;

ContextItem.prototype.Text = '';
ContextItem.prototype.ToolTip = '';
ContextItem.prototype.Href = '';
ContextItem.prototype.Target = '';

mobjContextMenuControl = new ContextMenuControl();

