// Number: age
let userAge = +prompt("Введите ваш возраст");                         //Получаем возраст пользователя
let dateNow = Date.now();                                             //Получаем таймспан текущей даты
let UserAgeInTimespan = userAge * 12 * 4.4 * 7 * 24 * 60 * 60 * 1000; //Переводим userAge в миллисекунды
let userYearBirth = new Date( dateNow - (UserAgeInTimespan) );        /* Отнимаем UserAgeInTimespan от таймспана
                                                                         текущей даты и получаем таймспан даты рождения пользователя */
alert(`Вы родились в ${userYearBirth.getFullYear()} г.`)              //Выводим год рождения


// Number: temperature
let celsiusDeg = +prompt("Введите температуру в градусах Цельсия");               //Запрашиваем у пользователя температуру в градусах Цельсия
let celsiusInFahrenheit = (celsiusDeg * 9/5) + 32;                                //Переводим Цельсий в Фаренгейт
alert(`${celsiusDeg} градусов Цельсия это ${celsiusInFahrenheit} по Фаренгейту`); //Выводим получившееся значение


//Number: divide
let divideByTotal = function(a, b = 0){ // Функция которая возвращает целое число после деления
    return Math.floor(a/b);
};
alert(`Результат целочисленного деления: ${divideByTotal(+prompt("Введите первое число"), +prompt("Введите второе число"))}`); //Запрашиваем данные, выводим результат


//Number: odd
let number = +prompt("Введите число"); // Запрос данных

if( isNaN(number) ) {                  // Проверка на NaN
    alert("А ты бунтарь, ввел не число");
} else {
    alert("Хороший мальчик, ввел число");
}

//String: greeting
let userName = prompt("Как тебя зовут?");
alert(`Привет, ${userName}`);

//String: lexics
let sumUserText = prompt("Введите какой то текст, без плохих слов, пожалуйста").toLocaleLowerCase(); /* Запрашиваем текст и сразу делаем его в нижнем регистре ведь строка "кАкашка" и "какашка" разные */
let badWordsArr = ["какашка", "жопа", "ананас"];                                                     //Заводим массив плохих слов
let booleanCounter = 0;                                                                              //Заводим счетчик, в дальнейшем мы будем прибавлять к ниму +1 если нашли "плохое" слово

for(let word of badWordsArr) {
    booleanCounter += sumUserText.includes(word);                                                    // Выражение "sumUserText.includes(word)" возвращает "true" если в переменной есть строка с "плохим" словом, после чего я добавляю к нулю true или false. Если значение true то ноль увеличивается на единицу
}

if(booleanCounter > 0){                                                                               //Проверяю переменную "booleanCounter" если там значение больше нуля то в строке "sumUserText" были "плохие" слова
    alert("Вы ввели плохое слово, приготовьтесь к уничтожению!");
} else {
    alert("Спасибо что без плохих слов");
}


//confirm
//Boolean
//Boolean: if
let confirmTest = confirm("Вы мужчина?");

alert(`confirm вернул тип: ${typeof(confirmTest)}, значение: ${confirmTest}`);

if(confirmTest) {
    alert("Вы мужчина");
} else {
    alert("Вы женщина");
}


//Array: plus
let sumArr = [1, 2];
sumArr.push(sumArr[0] + sumArr[1]);
console.log(sumArr);


//Array: plus string
let concatArr = ["Какая-то", "строка", "текста"];
let sumStr = "";

for(let item of concatArr) {
    sumStr += item;
}

concatArr.push(sumStr);

console.log(concatArr);


// Comparison if
var age = +prompt("Сколько вам лет?","");
if(age < 0) {
    alert("Вы еще не родились ?")
} else {
    if (age < 18){
        alert("школьник");
    }
    else {
        if (age < 30){
            alert("молодеж");
        }
        else {
            if (age < 45){
                alert("зрелость");
            }
            else {
                if (age < 60){
                    alert("закат");
                }
                else {
                    if (age > 60){
                        alert("как пенсия?");
                    }
                    else {
                        alert("то ли киборг, то ли ошибка"); 
                    }
                }
            }
        }
    }
}


//Comparison: sizes
let clothingSizeRu = +prompt("Введите размер одежды для перевода в американскую систему");
let clothingSizeUsa = clothingSize - 34;

alert(`В американской системе рамер равен: ${clothingSizeUsa}`);


//Ternary
confirm("Вы мужчина ?") ? alert("Вы мужчина") : alert("Вы женщина");


//Синий пояс Number: flats

let floorsInHouse      = +prompt("Сколько этажей в доме ?");
let apartmentsPerFloor = +prompt("Сколько квартир на этаже ?");
let apartmentNumber    = +prompt("Подскажите номер квартиры которую хотите найти");

let getApartmentLocation = function(floorsInHouse, apartmentsPerFloor, apartmentNumber) {
    let entrance = Math.ceil( apartmentNumber / (floorsInHouse * apartmentsPerFloor) );
    let floor = Math.ceil( ( apartmentNumber - ( (floorsInHouse * apartmentsPerFloor) * (entrance - 1) ) ) / floorsInHouse );

    return [entrance, floor];
};

let apartmentLocation = getApartmentLocation(floorsInHouse, apartmentsPerFloor, apartmentNumber);

alert(`Квартира которую вы ищете расположена в подъезде № ${apartmentLocation[0]} на ${apartmentLocation[1]} этаже`);