function validate(form) {
		var errs = 0, ndx = 0;
		if($('lbl_description')) $('lbl_description').removeClass('error');
		if($('lbl_copy')) $('lbl_copy').removeClass('error');
		if($('lbl_photography')) $('lbl_photography').removeClass('error');
		if($('lbl_timeline')) $('lbl_timeline').removeClass('error');
		// $('lbl_budget').removeClass('error');
		if($('lbl_type')) $('lbl_type').removeClass('error');
		if($('lbl_email')) $('lbl_email').removeClass('error');
		if($('lbl_lname')) $('lbl_lname').removeClass('error');
		if($('lbl_fname')) $('lbl_fname').removeClass('error');
		// validate in reverse order to set focus on the first one in error.
		if(form.description.value =='') { $('lbl_description').addClass('error'); errs += 1; }
		if( form.copy.selectedIndex == 0 ) { $('lbl_copy').addClass('error'); errs += 1; }
		if( form.photography.selectedIndex == 0 ) { $('lbl_photography').addClass('error'); errs += 1; }
		if( form.timeline.selectedIndex == 0 ) { $('lbl_timeline').addClass('error'); errs += 1; }
		if( form.type.selectedIndex == 0 ) { $('lbl_type').addClass('error'); errs += 1; }
		if(form.email.value =='' || !validateEmail(form.email) ) { $('lbl_email').addClass('error'); errs += 1; }
		if(form.lname.value =='') { $('lbl_lname').addClass('error'); errs += 1; }
		if(form.fname.value =='') { $('lbl_fname').addClass('error'); errs += 1; }
		this.reportErrors(errs);	
		return (errs==0);
}

function reportErrors (cnt) {
	var f = $('log_res');
	if(cnt==0) {
		f.empty().removeClass("ajax-response");
	} else {
		var msg = (cnt >1) ? "There are required fields" : "There is a required field";
		f.set('html', "<span id='validerr' class='error'>Check: " + msg + " to be fixed before sending.</span>");
	}
}

function validateEmail  (valfield) {   // element to check
  var tfld = trim(valfield.value);  // value of field with whitespace trimmed off
  var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/  ;
  if (!email.test(tfld)) {
    return false;
  } else return true;
}

function trim(str) { 
	return str.replace(/^\s+|\s+$/g, ''); 
}