const idTipoEntidade = document.getElementById("idTipoEntidade");
const nome = document.getElementById("nome");
const nomeComercial = document.getElementById("nomeComercial");
const bi = document.getElementById("bi");
const nif = document.getElementById("nif");
const localidade = document.getElementById("localidade");
const dataNasc = document.getElementById("dataNasc");
const morada = document.getElementById("morada");

const btn = document.getElementById("btn-submit");
console.log("Cheguei!");

let numberRegExp = new RegExp('^[0-9-() ]+$');
let letterRegExp = new RegExp('^[a-zA-Z ]+$');
let biRegExp = new RegExp('^[a-zA-Z0-9]+$');
let emailRegExp = new RegExp('^[A-Za-z0-9._-]{3,}@[A-Za-z]{3,}[.]{1}[A-Za-z.]{2,6}$');
//document.querySelector("#idClasse").classList.add("is-invalidoooooo");

console.log('Pegar os smalls: ', document.querySelector('.form-group small'));

function nomeWarning(small){
	nome.className = "form-control is-warning";
	small.style.visibility = "visible";
	small.style.color = "#ffc107";
	small.innerText = "Campo Nome é obrigatório!";
	btn.setAttribute('disabled', 'disabled');
}

function nomeValid(small){
	nome.className = "form-control is-valid";
	btn.removeAttribute('disabled');
	small.style.visibility = "hidden";
}

nome.addEventListener("keyup", function(){
	let small = nome.parentElement.querySelectorAll("small")[1];
	if(nome.value === ''){
		nomeWarning(small);
	} else {
		nomeValid(small);
	}
});

function nomeComercialWarning(small){
	nomeComercial.className = "form-control is-warning";
	small.style.visibility = "visible";
	small.style.color = "#ffc107";
	small.innerText = "Campo Nome Comercial é obrigatório!";
	btn.setAttribute('disabled', 'disabled');
}

function nomeComercialValid(small){
	nomeComercial.className = "form-control is-valid";
	btn.removeAttribute('disabled');
	small.style.visibility = "hidden";
}

nomeComercial.addEventListener("keyup", function(){
	let small = nomeComercial.parentElement.querySelectorAll("small")[1];
	if(nomeComercial.value === ''){
		nomeComercialWarning(small);
	} else {
		nomeComercialValid(small);
	}
});

function biWarning(small){
	bi.className = "form-control";
	small.style.visibility = "hidden";
	btn.removeAttribute('disabled');
}

function biValid(small){
	bi.className = "form-control is-valid";
	btn.removeAttribute('disabled');
	small.style.visibility = "hidden";
}

bi.addEventListener("keyup", function(){
	let small = bi.parentElement.querySelectorAll("small")[1];
	if(bi.value === ''){
		biWarning(small);
	} else {
		biValid(small);
	}
});

function nifWarning(small){
	nif.className = "form-control is-warning";
	small.style.visibility = "visible";
	small.style.color = "#ffc107";
	small.innerText = "Campo Nome Comercial é obrigatório!";
	btn.setAttribute('disabled', 'disabled');
}

function nifValid(small){
	nif.className = "form-control is-valid";
	btn.removeAttribute('disabled');
	small.style.visibility = "hidden";
}

nif.addEventListener("keyup", function(){
	let small = nif.parentElement.querySelectorAll("small")[1];
	if(nif.value === ''){
		nifWarning(small);
	} else {
		nifValid(small);
	}
});

function localidadeWarning(small){
	localidade.className = "form-control";
	small.style.visibility = "hidden";
	btn.removeAttribute('disabled');
}

function localidadeValid(small){
	localidade.className = "form-control is-valid";
	btn.removeAttribute('disabled');
	small.style.visibility = "hidden";
}

localidade.addEventListener("keyup", function(){
	let small = localidade.parentElement.querySelectorAll("small")[1];
	if(localidade.value === ''){
		localidadeWarning(small);
	} else {
		localidadeValid(small);
	}
});

