function checkForm(form, lang) { 
// Заранее объявим необходимые переменные
var el, // Сам элемент
elName, // Имя элемента формы
value, // Значение
type; // Атрибут type для input-ов
// Массив списка ошибок, по дефолту пустой
var errorList = [];
// Хэш с текстом ошибок (ключ - ID ошибки)
if(lang=='rus')
var errorText = {
0 : "Не заполнено поле 'Компания'",
1 : "Не заполнено поле 'ФИО'",
2 : "Не заполнено поле 'Телефон'",
3 : "Не заполнено поле 'Электронный адрес'",
4 : "Введите правильный e-mail адрес",
5 : "Не оставлен комментарий",
6 : "Не заполнено поле 'Антиспам'"
}

else
var errorText = {
1 : "Field 'Name' is empty",
2 : "Field 'E-mail' is empty",
3 : "Enter valid E-mail",
4 : "Message is empty"
}

// Получаем семейство всех элементов формы
// Проходимся по ним в цикле
for (var i = 0; i < form.elements.length; i++) {
el = form.elements[i];
elName = el.nodeName.toLowerCase();
value = el.value;
if (elName == "input") { // INPUT
// Определяем тип input-а
type = el.type.toLowerCase();
// Разбираем все инпуты по типам и обрабатываем содержимое
switch (type) {
case "text" :
if (el.name == "company")
if(value == "") errorList.push(0);
if (el.name == "name")
if(value == "") errorList.push(1);
if (el.name == "phone")
if(value == "") errorList.push(2);
if (el.name == "email")
{
	if(value == "") errorList.push(3);

	else
  	{
		var reg = new RegExp("[0-9a-z_]+@[0-9a-z_^.]+\\.[a-z]{2,3}", 'i');
		if (!reg.test(value))
    		errorList.push(4);
  	}
}
if (el.name == "message")
if(value == "") errorList.push(5);
break;
case "checkbox" :
// Ничего не делаем, хотя можем
break;
case "radio" :
// Ничего не делаем, хотя можем
break;
default :
// Сюда попадают input-ы, которые не требуют обработки
// type = hidden, submit, button, image
break;
}
} 
else if (elName == "textarea") { // TEXTAREA
if (el.name == "message" && value == "") errorList.push(5);
} 
else if (elName == "select") { // SELECT
if (value == 0) errorList.push(5);
} else {
// Обнаружен неизвестный элемент ;)
}
}
// Финальная стадия
// Если массив ошибок пуст - возвращаем true
if (!errorList.length) return true;
// Если есть ошибки - формируем сообщение, выовдим alert
// и возвращаем false
if(lang=='rus')
var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n";
else
var errorMsg = "There are some errors:\n\n";
for (i = 0; i < errorList.length; i++) {
errorMsg += errorText[errorList[i]] + "\n";
}
alert(errorMsg);
return false;
}
