var d = document;
var W3CDOM = (d.getElementsByTagName && d.createElement);

window.onload = function() {
	if (d.forms[0]) { d.forms[0].onsubmit = function () { return validate() }}
}

function validate() {
	validForm = true;
	firstError = null;
	errorString = '';
	var x = d.forms[0].elements;
	for (var i = 0; i < x.length; i++) {
		if (x[i].className == "required") {	
			if (!x[i].value) { writeError(x[i]); }
		}
	}
	if (x['email'].value.indexOf('@') == -1) {
		writeError(x['email']);
	}
	if (!W3CDOM) { alert(errorString); }
	if (firstError) {
		d.getElementById("errorDiv").innerHTML = 'Some required fields are missing.';
		firstError.focus();
	}
	if (validForm) { return true; } else { return false; }
}

function writeError(obj) {
	validForm = false;
	if (obj.hasError) return;
	if (W3CDOM) {
		obj.className += ' error';
		obj.onchange = removeError;
	} else {
		errorString ='Some required fields are missing.' + '\n';
		obj.hasError = true;
	}
	if (!firstError) { firstError = obj; }
}

function removeError() {
	this.className = this.className.substring(0, this.className.lastIndexOf(' '));
	this.hasError = null;
	this.onchange = null;
}