var activeObject = null;
var enter = false;
var GXLastKeyCode;
var GXBShiftPressed;
var GXLastEvtControl = null;
var GXKeyListener = new Object;
var GXKeyListenerContext = new Object;

function setEnterEvent()
{
	document.forms[0]._EventName.value = 'EENTER.';
	if (navigator.appName != "Netscape")
	activeObject = document.activeElement;
	enter=true;
}

function gxcancelEvent(event, cancel)
{
	if (event.preventDefault == undefined)
	{
		event.cancelBubble = cancel;
		event.returnValue = !cancel;
	}
	else
	{				
		if (cancel)
		{
			event.preventDefault();
			event.stopPropagation();
		}
	}
}

function form_onkeypress(xevent, hasenter, skiponenter)
{
	if ((xevent==null) && (!window.event)) { return; }
	if ((xevent!=null) && (window.event)) { return; }
	var event = (xevent==null ? window.event : xevent);
	var cancel;
	GXLastKeyCode = event.keyCode;
	GXShiftPressed = event.shiftKey;
	
	gxChkFncKey(event);
	
	if (event.keyCode == 13)
	{
		if (skiponenter)
		{
			if (gxEnterBtnHasFocus() && hasenter)
				setEnterEvent();
			else
			{
				gxSkipFocus();
				gxcancelEvent(event, true);
				enter=false;
			}
		}
		else
		{
			if( hasenter)
			{
				setEnterEvent();
			}
			else
			{
				activeObject = document.activeElement;

				cancel = true;

				if(activeObject != null)
				{
					if( activeObject.nodeName == "A" || activeObject.nodeName == "TEXTAREA")
					{
						cancel = false;
					}
					else if( activeObject.nodeName == "INPUT")
					{
						if(	activeObject.attributes.item('type').value == "submit" ||
						    activeObject.attributes.item('type').value == "image")
						{
							cancel = false;
						}
					}
				}

				gxcancelEvent(event, cancel);
				enter=false;
			}
		}
	}
}

function GX_setevent( Name)
{
	var cancel;
	
	if(!document.forms[0]._EventName)
	{
		return;
	}

	if( navigator.appName == "Netscape")
	{
		document.forms[0]._EventName.value = Name;
	}
	else
	{
		cancel = true;

		if (enter && activeObject != null)
		{
			if( activeObject.nodeName == "A" || activeObject.nodeName == "TEXTAREA")
			{
				cancel = false;
			}
			else if(activeObject.nodeName == "INPUT")
			{
				if ( activeObject.attributes.item('type').value == "submit" ||
					activeObject.attributes.item('type').value == "image")
				{
					cancel = false;
				}
			}
		}
		else
		{
			cancel = false;
		}

		if( !cancel)
		{
			document.forms[0]._EventName.value = Name;
		}
	}
}

function GX_setgridevent( GridId, RowId)
{
			document.forms[0]._EventGridId.value = GridId;
			document.forms[0]._EventRowId.value = RowId;
}

function gxaddKeyListener( EventName , nKey )
{
	if (nKey == 1)
		document.body.onhelp = function() {return false;}
	GXKeyListener[nKey] = EventName;
}

function gxaddWCKeyListener( CmpContext, nKey )
{
	if (GXKeyListenerContext[nKey] == undefined)
		GXKeyListenerContext[nKey] = CmpContext;
}
function gxChkFncKey(event)
{
	var FncKey = GXLastKeyCode - 111;
	if (FncKey > 0 && FncKey <=  12 && (GXKeyListener[FncKey] != undefined))
	{
		sWCContext = GXKeyListenerContext[FncKey]||'';
		GX_setevent(sWCContext + "E'"+ GXKeyListener[FncKey] + "'.");
		gxcancelEvent(event, true);
		if (window.event != undefined)
			event.keyCode = 0;
		gxSubmit();
	}
}
