function switchSizes() {
    let sizeRu = prompt('Введите размер верхней одежды в нашей системе размеров', '40');
    switch (sizeRu){
        case "40": alert('6'); break;
        case "42": alert('8'); break;
        case "44": alert('10'); break;
        case "46": alert('12'); break;
        case "48": alert('14'); break;
        case "50": alert('16'); break;
        case "52": alert('18'); break;
        case "54": alert('20'); break;
        default: alert('error');
    }
} // switch: sizes
function switchIf() {
    let color = prompt("Введите цвет","");
    if (color === 'red' || color === 'black') {
        document.write("<div style='background-color: red;'>красный</div>");
        document.write("<div style='background-color: black; color: white;'>черный</div>");
    }
    else if(color === 'blue' || color === 'green') {
        document.write("<div style='background-color: blue;'>синий</div>");
        document.write("<div style='background-color: blue;'>синий</div>");
    }
    else {
        document.write("<div style='background-color: gray;'>Я не понял</div>");
    }
} // switch: if
function promptOr() {
    alert(2021 - (prompt('Введите ваш возраст') || alert('Ошибка')));
} // prompt: or
function confirmOrThisDays() {
    confirm('шопинг?') || alert('ты - бяка');
} // confirm: or this days
function confirmIfThisDays() {
    if (!confirm('шопинг?')){
        alert('ты - бяка');
    }
} // confirm: if this days
function triplePrompt() {
    let lastname = prompt('Фамилия');
    let firstname = prompt('Имя');
    let patronymic = prompt('Отчество');
    alert(`${lastname} ${firstname} ${patronymic}`);
} // triple prompt
function defaultOr() {
    let lastname = prompt('Фамилия') || 'Иванов';
    let firstname = prompt('Имя') || 'Иван';
    let patronymic = prompt('Отчество') || 'Иванович';
    alert(`${lastname} ${firstname} ${patronymic}`);
} // default: or
function defaultIf() {
    let lastname = prompt('Фамилия');
    let firstname = prompt('Имя');
    let patronymic = prompt('Отчество');
    if (!lastname) {
        lastname = 'Иванов';
    }
    else if (!firstname) {
        firstname = 'Иван';
    }
    else if (!patronymic) {
        patronymic = 'Иванович';
    }
    alert(`${lastname} ${firstname} ${patronymic}`);
} // default: if
function loginAndPassword() {
    while (true) {
        if (prompt('Введите логин', '') === 'admin') {
            if (prompt('Введите пароль', '') === 'qwerty') {
                alert('Авторизация успешна');
                break;
            } else {
                alert('Неверный пароль')
            }
        } else {
            alert('Неверный логин')
        }
    }
} // login and password
function currencyCalc () {
    let currency = prompt("Выберите валюту \"usd\" или \"eur\"","");
    switch(currency){
        case "usd":
            alert(+prompt("Введите количество валюты в грн",'0') / 26.3);
            break;
        case "eur":
            alert(+prompt("Введите количество валюты в грн",'0') / 30);
            break;
        default: alert('error');
    }
} // currency calc
function currencyCalcImproved () {
    let currency = prompt("Выберите валюту \"usd\" или \"eur\"","").toLowerCase();
    switch(currency){
        case "usd":
            alert(+prompt("Введите количество валюты в грн",'0') / 26.3);
            break;
        case "eur":
            alert(+prompt("Введите количество валюты в грн",'0') / 30);
            break;
        default: alert('error');
    }
} // currency calc: improved
function currencyCalcTwoRates () {
    let currency = prompt("Выберите валюту \"usd\" или \"eur\"","").toLowerCase();
    switch(currency){
        case "usd":
            alert(+prompt("Введите количество валюты в грн",'0') / (confirm('Обменный курс на продажу?') ? 26.3 : 27));
            break;
        case "eur":
            alert(+prompt("Введите количество валюты в грн",'0') / (confirm('Обменный курс на продажу?') ? 30 : 32));
            break;
        default: alert('error');
    }
} // currency calc: two rates
function currencyCalcIf () {
    let currency = prompt("Выберите валюту \"usd\" или \"eur\"","").toLowerCase();
    switch(currency){
        case "usd":
            if (confirm('Обменный курс на продажу?')){
                alert(+prompt("Введите количество валюты в грн",'0') / 26.3);
            }
            else {
                alert(+prompt("Введите количество валюты в грн",'0') / 27.3);
            }
            break;
        case "eur":
            if (confirm('Обменный курс на продажу?')){
                alert(+prompt("Введите количество валюты в грн",'0') / 30);
            }
            else {
                alert(+prompt("Введите количество валюты в грн",'0') / 32);
            }
            break;
        default: alert('error');
    }
} // currency calc: if
function scissors() {
    let arr = ['камень','ножницы','бумага'];
    let userValue = arr.indexOf(prompt('Введите свой вариант','').toLowerCase());
    let programValue = Math.floor(Math.random() * 3);
    alert('Вариант компьютера: ' + arr[programValue]);
    if (userValue === programValue) {
        alert('ничья');
    }
    else if ((userValue === 0 && programValue === 1)  || (userValue === 1 && programValue === 2) || (userValue === 2 && programValue === 0)) {
        alert('победа пользователя');
    }
    else {
        alert('победа компьютера');
    }
} // scissors
function blueBeltChallenge(){
    let ratios = {
        usd: 25.6,
        eur: 29,
    }
    let currency = prompt("Выберите валюту \"usd\" или \"eur\"","").toLowerCase();
    if (currency === 'usd'){
        alert((+prompt("Введите количество валюты в грн",'0') / +ratios['usd']).toFixed(2));
    }
    else if (currency === 'eur'){
        alert((+prompt("Введите количество валюты в грн",'0') / +ratios['eur']).toFixed(2));
    }
    else {
        alert('error');
    }
} // задание на синий пояс
function realData() {
    // Это задание сделал отдельным проектом
    // http://01.lehareznichenko2.fe.a-level.com.ua/
    // http://gitlab.a-level.com.ua/AlexReznichenko/homeworks/src/master/01
} // real data
function additionalTask() {
    switch (prompt('Введите название задания',"").toLowerCase()) {
        case 'switch: sizes': switchSizes(); break;
        case 'switch: if': switchIf(); break;
        case 'prompt: or': promptOr(); break;
        case 'confirm: or this days': confirmOrThisDays(); break;
        case 'confirm: if this days': confirmIfThisDays(); break;
        case 'triple prompt': triplePrompt(); break;
        case 'default: or': defaultOr(); break;
        case 'default: if': defaultIf(); break;
        case 'login and password': loginAndPassword(); break;
        case 'currency calc': currencyCalc(); break;
        case 'currency calc: improved': currencyCalcImproved(); break;
        case 'currency calc: two rates': currencyCalcTwoRates(); break;
        case 'currency calc: if': currencyCalcIf(); break;
        case 'scissors': scissors(); break;
        case 'задание на синий пояс': blueBeltChallenge(); break;
        case 'конвертор валют': realData(); break;
        case 'задание на черный пояс': BlackBeltChallenge(); break;
        default: alert('Неверное название');
    }
} // дополнительное задание
function BlackBeltChallenge(){
    let userValue = ['камень','ножницы','бумага'].indexOf(prompt('Введите свой вариант','').toLowerCase());
    let programValue = Math.floor(Math.random() * 3);
    alert((programValue === userValue) && 'ничья' || ((userValue === 0 && programValue === 1)  || (userValue === 1 && programValue === 2) || (userValue === 2 && programValue === 0)) && 'победа пользователя' || 'победа компьютера');
} // задание на черный пояс

additionalTask();