// Simulates the "click" event for a form element's bound action element (e.g. button, image button, e.g.)
function bindEnter(e) 
{
	var e = e || window.event;
	var kCode = e.keyCode || e.which;

	if (kCode && '13' == kCode) {
		var passthroughElements = "image|submit|button";

		if (e.srcElement)
			elementType = e.srcElement.getAttribute("type");
		else
			elementType = e.target.getAttribute("type");

		// Check to make sure user is not actually clicking Enter
		// while focus is on a button-type element
		if (passthroughElements.indexOf(elementType) == -1) {
			if (e.srcElement)
				var binding = e.srcElement.getAttribute("binding");
			else
				var binding = e.target.getAttribute("binding");

			if (binding != null && binding != "")
			{
				// Lose the binding to avoid "double-click" syndrome
				if (e.srcElement)
					e.srcElement.setAttribute("binding", "");
				else
					e.target.setAttribute("binding", "");
					
				document.getElementById(binding).click();
				
				if(e.preventDefault)
				{
					e.preventDefault();
					e.stopPropagation();
				}
				else if (e.returnValue)
				{
					e.srcElement.blur();
					e.cancelBubble = true;
					e.returnValue = false;
				}

				return false;
			}
		}
	}
	
	return true;
}

function addEvt()
{
	var el = document.forms[0];

	if (el.addEventListener)
	{
		// For Gecko, use the setTimeout hack
		el.addEventListener('keypress', bindEnter, true);
	} 
	else if (el.attachEvent)
	{
		// For IE, just return false if Esc pressed
		el.attachEvent('onkeydown', bindEnter);
	}
}

window.onload = function() {
	addEvt();
}