function validateField(id, field, validator) {
	if (!validator) return true;

	var fieldValue = field.value;

	if (!field.dynamicValidator && field.lastValue !== undefined && field.lastValue === field.value) {
		return true;
	}

	field.lastValue = field.value;

	for (i in validator) {
		var error = false;
//		alert('Id: ' + id + '\nField: ' + field + '\ni: ' + i + '\nVal: ' + validator[i]);
		switch (i) {
			case 'isFullNameFree':
				field.dynamicValidator = true;
				error = true;
				break;

			default:
				error = true;
				break;
			case 'isInt':
				var j = parseInt(fieldValue);
				error = isNaN(j);
				break;
			case 'isShorter':
				error = fieldValue.length > validator[i];
				break;
			case 'isValue':
				error = !fieldValue;
				break;
			case 'isEqual':
				field.dynamicValidator = true;

				if (validator[i].substr(0, 1) == '%') {
//					var el = document.getElementById(validator[i].substr(1));
					var el = field.form[validator[i].substr(1)];
					if (!el) {
						error = true;
						break;
					}
					error = (fieldValue != el.value);
				} else {
					error = fieldValue != validator[i];
				}
		}

		if (error) {
			phpValidateField(id, field, validator);
			return true;
		}
	}

	document.getElementById('error'+id).innerHTML = '<img src="'+window.imagePath+'core/form/ic_field_ok.gif" />';

	return true;
}


function phpValidateField(id, field, validator) {
	if (!field.phpValidators || field.dynamicValid) {
		var phpValidators = [];
		for (i in validator) {
			if (validator[i] && validator[i].substring && validator[i].substring(0, 1) == '%') {
				phpValidators.push(i + '(' + field.form[validator[i].substr(1)].value + ')');
				field.dynamicValid = true;
			} else if (validator[i]) {
				phpValidators.push(i + '(' + validator[i] + ')');
			} else {
				phpValidators.push(i);
			}
		}
		field.phpValidators = phpValidators.join('|');
	}

	$.get(window.ajaxPath + "core.validator.php", { fieldValue: field.value, validator: field.phpValidators, lang: window.validatorLang },
		function(data) {
			if (data != '') {
				document.getElementById('error'+id).innerHTML = ' '+data;
			} else {
				document.getElementById('error'+id).innerHTML = '<img src="'+window.imagePath+'core/form/ic_field_ok.gif" />';
			}
		}
	);

}
