addEvent(window, 'load', initFormCheck);

var formElement = 'content';

function initFormCheck ()
{
	if(document.getElementsByTagName)
	{
		var content = document.getElementById(formElement);
		if (content == null) return;
		var obj = content.getElementsByTagName('input');
		initFormElements(obj, true);
		obj = content.getElementsByTagName('select');
		initFormElements(obj, false);
	}
}

function initFormElements(obj, useConf)
{
	for (var i=0;i<obj.length;i++)
	{
		// make tab behave in forms
		var eName = obj[i].nodeName.toLowerCase();
		if (obj[i].getAttribute('type') !== 'hidden')
		{
			obj[i].onkeypress = function(e)
			{
				return checkFormKeypress(e);
			};
			// use confirm function
			if (useConf && obj[i].className.indexOf('confirm') != -1)
			{
				addEvent(obj[i],'click',showConfirm, false);
			}
		}
	}
}

function checkFormKeypress (e)
{
	if (!e) e = window.event;
	if (e.keyCode==13)
	{
		var node = e.target ? e.target : ((e.srcElement) ? e.srcElement : null);
		var eName = node.nodeName.toLowerCase();
		if
			(
				(eName == 'input' || eName == 'button')
				&&
				(node.getAttribute('type') == 'submit' || node.getAttribute('type') == 'image')
			)
		{
			return true;
		}
		node = getNextFormElement(node);
		if (node.focus)
		{
			node.focus();
		}
		return false;
	}
}


function getNextFormElement(field)
{
	var form = field.form;
	var i;
	// find field in form
	for (i = 0; i < form.elements.length; i++)
	{
		if (field == form.elements[i])
		{
			break;
		}
	}
	for (i++; i < form.elements.length; i++)
	{
		var eName = form.elements[i].nodeName.toLowerCase();
		if
			(
				(eName === 'input' || eName === 'select' || eName === 'textarea' || eName === 'button')
				&&
				form.elements[i].getAttribute('type') !== 'hidden'
			)
		{
			return form.elements[i];
		}
	}
	return null;
}


var confirmText = 'Confirm action';

function showConfirm (event)
{
	if (!this.title || this.title == "")
	{
		this.title = confirmText;
	}
	if (!confirm(this.title + '?'))
	{
		cancelEvent(event);
	}
}
