function checkN() {
	var name = document.getElementById('name');
	var filter = /[a-z]([a-z]*[0-9]*)+/i;
	if (!filter.test(name.value)) {
		return false;
	}
	else {
		return true;
	}
}

function checkE() {
	var email = document.getElementById('e-mail');
	var filter =  /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
	if (!filter.test(email.value)){
		return false;
	}
	else {
		return true;
	}
}

function checkM() {
	var message = document.getElementById('message');
	if (message.value.length == 0) {
		return false;
	}
	else {
		return true;
	}
	
}

function checkName() {
	var label_name = document.getElementById('label_name');
	var send = document.getElementById('submit');
	if (!checkN()) {
		label_name.className = 'error';
		send.className = 'waiting';
		return false;
	}
	else { 
		label_name.className = 'check';
		if((checkE())&&(checkM())) {
			send.className = '';
			return true;
		}

	}
}

function checkEmail() {
	var label_email = document.getElementById('label_email');
	var send = document.getElementById('submit');
	if (!checkE()){ 
		label_email.className = 'error';
		send.className = 'waiting';
		return false;
	}
	else {
		label_email.className = 'check';
		if((checkN())&&(checkM())) {
			send.className = '';
			return true;
		}
	}
}

function checkMessage() {
	var label_message = document.getElementById('label_message');
	var send = document.getElementById('submit');
	if(!checkM()) { 
		label_message.className = 'error';
		send.className = 'waiting';
		return false;
	}
	else {
		label_message.className = 'check';
		if((checkN())&&(checkE())) {
			send.className = '';
			return true;
		}
	}
}

function checkForm() {
	var name = checkName();
	var email = checkEmail();
	var message = checkMessage();
	if(name && email && message) {
		return true;
	}
	else {
		return false;
	}
}

function resetStyles() {
	document.getElementById('label_name').className = '';
	document.getElementById('label_email').className = '';
	document.getElementById('label_message').className = '';
	document.getElementById('submit').className = 'waiting';
}

$(document).ready(function() {
	if(document.getElementById('submit')) {
		if(!checkN() && !checkE() && !checkM()) {
			resetStyles();
		}
		else {
			checkForm();
		}
	}
	if(document.getElementById('contactform')) {
		$('input[name=name]').bind('keyup', checkName);
		$('input[name=name]').bind('focusout', checkName);
		$('input[name=email]').bind('keyup', checkEmail);
		$('input[name=email]').bind('focusout', checkEmail);
		$('textarea[name=comment]').bind('keyup', checkMessage);
		$('textarea[name=comment]').bind('focusout', checkMessage);
		$('input[name=submit]').bind('mouseover', checkForm);
		$('form[id=contactform]').bind('submit', checkForm);
		$('input[name=clear]').bind('click', resetStyles);
	}
});
