
var phone_errors = 0;

function validate_phone_field(){

	var err_id = "error_" + $(this).attr('name').replace(/\[/, '_').replace(/\]/, '_');
	var req_err_id = 'required_' + err_id;
	var val = $(this).val();
	var conf = eval ('(' + $(this).attr('rel') +')');
	
	if(val != ''){
		if(!val.match(conf.pattern)){
			//если шаблон не соответств. и ошибка ещё не выведена
			if($('#' + err_id).length == 0){
				$(this.parentNode.parentNode).after('<div id="' + err_id + '" class="error_mesage"> ' + conf.pattern_error + ' </div>');
				phone_errors++;
			}
		}
		else{
			//если шаблон соответствует и ошибка ещё не удалена
			if($('#' + err_id).length != 0){
				$('#' + err_id).remove();
				phone_errors--;
			}
		}
	}
	else{
		//если была ошибка по формату - просто удаляем её
		if($('#' + err_id).length != 0){
			$('#' + err_id).remove();
			phone_errors--;
		}
	}
	if($(this).attr('class').match('v-required')){
		if(val == ''){
			//если значение не введено и ошибка ещё не выведена
			if($('#' + req_err_id).length == 0){
				$(this.parentNode.parentNode).after('<div id="' + req_err_id + '" class="error_mesage"> ' + conf.required_error + ' </div>');
				phone_errors++;
			}
		}
		else{
			//если значение введено и ошибка ещё не удалена
			if($('#' + req_err_id).length != 0){
				$('#' + req_err_id).remove();
				phone_errors = phone_errors - 1;
			}
		}
	}
}

function validate_new_phone(field_name)
{
	$('input[name="' + field_name + '[country]"]').change(validate_phone_field);
	$('input[name="' + field_name + '[city]"]').change(validate_phone_field);
	$('input[name="' + field_name + '[number]"]').change(validate_phone_field);
	$('input[name="' + field_name + '[expansion]"]').change(validate_phone_field);
	$('form:parent').submit(function(e){
		$('input[name="' + field_name + '[country]"]').change();
		$('input[name="' + field_name + '[city]"]').change();
		$('input[name="' + field_name + '[number]"]').change();
		$('input[name="' + field_name + '[expansion]"]').change();
		if(phone_errors != 0){
			e.preventDefault();
		}
	});
}
