window.addEvent('domready', function() {
	$$('.row .required').each(function(field) {
		changeField(field);
		field.addEvent('blur', function() {
			changeField(field);
		});
	});
	$('contactForm').addEvent('submit', function(e) {
		new Event(e).stop();  
		if (testFields()) {
			this.submit();  
		} else {
			$$('p.invalid').getLast().setStyles('color: #900;');
		}
	});
});

function validateField(field) {
	strRE = new RegExp("^[\s ]*$", "gi");
	if (strRE.test(field.getValue())) {
		return false;
	}
	
	if (field.getProperty('id') != 'email') {
		return (!((field.getValue() == null) || (field.getValue().length == 0)));
	} else {
		mailRE = new RegExp("^[\._a-z0-9-]+@[\.a-z0-9-]+[\.]{1}[a-z]{2,4}$", "gi");
		return (mailRE.test(field.getValue()));
	}
}


function changeField(field) {
	var parent = field.getParent();
	if (validateField(field)) {	
		parent.removeClass('error');
		parent.addClass('ok');
	} else {
		parent.removeClass('ok');
		parent.addClass('error');
	}
}

function testFields() {
	var error = true;
	$$('.row .required').each(function(field) {
		var parent = field.getParent();
		if (parent.hasClass('error')) {
			error = false;
		}
	});
	
	return error;
}
