function validate(form) {
	var process = true;
	var errMsg = 'Following fields are required:';
	var focusEl = null;
	if(!form.elements.fname.value.match(/^[A-Z]+$/i )) {
		errMsg += '\no\tFirst Name';
		if(focusEl == null) focusEl = form.elements.fname;
		process = false;
	}
	if(!form.elements.lname.value.match(/^[\'A-Z]+$/i )) {
		errMsg += '\no\tLast Name';
		if(focusEl == null) focusEl = form.elements.lname;
		process = false;
	}
	if(!form.elements.email.value.match(/^[^\.][^@]*@[^\.]+\.[^\.]+$/i )) {
		errMsg += '\no\tEmail Address';
		if(focusEl == null) focusEl = form.elements.email;
		process = false;
	}
	if(!form.elements.cname.value.match(/\S+/ )) {
		errMsg += '\no\tCompany Name';
		if(focusEl == null) focusEl = form.elements.cname;
		process = false;
	}
	if(!form.elements.cadr1.value.match(/\S+/ )) {
		errMsg += '\no\tCompany Address';
		if(focusEl == null) focusEl = form.elements.cadr1;
		process = false;
	}
	if(!form.elements.city.value.match(/^[A-Z]+$/i )) {
		errMsg += '\no\tCity';
		if(focusEl == null) focusEl = form.elements.city;
		process = false;
	}
	if(form.elements.state.selectedIndex == 0) {
		errMsg += '\no\tState';
		if(focusEl == null) focusEl = form.elements.state;
		process = false;
	}
	if(!form.elements.zip.value.match(/^\d{5}(?:-\d{4})?$/i )) {
		errMsg += '\no\tZip';
		if(focusEl == null) focusEl = form.elements.zip;
		process = false;
	}
	if(!form.elements.phone.value.match(/^\(?\d{3}[-\)\s\.]?\d{3}[-\.\s]?\d{4}$/i )) {
		errMsg += '\no\tPhone Number';
		if(focusEl == null) focusEl = form.elements.phone;
		process = false;
	}
	if(!process) {
		if(focusEl != null) focusEl.focus();
		alert(errMsg);
	}
	return process;
}