function dataNascWarning(small){
	dataNasc.className = "form-control";
	small.style.visibility = "hidden";
	btn.removeAttribute('disabled');
}

function dataNascValid(small){
	dataNasc.className = "form-control is-valid";
	btn.removeAttribute('disabled');
	small.style.visibility = "hidden";
}

dataNasc.addEventListener("keyup", function(){
	let small = dataNasc.parentElement.querySelectorAll("small")[1];
	if(dataNasc.value === ''){
		dataNascWarning(small);
	} else {
		dataNascValid(small);
	}
});

function moradaWarning(small){
	morada.className = "form-control";
	small.style.visibility = "hidden";
	btn.removeAttribute('disabled');
}

function moradaValid(small){
	morada.className = "form-control is-valid";
	btn.removeAttribute('disabled');
	small.style.visibility = "hidden";
}

morada.addEventListener("keyup", function(){
	let small = morada.parentElement.querySelectorAll("small")[1];
	if(morada.value === ''){
		moradaWarning(small);
	} else {
		moradaValid(small);
	}
});

function idTipoEntidadeInvalid(small){
	idTipoEntidade.classList.add("select2-danger");
	idTipoEntidade.setAttribute('data-dropdown-css-class', 'select2-danger');
	small.style.visibility = "visible";
	small.style.color = "#dc3545";
	small.innerText = "Selecione um tipo de entidade!";
	btn.setAttribute('disabled', 'disabled');
}

function idTipoEntidadeValid(small){
	idTipoEntidade.classList.remove("select2-danger");
	idTipoEntidade.classList.add("is-valid");
	idTipoEntidade.style.borderColor = "#ffc107";
	btn.removeAttribute('disabled');
	small.style.visibility = "hidden";
}

$('#idTipoEntidade').select2().on('change', function(){
    let small = idTipoEntidade.parentElement.querySelectorAll("small")[1];
    console.log($("#idTipoEntidade").val());
    if($("#idTipoEntidade").val() == 0){
		idTipoEntidadeInvalid(small);
    } else {
		idTipoEntidadeValid(small);
    }
});

btn.addEventListener("click", function(){
	let smallNome = nome.parentElement.querySelectorAll("small")[1];
	let smallNomeComercial = nomeComercial.parentElement.querySelectorAll("small")[1];
	let smallBi = bi.parentElement.querySelectorAll("small")[1];
	let smallNif = nif.parentElement.querySelectorAll("small")[1];
	let smallLocalidade = localidade.parentElement.querySelectorAll("small")[1];
	let smallDataNasc = dataNasc.parentElement.querySelectorAll("small")[1];
	let smallMorada = morada.parentElement.querySelectorAll("small")[1];
	let smallIdTipoEntidade = idTipoEntidade.parentElement.querySelectorAll("small")[1];

	if(nome.value == ''){
        nomeWarning(smallNome);
    } else {
		nomeValid(smallNome);
	}
	if(nomeComercial.value == ''){
        nomeComercialWarning(smallNomeComercial);
    } else {
		nomeComercialValid(smallNomeComercial);
	}
	if(bi.value == ''){
        biWarning(smallBi);
    } else {
		biValid(smallBi);
	}
	if(nif.value == ''){
        nifWarning(smallNif);
    } else {
		nifValid(smallNif);
	}
	if(localidade.value == ''){
        localidadeWarning(smallLocalidade);
    } else {
		localidadeValid(smallLocalidade);
	}
	if(bi.value == ''){
        biWarning(smallBi);
    } else {
		biValid(smallBi);
	}
	if(dataNasc.value == ''){
        dataNascWarning(smallDataNasc);
    } else {
		dataNascValid(smallDataNasc);
	}
	if(morada.value == ''){
        moradaWarning(smallMorada);
    } else {
		moradaValid(smallMorada);
	}
	if($("#idTipoEntidade").val() == 0){
        idTipoEntidadeInvalid(smallIdTipoEntidade);
    }else {
		idTipoEntidadeValid(smallIdTipoEntidade);
	} 
});