function checkField(form, field)
{
	var nbErrors = 0;
	var elements = form.getElementsByTagName(field);

	for (i = 0; i < elements.length; i++)
	{
		if (elements[i].className.indexOf('required', 0) > -1)
		{
			var errorField = document.getElementById('field_' + elements[i].name + '_error');
			var error = '';

			if (elements[i].name == 'f_home_phone' ||
				elements[i].name == 'f_mobile_phone' ||
				elements[i].name == 'f_job_phone')
			{
				var homePhone = document.getElementById('field_f_home_phone');
				var mobilePhone = document.getElementById('field_f_mobile_phone');
				var jobPhone = document.getElementById('field_f_job_phone');

				var regex = new RegExp(/^(01|02|03|04|05|06|07|08|09)(([\.\-\/\ ])?[0-9][0-9]){4}[\.\-\/\ ]?$/gi);

				if (homePhone && homePhone.value == '') error = 'Veuillez entrer un numéro de téléphone';
				if (homePhone && homePhone.value != '' && !regex.test(homePhone.value)) error = 'Numéro de téléphone incorrect';

				if (homePhone && homePhone.value == '')
				{
					if (mobilePhone && mobilePhone.value == '') error = 'Veuillez entrer un numéro de téléphone';
					if (jobPhone && jobPhone.value == '') error = 'Veuillez entrer un numéro de téléphone';
				}
			}
			else if (elements[i].value != '' && elements[i].name == 'email' &&
				(elements[i].value.indexOf("@") == "-1" ||
				elements[i].value.indexOf(".") == "-1"))
			{
				error = 'Adresse email incorrecte';
			}
			else if (elements[i].name == 'cp')
			{
				var cp = document.getElementById('field_cp');

				var regexm = new RegExp(/^[0-9]{4}$/gi);

				if (cp.value != '' && regexm.test(cp.value)) cp.value = '0' + cp.value;

				var regex = new RegExp(/^[0-9]{5}$/gi);

				if (cp && cp.value == '') error = 'Veuillez entrer votre code postal';
				if (cp && cp.value != '' && !regex.test(cp.value)) error = 'Code postal incorrect';
			}
			else if (elements[i].value == '')
			{
				error = 'Information obligatoire';
			}

			if (error != '')
			{
				if (elements[i].className.indexOf('error', 0) < 0)
					elements[i].className += ' error';

				document.getElementById('label_' + elements[i].name).className = 'label error';

				if (errorField)
				{
					errorField.innerHTML = error;
					errorField.style.display = 'block';
				}

				nbErrors++;
			}
			else
			{
				elements[i].className = elements[i].className.replace(' error', '');
				document.getElementById('label_' + elements[i].name).className = 'label';

				if (errorField)
					errorField.style.display = 'none';
			}
		}
	}

	return nbErrors;
}

function checkForm(form)
{
	var nbErrors = 0;

	nbErrors += checkField(form, 'input');
	nbErrors += checkField(form, 'select');
	nbErrors += checkField(form, 'textarea');

	if (nbErrors > 0)
		return false;

	return true;
}
