document.addEventListener('DOMContentLoaded', CountingLengthWords);
function CountingLengthWords() {
const fieldInput = document.querySelector('form#SaveRecord input[name="command[data][general][name]"]');
let fieldCounter = null;
let counterCurrent = null;
const NUMBER_CHARACTERS_TOTAL = 128;
let number_characters_current = 0;
if (fieldInput) {
function setCounterOnLoadPage() {
counterCurrent.innerText = fieldInput.value.length;
}
function validateCounter() {
if (number_characters_current >= NUMBER_CHARACTERS_TOTAL) {
addError();
} else {
removeError();
}
}
function addError() {
fieldCounter.classList.add('is-error');
}
function removeError() {
if (fieldCounter.classList.contains('is-error')) {
fieldCounter.classList.remove('is-error');
}
}
function insertHtmlTemplateCounter() {
fieldInput.insertAdjacentHTML('afterend', `<span class="field-counter-words"><span class="field-counter-words__current">0</span>/<span class="field-counter-words__total">${NUMBER_CHARACTERS_TOTAL}</span></span>`);
fieldCounter = fieldInput.parentNode.querySelector('.field-counter-words');
}
function handlerOnInputFieldName(e) {
fieldInput.value = fieldInput.value.slice(0,NUMBER_CHARACTERS_TOTAL);
number_characters_current = e.target.value.length;
counterCurrent.innerText = e.target.value.length;
validateCounter();
}
insertHtmlTemplateCounter();
if (fieldCounter) {
counterCurrent = document.querySelector('.field-counter-words__current');
fieldInput.addEventListener('input', handlerOnInputFieldName);
setCounterOnLoadPage();
}
}
}