const urlDefault = 'https://open.er-api.com/v6/latest/USD';
const currencyMain = document.querySelector('#currencyMain');
const currencySecond = document.querySelector('#currencySecond');
const countMain = document.querySelector('#countMain');
const countSecond = document.querySelector('#countSecond');
let arrMain = new Map();

function requestOption (url, currencyMain, currencySecond){
    fetch(url)
        .then(response => response.json())
        .then(data => {
            for (const prod in data.rates) {
                let listOption = document.createElement('option');
                listOption.textContent = prod;
                currencyMain.appendChild(listOption);
                currencySecond.appendChild(listOption.cloneNode(true));
            }
        })
        .catch(er => console.error(er))
} //отрисовка всех доступных option
function requestValues (url, arr){
    fetch(url)
        .then(response => response.json())
        .then(data => {
            for (const prod in data.rates) {
                arr.set(prod, data.rates[prod]);
            }
        })
        .catch(er => console.error(er))
} // получение актуально курса по определённой валюте
function calculate (countMain, countSecond, currencyMain, currencySecond, arrMain){
    if (currencyMain === currencySecond){
        countSecond.value = 'Выберите разные валюты';
    }
    else if(countMain <= 0){
        countSecond.value = 'Введите число больше 0';
    }
    else {
        countSecond.value = +arrMain.get(currencySecond) * +countMain;
    }
} // конвертация валют
function eventListener(arrMain){
    arrMain.clear();
    requestValues(`https://open.er-api.com/v6/latest/${currencyMain.value}`, arrMain);
    setTimeout(() => {
        calculate(countMain.value, countSecond, currencyMain.value, currencySecond.value, arrMain);
    },1000);
} // функция вызова по событию

requestOption(urlDefault, currencyMain, currencySecond);
currencyMain.addEventListener('change', () => eventListener(arrMain));
currencySecond.addEventListener('change', () => eventListener(arrMain));
countMain.addEventListener('change', () => eventListener(arrMain));