/*******************************************************************************
*
*	Project		:	O3L FNI
*
*	File		:	O3L_FNIKeys.js
*
*	Copyright	:	Data Broadcast Services Pty Ltd
*					All rights reserved.
*
*	Purpose		:	Provide a basic extensible key lib
*
*	Public Functions: 	O3_KeyPress()
*
*
*		
*******************************************************************************/


/*******************************************************************************
Globals
*******************************************************************************/
// NO GLOBALS REQUIRED


/*******************************************************************************
Functions
*******************************************************************************/

/*******************************************************************************
Initialisation
*******************************************************************************/

// Register the event handling


// document.attachEvent("onkeydown",O3_KeyPress);

O3_AddEvent(document, "keydown", O3_KeyPress, true);
//O3_AddEvent(document, "keypress", O3_KeyPress, true);

// These should be included from O3_Events 
function O3_AddEvent(xi_obj, xi_evType, xi_function, xi_useCapture)
{
	var	rv = true;
	if (xi_obj.addEventListener)
	{
		xi_obj.addEventListener(xi_evType, xi_function, xi_useCapture);
	}
	else if (xi_obj.attachEvent)
	{
		rv = xi_obj.attachEvent("on"+xi_evType, xi_function);
	}
	return rv;
} 

function O3_RemoveEvent(xi_obj, xi_evType, xi_function, xi_useCapture)
{
	var	rv = true;
	if (xi_obj.removeEventListener)
	{
		xi_obj.removeEventListener(xi_evType, xi_function, xi_useCapture);
	}
	else if (xi_obj.attachEvent)
	{
		rv = xi_obj.detachEvent("on"+xi_evType, xi_function);
	}
	return rv;
} 

/*******************************************************************************
*
*	Scope		:	PUBLIC
*	Function	:	O3_KeyPress()
*
*	Purpose		:	Performs a "click" event on the standard objects for KeyPress
*
*	Parameters	:	None
*
*
*	Returns		:	KeyCode of pressed key
*
*	JavaScript	:	1.3
*
*	Assumptions	:	The click event on the appropriate object handles form submission.
*
*
*******************************************************************************/

function O3_KeyPress(xi_Event)
{
		var KeyCode;
		var TargetObj;
		
		O3_RemoveEvent(document, "keydown", O3_KeyPress, true);
		//KeyCode=window.event.keyCode;
		KeyCode=xi_Event.keyCode;
		switch (KeyCode)
		{
			// Manage ESC events	
			case 27:
			{	
				if(xi_Event.preventDefault) xi_Event.preventDefault(); // Stop firefox stopping it
				if (TargetObj=document.getElementById("Cmd_Cancel_img"))
				{
					TargetObj.onclick();
				}
				else if (TargetObj=document.getElementById("Cmd_Cancel_text"))
				{
					TargetObj.onclick();
				}
				else if (TargetObj=document.getElementById("Cmd_Close_text"))
				{
					TargetObj.onclick();
				}
				else if (TargetObj=document.getElementById("Cmd_Close_img"))
				{
					TargetObj.onclick();
				}
				
			};
			break;
		
			// Manage ENTER events	
			case 13:
			{	
				if(xi_Event.preventDefault) xi_Event.preventDefault(); // Stop firefox stopping it
				if (TargetObj=document.getElementById("Cmd_Save_img"))
					TargetObj.onclick();
				else if (TargetObj=document.getElementById("Cmd_Save_text"))
					TargetObj.onclick();
				else if (TargetObj=document.getElementById("Cmd_Edit_img"))
					TargetObj.onclick();
				else if (TargetObj=document.getElementById("Cmd_Edit_text"))
					TargetObj.onclick();
				else if (TargetObj=document.getElementById("Cmd_Add_img"))
					TargetObj.onclick();
				else if (TargetObj=document.getElementById("Cmd_Add_text"))
					TargetObj.onclick();
				// Prevent the Enter Returning...
				KeyCode="";
					
			};
			break;

			// Manage DEL events	
			case 46:
			{	
				if (TargetObj=document.getElementById("Cmd_Delete_img"))
					TargetObj.onclick();
				else if (TargetObj=document.getElementById("Cmd_Delete_text"))
					TargetObj.onclick();
									
			};
			break;
		}

		return KeyCode;
		
}

