// inform the user to complete field f
function informUser(f) {
	alert("Not all fields have been completed. Please complete: " + f);
}

// Validate the form
function validateRegistrationForm(f) {
	var fields=[];
	var labels={};

	// gather the fields and labels from the DOM
	var oLabels = document.getElementsByTagName("label");
	for (var i=0;i<oLabels.length;i++) { 
		if (oLabels[i].htmlFor!=undefined) {
			var sFor = oLabels[i].htmlFor || oLabels[i].getAttribute("for") || '';
			var sText = oLabels[i].innerText || oLabels[i].textContent || '';
			fields.push(sFor);
			labels[ sFor ] = sText.replace(':','');
		}
	}

	// check each field
	for (var i in fields) {
		var field = fields[i];
		var label = labels[field];
		var v = getFormValue(f,field);
		try {
			if (
				f[field].type.toLowerCase()!='file' 
				&& (
					v.length==0 || v[0].length==0 
					|| (/email/i.test(fields[i]) && !/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(v))
				)
			) {
				informUser(label);
				if (f[field].type.toLowerCase()!='radio') 
					f[field].focus();
				return false;
			}
		} catch(e) { return false; }
	}

	// if the function hasnt returned a value ( false ) already , then the form IS valid
	return true;
}
