function verify(f) {
	var msg;
	var empty_fields = "";
	var errors = "";
	for(var i = 0; i < f.length; i++) {
		var e = f.elements[i];
		if(e.style) {
			e.style.backgroundColor=""
		}
		if (e.type != "select-one" && e.type != "select-multiple") {
			if (e.required) {
				// first check if the field is empty
				if ((e.value == null) || (e.value == "") || isblank(e.value)) {
					if(e.style) {
						e.style.backgroundColor="#FFFFCC"
					}
					if (e.FieldName) {
						empty_fields += "\n          " + e.FieldName
					}
					else {
						empty_fields += "\n          " + e.name;
					}
					continue;
				}
			}
		}
		else {
			if (e.required) {
				if (e.selectedIndex != -1) {
					var val = e.options[e.selectedIndex].value;
					// first check if the field is empty
					if ((val == null) || (val == "") || isblank(val)) {
						if(e.style) {
							e.style.backgroundColor="#FFFFCC"
						}
						if (e.FieldName) {
							empty_fields += "\n          " + e.FieldName
						}
						else {
							empty_fields += "\n          " + e.name;
						}
						continue;
					}
				}
				else {
					if(e.style) {
						e.style.backgroundColor="#FFFFCC"
					}
					if (e.FieldName) {
						empty_fields += "\n          " + e.FieldName
					}
					else {
						empty_fields += "\n          " + e.name;
					}
					continue;
				}
			}
		}

		// Now check for fields that are supposed to be numeric.
		if (e.numeric || (e.min != null) || (e.max != null)) {
			if (e.value) {
				// Change write Baw
				e.value = e.value.replace(",",".");
				// Change write Baw
				var v = parseFloat(e.value);
				if (isNaN(v) || ((e.min != null) && (v < e.min)) || ((e.max != null) && (v > e.max))) {
					if(e.style) {
						e.style.backgroundColor="#FFFFCC"
					}
					errors += "- Поле ";
					if (e.FieldName) {
						errors += e.FieldName
					}
					else {
						errors += e.name
					}
					errors += " должно быть числовым ";
					if (e.min != null) errors += ", больше чем " + e.min;
					if (e.max != null && e.min != null) errors += " и меньше чем " + e.max;
					else if (e.max != null) errors += ", меньше чем " + e.max;
					errors += ".\n";
				}
				else {
					e.value = parseFloat(e.value);
				}
			}
		}

		if (e.type == 'checkbox') {
			if (e.required) {
				errors += e.FieldName;
			}
		}
	}


	msg =  "_____________________________________________________________\n\n";
	msg += "Запрос не выполнен, так как поля формы заполнены некорректно.\n";
	msg += "Пожалуйста, исправьте ошибку и заново подтвердите запрос.\n";
	msg += "_____________________________________________________________\n\n";

	if (empty_fields) {
		msg += "- Необходимо заполнить следующие поля:" + empty_fields + "\n";
		if (errors) msg += "\n";
	}
	msg += errors;
	if (empty_fields || errors) {
		alert(msg);
		return false;
	}
	else {
		return true;
	}
}
function isblank(s){
	for(var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
	}
	return true;
}
