
// chooseTask()
function chooseTask() {
   let task = prompt("Введите название задания","").trim();
   switch (task){
      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 'scissors':
         scissors();
            break;
      case 'Задание на черный пояс':
         scissorsBlack();
            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 'Задание на синий пояс':
         currencyCalcObj();
            break;
      default: alert("такого названия нет!");
   }
}

// switchSizes()
function switchSizes() {
   let size = +prompt("Введите размер верхней одежды","");

   switch (size){
      case 40:
      case 41: alert("S");
         break;
      case 42:
      case 43:
      case 44:
      case 45: alert("M");
         break;
      case 46:
      case 47:
      case 48:
      case 49: alert("L");
         break;
      case 50:
      case 51:
      case 52:
      case 53: alert("XL");
         break;
      case (54): alert("XXL");
         break;
      default: alert("такого размера нет!");;
   }
}

// switchIf()
function switchIf() {
let color = prompt("Введите цвет","");

   if (color === 'red') {
      document.write("<div style='background-color: red;'>красный</div>");
      document.write("<div style='background-color: black; color: white;'>черный</div>");
   } else if (color === 'black') {
      document.write("<div style='background-color: black; color: white;'>черный</div>");
   } else if (color === 'blue') {
      document.write("<div style='background-color: blue;'>синий</div>");
      document.write("<div style='background-color: green;'>зеленый</div>");
   } else if (color === 'green') {
      document.write("<div style='background-color: green;'>зеленый</div>");
   } else {
      document.write("<div style='background-color: gray;'>Я не понял</div>");
   }
}

// promptOr()
function promptOr() {
   const result = prompt('сколько лет?','') || alert('ошибка')
   if (result) {
      const currentYear = new Date()
      const birthYear =  currentYear.getFullYear() - result
      alert(birthYear)
   }
}

// confirmOrThisDays()
function confirmOrThisDays() {
   confirm('шопинг?') || alert('ты бяка')
}

// confirmIfThisDays()
function confirmIfThisDays() {
   const res = confirm('шопинг?')
   if (!res) {
      alert('ты бяка')
   }
}

// triplePrompt()
function triplePrompt() {
   const surname = prompt('фамилия','')
   const name = prompt('имя','')
   const patronymic = prompt('отчество','')
   alert(`${surname} ${name} ${patronymic}`)
}

// defaultOr()
function defaultOr() {
   const surname = prompt('фамилия','') || 'Иванов'
   const name = prompt('имя','') || 'Иван'
   const patronymic = prompt('отчество','') || 'Иванович'
   alert(`${surname} ${name} ${patronymic}`)
}

// defaultIf()
function defaultIf() {
   let surname = prompt('фамилия','') 
   let name = prompt('имя','') 
   let patronymic = prompt('отчество','') 
   if (!surname) {
      surname = 'Иванов'
   } 
   if (!name) {
      name = 'Иван'
   } 
   if (!patronymic) {
      patronymic = 'Иванович'
   }
   alert(`${surname} ${name} ${patronymic}`)
}

// loginAndPassword()
function loginAndPassword() {
   const login = 'admin'
   const pass = 'qwerty'
   let loginInput = prompt('логин','')
   if (loginInput === login) {
      let passInput = prompt('пароль','')
      if (passInput === pass) {
         alert('вы авторизованы')
      } else {
         alert('НЕправильный пароль!')
      }
   } else {
      alert('НЕправильный логин!')
   }
}

// scissors()
function scissors() {
   let userInput = +prompt('Выберите вариант и введите соответствующее ему число: \n камень - 1 \n ножницы - 2 \n бумага - 3','');
   let compInput = Math.floor(Math.random() * 3);

   if (compInput === 0) {
      alert('у оппонента камень')
      switch (userInput){
         case 1: 
         alert('ничья');
            break;
         case 2: 
         alert('вы проиграли!');
            break;
         case 3: 
         alert('вы выиграли!');
            break;
      }
   } else if (compInput === 1) {
      alert('у оппонента ножницы')
      switch (userInput){
         case 2: 
         alert('ничья');
            break;
         case 3: 
         alert('вы проиграли!');
            break;
         case 1: 
         alert('вы выиграли!');
            break;
      }
   } else if (compInput === 2) {
      alert('у оппонента бумага')
      switch (userInput){
         case 3: 
         alert('ничья');
            break;
         case 1: 
         alert('вы проиграли!');
            break;
         case 2: 
         alert('вы выиграли!');
            break;
      }
   }
}

