var alertedCount = 0;
var rfield;

function checkform(form) {
	//alert("checkform");

	var trim = function (s) {
	  return s.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
	};

	rfield = document.getElementById('required');
	if(rfield) {
		// alert( document.getElementById('required').value);
		var reqfields = rfield.value.split(',');

		var alertMsg = document.getElementById('alertMessage');
		if (alertMsg) alertMsg.parentNode.removeChild(alertMsg);

		alertedCount = 0;
		for( var i in reqfields) {
			try {
				var fieldname = trim(reqfields[i]);
				var field = form.elements[fieldname];
				field.parentNode.className = field.parentNode.className.replace("field-error", "");
				if (field) {
					checkField(form,field);
				} else {
					alert("no field: "+fieldname);
				}
			} catch(exc) {
			}
		}
	}
	if (alertedCount > 0) {
		alertMessage(form,'We were unable to process your form.','Please review the highlighted fields and try again.');
		return false;
	}
}

function checkField( form, field ) {
	switch(field.type) {
		default:
			if( field.value == '') {
				alertField( form, field );
			}
			break;
	}
}

function alertField(form, field) {
	//field.style.backgroundColor = "#CF1212";
	field.parentNode.className += " field-error";
	alertedCount++;
}

function alertMessage( form,msg,msg2 ) {
try{
	e = document.createElement('div');
	e.id="alertMessage";
	e.className = "form-error-message";
	e.innerHTML = msg+"<br />"+msg2;;
	
	rfield.parentNode.insertBefore(e, rfield);
}catch(err) {
	alert( "got error: "+err );
}
}