function check(form)
	{
	// gather data first
	// what is "filled out" status of each of following
	// each below returns true or false
	
	n = textBox(form.UNAME);
	
	e = email(form.EMAIL);
	el = form.EMAIL.value.length;
	
	t = phoneOneBox(form.PHONE);
	tl = form.PHONE.value.length;

	// if no information entered
	if ( !n && !e && !t )
		{
		//We need email address so we can respond.
		alert("We need some basic information so we can reply to you!\n(1) Your name\n(2) email AND/OR phone number.");
		form.UNAME.focus();
		return false;
		}

	// if user began to enter phone number, make sure it's complete/valid
	if ( !t && tl>0 )
		{
		alert("Please enter your phone number in a standard format: ###-###-####.");
		form.PHONE.focus();
		return false;
		}

	// if user began to enter email, make sure it's complete/valid.
	if ( !e && el>0 )
		{
		alert("Please enter a valid email.");
		form.EMAIL.focus();
		return false;
		}

	// if neither email nor telephone entered, will prompt user to input at least one of them.
	if ( !e && !t )
		{
		//We need your email so we can reply to you.
		alert("Please enter your phone AND/OR email so we can contact you.");
		form.EMAIL.focus();
		return false;
		}

	// if no name entered
	if ( !n )
		{
		alert("Please enter your name.");
		form.UNAME.focus();
		return false;
		}

	return true;
	}


// ------------------------------


// straight text box
function textBox(form)
	{
	if ( form.value.length == 0 )
		{ return false; }
	return true;
	}

// email
function email(form)
	{
	var filter = /^[A-Za-z0-9][A-Za-z0-9\_\-\.]*\@[A-Za-z0-9][A-Za-z0-9\_\-\.]*\.[A-Za-z]{2,5}$/;
	var filter2 = /(\.\.+)|(\@\@+)|(\_\_+)|(\-\-+)/;
	if( (!filter.test( form.value ))  || ( filter2.test( form.value )) )
		{ return false; }
	return true;
	}

// phone number; checks for serveral formats:
// (###) ###-####
// ###-###-####
// ###.###.####
function phoneOneBox(field)
	{
	var objRegExp  = /^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$/;
	var objRegExp2  = /^(\d{3})[.| |]?(\d{3})[.| ]?(\d{4})$/;
	if ( !objRegExp.test(field.value)   &&   !objRegExp2.test(field.value)  )
		{ return false; }
	return true;
	}
