$(document).ready(function () {
	$('#fileinput').on('change', function (e) {
		e.preventDefault();
		var cnt = this.files.length;
		if (cnt > 5) cnt = 5;
		$('#input_file').text('+ Файлы (' + cnt + ')');
	});
	$('#cod, #tel').on('keyup', function (e) {
		if ($('#cod').val().length > 3) {
			$('#cod').val($('#cod').val().replace(/\D/g, ''));
			$('#cod').val($('#cod').val().substr(0, 3));
		}
		if ($('#tel').val().length > 7) {
			$('#tel').val($('#tel').val().replace(/\D/g, ''));
			$('#tel').val($('#tel').val().substr(0, 7));
		}
	});
	$('#modal_form').on('submit', function (e) {
		e.preventDefault();
		return;
	});
	let send = null;
	$('.modal_submit').on('click', function (e) {
		e.preventDefault();
		let $that = $('.modal_form'),
			report = '',
			error_box = document.getElementById('error_box'),
			form = document.forms.modal_form_call,
			data = new FormData(form),
			input = form.elements,
			cod = input['cod'],
			num = input['tel'],
			tel = cod.value + ' ' + num.value,
			xhr = new XMLHttpRequest,
			log;
		error_box.style.display = 'none';
		if (/^[\d]{3}[\s]{1}[\d]{7}$/.test(tel) == false) {
			errBox('Проверьте правильность ввода номера. Необходимый формат: +7 912 3456789');
			return;
		}
		xhr.open('POST', 'mailer.php');
		xhr.addEventListener('readystatechange', function () {
			if (this.readyState == 4 && this.status == 200) {
				log = this.responseText;
				$that.replaceWith(log);
				$that.trigger('reset');
			}
		});
		xhr.send(data);
	});
	$('#modal_submit').on('click', function (e) {
		e.preventDefault();
		let $that = $('#modal_form'),
			report = '',
			error_box = document.getElementById('error_box'),
			form = document.forms.modal_form,
			data = new FormData(form),
			input = form.elements,
			name = input['name'].value,
			cod = input['cod'],
			num = input['tel'],
			tel = cod.value + ' ' + num.value,
			email = input['email'].value,
			message = input['mess'].value,
			files = input['file'].files,
			i = 0,
			xhr = new XMLHttpRequest,
			log;
		error_box.style.display = 'none';
		if (/^[a-zA-Zа-яёйА-ЯЁЙ\s]+$/u.test(name) == false) {
			errBox('Имя может содержать только русские буквы и символ пробела');
			return;
		}
		if (/^[\d]{3}[\s]{1}[\d]{7}$/.test(tel) == false) {
			errBox('Проверьте правильность ввода номера. Необходимый формат: +7 912 3456789');
			return;
		}
		if (/([\w\.]{1,25})\@([\w\.]{1,40})\.([a-zA-Z]{2,9})/.test(email) == false) {
			errBox('Email нужно вводить в формате mail@domain.com');
			return;
		}
		var len = files.length;
		if (len > 0) {
			if (len > 5) {
				errBox('Добавлено только 5 файлов');
			}
			$.each(files, function (key, value) {
				++i;
				if (i < 6) {
					data.append(key, value);
				}
			});
		}
		xhr.open('POST', 'mailer.php');
		xhr.addEventListener('readystatechange', function () {
			if (this.readyState == 4 && this.status == 200) {
				log = this.responseText;
				$that.replaceWith(log);
				$that.trigger('reset');
			}
		});
		xhr.send(data);
	});

	function errBox(val) {
		var error_box = document.getElementById('error_box');
		error_box.style.display = 'block';
		error_box.innerHTML = val;
		window.setTimeout(function () {
			error_box.style.display = 'none';
		}, 3000);
	}

	function ajaxSend(data, form) {
		var request = new XMLHttpRequest();
		request.open('POST', 'mailer.php');
		request.addEventListener('readystatechange', function () {
			if (this.readyState == 4 && this.status == 200) {
				var rdata = JSON.parse(this.responseText);
				var log = this.responseText;
				console.log(log);
				form.replaceWith(rdata);
				form.trigger('reset');
			}
		});
		console.log('send');
		request.send(data);
	}

	function cons(val) {
		console.info(val);
	}
});