var FormHandler = {};

FormHandler.defaults = new Array();
FormHandler.defaults["name_first"] = "First Name";
FormHandler.defaults["name_last"] = "Last Name";
FormHandler.defaults["email_addr"] = "Email";
FormHandler.defaults["org_name"] = "Organization";

FormHandler.touched = new Array();
FormHandler.hasBeenSubmitted = false;

FormHandler.init = function(form)
{
	var i, c, el, defaultVal;
	if (!FormHandler.hasBeenSubmitted)
	{
		for (i = 0, c = form.elements.length; i < c; i++)
		{
			el = form.elements[i];
			if (el.name && (defaultVal = FormHandler.defaults[el.name]))
			{
				//el.value = defaultVal;
			}
		}
	}
}

FormHandler.onfocus = function(el)
{
	if (!FormHandler.touched[el.name])
	{
		el.value = "";
		FormHandler.touched[el.name] = true;
	}
}

FormHandler.onchange = function(el)
{
	if ((!el.value.length) ||
			(el.value == FormHandler.defaults[el.name]))
	{
		alert("Please enter a value for "+FormHandler.defaults[el.name]);
		el.value = FormHandler.defaults[el.name]
		el.focus();
	}
}

FormHandler.onsubmit = function(form)
{
	var i, c, el, defaultVal;
	for (i = 0, c = form.elements.length; i < c; i++)
	{
		el = form.elements[i];
		if (el.name && (defaultVal = FormHandler.defaults[el.name]))
		{
			if (el.name == "email_addr")
			{
				if (!el.value.match(/^[0-9a-z][_\.0-9a-z-]*@[_0-9a-z][_0-9a-z\.-]+\.[a-z]{2,6}$/i))
				{
					alert("Please enter a value for "+defaultVal);
					el.value = defaultVal;
					el.focus();
					return false;
				}
			}
			else if ((!el.value.length) ||
							 (el.value == defaultVal))
			{
				alert("Please enter a value for "+defaultVal);
				el.value = defaultVal;
				el.focus();
				return false;
			}
		}
	}
	return true;
}
