let elemento = document.querySelectorAll('.formulario .form-control');
const submitBtn = document.querySelector(".submit");
for (let i = 0; i < elemento.length; i++) {
	let primeiroSmall = elemento[i].parentElement.querySelectorAll("small");
	let segundoSmall = elemento[i].parentElement.parentElement.querySelectorAll("small");
	let nomeCampo = elemento[i].dataset.campo;
	if (elemento[i].tagName.toLowerCase() == 'input' || elemento[i].tagName.toLowerCase() == 'textarea') {
		elemento[i].addEventListener("keyup", function () {
			if (elemento[i].value === '') {
				if (primeiroSmall[1] !== undefined) {
					if (primeiroSmall[0].classList.contains("required")) {
						elemento[i].className = "form-control is-warning";
						primeiroSmall[1].style.visibility = "visible";
						primeiroSmall[1].style.color = "#ffc107";
						primeiroSmall[1].innerText = `Campo ${nomeCampo} é obrigatório!`;
					} else if (primeiroSmall[0].classList.contains("not-required")) {
						primeiroSmall[1].style.visibility = "hidden";
						elemento[i].className = "form-control";
					}
					submitBtn.setAttribute('disabled', 'disabled');
				} else if (segundoSmall[1] !== undefined) {
					if (segundoSmall[0].classList.contains("required")) {
						segundoSmall[1].style.visibility = "visible";
						segundoSmall[1].style.color = "#ffc107";
						segundoSmall[1].innerText = `Campo ${nomeCampo} é obrigatório!`;
					} else if (segundoSmall[0].classList.contains("not-required")) {
						segundoSmall[1].style.visibility = "hidden";
						elemento[i].className = "form-control";
					}
					submitBtn.setAttribute('disabled', 'disabled');
				}
			} else {
				elemento[i].className = "form-control is-valid";
				if (primeiroSmall[1] !== undefined) {
					primeiroSmall[1].style.visibility = "hidden";
				} else if (segundoSmall[1] !== undefined) {
					segundoSmall[1].style.visibility = "hidden";
				}
				submitBtn.removeAttribute('disabled');
			}
		});
	} else if (elemento[i].tagName.toLowerCase() == 'select') {
		$(elemento[i]).on('change', function () {
			if ($(elemento[i]).val() == 0 && !elemento[i].classList.contains("not-required")) {
				if (primeiroSmall[1] !== undefined) {
					if (primeiroSmall[0].classList.contains("required")) {
					elemento[i].classList.add("select2-danger");
					elemento[i].setAttribute('data-dropdown-css-class', 'select2-danger');
					primeiroSmall[1].style.visibility = "visible";
					primeiroSmall[1].style.color = "#dc3545";
					primeiroSmall[1].innerText = `Selecione um${nomeCampo[nomeCampo.length -1] == "a" ? "a " + nomeCampo : " " + nomeCampo} é obrigatório!`;
					} else if (primeiroSmall[0].classList.contains("not-required")) {
						primeiroSmall[1].style.visibility = "hidden";
					}
					submitBtn.setAttribute('disabled', 'disabled');
				} else if (segundoSmall[1] !== undefined) {
					if (segundoSmall[0].classList.contains("required")) {
					elemento[i].classList.add("select2-danger");
					elemento[i].setAttribute('data-dropdown-css-class', 'select2-danger');
					segundoSmall[1].style.visibility = "visible";
					segundoSmall[1].style.color = "#dc3545";
					segundoSmall[1].innerText = `Selecione um${nomeCampo[nomeCampo.length -1] == "a" ? "a " + nomeCampo : " " + nomeCampo} é obrigatório!`;
					} else if (segundoSmall[0].classList.contains("not-required")) {
						segundoSmall[1].style.visibility = "hidden";
					}
					submitBtn.setAttribute('disabled', 'disabled');
				}
			} else {
				elemento[i].classList.remove("select2-danger");
				elemento[i].classList.add("is-valid");
				elemento[i].style.borderColor = "#ffc107";
				if (primeiroSmall[1] !== undefined) {
					primeiroSmall[1].style.visibility = "hidden";
				} else if (segundoSmall[1] !== undefined) {
					segundoSmall[1].style.visibility = "hidden";
				}
				submitBtn.removeAttribute('disabled');
			}
		});
	}
}