var arrKeyPressActions = new Array();
var arrKeyPressKeys = new Array();
var currFocussedElement = null;

function focusElement(id)
{
	if(currFocussedElement == null || currFocussedElement == 'SiteSearch')
	{
		var el = document.getElementById(id);
		if(el)
		{
			el.focus();
			currFocussedElement = id;  
		}
	}
}

function addAction(key, action)
{
	//add action key with name of function to be called
	//without params
	var i = arrKeyPressActions.length;
	arrKeyPressKeys[i] = key;
	arrKeyPressActions[i] = action;
}

function addReturnKeyAction(action)
{
	addAction('13',action);
}
function addReturnKeyButton(buttonId)
{
	addAction('13','clickButton("' + buttonId + '")');
}


function clickButton(buttonid)
{
	var button = document.getElementById(buttonid);
	
	if(button)
	{	
		var href = unescape(button.href);

		if(href.indexOf('javascript:') == 0)
		{
			href=href.substr(11,href.length-11);
		} else {
			href = 'document.location.href="' + href + '"';
		}
		eval(href);
	}
}


function performAction(key)
{
	//go through list of keys
	for(var i = 0; i < arrKeyPressActions.length; i++)
	{
		//if match found
		if(arrKeyPressKeys[i] == key)
		{
			//evaluate function name without params
			var act = arrKeyPressActions[i];
			if(act.indexOf("(") == -1) act += "()";
			var hasExecuted = eval(act);
			if(hasExecuted != null)
			{
				if(hasExecuted)
				{
					return true;
				}
			}
		}
	}
	return false;
}

function captureKeyPress(evt) {
	var isIE = navigator.userAgent.toLowerCase().indexOf("msie") > -1;
	var keyCode = "";
	var ctrlPressed = false;
	
	if(isIE)
	{
		keyCode = event.keyCode;
		ctrlPressed = event.ctrlKey;
	}
	else
	{
		//mozilla is only other browser used for Collaborate
		keyCode = evt.keyCode;
		ctrlPressed = evt.ctrlKey;
	}
	if(ctrlPressed && keyCode != "17" || keyCode == "13")
	{
		if(performAction(keyCode))
		{
			if(isIE)
			{
				event.cancelBubble = true;
				event.returnValue = false;
			}
			return false;
		}
	}
}
document.onkeydown = captureKeyPress;