/* Blue River Digital API - Events **********************************
 *	
 *	This API contains all the functions related to events:
 *		- Mouse Events
 *		- Keyboard Events
 *
 ***************************************************************************/
 
 	var keyEnterFocus = "";
 	var enterKeyAction = "";
	
 // Register Keyboard Events
 
 	addKeyUpEvent(keyActions);

// Keyboard Functions

	function keyActions(e)
	{
		if (!e) e = window.event;
		/*var keyInfo = String.fromCharCode(e.keyCode) + '\n';
		keyInfo += 'Event: ' + e.type + '\n\n';
		keyInfo += 'You pressed: ' + String.fromCharCode(e['keyCode']) + ' [Decimal: ' + e['keyCode'] + ']\n';
		keyInfo += 'ALT: ' + e['altKey'] + '\n';
		keyInfo += 'CTRL: ' + e['ctrlKey'] + '\n';
		keyInfo += 'SHIFT: ' + e['shiftKey'] + '\n';
		keyInfo += 'REPEAT: ' + e['repeat'] + '\n';
		keyInfo += 'WHICH: ' + e['which'];
		document.forms[1].log.value = keyInfo;
		
		if (e['ctrlKey'])
		{
			ctrlIsDown = true;
		}
		else
		{
			ctrlIsDown = false;
		}
		*/
		
		if (e.keyCode == 13) // Enter Key
		{
			if (keyEnterFocus != "")
			{
				document.getElementById(keyEnterFocus).focus();
			}
			
			// Used Mainly for textbox submits *******************
			if (enterKeyAction != "")
			{
				eval(enterKeyAction);
			}
		}
	}


/* Add Event List: ********************************************************
*
*		onload
*		mousemove
*		mousedown
*		mouseup
*		onkeyup
*
* *************************************************************************


/* Add Load Event **********************************************************
*
*	TAKES:		Function name (Ex: functionCall)
*	RETURNS:	NOTHING
*	NOTE:		Allows multiple event fucntion calls from various include
*				script sources. Adds each subsequesnt event function call
*				to the action list.
*
**************************************************************************/

	function addLoadEvent(func)
	{
	 	if (thisBrowser == "Safari")
		{

			if(window.addEventListener)
			{
				window.addEventListener('load', func, false);
			}
			else if(window.attachEvent)
			{
				window.attachEvent('onload', func);
			}
		}
		else
		{
		
			var oldonload = window.onload;
			
			if (typeof window.onload != 'function')
			{
				// assigns function directly
				window.onload = func;
			}
			else
			{
				
				// Creates a new onload function  with old and new function calls
				window.onload = function(e)
				{
					if (oldonload)
					{
						oldonload(e);
					}
					
					func(e);
				}
			}
		}
	}


/* Add Mouse Move Event **********************************************************
*
*	TAKES:		Function name (Ex: functionCall)
*	RETURNS:	NOTHING
*	NOTE:		Allows multiple event fucntion calls from various include
*				script sources. Adds each subsequesnt event function call
*				to the action list.
*
**************************************************************************/

	function addMouseMoveEvent(func)
	{
	 
		var oldEvent = document.onmousemove;
		
		if (typeof document.onmousemove != 'function')
		{
			// assigns function directly
			document.onmousemove = func;
		}
		else
		{
			// Creates a new onload function  with old and new function calls
			document.onmousemove = function()
			{
				if (oldEvent)
				{
					oldEvent();
				}
				
				func();
			}
		}
	}


/* Add Mouse Down Event **********************************************************
*
*	TAKES:		Function name (Ex: functionCall)
*	RETURNS:	NOTHING
*	NOTE:		Allows multiple event fucntion calls from various include
*				script sources. Adds each subsequesnt event function call
*				to the action list.
*
**************************************************************************/

	function addMouseDownEvent(func)
	{
	 
		var oldEvent = document.onmousedown;
		
		if (typeof document.onmousedown != 'function')
		{
			// assigns function directly
			document.onmousedown = func;
		}
		else
		{
			// Creates a new onload function  with old and new function calls
			document.onmousedown = function()
			{
				if (oldEvent)
				{
					oldEvent();
				}
				
				func();
			}
		}
	}


/* Add Mouse Up Event **********************************************************
*
*	TAKES:		Function name (Ex: functionCall)
*	RETURNS:	NOTHING
*	NOTE:		Allows multiple event fucntion calls from various include
*				script sources. Adds each subsequesnt event function call
*				to the action list.
*
**************************************************************************/

	function addMouseUpEvent(func)
	{
	 
		var oldEvent = document.onmouseup;
		
		if (typeof document.onmouseup != 'function')
		{
			// assigns function directly
			document.onmouseup = func;
		}
		else
		{
			// Creates a new onload function  with old and new function calls
			document.onmouseup = function()
			{
				if (oldEvent)
				{
					oldEvent();
				}
				
				func();
			}
		}
	}
	
	
/* Add Key Up Event **********************************************************
*
*	TAKES:		Function name (Ex: functionCall)
*	RETURNS:	NOTHING
*	NOTE:		Allows multiple event fucntion calls from various include
*				script sources. Adds each subsequesnt event function call
*				to the action list.
*
**************************************************************************/

	function addKeyUpEvent(func)
	{
	 
		var oldEvent = document.onkeyup;
		
		if (typeof document.onkeyup != 'function')
		{
			// assigns function directly
			document.onkeyup = func;
		}
		else
		{
			// Creates a new onload function  with old and new function calls
			document.onkeyup = function(e)
			{
				if (oldEvent)
				{
					oldEvent(e);
				}
				
				func(e);
			}
		}
	}
	
/* Add Resize Event **********************************************************
*
*	TAKES:		Function name (Ex: functionCall)
*	RETURNS:	NOTHING
*	NOTE:		Allows multiple event fucntion calls from various include
*				script sources. Adds each subsequesnt event function call
*				to the action list.
*
**************************************************************************/

	function addResizeEvent(func)
	{
	 
		var oldEvent = window.onresize;
		
		if (typeof window.onresize != 'function')
		{
			// assigns function directly
			window.onresize = func;
		}
		else
		{
			// Creates a new onload function  with old and new function calls
			window.onresize = function()
			{
				if (oldEvent)
				{
					oldEvent();
				}
				
				func();
			}
		}
	}
	
/* Add Scroll Event **********************************************************
*
*	TAKES:		Function name (Ex: functionCall)
*	RETURNS:	NOTHING
*	NOTE:		Allows multiple event fucntion calls from various include
*				script sources. Adds each subsequesnt event function call
*				to the action list.
*
**************************************************************************/

	function addScrollEvent(func)
	{
	 
		var oldEvent = window.onscroll;
		
		if (typeof window.onscroll != 'function')
		{
			// assigns function directly
			window.onscroll = func;
		}
		else
		{
			// Creates a new onload function  with old and new function calls
			window.onscroll = function()
			{
				if (oldEvent)
				{
					oldEvent();
				}
				
				func();
			}
		}
	}

