var val = {
  'email': {
    'regexp': /^.+?@.+?\..+$/,
    'error': 'Please enter a valid e-mail address. ' +
        'It should be of the form someone@example.com.'
  },
  'areacode': {
    'regexp': /^[0-9]{3,}$/,
    'error': 'The area code must be three digits.'
  },
  'phone': {
    'regexp': /^[0-9]{6,7}$/,
    'error': 'A phone number must have an area code + six or seven digits.'
  },
  'name': {
    'regexp': /^.+$/,
    'error': 'Please enter your name.'
  }
};

//checkValidSubmit: 
//	if (frm.elements[i].name && validationSet[frm.elements[i].name]

function validateForm(e)
{
	// serialize form into object
	var form = $('contact_form').serialize(true);
	// first, assume we are good to go
	form.ok = true;

	// create list of fields to check
	var list = {
	 	name: form['first_name'] + form['last_name'],
		areacode: form['areacode'],
		phone: form['phone_1'] + form['phone_2'],
		email: form['email']
	}
	var errorList = "";
	for(var field in list)
	{	
		if(val[field])
		{
			var value = list[field];
			var re = val[field].regexp;
			var errorMsg = val[field].error;
			var label = (field=='phone') ? ($('contact_form').getElementsBySelector('label[for=areacode]')[0] || false) :
				($('contact_form').getElementsBySelector('label[for='+field+']')[0] || false);
			console.log('label[for='+field+'_2]');
		}
		// field must be non-empty
		if(value.length == 0)
		{
			errorList += field.capitalize() + " is empty. Please correct and resubmit.\n";
			form.ok=false;
			// add error class to label
			if(label)
			{
				label.addClassName('error');
			}			
			continue;
		}
		// field must match regular expression
		else if(val[field] && !value.match(re))
		{
			errorList += errorMsg + "\n";
			form.ok=false;
			// add error class to label
			if(label)
			{
				label.addClassName('error');
			}
			continue;
		}
		else
		{
			// field is valid, remove error class from label
			if(label)
			{
				label.removeClassName('error');
			}
		}
	}
	
	// If there are any errors, alert user.
	if(errorList.length > 0)
		alert(errorList);
	
	if(!form.ok)
	{
		// Stop submission.
		e.stop();
		return false;
	}
	// Everything is OK.
	// Form will now be submitted.
}		
