if (!eB)
{
	var eB = {};
}

eB["Submission"] = new function()
{
	function isEmailAddr(email)
	{
		var result = false;
		var theStr = new String(email);
		var index = theStr.indexOf("@");
		if (index > 0)
		{
			var pindex = theStr.indexOf(".", index);
			if ((pindex > index + 1) && (theStr.length > pindex + 1))
				result = true;
		}
		return result;
	}

	function validRequired(formField, fieldLabel)
	{
		var result = true;

		if (formField.value == "" || formField.value == fieldLabel)
		{
			alert('Please enter a value for the "' + fieldLabel + '" field.');
			formField.focus();
			result = false;
		}

		return result;
	}


	function validEmail(formField, fieldLabel, required)
	{
		if (required && !validRequired(formField, fieldLabel))
			return false;

		if ((formField.value.length < 3) || !isEmailAddr(formField.value) || formField.value == fieldLabel)
		{
			alert("Please enter a complete email address in the form: yourname@yourdomain.com");
			formField.focus();
			return false;
		}

		return true;

	}

	function validCountry(formField, fieldLabel)
	{
		var result = true;
		if (formField.length)
		{
			var numElements = (formField.length);
			for (var i = 0; i < numElements; i++)
			{
				if (formField[i].selected == true && formField[i].value == '00')
				{
					alert("select a " + fieldLabel)
					formField.focus();
					result = false;
				}
			}
		}
		return result;
	}

	// Validates the form 'formObj' using arguments specified in groups of three:
	// arg 1 - id of field.
	// arg 2 - type of field, "required", "email", "country".
	// arg 3 - Human-friendly name of field to display if field is not valid.
	this.validate = function(formObj)
	{
		var fail = false;
		for (var i = 1; i < arguments.length; i += 3)
		{
			switch (arguments[i + 1])
			{
				case "required":
					fail |= !validRequired(formObj[arguments[i]], arguments[i + 2]);
					break;
				case "email":
					fail |= !validEmail(formObj[arguments[i]], arguments[i + 2]);
					break;

				case "country":
					fail |= !validCountry(formObj[arguments[i]], arguments[i + 2]);
					break;
			}
		}
		return !fail;
	}
}