// scissorsBlack()
function scissorsBlack() {
   let userInput = +prompt('Выберите вариант и введите соответствующее ему число: \n камень - 1 \n ножницы - 2 \n бумага - 3','');
   let compInput = Math.floor(Math.random() * 3);
   console.log(compInput);   
   ( (compInput === 0) && (alert('у оппонента камень') || (userInput === 1) && alert('ничья') || (userInput === 2) && alert('вы проиграли!') || (userInput === 3) && alert('вы выиграли!') ) || 
   (compInput === 1) && (alert('у оппонента ножницы') || (userInput === 2) && alert('ничья') || (userInput === 3) && alert('вы проиграли!') || (userInput === 1) && alert('вы выиграли!')) ||
   (compInput === 2) && (alert('у оппонента бумага') || (userInput === 3) && alert('ничья') || (userInput === 1) && alert('вы проиграли!') || (userInput === 2) && alert('вы выиграли!')) );
}

// currencyCalc()
function currencyCalc() {
   let result = null;
   loop1:
   do {
      let secondCurrInput = prompt('Выберите и введите валюту в которую вы хотите конвертировать uah: \n usd \n eur','');
      if (secondCurrInput === null) {
         alert('отмена конвертации');
         break;
      }
      let firstCurrRatio = 26.29;
      let secondCurrRatio = null;
      switch (secondCurrInput){
         case 'usd': 
            secondCurrRatio = 1;
               break;
         case 'eur': 
            secondCurrRatio =  0.861;
               break;
         default: 
            alert('неверное значение, отмена конвертации');
            break loop1;           
      }
      let firstAmount = parseFloat(prompt('Введите сумму uah которую вы хотите конвертировать',''));
      if (!isFinite(firstAmount)) {
         alert('неверное значение, отмена конвертации');
         break;
      }
      let secondAmount = ((firstAmount * secondCurrRatio) / firstCurrRatio).toFixed(2);
      alert(`Итого: ${secondAmount} ${secondCurrInput}`);

      result = confirm('Произвести конвертацию еще раз?');
   } while (result)

}

// currencyCalcImproved()
function currencyCalcImproved() {
   let result = null;
   loop1:
   do {
      let secondText = prompt('Выберите и введите валюту в которую вы хотите конвертировать uah: \n usd \n eur \n(в любом регистре)','');
      let secondCurrInput = null;
      if (secondText !== null) {
         secondCurrInput = secondText.trim().toLowerCase();
      } else {
         alert('отмена конвертации');
         break;
      }
      let firstCurrRatio = 26.29;
      let secondCurrRatio = null;    
      switch (secondCurrInput){
         case 'usd': 
            secondCurrRatio = 1;
               break;
         case 'eur': 
            secondCurrRatio =  0.861;
               break;
         default: 
            alert('неверное значение, отмена конвертации');
            break loop1;  
      }
      let firstNumber = parseFloat(prompt('Введите сумму uah которую вы хотите конвертировать',''));
      let firstAmount = null;
      if (isFinite(firstNumber)) {
         firstAmount = firstNumber;
      } else {
         alert('неверное значение, отмена конвертации');
         break;
      }
      let secondAmount = ((firstAmount * secondCurrRatio) / firstCurrRatio).toFixed(2);
      alert(`Итого: ${secondAmount} ${secondCurrInput}`);
      result = confirm('Произвести конвертацию еще раз?');
   } while (result)
}

// currencyCalcTwoRates()
function currencyCalcTwoRates() {
   let result = null;
   loop1:
   do {
      let secondText = prompt('Выберите и введите валюту в которую вы хотите конвертировать uah: \n usd \n eur \n(в любом регистре)','');
      let secondCurrInput = null;
      if (secondText !== null) {
         secondCurrInput = secondText.trim().toLowerCase();
      } else {
         alert('отмена конвертации');
         break;
      }
      let firstCurrRatio = 26.29;
      let secondCurrRatio = null;
      let chooser = null;
      function chooserFunc() {
         chooser = confirm('Нажмите ок, если выбирате курс на продажу или отмена, если выбирате курс на покупку');
         chooser ? alert('вы выбрали курс на продажу') : alert('вы выбрали курс на покупку');  
      } 
      switch (secondCurrInput){
         case 'usd':
            chooserFunc() 
            chooser ? secondCurrRatio = 1 : secondCurrRatio = 1.002;
               break;
         case 'eur':
            chooserFunc() 
            chooser ? secondCurrRatio =  0.861 : secondCurrRatio = 0.863;
               break;
         default: 
            alert('неверное значение, отмена конвертации');
            break loop1;  
      }
      let firstNumber = parseFloat(prompt('Введите сумму uah которую вы хотите конвертировать',''));
      let firstAmount = null;
      if (isFinite(firstNumber)) {
         firstAmount = firstNumber;
      } else {
         alert('неверное значение, отмена конвертации');
         break;
      }
      let secondAmount = ((firstAmount * secondCurrRatio) / firstCurrRatio).toFixed(2);
      alert(`Итого: ${secondAmount} ${secondCurrInput}`);
      result = confirm('Произвести конвертацию еще раз?');
   } while (result)
}

