/*
======================================
john's big hairy form validator [v1.3]
======================================
*/
function RequiredFields(oForm) {
	var bCompleted = true;
	var bValidEmail = true;
	var oField;
	var oEmailRegExp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	var bChecked = false;
	
	for (var i=0;i<aRequired.length;i++) {
		oField = document.forms[0].elements[aRequired[i]];
		if (oField.type=='text'||oField.type=='textarea'||oField.type=='password'||oField.type=='hidden') {
			if (oField.value.length==0) {
				bCompleted = false;
				highlight(oField);
			}
			else if (oField.name=='email') {
				if (!oEmailRegExp.test(oField.value)) {
					bValidEmail = false;
					highlight(oField);
				}
			}
		}
		else if (oField.type=='radio') {
			bChecked = false;
			for (j=0;j<oField.length;j++) {
				if (oField[j].checked) {
					bChecked = true;
				}
			}
			if (!bChecked) {
				highlight(oField);
				bCompleted = false;
			}
		}
		else if (oField.type=='select'||oField.type=='select-one') {
			if (oField.options[oField.selectedIndex].value.length==0) {
				bCompleted = false;
				highlight(oField);
			}
		}
		else {
			bChecked = false;
			for (j=0;j<oField.length;j++) {
				if (oField[j].checked) {
					bChecked = true;
				}
			}
			if (!bChecked) {
				highlight(oField);
				bCompleted = false;
			}
		}
	}
	if (!bCompleted) {
		alert('Please complete all highlighted fields');
	}
	else if (!bValidEmail) {
		alert('Please check your email address');
	}
	return (bCompleted && bValidEmail);
}
function highlight(oField) {
	if (oField.type=='select'||oField.type=='select-one'||oField.type=='text'||oField.type=='textarea'||oField.type=='password') {
		oField.style.backgroundColor = '#FF00FF';
		oField.style.color = '#fff';
	}
	else {
//		oField.parentNode.style.backgroundColor = 'lightyellow';
//		oField.parentNode.style.border = '1px solid red';
		// radio...
		for (var i=0;i<oField.length;i++) {
			oField[i].style.backgroundColor = 'lightyellow';
			oField[i].style.color = '#fff';
		}
	}
//	alert(oField.name);
}
var aRequired = new Array();