function $mail(form) {
	var mail_regexp = /^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i;
	var minchrmsg = 50;
	var minchrsub = 10;
	if ($('firstname').value.length < 1) {
		alert('Please specify your first name.');
		$('firstname').focus();
		return false;
	} else if ($('lastname').value.length < 1) {
		alert('Please specify your last name.');
		$('lastname').focus();
		return false;
	} else if ($('mail').value.length < 1) {
		alert('Please specify your e-mail address.');
		$('mail').focus();
		return false;
	} else if (!mail_regexp.test($('mail').value)) {
		alert('Please enter a valid e-mail address.');
		$('mail').focus();
		return false;
	} else if ($('subject').value.length < minchrsub) {
		alert('Minimal length of subject : ' + minchrsub + ' characters.');
		$('subject').focus();
		return false;
	} else if ($('message').value.length < minchrmsg) {
		alert('Minimal length of message : ' + minchrmsg + ' characters.');
		$('message').focus();
		return false;
	} else {
		var xhr = null;
		if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
		else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
		else return false;
		var str = 'firstname=' + $('firstname').value + '&lastname=' + $('lastname').value + '&mail=' + $('mail').value + '&subject=' + $('subject').value + '&message=' + $('message').value;
		xhr.open('POST', '/contact', false);
		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xhr.send(str);
		if(xhr.readyState == 4) {
			$('submit').innerHTML = xhr.responseText;
			form.reset();
		}
	}
}