// currencyCalcIf()
function currencyCalcIf() {
   let result = null;
   loop1:
   do {
      let secondText = prompt('Выберите и введите валюту в которую вы хотите конвертировать uah: \n usd \n eur \n(в любом регистре)','');
      let secondCurrInput = null;
      if (secondText !== null) {
         secondCurrInput = secondText.trim().toLowerCase();
      } else {
         alert('отмена конвертации');
         break;
      }
      let firstCurrRatio = 26.29;
      let secondCurrRatio = null;
      let chooser = null;
      function chooserFunc() {
         chooser = confirm('Нажмите ок, если выбирате курс на продажу или отмена, если выбирате курс на покупку');
         chooser ? alert('вы выбрали курс на продажу') : alert('вы выбрали курс на покупку');  
      } 
      switch (secondCurrInput){
         case 'usd': 
            chooserFunc()
            if (chooser) {
               secondCurrRatio = 1;
            } else {
               secondCurrRatio = 1.002;
            }
               break;
         case 'eur': 
            chooserFunc()
            if (chooser) {
               secondCurrRatio =  0.861;
            } else {
               secondCurrRatio = 0.863;
            }
               break;
         default: 
            alert('неверное значение, отмена конвертации');
            break loop1;  
      }
      let firstNumber = parseFloat(prompt('Введите сумму uah которую вы хотите конвертировать',''));
      let firstAmount = null;
      if (isFinite(firstNumber)) {
         firstAmount = firstNumber;
      } else {
         alert('неверное значение, отмена конвертации');
         break;
      }
      let secondAmount = ((firstAmount * secondCurrRatio) / firstCurrRatio).toFixed(2);
      alert(`Итого: ${secondAmount} ${secondCurrInput}`);
      result = confirm('Произвести конвертацию еще раз?');
   } while (result)
}

// currencyCalcObj()
function currencyCalcObj() {
   let ratios = {
      usdS: 1,
      eurS: 0.861,
      uahS: 26.29,
      usdB: 1.002,
      eurB: 0.863,
      uahB: 26.31,
   }
   let result = null;
   loop1:
   do {
      let secondText = prompt('Выберите и введите валюту в которую вы хотите конвертировать uah: \n usd \n eur \n(в любом регистре)','');
      let secondCurrInput = null;
      if (secondText !== null) {
         secondCurrInput = secondText.trim().toLowerCase();
      } else {
         alert('отмена конвертации');
         break;
      }
      let firstCurrRatio = ratios['uahS'];
      let secondCurrRatio = null;
      let chooser = null;
      function chooserFunc() {
         chooser = confirm('Нажмите ок, если выбирате курс на продажу или отмена, если выбирате курс на покупку');
         chooser ? alert('вы выбрали курс на продажу') : alert('вы выбрали курс на покупку');  
      }  
      switch (secondCurrInput){
         case 'usd': 
            chooserFunc()
            chooser ? secondCurrRatio = ratios['usdS'] : secondCurrRatio = ratios['usdB'];
               break;
         case 'eur': 
            chooserFunc()
            chooser ? secondCurrRatio = ratios['eurS'] : secondCurrRatio = ratios['eurB'];
               break;
         default: 
            alert('неверное значение, отмена конвертации');
            break loop1;  
      }
      let firstNumber = parseFloat(prompt('Введите сумму uah которую вы хотите конвертировать',''));
      let firstAmount = null;
      if (isFinite(firstNumber)) {
         firstAmount = firstNumber;
      } else {
         alert('неверное значение, отмена конвертации');
         break;
      }
      let secondAmount = ((firstAmount * secondCurrRatio) / firstCurrRatio).toFixed(2);
      alert(`Итого: ${secondAmount} ${secondCurrInput}`);
      result = confirm('Произвести конвертацию еще раз?');
   } while (result)
}