var vacancy_form_submitting = false;

function check_errors()
{
	var valid = true;

	if(!$("#FORM_FIELD_FIO").val())
	{
		valid = false;
		$("#FORM_FIELD_FIO_wrapper").addClass("error").attr("data-error", "Необходимо указать Ваши ФИО");
	}
	if(!$("#FORM_FIELD_CITY").val())
	{
		valid = false;
		$("#FORM_FIELD_CITY_wrapper").addClass("error").attr("data-error", "Необходимо указать город Вашего проживания");
	}
	if(!$("#FORM_FIELD_PHONE").val())
	{
		valid = false;
		$("#FORM_FIELD_PHONE_wrapper").addClass("error").attr("data-error", "Необходимо указать номер Вашего телефона");
	}
	if(!$("#FORM_FIELD_EMAIL").val())
	{
		valid = false;
		$("#FORM_FIELD_EMAIL_wrapper").addClass("error").attr("data-error", "Необходимо указать Ваш адрес E-mail");
	}
	else
	{
		if(!is_email($("#FORM_FIELD_EMAIL").val()))
		{
			valid = false;
			$("#FORM_FIELD_EMAIL_wrapper").addClass("error").attr("data-error", "Пожалуйста, укажите правильный адрес E-mail");
		}
	}
	if(!$("#FORM_FIELD_VACANCY").val())
	{
		valid = false;
		$("#FORM_FIELD_VACANCY_wrapper").addClass("error").attr("data-error", "Пожалуйста, укажите какая вакансия Вас интересует");
	}

	return valid;
}

function form_vacancy_submit()
{
	var accept = $("#policy").is(':checked');
	if(!vacancy_form_submitting && accept)
	{
		if(check_errors())
		{
			vacancy_form_submitting = true;
			$("#send_button_text").css("display", "none");
			$("#send_button_spinner").css("display", "block");

			$("#form_vacancy").find("input").removeClass("error");

			var formData = new FormData($("#form_vacancy")[0]);
			formData.append("form", "FORM_VACANCY");
			formData.append("FORM_FIELD_PAGE_NAME", document.title);
			formData.append("FORM_FIELD_PAGE_URL", window.location.href);
		
			grecaptcha.ready(function() 
			{
				grecaptcha.execute($("meta[name=recaptcha_site_key]").attr("content"), { action: 'submit' }).then(function(token)
				{
					formData.append("recaptcha_token", token);

					$.ajax(
					{
						url: "/api/forms/", type: 'POST', success: function(response)
						{
							if(response.status === "complete")
							{
								$("#form_vacancy_info").css("display", "none");
								$("#form_vacancy_process").css("display","none");
								$("#form_vacancy_success").css("display","flex");

								$("#send_button_text").css("display", "block");
								$("#send_button_spinner").css("display", "none");

								vacancy_form_submitting = false;
							}
							else if(response.status === "error")
							{
								for(var i in response.errors)
								{
									$("#form_vacancy").find("*[name="+response.errors[i]+"]").addClass("error");
								}

								if(response.message === "recaptcha_error")
								{
									$("#form_vacancy_info").css("display", "none");
									$("#form_vacancy_process").css("display","none");
									$("#form_vacancy_fail").css("display","flex").parent().css("backgroundColor", "#2C2D2E");	
								}

								$("#send_button_text").css("display", "block");
								$("#send_button_spinner").css("display", "none");

								vacancy_form_submitting = false;
							}
						}, data: formData,
						dataType: "json",
						cache: false, contentType: false, processData: false
					});
				});
			});
		}
	}
}

$(function()
{
	$("#form_vacancy").find("input").on("keypress", function()
	{
		$(this).parent().removeClass("error").attr("data-error", null);
	});

	$("#form_vacancy_send_button").on("click", function()
	{
		form_vacancy_submit();
	});

	$("#form_vacancy").on("submit", function(event)
	{
		event.preventDefault();
		form_vacancy_submit();
	});

    $('input[type="file"]').change(function(e) 
	{
		var filename = e.target.files[0].name;
		$(".filename").text(filename);
		$(this).next("label").text("Заменить файл")
	});

	$("#policy").on("change", function()
	{
		if($(this).is(':checked'))
		{
			$("#vacancy_send_button").attr("disabled", false);
		}
		else
		{
			$("#vacancy_send_button").attr("disabled", true);
		}
	});
});